@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.
- package/dist/Components/Base/ContextWrapper.svelte +16 -1
- package/dist/Components/Base/ContextWrapper.svelte.d.ts +13 -0
- package/dist/Components/TabGroupButtonProps.d.ts +1 -1
- 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/AccessorComponent.svelte +3 -3
- package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte.d.ts +12 -12
- package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +2 -2
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +27 -17
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +11 -11
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +11 -9
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +12 -12
- package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +8 -4
- 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 +4 -4
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +12 -12
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +2 -2
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +11 -8
- package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.d.ts +5 -0
- package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.js +1 -0
- package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.d.ts +5 -0
- package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.js +1 -0
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +4 -3
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte.d.ts +2 -1
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +16 -9
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +17 -16
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +5 -4
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +10 -8
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte.d.ts +2 -1
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +10 -7
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +11 -7
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +2 -1
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +10 -7
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +11 -9
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +12 -12
- package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +2 -2
- package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +7 -7
- package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte.d.ts +12 -12
- package/dist/Components/Table/Body/Rows/Columns/ValidityCellProps.d.ts +2 -2
- package/dist/Components/Table/Body/Rows/TableRow.svelte +7 -6
- package/dist/Components/Table/Body/TableBody.svelte +19 -15
- package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.d.ts +1 -1
- package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +17 -2
- 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/Column.d.ts +2 -2
- package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +2 -2
- package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +6 -6
- package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +3 -3
- package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +6 -6
- package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +2 -2
- 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/Columns/ProgressBarTableCell.d.ts +2 -1
- package/dist/Components/Table/Types/Columns/TableCell.d.ts +2 -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/Filtering/CustomFilterFn.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 +7 -6
- package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +8 -2
- package/dist/Components/VerticalTabGroupButton.svelte +1 -1
- package/dist/Components/VerticalTabGroupButton.svelte.d.ts +5 -5
- package/dist/Components/VerticalTabGroupProps.d.ts +2 -2
- package/dist/Contexts/ToastContext.svelte.d.ts +3 -1
- package/dist/Contexts/ToastContext.svelte.js +2 -2
- package/dist/Helpers/Helpers.svelte.d.ts +1 -2
- package/dist/Types/Examples/ExampleModal.svelte +2 -2
- package/dist/Types/Examples/ExampleModal.svelte.d.ts +23 -2
- package/dist/Types/Internal/TabOption.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +18 -18
|
@@ -2,17 +2,18 @@
|
|
|
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
|
|
|
@@ -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 {
|
|
@@ -2,4 +2,4 @@ import type { ExampleItem } from '../../../Types/Examples/ExampleItem.js';
|
|
|
2
2
|
import { type Component } from 'svelte';
|
|
3
3
|
import type { DisplayDefModalProps } from '../Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js';
|
|
4
4
|
import type { DefsWrapper } from '../Types/Columns/DefsWrapper.js';
|
|
5
|
-
export declare function generateExampleItemColumnDefs(modal: Component<DisplayDefModalProps<ExampleItem>, object, ''>): DefsWrapper<ExampleItem>;
|
|
5
|
+
export declare function generateExampleItemColumnDefs(modal: Component<DisplayDefModalProps<ExampleItem, never>, object, ''>): DefsWrapper<ExampleItem>;
|
|
@@ -13,8 +13,22 @@ import { BubbleDef } from '../Types/Columns/Definitions/Display/BubbleDef.svelte
|
|
|
13
13
|
import { DisplayDef } from '../Types/Columns/Definitions/Display/DisplayDef.svelte.js';
|
|
14
14
|
import { ProgressBarDef } from '../Types/Columns/Definitions/Display/ProgressBarDef.svelte.js';
|
|
15
15
|
import { ValidityDef } from '../Types/Columns/Definitions/Display/ValidityDef.svelte.js';
|
|
16
|
+
import { ExpandDef } from '../Types/Columns/Definitions/Expand/ExpandDef.svelte.js';
|
|
16
17
|
export function generateExampleItemColumnDefs(modal) {
|
|
17
18
|
let defs = $state([
|
|
19
|
+
new ExpandDef({
|
|
20
|
+
accessorFn: (it) => [it],
|
|
21
|
+
getInnerColumnDefs: () => generateExampleItemColumnDefs(modal),
|
|
22
|
+
header: 'Expand Cell',
|
|
23
|
+
id: 'expand',
|
|
24
|
+
headerIcon: 'access-token',
|
|
25
|
+
innerTableName: 'expand-inner',
|
|
26
|
+
innerTableOptions: {
|
|
27
|
+
selectionExtractor: (item) => Promise.resolve(item.id),
|
|
28
|
+
getUserId: () => '1'
|
|
29
|
+
},
|
|
30
|
+
isEnabled: () => true
|
|
31
|
+
}),
|
|
18
32
|
new ValidityDef({
|
|
19
33
|
header: 'Valid',
|
|
20
34
|
id: 'valid',
|
|
@@ -42,9 +56,10 @@ export function generateExampleItemColumnDefs(modal) {
|
|
|
42
56
|
// TODO make filtering work with the below:
|
|
43
57
|
accessorFn: async (item) => {
|
|
44
58
|
void item.id;
|
|
45
|
-
await asyncSleep(
|
|
59
|
+
await asyncSleep(10);
|
|
46
60
|
return item.id;
|
|
47
|
-
}
|
|
61
|
+
},
|
|
62
|
+
debug: true
|
|
48
63
|
}),
|
|
49
64
|
new QueryDef({
|
|
50
65
|
header: 'simulated query def',
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import Action from '../../Action.svelte';
|
|
9
9
|
import { TableContext } from '../Types/Context/TableContext.svelte.js';
|
|
10
10
|
|
|
11
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
11
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
12
12
|
|
|
13
13
|
let allHighlighted = $state(false);
|
|
14
14
|
|
|
@@ -20,26 +20,39 @@
|
|
|
20
20
|
.catch(devCatch);
|
|
21
21
|
});
|
|
22
22
|
|
|
23
|
-
const backgroundColour = $derived(
|
|
24
|
-
tableContext.sortedData.length > 0 && allHighlighted
|
|
23
|
+
const backgroundColour = $derived.by(async () => {
|
|
24
|
+
return (await tableContext.sortedData).length > 0 && allHighlighted
|
|
25
25
|
? Colour['$brand-primary']
|
|
26
|
-
: Colour['$ui-white']
|
|
27
|
-
);
|
|
26
|
+
: Colour['$ui-white'];
|
|
27
|
+
});
|
|
28
28
|
</script>
|
|
29
29
|
|
|
30
30
|
<div class="checkbox-cell">
|
|
31
31
|
<div class="wrapper">
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
{#await backgroundColour}
|
|
33
|
+
<Action
|
|
34
|
+
hoverBackgroundColour={Colour['$brand-dark']}
|
|
35
|
+
size={Size.FillWidth}
|
|
36
|
+
icon={{
|
|
37
|
+
name: 'nothing'
|
|
38
|
+
}}
|
|
39
|
+
onclick={() => {
|
|
40
|
+
tableContext.onHighlightAll();
|
|
41
|
+
}}
|
|
42
|
+
/>
|
|
43
|
+
{:then backgroundColour}
|
|
44
|
+
<Action
|
|
45
|
+
{backgroundColour}
|
|
46
|
+
hoverBackgroundColour={Colour['$brand-dark']}
|
|
47
|
+
size={Size.FillWidth}
|
|
48
|
+
icon={{
|
|
49
|
+
name: 'nothing'
|
|
50
|
+
}}
|
|
51
|
+
onclick={() => {
|
|
52
|
+
tableContext.onHighlightAll();
|
|
53
|
+
}}
|
|
54
|
+
/>
|
|
55
|
+
{/await}
|
|
43
56
|
</div>
|
|
44
57
|
</div>
|
|
45
58
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { getContext } from 'svelte';
|
|
5
5
|
import { TableContext } from '../Types/Context/TableContext.svelte.js';
|
|
6
6
|
|
|
7
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
7
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
8
8
|
|
|
9
9
|
const allSelected: Promise<boolean> = $derived(tableContext.allSelectedInCurrentPage);
|
|
10
10
|
const checked: Promise<boolean> = $derived.by(() => {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
<script lang="ts" generics="T extends object">
|
|
29
29
|
const { showHighlight, side = 'centre', oncontextmenu }: TableHeadProps = $props();
|
|
30
30
|
|
|
31
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
31
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
32
32
|
const tooltipContext = getContext<TooltipContext>(TooltipContext.identifier);
|
|
33
33
|
|
|
34
34
|
const groups: Array<HeaderGroup<T>> = $derived.by(() => {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
import { getContext } from 'svelte';
|
|
12
12
|
import { TableContext } from '../Types/Context/TableContext.svelte.js';
|
|
13
13
|
|
|
14
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
14
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
15
15
|
|
|
16
16
|
const labelledPresets: Array<SelectOption<string>> = $derived(
|
|
17
17
|
tableContext.columnPresets.map((pr) => ({ label: pr.name, value: pr.name }))
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
import { TableContext } from '../Types/Context/TableContext.svelte.js';
|
|
14
14
|
import type { ColumnPanelModalProps } from './ColumnPanelModalProps.js';
|
|
15
15
|
|
|
16
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
16
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
17
17
|
|
|
18
18
|
const { onclose }: ColumnPanelModalProps = $props();
|
|
19
19
|
const labelledPresets: Array<SelectOption<string>> = $derived(
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
import { numberDateFilterTypes } from './numberDateFilterTypes.js';
|
|
25
25
|
import { stringFilterTypes } from './stringFilterTypes.js';
|
|
26
26
|
|
|
27
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
27
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
28
28
|
|
|
29
29
|
const { def, customFilters }: FilterInputProps<T> = $props();
|
|
30
30
|
|
|
@@ -447,7 +447,6 @@
|
|
|
447
447
|
|
|
448
448
|
const newFilterType = newValue?.value ?? NumberDateFilterMode.In;
|
|
449
449
|
tableContext.paginationRepo?.setFilterMode(def.id, newFilterType);
|
|
450
|
-
tableContext.paginationRepo?.filterModes.set(def.id, newFilterType);
|
|
451
450
|
|
|
452
451
|
if (selectedNumberFilterType?.value !== oldFilterType?.value) {
|
|
453
452
|
if (oldFilterType?.value === NumberDateFilterMode.Between) {
|
|
@@ -521,7 +520,6 @@
|
|
|
521
520
|
onchange={(newValue: SelectOption<StringFilterMode> | null) => {
|
|
522
521
|
const filterType = newValue?.value ?? StringFilterMode.Contains;
|
|
523
522
|
tableContext.paginationRepo?.setFilterMode(def.id, filterType);
|
|
524
|
-
tableContext.paginationRepo?.filterModes.set(def.id, filterType);
|
|
525
523
|
}}
|
|
526
524
|
onkeydown={(e: KeyboardEvent) => {
|
|
527
525
|
e.stopPropagation();
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
import Button from '../../Button.svelte';
|
|
5
5
|
import { Size } from '../../../Types/Internal/Size.js';
|
|
6
6
|
import { Variant } from '../../../Types/Internal/Variant.js';
|
|
7
|
+
import { getContext } from 'svelte';
|
|
7
8
|
import { TableContext } from '../Types/Context/TableContext.svelte.js';
|
|
8
9
|
import FilterInput from './FilterInput.svelte';
|
|
9
|
-
import { getContext } from 'svelte';
|
|
10
10
|
|
|
11
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
11
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
12
12
|
|
|
13
13
|
function reset() {
|
|
14
14
|
tableContext.paginationRepo?.resetFilters();
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
</script>
|
|
16
16
|
|
|
17
17
|
<script lang="ts" generics="T extends object">
|
|
18
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
18
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
19
19
|
|
|
20
20
|
const { onclose }: FilterPanelModalProps = $props();
|
|
21
21
|
const refs: Array<FilterInput<T>> = $state([]);
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<script lang="ts" generics="T extends object">
|
|
26
26
|
let { onkeydown }: TableFooterProps = $props();
|
|
27
27
|
|
|
28
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
28
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
29
29
|
const alertContext = getContext<AlertContext>(AlertContext.identifier);
|
|
30
30
|
|
|
31
31
|
const pageSizes: Array<SelectOption<number>> = $state([
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
default as ToolboxPanelModal
|
|
15
15
|
} from './FilterPanelModal.svelte';
|
|
16
16
|
|
|
17
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
17
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
18
18
|
|
|
19
19
|
const panels = {
|
|
20
20
|
[ExpandedPanel.None]: null,
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
import FilterPanel from './FilterPanel.svelte';
|
|
14
14
|
import SidePanel from './SidePanel.svelte';
|
|
15
15
|
import ToolboxPanel from './ToolboxPanel.svelte';
|
|
16
|
-
|
|
16
|
+
|
|
17
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
17
18
|
|
|
18
19
|
const panels = {
|
|
19
20
|
[ExpandedPanel.None]: null,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
3
|
<script lang="ts" generics="T extends object">
|
|
4
|
+
import Checkbox from '../../Checkbox.svelte';
|
|
4
5
|
import { getContext } from 'svelte';
|
|
5
6
|
import { TableContext } from '../Types/Context/TableContext.svelte.js';
|
|
6
|
-
import Checkbox from '../../Checkbox.svelte';
|
|
7
7
|
|
|
8
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
8
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
9
9
|
|
|
10
10
|
const onCompactChange = (e: Event) => {
|
|
11
11
|
tableContext.setIsCompact((e.target as HTMLInputElement).checked);
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
let { onclose }: ToolboxPanelModalProps = $props();
|
|
11
11
|
|
|
12
|
-
const tableContext = getContext<TableContext<T>>(TableContext.identifier);
|
|
12
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
13
13
|
|
|
14
14
|
const onCompactChange = (e: Event) => {
|
|
15
15
|
tableContext.setIsCompact((e.target as HTMLInputElement).checked);
|
|
@@ -4,11 +4,14 @@
|
|
|
4
4
|
import Table from './Table.svelte';
|
|
5
5
|
import type { DefsWrapper } from './Types/Columns/DefsWrapper.js';
|
|
6
6
|
import { TableContext } from './Types/Context/TableContext.svelte.js';
|
|
7
|
-
import type { TableInitOptions } from './Types/Context/TableInitOptions.js';
|
|
7
|
+
import type { Primitive, TableInitOptions } from './Types/Context/TableInitOptions.js';
|
|
8
8
|
import { LocalTableDataRepository } from './Types/DataRepository/LocalTableDataRepository.svelte.js';
|
|
9
9
|
import { ToolbarPosition } from './Types/Toolbar/ToolbarPosition.js';
|
|
10
10
|
|
|
11
|
-
const defaultOptions: Omit<
|
|
11
|
+
const defaultOptions: Omit<
|
|
12
|
+
TableInitOptions<object, never>,
|
|
13
|
+
'selectionExtractor' | 'getUserId'
|
|
14
|
+
> = {
|
|
12
15
|
allowCopy: false,
|
|
13
16
|
enableResize: false,
|
|
14
17
|
allowColumnReordering: false,
|
|
@@ -18,17 +21,18 @@
|
|
|
18
21
|
displayFooter: false
|
|
19
22
|
};
|
|
20
23
|
|
|
21
|
-
export interface NestedTableProps<T extends object> {
|
|
24
|
+
export interface NestedTableProps<T extends object, IdType extends Primitive> {
|
|
22
25
|
tableName: string;
|
|
23
26
|
data: Array<T>;
|
|
24
27
|
columnDefWrapper: DefsWrapper<T>;
|
|
25
|
-
options: Pick<TableInitOptions<T>, 'selectionExtractor'> &
|
|
28
|
+
options: Pick<TableInitOptions<T, IdType>, 'selectionExtractor'> &
|
|
29
|
+
Partial<TableInitOptions<T, IdType>>;
|
|
26
30
|
oncontextmenu?: (e: MouseEvent) => void;
|
|
27
31
|
getUserId: () => string | undefined;
|
|
28
32
|
}
|
|
29
33
|
</script>
|
|
30
34
|
|
|
31
|
-
<script lang="ts" generics="T extends object">
|
|
35
|
+
<script lang="ts" generics="T extends object,IdType extends Primitive">
|
|
32
36
|
const {
|
|
33
37
|
tableName,
|
|
34
38
|
data,
|
|
@@ -36,7 +40,7 @@
|
|
|
36
40
|
options,
|
|
37
41
|
oncontextmenu,
|
|
38
42
|
getUserId
|
|
39
|
-
}: NestedTableProps<T> = $props();
|
|
43
|
+
}: NestedTableProps<T, IdType> = $props();
|
|
40
44
|
|
|
41
45
|
const wrapper = {
|
|
42
46
|
get value() {
|
|
@@ -53,8 +57,8 @@
|
|
|
53
57
|
const dataRepo = $state(new LocalTableDataRepository(tableName, wrapper, () => getUserId()));
|
|
54
58
|
|
|
55
59
|
// NOTE known limitation: These are passed as wrappers, and they should never require reassignment. They are deeply reactive
|
|
56
|
-
const tableContext: TableContext<T> | undefined = $state(
|
|
57
|
-
TableContext.init<T>(columnDefWrapper, tableName, dataRepo, {
|
|
60
|
+
const tableContext: TableContext<T, IdType> | undefined = $state(
|
|
61
|
+
TableContext.init<T, IdType>(columnDefWrapper, tableName, dataRepo, {
|
|
58
62
|
...defaultOptions,
|
|
59
63
|
...options,
|
|
60
64
|
getUserId: () => getUserId()
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
import type { DefsWrapper } from './Types/Columns/DefsWrapper.js';
|
|
2
|
-
import type { TableInitOptions } from './Types/Context/TableInitOptions.js';
|
|
3
|
-
export interface NestedTableProps<T extends object> {
|
|
2
|
+
import type { Primitive, TableInitOptions } from './Types/Context/TableInitOptions.js';
|
|
3
|
+
export interface NestedTableProps<T extends object, IdType extends Primitive> {
|
|
4
4
|
tableName: string;
|
|
5
5
|
data: Array<T>;
|
|
6
6
|
columnDefWrapper: DefsWrapper<T>;
|
|
7
|
-
options: Pick<TableInitOptions<T>, 'selectionExtractor'> & Partial<TableInitOptions<T>>;
|
|
7
|
+
options: Pick<TableInitOptions<T, IdType>, 'selectionExtractor'> & Partial<TableInitOptions<T, IdType>>;
|
|
8
8
|
oncontextmenu?: (e: MouseEvent) => void;
|
|
9
9
|
getUserId: () => string | undefined;
|
|
10
10
|
}
|
|
11
|
-
declare function $$render<T extends object>(): {
|
|
12
|
-
props: NestedTableProps<T>;
|
|
11
|
+
declare function $$render<T extends object, IdType extends Primitive>(): {
|
|
12
|
+
props: NestedTableProps<T, IdType>;
|
|
13
13
|
exports: {};
|
|
14
14
|
bindings: "";
|
|
15
15
|
slots: {};
|
|
16
16
|
events: {};
|
|
17
17
|
};
|
|
18
|
-
declare class __sveltets_Render<T extends object> {
|
|
19
|
-
props(): ReturnType<typeof $$render<T>>['props'];
|
|
20
|
-
events(): ReturnType<typeof $$render<T>>['events'];
|
|
21
|
-
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
18
|
+
declare class __sveltets_Render<T extends object, IdType extends Primitive> {
|
|
19
|
+
props(): ReturnType<typeof $$render<T, IdType>>['props'];
|
|
20
|
+
events(): ReturnType<typeof $$render<T, IdType>>['events'];
|
|
21
|
+
slots(): ReturnType<typeof $$render<T, IdType>>['slots'];
|
|
22
22
|
bindings(): "";
|
|
23
23
|
exports(): {};
|
|
24
24
|
}
|
|
25
25
|
interface $$IsomorphicComponent {
|
|
26
|
-
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']>> & {
|
|
27
|
-
$$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
|
|
28
|
-
} & ReturnType<__sveltets_Render<T>['exports']>;
|
|
29
|
-
<T extends object>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
|
|
30
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
26
|
+
new <T extends object, IdType extends Primitive>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, IdType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, IdType>['props']>, ReturnType<__sveltets_Render<T, IdType>['events']>, ReturnType<__sveltets_Render<T, IdType>['slots']>> & {
|
|
27
|
+
$$bindings?: ReturnType<__sveltets_Render<T, IdType>['bindings']>;
|
|
28
|
+
} & ReturnType<__sveltets_Render<T, IdType>['exports']>;
|
|
29
|
+
<T extends object, IdType extends Primitive>(internal: unknown, props: ReturnType<__sveltets_Render<T, IdType>['props']> & {}): ReturnType<__sveltets_Render<T, IdType>['exports']>;
|
|
30
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
|
|
31
31
|
}
|
|
32
32
|
declare const NestedTable: $$IsomorphicComponent;
|
|
33
|
-
type NestedTable<T extends object> = InstanceType<typeof NestedTable<T>>;
|
|
33
|
+
type NestedTable<T extends object, IdType extends Primitive> = InstanceType<typeof NestedTable<T, IdType>>;
|
|
34
34
|
export default NestedTable;
|