@lavalogic/scoria 0.12.2 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/Components/Base/ContextWrapper.svelte +16 -1
  2. package/dist/Components/Base/ContextWrapper.svelte.d.ts +13 -0
  3. package/dist/Components/TabGroupButtonProps.d.ts +1 -1
  4. package/dist/Components/Table/Body/QuickSearchCell.svelte +2 -3
  5. package/dist/Components/Table/Body/Rows/ColumnList.svelte +1 -1
  6. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +1 -1
  7. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +3 -3
  8. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte.d.ts +12 -12
  9. package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +2 -2
  10. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +27 -17
  11. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +11 -11
  12. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +11 -9
  13. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +12 -12
  14. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +8 -4
  15. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte.d.ts +13 -12
  16. package/dist/Components/Table/Body/Rows/Columns/ExpandCellProps.d.ts +5 -4
  17. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +4 -4
  18. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +12 -12
  19. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +2 -2
  20. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +11 -8
  21. package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.d.ts +5 -0
  22. package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.js +1 -0
  23. package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.d.ts +5 -0
  24. package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.js +1 -0
  25. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +4 -3
  26. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte.d.ts +2 -1
  27. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +16 -9
  28. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +17 -16
  29. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +5 -4
  30. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +10 -8
  31. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte.d.ts +2 -1
  32. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +10 -7
  33. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +11 -7
  34. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +2 -1
  35. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +10 -7
  36. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +11 -9
  37. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +12 -12
  38. package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +2 -2
  39. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +7 -7
  40. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte.d.ts +12 -12
  41. package/dist/Components/Table/Body/Rows/Columns/ValidityCellProps.d.ts +2 -2
  42. package/dist/Components/Table/Body/Rows/TableRow.svelte +7 -6
  43. package/dist/Components/Table/Body/TableBody.svelte +19 -15
  44. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.d.ts +1 -1
  45. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +17 -2
  46. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +29 -16
  47. package/dist/Components/Table/Headers/SelectAllHeader.svelte +1 -1
  48. package/dist/Components/Table/Headers/TableHead.svelte +1 -1
  49. package/dist/Components/Table/Misc/ColumnPanel.svelte +1 -1
  50. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +1 -1
  51. package/dist/Components/Table/Misc/FilterInput.svelte +1 -3
  52. package/dist/Components/Table/Misc/FilterPanel.svelte +2 -2
  53. package/dist/Components/Table/Misc/FilterPanelModal.svelte +1 -1
  54. package/dist/Components/Table/Misc/TableFooter.svelte +1 -1
  55. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +1 -1
  56. package/dist/Components/Table/Misc/TableSidebar.svelte +2 -1
  57. package/dist/Components/Table/Misc/ToolboxPanel.svelte +2 -2
  58. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +1 -1
  59. package/dist/Components/Table/NestedTable.svelte +12 -8
  60. package/dist/Components/Table/NestedTable.svelte.d.ts +15 -15
  61. package/dist/Components/Table/Table.svelte +111 -118
  62. package/dist/Components/Table/Table.svelte.d.ts +16 -15
  63. package/dist/Components/Table/Types/Columns/Column.d.ts +2 -2
  64. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +2 -2
  65. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +6 -6
  66. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +3 -3
  67. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +6 -6
  68. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +2 -2
  69. package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +3 -2
  70. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +3 -2
  71. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +2 -1
  72. package/dist/Components/Table/Types/Columns/TableCell.d.ts +2 -2
  73. package/dist/Components/Table/Types/Context/ITable.d.ts +1 -1
  74. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +32 -29
  75. package/dist/Components/Table/Types/Context/TableContext.svelte.js +313 -278
  76. package/dist/Components/Table/Types/Context/TableInitOptions.d.ts +4 -2
  77. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +1 -1
  78. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +1 -2
  79. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +2 -1
  80. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +31 -8
  81. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +2 -1
  82. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +4 -1
  83. package/dist/Components/Table/Types/Filtering/CustomFilterFn.d.ts +1 -1
  84. package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +1 -1
  85. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +7 -6
  86. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +8 -2
  87. package/dist/Components/VerticalTabGroupButton.svelte +1 -1
  88. package/dist/Components/VerticalTabGroupButton.svelte.d.ts +5 -5
  89. package/dist/Components/VerticalTabGroupProps.d.ts +2 -2
  90. package/dist/Contexts/ToastContext.svelte.d.ts +3 -1
  91. package/dist/Contexts/ToastContext.svelte.js +2 -2
  92. package/dist/Helpers/Helpers.svelte.d.ts +1 -2
  93. package/dist/Types/Examples/ExampleModal.svelte +2 -2
  94. package/dist/Types/Examples/ExampleModal.svelte.d.ts +23 -2
  95. package/dist/Types/Internal/TabOption.d.ts +1 -1
  96. package/dist/index.d.ts +1 -1
  97. package/package.json +18 -18
@@ -1,7 +1,8 @@
1
1
  import type { CellCoordinates } from '../Coordinates/CellCoordinates.js';
2
2
  import type { ToolbarPosition } from '../Toolbar/ToolbarPosition.js';
3
- export interface TableInitOptions<T extends object> {
4
- selectionExtractor: (item: T) => unknown;
3
+ export type Primitive = string | number;
4
+ export interface TableInitOptions<T extends object, Identifier extends Primitive> {
5
+ selectionExtractor: (item: T) => Promise<Identifier>;
5
6
  allowCopy?: boolean;
6
7
  enableResize?: boolean;
7
8
  allowColumnReordering?: boolean;
@@ -12,4 +13,5 @@ export interface TableInitOptions<T extends object> {
12
13
  displayFooter?: boolean;
13
14
  onEditCell?: (item: T, coords: CellCoordinates, value: unknown) => void | Promise<void>;
14
15
  getUserId: () => string | undefined;
16
+ debug?: boolean;
15
17
  }
@@ -17,7 +17,7 @@ export interface IDataRepository<T extends object> {
17
17
  manualSorting?: boolean;
18
18
  sorting: SortingState;
19
19
  filtering: ColumnFiltersState;
20
- filterModes: SvelteMap<string, FilterMode>;
20
+ filterModes: ReadonlyMap<string, FilterMode>;
21
21
  setFilterMode: (id: string, mode: FilterMode) => void;
22
22
  filterBy: (id: string, value: unknown) => void;
23
23
  dateFilter?: FilterFn<T, DateFilterValueType>;
@@ -1,4 +1,3 @@
1
- import type { SvelteMap } from 'svelte/reactivity';
2
1
  import type { ColumnFiltersState } from '../Filtering/ColumnFiltersState.js';
3
2
  import type { BoolFilterValueType, DateFilterValueType, FilterFn, NumberFilterValueType, SelectFilterValueType, StringFilterValueType } from '../Filtering/FilterFn.js';
4
3
  import type { FilterMode } from '../Filtering/FilterMode.js';
@@ -10,7 +9,7 @@ export interface ILocalDataRepository<T extends object> extends IDataRepository<
10
9
  nextPage: () => void;
11
10
  prevPage: () => void;
12
11
  filtering: ColumnFiltersState;
13
- filterModes: SvelteMap<string, FilterMode>;
12
+ filterModes: ReadonlyMap<string, FilterMode>;
14
13
  setFilterMode: (id: string, mode: FilterMode) => void;
15
14
  filterBy: (id: string, value: unknown) => void;
16
15
  dateFilter: FilterFn<T, DateFilterValueType>;
@@ -13,9 +13,10 @@ import { TableDataRepository } from './TableDataRepository.svelte.js';
13
13
  export declare const allowedEmptyFilterModes: SvelteSet<StringFilterMode | NumberDateFilterMode>;
14
14
  export declare class LocalTableDataRepository<T extends object> extends TableDataRepository<T> implements ILocalDataRepository<T> {
15
15
  addEmptyRow?: (() => void) | undefined;
16
+ private debug;
16
17
  readonly filterType: "Real";
17
18
  constructor(tableName: string, dataRef: RefWrapper<Array<T>>, // reactive
18
- getUserId: () => string | undefined, addEmptyRow?: (() => void) | undefined);
19
+ getUserId: () => string | undefined, addEmptyRow?: (() => void) | undefined, debug?: boolean);
19
20
  private _isLoading;
20
21
  get isLoading(): boolean;
21
22
  set isLoading(v: boolean);
@@ -11,11 +11,13 @@ export const allowedEmptyFilterModes = new SvelteSet([
11
11
  ]);
12
12
  export class LocalTableDataRepository extends TableDataRepository {
13
13
  addEmptyRow;
14
+ debug;
14
15
  filterType = FilterType.Real;
15
16
  constructor(tableName, dataRef, // reactive
16
- getUserId, addEmptyRow) {
17
+ getUserId, addEmptyRow, debug = false) {
17
18
  super(tableName, getUserId);
18
19
  this.addEmptyRow = addEmptyRow;
20
+ this.debug = debug;
19
21
  this._dataRef = $derived(dataRef);
20
22
  this._lastPage = $derived(Math.ceil(this._dataRef.value.length / this.paginationState.pageSize));
21
23
  this._totalRows = $derived(this._dataRef.value.length);
@@ -64,14 +66,20 @@ export class LocalTableDataRepository extends TableDataRepository {
64
66
  paginationType = PaginationType.Local;
65
67
  setFilterMode = (id, mode) => {
66
68
  if (mode != undefined) {
67
- this.filterModes.set(id, mode);
69
+ if (this.debug) {
70
+ console.log(`LOCAL REPO: Setting mode ${mode} for ${id}`);
71
+ }
72
+ this._filterModes.set(id, mode);
68
73
  //add stub filtering in empty cases
69
74
  if (allowedEmptyFilterModes.has(mode) && !this.filtering.some((it) => it.id === id)) {
70
75
  this.filterBy(id, '');
71
76
  }
72
77
  }
73
78
  else {
74
- this.filterModes.delete(id);
79
+ if (this.debug) {
80
+ console.log(`LOCAL REPO: Deleting mode for ${id}`);
81
+ }
82
+ this._filterModes.delete(id);
75
83
  }
76
84
  };
77
85
  filterBy = (id, value) => {
@@ -82,18 +90,33 @@ export class LocalTableDataRepository extends TableDataRepository {
82
90
  const oldIndex = this.filtering.findIndex((it) => it.id === id);
83
91
  const newFiltering = this.filtering.concat();
84
92
  if (oldIndex === -1 || newFiltering[oldIndex].value != value) {
93
+ // remove previous filter state for this column if exists
94
+ // if it's useful, we'll then add it back to the end of the array for filtering precedence
85
95
  if (oldIndex > -1) {
86
96
  newFiltering.splice(oldIndex, 1);
87
97
  }
88
98
  const filterMode = this.filterModes.get(id);
89
- const hasValue = filterMode &&
90
- (allowedEmptyFilterModes.has(filterMode) ||
91
- !(value == null ||
92
- (typeof value === 'object' && Array.isArray(value) && value.length === 0) ||
93
- (typeof value === 'string' && value.length === 0)));
99
+ const hasValue = (filterMode && allowedEmptyFilterModes.has(filterMode)) ||
100
+ (value != null &&
101
+ ((typeof value === 'object' && Array.isArray(value) && value.length !== 0) ||
102
+ (typeof value === 'string' && value.length !== 0) ||
103
+ (typeof value !== 'object' && typeof value !== 'string')));
94
104
  if (hasValue) {
105
+ if (this.debug) {
106
+ console.log(`LOCAL REPO: adding filter value ${value?.toString()} for id ${id}`);
107
+ }
95
108
  newFiltering.push({ id, value });
96
109
  }
110
+ else {
111
+ if (this.debug) {
112
+ if (!filterMode) {
113
+ console.log(`LOCAL REPO: no filter mode found for ${id}, skipping value ${value?.toString()}...`);
114
+ }
115
+ else {
116
+ console.log(`LOCAL REPO: no value found for id ${id}. Skipping...`);
117
+ }
118
+ }
119
+ }
97
120
  }
98
121
  this.filtering = newFiltering;
99
122
  };
@@ -36,7 +36,8 @@ export declare abstract class TableDataRepository<T extends object> implements I
36
36
  private _previouslyViewedPage;
37
37
  get previouslyViewedPage(): number;
38
38
  private set previouslyViewedPage(value);
39
- filterModes: SvelteMap<string, FilterMode>;
39
+ protected _filterModes: SvelteMap<string, FilterMode>;
40
+ get filterModes(): ReadonlyMap<string, FilterMode>;
40
41
  private _forceRefresh;
41
42
  get forceRefresh(): () => void;
42
43
  set forceRefresh(v: () => void);
@@ -29,7 +29,10 @@ export class TableDataRepository {
29
29
  set previouslyViewedPage(v) {
30
30
  this._previouslyViewedPage = v;
31
31
  }
32
- filterModes = $state(new SvelteMap());
32
+ _filterModes = $state(new SvelteMap());
33
+ get filterModes() {
34
+ return this._filterModes;
35
+ }
33
36
  _forceRefresh = $state(() => {
34
37
  console.warn('tried to force refresh without a callback registered');
35
38
  });
@@ -1,2 +1,2 @@
1
1
  import type { FilterMode } from './FilterMode.js';
2
- export type CustomFilterFn = (mode: FilterMode, value: unknown) => Promise<boolean>;
2
+ export type CustomFilterFn = (mode: FilterMode, value: unknown) => boolean | Promise<boolean>;
@@ -6,4 +6,4 @@ export type SelectFilterValueType<T, columnType = T[keyof T]> = string | Array<u
6
6
  } | undefined;
7
7
  export type BoolFilterValueType = boolean | null;
8
8
  export type StringFilterValueType = string | null;
9
- export type FilterFn<T extends object, FilterValueType> = (row: Row<T>, columnId: string, filterValue: FilterValueType) => Promise<boolean>;
9
+ export type FilterFn<T extends object, FilterValueType> = (row: Row<T>, columnId: string, filterValue: FilterValueType) => boolean | Promise<boolean>;
@@ -1,16 +1,17 @@
1
+ import type { ToastContext } from '../../../../Contexts/ToastContext.svelte.js';
1
2
  import { Validity } from '../../../../Types/Internal/Validity.js';
2
3
  import type { TableCell } from '../Columns/TableCell.js';
3
4
  import type { TableContext } from '../Context/TableContext.svelte.js';
4
5
  import type { CellCoordinates } from '../Coordinates/CellCoordinates.js';
5
- export declare class TableFocusDetails<T extends object> {
6
+ export declare class TableFocusDetails<T extends object, in FilterValueType> {
6
7
  private toastCallback;
7
- constructor(cell: TableCell<T>, tableContext: TableContext<T>, toastCallback: (message: unknown) => void);
8
+ constructor(cell: TableCell<T, FilterValueType>, tableContext: TableContext<T, never>, toastCallback: ToastContext['toast']);
8
9
  private _cell;
9
- get cell(): TableCell<T>;
10
- set cell(v: TableCell<T>);
10
+ get cell(): TableCell<T, FilterValueType>;
11
+ set cell(v: TableCell<T, FilterValueType>);
11
12
  private _tableContext;
12
- get tableContext(): TableContext<T>;
13
- set tableContext(v: TableContext<T>);
13
+ get tableContext(): TableContext<T, never>;
14
+ set tableContext(v: TableContext<T, never>);
14
15
  private _coordinates;
15
16
  get coordinates(): CellCoordinates;
16
17
  private _isMultiFocused;
@@ -1,3 +1,4 @@
1
+ import { devCatch, isErrorResponse } from '../../../../Helpers/Helpers.svelte.js';
1
2
  import { Colour } from '../../../../scss/colours.js';
2
3
  import { Validity } from '../../../../Types/Internal/Validity.js';
3
4
  import { tick } from 'svelte';
@@ -118,7 +119,7 @@ export class TableFocusDetails {
118
119
  });
119
120
  async __validityTuple(isValid, original) {
120
121
  try {
121
- const result = (await isValid?.(original, this.tableContext.selectionContains(original))) ??
122
+ const result = (await isValid?.(original, await this.tableContext.selectionContains(original))) ??
122
123
  Validity.Valid;
123
124
  if (isWrapper(result)) {
124
125
  return [result.value, result.reason];
@@ -130,7 +131,12 @@ export class TableFocusDetails {
130
131
  catch (e) {
131
132
  console.warn('validity error:', e);
132
133
  return tick().then(() => {
133
- this.toastCallback(e);
134
+ if (isErrorResponse(e)) {
135
+ this.toastCallback(e);
136
+ }
137
+ else {
138
+ devCatch(e);
139
+ }
134
140
  return [Validity.Valid, undefined];
135
141
  });
136
142
  }
@@ -1,6 +1,6 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" generics="Args extends object|undefined">
3
+ <script lang="ts" generics="Args">
4
4
  import { devCatch } from '../Helpers/Helpers.svelte.js';
5
5
  import { Colour } from '../scss/colours.js';
6
6
  import { Size } from '../Types/Internal/Size.js';
@@ -1,12 +1,12 @@
1
1
  import type { TabGroupButtonProps } from './TabGroupButtonProps.js';
2
- declare function $$render<Args extends object | undefined>(): {
2
+ declare function $$render<Args>(): {
3
3
  props: TabGroupButtonProps<Args>;
4
4
  exports: {};
5
5
  bindings: "";
6
6
  slots: {};
7
7
  events: {};
8
8
  };
9
- declare class __sveltets_Render<Args extends object | undefined> {
9
+ declare class __sveltets_Render<Args> {
10
10
  props(): ReturnType<typeof $$render<Args>>['props'];
11
11
  events(): ReturnType<typeof $$render<Args>>['events'];
12
12
  slots(): ReturnType<typeof $$render<Args>>['slots'];
@@ -14,12 +14,12 @@ declare class __sveltets_Render<Args extends object | undefined> {
14
14
  exports(): {};
15
15
  }
16
16
  interface $$IsomorphicComponent {
17
- new <Args extends object | undefined>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Args>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Args>['props']>, ReturnType<__sveltets_Render<Args>['events']>, ReturnType<__sveltets_Render<Args>['slots']>> & {
17
+ new <Args>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Args>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Args>['props']>, ReturnType<__sveltets_Render<Args>['events']>, ReturnType<__sveltets_Render<Args>['slots']>> & {
18
18
  $$bindings?: ReturnType<__sveltets_Render<Args>['bindings']>;
19
19
  } & ReturnType<__sveltets_Render<Args>['exports']>;
20
- <Args extends object | undefined>(internal: unknown, props: ReturnType<__sveltets_Render<Args>['props']> & {}): ReturnType<__sveltets_Render<Args>['exports']>;
20
+ <Args>(internal: unknown, props: ReturnType<__sveltets_Render<Args>['props']> & {}): ReturnType<__sveltets_Render<Args>['exports']>;
21
21
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
22
22
  }
23
23
  declare const VerticalTabGroupButton: $$IsomorphicComponent;
24
- type VerticalTabGroupButton<Args extends object | undefined> = InstanceType<typeof VerticalTabGroupButton<Args>>;
24
+ type VerticalTabGroupButton<Args> = InstanceType<typeof VerticalTabGroupButton<Args>>;
25
25
  export default VerticalTabGroupButton;
@@ -1,8 +1,8 @@
1
1
  import type { TabOption } from '../Types/Internal/TabOption.js';
2
2
  export interface VerticalTabGroupProps {
3
3
  name?: string;
4
- tabs: Array<TabOption<object>>;
5
- selected?: TabOption<object> | undefined;
4
+ tabs: Array<TabOption<unknown>>;
5
+ selected?: TabOption<unknown>;
6
6
  style?: string;
7
7
  noscroll?: boolean;
8
8
  noTabMessage?: string;
@@ -1,9 +1,11 @@
1
+ import { type IErrorResponse } from '../Helpers/Helpers.svelte.js';
1
2
  import type { IdentifiableToastMessage } from '../Types/Internal/IdentifiableToastMessage.js';
3
+ import type { ToastMessage } from '../Types/Internal/ToastMessage.js';
2
4
  export declare class ToastContext {
3
5
  static readonly identifier: unique symbol;
4
6
  private _toasts;
5
7
  get toasts(): Array<IdentifiableToastMessage>;
6
8
  private set toasts(value);
7
- readonly toast: (message: unknown) => void;
9
+ readonly toast: (message: Array<unknown> | string | ToastMessage | IErrorResponse) => void;
8
10
  private dismiss;
9
11
  }
@@ -27,7 +27,7 @@ export class ToastContext {
27
27
  }
28
28
  };
29
29
  }
30
- else if (typeof message === 'string') {
30
+ if (typeof message === 'string') {
31
31
  return {
32
32
  result: Validity.Info,
33
33
  closeable,
@@ -39,7 +39,7 @@ export class ToastContext {
39
39
  }
40
40
  };
41
41
  }
42
- if (message != null && typeof message == 'object' && isToastMessage(message)) {
42
+ if (typeof message == 'object' && isToastMessage(message)) {
43
43
  return {
44
44
  closeable,
45
45
  timeout,
@@ -13,7 +13,7 @@ export declare function SQLFriendlyWithLocalTime(date: InputDate | InputDateWith
13
13
  export declare const localTimeFormat: Intl.DateTimeFormat;
14
14
  export declare function passthrough(e: KeyboardEvent): void;
15
15
  export declare function getCanvasContext(): CanvasRenderingContext2D | null;
16
- interface IErrorResponse {
16
+ export interface IErrorResponse {
17
17
  readonly errors: ReadonlyArray<{
18
18
  code: string;
19
19
  message: string;
@@ -41,4 +41,3 @@ export declare function devCatch(e: unknown): void;
41
41
  export declare function hasQuery(customFilter: CustomFilter | undefined): customFilter is CustomFilter & Required<Pick<CustomFilter, 'query'>>;
42
42
  export declare function isDateTuple(value: unknown): value is [Date | null, Date | null];
43
43
  export declare function isNumberTuple(value: unknown): value is [number | null, number | null];
44
- export {};
@@ -1,12 +1,12 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts">
3
+ <script lang="ts" generics="FilterValueType">
4
4
  import DesktopModal from '../../Components/DesktopModal.svelte';
5
5
  import Switch from '../../Components/Switch.svelte';
6
6
  import type { DisplayDefModalProps } from '../../Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js';
7
7
  import type { ExampleItem } from './ExampleItem.js';
8
8
 
9
- const { cell, onclose, onsubmit }: DisplayDefModalProps<ExampleItem> = $props();
9
+ const { cell, onclose, onsubmit }: DisplayDefModalProps<ExampleItem, FilterValueType> = $props();
10
10
  </script>
11
11
 
12
12
  <DesktopModal
@@ -1,5 +1,26 @@
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>, {}, "">;
4
- type ExampleModal = ReturnType<typeof ExampleModal>;
3
+ declare function $$render<FilterValueType>(): {
4
+ props: DisplayDefModalProps<ExampleItem, FilterValueType>;
5
+ exports: {};
6
+ bindings: "";
7
+ slots: {};
8
+ events: {};
9
+ };
10
+ declare class __sveltets_Render<FilterValueType> {
11
+ props(): ReturnType<typeof $$render<FilterValueType>>['props'];
12
+ events(): ReturnType<typeof $$render<FilterValueType>>['events'];
13
+ slots(): ReturnType<typeof $$render<FilterValueType>>['slots'];
14
+ bindings(): "";
15
+ exports(): {};
16
+ }
17
+ interface $$IsomorphicComponent {
18
+ new <FilterValueType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<FilterValueType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<FilterValueType>['props']>, ReturnType<__sveltets_Render<FilterValueType>['events']>, ReturnType<__sveltets_Render<FilterValueType>['slots']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<FilterValueType>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<FilterValueType>['exports']>;
21
+ <FilterValueType>(internal: unknown, props: ReturnType<__sveltets_Render<FilterValueType>['props']> & {}): ReturnType<__sveltets_Render<FilterValueType>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
23
+ }
24
+ declare const ExampleModal: $$IsomorphicComponent;
25
+ type ExampleModal<FilterValueType> = InstanceType<typeof ExampleModal<FilterValueType>>;
5
26
  export default ExampleModal;
@@ -1,6 +1,6 @@
1
1
  import type { IconProps } from '../../Components/IconProps.js';
2
2
  import type { Snippet } from 'svelte';
3
- export interface TabOption<Args extends object | undefined = undefined> {
3
+ export interface TabOption<Args> {
4
4
  label: string;
5
5
  content: Snippet<[Args]>;
6
6
  onclick: () => void;
package/dist/index.d.ts CHANGED
@@ -75,7 +75,7 @@ export { default as Switch } from './Components/Switch.svelte';
75
75
  export { type ITable } from './Components/Table/Types/Context/ITable.js';
76
76
  export { type RowModel } from './Components/Table/Types/Context/RowModel.js';
77
77
  export { isSearchable, TableContext } from './Components/Table/Types/Context/TableContext.svelte.js';
78
- export { type TableInitOptions } from './Components/Table/Types/Context/TableInitOptions.js';
78
+ export { type Primitive, type TableInitOptions } from './Components/Table/Types/Context/TableInitOptions.js';
79
79
  export { type TableSettings } from './Components/Table/Types/Context/TableSettings.js';
80
80
  export { type CellCoordinates } from './Components/Table/Types/Coordinates/CellCoordinates.js';
81
81
  export { type CellCoordinatesWithoutColumn } from './Components/Table/Types/Coordinates/CellCoordinatesWithoutColumn.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lavalogic/scoria",
3
3
  "description": "Svelte components used for the FloWMS Web Frontend",
4
- "version": "0.12.2",
4
+ "version": "0.13.1",
5
5
  "publishConfig": {
6
6
  "access": "restricted"
7
7
  },
@@ -29,42 +29,42 @@
29
29
  "svelte": "^5.0.0"
30
30
  },
31
31
  "devDependencies": {
32
- "@chromatic-com/storybook": "^4.1.3",
32
+ "@chromatic-com/storybook": "^5.0.1",
33
33
  "@eslint/compat": "^2.0.2",
34
- "@eslint/js": "^9.39.2",
34
+ "@eslint/js": "^10.0.1",
35
35
  "@playwright/test": "^1.58.2",
36
- "@storybook/addon-a11y": "^10.2.9",
37
- "@storybook/addon-docs": "^10.2.9",
36
+ "@storybook/addon-a11y": "^10.2.11",
37
+ "@storybook/addon-docs": "^10.2.11",
38
38
  "@storybook/addon-svelte-csf": "^5.0.11",
39
- "@storybook/addon-vitest": "^10.2.9",
40
- "@storybook/sveltekit": "^10.2.9",
39
+ "@storybook/addon-vitest": "^10.2.11",
40
+ "@storybook/sveltekit": "^10.2.11",
41
41
  "@sveltejs/adapter-node": "^5.5.3",
42
- "@sveltejs/kit": "^2.52.0",
42
+ "@sveltejs/kit": "^2.53.0",
43
43
  "@sveltejs/package": "^2.5.7",
44
44
  "@sveltejs/vite-plugin-svelte": "^6.2.4",
45
45
  "@types/eslint": "^9.6.1",
46
- "@types/node": "^25.2.3",
47
- "@typescript-eslint/eslint-plugin": "^8.56.0",
48
- "@typescript-eslint/parser": "^8.56.0",
46
+ "@types/node": "^25.3.0",
47
+ "@typescript-eslint/eslint-plugin": "^8.56.1",
48
+ "@typescript-eslint/parser": "^8.56.1",
49
49
  "@vitest/browser": "^4.0.18",
50
50
  "@vitest/browser-playwright": "^4.0.18",
51
- "eslint": "^9.39.2",
51
+ "eslint": "^10.0.2",
52
52
  "eslint-config-prettier": "^10.1.8",
53
- "eslint-plugin-storybook": "^10.2.9",
53
+ "eslint-plugin-storybook": "^10.2.11",
54
54
  "eslint-plugin-svelte": "^3.15.0",
55
55
  "globals": "^17.3.0",
56
56
  "mdsvex": "^0.12.6",
57
57
  "playwright": "^1.58.2",
58
58
  "prettier": "^3.8.1",
59
- "prettier-plugin-svelte": "^3.4.1",
59
+ "prettier-plugin-svelte": "^3.5.0",
60
60
  "publint": "^0.3.17",
61
61
  "sass-embedded": "^1.97.3",
62
- "storybook": "^10.2.9",
63
- "svelte": "^5.51.3",
64
- "svelte-check": "^4.4.0",
62
+ "storybook": "^10.2.11",
63
+ "svelte": "^5.53.3",
64
+ "svelte-check": "^4.4.3",
65
65
  "svelte-render-scan": "^1.1.0",
66
66
  "typescript": "^5.9.3",
67
- "typescript-eslint": "^8.56.0",
67
+ "typescript-eslint": "^8.56.1",
68
68
  "vite": "^7.3.1",
69
69
  "vite-plugin-devtools-json": "^1.0.0",
70
70
  "vitest": "^4.0.18",