From e2c39def4254174e785d19bbb11bce4573cc7fad Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Sat, 19 Sep 2020 05:58:50 -0700 Subject: [PATCH] fix(datatable-skeleton): add showHeader, showToolbar props fixes #264 --- src/DataTableSkeleton/DataTable.stories.js | 10 ++- .../DataTableSkeleton.svelte | 88 +++++++++++++------ 2 files changed, 66 insertions(+), 32 deletions(-) diff --git a/src/DataTableSkeleton/DataTable.stories.js b/src/DataTableSkeleton/DataTable.stories.js index b748424f..e101992f 100644 --- a/src/DataTableSkeleton/DataTable.stories.js +++ b/src/DataTableSkeleton/DataTable.stories.js @@ -1,4 +1,4 @@ -import { withKnobs, array, boolean } from "@storybook/addon-knobs"; +import { withKnobs, array, boolean, number } from "@storybook/addon-knobs"; import Component from "./DataTableSkeleton.Story.svelte"; export default { title: "DataTableSkeleton", decorators: [withKnobs] }; @@ -6,12 +6,16 @@ export default { title: "DataTableSkeleton", decorators: [withKnobs] }; export const Default = () => ({ Component, props: { + columns: number("Number of columns", 5), + rows: number("Number of rows", 5), + zebra: boolean("Use zebra stripe (zebra)", false), + compact: boolean("Compact variant (compact)", false), + showHeader: boolean("Show header", true), headers: array( "Optional table headers (headers)", ["Name", "Protocol", "Port", "Rule", "Attached Groups"], "," ), - zebra: boolean("Use zebra stripe (zebra)", false), - compact: boolean("Compact variant (compact)", false), + showToolbar: boolean("Show toolbar", true), }, }); diff --git a/src/DataTableSkeleton/DataTableSkeleton.svelte b/src/DataTableSkeleton/DataTableSkeleton.svelte index c91152a6..5687a653 100644 --- a/src/DataTableSkeleton/DataTableSkeleton.svelte +++ b/src/DataTableSkeleton/DataTableSkeleton.svelte @@ -23,6 +23,12 @@ */ export let zebra = false; + /** + * Set to `false` to hide the header + * @type {boolean} [showHeader=true] + */ + export let showHeader = true; + /** * Set the column headers * If `headers` has one more items, `count` is ignored @@ -30,41 +36,65 @@ */ export let headers = []; + /** + * Set to `false` to hide the toolbar + * @type {boolean} [showToolbar=true] + */ + export let showToolbar = true; + $: cols = Array.from( { length: headers.length > 0 ? headers.length : columns }, (_, i) => i ); - - - - {#each cols as col, i (col)} - - {/each} - - - - - {#each cols as col, i (col)} - - {/each} - - {#each Array.from({ length: rows - 1 }, (_, i) => i) as row, i (row)} +
+ {#if showHeader} +
+
+
+
+ {/if} + {#if showToolbar} +
+
+ +
+
+ {/if} +
{headers[col] || ''}
+ - {#each cols as col, j (col)} - + {#each cols as col, i (col)} + {/each} - {/each} - -
{headers[col] || ''}
+ + + + {#each cols as col, i (col)} + + {/each} + + {#each Array.from({ length: rows - 1 }, (_, i) => i) as row, i (row)} + + {#each cols as col, j (col)} + + {/each} + + {/each} + + +