@lavalogic/scoria 0.12.2 → 0.13.1

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 (97) hide show
  1. package/dist/Components/Base/ContextWrapper.svelte +16 -1
  2. package/dist/Components/Base/ContextWrapper.svelte.d.ts +13 -0
  3. package/dist/Components/TabGroupButtonProps.d.ts +1 -1
  4. package/dist/Components/Table/Body/QuickSearchCell.svelte +2 -3
  5. package/dist/Components/Table/Body/Rows/ColumnList.svelte +1 -1
  6. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +1 -1
  7. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +3 -3
  8. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte.d.ts +12 -12
  9. package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +2 -2
  10. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +27 -17
  11. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +11 -11
  12. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +11 -9
  13. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +12 -12
  14. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +8 -4
  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 +4 -4
  18. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +12 -12
  19. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +2 -2
  20. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +11 -8
  21. package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.d.ts +5 -0
  22. package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.js +1 -0
  23. package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.d.ts +5 -0
  24. package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.js +1 -0
  25. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +4 -3
  26. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte.d.ts +2 -1
  27. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +16 -9
  28. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +17 -16
  29. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +5 -4
  30. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +10 -8
  31. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte.d.ts +2 -1
  32. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +10 -7
  33. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +11 -7
  34. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +2 -1
  35. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +10 -7
  36. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +11 -9
  37. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +12 -12
  38. package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +2 -2
  39. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +7 -7
  40. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte.d.ts +12 -12
  41. package/dist/Components/Table/Body/Rows/Columns/ValidityCellProps.d.ts +2 -2
  42. package/dist/Components/Table/Body/Rows/TableRow.svelte +7 -6
  43. package/dist/Components/Table/Body/TableBody.svelte +19 -15
  44. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.d.ts +1 -1
  45. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +17 -2
  46. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +29 -16
  47. package/dist/Components/Table/Headers/SelectAllHeader.svelte +1 -1
  48. package/dist/Components/Table/Headers/TableHead.svelte +1 -1
  49. package/dist/Components/Table/Misc/ColumnPanel.svelte +1 -1
  50. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +1 -1
  51. package/dist/Components/Table/Misc/FilterInput.svelte +1 -3
  52. package/dist/Components/Table/Misc/FilterPanel.svelte +2 -2
  53. package/dist/Components/Table/Misc/FilterPanelModal.svelte +1 -1
  54. package/dist/Components/Table/Misc/TableFooter.svelte +1 -1
  55. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +1 -1
  56. package/dist/Components/Table/Misc/TableSidebar.svelte +2 -1
  57. package/dist/Components/Table/Misc/ToolboxPanel.svelte +2 -2
  58. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +1 -1
  59. package/dist/Components/Table/NestedTable.svelte +12 -8
  60. package/dist/Components/Table/NestedTable.svelte.d.ts +15 -15
  61. package/dist/Components/Table/Table.svelte +111 -118
  62. package/dist/Components/Table/Table.svelte.d.ts +16 -15
  63. package/dist/Components/Table/Types/Columns/Column.d.ts +2 -2
  64. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +2 -2
  65. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +6 -6
  66. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +3 -3
  67. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +6 -6
  68. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +2 -2
  69. package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +3 -2
  70. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +3 -2
  71. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +2 -1
  72. package/dist/Components/Table/Types/Columns/TableCell.d.ts +2 -2
  73. package/dist/Components/Table/Types/Context/ITable.d.ts +1 -1
  74. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +32 -29
  75. package/dist/Components/Table/Types/Context/TableContext.svelte.js +313 -278
  76. package/dist/Components/Table/Types/Context/TableInitOptions.d.ts +4 -2
  77. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +1 -1
  78. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +1 -2
  79. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +2 -1
  80. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +31 -8
  81. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +2 -1
  82. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +4 -1
  83. package/dist/Components/Table/Types/Filtering/CustomFilterFn.d.ts +1 -1
  84. package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +1 -1
  85. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +7 -6
  86. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +8 -2
  87. package/dist/Components/VerticalTabGroupButton.svelte +1 -1
  88. package/dist/Components/VerticalTabGroupButton.svelte.d.ts +5 -5
  89. package/dist/Components/VerticalTabGroupProps.d.ts +2 -2
  90. package/dist/Contexts/ToastContext.svelte.d.ts +3 -1
  91. package/dist/Contexts/ToastContext.svelte.js +2 -2
  92. package/dist/Helpers/Helpers.svelte.d.ts +1 -2
  93. package/dist/Types/Examples/ExampleModal.svelte +2 -2
  94. package/dist/Types/Examples/ExampleModal.svelte.d.ts +23 -2
  95. package/dist/Types/Internal/TabOption.d.ts +1 -1
  96. package/dist/index.d.ts +1 -1
  97. package/package.json +18 -18
@@ -1,3 +1,17 @@
1
+ <!--
2
+ @component
3
+ Sets Contexts expected to exist for internal functionalities:
4
+ Context Menu, Tooltip, Toast, Untyped Input.
5
+
6
+ It is meant to be used in a +page.svelte or a +layout.svelte as early as required.
7
+
8
+ ### Usage
9
+ ```svelte
10
+ <ContextWrapper>
11
+ {@render children()}
12
+ </ChontextWrapper>
13
+ ```
14
+ -->
1
15
  <script lang="ts">
2
16
  import { AlertContext } from '../../Contexts/AlertContext.svelte.js';
3
17
  import { ContextMenuContext } from '../../Contexts/ContextMenuContext.svelte.js';
@@ -19,7 +33,7 @@
19
33
  const alertContext = new AlertContext();
20
34
  setContext(AlertContext.identifier, alertContext);
21
35
 
22
- // svelte-ignore state_referenced_locally
36
+ // NOTE known limitation. Not expected to mutate after instantiation
23
37
  const untypedListenerContext = new UntypedInputContext(debug);
24
38
  setContext(UntypedInputContext.identifier, untypedListenerContext);
25
39
  </script>
@@ -32,3 +46,4 @@
32
46
  {/if}
33
47
  <svelte:window onkeydown={untypedListenerContext.handleGlobalKeydown} />
34
48
  {@render children()}
49
+ <!-- -->
@@ -1,4 +1,17 @@
1
1
  import type { ContextWrapperProps } from './ContextWrapperProps.js';
2
+ /**
3
+ * Sets Contexts expected to exist for internal functionalities:
4
+ * Context Menu, Tooltip, Toast, Untyped Input.
5
+ *
6
+ * It is meant to be used in a +page.svelte or a +layout.svelte as early as required.
7
+ *
8
+ * ### Usage
9
+ * ```svelte
10
+ * <ContextWrapper>
11
+ * {@render children()}
12
+ * </ChontextWrapper>
13
+ * ```
14
+ */
2
15
  declare const ContextWrapper: import("svelte").Component<ContextWrapperProps, {}, "">;
3
16
  type ContextWrapper = ReturnType<typeof ContextWrapper>;
4
17
  export default ContextWrapper;
@@ -1,5 +1,5 @@
1
1
  import type { TabOption } from '../Types/Internal/TabOption.js';
2
- export interface TabGroupButtonProps<Args extends object | undefined> {
2
+ export interface TabGroupButtonProps<Args> {
3
3
  option: TabOption<Args>;
4
4
  selected: boolean;
5
5
  }
@@ -33,7 +33,8 @@
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);
36
+
37
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
37
38
 
38
39
  const { column, customFilters }: QuickSearchCellProps<T> = $props();
39
40
 
@@ -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();
@@ -8,7 +8,7 @@
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
 
@@ -7,7 +7,7 @@
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
12
  const { columnDef }: ColumnListRowProps<T> = $props();
13
13
 
@@ -27,13 +27,13 @@
27
27
  } as const;
28
28
  </script>
29
29
 
30
- <script lang="ts" generics="T extends object">
31
- const { cell }: AccessorComponentProps<T> = $props();
30
+ <script lang="ts" generics="T extends object, FilterValueType">
31
+ const { cell }: AccessorComponentProps<T, FilterValueType> = $props();
32
32
 
33
33
  const CurrentComponent = $derived(getAppropriateAccessorDef(cell.column.columnDef));
34
34
 
35
35
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
- function getAppropriateAccessorDef(columnDef: ColumnDef<T>): Component<any> {
36
+ function getAppropriateAccessorDef(columnDef: ColumnDef<T, FilterValueType>): Component<any> {
37
37
  if (columnDef instanceof AccessorDef) {
38
38
  return cellTypes[columnDef.accessorType];
39
39
  }
@@ -1,25 +1,25 @@
1
1
  import type { AccessorComponentProps } from './AccessorComponentProps.js';
2
- declare function $$render<T extends object>(): {
3
- props: AccessorComponentProps<T>;
2
+ declare function $$render<T extends object, FilterValueType>(): {
3
+ props: AccessorComponentProps<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 AccessorComponent: $$IsomorphicComponent;
24
- type AccessorComponent<T extends object> = InstanceType<typeof AccessorComponent<T>>;
24
+ type AccessorComponent<T extends object, FilterValueType> = InstanceType<typeof AccessorComponent<T, FilterValueType>>;
25
25
  export default AccessorComponent;
@@ -1,4 +1,4 @@
1
1
  import type { TableCell } from '../../../Types/Columns/TableCell.js';
2
- export interface AccessorComponentProps<T extends object> {
3
- cell: TableCell<T>;
2
+ export interface AccessorComponentProps<T extends object, FilterValueType> {
3
+ cell: TableCell<T, FilterValueType>;
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';
@@ -19,12 +19,12 @@
19
19
  export let shownPopup = refWrapper<symbol | undefined>(undefined);
20
20
  </script>
21
21
 
22
- <script lang="ts" generics="T extends object">
22
+ <script lang="ts" generics="T extends object,FilterValueType">
23
23
  const { cell }: ActionsCellProps<T> = $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);
@@ -33,7 +33,7 @@
33
33
  const thisPopupIsVisibile = $derived(thisPopup === shownPopup.value);
34
34
  const hasValue: boolean = $derived(value !== undefined);
35
35
  const edge: MultiFocusEdge | undefined = $state();
36
- const focusDetails: TableFocusDetails<T> = $derived(
36
+ const focusDetails: TableFocusDetails<T, FilterValueType> = $derived(
37
37
  new TableFocusDetails(cell, tableContext, toastContext.toast)
38
38
  );
39
39
 
@@ -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,26 +1,26 @@
1
1
  import type { ActionsCellProps } from './ActionsCellProps.js';
2
2
  export declare let shownPopup: import("../../../../../index.js").RefWrapper<symbol | undefined>;
3
- declare function $$render<T extends object>(): {
3
+ declare function $$render<T extends object, FilterValueType>(): {
4
4
  props: ActionsCellProps<T>;
5
5
  exports: {};
6
6
  bindings: "";
7
7
  slots: {};
8
8
  events: {};
9
9
  };
10
- declare class __sveltets_Render<T extends object> {
11
- props(): ReturnType<typeof $$render<T>>['props'];
12
- events(): ReturnType<typeof $$render<T>>['events'];
13
- slots(): ReturnType<typeof $$render<T>>['slots'];
10
+ declare class __sveltets_Render<T extends object, FilterValueType> {
11
+ props(): ReturnType<typeof $$render<T, FilterValueType>>['props'];
12
+ events(): ReturnType<typeof $$render<T, FilterValueType>>['events'];
13
+ slots(): ReturnType<typeof $$render<T, FilterValueType>>['slots'];
14
14
  bindings(): "";
15
15
  exports(): {};
16
16
  }
17
17
  interface $$IsomorphicComponent {
18
- 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']>> & {
19
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
20
- } & ReturnType<__sveltets_Render<T>['exports']>;
21
- <T extends object>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
22
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
18
+ 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']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<T, FilterValueType>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
21
+ <T extends object, FilterValueType>(internal: unknown, props: ReturnType<__sveltets_Render<T, FilterValueType>['props']> & {}): ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
23
23
  }
24
24
  declare const ActionsCell: $$IsomorphicComponent;
25
- type ActionsCell<T extends object> = InstanceType<typeof ActionsCell<T>>;
25
+ type ActionsCell<T extends object, FilterValueType> = InstanceType<typeof ActionsCell<T, FilterValueType>>;
26
26
  export default ActionsCell;
@@ -1,7 +1,7 @@
1
1
  <svelte:options runes />
2
2
 
3
3
  <!-- TODO editable version of this should contain a multi select -->
4
- <script lang="ts" generics="T extends object">
4
+ <script lang="ts" generics="T extends object,FilterValueType">
5
5
  import Bubble from '../../../../Bubble.svelte';
6
6
  import { BubbleDef } from '../../../Types/Columns/Definitions/Display/BubbleDef.svelte.js';
7
7
  import { TableContext } from '../../../Types/Context/TableContext.svelte.js';
@@ -12,14 +12,14 @@
12
12
  import { getContext, tick, untrack } from 'svelte';
13
13
  import type { FocusableImmutableCellProps } from './FocusableImmutableCellProps.js';
14
14
 
15
- const { cell }: FocusableImmutableCellProps<T> = $props();
15
+ const { cell }: FocusableImmutableCellProps<T, FilterValueType> = $props();
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
- const focusDetails: TableFocusDetails<T> = $derived(
22
+ const focusDetails: TableFocusDetails<T, FilterValueType> = $derived(
23
23
  new TableFocusDetails(cell, tableContext, toastContext.toast)
24
24
  );
25
25
 
@@ -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,25 +1,25 @@
1
1
  import type { FocusableImmutableCellProps } from './FocusableImmutableCellProps.js';
2
- declare function $$render<T extends object>(): {
3
- props: FocusableImmutableCellProps<T>;
2
+ declare function $$render<T extends object, FilterValueType>(): {
3
+ props: FocusableImmutableCellProps<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 BubbleCell: $$IsomorphicComponent;
24
- type BubbleCell<T extends object> = InstanceType<typeof BubbleCell<T>>;
24
+ type BubbleCell<T extends object, FilterValueType> = InstanceType<typeof BubbleCell<T, FilterValueType>>;
25
25
  export default BubbleCell;
@@ -1,8 +1,12 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" generics="T extends object, R extends object">
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,11 +14,11 @@
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 { cell, expandedColumnDef, onExpandChange }: ExpandCellProps<T, R, IdType> = $props();
14
18
 
15
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
19
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
16
20
  const toastContext = getContext<ToastContext>(ToastContext.identifier);
17
- const focusDetails: TableFocusDetails<T> = $derived(
21
+ const focusDetails: TableFocusDetails<T, FilterValueType> = $derived(
18
22
  new TableFocusDetails(cell, tableContext, toastContext.toast)
19
23
  );
20
24
 
@@ -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>(): {
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>;
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> {
10
- props(): ReturnType<typeof $$render<T, R>>['props'];
11
- events(): ReturnType<typeof $$render<T, R>>['events'];
12
- slots(): ReturnType<typeof $$render<T, R>>['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>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, R>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, R>['props']>, ReturnType<__sveltets_Render<T, R>['events']>, ReturnType<__sveltets_Render<T, R>['slots']>> & {
18
- $$bindings?: ReturnType<__sveltets_Render<T, R>['bindings']>;
19
- } & ReturnType<__sveltets_Render<T, R>['exports']>;
20
- <T extends object, R extends object>(internal: unknown, props: ReturnType<__sveltets_Render<T, R>['props']> & {}): ReturnType<__sveltets_Render<T, R>['exports']>;
21
- z_$$bindings?: ReturnType<__sveltets_Render<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> = InstanceType<typeof ExpandCell<T, R>>;
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> {
5
+ cell: ExpandTableCell<T, R, IdType>;
6
+ expandedColumnDef: ExpandDef<T, R, IdType> | undefined;
7
+ onExpandChange: (def: ExpandDef<T, R, IdType>) => void;
7
8
  }
@@ -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 { TableContext } from '../../../Types/Context/TableContext.svelte.js';
5
5
  import { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
6
6
  import { ToastContext } from '../../../../../Contexts/ToastContext.svelte.js';
@@ -9,7 +9,7 @@
9
9
  import { getContext } from 'svelte';
10
10
  import type { FocusableImmutableCellProps } from './FocusableImmutableCellProps.js';
11
11
 
12
- const { cell, children }: FocusableImmutableCellProps<T> = $props();
12
+ const { cell, children }: FocusableImmutableCellProps<T, FilterValueType> = $props();
13
13
 
14
14
  const value = $derived(cell.getValue());
15
15
 
@@ -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(
@@ -27,7 +27,7 @@
27
27
  );
28
28
  const hasValue: boolean = $derived(value !== undefined);
29
29
 
30
- const focusDetails: TableFocusDetails<T> = $derived(
30
+ const focusDetails: TableFocusDetails<T, FilterValueType> = $derived(
31
31
  new TableFocusDetails(cell, tableContext, toastContext.toast)
32
32
  );
33
33
  </script>
@@ -1,25 +1,25 @@
1
1
  import type { FocusableImmutableCellProps } from './FocusableImmutableCellProps.js';
2
- declare function $$render<T extends object>(): {
3
- props: FocusableImmutableCellProps<T>;
2
+ declare function $$render<T extends object, FilterValueType>(): {
3
+ props: FocusableImmutableCellProps<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 FocusableImmutableCell: $$IsomorphicComponent;
24
- type FocusableImmutableCell<T extends object> = InstanceType<typeof FocusableImmutableCell<T>>;
24
+ type FocusableImmutableCell<T extends object, FilterValueType> = InstanceType<typeof FocusableImmutableCell<T, FilterValueType>>;
25
25
  export default FocusableImmutableCell;
@@ -1,6 +1,6 @@
1
1
  import type { TableCell } from '../../../Types/Columns/TableCell.js';
2
2
  import type { Snippet } from 'svelte';
3
- export interface FocusableImmutableCellProps<T extends object> {
4
- cell: TableCell<T>;
3
+ export interface FocusableImmutableCellProps<T extends object, FilterValueType> {
4
+ cell: TableCell<T, FilterValueType>;
5
5
  children?: Snippet;
6
6
  }
@@ -4,6 +4,7 @@
4
4
  import ProgressBubble from '../../../../ProgressBubble.svelte';
5
5
  import type { ProgressBarTableCell } from '../../../Types/Columns/ProgressBarTableCell.js';
6
6
  import { TableContext } from '../../../Types/Context/TableContext.svelte.js';
7
+ import type { NumberFilterValueType } from '../../../Types/Filtering/FilterFn.js';
7
8
  import { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
8
9
  import { ToastContext } from '../../../../../Contexts/ToastContext.svelte.js';
9
10
  import { devCatch } from '../../../../../Helpers/Helpers.svelte.js';
@@ -21,13 +22,13 @@
21
22
 
22
23
  const value: [number, number] = $derived(cell.getValue()) as [number, number];
23
24
 
24
- const tableContext = getContext<TableContext<T>>(TableContext.identifier);
25
+ const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
25
26
  const { toast } = getContext<ToastContext>(ToastContext.identifier);
26
27
 
27
28
  // const previousRowIndex: number | undefined = $state(undefined);
28
29
 
29
- const focusDetails: TableFocusDetails<T> = $derived(
30
- new TableFocusDetails(cell, tableContext, toast)
30
+ const focusDetails = $derived(
31
+ new TableFocusDetails<T, NumberFilterValueType>(cell, tableContext, toast)
31
32
  );
32
33
 
33
34
  let previousValidity: Validity = $state(Validity.Valid);
@@ -51,12 +52,14 @@
51
52
  untrack(() => {
52
53
  tick()
53
54
  .then(() => {
54
- if (validity === Validity.Invalid) {
55
- tableContext.addInvalidValue(cell.row.original);
56
- } else {
57
- tableContext.removeInvalidValue(cell.row.original);
58
- }
55
+ const x =
56
+ validity === Validity.Invalid
57
+ ? tableContext.addInvalidValue(cell.row.original)
58
+ : tableContext.removeInvalidValue(cell.row.original);
59
+
59
60
  previousValidity = validity;
61
+
62
+ return x;
60
63
  })
61
64
  .catch(devCatch);
62
65
  });
@@ -0,0 +1,5 @@
1
+ import type { Column } from '../../../Types/Columns/Column.js';
2
+ import type { RowSelectionDef } from '../../../Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js';
3
+ export interface RowSelectionColumn<T extends object> extends Column<T> {
4
+ columnDef: RowSelectionDef<T>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import type { TableCell } from '../../../Types/Columns/TableCell.js';
2
+ import type { RowSelectionColumn } from './RowSelectionColumn.js';
3
+ export interface RowSelectionTableCell<T extends object> extends TableCell<T> {
4
+ column: RowSelectionColumn<T>;
5
+ }