From 2908cc4a8371bd574ad6d0c0706b54da2f8514a7 Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Wed, 4 Sep 2024 14:18:11 +0200 Subject: [PATCH 1/4] Update Facets models to include selected array by default --- src/lib/models/Models.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) 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; }; } From 5fd6bdfd16302f940b1926be1e68153c8bceb345 Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Wed, 4 Sep 2024 14:18:54 +0200 Subject: [PATCH 2/4] Replace old groups array with a writable to rerender Facets on update --- src/lib/components/Facets/Facets.svelte | 71 ++++++++++++++----------- 1 file changed, 39 insertions(+), 32 deletions(-) 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})` : ''} +

From 96c528465e947aa062d83409235a8b5865b26807 Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Wed, 4 Sep 2024 14:19:26 +0200 Subject: [PATCH 3/4] Update the examples to use writable stores instead of arrays for groups --- .../facets/examples/FacetsGroupSelection.svelte | 16 ++++------------ .../examples/FacetsNoGroupSelection.svelte | 16 +++++++++------- 2 files changed, 13 insertions(+), 19 deletions(-) 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)} />
From a7f0eef9672a76f7b526c759e2ecfba35bd65838 Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Wed, 4 Sep 2024 14:19:48 +0200 Subject: [PATCH 4/4] Export Facet types --- src/lib/index.ts | 2 ++ src/routes/components/facets/data/data.ts | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) 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/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 } ];