@lavalogic/scoria 0.12.3 → 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.
- package/dist/Components/Table/Body/QuickSearchCell.svelte +2 -3
- package/dist/Components/Table/Body/Rows/ColumnList.svelte +1 -1
- package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +1 -1
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +25 -15
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +8 -6
- package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +7 -3
- package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte.d.ts +13 -12
- package/dist/Components/Table/Body/Rows/Columns/ExpandCellProps.d.ts +5 -4
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +1 -1
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +8 -6
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +1 -1
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +4 -3
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +3 -2
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +3 -3
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +7 -6
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +8 -6
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +7 -4
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +8 -6
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +8 -6
- package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +3 -3
- package/dist/Components/Table/Body/Rows/TableRow.svelte +8 -7
- package/dist/Components/Table/Body/TableBody.svelte +19 -15
- package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +4 -3
- package/dist/Components/Table/Headers/HighlightAllHeader.svelte +29 -16
- package/dist/Components/Table/Headers/SelectAllHeader.svelte +1 -1
- package/dist/Components/Table/Headers/TableHead.svelte +1 -1
- package/dist/Components/Table/Misc/ColumnPanel.svelte +1 -1
- package/dist/Components/Table/Misc/ColumnPanelModal.svelte +1 -1
- package/dist/Components/Table/Misc/FilterInput.svelte +1 -3
- package/dist/Components/Table/Misc/FilterPanel.svelte +2 -2
- package/dist/Components/Table/Misc/FilterPanelModal.svelte +1 -1
- package/dist/Components/Table/Misc/TableFooter.svelte +1 -1
- package/dist/Components/Table/Misc/TableHorizontalBar.svelte +1 -1
- package/dist/Components/Table/Misc/TableSidebar.svelte +2 -1
- package/dist/Components/Table/Misc/ToolboxPanel.svelte +2 -2
- package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +1 -1
- package/dist/Components/Table/NestedTable.svelte +12 -8
- package/dist/Components/Table/NestedTable.svelte.d.ts +15 -15
- package/dist/Components/Table/Table.svelte +111 -118
- package/dist/Components/Table/Table.svelte.d.ts +16 -15
- package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +6 -6
- package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +3 -2
- package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +3 -2
- package/dist/Components/Table/Types/Context/ITable.d.ts +1 -1
- package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +32 -29
- package/dist/Components/Table/Types/Context/TableContext.svelte.js +313 -278
- package/dist/Components/Table/Types/Context/TableInitOptions.d.ts +4 -2
- package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +1 -1
- package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +1 -2
- package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +2 -1
- package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +31 -8
- package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +2 -1
- package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +4 -1
- package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +3 -3
- package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +11 -11
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
import { NumberDateFilterMode } from '../Types/Filtering/NumberDateFilterMode.js';
|
|
34
34
|
import { StringFilterMode } from '../Types/Filtering/StringFilterMode.js';
|
|
35
35
|
import type { QuickSearchCellProps } from './QuickSearchCellProps.js';
|
|
36
|
-
|
|
36
|
+
|
|
37
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
37
38
|
|
|
38
39
|
const { column, customFilters }: QuickSearchCellProps<T> = $props();
|
|
39
40
|
|
|
@@ -557,7 +558,6 @@
|
|
|
557
558
|
const newFilterType = newValue?.value ?? NumberDateFilterMode.In;
|
|
558
559
|
|
|
559
560
|
tableContext.paginationRepo?.setFilterMode(def.id, newFilterType);
|
|
560
|
-
tableContext.paginationRepo?.filterModes.set(def.id, newFilterType);
|
|
561
561
|
|
|
562
562
|
if (selectedNumberFilterType?.value !== oldFilterType?.value) {
|
|
563
563
|
if (oldFilterType?.value === NumberDateFilterMode.Between) {
|
|
@@ -587,7 +587,6 @@
|
|
|
587
587
|
onchange={(newValue: SelectOption<StringFilterMode> | null) => {
|
|
588
588
|
const filterType = newValue?.value ?? StringFilterMode.Contains;
|
|
589
589
|
tableContext.paginationRepo?.setFilterMode(def.id, filterType);
|
|
590
|
-
tableContext.paginationRepo?.filterModes.set(def.id, filterType);
|
|
591
590
|
}}
|
|
592
591
|
onkeydown={(e: KeyboardEvent) => {
|
|
593
592
|
e.stopPropagation();
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import type { ColumnListProps } from './ColumnListProps.js';
|
|
9
9
|
import ColumnListRow from './ColumnListRow.svelte';
|
|
10
10
|
|
|
11
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
11
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
12
12
|
|
|
13
13
|
const { searchValue }: ColumnListProps = $props();
|
|
14
14
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { Size } from '../../../../Types/Internal/Size.js';
|
|
8
8
|
import { getContext } from 'svelte';
|
|
9
9
|
import type { ColumnListRowProps } from './ColumnListRowProps.js';
|
|
10
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
10
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
11
11
|
|
|
12
12
|
const { columnDef }: ColumnListRowProps<T> = $props();
|
|
13
13
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { MultiFocusEdge } from '../../../Types/Focus/MultiFocusEdge.js';
|
|
9
9
|
import { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
|
|
10
10
|
import { ToastContext } from '../../../../../Contexts/ToastContext.svelte.js';
|
|
11
|
-
import { devCatch, refWrapper } from '../../../../../Helpers/Helpers.svelte.js';
|
|
11
|
+
import { asyncMap, devCatch, refWrapper } from '../../../../../Helpers/Helpers.svelte.js';
|
|
12
12
|
import { Colour, ColourSet } from '../../../../../scss/colours.js';
|
|
13
13
|
import { Size } from '../../../../../Types/Internal/Size.js';
|
|
14
14
|
import { Validity } from '../../../../../Types/Internal/Validity.js';
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
const value = $derived(cell.getValue());
|
|
26
26
|
|
|
27
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
27
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
28
28
|
const toastContext = getContext<ToastContext>(ToastContext.identifier);
|
|
29
29
|
|
|
30
30
|
const actions: Array<TableActionButton<T>> = $derived(cell.column.columnDef.actions);
|
|
@@ -88,12 +88,14 @@
|
|
|
88
88
|
untrack(() => {
|
|
89
89
|
tick()
|
|
90
90
|
.then(() => {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
91
|
+
const x =
|
|
92
|
+
validity === Validity.Invalid
|
|
93
|
+
? tableContext.addInvalidValue(cell.row.original)
|
|
94
|
+
: tableContext.removeInvalidValue(cell.row.original);
|
|
95
|
+
|
|
96
96
|
previousValidity = validity;
|
|
97
|
+
|
|
98
|
+
return x;
|
|
97
99
|
})
|
|
98
100
|
.catch(devCatch);
|
|
99
101
|
});
|
|
@@ -163,15 +165,23 @@
|
|
|
163
165
|
/>
|
|
164
166
|
</div>
|
|
165
167
|
{#if thisPopupIsVisibile}
|
|
166
|
-
<
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
168
|
+
{@const awaitedActions = asyncMap<TableActionButton<T>, [TableActionButton<T>, string]>(
|
|
169
|
+
actions,
|
|
170
|
+
async (item) => {
|
|
171
|
+
return [item, await item.getLabel(cell.row.original, cell.row.visibleIndex)];
|
|
172
|
+
}
|
|
173
|
+
)}
|
|
174
|
+
{#await awaitedActions then actions}
|
|
175
|
+
<Portal>
|
|
176
|
+
<div class="popup" style="--y: {y}px; --x: {x}px;">
|
|
177
|
+
<div class="action-container">
|
|
178
|
+
{#each actions as [action, label] (label)}
|
|
179
|
+
<TableAction {action} {cell} />
|
|
180
|
+
{/each}
|
|
181
|
+
</div>
|
|
172
182
|
</div>
|
|
173
|
-
</
|
|
174
|
-
|
|
183
|
+
</Portal>
|
|
184
|
+
{/await}
|
|
175
185
|
{/if}
|
|
176
186
|
</td>
|
|
177
187
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
const values = $derived(cell.getValue()) as Array<string> | Promise<Array<string>>;
|
|
18
18
|
|
|
19
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
19
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
20
20
|
const toastContext = getContext<ToastContext>(ToastContext.identifier);
|
|
21
21
|
|
|
22
22
|
const focusDetails: TableFocusDetails<T, FilterValueType> = $derived(
|
|
@@ -44,12 +44,14 @@
|
|
|
44
44
|
untrack(() => {
|
|
45
45
|
tick()
|
|
46
46
|
.then(() => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
const x =
|
|
48
|
+
validity === Validity.Invalid
|
|
49
|
+
? tableContext.addInvalidValue(cell.row.original)
|
|
50
|
+
: tableContext.removeInvalidValue(cell.row.original);
|
|
51
|
+
|
|
52
52
|
previousValidity = validity;
|
|
53
|
+
|
|
54
|
+
return x;
|
|
53
55
|
})
|
|
54
56
|
.catch(devCatch);
|
|
55
57
|
});
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
|
-
<script
|
|
3
|
+
<script
|
|
4
|
+
lang="ts"
|
|
5
|
+
generics="T extends object, R extends object,FilterValueType, IdType extends Primitive"
|
|
6
|
+
>
|
|
4
7
|
import Action from '../../../../Action.svelte';
|
|
5
8
|
import { TableContext } from '../../../Types/Context/TableContext.svelte.js';
|
|
9
|
+
import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
|
|
6
10
|
import { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
|
|
7
11
|
import { ToastContext } from '../../../../../Contexts/ToastContext.svelte.js';
|
|
8
12
|
import { ColourSet } from '../../../../../scss/colours.js';
|
|
@@ -10,9 +14,9 @@
|
|
|
10
14
|
import { getContext } from 'svelte';
|
|
11
15
|
import type { ExpandCellProps } from './ExpandCellProps.js';
|
|
12
16
|
|
|
13
|
-
const { cell, expandedColumnDef, onExpandChange }: ExpandCellProps<T, R> = $props();
|
|
17
|
+
const { cell, expandedColumnDef, onExpandChange }: ExpandCellProps<T, R, IdType> = $props();
|
|
14
18
|
|
|
15
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
19
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
16
20
|
const toastContext = getContext<ToastContext>(ToastContext.identifier);
|
|
17
21
|
const focusDetails: TableFocusDetails<T, FilterValueType> = $derived(
|
|
18
22
|
new TableFocusDetails(cell, tableContext, toastContext.toast)
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
+
import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
|
|
1
2
|
import type { ExpandCellProps } from './ExpandCellProps.js';
|
|
2
|
-
declare function $$render<T extends object, R extends object, FilterValueType>(): {
|
|
3
|
-
props: ExpandCellProps<T, R>;
|
|
3
|
+
declare function $$render<T extends object, R extends object, FilterValueType, IdType extends Primitive>(): {
|
|
4
|
+
props: ExpandCellProps<T, R, IdType>;
|
|
4
5
|
exports: {};
|
|
5
6
|
bindings: "";
|
|
6
7
|
slots: {};
|
|
7
8
|
events: {};
|
|
8
9
|
};
|
|
9
|
-
declare class __sveltets_Render<T extends object, R extends object, FilterValueType> {
|
|
10
|
-
props(): ReturnType<typeof $$render<T, R, FilterValueType>>['props'];
|
|
11
|
-
events(): ReturnType<typeof $$render<T, R, FilterValueType>>['events'];
|
|
12
|
-
slots(): ReturnType<typeof $$render<T, R, FilterValueType>>['slots'];
|
|
10
|
+
declare class __sveltets_Render<T extends object, R extends object, FilterValueType, IdType extends Primitive> {
|
|
11
|
+
props(): ReturnType<typeof $$render<T, R, FilterValueType, IdType>>['props'];
|
|
12
|
+
events(): ReturnType<typeof $$render<T, R, FilterValueType, IdType>>['events'];
|
|
13
|
+
slots(): ReturnType<typeof $$render<T, R, FilterValueType, IdType>>['slots'];
|
|
13
14
|
bindings(): "";
|
|
14
15
|
exports(): {};
|
|
15
16
|
}
|
|
16
17
|
interface $$IsomorphicComponent {
|
|
17
|
-
new <T extends object, R extends object, FilterValueType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, R, FilterValueType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, R, FilterValueType>['props']>, ReturnType<__sveltets_Render<T, R, FilterValueType>['events']>, ReturnType<__sveltets_Render<T, R, FilterValueType>['slots']>> & {
|
|
18
|
-
$$bindings?: ReturnType<__sveltets_Render<T, R, FilterValueType>['bindings']>;
|
|
19
|
-
} & ReturnType<__sveltets_Render<T, R, FilterValueType>['exports']>;
|
|
20
|
-
<T extends object, R extends object, FilterValueType>(internal: unknown, props: ReturnType<__sveltets_Render<T, R, FilterValueType>['props']> & {}): ReturnType<__sveltets_Render<T, R, FilterValueType>['exports']>;
|
|
21
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
|
|
18
|
+
new <T extends object, R extends object, FilterValueType, IdType extends Primitive>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['props']>, ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['events']>, ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['slots']>> & {
|
|
19
|
+
$$bindings?: ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['bindings']>;
|
|
20
|
+
} & ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['exports']>;
|
|
21
|
+
<T extends object, R extends object, FilterValueType, IdType extends Primitive>(internal: unknown, props: ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['props']> & {}): ReturnType<__sveltets_Render<T, R, FilterValueType, IdType>['exports']>;
|
|
22
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any>['bindings']>;
|
|
22
23
|
}
|
|
23
24
|
declare const ExpandCell: $$IsomorphicComponent;
|
|
24
|
-
type ExpandCell<T extends object, R extends object, FilterValueType> = InstanceType<typeof ExpandCell<T, R, FilterValueType>>;
|
|
25
|
+
type ExpandCell<T extends object, R extends object, FilterValueType, IdType extends Primitive> = InstanceType<typeof ExpandCell<T, R, FilterValueType, IdType>>;
|
|
25
26
|
export default ExpandCell;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { ExpandDef } from '../../../Types/Columns/Definitions/Expand/ExpandDef.svelte.js';
|
|
2
2
|
import type { ExpandTableCell } from '../../../Types/Columns/ExpandTableCell.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
|
|
4
|
+
export interface ExpandCellProps<T extends object, R extends object, IdType extends Primitive> {
|
|
5
|
+
cell: ExpandTableCell<T, R, IdType>;
|
|
6
|
+
expandedColumnDef: ExpandDef<T, R, IdType> | undefined;
|
|
7
|
+
onExpandChange: (def: ExpandDef<T, R, IdType>) => void;
|
|
7
8
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
cell.column.columnDef.getDisplayValue?.(cell.row.original, cell.row.originalIndex) ?? value
|
|
18
18
|
);
|
|
19
19
|
|
|
20
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
20
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
21
21
|
const toastContext = getContext<ToastContext>(ToastContext.identifier);
|
|
22
22
|
|
|
23
23
|
const options: Array<SelectOption<unknown>> = $derived(
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
const value: [number, number] = $derived(cell.getValue()) as [number, number];
|
|
24
24
|
|
|
25
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
25
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
26
26
|
const { toast } = getContext<ToastContext>(ToastContext.identifier);
|
|
27
27
|
|
|
28
28
|
// const previousRowIndex: number | undefined = $state(undefined);
|
|
@@ -52,12 +52,14 @@
|
|
|
52
52
|
untrack(() => {
|
|
53
53
|
tick()
|
|
54
54
|
.then(() => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
const x =
|
|
56
|
+
validity === Validity.Invalid
|
|
57
|
+
? tableContext.addInvalidValue(cell.row.original)
|
|
58
|
+
: tableContext.removeInvalidValue(cell.row.original);
|
|
59
|
+
|
|
60
60
|
previousValidity = validity;
|
|
61
|
+
|
|
62
|
+
return x;
|
|
61
63
|
})
|
|
62
64
|
.catch(devCatch);
|
|
63
65
|
});
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
const value = $derived(!!cell.getValue());
|
|
25
25
|
|
|
26
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
26
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
27
27
|
const toastContext = getContext<ToastContext>(ToastContext.identifier);
|
|
28
28
|
|
|
29
29
|
const focusDetails: TableFocusDetails<T, BoolFilterValueType> = $derived(
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
|
|
26
26
|
export interface TableColumnProps<T extends object, FilterValueType> {
|
|
27
27
|
cell: TableCell<T, FilterValueType>;
|
|
28
|
-
expandedColumnDef: ExpandDef<T> | undefined;
|
|
29
|
-
onExpandChange: (columnDef: ExpandDef<T>) => void;
|
|
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>(
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
<script lang="ts" generics="T extends object,FilterValueType">
|
|
40
40
|
import { dev } from '$app/environment';
|
|
41
41
|
import { RowSelectionDef } from '../../../Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js';
|
|
42
|
+
import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
|
|
42
43
|
import type { RowSelectionTableCell } from './RowSelectionTableCell.js';
|
|
43
44
|
|
|
44
45
|
let { cell, expandedColumnDef, onExpandChange }: TableColumnProps<T, FilterValueType> = $props();
|
|
@@ -58,7 +59,7 @@
|
|
|
58
59
|
function isActionsDef(cell: TableCell<T>): cell is ActionsTableCell<T> {
|
|
59
60
|
return cell.column.columnDef instanceof ActionsDef;
|
|
60
61
|
}
|
|
61
|
-
function isExpandTableCell(cell: TableCell<T>): cell is ExpandTableCell<T> {
|
|
62
|
+
function isExpandTableCell(cell: TableCell<T>): cell is ExpandTableCell<T, object, Primitive> {
|
|
62
63
|
return cell.column.columnDef instanceof ExpandDef;
|
|
63
64
|
}
|
|
64
65
|
|
|
@@ -2,9 +2,10 @@ import { ExpandDef } from '../../../Types/Columns/Definitions/Expand/ExpandDef.s
|
|
|
2
2
|
import type { TableCell } from '../../../Types/Columns/TableCell.js';
|
|
3
3
|
export interface TableColumnProps<T extends object, FilterValueType> {
|
|
4
4
|
cell: TableCell<T, FilterValueType>;
|
|
5
|
-
expandedColumnDef: ExpandDef<T> | undefined;
|
|
6
|
-
onExpandChange: (columnDef: ExpandDef<T>) => void;
|
|
5
|
+
expandedColumnDef: ExpandDef<T, object, Primitive> | undefined;
|
|
6
|
+
onExpandChange: (columnDef: ExpandDef<T, object, Primitive>) => void;
|
|
7
7
|
}
|
|
8
|
+
import type { Primitive } from '../../../Types/Context/TableInitOptions.js';
|
|
8
9
|
declare function $$render<T extends object, FilterValueType>(): {
|
|
9
10
|
props: TableColumnProps<T, FilterValueType>;
|
|
10
11
|
exports: {};
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
const dateValue = $derived(value && value instanceof Date ? value : undefined);
|
|
21
21
|
|
|
22
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
22
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
23
23
|
const { toast } = getContext<ToastContext>(ToastContext.identifier);
|
|
24
24
|
|
|
25
25
|
const columnDef = $derived(cell.column.columnDef);
|
|
@@ -103,9 +103,9 @@
|
|
|
103
103
|
validityPromise
|
|
104
104
|
.then(([validity]) => {
|
|
105
105
|
if (validity === Validity.Invalid) {
|
|
106
|
-
tableContext.addInvalidValue(cell.row.original);
|
|
106
|
+
return tableContext.addInvalidValue(cell.row.original);
|
|
107
107
|
} else {
|
|
108
|
-
tableContext.removeInvalidValue(cell.row.original);
|
|
108
|
+
return tableContext.removeInvalidValue(cell.row.original);
|
|
109
109
|
}
|
|
110
110
|
})
|
|
111
111
|
.catch(devCatch);
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
let tdref: HTMLTableCellElement | undefined = $state();
|
|
49
49
|
let inputRef: HTMLInputElement | undefined = $state();
|
|
50
50
|
|
|
51
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
51
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
52
52
|
const { toast } = getContext<ToastContext>(ToastContext.identifier);
|
|
53
53
|
|
|
54
54
|
const editableAsync = $derived(
|
|
@@ -161,12 +161,13 @@
|
|
|
161
161
|
untrack(() => {
|
|
162
162
|
tick()
|
|
163
163
|
.then(() => {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
164
|
+
const x: Promise<void> =
|
|
165
|
+
validity === Validity.Invalid
|
|
166
|
+
? tableContext.addInvalidValue(cell.row.original)
|
|
167
|
+
: tableContext.removeInvalidValue(cell.row.original);
|
|
168
|
+
|
|
169
169
|
previousValidity = validity;
|
|
170
|
+
return x;
|
|
170
171
|
})
|
|
171
172
|
.catch(devCatch);
|
|
172
173
|
});
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
|
|
30
30
|
let lastOptions: Array<SelectOption<unknown>> = $state([]);
|
|
31
31
|
|
|
32
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
32
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
33
33
|
const { toast } = getContext<ToastContext>(ToastContext.identifier);
|
|
34
34
|
|
|
35
35
|
const editableAsync = $derived(
|
|
@@ -175,12 +175,14 @@
|
|
|
175
175
|
untrack(() => {
|
|
176
176
|
tick()
|
|
177
177
|
.then(() => {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
178
|
+
const x =
|
|
179
|
+
validity === Validity.Invalid
|
|
180
|
+
? tableContext.addInvalidValue(cell.row.original)
|
|
181
|
+
: tableContext.removeInvalidValue(cell.row.original);
|
|
182
|
+
|
|
183
183
|
previousValidity = validity;
|
|
184
|
+
|
|
185
|
+
return x;
|
|
184
186
|
})
|
|
185
187
|
.catch(devCatch);
|
|
186
188
|
});
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import type { BoolFilterValueType } from '../../../Types/Filtering/FilterFn.js';
|
|
8
8
|
import { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
|
|
9
9
|
import { ToastContext } from '../../../../../Contexts/ToastContext.svelte.js';
|
|
10
|
+
import { devCatch } from '../../../../../Helpers/Helpers.svelte.js';
|
|
10
11
|
import { getContext } from 'svelte';
|
|
11
12
|
import type { ChangeEventHandler } from 'svelte/elements';
|
|
12
13
|
|
|
@@ -20,14 +21,14 @@
|
|
|
20
21
|
<script lang="ts" generics="T extends object,">
|
|
21
22
|
const { cell, onchange: parentOnchange }: TableCheckboxProps<T> = $props();
|
|
22
23
|
|
|
23
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
24
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
24
25
|
const toastContext = getContext<ToastContext>(ToastContext.identifier);
|
|
25
26
|
|
|
26
27
|
const focusDetails: TableFocusDetails<T, BoolFilterValueType> = $derived(
|
|
27
28
|
new TableFocusDetails(cell, tableContext, toastContext.toast)
|
|
28
29
|
);
|
|
29
30
|
|
|
30
|
-
const key = $derived(tableContext.selectionExtractor(cell.row.original));
|
|
31
|
+
const key: Promise<unknown> = $derived(tableContext.selectionExtractor(cell.row.original));
|
|
31
32
|
|
|
32
33
|
const value = $derived(tableContext.selectedItems.has(key));
|
|
33
34
|
|
|
@@ -39,7 +40,9 @@
|
|
|
39
40
|
);
|
|
40
41
|
|
|
41
42
|
const onchange: ChangeEventHandler<HTMLInputElement> = (e) => {
|
|
42
|
-
tableContext
|
|
43
|
+
tableContext
|
|
44
|
+
.toggleSelected(cell.row.original, (e.target as HTMLInputElement).checked)
|
|
45
|
+
.catch(devCatch);
|
|
43
46
|
parentOnchange?.(e);
|
|
44
47
|
};
|
|
45
48
|
|
|
@@ -68,7 +71,7 @@
|
|
|
68
71
|
onkeyup={(e) => {
|
|
69
72
|
if (e.key === 'Enter') {
|
|
70
73
|
e.stopPropagation();
|
|
71
|
-
tableContext.toggleSelected(cell.row.original, !value);
|
|
74
|
+
tableContext.toggleSelected(cell.row.original, !value).catch(devCatch);
|
|
72
75
|
|
|
73
76
|
inputRef?.dispatchEvent(new InputEvent('change'));
|
|
74
77
|
// tableContext.onEditCell(cell.row.original, focusDetails.coordinates, !value);
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
const optional = $derived(cell.column.columnDef.optional);
|
|
29
29
|
|
|
30
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
30
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
31
31
|
const { toast } = getContext<ToastContext>(ToastContext.identifier);
|
|
32
32
|
|
|
33
33
|
const editableAsync = $derived(
|
|
@@ -139,12 +139,14 @@
|
|
|
139
139
|
untrack(() => {
|
|
140
140
|
tick()
|
|
141
141
|
.then(() => {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
142
|
+
const x =
|
|
143
|
+
validity === Validity.Invalid
|
|
144
|
+
? tableContext.addInvalidValue(cell.row.original)
|
|
145
|
+
: tableContext.removeInvalidValue(cell.row.original);
|
|
146
|
+
|
|
147
147
|
previousValidity = validity;
|
|
148
|
+
|
|
149
|
+
return x;
|
|
148
150
|
})
|
|
149
151
|
.catch(devCatch);
|
|
150
152
|
});
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
let tdref = $state<HTMLTableCellElement | undefined>();
|
|
57
57
|
let inputRef = $state<HTMLInputElement | undefined>();
|
|
58
58
|
|
|
59
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
59
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
60
60
|
const toastContext = getContext<ToastContext>(ToastContext.identifier);
|
|
61
61
|
|
|
62
62
|
const focusDetails: TableFocusDetails<T, never> = $derived(
|
|
@@ -150,12 +150,14 @@
|
|
|
150
150
|
untrack(() => {
|
|
151
151
|
tick()
|
|
152
152
|
.then(() => {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
153
|
+
const x =
|
|
154
|
+
validity === Validity.Invalid
|
|
155
|
+
? tableContext.addInvalidValue(cell.row.original)
|
|
156
|
+
: tableContext.removeInvalidValue(cell.row.original);
|
|
157
|
+
|
|
158
158
|
previousValidity = validity;
|
|
159
|
+
|
|
160
|
+
return x;
|
|
159
161
|
})
|
|
160
162
|
.catch(devCatch);
|
|
161
163
|
});
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
|
|
43
43
|
const { cell }: ValidityCellProps<T, FilterValueType> = $props();
|
|
44
44
|
|
|
45
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
45
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
46
46
|
const { toast } = getContext<ToastContext>(ToastContext.identifier);
|
|
47
47
|
|
|
48
48
|
const ColumnDef = $derived(cell.column.columnDef as AbstractDisplayDef<T, FilterValueType>);
|
|
@@ -76,9 +76,9 @@
|
|
|
76
76
|
const [validityValue] = await validity;
|
|
77
77
|
|
|
78
78
|
if (validityValue === Validity.Invalid) {
|
|
79
|
-
tableContext.addInvalidValue(cell.row.original);
|
|
79
|
+
return tableContext.addInvalidValue(cell.row.original);
|
|
80
80
|
} else {
|
|
81
|
-
tableContext.removeInvalidValue(cell.row.original);
|
|
81
|
+
return tableContext.removeInvalidValue(cell.row.original);
|
|
82
82
|
}
|
|
83
83
|
})().catch(devCatch);
|
|
84
84
|
});
|
|
@@ -2,24 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
<script lang="ts" generics="T extends object">
|
|
4
4
|
import { dev } from '$app/environment';
|
|
5
|
-
import { generateShortUUID } from '../../../../Helpers/Helpers.svelte.js';
|
|
5
|
+
import { devCatch, generateShortUUID } from '../../../../Helpers/Helpers.svelte.js';
|
|
6
6
|
import { getContext, untrack } from 'svelte';
|
|
7
7
|
import NestedTable from '../../NestedTable.svelte';
|
|
8
8
|
import type { ExpandDef } from '../../Types/Columns/Definitions/Expand/ExpandDef.svelte.js';
|
|
9
9
|
import type { DefsWrapper } from '../../Types/Columns/DefsWrapper.js';
|
|
10
10
|
import type { TableCell } from '../../Types/Columns/TableCell.js';
|
|
11
11
|
import { TableContext } from '../../Types/Context/TableContext.svelte.js';
|
|
12
|
+
import type { Primitive } from '../../Types/Context/TableInitOptions.js';
|
|
12
13
|
import ColumnHighlight from './ColumnHighlight.svelte';
|
|
13
14
|
import TableColumn from './Columns/TableColumn.svelte';
|
|
14
15
|
import type { TableRowProps } from './TableRowProps.js';
|
|
15
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
16
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
16
17
|
|
|
17
18
|
const { row, side, odd = false, customHeight, includeHighlight }: TableRowProps<T> = $props();
|
|
18
19
|
|
|
19
20
|
const hoverable = $derived(tableContext.changeColourOnHover);
|
|
20
21
|
|
|
21
22
|
//HACK converted this from derived to state+deffect because otherwise this throws an unsafe mutation error deeper down the stack
|
|
22
|
-
const cells: Array<TableCell<T
|
|
23
|
+
const cells: Array<TableCell<T>> = $derived(
|
|
23
24
|
side === 'left'
|
|
24
25
|
? row.getLeftVisibleCells()
|
|
25
26
|
: side === 'right'
|
|
@@ -27,7 +28,7 @@
|
|
|
27
28
|
: row.getCenterVisibleCells()
|
|
28
29
|
);
|
|
29
30
|
|
|
30
|
-
let expandedColumnDef: ExpandDef<T> | undefined = $state();
|
|
31
|
+
let expandedColumnDef: ExpandDef<T, object, Primitive> | undefined = $state();
|
|
31
32
|
|
|
32
33
|
$effect(() => {
|
|
33
34
|
if (cells.length) {
|
|
@@ -44,7 +45,7 @@
|
|
|
44
45
|
let innerColumnDefs: DefsWrapper<object> = $state({ defs: [] });
|
|
45
46
|
let innerTableName: string | undefined = $state();
|
|
46
47
|
|
|
47
|
-
let prevExpandedColumnDef: ExpandDef<T> | undefined = $state();
|
|
48
|
+
let prevExpandedColumnDef: ExpandDef<T, object, Primitive> | undefined = $state();
|
|
48
49
|
|
|
49
50
|
const rowIndex = $derived(cells.at(0) && cells[0].row.visibleIndex);
|
|
50
51
|
const highlighted = $derived(
|
|
@@ -83,7 +84,7 @@
|
|
|
83
84
|
});
|
|
84
85
|
});
|
|
85
86
|
|
|
86
|
-
function onExpandChange(columnDef: ExpandDef<T>) {
|
|
87
|
+
function onExpandChange(columnDef: ExpandDef<T, object, Primitive>) {
|
|
87
88
|
if (expandedColumnDef?.id === columnDef.id) {
|
|
88
89
|
expandedColumnDef = undefined;
|
|
89
90
|
} else {
|
|
@@ -158,7 +159,7 @@ onMouseLeave={onMouseLeave} -->
|
|
|
158
159
|
})()}
|
|
159
160
|
{highlighted}
|
|
160
161
|
toggleHighlightedRow={() => {
|
|
161
|
-
tableContext.toggleHighlightedRow(row.original);
|
|
162
|
+
tableContext.toggleHighlightedRow(row.original).catch(devCatch);
|
|
162
163
|
}}
|
|
163
164
|
/>
|
|
164
165
|
{/if}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
let { side, heights, columns, includeHighlight }: TableBodyProps<T> = $props();
|
|
12
12
|
|
|
13
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
13
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
14
14
|
|
|
15
15
|
type HasHeight = {
|
|
16
16
|
trHeight: RefWrapper<number>;
|
|
@@ -33,24 +33,28 @@
|
|
|
33
33
|
{#if includeHighlight}
|
|
34
34
|
<td class="highlight-dud"><!-- accomodating for row marking --></td>
|
|
35
35
|
{/if}
|
|
36
|
-
{#each columns as column (column)}
|
|
36
|
+
{#each columns as column (column.id)}
|
|
37
37
|
<QuickSearchCell {column} customFilters={tableContext.remoteFilters} />
|
|
38
38
|
{/each}
|
|
39
39
|
</tr>
|
|
40
40
|
{/if}
|
|
41
|
-
|
|
42
|
-
{
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
41
|
+
<svelte:boundary>
|
|
42
|
+
{#await tableContext.paginationRowModel then prm}
|
|
43
|
+
{#each prm.rows as row, index (row)}
|
|
44
|
+
{@const customHeight = heights[index]?.applyTo.includes(side)
|
|
45
|
+
? heights[index].maxHeight
|
|
46
|
+
: undefined}
|
|
47
|
+
<TableRow
|
|
48
|
+
{includeHighlight}
|
|
49
|
+
{customHeight}
|
|
50
|
+
{row}
|
|
51
|
+
{side}
|
|
52
|
+
odd={index % 2 == 1}
|
|
53
|
+
bind:this={rows[index]}
|
|
54
|
+
/>
|
|
55
|
+
{/each}
|
|
56
|
+
{/await}
|
|
57
|
+
</svelte:boundary>
|
|
54
58
|
</tbody>
|
|
55
59
|
|
|
56
60
|
<style>td {
|