diff --git a/src/lib/components/Facets/Facets.svelte b/src/lib/components/Facets/Facets.svelte index f257436f..24d9f85f 100644 --- a/src/lib/components/Facets/Facets.svelte +++ b/src/lib/components/Facets/Facets.svelte @@ -1,34 +1,17 @@ @@ -148,7 +153,9 @@ bind:checked={selectedGroups[group.name]} bind:group={selectedGroups} > -

{group.displayName}

+

+ {group.displayName}{group.count !== undefined ? ` (${group.count})` : ''} +

diff --git a/src/lib/index.ts b/src/lib/index.ts index c9c981ee..084a7a4c 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -32,6 +32,7 @@ import type { TableConfig, Columns, Column } from './models/Models'; //Facets import Facets from './components/Facets/Facets.svelte'; +import type { FacetGroup, FacetOption, SelectedFacetGroup } from './models/Models'; // CodeEditor import CodeEditor from './components/CodeEditor/CodeEditor.svelte'; @@ -108,6 +109,7 @@ export { Table, TableFilter, columnFilter, searchFilter }; // Facets export { Facets }; +export type { FacetGroup, FacetOption, SelectedFacetGroup }; // CodeEditor export { CodeEditor }; diff --git a/src/lib/models/Models.ts b/src/lib/models/Models.ts index 6505df10..bff6997d 100644 --- a/src/lib/models/Models.ts +++ b/src/lib/models/Models.ts @@ -195,23 +195,20 @@ export interface FacetOption { name: string; displayName: string; count?: number; + selected?: boolean; } export interface FacetGroup { name: string; displayName: string; + selected?: boolean; children: FacetOption[]; count?: number; } -export interface SelectedFacetOption extends FacetOption { - selected: boolean; -} - export interface SelectedFacetGroup extends Omit { - selected: boolean; children: { - [key: string]: SelectedFacetOption; + [key: string]: FacetOption; }; } diff --git a/src/routes/components/facets/data/data.ts b/src/routes/components/facets/data/data.ts index 8c442be0..04e7649c 100644 --- a/src/routes/components/facets/data/data.ts +++ b/src/routes/components/facets/data/data.ts @@ -64,9 +64,10 @@ export const groups: FacetGroup[] = [ { name: 'Stephen King', displayName: 'Stephen King', count: 10 }, { name: 'J.K. Rowling', displayName: 'J.K. Rowling', count: 3 }, { name: 'Agatha Christie', displayName: 'Agatha Christie', count: 4 }, - { name: 'Dan Brown', displayName: 'Dan Brown', count: 7 } + { name: 'Dan Brown', displayName: 'Dan Brown', count: 7, selected: true }, ], name: 'authors', - displayName: 'Authors' + displayName: 'Authors', + count: 24 } ]; diff --git a/src/routes/components/facets/examples/FacetsGroupSelection.svelte b/src/routes/components/facets/examples/FacetsGroupSelection.svelte index 6307a563..c0d2864f 100644 --- a/src/routes/components/facets/examples/FacetsGroupSelection.svelte +++ b/src/routes/components/facets/examples/FacetsGroupSelection.svelte @@ -1,20 +1,12 @@
@@ -23,6 +15,6 @@ svelte={facetsGroupSelectionSvelte} data={facetsNoGroupSelectionData} > - + console.log(e)} />
diff --git a/src/routes/components/facets/examples/FacetsNoGroupSelection.svelte b/src/routes/components/facets/examples/FacetsNoGroupSelection.svelte index 755beab4..ef32a66f 100644 --- a/src/routes/components/facets/examples/FacetsNoGroupSelection.svelte +++ b/src/routes/components/facets/examples/FacetsNoGroupSelection.svelte @@ -1,18 +1,20 @@
- - + + console.log(e)} />