@lavalogic/scoria 0.16.3 → 0.17.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 (83) hide show
  1. package/dist/Components/Table/Body/QuickSearchCell.svelte +2 -2
  2. package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +12 -12
  3. package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +2 -2
  4. package/dist/Components/Table/Body/Rows/ColumnList.svelte +9 -3
  5. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +10 -4
  6. package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +2 -2
  7. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +17 -5
  8. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +9 -3
  9. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +3 -3
  10. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +5 -2
  11. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +13 -6
  12. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +9 -3
  13. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +13 -3
  14. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +6 -4
  15. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +10 -4
  16. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +11 -5
  17. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +10 -5
  18. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +1 -2
  19. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +14 -5
  20. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +6 -3
  21. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +19 -9
  22. package/dist/Components/Table/Body/Rows/TableRow.svelte +9 -8
  23. package/dist/Components/Table/Body/Rows/TableRow.svelte.d.ts +2 -10
  24. package/dist/Components/Table/Body/TableBody.svelte +32 -21
  25. package/dist/Components/Table/Body/TableBody.svelte.d.ts +2 -10
  26. package/dist/Components/Table/Body/TableBodyProps.d.ts +0 -2
  27. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +26 -26
  28. package/dist/Components/Table/Headers/TableHead.svelte +20 -6
  29. package/dist/Components/Table/Misc/ColumnPanel.svelte +13 -4
  30. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +9 -2
  31. package/dist/Components/Table/Misc/FilterInput.svelte +5 -2
  32. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -12
  33. package/dist/Components/Table/Misc/FilterInputProps.d.ts +2 -2
  34. package/dist/Components/Table/Misc/FilterPanelModal.svelte +14 -4
  35. package/dist/Components/Table/Misc/TableSidebar.svelte +14 -8
  36. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +4 -1
  37. package/dist/Components/Table/Table.svelte +107 -67
  38. package/dist/Components/Table/Types/Columns/Column.d.ts +2 -2
  39. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +3 -3
  40. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +2 -3
  41. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +2 -3
  42. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +2 -3
  43. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +4 -5
  44. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +2 -3
  45. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +2 -3
  46. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +2 -2
  47. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +1 -1
  48. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +3 -4
  49. package/dist/Components/Table/Types/Columns/Definitions/ColumnDefSet.d.ts +1 -1
  50. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +7 -6
  51. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +1 -2
  52. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +5 -6
  53. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +6 -6
  54. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +5 -6
  55. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +3 -3
  56. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +5 -5
  57. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +4 -5
  58. package/dist/Components/Table/Types/Columns/Definitions/JSONColumnDefSet.d.ts +1 -1
  59. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +2 -1
  60. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +1 -1
  61. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +2 -2
  62. package/dist/Components/Table/Types/Columns/TableCell.d.ts +2 -2
  63. package/dist/Components/Table/Types/Context/Row.d.ts +3 -3
  64. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +2 -2
  65. package/dist/Components/Table/Types/Context/TableContext.svelte.js +32 -32
  66. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +1 -1
  67. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +1 -1
  68. package/dist/Components/Table/Types/DataRepository/IRemoteDataRepository.d.ts +1 -1
  69. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +3 -3
  70. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +5 -5
  71. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +2 -2
  72. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +1 -1
  73. package/dist/Components/Table/Types/Filtering/ColumnFiltersState.d.ts +2 -2
  74. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +4 -4
  75. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +1 -1
  76. package/dist/Components/Table/Types/Header.d.ts +2 -2
  77. package/dist/Components/Table/Types/HeaderGroup.d.ts +1 -1
  78. package/dist/Types/Examples/ExampleModal.svelte.d.ts +1 -1
  79. package/dist/index.d.ts +48 -49
  80. package/dist/index.js +42 -50
  81. package/package.json +1 -1
  82. package/dist/Components/Table/Types/Filtering/CustomFilterFn.d.ts +0 -2
  83. package/dist/Components/Table/Types/Filtering/CustomFilterFn.js +0 -1
@@ -1,15 +1,14 @@
1
1
  import type { BubbleColour } from '../../../../../BubbleColour.js';
2
- import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
3
2
  import type { FilterFn, NumberFilterValueType } from '../../../Filtering/FilterFn.js';
4
3
  import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisplayDef.svelte.js';
5
- export interface ProgressBarDefProps<T extends object, FilterValueType = NumberFilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
4
+ export interface ProgressBarDefProps<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDefProps<T, FilterValueType, FilterOptionsType> {
6
5
  getColour: (item: T, index: number, value: [number, number]) => BubbleColour | Promise<BubbleColour> | undefined;
7
6
  }
8
- export declare class ProgressBarDef<T extends object, FilterValueType = NumberFilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
7
+ export declare class ProgressBarDef<T extends object, in FilterValueType = NumberFilterValueType, out FilterOptionsType = unknown> extends AbstractDisplayDef<T, FilterValueType, FilterOptionsType> {
9
8
  readonly displayType: "Progress";
10
- constructor(props: ProgressBarDefProps<T, FilterValueType>);
9
+ constructor(props: ProgressBarDefProps<T, FilterValueType, FilterOptionsType>);
11
10
  readonly getColour: (item: T, index: number, value: [number, number]) => BubbleColour | Promise<BubbleColour> | undefined;
12
11
  private _filterFn;
13
- get filterFn(): FilterFn<T, FilterValueType> | CustomFilterFn | undefined;
14
- set filterFn(v: FilterFn<T, FilterValueType> | CustomFilterFn | undefined);
12
+ get filterFn(): FilterFn<T, FilterValueType> | undefined;
13
+ set filterFn(v: FilterFn<T, FilterValueType> | undefined);
15
14
  }
@@ -1,11 +1,11 @@
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 = unknown> extends AbstractDisplayDefProps<T, FilterValueType> {
3
+ export interface ValidityDefProps<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDefProps<T, FilterValueType, FilterOptionsType> {
4
4
  isValid: ValidationFn<T>;
5
5
  }
6
- export declare class ValidityDef<T extends object, FilterValueType = unknown> extends AbstractDisplayDef<T, FilterValueType> {
6
+ export declare class ValidityDef<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDef<T, FilterValueType, FilterOptionsType> {
7
7
  readonly displayType: "Validity";
8
- constructor(props: ValidityDefProps<T, FilterValueType>);
8
+ constructor(props: ValidityDefProps<T, FilterValueType, FilterOptionsType>);
9
9
  readonly filterFn: undefined;
10
10
  readonly isValid: ValidationFn<T>;
11
11
  }
@@ -2,18 +2,18 @@ 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 = Primitive, in FilterValueType = unknown, out OptionsValueType = unknown> extends ColumnDefProps<T, FilterValueType, OptionsValueType> {
5
+ export interface ExpandDefProps<T extends object, R extends object, InnterIdType extends Primitive = Primitive, in FilterValueType = unknown, out FilterOptionsType = unknown> extends ColumnDefProps<T, FilterValueType, FilterOptionsType> {
6
6
  isEnabled: (item: T, index: number) => boolean | Promise<boolean>;
7
7
  getInnerColumnDefs: (item: T, index: number) => DefsWrapper<R>;
8
8
  headerIcon: IconProps['name'];
9
9
  innerTableName: string;
10
10
  innerTableOptions: TableInitOptions<R, InnterIdType>;
11
- accessorFn: (item: T, index: number) => Array<R> | Promise<Array<R>>;
11
+ accessorFn: (item: T, index: number) => ReadonlyArray<R> | Promise<ReadonlyArray<R>>;
12
12
  }
13
- export declare class ExpandDef<T extends object, R extends object, InnterIdType extends Primitive = Primitive, in FilterValueType = unknown, out OptionsValueType = unknown> extends ColumnDef<T, FilterValueType, OptionsValueType> {
13
+ export declare class ExpandDef<T extends object, R extends object, InnterIdType extends Primitive = Primitive, in FilterValueType = unknown, out FilterOptionsType = unknown> extends ColumnDef<T, FilterValueType, FilterOptionsType> {
14
14
  readonly columnType: "Expand";
15
- constructor(props: ExpandDefProps<T, R, InnterIdType, FilterValueType, OptionsValueType>);
16
- readonly accessorFn: (item: T, index: number) => Array<R> | Promise<Array<R>>;
15
+ constructor(props: ExpandDefProps<T, R, InnterIdType, FilterValueType, FilterOptionsType>);
16
+ readonly accessorFn: (item: T, index: number) => ReadonlyArray<R> | Promise<ReadonlyArray<R>>;
17
17
  readonly filterFn: undefined;
18
18
  readonly innerTableName: string;
19
19
  readonly getInnerColumnDefs: (item: T, index: number) => DefsWrapper<R>;
@@ -1,11 +1,10 @@
1
- import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
2
1
  import type { FilterFn } from '../../../Filtering/FilterFn.js';
3
2
  import { ColumnType } from '../../ColumnType.js';
4
3
  import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
5
- export interface FilterOnlyDefProps<T extends object, FilterFnType = unknown, out OptionsValueType = unknown> extends ColumnDefProps<T, FilterFnType, OptionsValueType> {
4
+ export interface FilterOnlyDefProps<T extends object, FilterFnType = unknown, out FilterOptionsType = unknown> extends ColumnDefProps<T, FilterFnType, FilterOptionsType> {
6
5
  }
7
- export declare class FilterOnlyDef<T extends object, FilterFnType = unknown, out OptionsValueType = unknown> extends ColumnDef<T, FilterFnType, OptionsValueType> {
8
- constructor(props: FilterOnlyDefProps<T, FilterFnType, OptionsValueType>);
6
+ export declare class FilterOnlyDef<T extends object, FilterFnType = unknown, out FilterOptionsType = unknown> extends ColumnDef<T, FilterFnType, FilterOptionsType> {
7
+ constructor(props: FilterOnlyDefProps<T, FilterFnType, FilterOptionsType>);
9
8
  readonly columnType: ColumnType;
10
- readonly filterFn: CustomFilterFn | FilterFn<T, FilterFnType> | undefined;
9
+ readonly filterFn: FilterFn<T, FilterFnType> | undefined;
11
10
  }
@@ -7,5 +7,5 @@ export interface JSONColumnDefSet<T extends object> {
7
7
  sortingState: SortingState;
8
8
  visibilityState: VisibilityState;
9
9
  columnPinningState: JSONColumnPinningState;
10
- columnDefs: Array<ColumnDef<T>>;
10
+ columnDefs: Array<ColumnDef<T, never, unknown>>;
11
11
  }
@@ -1,6 +1,7 @@
1
+ import type { BoolFilterValueType } from '../../../Filtering/FilterFn.js';
1
2
  import { ColumnType } from '../../ColumnType.js';
2
3
  import { ColumnDef } from '../ColumnDef.svelte.js';
3
- export declare class RowSelectionDef<T extends object> extends ColumnDef<T> {
4
+ export declare class RowSelectionDef<T extends object, in FilterValueType = BoolFilterValueType, out FilterOptionsType = undefined> extends ColumnDef<T, FilterValueType, FilterOptionsType> {
4
5
  readonly isSelectable: (item: T, index: number) => boolean | Promise<boolean>;
5
6
  readonly columnType: ColumnType;
6
7
  constructor(isSelectable: (item: T, index: number) => boolean | Promise<boolean>);
@@ -9,7 +9,7 @@ export class RowSelectionDef extends ColumnDef {
9
9
  id: `is-selectable-${generateUUID()}`,
10
10
  header: 'Row Selected',
11
11
  allowSorting: false,
12
- allowFiltering: false
12
+ allowFiltering: false,
13
13
  });
14
14
  this.isSelectable = isSelectable;
15
15
  }
@@ -1,6 +1,6 @@
1
1
  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
- defs: Array<ColumnDef<T, never>>;
5
- remoteFilters?: CustomRemoteFilters<unknown>;
4
+ defs: Array<ColumnDef<T, never, unknown>>;
5
+ remoteFilters?: CustomRemoteFilters<never>;
6
6
  }
@@ -1,7 +1,7 @@
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 = unknown, out OptionsValueType = unknown> {
4
- column: Column<T, FilterValueType, OptionsValueType>;
3
+ export interface TableCell<T extends object, in FilterValueType = never, out FilterOptionsType = unknown> {
4
+ column: Column<T, FilterValueType, FilterOptionsType>;
5
5
  row: Row<T>;
6
6
  id: string;
7
7
  getValue: () => unknown | Promise<unknown>;
@@ -5,7 +5,7 @@ export interface Row<T extends object> {
5
5
  visibleIndex: number;
6
6
  originalIndex: number;
7
7
  id: string;
8
- getLeftVisibleCells: () => Array<TableCell<T>>;
9
- getRightVisibleCells: () => Array<TableCell<T>>;
10
- getCenterVisibleCells: () => Array<TableCell<T>>;
8
+ getLeftVisibleCells: () => Array<TableCell<T, never, unknown>>;
9
+ getRightVisibleCells: () => Array<TableCell<T, never, unknown>>;
10
+ getCenterVisibleCells: () => Array<TableCell<T, never, unknown>>;
11
11
  }
@@ -48,7 +48,7 @@ export declare class TableContext<T extends object, RowIdType extends Primitive>
48
48
  get dataRepo(): IDataRepository<T>;
49
49
  private set dataRepo(value);
50
50
  private _remoteFilters;
51
- get remoteFilters(): CustomRemoteFilters<unknown> | undefined;
51
+ get remoteFilters(): CustomRemoteFilters<never> | undefined;
52
52
  private set remoteFilters(value);
53
53
  private _showSelectedOnly;
54
54
  get showSelectedOnly(): boolean;
@@ -235,4 +235,4 @@ export declare class TableContext<T extends object, RowIdType extends Primitive>
235
235
  private reassignDefsToPresets;
236
236
  private filteringLoop;
237
237
  }
238
- export declare function isSearchable<T extends object, CD extends ColumnDef<T>>(def: CD): def is CD & HasCustomFilterFunction;
238
+ export declare function isSearchable<T extends object, FilterValueType, FilterOptionsType, CD extends ColumnDef<T, FilterValueType, FilterOptionsType>>(def: CD): def is CD & HasCustomFilterFunction;
@@ -1,5 +1,5 @@
1
1
  import { browser, dev } from '$app/environment';
2
- import { asyncAll, asyncFilterIndices, asyncForEach, asyncMap, asyncSleep, devCatch, getCanvasContext, getErrorMessage } from '../../../../Helpers/Helpers.svelte.js';
2
+ import { asyncAll, asyncFilterIndices, asyncForEach, asyncMap, asyncSleep, devCatch, getCanvasContext, getErrorMessage, } from '../../../../Helpers/Helpers.svelte.js';
3
3
  import { tick, untrack } from 'svelte';
4
4
  import { SvelteMap, SvelteSet } from 'svelte/reactivity';
5
5
  import { ColumnType } from '../Columns/ColumnType.js';
@@ -23,7 +23,7 @@ const uncopyableColumns = new Set([
23
23
  ColumnType.Expand,
24
24
  ColumnType.Actions,
25
25
  ColumnType.FilterOnly,
26
- ColumnType.Custom
26
+ ColumnType.Custom,
27
27
  ]);
28
28
  export class TableContext {
29
29
  defaultColumnDefs;
@@ -106,7 +106,7 @@ export class TableContext {
106
106
  columnDefs: this.columnDefs,
107
107
  sortingState: [],
108
108
  visibilityState,
109
- columnPinningState: {}
109
+ columnPinningState: {},
110
110
  };
111
111
  this.selectedPreset = defaultPreset;
112
112
  this.columnVisibility = visibilityState;
@@ -207,7 +207,7 @@ export class TableContext {
207
207
  return false;
208
208
  }
209
209
  if (def.filterFn) {
210
- return def.filterFn(row, filter.id, filter.value);
210
+ return def.filterFn(row, filter.id, filter.value); //HACK how much parsing will be needed to be type safe?
211
211
  }
212
212
  if (this.debug) {
213
213
  console.warn(`column ${def.id} did not have a filter function`);
@@ -665,7 +665,7 @@ export class TableContext {
665
665
  return {
666
666
  rows,
667
667
  // eslint-disable-next-line svelte/prefer-svelte-reactivity
668
- rowsById: new Map(rows.map((it, index) => [index.toString(), it])) //FIXME should this be by sorted id or by original id?
668
+ rowsById: new Map(rows.map((it, index) => [index.toString(), it])), //FIXME should this be by sorted id or by original id?
669
669
  };
670
670
  });
671
671
  currentPageData = $derived.by(async () => {
@@ -709,7 +709,7 @@ export class TableContext {
709
709
  id: index.toString(),
710
710
  getLeftVisibleCells: () => leftVisibleCells,
711
711
  getRightVisibleCells: () => rightVisibleCells,
712
- getCenterVisibleCells: () => centerVisibleCells
712
+ getCenterVisibleCells: () => centerVisibleCells,
713
713
  };
714
714
  const makeRow = (def) => {
715
715
  const isSorted = $derived.by(() => {
@@ -731,7 +731,7 @@ export class TableContext {
731
731
  getIsSorted: () => isSorted,
732
732
  getIsVisible: () => isVisible,
733
733
  getToggleSortingHandler: () => def.allowSorting ? this.getToggleSortingHandler(def) : undefined,
734
- id: def.id
734
+ id: def.id,
735
735
  },
736
736
  id: `${index}_${def.id}`,
737
737
  row: row,
@@ -741,7 +741,7 @@ export class TableContext {
741
741
  return gotValue;
742
742
  }
743
743
  return item[def.id];
744
- }
744
+ },
745
745
  };
746
746
  };
747
747
  const makeCellFromId = (columnId) => {
@@ -763,7 +763,7 @@ export class TableContext {
763
763
  return {
764
764
  rows,
765
765
  // eslint-disable-next-line svelte/prefer-svelte-reactivity
766
- rowsById: new Map(rows.map((it, index) => [index.toString(), it])) //FIXME should this be by sorted id or by original id?
766
+ rowsById: new Map(rows.map((it, index) => [index.toString(), it])), //FIXME should this be by sorted id or by original id?
767
767
  };
768
768
  });
769
769
  // #endregion
@@ -1272,7 +1272,7 @@ export class TableContext {
1272
1272
  }
1273
1273
  return this._performRowCopy(await this.getFocusElementData());
1274
1274
  };
1275
- _performRowCopy = async ({ items, indicesByItem, focusedElementData, affectedColumns }) => {
1275
+ _performRowCopy = async ({ items, indicesByItem, focusedElementData, affectedColumns, }) => {
1276
1276
  const focusedColumnIds = affectedColumns.map((it) => encapsulate(typeof it.header === 'string' ? it.header : it.id));
1277
1277
  const value = await (async () => {
1278
1278
  // eslint-disable-next-line svelte/prefer-svelte-reactivity
@@ -1674,8 +1674,8 @@ export class TableContext {
1674
1674
  ...preset,
1675
1675
  columnPinningState: {
1676
1676
  left: [...(preset.columnPinningState.left?.entries() ?? [])],
1677
- right: [...(preset.columnPinningState.right?.entries() ?? [])]
1678
- }
1677
+ right: [...(preset.columnPinningState.right?.entries() ?? [])],
1678
+ },
1679
1679
  };
1680
1680
  });
1681
1681
  const stringified = JSON.stringify(jsonFriendly);
@@ -1707,7 +1707,7 @@ export class TableContext {
1707
1707
  id: index.toString(),
1708
1708
  getLeftVisibleCells: () => leftVisibleCells,
1709
1709
  getRightVisibleCells: () => rightVisibleCells,
1710
- getCenterVisibleCells: () => centerVisibleCells
1710
+ getCenterVisibleCells: () => centerVisibleCells,
1711
1711
  };
1712
1712
  const makeRow = (def) => {
1713
1713
  const isVisible = $derived(this.columnVisibility[def.id] != false);
@@ -1729,7 +1729,7 @@ export class TableContext {
1729
1729
  getIsSorted: () => isSorted,
1730
1730
  getIsVisible: () => isVisible,
1731
1731
  getToggleSortingHandler: () => def.allowSorting ? this.getToggleSortingHandler(def) : undefined,
1732
- id: def.id
1732
+ id: def.id,
1733
1733
  },
1734
1734
  id: `${index}_${def.id}`,
1735
1735
  row: row,
@@ -1739,7 +1739,7 @@ export class TableContext {
1739
1739
  return gotValue;
1740
1740
  }
1741
1741
  return item[def.id];
1742
- }
1742
+ },
1743
1743
  };
1744
1744
  };
1745
1745
  const makeCellFromId = (columnId) => {
@@ -1776,7 +1776,7 @@ export class TableContext {
1776
1776
  alternateRowColours,
1777
1777
  changeColourOnHover,
1778
1778
  copyWithHeaders,
1779
- commaSeparatedCopy
1779
+ commaSeparatedCopy,
1780
1780
  };
1781
1781
  localStorage.setItem(`${this.userId}-${this.tableName}-settings`, JSON.stringify(settingsObject));
1782
1782
  }
@@ -1793,7 +1793,7 @@ export class TableContext {
1793
1793
  const endRowIndex = rows.findIndex((row) => row.visibleIndex === focusEnd.row);
1794
1794
  this.focusEnd = {
1795
1795
  ...this.focusEnd,
1796
- row: rows[Math.max(Math.min(endRowIndex + offset, rows.length - 1), 0)].visibleIndex
1796
+ row: rows[Math.max(Math.min(endRowIndex + offset, rows.length - 1), 0)].visibleIndex,
1797
1797
  };
1798
1798
  }
1799
1799
  async _moveFocusRow(offset) {
@@ -1900,7 +1900,7 @@ export class TableContext {
1900
1900
  items: selectedRows,
1901
1901
  indicesByItem: indices,
1902
1902
  focusedElementData: selectedCells,
1903
- affectedColumns
1903
+ affectedColumns,
1904
1904
  };
1905
1905
  }
1906
1906
  async getFocusElementData() {
@@ -1974,7 +1974,7 @@ export class TableContext {
1974
1974
  items: selectedRows,
1975
1975
  indicesByItem: indices,
1976
1976
  focusedElementData: selectedCells,
1977
- affectedColumns
1977
+ affectedColumns,
1978
1978
  };
1979
1979
  }
1980
1980
  // eslint-disable-next-line svelte/prefer-svelte-reactivity
@@ -2191,7 +2191,7 @@ export class TableContext {
2191
2191
  right: new Map(this.columnPinning.right &&
2192
2192
  this.columnDefs
2193
2193
  .filter((col) => this.columnPinning.right?.has(col.id))
2194
- .map((col, index) => [col.id, index]))
2194
+ .map((col, index) => [col.id, index])),
2195
2195
  }; // TODO
2196
2196
  }
2197
2197
  getToggleSortingHandler = (def) => () => {
@@ -2210,7 +2210,7 @@ export class TableContext {
2210
2210
  else {
2211
2211
  newState.push({
2212
2212
  desc: false,
2213
- id: def.id
2213
+ id: def.id,
2214
2214
  });
2215
2215
  }
2216
2216
  return newState;
@@ -2234,7 +2234,7 @@ export class TableContext {
2234
2234
  throw new Error('Could not find equivalent column def:', { cause: def });
2235
2235
  }
2236
2236
  return (preset.columnDefs[index] = realDef);
2237
- })
2237
+ }),
2238
2238
  };
2239
2239
  });
2240
2240
  }
@@ -2347,7 +2347,7 @@ function generateTableOptions(contextObj) {
2347
2347
  getCanSort: () => def.allowSorting,
2348
2348
  getToggleSortingHandler: () => def.allowSorting ? contextObj.getToggleSortingHandler(def) : undefined,
2349
2349
  getIsSorted: () => isSorted,
2350
- getIsVisible: () => isVisible
2350
+ getIsVisible: () => isVisible,
2351
2351
  },
2352
2352
  getResizeHandler: () => {
2353
2353
  return (e) => {
@@ -2355,7 +2355,7 @@ function generateTableOptions(contextObj) {
2355
2355
  };
2356
2356
  },
2357
2357
  isPlaceholder: false,
2358
- getSize: () => def.width
2358
+ getSize: () => def.width,
2359
2359
  };
2360
2360
  };
2361
2361
  const leftHeaderGroups = $derived.by(() => {
@@ -2372,8 +2372,8 @@ function generateTableOptions(contextObj) {
2372
2372
  {
2373
2373
  depth: 0,
2374
2374
  id: 'left_0',
2375
- headers
2376
- }
2375
+ headers,
2376
+ },
2377
2377
  ];
2378
2378
  });
2379
2379
  const rightHeaderGroups = $derived.by(() => {
@@ -2384,8 +2384,8 @@ function generateTableOptions(contextObj) {
2384
2384
  {
2385
2385
  depth: 0,
2386
2386
  id: 'right_0',
2387
- headers
2388
- }
2387
+ headers,
2388
+ },
2389
2389
  ];
2390
2390
  });
2391
2391
  const centerHeaderGroups = $derived.by(() => {
@@ -2399,8 +2399,8 @@ function generateTableOptions(contextObj) {
2399
2399
  {
2400
2400
  depth: 0,
2401
2401
  id: 'center_0',
2402
- headers
2403
- }
2402
+ headers,
2403
+ },
2404
2404
  ];
2405
2405
  });
2406
2406
  const leftSizePx = $derived(leftHeaderGroups.reduce((total, grp) => total + grp.headers.reduce((total, header) => total + header.getSize(), 0), 0));
@@ -2455,7 +2455,7 @@ function generateTableOptions(contextObj) {
2455
2455
  },
2456
2456
  get onColumnFiltersChange() {
2457
2457
  return contextObj.updateFilters;
2458
- }
2458
+ },
2459
2459
  // get pageCount() {
2460
2460
  // return _pageCount;
2461
2461
  // }
@@ -2570,7 +2570,7 @@ function adaptJSONPinningState(state) {
2570
2570
  //HACK ignore previously broken pinning states
2571
2571
  return {
2572
2572
  left: new Map(Array.isArray(state.left) ? state.left : []),
2573
- right: new Map(Array.isArray(state.right) ? state.right : [])
2573
+ right: new Map(Array.isArray(state.right) ? state.right : []),
2574
2574
  };
2575
2575
  }
2576
2576
  // #endregion
@@ -16,7 +16,7 @@ export interface IDataRepository<T extends object> {
16
16
  updateSorting?: OnChangeFn<SortingState>;
17
17
  manualSorting?: boolean;
18
18
  sorting: SortingState;
19
- filtering: ColumnFiltersState;
19
+ filtering: ColumnFiltersState<unknown>;
20
20
  filterModes: SvelteMap<string, FilterMode>;
21
21
  setFilterMode: (id: string, mode: FilterMode) => void;
22
22
  filterBy: (id: string, value: unknown) => void;
@@ -9,7 +9,7 @@ export interface ILocalDataRepository<T extends object> extends IDataRepository<
9
9
  setPage: (page: number) => void;
10
10
  nextPage: () => void;
11
11
  prevPage: () => void;
12
- filtering: ColumnFiltersState;
12
+ filtering: ColumnFiltersState<unknown>;
13
13
  filterModes: SvelteMap<string, FilterMode>;
14
14
  setFilterMode: (id: string, mode: FilterMode) => void;
15
15
  filterBy: (id: string, value: unknown) => void;
@@ -8,7 +8,7 @@ export interface IRemoteDataRepository<T extends object> extends IDataRepository
8
8
  setPage: (page: number) => void;
9
9
  nextPage: () => void;
10
10
  prevPage: () => void;
11
- filtering: ColumnFiltersState;
11
+ filtering: ColumnFiltersState<never>;
12
12
  filterModes: SvelteMap<string, FilterMode>;
13
13
  setFilterMode: (id: string, mode: FilterMode) => void;
14
14
  filterBy: (id: string, value: unknown) => void;
@@ -11,7 +11,7 @@ import type { ILocalDataRepository } from './ILocalDataRepository.js';
11
11
  import type { SortingState } from './SortingState.js';
12
12
  import { TableDataRepository } from './TableDataRepository.svelte.js';
13
13
  export declare const allowedEmptyFilterModes: SvelteSet<StringFilterMode | NumberDateFilterMode>;
14
- export declare class LocalTableDataRepository<T extends object> extends TableDataRepository<T> implements ILocalDataRepository<T> {
14
+ export declare class LocalTableDataRepository<T extends object> extends TableDataRepository<T, unknown> implements ILocalDataRepository<T> {
15
15
  addEmptyRow?: (() => void) | undefined;
16
16
  private debug;
17
17
  readonly filterType: "Real";
@@ -30,8 +30,8 @@ export declare class LocalTableDataRepository<T extends object> extends TableDat
30
30
  private _totalRows;
31
31
  get totalRows(): number;
32
32
  private _filtering;
33
- get filtering(): ColumnFiltersState;
34
- set filtering(v: ColumnFiltersState);
33
+ get filtering(): ColumnFiltersState<unknown>;
34
+ set filtering(v: ColumnFiltersState<unknown>);
35
35
  updateSorting: OnChangeFn<SortingState>;
36
36
  readonly paginationType: "Local";
37
37
  readonly setFilterMode: (id: string, mode: FilterMode | undefined) => void;
@@ -7,7 +7,7 @@ import { TableDataRepository } from './TableDataRepository.svelte.js';
7
7
  export const allowedEmptyFilterModes = new SvelteSet([
8
8
  StringFilterMode.Empty,
9
9
  StringFilterMode.null,
10
- NumberDateFilterMode.null
10
+ NumberDateFilterMode.null,
11
11
  ]);
12
12
  export class LocalTableDataRepository extends TableDataRepository {
13
13
  addEmptyRow;
@@ -142,27 +142,27 @@ export class LocalTableDataRepository extends TableDataRepository {
142
142
  const lastIndex = Math.ceil(this._dataRef.value.length / size) - 1;
143
143
  this.paginationState = {
144
144
  pageSize: size,
145
- pageIndex: Math.max(0, Math.min(this.paginationState.pageIndex, lastIndex))
145
+ pageIndex: Math.max(0, Math.min(this.paginationState.pageIndex, lastIndex)),
146
146
  };
147
147
  };
148
148
  setPage = (page) => {
149
149
  const lastIndex = this._lastPage - 1;
150
150
  this.paginationState = {
151
151
  ...this.paginationState,
152
- pageIndex: Math.max(0, Math.min(lastIndex, page - 1))
152
+ pageIndex: Math.max(0, Math.min(lastIndex, page - 1)),
153
153
  };
154
154
  };
155
155
  nextPage = () => {
156
156
  const lastIndex = this._lastPage - 1;
157
157
  this.paginationState = {
158
158
  ...this.paginationState,
159
- pageIndex: Math.min(lastIndex, this.paginationState.pageIndex + 1)
159
+ pageIndex: Math.min(lastIndex, this.paginationState.pageIndex + 1),
160
160
  };
161
161
  };
162
162
  prevPage = () => {
163
163
  this.paginationState = {
164
164
  ...this.paginationState,
165
- pageIndex: Math.max(0, this.paginationState.pageIndex - 1)
165
+ pageIndex: Math.max(0, this.paginationState.pageIndex - 1),
166
166
  };
167
167
  };
168
168
  // #region filters
@@ -9,7 +9,7 @@ export interface ReadonlyPaginationState extends PaginationState {
9
9
  readonly pageIndex: number;
10
10
  readonly pageSize: number;
11
11
  }
12
- export declare abstract class TableDataRepository<T extends object> implements IDataRepository<T> {
12
+ export declare abstract class TableDataRepository<T extends object, out FilterValueType> implements IDataRepository<T> {
13
13
  private tableName;
14
14
  protected getUserId: () => string | undefined;
15
15
  abstract paginationType: 'Remote' | 'Local';
@@ -18,7 +18,7 @@ export declare abstract class TableDataRepository<T extends object> implements I
18
18
  abstract isLoading: boolean;
19
19
  abstract data: Array<T>;
20
20
  abstract setPageSize: (size: number) => void;
21
- abstract filtering: ColumnFiltersState;
21
+ abstract filtering: ColumnFiltersState<FilterValueType>;
22
22
  abstract setFilterMode: (id: string, mode: FilterMode) => void;
23
23
  abstract filterBy: (id: string, value: unknown) => void;
24
24
  abstract resetFilters: () => void;
@@ -10,7 +10,7 @@ export class TableDataRepository {
10
10
  __queryValues = new SvelteMap();
11
11
  _paginationState = $state({
12
12
  pageIndex: 0,
13
- pageSize: 20
13
+ pageSize: 20,
14
14
  });
15
15
  get paginationState() {
16
16
  return this._paginationState;
@@ -1,5 +1,5 @@
1
- export interface ColumnFilter<T = unknown> {
1
+ export interface ColumnFilter<T> {
2
2
  id: string;
3
3
  value: T;
4
4
  }
5
- export type ColumnFiltersState = Array<ColumnFilter>;
5
+ export type ColumnFiltersState<T = unknown> = Array<ColumnFilter<T>>;
@@ -3,12 +3,12 @@ import { Validity } from '../../../../Types/Internal/Validity.js';
3
3
  import type { TableCell } from '../Columns/TableCell.js';
4
4
  import type { TableContext } from '../Context/TableContext.svelte.js';
5
5
  import type { CellCoordinates } from '../Coordinates/CellCoordinates.js';
6
- export declare class TableFocusDetails<T extends object, FilterValueType> {
6
+ export declare class TableFocusDetails<T extends object> {
7
7
  private toastCallback;
8
- constructor(cell: TableCell<T, FilterValueType>, tableContext: TableContext<T, never>, toastCallback: ToastContext['toast']);
8
+ constructor(cell: TableCell<T>, tableContext: TableContext<T, never>, toastCallback: ToastContext['toast']);
9
9
  private _cell;
10
- get cell(): TableCell<T, FilterValueType>;
11
- set cell(v: TableCell<T, FilterValueType>);
10
+ get cell(): TableCell<T>;
11
+ set cell(v: TableCell<T>);
12
12
  private _tableContext;
13
13
  get tableContext(): TableContext<T, never>;
14
14
  set tableContext(v: TableContext<T, never>);
@@ -26,7 +26,7 @@ export class TableFocusDetails {
26
26
  _coordinates = $derived({
27
27
  row: this.cell.row.visibleIndex,
28
28
  column: this.cell.column.columnDef.index,
29
- id: this.cell.column.columnDef.id
29
+ id: this.cell.column.columnDef.id,
30
30
  });
31
31
  get coordinates() {
32
32
  return this._coordinates;
@@ -1,9 +1,9 @@
1
1
  import type { Column } from './Columns/Column.js';
2
- export interface Header<T extends object, FilterValueType> {
2
+ export interface Header<T extends object, in FilterValueType, out FilterOptionsType> {
3
3
  id: string;
4
4
  colSpan: number;
5
5
  getSize: () => number;
6
- column: Column<T, FilterValueType>;
6
+ column: Column<T, FilterValueType, FilterOptionsType>;
7
7
  isPlaceholder: boolean;
8
8
  getResizeHandler: () => (e: MouseEvent) => void;
9
9
  }
@@ -1,5 +1,5 @@
1
1
  import type { Header } from './Header.js';
2
2
  export interface HeaderGroup<T extends object> {
3
3
  id: string;
4
- headers: Array<Header<T, unknown>>;
4
+ headers: Array<Header<T, never, unknown>>;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import type { DisplayDefModalProps } from '../../Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js';
2
2
  import type { ExampleItem } from './ExampleItem.js';
3
- declare const ExampleModal: import("svelte").Component<DisplayDefModalProps<ExampleItem, unknown, unknown>, {}, "">;
3
+ declare const ExampleModal: import("svelte").Component<DisplayDefModalProps<ExampleItem, never, unknown>, {}, "">;
4
4
  type ExampleModal = ReturnType<typeof ExampleModal>;
5
5
  export default ExampleModal;