@lavalogic/scoria 0.12.3 → 0.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/Components/Table/Body/QuickSearchCell.svelte +4 -5
  2. package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +12 -12
  3. package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +2 -2
  4. package/dist/Components/Table/Body/Rows/ColumnList.svelte +2 -2
  5. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +3 -3
  6. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte.d.ts +12 -12
  7. package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +2 -2
  8. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +26 -16
  9. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +1 -1
  10. package/dist/Components/Table/Body/Rows/Columns/ActionsCellProps.d.ts +2 -2
  11. package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.d.ts +1 -1
  12. package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.d.ts +2 -2
  13. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +8 -6
  14. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +11 -3
  15. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte.d.ts +13 -12
  16. package/dist/Components/Table/Body/Rows/Columns/ExpandCellProps.d.ts +5 -4
  17. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +1 -1
  18. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +8 -6
  19. package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.d.ts +2 -1
  20. package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.d.ts +2 -1
  21. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +2 -1
  22. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +4 -4
  23. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte.d.ts +14 -14
  24. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +1 -1
  25. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +7 -4
  26. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +3 -2
  27. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +3 -3
  28. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +7 -6
  29. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +2 -1
  30. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +8 -6
  31. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +7 -4
  32. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +8 -6
  33. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +8 -6
  34. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +3 -3
  35. package/dist/Components/Table/Body/Rows/TableRow.svelte +8 -7
  36. package/dist/Components/Table/Body/TableBody.svelte +19 -15
  37. package/dist/Components/Table/Body/TableBodyProps.d.ts +1 -1
  38. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.d.ts +1 -1
  39. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +17 -15
  40. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +29 -16
  41. package/dist/Components/Table/Headers/SelectAllHeader.svelte +1 -1
  42. package/dist/Components/Table/Headers/TableHead.svelte +4 -4
  43. package/dist/Components/Table/Misc/ColumnPanel.svelte +1 -1
  44. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +1 -1
  45. package/dist/Components/Table/Misc/FilterInput.svelte +3 -5
  46. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -12
  47. package/dist/Components/Table/Misc/FilterInputProps.d.ts +2 -2
  48. package/dist/Components/Table/Misc/FilterPanel.svelte +2 -2
  49. package/dist/Components/Table/Misc/FilterPanelModal.svelte +2 -2
  50. package/dist/Components/Table/Misc/TableFooter.svelte +1 -1
  51. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +1 -1
  52. package/dist/Components/Table/Misc/TableSidebar.svelte +2 -1
  53. package/dist/Components/Table/Misc/ToolboxPanel.svelte +2 -2
  54. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +1 -1
  55. package/dist/Components/Table/NestedTable.svelte +12 -8
  56. package/dist/Components/Table/NestedTable.svelte.d.ts +15 -15
  57. package/dist/Components/Table/Table.svelte +111 -118
  58. package/dist/Components/Table/Table.svelte.d.ts +16 -15
  59. package/dist/Components/Table/Types/Columns/Column.d.ts +1 -1
  60. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +1 -1
  61. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +2 -2
  62. package/dist/Components/Table/Types/Columns/Definitions/ColumnDefSet.d.ts +1 -1
  63. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +6 -6
  64. package/dist/Components/Table/Types/Columns/Definitions/JSONColumnDefSet.d.ts +1 -1
  65. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +2 -1
  66. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +2 -2
  67. package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +3 -2
  68. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +3 -2
  69. package/dist/Components/Table/Types/Context/ITable.d.ts +5 -5
  70. package/dist/Components/Table/Types/Context/Row.d.ts +3 -3
  71. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +40 -37
  72. package/dist/Components/Table/Types/Context/TableContext.svelte.js +318 -279
  73. package/dist/Components/Table/Types/Context/TableInitOptions.d.ts +4 -2
  74. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +1 -1
  75. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +1 -2
  76. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +2 -1
  77. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +31 -8
  78. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +2 -1
  79. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +4 -1
  80. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +3 -3
  81. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +1 -1
  82. package/dist/Components/Table/Types/Header.d.ts +2 -2
  83. package/dist/Components/Table/Types/HeaderGroup.d.ts +1 -1
  84. package/dist/index.d.ts +1 -1
  85. package/package.json +11 -11
@@ -1,6 +1,6 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" generics="T extends object">
3
+ <script lang="ts" generics="T extends object, FilterValueType">
4
4
  import { dev } from '$app/environment';
5
5
  import Action from '../../Action.svelte';
6
6
  import Button from '../../Button.svelte';
@@ -33,9 +33,10 @@
33
33
  import { NumberDateFilterMode } from '../Types/Filtering/NumberDateFilterMode.js';
34
34
  import { StringFilterMode } from '../Types/Filtering/StringFilterMode.js';
35
35
  import type { QuickSearchCellProps } from './QuickSearchCellProps.js';
36
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
37
36
 
38
- const { column, customFilters }: QuickSearchCellProps<T> = $props();
37
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
38
+
39
+ const { column, customFilters }: QuickSearchCellProps<T, FilterValueType> = $props();
39
40
 
40
41
  const def = $derived(column.columnDef);
41
42
  const customFilter = $derived(customFilters?.get(def.id));
@@ -557,7 +558,6 @@
557
558
  const newFilterType = newValue?.value ?? NumberDateFilterMode.In;
558
559
 
559
560
  tableContext.paginationRepo?.setFilterMode(def.id, newFilterType);
560
- tableContext.paginationRepo?.filterModes.set(def.id, newFilterType);
561
561
 
562
562
  if (selectedNumberFilterType?.value !== oldFilterType?.value) {
563
563
  if (oldFilterType?.value === NumberDateFilterMode.Between) {
@@ -587,7 +587,6 @@
587
587
  onchange={(newValue: SelectOption<StringFilterMode> | null) => {
588
588
  const filterType = newValue?.value ?? StringFilterMode.Contains;
589
589
  tableContext.paginationRepo?.setFilterMode(def.id, filterType);
590
- tableContext.paginationRepo?.filterModes.set(def.id, filterType);
591
590
  }}
592
591
  onkeydown={(e: KeyboardEvent) => {
593
592
  e.stopPropagation();
@@ -1,25 +1,25 @@
1
1
  import type { QuickSearchCellProps } from './QuickSearchCellProps.js';
2
- declare function $$render<T extends object>(): {
3
- props: QuickSearchCellProps<T>;
2
+ declare function $$render<T extends object, FilterValueType>(): {
3
+ props: QuickSearchCellProps<T, FilterValueType>;
4
4
  exports: {};
5
5
  bindings: "";
6
6
  slots: {};
7
7
  events: {};
8
8
  };
9
- declare class __sveltets_Render<T extends object> {
10
- props(): ReturnType<typeof $$render<T>>['props'];
11
- events(): ReturnType<typeof $$render<T>>['events'];
12
- slots(): ReturnType<typeof $$render<T>>['slots'];
9
+ declare class __sveltets_Render<T extends object, FilterValueType> {
10
+ props(): ReturnType<typeof $$render<T, FilterValueType>>['props'];
11
+ events(): ReturnType<typeof $$render<T, FilterValueType>>['events'];
12
+ slots(): ReturnType<typeof $$render<T, FilterValueType>>['slots'];
13
13
  bindings(): "";
14
14
  exports(): {};
15
15
  }
16
16
  interface $$IsomorphicComponent {
17
- new <T extends object>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
18
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
19
- } & ReturnType<__sveltets_Render<T>['exports']>;
20
- <T extends object>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
21
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
17
+ new <T extends object, FilterValueType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, FilterValueType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, FilterValueType>['props']>, ReturnType<__sveltets_Render<T, FilterValueType>['events']>, ReturnType<__sveltets_Render<T, FilterValueType>['slots']>> & {
18
+ $$bindings?: ReturnType<__sveltets_Render<T, FilterValueType>['bindings']>;
19
+ } & ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
20
+ <T extends object, FilterValueType>(internal: unknown, props: ReturnType<__sveltets_Render<T, FilterValueType>['props']> & {}): ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
21
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
22
22
  }
23
23
  declare const QuickSearchCell: $$IsomorphicComponent;
24
- type QuickSearchCell<T extends object> = InstanceType<typeof QuickSearchCell<T>>;
24
+ type QuickSearchCell<T extends object, FilterValueType> = InstanceType<typeof QuickSearchCell<T, FilterValueType>>;
25
25
  export default QuickSearchCell;
@@ -1,6 +1,6 @@
1
1
  import type { Column } from '../Types/Columns/Column.js';
2
2
  import type { CustomRemoteFilters } from '../Types/Filtering/CustomRemoteFilters.js';
3
- export interface QuickSearchCellProps<T extends object> {
4
- column: Column<T>;
3
+ export interface QuickSearchCellProps<T extends object, FilterValueType> {
4
+ column: Column<T, FilterValueType>;
5
5
  customFilters?: CustomRemoteFilters | undefined;
6
6
  }
@@ -8,11 +8,11 @@
8
8
  import type { ColumnListProps } from './ColumnListProps.js';
9
9
  import ColumnListRow from './ColumnListRow.svelte';
10
10
 
11
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
11
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
12
12
 
13
13
  const { searchValue }: ColumnListProps = $props();
14
14
 
15
- const visibleColumns: Array<ColumnDef<T>> = $derived.by(() => {
15
+ const visibleColumns: Array<ColumnDef<T, unknown>> = $derived.by(() => {
16
16
  const lowercasedSearchValue = searchValue.toLocaleLowerCase();
17
17
  return tableContext.columnDefs.filter(
18
18
  (it) =>
@@ -1,15 +1,15 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" generics="T extends object">
3
+ <script lang="ts" generics="T extends object,FilterValueType">
4
4
  import Checkbox from '../../../Checkbox.svelte';
5
5
  import Icon from '../../../Icon.svelte';
6
6
  import { TableContext } from '../../Types/Context/TableContext.svelte.js';
7
7
  import { Size } from '../../../../Types/Internal/Size.js';
8
8
  import { getContext } from 'svelte';
9
9
  import type { ColumnListRowProps } from './ColumnListRowProps.js';
10
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
10
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
11
11
 
12
- const { columnDef }: ColumnListRowProps<T> = $props();
12
+ const { columnDef }: ColumnListRowProps<T, FilterValueType> = $props();
13
13
 
14
14
  const isExpandColumn = $derived(columnDef?.columnType === 'Expand');
15
15
 
@@ -1,25 +1,25 @@
1
1
  import type { ColumnListRowProps } from './ColumnListRowProps.js';
2
- declare function $$render<T extends object>(): {
3
- props: ColumnListRowProps<T>;
2
+ declare function $$render<T extends object, FilterValueType>(): {
3
+ props: ColumnListRowProps<T, FilterValueType>;
4
4
  exports: {};
5
5
  bindings: "";
6
6
  slots: {};
7
7
  events: {};
8
8
  };
9
- declare class __sveltets_Render<T extends object> {
10
- props(): ReturnType<typeof $$render<T>>['props'];
11
- events(): ReturnType<typeof $$render<T>>['events'];
12
- slots(): ReturnType<typeof $$render<T>>['slots'];
9
+ declare class __sveltets_Render<T extends object, FilterValueType> {
10
+ props(): ReturnType<typeof $$render<T, FilterValueType>>['props'];
11
+ events(): ReturnType<typeof $$render<T, FilterValueType>>['events'];
12
+ slots(): ReturnType<typeof $$render<T, FilterValueType>>['slots'];
13
13
  bindings(): "";
14
14
  exports(): {};
15
15
  }
16
16
  interface $$IsomorphicComponent {
17
- new <T extends object>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
18
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
19
- } & ReturnType<__sveltets_Render<T>['exports']>;
20
- <T extends object>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
21
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
17
+ new <T extends object, FilterValueType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, FilterValueType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, FilterValueType>['props']>, ReturnType<__sveltets_Render<T, FilterValueType>['events']>, ReturnType<__sveltets_Render<T, FilterValueType>['slots']>> & {
18
+ $$bindings?: ReturnType<__sveltets_Render<T, FilterValueType>['bindings']>;
19
+ } & ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
20
+ <T extends object, FilterValueType>(internal: unknown, props: ReturnType<__sveltets_Render<T, FilterValueType>['props']> & {}): ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
21
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
22
22
  }
23
23
  declare const ColumnListRow: $$IsomorphicComponent;
24
- type ColumnListRow<T extends object> = InstanceType<typeof ColumnListRow<T>>;
24
+ type ColumnListRow<T extends object, FilterValueType> = InstanceType<typeof ColumnListRow<T, FilterValueType>>;
25
25
  export default ColumnListRow;
@@ -1,4 +1,4 @@
1
1
  import type { ColumnDef } from '../../Types/Columns/Definitions/ColumnDef.svelte.js';
2
- export interface ColumnListRowProps<T extends object> {
3
- columnDef: ColumnDef<T> | null;
2
+ export interface ColumnListRowProps<T extends object, FilterValueType> {
3
+ columnDef: ColumnDef<T, FilterValueType> | null;
4
4
  }
@@ -8,7 +8,7 @@
8
8
  import { MultiFocusEdge } from '../../../Types/Focus/MultiFocusEdge.js';
9
9
  import { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
10
10
  import { ToastContext } from '../../../../../Contexts/ToastContext.svelte.js';
11
- import { devCatch, refWrapper } from '../../../../../Helpers/Helpers.svelte.js';
11
+ import { asyncMap, devCatch, refWrapper } from '../../../../../Helpers/Helpers.svelte.js';
12
12
  import { Colour, ColourSet } from '../../../../../scss/colours.js';
13
13
  import { Size } from '../../../../../Types/Internal/Size.js';
14
14
  import { Validity } from '../../../../../Types/Internal/Validity.js';
@@ -20,11 +20,11 @@
20
20
  </script>
21
21
 
22
22
  <script lang="ts" generics="T extends object,FilterValueType">
23
- const { cell }: ActionsCellProps<T> = $props();
23
+ const { cell }: ActionsCellProps<T, FilterValueType> = $props();
24
24
 
25
25
  const value = $derived(cell.getValue());
26
26
 
27
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
27
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
28
28
  const toastContext = getContext<ToastContext>(ToastContext.identifier);
29
29
 
30
30
  const actions: Array<TableActionButton<T>> = $derived(cell.column.columnDef.actions);
@@ -88,12 +88,14 @@
88
88
  untrack(() => {
89
89
  tick()
90
90
  .then(() => {
91
- if (validity === Validity.Invalid) {
92
- tableContext.addInvalidValue(cell.row.original);
93
- } else {
94
- tableContext.removeInvalidValue(cell.row.original);
95
- }
91
+ const x =
92
+ validity === Validity.Invalid
93
+ ? tableContext.addInvalidValue(cell.row.original)
94
+ : tableContext.removeInvalidValue(cell.row.original);
95
+
96
96
  previousValidity = validity;
97
+
98
+ return x;
97
99
  })
98
100
  .catch(devCatch);
99
101
  });
@@ -163,15 +165,23 @@
163
165
  />
164
166
  </div>
165
167
  {#if thisPopupIsVisibile}
166
- <Portal>
167
- <div class="popup" style="--y: {y}px; --x: {x}px;">
168
- <div class="action-container">
169
- {#each actions as action (action.getLabel(cell.row.original, cell.row.visibleIndex))}
170
- <TableAction {action} {cell} />
171
- {/each}
168
+ {@const awaitedActions = asyncMap<TableActionButton<T>, [TableActionButton<T>, string]>(
169
+ actions,
170
+ async (item) => {
171
+ return [item, await item.getLabel(cell.row.original, cell.row.visibleIndex)];
172
+ }
173
+ )}
174
+ {#await awaitedActions then actions}
175
+ <Portal>
176
+ <div class="popup" style="--y: {y}px; --x: {x}px;">
177
+ <div class="action-container">
178
+ {#each actions as [action, label] (label)}
179
+ <TableAction {action} {cell} />
180
+ {/each}
181
+ </div>
172
182
  </div>
173
- </div>
174
- </Portal>
183
+ </Portal>
184
+ {/await}
175
185
  {/if}
176
186
  </td>
177
187
 
@@ -1,7 +1,7 @@
1
1
  import type { ActionsCellProps } from './ActionsCellProps.js';
2
2
  export declare let shownPopup: import("../../../../../index.js").RefWrapper<symbol | undefined>;
3
3
  declare function $$render<T extends object, FilterValueType>(): {
4
- props: ActionsCellProps<T>;
4
+ props: ActionsCellProps<T, FilterValueType>;
5
5
  exports: {};
6
6
  bindings: "";
7
7
  slots: {};
@@ -1,4 +1,4 @@
1
1
  import type { ActionsTableCell } from './ActionsTableCell.js';
2
- export interface ActionsCellProps<T extends object> {
3
- cell: ActionsTableCell<T>;
2
+ export interface ActionsCellProps<T extends object, FilterValueType> {
3
+ cell: ActionsTableCell<T, FilterValueType>;
4
4
  }
@@ -1,5 +1,5 @@
1
1
  import type { Column } from '../../../Types/Columns/Column.js';
2
2
  import type { ActionsDef } from '../../../Types/Columns/Definitions/Actions/ActionsDef.svelte.js';
3
- export interface ActionsColumn<T extends object> extends Column<T> {
3
+ export interface ActionsColumn<T extends object, FilterValueType> extends Column<T, FilterValueType> {
4
4
  columnDef: ActionsDef<T>;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import type { TableCell } from '../../../Types/Columns/TableCell.js';
2
2
  import type { ActionsColumn } from './ActionsColumn.js';
3
- export interface ActionsTableCell<T extends object> extends TableCell<T> {
4
- column: ActionsColumn<T>;
3
+ export interface ActionsTableCell<T extends object, FilterValueType> extends TableCell<T, FilterValueType> {
4
+ column: ActionsColumn<T, FilterValueType>;
5
5
  }
@@ -16,7 +16,7 @@
16
16
 
17
17
  const values = $derived(cell.getValue()) as Array<string> | Promise<Array<string>>;
18
18
 
19
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
19
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
20
20
  const toastContext = getContext<ToastContext>(ToastContext.identifier);
21
21
 
22
22
  const focusDetails: TableFocusDetails<T, FilterValueType> = $derived(
@@ -44,12 +44,14 @@
44
44
  untrack(() => {
45
45
  tick()
46
46
  .then(() => {
47
- if (validity === Validity.Invalid) {
48
- tableContext.addInvalidValue(cell.row.original);
49
- } else {
50
- tableContext.removeInvalidValue(cell.row.original);
51
- }
47
+ const x =
48
+ validity === Validity.Invalid
49
+ ? tableContext.addInvalidValue(cell.row.original)
50
+ : tableContext.removeInvalidValue(cell.row.original);
51
+
52
52
  previousValidity = validity;
53
+
54
+ return x;
53
55
  })
54
56
  .catch(devCatch);
55
57
  });
@@ -1,8 +1,12 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" generics="T extends object, R extends object,FilterValueType">
3
+ <script
4
+ lang="ts"
5
+ generics="T extends object, R extends object,FilterValueType, IdType extends Primitive"
6
+ >
4
7
  import Action from '../../../../Action.svelte';
5
8
  import { TableContext } from '../../../Types/Context/TableContext.svelte.js';
9
+ import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
6
10
  import { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
7
11
  import { ToastContext } from '../../../../../Contexts/ToastContext.svelte.js';
8
12
  import { ColourSet } from '../../../../../scss/colours.js';
@@ -10,9 +14,13 @@
10
14
  import { getContext } from 'svelte';
11
15
  import type { ExpandCellProps } from './ExpandCellProps.js';
12
16
 
13
- const { cell, expandedColumnDef, onExpandChange }: ExpandCellProps<T, R> = $props();
17
+ const {
18
+ cell,
19
+ expandedColumnDef,
20
+ onExpandChange
21
+ }: ExpandCellProps<T, R, IdType, FilterValueType> = $props();
14
22
 
15
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
23
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
16
24
  const toastContext = getContext<ToastContext>(ToastContext.identifier);
17
25
  const focusDetails: TableFocusDetails<T, FilterValueType> = $derived(
18
26
  new TableFocusDetails(cell, tableContext, toastContext.toast)
@@ -1,25 +1,26 @@
1
+ import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
1
2
  import type { ExpandCellProps } from './ExpandCellProps.js';
2
- declare function $$render<T extends object, R extends object, FilterValueType>(): {
3
- props: ExpandCellProps<T, R>;
3
+ declare function $$render<T extends object, R extends object, FilterValueType, IdType extends Primitive>(): {
4
+ props: ExpandCellProps<T, R, IdType, FilterValueType>;
4
5
  exports: {};
5
6
  bindings: "";
6
7
  slots: {};
7
8
  events: {};
8
9
  };
9
- declare class __sveltets_Render<T extends object, R extends object, FilterValueType> {
10
- props(): ReturnType<typeof $$render<T, R, FilterValueType>>['props'];
11
- events(): ReturnType<typeof $$render<T, R, FilterValueType>>['events'];
12
- slots(): ReturnType<typeof $$render<T, R, FilterValueType>>['slots'];
10
+ declare class __sveltets_Render<T extends object, R extends object, FilterValueType, IdType extends Primitive> {
11
+ props(): ReturnType<typeof $$render<T, R, FilterValueType, IdType>>['props'];
12
+ events(): ReturnType<typeof $$render<T, R, FilterValueType, IdType>>['events'];
13
+ slots(): ReturnType<typeof $$render<T, R, FilterValueType, IdType>>['slots'];
13
14
  bindings(): "";
14
15
  exports(): {};
15
16
  }
16
17
  interface $$IsomorphicComponent {
17
- new <T extends object, R extends object, FilterValueType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, R, FilterValueType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, R, FilterValueType>['props']>, ReturnType<__sveltets_Render<T, R, FilterValueType>['events']>, ReturnType<__sveltets_Render<T, R, FilterValueType>['slots']>> & {
18
- $$bindings?: ReturnType<__sveltets_Render<T, R, FilterValueType>['bindings']>;
19
- } & ReturnType<__sveltets_Render<T, R, FilterValueType>['exports']>;
20
- <T extends object, R extends object, FilterValueType>(internal: unknown, props: ReturnType<__sveltets_Render<T, R, FilterValueType>['props']> & {}): ReturnType<__sveltets_Render<T, R, FilterValueType>['exports']>;
21
- z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
18
+ new <T extends object, R extends object, FilterValueType, IdType extends Primitive>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['props']>, ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['events']>, ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['slots']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['exports']>;
21
+ <T extends object, R extends object, FilterValueType, IdType extends Primitive>(internal: unknown, props: ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['props']> & {}): ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any>['bindings']>;
22
23
  }
23
24
  declare const ExpandCell: $$IsomorphicComponent;
24
- type ExpandCell<T extends object, R extends object, FilterValueType> = InstanceType<typeof ExpandCell<T, R, FilterValueType>>;
25
+ type ExpandCell<T extends object, R extends object, FilterValueType, IdType extends Primitive> = InstanceType<typeof ExpandCell<T, R, FilterValueType, IdType>>;
25
26
  export default ExpandCell;
@@ -1,7 +1,8 @@
1
1
  import type { ExpandDef } from '../../../Types/Columns/Definitions/Expand/ExpandDef.svelte.js';
2
2
  import type { ExpandTableCell } from '../../../Types/Columns/ExpandTableCell.js';
3
- export interface ExpandCellProps<T extends object, R extends object> {
4
- cell: ExpandTableCell<T, R>;
5
- expandedColumnDef: ExpandDef<T, R> | undefined;
6
- onExpandChange: (def: ExpandDef<T, R>) => void;
3
+ import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
4
+ export interface ExpandCellProps<T extends object, R extends object, IdType extends Primitive, FilterValueType> {
5
+ cell: ExpandTableCell<T, R, IdType, FilterValueType>;
6
+ expandedColumnDef: ExpandDef<T, R, IdType, FilterValueType> | undefined;
7
+ onExpandChange: (def: ExpandDef<T, R, IdType, FilterValueType>) => void;
7
8
  }
@@ -17,7 +17,7 @@
17
17
  cell.column.columnDef.getDisplayValue?.(cell.row.original, cell.row.originalIndex) ?? value
18
18
  );
19
19
 
20
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
20
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
21
21
  const toastContext = getContext<ToastContext>(ToastContext.identifier);
22
22
 
23
23
  const options: Array<SelectOption<unknown>> = $derived(
@@ -22,7 +22,7 @@
22
22
 
23
23
  const value: [number, number] = $derived(cell.getValue()) as [number, number];
24
24
 
25
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
25
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
26
26
  const { toast } = getContext<ToastContext>(ToastContext.identifier);
27
27
 
28
28
  // const previousRowIndex: number | undefined = $state(undefined);
@@ -52,12 +52,14 @@
52
52
  untrack(() => {
53
53
  tick()
54
54
  .then(() => {
55
- if (validity === Validity.Invalid) {
56
- tableContext.addInvalidValue(cell.row.original);
57
- } else {
58
- tableContext.removeInvalidValue(cell.row.original);
59
- }
55
+ const x =
56
+ validity === Validity.Invalid
57
+ ? tableContext.addInvalidValue(cell.row.original)
58
+ : tableContext.removeInvalidValue(cell.row.original);
59
+
60
60
  previousValidity = validity;
61
+
62
+ return x;
61
63
  })
62
64
  .catch(devCatch);
63
65
  });
@@ -1,5 +1,6 @@
1
1
  import type { Column } from '../../../Types/Columns/Column.js';
2
2
  import type { RowSelectionDef } from '../../../Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js';
3
- export interface RowSelectionColumn<T extends object> extends Column<T> {
3
+ import type { BoolFilterValueType } from '../../../Types/Filtering/FilterFn.js';
4
+ export interface RowSelectionColumn<T extends object> extends Column<T, BoolFilterValueType> {
4
5
  columnDef: RowSelectionDef<T>;
5
6
  }
@@ -1,5 +1,6 @@
1
1
  import type { TableCell } from '../../../Types/Columns/TableCell.js';
2
+ import type { BoolFilterValueType } from '../../../Types/Filtering/FilterFn.js';
2
3
  import type { RowSelectionColumn } from './RowSelectionColumn.js';
3
- export interface RowSelectionTableCell<T extends object> extends TableCell<T> {
4
+ export interface RowSelectionTableCell<T extends object> extends TableCell<T, BoolFilterValueType> {
4
5
  column: RowSelectionColumn<T>;
5
6
  }
@@ -1,5 +1,6 @@
1
1
  import type { Column } from '../../../Types/Columns/Column.js';
2
2
  import type { SelectDef } from '../../../Types/Columns/Definitions/Accessors/SelectDef.svelte.js';
3
- export interface SelectColumn<T extends object> extends Column<T> {
3
+ import type { SelectFilterValueType } from '../../../Types/Filtering/FilterFn.js';
4
+ export interface SelectColumn<T extends object> extends Column<T, SelectFilterValueType<T>> {
4
5
  columnDef: SelectDef<T>;
5
6
  }
@@ -8,14 +8,14 @@
8
8
  import { Size } from '../../../../../Types/Internal/Size.js';
9
9
  import type { ActionsTableCell } from './ActionsTableCell.js';
10
10
 
11
- export interface TableActionProps<T extends object> {
11
+ export interface TableActionProps<T extends object, FilterValueType> {
12
12
  action: TableActionButton<T>;
13
- cell: ActionsTableCell<T>;
13
+ cell: ActionsTableCell<T, FilterValueType>;
14
14
  }
15
15
  </script>
16
16
 
17
- <script lang="ts" generics="T extends object">
18
- const { action, cell }: TableActionProps<T> = $props();
17
+ <script lang="ts" generics="T extends object,FilterValueType">
18
+ const { action, cell }: TableActionProps<T, FilterValueType> = $props();
19
19
 
20
20
  const isEnabledPromise: boolean | Promise<boolean> = $derived.by(() => {
21
21
  const disabled = action.isDisabled?.(cell.row.original, cell.row.originalIndex);
@@ -1,30 +1,30 @@
1
1
  import type { TableActionButton } from '../../../Types/Columns/TableActionButton.js';
2
2
  import type { ActionsTableCell } from './ActionsTableCell.js';
3
- export interface TableActionProps<T extends object> {
3
+ export interface TableActionProps<T extends object, FilterValueType> {
4
4
  action: TableActionButton<T>;
5
- cell: ActionsTableCell<T>;
5
+ cell: ActionsTableCell<T, FilterValueType>;
6
6
  }
7
- declare function $$render<T extends object>(): {
8
- props: TableActionProps<T>;
7
+ declare function $$render<T extends object, FilterValueType>(): {
8
+ props: TableActionProps<T, FilterValueType>;
9
9
  exports: {};
10
10
  bindings: "";
11
11
  slots: {};
12
12
  events: {};
13
13
  };
14
- declare class __sveltets_Render<T extends object> {
15
- props(): ReturnType<typeof $$render<T>>['props'];
16
- events(): ReturnType<typeof $$render<T>>['events'];
17
- slots(): ReturnType<typeof $$render<T>>['slots'];
14
+ declare class __sveltets_Render<T extends object, FilterValueType> {
15
+ props(): ReturnType<typeof $$render<T, FilterValueType>>['props'];
16
+ events(): ReturnType<typeof $$render<T, FilterValueType>>['events'];
17
+ slots(): ReturnType<typeof $$render<T, FilterValueType>>['slots'];
18
18
  bindings(): "";
19
19
  exports(): {};
20
20
  }
21
21
  interface $$IsomorphicComponent {
22
- new <T extends object>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
23
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
24
- } & ReturnType<__sveltets_Render<T>['exports']>;
25
- <T extends object>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
26
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
22
+ new <T extends object, FilterValueType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, FilterValueType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, FilterValueType>['props']>, ReturnType<__sveltets_Render<T, FilterValueType>['events']>, ReturnType<__sveltets_Render<T, FilterValueType>['slots']>> & {
23
+ $$bindings?: ReturnType<__sveltets_Render<T, FilterValueType>['bindings']>;
24
+ } & ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
25
+ <T extends object, FilterValueType>(internal: unknown, props: ReturnType<__sveltets_Render<T, FilterValueType>['props']> & {}): ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
26
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
27
27
  }
28
28
  declare const TableAction: $$IsomorphicComponent;
29
- type TableAction<T extends object> = InstanceType<typeof TableAction<T>>;
29
+ type TableAction<T extends object, FilterValueType> = InstanceType<typeof TableAction<T, FilterValueType>>;
30
30
  export default TableAction;
@@ -23,7 +23,7 @@
23
23
 
24
24
  const value = $derived(!!cell.getValue());
25
25
 
26
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
26
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
27
27
  const toastContext = getContext<ToastContext>(ToastContext.identifier);
28
28
 
29
29
  const focusDetails: TableFocusDetails<T, BoolFilterValueType> = $derived(
@@ -25,8 +25,8 @@
25
25
 
26
26
  export interface TableColumnProps<T extends object, FilterValueType> {
27
27
  cell: TableCell<T, FilterValueType>;
28
- expandedColumnDef: ExpandDef<T> | undefined;
29
- onExpandChange: (columnDef: ExpandDef<T>) => void;
28
+ expandedColumnDef: ExpandDef<T, object, Primitive, FilterValueType> | undefined;
29
+ onExpandChange: (columnDef: ExpandDef<T, object, Primitive, FilterValueType>) => void;
30
30
  }
31
31
 
32
32
  function isProgressBarTableCell<T extends object>(
@@ -39,6 +39,7 @@
39
39
  <script lang="ts" generics="T extends object,FilterValueType">
40
40
  import { dev } from '$app/environment';
41
41
  import { RowSelectionDef } from '../../../Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js';
42
+ import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
42
43
  import type { RowSelectionTableCell } from './RowSelectionTableCell.js';
43
44
 
44
45
  let { cell, expandedColumnDef, onExpandChange }: TableColumnProps<T, FilterValueType> = $props();
@@ -55,10 +56,12 @@
55
56
  return typeof valueOrComponent === 'function';
56
57
  }
57
58
 
58
- function isActionsDef(cell: TableCell<T>): cell is ActionsTableCell<T> {
59
+ function isActionsDef(cell: TableCell<T>): cell is ActionsTableCell<T, FilterValueType> {
59
60
  return cell.column.columnDef instanceof ActionsDef;
60
61
  }
61
- function isExpandTableCell(cell: TableCell<T>): cell is ExpandTableCell<T> {
62
+ function isExpandTableCell(
63
+ cell: TableCell<T>
64
+ ): cell is ExpandTableCell<T, object, Primitive, FilterValueType> {
62
65
  return cell.column.columnDef instanceof ExpandDef;
63
66
  }
64
67
 
@@ -2,9 +2,10 @@ import { ExpandDef } from '../../../Types/Columns/Definitions/Expand/ExpandDef.s
2
2
  import type { TableCell } from '../../../Types/Columns/TableCell.js';
3
3
  export interface TableColumnProps<T extends object, FilterValueType> {
4
4
  cell: TableCell<T, FilterValueType>;
5
- expandedColumnDef: ExpandDef<T> | undefined;
6
- onExpandChange: (columnDef: ExpandDef<T>) => void;
5
+ expandedColumnDef: ExpandDef<T, object, Primitive, FilterValueType> | undefined;
6
+ onExpandChange: (columnDef: ExpandDef<T, object, Primitive, FilterValueType>) => void;
7
7
  }
8
+ import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
8
9
  declare function $$render<T extends object, FilterValueType>(): {
9
10
  props: TableColumnProps<T, FilterValueType>;
10
11
  exports: {};
@@ -19,7 +19,7 @@
19
19
 
20
20
  const dateValue = $derived(value && value instanceof Date ? value : undefined);
21
21
 
22
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
22
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
23
23
  const { toast } = getContext<ToastContext>(ToastContext.identifier);
24
24
 
25
25
  const columnDef = $derived(cell.column.columnDef);
@@ -103,9 +103,9 @@
103
103
  validityPromise
104
104
  .then(([validity]) => {
105
105
  if (validity === Validity.Invalid) {
106
- tableContext.addInvalidValue(cell.row.original);
106
+ return tableContext.addInvalidValue(cell.row.original);
107
107
  } else {
108
- tableContext.removeInvalidValue(cell.row.original);
108
+ return tableContext.removeInvalidValue(cell.row.original);
109
109
  }
110
110
  })
111
111
  .catch(devCatch);