@lavalogic/scoria 0.16.3 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Components/Table/Body/QuickSearchCell.svelte +2 -2
- package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +12 -12
- package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +2 -2
- package/dist/Components/Table/Body/Rows/ColumnList.svelte +9 -3
- package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +10 -4
- package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +2 -2
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +17 -5
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +9 -3
- package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +3 -3
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +5 -2
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +13 -6
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +9 -3
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +13 -3
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +6 -4
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +10 -4
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +11 -5
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +10 -5
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +1 -2
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +14 -5
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +6 -3
- package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +19 -9
- package/dist/Components/Table/Body/Rows/TableRow.svelte +9 -8
- package/dist/Components/Table/Body/Rows/TableRow.svelte.d.ts +2 -10
- package/dist/Components/Table/Body/TableBody.svelte +32 -21
- package/dist/Components/Table/Body/TableBody.svelte.d.ts +2 -10
- package/dist/Components/Table/Body/TableBodyProps.d.ts +0 -2
- package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +26 -26
- package/dist/Components/Table/Headers/TableHead.svelte +20 -6
- package/dist/Components/Table/Misc/ColumnPanel.svelte +13 -4
- package/dist/Components/Table/Misc/ColumnPanelModal.svelte +9 -2
- package/dist/Components/Table/Misc/FilterInput.svelte +5 -2
- package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -12
- package/dist/Components/Table/Misc/FilterInputProps.d.ts +2 -2
- package/dist/Components/Table/Misc/FilterPanelModal.svelte +14 -4
- package/dist/Components/Table/Misc/TableSidebar.svelte +14 -8
- package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +4 -1
- package/dist/Components/Table/Table.svelte +107 -67
- package/dist/Components/Table/Types/Columns/Column.d.ts +2 -2
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +3 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +2 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +2 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +2 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +4 -5
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +2 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +2 -3
- package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +2 -2
- package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +1 -1
- package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +3 -4
- package/dist/Components/Table/Types/Columns/Definitions/ColumnDefSet.d.ts +1 -1
- package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +7 -6
- package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +1 -2
- package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +5 -6
- package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +6 -6
- package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +5 -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 +5 -5
- package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +4 -5
- package/dist/Components/Table/Types/Columns/Definitions/JSONColumnDefSet.d.ts +1 -1
- package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +2 -1
- package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +1 -1
- package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +2 -2
- package/dist/Components/Table/Types/Columns/TableCell.d.ts +2 -2
- package/dist/Components/Table/Types/Context/Row.d.ts +3 -3
- package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +2 -2
- package/dist/Components/Table/Types/Context/TableContext.svelte.js +32 -32
- package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +1 -1
- package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +1 -1
- package/dist/Components/Table/Types/DataRepository/IRemoteDataRepository.d.ts +1 -1
- package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +3 -3
- package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +5 -5
- package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +2 -2
- package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +1 -1
- package/dist/Components/Table/Types/Filtering/ColumnFiltersState.d.ts +2 -2
- package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +4 -4
- package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +1 -1
- package/dist/Components/Table/Types/Header.d.ts +2 -2
- package/dist/Components/Table/Types/HeaderGroup.d.ts +1 -1
- package/dist/Types/Examples/ExampleModal.svelte.d.ts +1 -1
- package/dist/index.d.ts +48 -49
- package/dist/index.js +42 -50
- package/package.json +1 -1
- package/dist/Components/Table/Types/Filtering/CustomFilterFn.d.ts +0 -2
- package/dist/Components/Table/Types/Filtering/CustomFilterFn.js +0 -1
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
|
-
<script
|
|
3
|
+
<script
|
|
4
|
+
lang="ts"
|
|
5
|
+
generics="T extends object"
|
|
6
|
+
>
|
|
4
7
|
import Button from '../../Button.svelte';
|
|
5
8
|
import { devCatch } from '../../../Helpers/Helpers.svelte.js';
|
|
6
9
|
import { Side } from '../../../Types/Internal/Side.js';
|
|
@@ -21,7 +24,7 @@
|
|
|
21
24
|
[ExpandedPanel.None]: null,
|
|
22
25
|
[ExpandedPanel.Column]: ColumnPanel,
|
|
23
26
|
[ExpandedPanel.Filter]: FilterPanel,
|
|
24
|
-
[ExpandedPanel.Toolbox]: ToolboxPanel
|
|
27
|
+
[ExpandedPanel.Toolbox]: ToolboxPanel,
|
|
25
28
|
};
|
|
26
29
|
|
|
27
30
|
let expandedPanel = $state<ExpandedPanel | null>(null);
|
|
@@ -49,7 +52,10 @@
|
|
|
49
52
|
}
|
|
50
53
|
</script>
|
|
51
54
|
|
|
52
|
-
<svelte:window
|
|
55
|
+
<svelte:window
|
|
56
|
+
onclick={handleClickOutside}
|
|
57
|
+
onkeydown={handleEscKey}
|
|
58
|
+
/>
|
|
53
59
|
|
|
54
60
|
{#if ExpandedPanelElement != null}
|
|
55
61
|
<SidePanel toolbarPosition={tableContext.toolbarPosition}>
|
|
@@ -70,7 +76,7 @@
|
|
|
70
76
|
iconTop={{
|
|
71
77
|
// colour: Colour.$alt,
|
|
72
78
|
name: 'assessment',
|
|
73
|
-
size: Size.Medium
|
|
79
|
+
size: Size.Medium,
|
|
74
80
|
}}
|
|
75
81
|
label="Quick Filter"
|
|
76
82
|
/>
|
|
@@ -85,7 +91,7 @@
|
|
|
85
91
|
iconTop={{
|
|
86
92
|
// colour: Colour.$alt,
|
|
87
93
|
name: 'filter-bars',
|
|
88
|
-
size: Size.Medium
|
|
94
|
+
size: Size.Medium,
|
|
89
95
|
}}
|
|
90
96
|
label="Advanced Filter"
|
|
91
97
|
/>
|
|
@@ -99,7 +105,7 @@
|
|
|
99
105
|
iconTop={{
|
|
100
106
|
// colour: Colour.$alt,
|
|
101
107
|
name: 'columns',
|
|
102
|
-
size: Size.Medium
|
|
108
|
+
size: Size.Medium,
|
|
103
109
|
}}
|
|
104
110
|
label="Modify Columns"
|
|
105
111
|
/>
|
|
@@ -113,7 +119,7 @@
|
|
|
113
119
|
iconTop={{
|
|
114
120
|
// colour: Colour.$alt,
|
|
115
121
|
name: 'category',
|
|
116
|
-
size: Size.Medium
|
|
122
|
+
size: Size.Medium,
|
|
117
123
|
}}
|
|
118
124
|
label="My Tool Box"
|
|
119
125
|
/>
|
|
@@ -130,7 +136,7 @@
|
|
|
130
136
|
iconTop={{
|
|
131
137
|
// colour: Colour.$alt,
|
|
132
138
|
name: 'refresh',
|
|
133
|
-
size: Size.Medium
|
|
139
|
+
size: Size.Medium,
|
|
134
140
|
}}
|
|
135
141
|
label="Refresh"
|
|
136
142
|
/>
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
|
-
<script
|
|
3
|
+
<script
|
|
4
|
+
lang="ts"
|
|
5
|
+
generics="T extends object"
|
|
6
|
+
>
|
|
4
7
|
import Checkbox from '../../Checkbox.svelte';
|
|
5
8
|
import DesktopModal from '../../DesktopModal.svelte';
|
|
6
9
|
import { getContext } from 'svelte';
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
|
-
<script
|
|
3
|
+
<script
|
|
4
|
+
lang="ts"
|
|
5
|
+
module
|
|
6
|
+
>
|
|
4
7
|
import {
|
|
5
8
|
ContextMenuContext,
|
|
6
|
-
type IContextMenuOption
|
|
9
|
+
type IContextMenuOption,
|
|
7
10
|
} from '../../Contexts/ContextMenuContext.svelte';
|
|
8
11
|
import { devCatch, refWrapper } from '../../Helpers/Helpers.svelte';
|
|
9
12
|
import type { RefWrapper } from '../../Types/Internal/RefWrapper.js';
|
|
10
13
|
import { getContext, onMount, setContext, tick, untrack } from 'svelte';
|
|
11
14
|
import LoadingOverlay from '../LoadingOverlay.svelte';
|
|
12
|
-
import type { HeightData } from './Body/HeightData.js';
|
|
13
15
|
import { shownPopup } from './Body/Rows/Columns/ActionsCell.svelte';
|
|
14
16
|
import TableBody from './Body/TableBody.svelte';
|
|
15
17
|
import TableHead from './Headers/TableHead.svelte';
|
|
@@ -39,7 +41,10 @@
|
|
|
39
41
|
const openedQuickFilterSelect = refWrapper(null);
|
|
40
42
|
</script>
|
|
41
43
|
|
|
42
|
-
<script
|
|
44
|
+
<script
|
|
45
|
+
lang="ts"
|
|
46
|
+
generics="T extends object,IdType extends Primitive"
|
|
47
|
+
>
|
|
43
48
|
const { nested = false, tableContext }: TableProps<T, IdType> = $props();
|
|
44
49
|
|
|
45
50
|
// NOTE: known limitation. This is passed as a wrapper, and they should never require reassignment. It is deeply reactive
|
|
@@ -78,7 +83,7 @@
|
|
|
78
83
|
element?.scrollIntoView({
|
|
79
84
|
behavior: 'instant',
|
|
80
85
|
block: 'nearest',
|
|
81
|
-
inline: 'nearest'
|
|
86
|
+
inline: 'nearest',
|
|
82
87
|
});
|
|
83
88
|
}
|
|
84
89
|
});
|
|
@@ -94,7 +99,7 @@
|
|
|
94
99
|
cell?.scrollIntoView({
|
|
95
100
|
behavior: 'instant',
|
|
96
101
|
block: 'nearest',
|
|
97
|
-
inline: 'nearest'
|
|
102
|
+
inline: 'nearest',
|
|
98
103
|
});
|
|
99
104
|
}
|
|
100
105
|
});
|
|
@@ -137,7 +142,7 @@
|
|
|
137
142
|
tableContext.moveFocus({
|
|
138
143
|
column: columnIndex,
|
|
139
144
|
row,
|
|
140
|
-
id: columnId
|
|
145
|
+
id: columnId,
|
|
141
146
|
});
|
|
142
147
|
}
|
|
143
148
|
}
|
|
@@ -153,8 +158,8 @@
|
|
|
153
158
|
callback: () => {
|
|
154
159
|
tableContext.copyDataToClipboard().catch(devCatch);
|
|
155
160
|
},
|
|
156
|
-
text: 'Copy Selection'
|
|
157
|
-
}
|
|
161
|
+
text: 'Copy Selection',
|
|
162
|
+
},
|
|
158
163
|
];
|
|
159
164
|
|
|
160
165
|
if (tableContext.hasHighlightedItems) {
|
|
@@ -162,7 +167,7 @@
|
|
|
162
167
|
callback: () => {
|
|
163
168
|
tableContext.copyHighlightedRowsToClipboard().catch(devCatch);
|
|
164
169
|
},
|
|
165
|
-
text: 'Copy Highlighted Rows'
|
|
170
|
+
text: 'Copy Highlighted Rows',
|
|
166
171
|
});
|
|
167
172
|
}
|
|
168
173
|
|
|
@@ -284,46 +289,46 @@
|
|
|
284
289
|
}
|
|
285
290
|
});
|
|
286
291
|
|
|
287
|
-
type SvelteTableElement = {
|
|
288
|
-
|
|
289
|
-
};
|
|
290
|
-
|
|
291
|
-
let leftTable: SvelteTableElement | undefined = $state();
|
|
292
|
-
let centreTable: SvelteTableElement | undefined = $state();
|
|
293
|
-
let rightTable: SvelteTableElement | undefined = $state();
|
|
294
|
-
|
|
295
|
-
const totalRowSizes: Array<HeightData<T>> = $derived.by(() => {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
});
|
|
292
|
+
// type SvelteTableElement = {
|
|
293
|
+
// rowHeights: RefWrapper<Array<number>>;
|
|
294
|
+
// };
|
|
295
|
+
|
|
296
|
+
// let leftTable: SvelteTableElement | undefined = $state();
|
|
297
|
+
// let centreTable: SvelteTableElement | undefined = $state();
|
|
298
|
+
// let rightTable: SvelteTableElement | undefined = $state();
|
|
299
|
+
|
|
300
|
+
// const totalRowSizes: Array<HeightData<T>> = $derived.by(() => {
|
|
301
|
+
// if (!leftTable || !centreTable || !rightTable) {
|
|
302
|
+
// return [];
|
|
303
|
+
// }
|
|
304
|
+
// const centre = centreTable.rowHeights.value;
|
|
305
|
+
// const right = rightTable.rowHeights.value;
|
|
306
|
+
|
|
307
|
+
// return leftTable.rowHeights.value.map((_leftHeight, index) => {
|
|
308
|
+
// const leftHeight = _leftHeight || 0;
|
|
309
|
+
// const centreHeight = centre[index] || 0;
|
|
310
|
+
// const rightHeight = right[index] || 0;
|
|
311
|
+
|
|
312
|
+
// const maxHeight = Math.max(leftHeight, centreHeight, rightHeight);
|
|
313
|
+
// const applyTo: HeightData<T>['applyTo'] = [];
|
|
314
|
+
|
|
315
|
+
// if (leftHeight < maxHeight) {
|
|
316
|
+
// applyTo.push('left');
|
|
317
|
+
// }
|
|
318
|
+
// if (centreHeight < maxHeight) {
|
|
319
|
+
// applyTo.push('centre');
|
|
320
|
+
// }
|
|
321
|
+
// if (rightHeight < maxHeight) {
|
|
322
|
+
// applyTo.push('right');
|
|
323
|
+
// }
|
|
324
|
+
|
|
325
|
+
// return {
|
|
326
|
+
// index,
|
|
327
|
+
// applyTo,
|
|
328
|
+
// maxHeight
|
|
329
|
+
// };
|
|
330
|
+
// });
|
|
331
|
+
// });
|
|
327
332
|
</script>
|
|
328
333
|
|
|
329
334
|
<svelte:window
|
|
@@ -356,12 +361,21 @@
|
|
|
356
361
|
/>
|
|
357
362
|
|
|
358
363
|
<svelte:boundary>
|
|
359
|
-
<div
|
|
364
|
+
<div
|
|
365
|
+
class="grid"
|
|
366
|
+
class:nested
|
|
367
|
+
>
|
|
360
368
|
{#if tableContext.dataRepo.isLoading}
|
|
361
|
-
<LoadingOverlay
|
|
369
|
+
<LoadingOverlay
|
|
370
|
+
absolute
|
|
371
|
+
borderRadius="4px"
|
|
372
|
+
/>
|
|
362
373
|
{/if}
|
|
363
374
|
|
|
364
|
-
<div
|
|
375
|
+
<div
|
|
376
|
+
class="horizontal-bar"
|
|
377
|
+
class:border={tableContext.toolbarPosition === ToolbarPosition.Top}
|
|
378
|
+
>
|
|
365
379
|
{#if tableContext.toolbarPosition === ToolbarPosition.Top}
|
|
366
380
|
<TableHorizontalBar />
|
|
367
381
|
{/if}
|
|
@@ -405,45 +419,71 @@
|
|
|
405
419
|
class:quick-filtering={tableContext.showQuickFiltering}
|
|
406
420
|
onkeydown={tableContext.handleTdKeydown}
|
|
407
421
|
>
|
|
408
|
-
<div
|
|
409
|
-
|
|
422
|
+
<div
|
|
423
|
+
class="flex_table"
|
|
424
|
+
bind:this={ref}
|
|
425
|
+
class:nested
|
|
426
|
+
>
|
|
427
|
+
<div
|
|
428
|
+
bind:this={unfocusRef}
|
|
429
|
+
class="table-wrapper"
|
|
430
|
+
oncontextmenu={openContextMenu}
|
|
431
|
+
>
|
|
410
432
|
<!-- {#if leftTotalSize > 0} -->
|
|
411
|
-
<table
|
|
412
|
-
|
|
433
|
+
<table
|
|
434
|
+
class="datatable__table left"
|
|
435
|
+
style="min-width: {leftTotalSize}px"
|
|
436
|
+
>
|
|
437
|
+
<TableHead
|
|
438
|
+
showHighlight={leftTotalSize > 0}
|
|
439
|
+
side="left"
|
|
440
|
+
/>
|
|
413
441
|
<TableBody
|
|
414
442
|
includeHighlight={appropriateSide == 'left'}
|
|
415
443
|
columns={leftColumns}
|
|
416
|
-
heights={totalRowSizes}
|
|
417
444
|
side="left"
|
|
418
|
-
bind:this={leftTable}
|
|
419
445
|
/>
|
|
446
|
+
<!-- heights={totalRowSizes} -->
|
|
447
|
+
<!-- bind:this={leftTable} -->
|
|
420
448
|
</table>
|
|
421
449
|
<!-- {/if} -->
|
|
422
450
|
|
|
423
451
|
<!-- {#if centreTotalSize > 0} -->
|
|
424
452
|
|
|
425
|
-
<table
|
|
426
|
-
|
|
453
|
+
<table
|
|
454
|
+
class="datatable__table centre"
|
|
455
|
+
style="min-width: {centreTotalSize}px"
|
|
456
|
+
>
|
|
457
|
+
<TableHead
|
|
458
|
+
showHighlight={leftTotalSize == 0}
|
|
459
|
+
side="centre"
|
|
460
|
+
/>
|
|
427
461
|
<TableBody
|
|
428
462
|
includeHighlight={appropriateSide == 'centre'}
|
|
429
463
|
columns={centreColumns}
|
|
430
|
-
heights={totalRowSizes}
|
|
431
464
|
side="centre"
|
|
432
|
-
bind:this={centreTable}
|
|
433
465
|
/>
|
|
466
|
+
<!-- heights={totalRowSizes}
|
|
467
|
+
bind:this={centreTable} -->
|
|
434
468
|
</table>
|
|
435
469
|
<!-- {/if} -->
|
|
436
470
|
|
|
437
471
|
<!-- {#if rightTotalSize > 0} -->
|
|
438
|
-
<table
|
|
439
|
-
|
|
472
|
+
<table
|
|
473
|
+
class="datatable__table right"
|
|
474
|
+
style="min-width: {rightTotalSize}px"
|
|
475
|
+
>
|
|
476
|
+
<TableHead
|
|
477
|
+
showHighlight={false}
|
|
478
|
+
side="right"
|
|
479
|
+
/>
|
|
440
480
|
<TableBody
|
|
441
481
|
includeHighlight={appropriateSide == 'right'}
|
|
442
482
|
columns={rightColumns}
|
|
443
|
-
heights={totalRowSizes}
|
|
444
483
|
side="right"
|
|
445
|
-
bind:this={rightTable}
|
|
446
484
|
/>
|
|
485
|
+
<!-- heights={totalRowSizes}
|
|
486
|
+
bind:this={rightTable} -->
|
|
447
487
|
</table>
|
|
448
488
|
<!-- {/if} -->
|
|
449
489
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ColumnDef } from './Definitions/ColumnDef.svelte.js';
|
|
2
|
-
export interface Column<T extends object, in FilterFnType =
|
|
2
|
+
export interface Column<T extends object, in FilterFnType = never, out FilterOptionsType = unknown> {
|
|
3
3
|
id: string;
|
|
4
|
-
columnDef: ColumnDef<T, FilterFnType,
|
|
4
|
+
columnDef: ColumnDef<T, FilterFnType, FilterOptionsType>;
|
|
5
5
|
getCanSort: () => boolean;
|
|
6
6
|
getToggleSortingHandler: () => ((e: MouseEvent) => void) | undefined;
|
|
7
7
|
getIsSorted: () => 'asc' | 'desc' | 'none';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
|
|
2
2
|
import type { AccessorType } from './AccessorType.js';
|
|
3
|
-
export interface AccessorDefProps<T extends object, in FilterValueType, out
|
|
3
|
+
export interface AccessorDefProps<T extends object, in FilterValueType, out FilterOptionsType> extends ColumnDefProps<T, FilterValueType, FilterOptionsType> {
|
|
4
4
|
readonly id: string & keyof T;
|
|
5
5
|
}
|
|
6
|
-
export declare abstract class AccessorDef<T extends object, in FilterValueType, out
|
|
7
|
-
constructor(props: AccessorDefProps<T, FilterValueType,
|
|
6
|
+
export declare abstract class AccessorDef<T extends object, in FilterValueType, out FilterOptionsType> extends ColumnDef<T, FilterValueType, FilterOptionsType> {
|
|
7
|
+
constructor(props: AccessorDefProps<T, FilterValueType, FilterOptionsType>);
|
|
8
8
|
readonly columnType: "Accessor";
|
|
9
9
|
abstract readonly accessorType: AccessorType;
|
|
10
10
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
|
|
2
1
|
import type { BoolFilterValueType, FilterFn } from '../../../Filtering/FilterFn.js';
|
|
3
2
|
import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
4
3
|
export interface CheckboxDefProps<T extends object, in FilterValueType = BoolFilterValueType, out SelectValueType = BoolFilterValueType> extends AccessorDefProps<T, FilterValueType, SelectValueType> {
|
|
@@ -7,6 +6,6 @@ export declare class CheckboxDef<T extends object, in FilterValueType = BoolFilt
|
|
|
7
6
|
readonly accessorType: "Checkbox";
|
|
8
7
|
constructor(props: CheckboxDefProps<T, FilterValueType, SelectValueType>);
|
|
9
8
|
private _filterFn;
|
|
10
|
-
get filterFn():
|
|
11
|
-
set filterFn(v:
|
|
9
|
+
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
10
|
+
set filterFn(v: FilterFn<T, FilterValueType> | undefined);
|
|
12
11
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
|
|
2
1
|
import type { DateFilterValueType, FilterFn } from '../../../Filtering/FilterFn.js';
|
|
3
2
|
import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
4
3
|
export interface DateInputDefProps<T extends object, in FilterValueType = DateFilterValueType, out SelectValueType = DateFilterValueType> extends AccessorDefProps<T, FilterValueType, SelectValueType> {
|
|
@@ -8,7 +7,7 @@ export declare class DateInputDef<T extends object, in FilterValueType = DateFil
|
|
|
8
7
|
readonly accessorType: "Date";
|
|
9
8
|
constructor(props: DateInputDefProps<T, FilterValueType, SelectValueType>);
|
|
10
9
|
private _filterFn;
|
|
11
|
-
get filterFn(): FilterFn<T, FilterValueType> |
|
|
12
|
-
set filterFn(v: FilterFn<T, FilterValueType> |
|
|
10
|
+
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
11
|
+
set filterFn(v: FilterFn<T, FilterValueType> | undefined);
|
|
13
12
|
readonly showTime: boolean;
|
|
14
13
|
}
|
package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
|
|
2
1
|
import type { FilterFn, NumberFilterValueType } from '../../../Filtering/FilterFn.js';
|
|
3
2
|
import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
4
3
|
export interface NumberInputDefProps<T extends object, in FilterValueType = NumberFilterValueType, out OptionssValueType = NumberFilterValueType> extends AccessorDefProps<T, FilterValueType, OptionssValueType> {
|
|
@@ -11,6 +10,6 @@ export declare class NumberInputDef<T extends object, in FilterValueType = Numbe
|
|
|
11
10
|
readonly min: number;
|
|
12
11
|
readonly max: number;
|
|
13
12
|
private _filterFn;
|
|
14
|
-
get filterFn():
|
|
15
|
-
set filterFn(v:
|
|
13
|
+
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
14
|
+
set filterFn(v: FilterFn<T, FilterValueType> | undefined);
|
|
16
15
|
}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import type { SelectOption } from '../../../../../../Types/Internal/SelectOption.js';
|
|
2
|
-
import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
|
|
3
2
|
import type { FilterFn } from '../../../Filtering/FilterFn.js';
|
|
4
3
|
import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
5
|
-
export interface QueryDefProps<T extends object, in FilterValueType = unknown, out
|
|
4
|
+
export interface QueryDefProps<T extends object, in FilterValueType = unknown, out FilterOptionsType = unknown> extends AccessorDefProps<T, FilterValueType, FilterOptionsType> {
|
|
6
5
|
query: (queryString: string, item: T, index: number) => Promise<Array<SelectOption<unknown>>>;
|
|
7
6
|
getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
|
|
8
7
|
clearable?: boolean;
|
|
9
8
|
}
|
|
10
|
-
export declare class QueryDef<T extends object, FilterValueType = unknown, out
|
|
9
|
+
export declare class QueryDef<T extends object, FilterValueType = unknown, out FilterOptionsType = unknown> extends AccessorDef<T, FilterValueType, FilterOptionsType> {
|
|
11
10
|
readonly accessorType: "Query";
|
|
12
|
-
constructor(props: QueryDefProps<T, FilterValueType,
|
|
13
|
-
readonly filterFn:
|
|
11
|
+
constructor(props: QueryDefProps<T, FilterValueType, FilterOptionsType>);
|
|
12
|
+
readonly filterFn: FilterFn<T, FilterValueType> | undefined;
|
|
14
13
|
getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
|
|
15
14
|
readonly query: (queryString: string, item: T, index: number) => Promise<Array<SelectOption<unknown>>>;
|
|
16
15
|
readonly clearable: boolean;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { SelectOption } from '../../../../../../Types/Internal/SelectOption.js';
|
|
2
|
-
import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
|
|
3
2
|
import type { FilterFn } from '../../../Filtering/FilterFn.js';
|
|
4
3
|
import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
5
4
|
export interface SelectDefProps<T extends object, in FilterValueType, out SelectValueType> extends AccessorDefProps<T, FilterValueType, SelectValueType> {
|
|
@@ -14,8 +13,8 @@ export declare class SelectDef<T extends object, in FilterValueType, out SelectV
|
|
|
14
13
|
constructor(props: SelectDefProps<T, FilterValueType, SelectValueType>);
|
|
15
14
|
readonly accessorType: "Select";
|
|
16
15
|
private _filterFn;
|
|
17
|
-
get filterFn(): FilterFn<T, FilterValueType> |
|
|
18
|
-
set filterFn(v: FilterFn<T, FilterValueType> |
|
|
16
|
+
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
17
|
+
set filterFn(v: FilterFn<T, FilterValueType> | undefined);
|
|
19
18
|
readonly sortingFn?: (a: T, b: T) => 1 | -1 | 0;
|
|
20
19
|
readonly optional: boolean;
|
|
21
20
|
readonly clearable: boolean;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
|
|
2
1
|
import type { FilterFn, StringFilterValueType } from '../../../Filtering/FilterFn.js';
|
|
3
2
|
import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
4
3
|
export interface TextInputDefProps<T extends object, in FilterValueType = StringFilterValueType, out SelectValueType = StringFilterValueType> extends AccessorDefProps<T, FilterValueType, SelectValueType> {
|
|
@@ -8,6 +7,6 @@ export declare class TextInputDef<T extends object, in FilterValueType = StringF
|
|
|
8
7
|
readonly accessorType: "Text";
|
|
9
8
|
constructor(props: TextInputDefProps<T, FilterValueType, SelectValueType>);
|
|
10
9
|
private _filterFn;
|
|
11
|
-
get filterFn():
|
|
12
|
-
set filterFn(v:
|
|
10
|
+
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
11
|
+
set filterFn(v: FilterFn<T, FilterValueType> | undefined);
|
|
13
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { ColourSet } from '../../../../../../scss/colours.js';
|
|
2
2
|
import type { TableActionButton } from '../../TableActionButton.js';
|
|
3
3
|
import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
|
|
4
|
-
export interface ActionsDefProps<T extends object, in FilterValueType, out
|
|
4
|
+
export interface ActionsDefProps<T extends object, in FilterValueType, out FilterOptionsType = unknown> extends Omit<ColumnDefProps<T, FilterValueType, FilterOptionsType>, 'id' | 'header'> {
|
|
5
5
|
actions: Array<TableActionButton<T>>;
|
|
6
6
|
isEnabled?: (item: T, index: number, button: TableActionButton<T>) => boolean | Promise<boolean>;
|
|
7
7
|
getColourSet?: (item: T, index: number, button: TableActionButton<T>) => ColourSet;
|
|
8
8
|
}
|
|
9
|
-
export declare class ActionsDef<T extends object, FilterValueType, out
|
|
9
|
+
export declare class ActionsDef<T extends object, FilterValueType, out FilterOptionsType = unknown> extends ColumnDef<T, FilterValueType, FilterOptionsType> {
|
|
10
10
|
constructor(props: ActionsDefProps<T, FilterValueType>);
|
|
11
11
|
readonly columnType: "Actions";
|
|
12
12
|
readonly actions: Array<TableActionButton<T>>;
|
|
@@ -7,7 +7,7 @@ export class ActionsDef extends ColumnDef {
|
|
|
7
7
|
id: `actions-${generateUUID()}`,
|
|
8
8
|
header: 'Actions',
|
|
9
9
|
allowSorting: false,
|
|
10
|
-
allowFiltering: false
|
|
10
|
+
allowFiltering: false,
|
|
11
11
|
});
|
|
12
12
|
this.actions = $derived(props.actions);
|
|
13
13
|
this.isEnabled = $derived(props.isEnabled);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Pixels } from '../../../../../Types/Internal/Misc.js';
|
|
2
2
|
import type { SelectOption } from '../../../../../Types/Internal/SelectOption.js';
|
|
3
3
|
import type { Snippet } from 'svelte';
|
|
4
|
-
import type { CustomFilterFn } from '../../Filtering/CustomFilterFn.js';
|
|
5
4
|
import type { FilterFn } from '../../Filtering/FilterFn.js';
|
|
6
5
|
import type { FilterValueType } from '../../Filtering/FilterValueType.js';
|
|
7
6
|
import { ColumnType } from '../ColumnType.js';
|
|
@@ -20,13 +19,13 @@ export interface ColumnDefProps<T extends object, in FilterFnType, out OptionsTy
|
|
|
20
19
|
isEditable?: (item: T, index: number) => boolean | Promise<boolean>;
|
|
21
20
|
resizable?: boolean;
|
|
22
21
|
isValid?: ValidationFn<T>;
|
|
23
|
-
filterFn?: FilterFn<T, FilterFnType
|
|
22
|
+
filterFn?: FilterFn<T, FilterFnType>;
|
|
24
23
|
filterValueType?: FilterValueType;
|
|
25
24
|
getOptions?: () => Array<SelectOption<OptionsType>> | Promise<Array<SelectOption<OptionsType>>>;
|
|
26
25
|
accessorFn?: AccessorFn<T>;
|
|
27
26
|
getDisplayValue?: (item: T, index: number) => string | null | Promise<string | null>;
|
|
28
27
|
}
|
|
29
|
-
export declare abstract class ColumnDef<T extends object, in FilterFnType =
|
|
28
|
+
export declare abstract class ColumnDef<T extends object, in FilterFnType = never, out OptionsType = unknown> {
|
|
30
29
|
protected constructor(props: ColumnDefProps<T, FilterFnType, OptionsType>);
|
|
31
30
|
readonly id: string;
|
|
32
31
|
debug: boolean;
|
|
@@ -39,7 +38,7 @@ export declare abstract class ColumnDef<T extends object, in FilterFnType = unkn
|
|
|
39
38
|
readonly allowFiltering: boolean;
|
|
40
39
|
readonly isValid: ValidationFn<T> | undefined;
|
|
41
40
|
readonly accessorFn: AccessorFn<T> | undefined;
|
|
42
|
-
abstract filterFn: FilterFn<T, FilterFnType> |
|
|
41
|
+
abstract filterFn: FilterFn<T, FilterFnType> | undefined;
|
|
43
42
|
private _minSize;
|
|
44
43
|
get minSize(): Pixels;
|
|
45
44
|
set minSize(v: Pixels);
|
package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts
CHANGED
|
@@ -2,17 +2,18 @@ import type { Component } from 'svelte';
|
|
|
2
2
|
import type { DisplayType } from '../../DisplayType.js';
|
|
3
3
|
import type { TableCell } from '../../TableCell.js';
|
|
4
4
|
import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
|
|
5
|
-
export interface DisplayDefModalProps<T extends object, in FilterValueType =
|
|
6
|
-
cell: TableCell<T, FilterValueType,
|
|
5
|
+
export interface DisplayDefModalProps<T extends object, in FilterValueType = never, out FilterOptionsType = unknown> {
|
|
6
|
+
cell: TableCell<T, FilterValueType, FilterOptionsType>;
|
|
7
7
|
onclose: () => void;
|
|
8
8
|
onsubmit: () => void;
|
|
9
9
|
}
|
|
10
|
-
export interface AbstractDisplayDefProps<T extends object, FilterFnType, out
|
|
10
|
+
export interface AbstractDisplayDefProps<T extends object, in FilterFnType, out FilterOptionsType> extends ColumnDefProps<T, FilterFnType, FilterOptionsType> {
|
|
11
11
|
modal?: Component<any, any, any>;
|
|
12
12
|
}
|
|
13
|
-
export declare abstract class AbstractDisplayDef<T extends object, FilterValueType, out
|
|
13
|
+
export declare abstract class AbstractDisplayDef<T extends object, in FilterValueType = never, out FilterOptionsType = unknown> extends ColumnDef<T, FilterValueType, FilterOptionsType> {
|
|
14
14
|
abstract readonly displayType: DisplayType;
|
|
15
|
-
constructor(props: AbstractDisplayDefProps<T, FilterValueType,
|
|
15
|
+
constructor(props: AbstractDisplayDefProps<T, FilterValueType, FilterOptionsType>);
|
|
16
16
|
readonly columnType: "Display";
|
|
17
|
-
readonly modal:
|
|
17
|
+
readonly modal: //HACK out parameter. Need to check if it's possible to be strict
|
|
18
|
+
Component<DisplayDefModalProps<T>, any, any> | undefined;
|
|
18
19
|
}
|
package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js
CHANGED
|
@@ -6,6 +6,5 @@ export class AbstractDisplayDef extends ColumnDef {
|
|
|
6
6
|
this.modal = $derived(props.modal);
|
|
7
7
|
}
|
|
8
8
|
columnType = ColumnType.Display;
|
|
9
|
-
|
|
10
|
-
modal; //HACK out parameter. Need to check if it's possible to be strict
|
|
9
|
+
modal;
|
|
11
10
|
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import type { BubbleColour } from '../../../../../BubbleColour.js';
|
|
2
|
-
import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
|
|
3
2
|
import type { FilterFn, StringFilterValueType } from '../../../Filtering/FilterFn.js';
|
|
4
3
|
import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisplayDef.svelte.js';
|
|
5
|
-
export interface BubbleDefProps<T extends object, FilterValueType
|
|
4
|
+
export interface BubbleDefProps<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDefProps<T, FilterValueType, FilterOptionsType> {
|
|
6
5
|
getColour?: (item: T, index: number, value: string) => BubbleColour | Promise<BubbleColour | null | undefined>;
|
|
7
6
|
}
|
|
8
|
-
export declare class BubbleDef<T extends object, FilterValueType = StringFilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
|
|
7
|
+
export declare class BubbleDef<T extends object, in FilterValueType = StringFilterValueType, out FilterOptionsType = unknown> extends AbstractDisplayDef<T, FilterValueType, FilterOptionsType> {
|
|
9
8
|
readonly displayType: "Bubbles";
|
|
10
|
-
constructor(props: BubbleDefProps<T, FilterValueType>);
|
|
9
|
+
constructor(props: BubbleDefProps<T, FilterValueType, FilterOptionsType>);
|
|
11
10
|
private _filterFn;
|
|
12
|
-
get filterFn(): FilterFn<T, FilterValueType> |
|
|
13
|
-
set filterFn(v: FilterFn<T, FilterValueType> |
|
|
11
|
+
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
12
|
+
set filterFn(v: FilterFn<T, FilterValueType> | undefined);
|
|
14
13
|
getColour: ((item: T, index: number, value: string) => BubbleColour | Promise<BubbleColour | null | undefined>) | undefined;
|
|
15
14
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
|
|
2
1
|
import type { FilterFn } from '../../../Filtering/FilterFn.js';
|
|
3
2
|
import { DisplayType } from '../../DisplayType.js';
|
|
4
3
|
import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisplayDef.svelte.js';
|
|
5
|
-
export
|
|
6
|
-
|
|
4
|
+
export interface DisplayDefProps<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDefProps<T, FilterValueType, FilterOptionsType> {
|
|
5
|
+
}
|
|
6
|
+
export declare class DisplayDef<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDef<T, FilterValueType, FilterOptionsType> {
|
|
7
7
|
readonly displayType: DisplayType;
|
|
8
|
-
constructor(props: DisplayDefProps<T, FilterValueType>);
|
|
8
|
+
constructor(props: DisplayDefProps<T, FilterValueType, FilterOptionsType>);
|
|
9
9
|
private _filterFn;
|
|
10
|
-
get filterFn():
|
|
11
|
-
set filterFn(v:
|
|
10
|
+
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
11
|
+
set filterFn(v: FilterFn<T, FilterValueType> | undefined);
|
|
12
12
|
}
|