@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
@@ -15,7 +15,7 @@ import { ProgressBarDef } from '../Types/Columns/Definitions/Display/ProgressBar
15
15
  import { ValidityDef } from '../Types/Columns/Definitions/Display/ValidityDef.svelte.js';
16
16
  import { ExpandDef } from '../Types/Columns/Definitions/Expand/ExpandDef.svelte.js';
17
17
  export function generateExampleItemColumnDefs(modal) {
18
- const expandDef = new ExpandDef({
18
+ const expandDef = $state(new ExpandDef({
19
19
  accessorFn: (it) => [it],
20
20
  getInnerColumnDefs: () => generateExampleItemColumnDefs(modal),
21
21
  header: 'Expand Cell',
@@ -27,7 +27,34 @@ export function generateExampleItemColumnDefs(modal) {
27
27
  getUserId: () => '1'
28
28
  },
29
29
  isEnabled: () => true
30
- });
30
+ }));
31
+ const selectDef = $state(new SelectDef({
32
+ id: 'someSelect',
33
+ header: 'Select Example',
34
+ optional: false,
35
+ getOptions: () => {
36
+ return [
37
+ {
38
+ label: 'First Option',
39
+ value: ExampleSelectEnum.FirstOption
40
+ },
41
+ {
42
+ label: 'Second Option',
43
+ value: ExampleSelectEnum.SecondOption
44
+ },
45
+ {
46
+ label: 'Third Option',
47
+ value: ExampleSelectEnum.ThirdOption
48
+ },
49
+ {
50
+ label: 'Fourth Option',
51
+ value: ExampleSelectEnum.FourthOption
52
+ }
53
+ ];
54
+ },
55
+ getDisplayValue: (item) => item.someSelect,
56
+ isEditable: () => true
57
+ }));
31
58
  let defs = $state([
32
59
  expandDef,
33
60
  new ValidityDef({
@@ -143,33 +170,7 @@ export function generateExampleItemColumnDefs(modal) {
143
170
  defaultHidden: true,
144
171
  showTime: true
145
172
  }),
146
- new SelectDef({
147
- id: 'someSelect',
148
- header: 'Select Example',
149
- optional: false,
150
- getOptions: () => {
151
- return [
152
- {
153
- label: 'First Option',
154
- value: ExampleSelectEnum.FirstOption
155
- },
156
- {
157
- label: 'Second Option',
158
- value: ExampleSelectEnum.SecondOption
159
- },
160
- {
161
- label: 'Third Option',
162
- value: ExampleSelectEnum.ThirdOption
163
- },
164
- {
165
- label: 'Fourth Option',
166
- value: ExampleSelectEnum.FourthOption
167
- }
168
- ];
169
- },
170
- getDisplayValue: (item) => item.someSelect,
171
- isEditable: () => true
172
- }),
173
+ selectDef,
173
174
  new BubbleDef({
174
175
  header: 'Generated Bubble',
175
176
  id: 'generatedBubble',
@@ -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 Button from '../../Button.svelte';
6
6
  import MultiSelect from '../../MultiSelect.svelte';
@@ -26,7 +26,7 @@
26
26
 
27
27
  const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
28
28
 
29
- const { def, customFilters }: FilterInputProps<T, FilterValueType> = $props();
29
+ const { def, customFilters }: FilterInputProps<T, unknown> = $props();
30
30
 
31
31
  const customFilter = $derived(customFilters?.get(def.id));
32
32
 
@@ -37,7 +37,7 @@
37
37
  let valueMax: number | null = $state(null);
38
38
 
39
39
  let selectedOptions: Array<SelectOption<unknown>> = $state([]);
40
- let lastQueryOptions: Array<SelectOption<string | number>> = $state([]);
40
+ let lastQueryOptions: Array<SelectOption<unknown>> = $state([]);
41
41
 
42
42
  const isNumeric = $derived(
43
43
  def instanceof NumberInputDef || customFilter?.type === CustomFilterType.Number
@@ -108,7 +108,7 @@
108
108
  if (def.debug) {
109
109
  console.log('value:', $state.snapshot(x));
110
110
  }
111
- value = (x ?? null) as SelectOption<string | number> | null;
111
+ value = (x ?? null) as SelectOption<unknown> | null;
112
112
  } else if (def.debug) {
113
113
  console.log(
114
114
  'filtering state value was undefined',
@@ -132,9 +132,7 @@
132
132
  }
133
133
  const x = opts.filter((it) => {
134
134
  if (it.value != null && (typeof it.value == 'string' || typeof it.value == 'number')) {
135
- return (filteringStateValue as Array<string | number> | undefined)?.includes(
136
- it.value
137
- );
135
+ return (filteringStateValue as Array<unknown> | undefined)?.includes(it.value);
138
136
  }
139
137
  return false;
140
138
  });
@@ -234,7 +232,7 @@
234
232
  let showToDateModal = $state(false);
235
233
 
236
234
  function generateOnChangeObject(label: string) {
237
- return (newValue: SelectOption<string | number> | null) => {
235
+ return (newValue: SelectOption<unknown> | null) => {
238
236
  tableContext.paginationRepo?.filterBy(def.id, newValue?.value ?? null);
239
237
  tableContext.dataRepo.__queryValues.set(label, newValue ?? null);
240
238
  value = newValue ?? null;
@@ -242,7 +240,7 @@
242
240
  }
243
241
 
244
242
  function generateOnChangePrimitive(label: string) {
245
- return (newValue: SelectOption<string | number> | null) => {
243
+ return (newValue: SelectOption<unknown> | null) => {
246
244
  tableContext.paginationRepo?.filterBy(def.id, newValue?.value ?? null);
247
245
  tableContext.dataRepo.__queryValues.set(label, newValue?.value ?? null);
248
246
  value = newValue?.value ?? null;
@@ -1,25 +1,25 @@
1
1
  import type { FilterInputProps } from './FilterInputProps.js';
2
- declare function $$render<T extends object, FilterValueType>(): {
3
- props: FilterInputProps<T, FilterValueType>;
2
+ declare function $$render<T extends object>(): {
3
+ props: FilterInputProps<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 FilterInput: $$IsomorphicComponent;
24
- type FilterInput<T extends object, FilterValueType> = InstanceType<typeof FilterInput<T, FilterValueType>>;
24
+ type FilterInput<T extends object> = InstanceType<typeof FilterInput<T>>;
25
25
  export default FilterInput;
@@ -2,5 +2,5 @@ import type { ColumnDef } from '../Types/Columns/Definitions/ColumnDef.svelte.js
2
2
  import type { CustomRemoteFilters } from '../Types/Filtering/CustomRemoteFilters.js';
3
3
  export interface FilterInputProps<T extends object, FilterValueType> {
4
4
  def: ColumnDef<T, FilterValueType>;
5
- customFilters?: CustomRemoteFilters | undefined;
5
+ customFilters?: CustomRemoteFilters<FilterValueType> | undefined;
6
6
  }
@@ -18,7 +18,7 @@
18
18
  const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
19
19
 
20
20
  const { onclose }: FilterPanelModalProps = $props();
21
- const refs: Array<FilterInput<T, unknown>> = $state([]);
21
+ const refs: Array<FilterInput<T>> = $state([]);
22
22
 
23
23
  function reset() {
24
24
  tableContext.paginationRepo?.resetFilters();
@@ -2,6 +2,7 @@
2
2
 
3
3
  <script lang="ts" generics="T extends object">
4
4
  import Button from '../../Button.svelte';
5
+ import { devCatch } from '../../../Helpers/Helpers.svelte.js';
5
6
  import { Side } from '../../../Types/Internal/Side.js';
6
7
  import { Size } from '../../../Types/Internal/Size.js';
7
8
  import { Variant } from '../../../Types/Internal/Variant.js';
@@ -109,7 +110,7 @@
109
110
  <Button
110
111
  side={Side.Bottom}
111
112
  onclick={() => {
112
- tableContext.paginationRepo?.reload?.();
113
+ tableContext.paginationRepo?.reload?.().catch(devCatch);
113
114
  }}
114
115
  toggled={tableContext.dataRepo.isLoading}
115
116
  size={Size.Small}
@@ -2,6 +2,7 @@
2
2
 
3
3
  <script lang="ts" generics="T extends object">
4
4
  import Button from '../../Button.svelte';
5
+ import { devCatch } from '../../../Helpers/Helpers.svelte.js';
5
6
  import { Side } from '../../../Types/Internal/Side.js';
6
7
  import { Size } from '../../../Types/Internal/Size.js';
7
8
  import { Variant } from '../../../Types/Internal/Variant.js';
@@ -121,7 +122,7 @@
121
122
  <Button
122
123
  side={tableContext.toolbarPosition === ToolbarPosition.Left ? Side.Left : Side.Right}
123
124
  onclick={() => {
124
- tableContext.paginationRepo?.reload?.();
125
+ tableContext.paginationRepo?.reload?.().catch(devCatch);
125
126
  }}
126
127
  disabled={!tableContext.allowQuickFiltering}
127
128
  variant={Variant.Toolbar}
@@ -1,5 +1,5 @@
1
1
  import type { ColumnDef } from './Definitions/ColumnDef.svelte.js';
2
- export interface Column<T extends object, in FilterFnType> {
2
+ export interface Column<T extends object, FilterFnType = unknown> {
3
3
  id: string;
4
4
  columnDef: ColumnDef<T, FilterFnType>;
5
5
  getCanSort: () => boolean;
@@ -1,9 +1,9 @@
1
1
  import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
2
2
  import type { AccessorType } from './AccessorType.js';
3
- export interface AccessorDefProps<T extends object, FilterFnType = undefined> extends ColumnDefProps<T, FilterFnType> {
3
+ export interface AccessorDefProps<T extends object, FilterFnType = unknown> extends ColumnDefProps<T, FilterFnType> {
4
4
  readonly id: string & keyof T;
5
5
  }
6
- export declare abstract class AccessorDef<T extends object, FilterFnType = undefined> extends ColumnDef<T, FilterFnType> {
6
+ export declare abstract class AccessorDef<T extends object, FilterFnType = unknown> extends ColumnDef<T, FilterFnType> {
7
7
  readonly columnType: "Accessor";
8
8
  abstract readonly accessorType: AccessorType;
9
9
  }
@@ -1,11 +1,11 @@
1
1
  import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
2
2
  import type { BoolFilterValueType, FilterFn } from '../../../Filtering/FilterFn.js';
3
3
  import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
4
- export type CheckboxDefProps<T extends object> = AccessorDefProps<T, BoolFilterValueType>;
5
- export declare class CheckboxDef<T extends object> extends AccessorDef<T, BoolFilterValueType> {
4
+ export type CheckboxDefProps<T extends object, FilterValueType = BoolFilterValueType> = AccessorDefProps<T, FilterValueType>;
5
+ export declare class CheckboxDef<T extends object, FilterValueType = BoolFilterValueType> extends AccessorDef<T, FilterValueType> {
6
6
  readonly accessorType: "Checkbox";
7
- constructor(props: CheckboxDefProps<T>);
7
+ constructor(props: CheckboxDefProps<T, FilterValueType>);
8
8
  private _filterFn;
9
- get filterFn(): CustomFilterFn | FilterFn<T, BoolFilterValueType> | undefined;
10
- set filterFn(v: CustomFilterFn | FilterFn<T, BoolFilterValueType> | undefined);
9
+ get filterFn(): CustomFilterFn | FilterFn<T, FilterValueType> | undefined;
10
+ set filterFn(v: CustomFilterFn | FilterFn<T, FilterValueType> | undefined);
11
11
  }
@@ -1,14 +1,14 @@
1
1
  import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
2
2
  import type { DateFilterValueType, FilterFn } from '../../../Filtering/FilterFn.js';
3
3
  import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
4
- export interface DateInputDefProps<T extends object> extends AccessorDefProps<T, DateFilterValueType> {
4
+ export interface DateInputDefProps<T extends object, FilterValueType = DateFilterValueType> extends AccessorDefProps<T, FilterValueType> {
5
5
  showTime?: boolean;
6
6
  }
7
- export declare class DateInputDef<T extends object> extends AccessorDef<T, DateFilterValueType> {
7
+ export declare class DateInputDef<T extends object, FilterValueType = DateFilterValueType> extends AccessorDef<T, FilterValueType> {
8
8
  readonly accessorType: "Date";
9
- constructor(props: DateInputDefProps<T>);
9
+ constructor(props: DateInputDefProps<T, FilterValueType>);
10
10
  private _filterFn;
11
- get filterFn(): FilterFn<T, DateFilterValueType> | CustomFilterFn | undefined;
12
- set filterFn(v: FilterFn<T, DateFilterValueType> | CustomFilterFn | undefined);
11
+ get filterFn(): FilterFn<T, FilterValueType> | CustomFilterFn | undefined;
12
+ set filterFn(v: FilterFn<T, FilterValueType> | CustomFilterFn | undefined);
13
13
  readonly showTime: boolean;
14
14
  }
@@ -2,16 +2,16 @@ import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
2
2
  import type { FilterFn, NumberFilterValueType } from '../../../Filtering/FilterFn.js';
3
3
  import { type ColumnDefProps } from '../ColumnDef.svelte.js';
4
4
  import { AccessorDef } from './AccessorDef.svelte.js';
5
- export interface NumberInputDefProps<T extends object> extends ColumnDefProps<T, NumberFilterValueType> {
5
+ export interface NumberInputDefProps<T extends object, FilterValueType = NumberFilterValueType> extends ColumnDefProps<T, FilterValueType> {
6
6
  min: number;
7
7
  max: number;
8
8
  }
9
- export declare class NumberInputDef<T extends object> extends AccessorDef<T, NumberFilterValueType> {
9
+ export declare class NumberInputDef<T extends object, FilterValueType = NumberFilterValueType> extends AccessorDef<T, FilterValueType> {
10
10
  readonly accessorType: "Number";
11
- constructor(props: NumberInputDefProps<T>);
11
+ constructor(props: NumberInputDefProps<T, FilterValueType>);
12
12
  readonly min: number;
13
13
  readonly max: number;
14
14
  private _filterFn;
15
- get filterFn(): CustomFilterFn | FilterFn<T, NumberFilterValueType> | undefined;
16
- set filterFn(v: CustomFilterFn | FilterFn<T, NumberFilterValueType> | undefined);
15
+ get filterFn(): CustomFilterFn | FilterFn<T, FilterValueType> | undefined;
16
+ set filterFn(v: CustomFilterFn | FilterFn<T, FilterValueType> | undefined);
17
17
  }
@@ -1,17 +1,17 @@
1
1
  import type { SelectOption } from '../../../../../../Types/Internal/SelectOption.js';
2
2
  import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
3
- import type { FilterFn, SelectFilterValueType } from '../../../Filtering/FilterFn.js';
3
+ import type { FilterFn } from '../../../Filtering/FilterFn.js';
4
4
  import type { ColumnDefProps } from '../ColumnDef.svelte.js';
5
5
  import { AccessorDef } from './AccessorDef.svelte.js';
6
- export interface QueryDefProps<T extends object> extends ColumnDefProps<T, SelectFilterValueType<T>> {
6
+ export interface QueryDefProps<T extends object, FilterValueType = unknown> extends ColumnDefProps<T, FilterValueType> {
7
7
  query: (queryString: string, item: T, index: number) => Promise<Array<SelectOption<unknown>>>;
8
8
  getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
9
9
  clearable?: boolean;
10
10
  }
11
- export declare class QueryDef<T extends object> extends AccessorDef<T, SelectFilterValueType<T>> {
11
+ export declare class QueryDef<T extends object, FilterValueType = unknown> extends AccessorDef<T, FilterValueType> {
12
12
  readonly accessorType: "Query";
13
- constructor(props: QueryDefProps<T>);
14
- readonly filterFn: CustomFilterFn | FilterFn<T, SelectFilterValueType<T>> | undefined;
13
+ constructor(props: QueryDefProps<T, FilterValueType>);
14
+ readonly filterFn: CustomFilterFn | FilterFn<T, FilterValueType> | undefined;
15
15
  getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
16
16
  readonly query: (queryString: string, item: T, index: number) => Promise<Array<SelectOption<unknown>>>;
17
17
  readonly clearable: boolean;
@@ -3,24 +3,24 @@ import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
3
3
  import type { FilterFn, SelectFilterValueType } from '../../../Filtering/FilterFn.js';
4
4
  import type { ColumnDefProps } from '../ColumnDef.svelte.js';
5
5
  import { AccessorDef } from './AccessorDef.svelte.js';
6
- export interface SelectDefProps<T extends object> extends ColumnDefProps<T, SelectFilterValueType<T>> {
7
- getOptions: () => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
6
+ export interface SelectDefProps<T extends object, FilterValueType = unknown> extends ColumnDefProps<T, FilterValueType> {
7
+ getOptions: () => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
8
8
  getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
9
9
  sortingFn?: (a: T, b: T) => 1 | -1 | 0;
10
- getSpecificOptions?: (item: T, index: number) => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
10
+ getSpecificOptions?: (item: T, index: number) => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
11
11
  optional?: boolean;
12
12
  clearable?: boolean;
13
13
  }
14
- export declare class SelectDef<T extends object> extends AccessorDef<T, SelectFilterValueType<T>> {
15
- constructor(props: SelectDefProps<T>);
14
+ export declare class SelectDef<T extends object, FilterValueType = SelectFilterValueType<T>> extends AccessorDef<T, FilterValueType> {
15
+ constructor(props: SelectDefProps<T, FilterValueType>);
16
16
  readonly accessorType: "Select";
17
17
  private _filterFn;
18
- get filterFn(): FilterFn<T, SelectFilterValueType<T>> | CustomFilterFn | undefined;
19
- set filterFn(v: FilterFn<T, SelectFilterValueType<T>> | CustomFilterFn | undefined);
18
+ get filterFn(): FilterFn<T, FilterValueType> | CustomFilterFn | undefined;
19
+ set filterFn(v: FilterFn<T, FilterValueType> | CustomFilterFn | undefined);
20
20
  readonly sortingFn?: (a: T, b: T) => 1 | -1 | 0;
21
21
  readonly optional: boolean;
22
22
  readonly clearable: boolean;
23
- readonly getSpecificOptions?: (item: T, index: number) => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
23
+ readonly getSpecificOptions?: (item: T, index: number) => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
24
24
  getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
25
- getOptions: () => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
25
+ getOptions: () => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
26
26
  }
@@ -1,13 +1,13 @@
1
1
  import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
2
2
  import type { FilterFn, StringFilterValueType } from '../../../Filtering/FilterFn.js';
3
3
  import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
4
- export interface TextInputDefProps<T extends object> extends AccessorDefProps<T, StringFilterValueType> {
4
+ export interface TextInputDefProps<T extends object, FilterValueType = StringFilterValueType> extends AccessorDefProps<T, FilterValueType> {
5
5
  filterValueType?: 'String';
6
6
  }
7
- export declare class TextInputDef<T extends object> extends AccessorDef<T, StringFilterValueType> {
7
+ export declare class TextInputDef<T extends object, FilterValueType = StringFilterValueType> extends AccessorDef<T, FilterValueType> {
8
8
  readonly accessorType: "Text";
9
- constructor(props: TextInputDefProps<T>);
9
+ constructor(props: TextInputDefProps<T, FilterValueType>);
10
10
  private _filterFn;
11
- get filterFn(): CustomFilterFn | FilterFn<T, StringFilterValueType> | undefined;
12
- set filterFn(v: CustomFilterFn | FilterFn<T, StringFilterValueType> | undefined);
11
+ get filterFn(): CustomFilterFn | FilterFn<T, FilterValueType> | undefined;
12
+ set filterFn(v: CustomFilterFn | FilterFn<T, FilterValueType> | undefined);
13
13
  }
@@ -1,13 +1,13 @@
1
1
  import type { ColourSet } from '../../../../../../scss/colours.js';
2
2
  import type { TableActionButton } from '../../TableActionButton.js';
3
- import { ColumnDef } from '../ColumnDef.svelte.js';
4
- export interface ActionsDefProps<T extends object> {
3
+ import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
4
+ export interface ActionsDefProps<T extends object, FilterValueType> extends Omit<ColumnDefProps<T, FilterValueType>, 'id' | 'header'> {
5
5
  actions: Array<TableActionButton<T>>;
6
6
  isEnabled?: (item: T, index: number, button: TableActionButton<T>) => boolean | Promise<boolean>;
7
7
  getColourSet?: (item: T, index: number, button: TableActionButton<T>) => ColourSet;
8
8
  }
9
- export declare class ActionsDef<T extends object> extends ColumnDef<T, undefined> {
10
- constructor(props: ActionsDefProps<T>);
9
+ export declare class ActionsDef<T extends object, FilterValueType> extends ColumnDef<T, FilterValueType> {
10
+ constructor(props: ActionsDefProps<T, FilterValueType>);
11
11
  readonly columnType: "Actions";
12
12
  readonly actions: Array<TableActionButton<T>>;
13
13
  readonly isEnabled?: (item: T, index: number, button: TableActionButton<T>) => boolean | Promise<boolean>;
@@ -7,7 +7,7 @@ import type { FilterValueType } from '../../Filtering/FilterValueType.js';
7
7
  import { ColumnType } from '../ColumnType.js';
8
8
  import type { AccessorFn } from './AccessorFn.js';
9
9
  import type { ValidationFn } from './ValidationFn.js';
10
- export interface ColumnDefProps<T extends object, in FilterFnType> {
10
+ export interface ColumnDefProps<T extends object, FilterFnType> {
11
11
  id: string;
12
12
  header: string | Snippet;
13
13
  debug?: boolean;
@@ -22,11 +22,11 @@ export interface ColumnDefProps<T extends object, in FilterFnType> {
22
22
  isValid?: ValidationFn<T>;
23
23
  filterFn?: FilterFn<T, FilterFnType> | CustomFilterFn;
24
24
  filterValueType?: FilterValueType;
25
- getOptions?: () => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
25
+ getOptions?: () => Array<SelectOption<FilterFnType>> | Promise<Array<SelectOption<FilterFnType>>>;
26
26
  accessorFn?: AccessorFn<T>;
27
27
  getDisplayValue?: (item: T, index: number) => string | null | Promise<string | null>;
28
28
  }
29
- export declare abstract class ColumnDef<T extends object, in FilterFnType> {
29
+ export declare abstract class ColumnDef<T extends object, FilterFnType> {
30
30
  protected constructor(props: ColumnDefProps<T, FilterFnType>);
31
31
  readonly id: string;
32
32
  debug: boolean;
@@ -60,5 +60,5 @@ export declare abstract class ColumnDef<T extends object, in FilterFnType> {
60
60
  readonly isEditable: (item: T, index: number) => boolean | Promise<boolean>;
61
61
  readonly resizable: boolean;
62
62
  readonly header: string | Snippet;
63
- readonly getOptions?: () => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
63
+ readonly getOptions?: () => Array<SelectOption<FilterFnType>> | Promise<Array<SelectOption<FilterFnType>>>;
64
64
  }
@@ -2,7 +2,7 @@ import type { Component } from 'svelte';
2
2
  import type { DisplayType } from '../../DisplayType.js';
3
3
  import type { TableCell } from '../../TableCell.js';
4
4
  import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
5
- export interface DisplayDefModalProps<T extends object, in FilterValueType> {
5
+ export interface DisplayDefModalProps<T extends object, FilterValueType> {
6
6
  cell: TableCell<T, FilterValueType>;
7
7
  onclose: () => void;
8
8
  onsubmit: () => void;
@@ -2,14 +2,14 @@ import type { BubbleColour } from '../../../../../BubbleColour.js';
2
2
  import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
3
3
  import type { FilterFn, StringFilterValueType } from '../../../Filtering/FilterFn.js';
4
4
  import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisplayDef.svelte.js';
5
- export interface BubbleDefProps<T extends object> extends AbstractDisplayDefProps<T, StringFilterValueType> {
5
+ export interface BubbleDefProps<T extends object, FilterValueType = StringFilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
6
6
  getColour?: (item: T, index: number, value: string) => BubbleColour | Promise<BubbleColour | null | undefined>;
7
7
  }
8
- export declare class BubbleDef<T extends object> extends AbstractDisplayDef<T, StringFilterValueType> {
8
+ export declare class BubbleDef<T extends object, FilterValueType = StringFilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
9
9
  readonly displayType: "Bubbles";
10
- constructor(props: BubbleDefProps<T>);
10
+ constructor(props: BubbleDefProps<T, FilterValueType>);
11
11
  private _filterFn;
12
- get filterFn(): FilterFn<T, StringFilterValueType> | CustomFilterFn | undefined;
13
- set filterFn(v: FilterFn<T, StringFilterValueType> | CustomFilterFn | undefined);
12
+ get filterFn(): FilterFn<T, FilterValueType> | CustomFilterFn | undefined;
13
+ set filterFn(v: FilterFn<T, FilterValueType> | CustomFilterFn | undefined);
14
14
  getColour: ((item: T, index: number, value: string) => BubbleColour | Promise<BubbleColour | null | undefined>) | undefined;
15
15
  }
@@ -5,7 +5,7 @@ import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisp
5
5
  export type DisplayDefProps<T extends object, FilterValueType = unknown> = AbstractDisplayDefProps<T, FilterValueType>;
6
6
  export declare class DisplayDef<T extends object, FilterValueType = unknown> extends AbstractDisplayDef<T, FilterValueType> {
7
7
  readonly displayType: DisplayType;
8
- constructor(props: DisplayDefProps<T>);
8
+ constructor(props: DisplayDefProps<T, FilterValueType>);
9
9
  private _filterFn;
10
10
  get filterFn(): CustomFilterFn | FilterFn<T, FilterValueType> | undefined;
11
11
  set filterFn(v: CustomFilterFn | FilterFn<T, FilterValueType> | undefined);
@@ -2,14 +2,14 @@ import type { BubbleColour } from '../../../../../BubbleColour.js';
2
2
  import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
3
3
  import type { FilterFn, NumberFilterValueType } from '../../../Filtering/FilterFn.js';
4
4
  import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisplayDef.svelte.js';
5
- export interface ProgressBarDefProps<T extends object> extends AbstractDisplayDefProps<T, NumberFilterValueType> {
5
+ export interface ProgressBarDefProps<T extends object, FilterValueType = NumberFilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
6
6
  getColour: (item: T, index: number, value: [number, number]) => BubbleColour | Promise<BubbleColour> | undefined;
7
7
  }
8
- export declare class ProgressBarDef<T extends object> extends AbstractDisplayDef<T, NumberFilterValueType> {
8
+ export declare class ProgressBarDef<T extends object, FilterValueType = NumberFilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
9
9
  readonly displayType: "Progress";
10
- constructor(props: ProgressBarDefProps<T>);
10
+ constructor(props: ProgressBarDefProps<T, FilterValueType>);
11
11
  readonly getColour: (item: T, index: number, value: [number, number]) => BubbleColour | Promise<BubbleColour> | undefined;
12
12
  private _filterFn;
13
- get filterFn(): FilterFn<T, NumberFilterValueType> | CustomFilterFn | undefined;
14
- set filterFn(v: FilterFn<T, NumberFilterValueType> | CustomFilterFn | undefined);
13
+ get filterFn(): FilterFn<T, FilterValueType> | CustomFilterFn | undefined;
14
+ set filterFn(v: FilterFn<T, FilterValueType> | CustomFilterFn | undefined);
15
15
  }
@@ -1,9 +1,9 @@
1
1
  import type { ValidationFn } from '../ValidationFn.js';
2
2
  import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisplayDef.svelte.js';
3
- export interface ValidityDefProps<T extends object, FilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
3
+ export interface ValidityDefProps<T extends object, FilterValueType = unknown> extends AbstractDisplayDefProps<T, FilterValueType> {
4
4
  isValid: ValidationFn<T>;
5
5
  }
6
- export declare class ValidityDef<T extends object, FilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
6
+ export declare class ValidityDef<T extends object, FilterValueType = unknown> extends AbstractDisplayDef<T, FilterValueType> {
7
7
  readonly displayType: "Validity";
8
8
  constructor(props: ValidityDefProps<T, FilterValueType>);
9
9
  readonly filterFn: undefined;
@@ -2,7 +2,7 @@ import type { IconProps } from '../../../../../IconProps.js';
2
2
  import type { Primitive, TableInitOptions } from '../../../Context/TableInitOptions.js';
3
3
  import type { DefsWrapper } from '../../DefsWrapper.js';
4
4
  import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
5
- export interface ExpandDefProps<T extends object, R extends object, InnterIdType extends Primitive, FilterValueType> extends ColumnDefProps<T, FilterValueType> {
5
+ export interface ExpandDefProps<T extends object, R extends object, InnterIdType extends Primitive, FilterValueType = unknown> extends ColumnDefProps<T, FilterValueType> {
6
6
  isEnabled: (item: T, index: number) => boolean | Promise<boolean>;
7
7
  getInnerColumnDefs: (item: T, index: number) => DefsWrapper<R>;
8
8
  headerIcon: IconProps['name'];
@@ -10,7 +10,7 @@ export interface ExpandDefProps<T extends object, R extends object, InnterIdType
10
10
  innerTableOptions: TableInitOptions<R, InnterIdType>;
11
11
  accessorFn: (item: T, index: number) => Array<R> | Promise<Array<R>>;
12
12
  }
13
- export declare class ExpandDef<T extends object, R extends object, InnterIdType extends Primitive, FilterValueType> extends ColumnDef<T, FilterValueType> {
13
+ export declare class ExpandDef<T extends object, R extends object, InnterIdType extends Primitive, FilterValueType = unknown> extends ColumnDef<T, FilterValueType> {
14
14
  readonly columnType: "Expand";
15
15
  constructor(props: ExpandDefProps<T, R, InnterIdType, FilterValueType>);
16
16
  readonly accessorFn: (item: T, index: number) => Array<R> | Promise<Array<R>>;
@@ -2,8 +2,8 @@ import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
2
2
  import type { FilterFn } from '../../../Filtering/FilterFn.js';
3
3
  import { ColumnType } from '../../ColumnType.js';
4
4
  import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
5
- export type FilterOnlyDefProps<T extends object, FilterFnType = undefined> = ColumnDefProps<T, FilterFnType>;
6
- export declare class FilterOnlyDef<T extends object, FilterFnType = undefined> extends ColumnDef<T, FilterFnType> {
5
+ export type FilterOnlyDefProps<T extends object, FilterFnType = unknown> = ColumnDefProps<T, FilterFnType>;
6
+ export declare class FilterOnlyDef<T extends object, FilterFnType = unknown> extends ColumnDef<T, FilterFnType> {
7
7
  constructor(props: FilterOnlyDefProps<T, FilterFnType>);
8
8
  readonly columnType: ColumnType;
9
9
  readonly filterFn: CustomFilterFn | FilterFn<T, FilterFnType> | undefined;
@@ -2,5 +2,5 @@ import type { CustomRemoteFilters } from '../Filtering/CustomRemoteFilters.js';
2
2
  import type { ColumnDef } from './Definitions/ColumnDef.svelte.js';
3
3
  export interface DefsWrapper<T extends object> {
4
4
  defs: Array<ColumnDef<T, unknown>>;
5
- remoteFilters?: CustomRemoteFilters;
5
+ remoteFilters?: CustomRemoteFilters<unknown>;
6
6
  }
@@ -1,7 +1,7 @@
1
1
  import type { ProgressBarDef } from './Definitions/Display/ProgressBarDef.svelte.js';
2
- export interface ProgressBarColumn<T extends object> {
2
+ export interface ProgressBarColumn<T extends object, FilterValueType> {
3
3
  id: string;
4
- columnDef: ProgressBarDef<T>;
4
+ columnDef: ProgressBarDef<T, FilterValueType>;
5
5
  getCanSort: () => boolean;
6
6
  getToggleSortingHandler: () => (e: MouseEvent) => void;
7
7
  getIsSorted: () => 'asc' | 'desc' | 'none';
@@ -2,8 +2,8 @@ import type { Row } from '../Context/Row.js';
2
2
  import type { NumberFilterValueType } from '../Filtering/FilterFn.js';
3
3
  import type { ProgressBarColumn } from './ProgressBarColumn.js';
4
4
  import type { TableCell } from './TableCell.js';
5
- export interface ProgressBarTableCell<T extends object> extends TableCell<T, NumberFilterValueType> {
6
- column: ProgressBarColumn<T>;
5
+ export interface ProgressBarTableCell<T extends object, FilterValueType = NumberFilterValueType> extends TableCell<T, FilterValueType> {
6
+ column: ProgressBarColumn<T, FilterValueType>;
7
7
  row: Row<T>;
8
8
  id: string;
9
9
  getValue: () => unknown;
@@ -1,6 +1,6 @@
1
1
  import type { Row } from '../Context/Row.js';
2
2
  import type { Column } from './Column.js';
3
- export interface TableCell<T extends object, in FilterValueType = never> {
3
+ export interface TableCell<T extends object, FilterValueType = unknown> {
4
4
  column: Column<T, FilterValueType>;
5
5
  row: Row<T>;
6
6
  id: string;
@@ -24,9 +24,9 @@ export interface ITable<T extends object> {
24
24
  getLeftHeaderGroups: () => Array<HeaderGroup<T>>;
25
25
  getRightHeaderGroups: () => Array<HeaderGroup<T>>;
26
26
  getCenterHeaderGroups: () => Array<HeaderGroup<T>>;
27
- getLeftVisibleLeafColumns: () => Array<Column<T, unknown>>;
28
- getRightVisibleLeafColumns: () => Array<Column<T, unknown>>;
29
- getCenterVisibleLeafColumns: () => Array<Column<T, unknown>>;
27
+ getLeftVisibleLeafColumns: () => Array<Column<T>>;
28
+ getRightVisibleLeafColumns: () => Array<Column<T>>;
29
+ getCenterVisibleLeafColumns: () => Array<Column<T>>;
30
30
  onColumnVisibilityChange: OnChangeFn<VisibilityState>;
31
31
  onColumnSizingChange: OnChangeFn<ColumnSizingState>;
32
32
  onColumnFiltersChange: OnChangeFn<ColumnFiltersState> | undefined;