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