@lavalogic/scoria 0.13.3 → 0.14.0

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 (70) hide show
  1. package/dist/Components/QuerySelect.svelte +2 -13
  2. package/dist/Components/Table/Body/QuickSearchCell.svelte +22 -17
  3. package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +12 -12
  4. package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +1 -1
  5. package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.d.ts +1 -1
  6. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +5 -6
  7. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte.d.ts +14 -14
  8. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +2 -2
  9. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +2 -2
  10. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +10 -10
  11. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +16 -16
  12. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +2 -2
  13. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +2 -2
  14. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +3 -4
  15. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte.d.ts +1 -1
  16. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.d.ts +2 -2
  17. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +4 -7
  18. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +1 -1
  19. package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.d.ts +2 -2
  20. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +1 -1
  21. package/dist/Components/Table/Body/Rows/Columns/ValidityCellProps.d.ts +1 -1
  22. package/dist/Components/Table/Body/Rows/TableRow.svelte +4 -4
  23. package/dist/Components/Table/Body/TableBodyProps.d.ts +1 -1
  24. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +30 -29
  25. package/dist/Components/Table/Misc/FilterInput.svelte +7 -9
  26. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -12
  27. package/dist/Components/Table/Misc/FilterInputProps.d.ts +1 -1
  28. package/dist/Components/Table/Misc/FilterPanelModal.svelte +1 -1
  29. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +2 -1
  30. package/dist/Components/Table/Misc/TableSidebar.svelte +2 -1
  31. package/dist/Components/Table/Types/Columns/Column.d.ts +1 -1
  32. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +2 -2
  33. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +5 -5
  34. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +5 -5
  35. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +5 -5
  36. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +5 -5
  37. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +9 -9
  38. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +5 -5
  39. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +4 -4
  40. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +4 -4
  41. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +1 -1
  42. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +5 -5
  43. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +1 -1
  44. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +5 -5
  45. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +2 -2
  46. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +2 -2
  47. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +2 -2
  48. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +1 -1
  49. package/dist/Components/Table/Types/Columns/ProgressBarColumn.d.ts +2 -2
  50. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +2 -2
  51. package/dist/Components/Table/Types/Columns/TableCell.d.ts +1 -1
  52. package/dist/Components/Table/Types/Context/ITable.d.ts +3 -3
  53. package/dist/Components/Table/Types/Context/Row.d.ts +3 -3
  54. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +1 -1
  55. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +1 -1
  56. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +1 -1
  57. package/dist/Components/Table/Types/DataRepository/IRemoteDataRepository.d.ts +1 -1
  58. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +1 -1
  59. package/dist/Components/Table/Types/Filtering/CustomFilter.d.ts +3 -3
  60. package/dist/Components/Table/Types/Filtering/CustomRemoteFilters.d.ts +1 -1
  61. package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +1 -1
  62. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +1 -1
  63. package/dist/Contexts/ToastContext.svelte.d.ts +1 -3
  64. package/dist/Contexts/ToastContext.svelte.js +38 -12
  65. package/dist/Helpers/Helpers.svelte.d.ts +8 -2
  66. package/dist/Helpers/Helpers.svelte.js +11 -2
  67. package/dist/Types/Internal/SelectOption.d.ts +1 -1
  68. package/dist/index.d.ts +1 -1
  69. package/dist/index.js +1 -1
  70. package/package.json +9 -9
@@ -50,17 +50,10 @@
50
50
  import { ToastContext } from '../Contexts/ToastContext.svelte.js';
51
51
 
52
52
  import { dev } from '$app/environment';
53
- import {
54
- devCatch,
55
- generateShortUUID,
56
- getErrorMessage,
57
- isErrorResponse,
58
- vowels
59
- } from '../Helpers/Helpers.svelte.js';
53
+ import { devCatch, generateShortUUID, vowels } from '../Helpers/Helpers.svelte.js';
60
54
  import { Colour, ColourSet } from '../scss/colours.js';
61
55
  import type { NonNullableKey, ValueProp } from '../Types/Internal/Misc.js';
62
56
  import { Size } from '../Types/Internal/Size.js';
63
- import { Validity } from '../Types/Internal/Validity.js';
64
57
  import Svelecte from 'svelecte';
65
58
  import { getContext, onMount, type Snippet, tick, untrack } from 'svelte';
66
59
  import Action from './Action.svelte';
@@ -289,11 +282,7 @@
289
282
  }
290
283
  }
291
284
  } catch (e) {
292
- if (isErrorResponse(e)) {
293
- toastContext.toast(e);
294
- } else {
295
- toastContext.toast({ message: getErrorMessage(e), result: Validity.Invalid });
296
- }
285
+ toastContext.toast(e);
297
286
  }
298
287
  }
299
288
  }
@@ -1,6 +1,6 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" generics="T extends object, FilterValueType">
3
+ <script lang="ts" generics="T extends object">
4
4
  import { dev } from '$app/environment';
5
5
  import Action from '../../Action.svelte';
6
6
  import Button from '../../Button.svelte';
@@ -36,9 +36,10 @@
36
36
 
37
37
  const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
38
38
 
39
- const { column, customFilters }: QuickSearchCellProps<T, FilterValueType> = $props();
39
+ const { column, customFilters }: QuickSearchCellProps<T, unknown> = $props();
40
40
 
41
41
  const def = $derived(column.columnDef);
42
+
42
43
  const customFilter = $derived(customFilters?.get(def.id));
43
44
 
44
45
  const isSelect = $derived(
@@ -65,7 +66,7 @@
65
66
  customFilter?.type === CustomFilterType.Number
66
67
  );
67
68
 
68
- function emptyOptsAndWarn(): Array<never> {
69
+ function emptyOptsAndWarn(): Array<SelectOption<unknown>> {
69
70
  console.warn(`def ${def.id} is declared as a select filter but has no getOptions() function`);
70
71
  return [];
71
72
  }
@@ -83,12 +84,13 @@
83
84
 
84
85
  const isSelectOpen = $derived(openedSelect?.value === selectSymbol);
85
86
 
86
- let value: SelectOption<unknown> | string | number | null | undefined = $state(null);
87
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
88
+ let value: unknown | null = $state(null);
87
89
  let valueMin: number | null = $state(null);
88
90
  let valueMax: number | null = $state(null);
89
91
 
90
92
  let selectedOptions: Array<SelectOption<unknown>> = $state([]);
91
- let lastQueryOptions: Array<SelectOption<string | number>> = $state([]);
93
+ let lastQueryOptions: Array<SelectOption<unknown>> = $state([]);
92
94
 
93
95
  const inputId = $derived(`${tableContext.tableName}-cell-quicksearch-${column.id}`);
94
96
 
@@ -122,9 +124,7 @@
122
124
  }
123
125
 
124
126
  untrack(() => {
125
- const gotValue = filteringStateValue as
126
- | Array<string | number | SelectOption<unknown>>
127
- | undefined;
127
+ const gotValue = filteringStateValue as Array<unknown> | undefined;
128
128
 
129
129
  try {
130
130
  // as unknown as string | number | undefined;
@@ -139,7 +139,7 @@
139
139
  if (def.debug) {
140
140
  console.log('value:', $state.snapshot(x));
141
141
  }
142
- value = (x ?? null) as SelectOption<unknown> | null;
142
+ value = x ?? null;
143
143
  } else if (def.debug) {
144
144
  console.log(
145
145
  'filtering state value was undefined',
@@ -160,10 +160,11 @@
160
160
  return;
161
161
  }
162
162
 
163
- const gotValue = filteringStateValue as
164
- | Array<string | number | SelectOption<unknown>>
165
- | undefined;
163
+ const gotValue = filteringStateValue as Array<unknown> | undefined;
166
164
 
165
+ function isSelectOption(it: unknown): it is SelectOption<unknown> {
166
+ return it != null && typeof it == 'object';
167
+ }
167
168
  untrack(async () => {
168
169
  try {
169
170
  const opts = await options;
@@ -171,6 +172,9 @@
171
172
  console.log('possible options:', $state.snapshot(opts));
172
173
  }
173
174
  const x = opts.filter((it) => {
175
+ if (!isSelectOption(it)) {
176
+ return false;
177
+ }
174
178
  if (it.value == undefined) {
175
179
  return true;
176
180
  }
@@ -264,7 +268,7 @@
264
268
  let showToDateModal = $state(false);
265
269
 
266
270
  function generateOnChangeObject(label: string) {
267
- return (newValue: SelectOption<string | number> | null) => {
271
+ return (newValue: SelectOption<unknown> | null) => {
268
272
  tableContext.paginationRepo?.filterBy(def.id, newValue?.value ?? null);
269
273
  tableContext.dataRepo.__queryValues.set(label, newValue);
270
274
  value = newValue;
@@ -272,7 +276,7 @@
272
276
  }
273
277
 
274
278
  function generateOnChangePrimitive(label: string) {
275
- return (newValue: SelectOption<string | number> | null) => {
279
+ return (newValue: SelectOption<unknown> | null) => {
276
280
  tableContext.paginationRepo?.filterBy(def.id, newValue?.value ?? null);
277
281
  tableContext.dataRepo.__queryValues.set(label, newValue?.value ?? null);
278
282
  value = newValue?.value ?? null;
@@ -342,13 +346,14 @@
342
346
 
343
347
  <!-- TODO: multiselect -->
344
348
 
349
+ <!-- FIXME: Most likely Unsafe -->
345
350
  <QuerySelect
346
351
  valueAsObject={false}
347
352
  clearable
348
353
  name={customFilter.objectName ?? 'Item'}
349
354
  valueProp="value"
350
355
  labelProp="label"
351
- value={value as string | number | null}
356
+ value={value as null}
352
357
  query={customFilter.query}
353
358
  bind:options={lastQueryOptions}
354
359
  onchange={generateOnChangePrimitive(label)}
@@ -468,7 +473,7 @@
468
473
  <TextInput
469
474
  data-type="quicksearch"
470
475
  id={inputId}
471
- bind:value
476
+ bind:value={value as string | null}
472
477
  placeholder="Filter&hellip;"
473
478
  variant={InputVariant.Table}
474
479
  oninput={() => {
@@ -505,7 +510,7 @@
505
510
  tableContext.paginationRepo?.filterBy(def.id, value);
506
511
  }}
507
512
  variant={InputVariant.Table}
508
- bind:value
513
+ bind:value={value as string | null}
509
514
  placeholder="Filter&hellip;"
510
515
  />
511
516
  {/if}
@@ -1,25 +1,25 @@
1
1
  import type { QuickSearchCellProps } from './QuickSearchCellProps.js';
2
- declare function $$render<T extends object, FilterValueType>(): {
3
- props: QuickSearchCellProps<T, FilterValueType>;
2
+ declare function $$render<T extends object>(): {
3
+ props: QuickSearchCellProps<T, unknown>;
4
4
  exports: {};
5
5
  bindings: "";
6
6
  slots: {};
7
7
  events: {};
8
8
  };
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'];
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'];
13
13
  bindings(): "";
14
14
  exports(): {};
15
15
  }
16
16
  interface $$IsomorphicComponent {
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']>;
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']>;
22
22
  }
23
23
  declare const QuickSearchCell: $$IsomorphicComponent;
24
- type QuickSearchCell<T extends object, FilterValueType> = InstanceType<typeof QuickSearchCell<T, FilterValueType>>;
24
+ type QuickSearchCell<T extends object> = InstanceType<typeof QuickSearchCell<T>>;
25
25
  export default QuickSearchCell;
@@ -2,5 +2,5 @@ import type { Column } from '../Types/Columns/Column.js';
2
2
  import type { CustomRemoteFilters } from '../Types/Filtering/CustomRemoteFilters.js';
3
3
  export interface QuickSearchCellProps<T extends object, FilterValueType> {
4
4
  column: Column<T, FilterValueType>;
5
- customFilters?: CustomRemoteFilters | undefined;
5
+ customFilters?: CustomRemoteFilters<FilterValueType> | undefined;
6
6
  }
@@ -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
3
  export interface ActionsColumn<T extends object, FilterValueType> extends Column<T, FilterValueType> {
4
- columnDef: ActionsDef<T>;
4
+ columnDef: ActionsDef<T, FilterValueType>;
5
5
  }
@@ -4,21 +4,20 @@
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';
8
7
  import { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
9
8
  import { ToastContext } from '../../../../../Contexts/ToastContext.svelte.js';
10
9
  import { devCatch } from '../../../../../Helpers/Helpers.svelte.js';
11
10
  import { Validity } from '../../../../../Types/Internal/Validity.js';
12
11
  import { getContext, tick, untrack } from 'svelte';
13
12
 
14
- export interface ProgressCellProps<T extends object> {
15
- cell: ProgressBarTableCell<T>;
13
+ export interface ProgressCellProps<T extends object, FilterValueType> {
14
+ cell: ProgressBarTableCell<T, FilterValueType>;
16
15
  }
17
16
  </script>
18
17
 
19
18
  <!-- TODO editable version of this should contain a multi select -->
20
- <script lang="ts" generics="T extends object">
21
- const { cell }: ProgressCellProps<T> = $props();
19
+ <script lang="ts" generics="T extends object, FilterValueType">
20
+ const { cell }: ProgressCellProps<T, FilterValueType> = $props();
22
21
 
23
22
  const value: [number, number] = $derived(cell.getValue()) as [number, number];
24
23
 
@@ -28,7 +27,7 @@
28
27
  // const previousRowIndex: number | undefined = $state(undefined);
29
28
 
30
29
  const focusDetails = $derived(
31
- new TableFocusDetails<T, NumberFilterValueType>(cell, tableContext, toast)
30
+ new TableFocusDetails<T, FilterValueType>(cell, tableContext, toast)
32
31
  );
33
32
 
34
33
  let previousValidity: Validity = $state(Validity.Valid);
@@ -1,28 +1,28 @@
1
1
  import type { ProgressBarTableCell } from '../../../Types/Columns/ProgressBarTableCell.js';
2
- export interface ProgressCellProps<T extends object> {
3
- cell: ProgressBarTableCell<T>;
2
+ export interface ProgressCellProps<T extends object, FilterValueType> {
3
+ cell: ProgressBarTableCell<T, FilterValueType>;
4
4
  }
5
- declare function $$render<T extends object>(): {
6
- props: ProgressCellProps<T>;
5
+ declare function $$render<T extends object, FilterValueType>(): {
6
+ props: ProgressCellProps<T, FilterValueType>;
7
7
  exports: {};
8
8
  bindings: "";
9
9
  slots: {};
10
10
  events: {};
11
11
  };
12
- declare class __sveltets_Render<T extends object> {
13
- props(): ReturnType<typeof $$render<T>>['props'];
14
- events(): ReturnType<typeof $$render<T>>['events'];
15
- slots(): ReturnType<typeof $$render<T>>['slots'];
12
+ declare class __sveltets_Render<T extends object, FilterValueType> {
13
+ props(): ReturnType<typeof $$render<T, FilterValueType>>['props'];
14
+ events(): ReturnType<typeof $$render<T, FilterValueType>>['events'];
15
+ slots(): ReturnType<typeof $$render<T, FilterValueType>>['slots'];
16
16
  bindings(): "";
17
17
  exports(): {};
18
18
  }
19
19
  interface $$IsomorphicComponent {
20
- 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']>> & {
21
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
22
- } & ReturnType<__sveltets_Render<T>['exports']>;
23
- <T extends object>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
24
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
20
+ 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']>> & {
21
+ $$bindings?: ReturnType<__sveltets_Render<T, FilterValueType>['bindings']>;
22
+ } & ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
23
+ <T extends object, FilterValueType>(internal: unknown, props: ReturnType<__sveltets_Render<T, FilterValueType>['props']> & {}): ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
24
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
25
25
  }
26
26
  declare const ProgressCell: $$IsomorphicComponent;
27
- type ProgressCell<T extends object> = InstanceType<typeof ProgressCell<T>>;
27
+ type ProgressCell<T extends object, FilterValueType> = InstanceType<typeof ProgressCell<T, FilterValueType>>;
28
28
  export default ProgressCell;
@@ -1,6 +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
3
  import type { SelectFilterValueType } from '../../../Types/Filtering/FilterFn.js';
4
- export interface SelectColumn<T extends object> extends Column<T, SelectFilterValueType<T>> {
5
- columnDef: SelectDef<T>;
4
+ export interface SelectColumn<T extends object, FilterValueType = SelectFilterValueType<T>> extends Column<T, FilterValueType> {
5
+ columnDef: SelectDef<T, FilterValueType>;
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import type { TableCell } from '../../../Types/Columns/TableCell.js';
2
2
  import type { SelectColumn } from './SelectColumn.js';
3
- export interface SelectTableCell<T extends object> extends TableCell<T> {
4
- column: SelectColumn<T>;
3
+ export interface SelectTableCell<T extends object, FilterValueType> extends TableCell<T, FilterValueType> {
4
+ column: SelectColumn<T, FilterValueType>;
5
5
  }
@@ -23,29 +23,29 @@
23
23
  import TableRowSelectionCheckbox from './TableRowSelectionCheckbox.svelte';
24
24
  import ValidityCell from './ValidityCell.svelte';
25
25
 
26
- export interface TableColumnProps<T extends object, FilterValueType> {
27
- cell: TableCell<T, FilterValueType>;
28
- expandedColumnDef: ExpandDef<T, object, Primitive, FilterValueType> | undefined;
29
- onExpandChange: (columnDef: ExpandDef<T, object, Primitive, FilterValueType>) => void;
26
+ export interface TableColumnProps<T extends object> {
27
+ cell: TableCell<T>;
28
+ expandedColumnDef: ExpandDef<T, object, Primitive> | undefined;
29
+ onExpandChange: (columnDef: ExpandDef<T, object, Primitive>) => void;
30
30
  }
31
31
 
32
32
  function isProgressBarTableCell<T extends object>(
33
33
  cell: TableCell<T>
34
- ): cell is ProgressBarTableCell<T> {
34
+ ): cell is ProgressBarTableCell<T, unknown> {
35
35
  return cell.column.columnDef instanceof ProgressBarDef;
36
36
  }
37
37
  </script>
38
38
 
39
- <script lang="ts" generics="T extends object,FilterValueType">
39
+ <script lang="ts" generics="T extends object">
40
40
  import { dev } from '$app/environment';
41
41
  import { RowSelectionDef } from '../../../Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js';
42
42
  import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
43
43
  import type { RowSelectionTableCell } from './RowSelectionTableCell.js';
44
44
 
45
- let { cell, expandedColumnDef, onExpandChange }: TableColumnProps<T, FilterValueType> = $props();
45
+ let { cell, expandedColumnDef, onExpandChange }: TableColumnProps<T> = $props();
46
46
 
47
47
  function isRowSelectionCell<T extends object>(
48
- cell: TableCell<T, FilterValueType>
48
+ cell: TableCell<T>
49
49
  ): cell is RowSelectionTableCell<T> {
50
50
  return cell.column.columnDef instanceof RowSelectionDef;
51
51
  }
@@ -56,12 +56,12 @@
56
56
  return typeof valueOrComponent === 'function';
57
57
  }
58
58
 
59
- function isActionsDef(cell: TableCell<T>): cell is ActionsTableCell<T, FilterValueType> {
59
+ function isActionsDef(cell: TableCell<T>): cell is ActionsTableCell<T, unknown> {
60
60
  return cell.column.columnDef instanceof ActionsDef;
61
61
  }
62
62
  function isExpandTableCell(
63
63
  cell: TableCell<T>
64
- ): cell is ExpandTableCell<T, object, Primitive, FilterValueType> {
64
+ ): cell is ExpandTableCell<T, object, Primitive, unknown> {
65
65
  return cell.column.columnDef instanceof ExpandDef;
66
66
  }
67
67
 
@@ -1,32 +1,32 @@
1
1
  import { ExpandDef } from '../../../Types/Columns/Definitions/Expand/ExpandDef.svelte.js';
2
2
  import type { TableCell } from '../../../Types/Columns/TableCell.js';
3
- export interface TableColumnProps<T extends object, FilterValueType> {
4
- cell: TableCell<T, FilterValueType>;
5
- expandedColumnDef: ExpandDef<T, object, Primitive, FilterValueType> | undefined;
6
- onExpandChange: (columnDef: ExpandDef<T, object, Primitive, FilterValueType>) => void;
3
+ export interface TableColumnProps<T extends object> {
4
+ cell: TableCell<T>;
5
+ expandedColumnDef: ExpandDef<T, object, Primitive> | undefined;
6
+ onExpandChange: (columnDef: ExpandDef<T, object, Primitive>) => void;
7
7
  }
8
8
  import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
9
- declare function $$render<T extends object, FilterValueType>(): {
10
- props: TableColumnProps<T, FilterValueType>;
9
+ declare function $$render<T extends object>(): {
10
+ props: TableColumnProps<T>;
11
11
  exports: {};
12
12
  bindings: "";
13
13
  slots: {};
14
14
  events: {};
15
15
  };
16
- declare class __sveltets_Render<T extends object, FilterValueType> {
17
- props(): ReturnType<typeof $$render<T, FilterValueType>>['props'];
18
- events(): ReturnType<typeof $$render<T, FilterValueType>>['events'];
19
- slots(): ReturnType<typeof $$render<T, FilterValueType>>['slots'];
16
+ declare class __sveltets_Render<T extends object> {
17
+ props(): ReturnType<typeof $$render<T>>['props'];
18
+ events(): ReturnType<typeof $$render<T>>['events'];
19
+ slots(): ReturnType<typeof $$render<T>>['slots'];
20
20
  bindings(): "";
21
21
  exports(): {};
22
22
  }
23
23
  interface $$IsomorphicComponent {
24
- 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']>> & {
25
- $$bindings?: ReturnType<__sveltets_Render<T, FilterValueType>['bindings']>;
26
- } & ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
27
- <T extends object, FilterValueType>(internal: unknown, props: ReturnType<__sveltets_Render<T, FilterValueType>['props']> & {}): ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
28
- z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
24
+ 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']>> & {
25
+ $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
26
+ } & ReturnType<__sveltets_Render<T>['exports']>;
27
+ <T extends object>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
28
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
29
29
  }
30
30
  declare const TableColumn: $$IsomorphicComponent;
31
- type TableColumn<T extends object, FilterValueType> = InstanceType<typeof TableColumn<T, FilterValueType>>;
31
+ type TableColumn<T extends object> = InstanceType<typeof TableColumn<T>>;
32
32
  export default TableColumn;
@@ -1,5 +1,5 @@
1
1
  import type { TableCell } from '../../../Types/Columns/TableCell.js';
2
2
  import type { TableQueryColumn } from './TableQueryColumn.js';
3
- export interface TableQueryCell<T extends object> extends TableCell<T> {
4
- column: TableQueryColumn<T>;
3
+ export interface TableQueryCell<T extends object, FilterValueType> extends TableCell<T, FilterValueType> {
4
+ column: TableQueryColumn<T, FilterValueType>;
5
5
  }
@@ -1,6 +1,6 @@
1
1
  import type { Column } from '../../../Types/Columns/Column.js';
2
2
  import type { QueryDef } from '../../../Types/Columns/Definitions/Accessors/QueryDef.svelte.js';
3
3
  import type { SelectFilterValueType } from '../../../Types/Filtering/FilterFn.js';
4
- export interface TableQueryColumn<T extends object> extends Column<T, SelectFilterValueType<T>> {
5
- columnDef: QueryDef<T>;
4
+ export interface TableQueryColumn<T extends object, FilterValueType = SelectFilterValueType<T>> extends Column<T, FilterValueType> {
5
+ columnDef: QueryDef<T, FilterValueType>;
6
6
  }
@@ -1,11 +1,10 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" generics="T extends object">
3
+ <script lang="ts" generics="T extends object,">
4
4
  import { dev } from '$app/environment';
5
5
  import QuerySelect from '../../../../QuerySelect.svelte';
6
6
  import type { QueryDef } from '../../../Types/Columns/Definitions/Accessors/QueryDef.svelte.js';
7
7
  import { TableContext } from '../../../Types/Context/TableContext.svelte.js';
8
- import type { SelectFilterValueType } from '../../../Types/Filtering/FilterFn.js';
9
8
  import { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
10
9
  import { ToastContext } from '../../../../../Contexts/ToastContext.svelte.js';
11
10
  import { devCatch } from '../../../../../Helpers/Helpers.svelte.js';
@@ -14,7 +13,7 @@
14
13
  import { getContext, tick, untrack } from 'svelte';
15
14
  import type { TableQuerySelectProps } from './TableQuerySelectProps.js';
16
15
 
17
- const { cell }: TableQuerySelectProps<T> = $props();
16
+ const { cell }: TableQuerySelectProps<T, unknown> = $props();
18
17
 
19
18
  const value = $derived((cell.getValue() ?? null) as unknown);
20
19
 
@@ -103,7 +102,7 @@
103
102
  });
104
103
  });
105
104
 
106
- const focusDetails: TableFocusDetails<T, SelectFilterValueType<T>> = $derived(
105
+ const focusDetails: TableFocusDetails<T, unknown> = $derived(
107
106
  new TableFocusDetails(cell, tableContext, toast)
108
107
  );
109
108
 
@@ -1,6 +1,6 @@
1
1
  import type { TableQuerySelectProps } from './TableQuerySelectProps.js';
2
2
  declare function $$render<T extends object>(): {
3
- props: TableQuerySelectProps<T>;
3
+ props: TableQuerySelectProps<T, unknown>;
4
4
  exports: {};
5
5
  bindings: "";
6
6
  slots: {};
@@ -1,4 +1,4 @@
1
1
  import type { TableQueryCell } from './TableQueryCell.js';
2
- export interface TableQuerySelectProps<T extends object> {
3
- cell: TableQueryCell<T>;
2
+ export interface TableQuerySelectProps<T extends object, FilterValueType> {
3
+ cell: TableQueryCell<T, FilterValueType>;
4
4
  }
@@ -4,7 +4,6 @@
4
4
  import { dev } from '$app/environment';
5
5
  import SingleSelect from '../../../../SingleSelect.svelte';
6
6
  import { TableContext } from '../../../Types/Context/TableContext.svelte.js';
7
- import type { SelectFilterValueType } from '../../../Types/Filtering/FilterFn.js';
8
7
  import { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
9
8
  import { ToastContext } from '../../../../../Contexts/ToastContext.svelte.js';
10
9
  import { devCatch } from '../../../../../Helpers/Helpers.svelte.js';
@@ -15,7 +14,7 @@
15
14
  </script>
16
15
 
17
16
  <script lang="ts" generics="T extends object">
18
- const { cell }: TableSelectProps<T> = $props();
17
+ const { cell }: TableSelectProps<T, T> = $props();
19
18
 
20
19
  let tdref = $state<HTMLTableCellElement | undefined>();
21
20
 
@@ -59,7 +58,7 @@
59
58
  })().catch(devCatch);
60
59
  });
61
60
 
62
- const focusDetails: TableFocusDetails<T, SelectFilterValueType<T> | undefined> = $derived(
61
+ const focusDetails: TableFocusDetails<T, T> = $derived(
63
62
  new TableFocusDetails(cell, tableContext, toast)
64
63
  );
65
64
 
@@ -110,12 +109,10 @@
110
109
  });
111
110
 
112
111
  const optionsPromise = $derived(
113
- (cell.column.columnDef.getSpecificOptions?.(
112
+ cell.column.columnDef.getSpecificOptions?.(
114
113
  cell.row.original,
115
114
  focusDetails.coordinates.column
116
- ) ?? cell.column.columnDef.getOptions()) as
117
- | Array<SelectOption<T>>
118
- | Promise<Array<SelectOption<T>>>
115
+ ) ?? cell.column.columnDef.getOptions()
119
116
  );
120
117
 
121
118
  let previousValidity: Validity = $state(Validity.Valid);
@@ -1,6 +1,6 @@
1
1
  import type { TableSelectProps } from './TableSelectProps.js';
2
2
  declare function $$render<T extends object>(): {
3
- props: TableSelectProps<T>;
3
+ props: TableSelectProps<T, T>;
4
4
  exports: {};
5
5
  bindings: "";
6
6
  slots: {};
@@ -1,4 +1,4 @@
1
1
  import type { SelectTableCell } from './SelectTableCell.js';
2
- export interface TableSelectProps<T extends object> {
3
- cell: SelectTableCell<T>;
2
+ export interface TableSelectProps<T extends object, FilterValueType> {
3
+ cell: SelectTableCell<T, FilterValueType>;
4
4
  }
@@ -59,7 +59,7 @@
59
59
  const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
60
60
  const toastContext = getContext<ToastContext>(ToastContext.identifier);
61
61
 
62
- const focusDetails: TableFocusDetails<T, never> = $derived(
62
+ const focusDetails: TableFocusDetails<T, FilterValueType> = $derived(
63
63
  new TableFocusDetails(cell, tableContext, toastContext.toast)
64
64
  );
65
65
 
@@ -1,4 +1,4 @@
1
1
  import type { TableCell } from '../../../Types/Columns/TableCell.js';
2
- export interface ValidityCellProps<T extends object, in FilterValueType> {
2
+ export interface ValidityCellProps<T extends object, FilterValueType> {
3
3
  cell: TableCell<T, FilterValueType>;
4
4
  }
@@ -20,7 +20,7 @@
20
20
  const hoverable = $derived(tableContext.changeColourOnHover);
21
21
 
22
22
  //HACK converted this from derived to state+deffect because otherwise this throws an unsafe mutation error deeper down the stack
23
- const cells: Array<TableCell<T, unknown>> = $derived(
23
+ const cells: Array<TableCell<T>> = $derived(
24
24
  side === 'left'
25
25
  ? row.getLeftVisibleCells()
26
26
  : side === 'right'
@@ -28,7 +28,7 @@
28
28
  : row.getCenterVisibleCells()
29
29
  );
30
30
 
31
- let expandedColumnDef: ExpandDef<T, object, Primitive, unknown> | undefined = $state();
31
+ let expandedColumnDef: ExpandDef<T, object, Primitive> | undefined = $state();
32
32
 
33
33
  $effect(() => {
34
34
  if (cells.length) {
@@ -45,7 +45,7 @@
45
45
  let innerColumnDefs: DefsWrapper<object> = $state({ defs: [] });
46
46
  let innerTableName: string | undefined = $state();
47
47
 
48
- let prevExpandedColumnDef: ExpandDef<T, object, Primitive, unknown> | undefined = $state();
48
+ let prevExpandedColumnDef: ExpandDef<T, object, Primitive> | undefined = $state();
49
49
 
50
50
  const rowIndex = $derived(cells.at(0) && cells[0].row.visibleIndex);
51
51
  const highlighted = $derived(
@@ -84,7 +84,7 @@
84
84
  });
85
85
  });
86
86
 
87
- function onExpandChange(columnDef: ExpandDef<T, object, Primitive, unknown>) {
87
+ function onExpandChange(columnDef: ExpandDef<T, object, Primitive>) {
88
88
  if (expandedColumnDef?.id === columnDef.id) {
89
89
  expandedColumnDef = undefined;
90
90
  } else {
@@ -3,6 +3,6 @@ import type { HeightData } from './HeightData.js';
3
3
  export interface TableBodyProps<T extends object> {
4
4
  side: 'left' | 'centre' | 'right';
5
5
  heights: Array<HeightData<T>>;
6
- columns: Array<Column<T, unknown>>;
6
+ columns: Array<Column<T>>;
7
7
  includeHighlight: boolean;
8
8
  }