@lavalogic/scoria 0.40.13 → 0.40.15
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/README.md +58 -58
- package/dist/Components/AccordionGroup.svelte +35 -46
- package/dist/Components/AccordionGroupButton.svelte +68 -76
- package/dist/Components/Action.svelte +103 -135
- package/dist/Components/AlertModal.svelte +171 -190
- package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +614 -697
- package/dist/Components/Base/BaseModal.svelte +90 -116
- package/dist/Components/Base/ContextWrapper.svelte +67 -72
- package/dist/Components/Base/Pagination.svelte +173 -196
- package/dist/Components/Base/Snippets.svelte +34 -36
- package/dist/Components/BigRadioSet.svelte +36 -38
- package/dist/Components/Bubble.svelte +78 -101
- package/dist/Components/Button.svelte +175 -208
- package/dist/Components/Checkbox.svelte +75 -86
- package/dist/Components/CollapsibleCard.svelte +72 -87
- package/dist/Components/CollapsibleMenuGroup.svelte +53 -57
- package/dist/Components/ConditionBuilder/ConditionBuilder.svelte +39 -64
- package/dist/Components/Contexts/ContextMenu.svelte +141 -156
- package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -15
- package/dist/Components/Contexts/ContextMenuOption.svelte +53 -60
- package/dist/Components/Contexts/Toast.svelte +81 -86
- package/dist/Components/Contexts/ToastContainer.svelte +58 -62
- package/dist/Components/Contexts/Tooltip.svelte +36 -37
- package/dist/Components/DataMatrixIcon.svelte +95 -108
- package/dist/Components/DateInput.svelte +118 -146
- package/dist/Components/DatePicker.svelte +255 -294
- package/dist/Components/DesktopModal.svelte +70 -90
- package/dist/Components/Dial.svelte +167 -197
- package/dist/Components/DimensionInput.svelte +124 -169
- package/dist/Components/DragMenu/DragMenuHolder.svelte +98 -114
- package/dist/Components/DragMenu/DraggableCard.svelte +64 -76
- package/dist/Components/FileCard.svelte +21 -24
- package/dist/Components/FileUpload.svelte +190 -225
- package/dist/Components/GridInput.svelte +159 -196
- package/dist/Components/GridInputSet.svelte +24 -29
- package/dist/Components/HorizontalTabGroup.svelte +73 -89
- package/dist/Components/HorizontalTabGroupButton.svelte +40 -44
- package/dist/Components/Icon.svelte +99 -128
- package/dist/Components/Icons.js +357 -357
- package/dist/Components/InfoAlert.svelte +35 -38
- package/dist/Components/LoadingAnimation.svelte +691 -755
- package/dist/Components/LoadingModal.svelte +36 -44
- package/dist/Components/LoadingOverlay.svelte +22 -26
- package/dist/Components/Modal.svelte +204 -254
- package/dist/Components/MultiSelect.svelte +186 -216
- package/dist/Components/Nav/Nav.svelte +94 -110
- package/dist/Components/Nav/NavServiceMenuList.svelte +57 -61
- package/dist/Components/Nav/NavTab.svelte +58 -62
- package/dist/Components/Nav/ServiceMenuItem.svelte +103 -111
- package/dist/Components/Nav/ServicesNav.svelte +72 -79
- package/dist/Components/NumberInput.svelte +121 -155
- package/dist/Components/OptionCards.svelte +62 -73
- package/dist/Components/PageHeading.svelte +23 -25
- package/dist/Components/PasswordInput.svelte +69 -88
- package/dist/Components/PopoverButton.svelte +151 -0
- package/dist/Components/PopoverButton.svelte.d.ts +9 -0
- package/dist/Components/PopoverButtonProps.d.ts +21 -0
- package/dist/Components/PopoverButtonProps.js +1 -0
- package/dist/Components/Portal.svelte +29 -35
- package/dist/Components/ProgressBubble.svelte +91 -106
- package/dist/Components/QuerySelect.svelte +260 -346
- package/dist/Components/SidebarPanel.svelte +34 -36
- package/dist/Components/SingleSelect.svelte +196 -244
- package/dist/Components/StepButton.svelte +65 -70
- package/dist/Components/StepForm.svelte +115 -135
- package/dist/Components/Switch.svelte +57 -69
- package/dist/Components/Table/ARCHITECTURE.md +298 -298
- package/dist/Components/Table/Body/QuickSearchCell.svelte +578 -655
- package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +42 -51
- package/dist/Components/Table/Body/Rows/ColumnList.svelte +42 -58
- package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +403 -442
- package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +51 -78
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +165 -184
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +110 -123
- package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +134 -160
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +190 -231
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +82 -104
- package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +52 -87
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +122 -150
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +132 -159
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +190 -236
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +173 -211
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +204 -244
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +140 -177
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +188 -217
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +173 -193
- package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +166 -187
- package/dist/Components/Table/Body/Rows/TableRow.svelte +245 -288
- package/dist/Components/Table/Body/TableBody.svelte +141 -154
- package/dist/Components/Table/Headers/HighlightAllHeader.svelte +35 -41
- package/dist/Components/Table/Headers/SelectAllHeader.svelte +24 -30
- package/dist/Components/Table/Headers/TableHead.svelte +348 -402
- package/dist/Components/Table/Misc/ColumnPanel.svelte +37 -39
- package/dist/Components/Table/Misc/ColumnPanelModal.svelte +35 -39
- package/dist/Components/Table/Misc/FilterInput.svelte +556 -619
- package/dist/Components/Table/Misc/FilterPanel.svelte +170 -183
- package/dist/Components/Table/Misc/FilterPanelModal.svelte +25 -31
- package/dist/Components/Table/Misc/ShareViewModal.svelte +252 -281
- package/dist/Components/Table/Misc/SidePanel.svelte +32 -35
- package/dist/Components/Table/Misc/TableConfigurationModal.svelte +574 -629
- package/dist/Components/Table/Misc/TableFooter.svelte +326 -332
- package/dist/Components/Table/Misc/TableHorizontalBar.svelte +134 -140
- package/dist/Components/Table/Misc/TableSidebar.svelte +183 -198
- package/dist/Components/Table/Misc/TableViewDropdown.svelte +83 -103
- package/dist/Components/Table/Misc/ToolboxPanel.svelte +83 -100
- package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +88 -107
- package/dist/Components/Table/Misc/UpdateViewOptionsModal.svelte +163 -190
- package/dist/Components/Table/NestedTable.svelte +102 -128
- package/dist/Components/Table/Table.svelte +531 -663
- package/dist/Components/Test/TestContextConsumer.svelte +11 -13
- package/dist/Components/TextArea.svelte +95 -130
- package/dist/Components/TextInput.svelte +125 -176
- package/dist/Components/ThreeStateRadio.svelte +111 -130
- package/dist/Components/Touch/BoolCard.svelte +33 -45
- package/dist/Components/Touch/DateModal.svelte +164 -204
- package/dist/Components/Touch/EditCard.svelte +48 -59
- package/dist/Components/Touch/InfoCard.svelte +28 -31
- package/dist/Components/Touch/InfoTextCard.svelte +26 -28
- package/dist/Components/Touch/ModalExplanation.svelte +15 -17
- package/dist/Components/Touch/NumberKeyboard.svelte +181 -218
- package/dist/Components/Touch/NumberModal.svelte +59 -79
- package/dist/Components/Touch/PlusMinusCard.svelte +43 -46
- package/dist/Components/Touch/SelectModal.svelte +111 -126
- package/dist/Components/Touch/SummaryCard.svelte +80 -93
- package/dist/Components/Touch/TextAreaModal.svelte +72 -94
- package/dist/Components/Touch/TextModal.svelte +77 -105
- package/dist/Components/Touch/TouchCard.svelte +31 -33
- package/dist/Components/Touch/TouchModal.svelte +214 -270
- package/dist/Components/Touch/UtilityButton.svelte +88 -109
- package/dist/Components/VerticalTabGroup.svelte +60 -78
- package/dist/Components/VerticalTabGroupButton.svelte +54 -58
- package/dist/Helpers/Datamatrix.d.ts +19 -19
- package/dist/Helpers/Datamatrix.js +291 -291
- package/dist/Types/Examples/ExampleModal.svelte +31 -35
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/scss/_basics.scss +12 -12
- package/dist/scss/_colours.scss +134 -134
- package/dist/scss/_mixins.scss +3392 -3392
- package/dist/scss/_motion.scss +57 -57
- package/dist/scss/_sizing.scss +85 -85
- package/dist/scss/_transitions.scss +8 -8
- package/package.json +1 -1
|
@@ -1,157 +1,144 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
3
|
-
<script
|
|
4
|
-
lang="ts"
|
|
5
|
-
generics="T extends object, IdType extends Primitive"
|
|
6
|
-
>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
function renderedColumnWidth(columnId: string, declared: number): number {
|
|
35
|
-
return tableContext._columnRenderedWidths.get(columnId) ?? declared;
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
|
+
<script
|
|
4
|
+
lang="ts"
|
|
5
|
+
generics="T extends object, IdType extends Primitive"
|
|
6
|
+
>import { getContext } from "svelte";
|
|
7
|
+
import { TableContext } from "../Types/Context/TableContext.svelte.js";
|
|
8
|
+
import QuickSearchCell from "./QuickSearchCell.svelte";
|
|
9
|
+
import TableRow from "./Rows/TableRow.svelte";
|
|
10
|
+
const { oncontextmenu } = $props();
|
|
11
|
+
const tableContext = getContext(TableContext.identifier);
|
|
12
|
+
// Visible columns split by pinning side, matching the cell-side
|
|
13
|
+
// arrays used by `TableRow`. Each side is reactive on column
|
|
14
|
+
// visibility and pinning state.
|
|
15
|
+
const leftColumns = $derived(tableContext.table.getLeftVisibleLeafColumns());
|
|
16
|
+
const centreColumns = $derived(tableContext.table.getCenterVisibleLeafColumns());
|
|
17
|
+
const rightColumns = $derived(tableContext.table.getRightVisibleLeafColumns());
|
|
18
|
+
const showHighlightColumn = $derived(leftColumns.length + centreColumns.length + rightColumns.length > 0);
|
|
19
|
+
// Cumulative pinning offsets for the quick-filter row's sticky
|
|
20
|
+
// cells. Reads rendered widths from `_columnRenderedWidths`
|
|
21
|
+
// (populated by the ResizeObserver in TableHead) so filter inputs
|
|
22
|
+
// for pinned columns stay aligned with their column even when the
|
|
23
|
+
// column flexes wider than `columnDef.width`.
|
|
24
|
+
function renderedColumnWidth(columnId, declared) {
|
|
25
|
+
return tableContext._columnRenderedWidths.get(columnId) ?? declared;
|
|
26
|
+
}
|
|
27
|
+
const leftOffsets = $derived.by(() => {
|
|
28
|
+
void tableContext._columnRenderedWidths.size;
|
|
29
|
+
const offsets = [];
|
|
30
|
+
let cumulative = showHighlightColumn ? 20 : 0;
|
|
31
|
+
for (const col of leftColumns) {
|
|
32
|
+
offsets.push(cumulative);
|
|
33
|
+
cumulative += renderedColumnWidth(col.id, col.columnDef.width);
|
|
36
34
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
<div
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
{
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
>
|
|
97
|
-
<QuickSearchCell
|
|
98
|
-
{column}
|
|
99
|
-
customFilters={tableContext.remoteFilters}
|
|
100
|
-
/>
|
|
101
|
-
</div>
|
|
102
|
-
{/each}
|
|
103
|
-
{#each
|
|
104
|
-
<div
|
|
105
|
-
role="cell"
|
|
106
|
-
class="cell"
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
{
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
{
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
{/each}
|
|
145
|
-
|
|
146
|
-
{#if bottomSpacerHeight > 0}
|
|
147
|
-
<div
|
|
148
|
-
role="presentation"
|
|
149
|
-
class="virtual-spacer"
|
|
150
|
-
style="height: {bottomSpacerHeight}px;"
|
|
151
|
-
></div>
|
|
152
|
-
{/if}
|
|
153
|
-
</div>
|
|
154
|
-
|
|
35
|
+
return offsets;
|
|
36
|
+
});
|
|
37
|
+
const rightOffsets = $derived.by(() => {
|
|
38
|
+
void tableContext._columnRenderedWidths.size;
|
|
39
|
+
const offsets = new Array(rightColumns.length).fill(0);
|
|
40
|
+
let cumulative = 0;
|
|
41
|
+
for (let i = rightColumns.length - 1; i >= 0; i--) {
|
|
42
|
+
offsets[i] = cumulative;
|
|
43
|
+
cumulative += renderedColumnWidth(rightColumns[i].id, rightColumns[i].columnDef.width);
|
|
44
|
+
}
|
|
45
|
+
return offsets;
|
|
46
|
+
});
|
|
47
|
+
// Row virtualisation. When the current row count is above the
|
|
48
|
+
// `_virtualisation` threshold (100 rows by default), only rows in the
|
|
49
|
+
// viewport plus an overscan band are rendered. Two spacer rows (top
|
|
50
|
+
// and bottom) reserve the rest of the body height so the scrollbar
|
|
51
|
+
// matches the un-virtualised length.
|
|
52
|
+
const virtualisation = $derived(tableContext._virtualisation);
|
|
53
|
+
const visibleRows = $derived(virtualisation.visibleRows);
|
|
54
|
+
const topSpacerHeight = $derived(virtualisation.topSpacerHeight);
|
|
55
|
+
const bottomSpacerHeight = $derived(virtualisation.bottomSpacerHeight);
|
|
56
|
+
</script>
|
|
57
|
+
|
|
58
|
+
<div
|
|
59
|
+
role="rowgroup"
|
|
60
|
+
class="datatable-body"
|
|
61
|
+
{oncontextmenu}
|
|
62
|
+
>
|
|
63
|
+
{#if tableContext.allowQuickFiltering && tableContext.showQuickFiltering && showHighlightColumn}
|
|
64
|
+
<div
|
|
65
|
+
role="row"
|
|
66
|
+
class="datatable-row quick-filter-row"
|
|
67
|
+
>
|
|
68
|
+
{#if showHighlightColumn}
|
|
69
|
+
<div
|
|
70
|
+
role="cell"
|
|
71
|
+
class="cell highlight-dud pinned-left"
|
|
72
|
+
style="left: 0px"
|
|
73
|
+
aria-hidden="true"
|
|
74
|
+
>
|
|
75
|
+
|
|
76
|
+
</div>
|
|
77
|
+
{/if}
|
|
78
|
+
{#each leftColumns as column, index (column.id)}
|
|
79
|
+
<div
|
|
80
|
+
role="cell"
|
|
81
|
+
class="cell pinned-left"
|
|
82
|
+
style="left: {leftOffsets[index]}px"
|
|
83
|
+
>
|
|
84
|
+
<QuickSearchCell
|
|
85
|
+
{column}
|
|
86
|
+
customFilters={tableContext.remoteFilters}
|
|
87
|
+
/>
|
|
88
|
+
</div>
|
|
89
|
+
{/each}
|
|
90
|
+
{#each centreColumns as column (column.id)}
|
|
91
|
+
<div
|
|
92
|
+
role="cell"
|
|
93
|
+
class="cell"
|
|
94
|
+
>
|
|
95
|
+
<QuickSearchCell
|
|
96
|
+
{column}
|
|
97
|
+
customFilters={tableContext.remoteFilters}
|
|
98
|
+
/>
|
|
99
|
+
</div>
|
|
100
|
+
{/each}
|
|
101
|
+
{#each rightColumns as column, index (column.id)}
|
|
102
|
+
<div
|
|
103
|
+
role="cell"
|
|
104
|
+
class="cell pinned-right"
|
|
105
|
+
style="right: {rightOffsets[index]}px"
|
|
106
|
+
>
|
|
107
|
+
<QuickSearchCell
|
|
108
|
+
{column}
|
|
109
|
+
customFilters={tableContext.remoteFilters}
|
|
110
|
+
/>
|
|
111
|
+
</div>
|
|
112
|
+
{/each}
|
|
113
|
+
</div>
|
|
114
|
+
{/if}
|
|
115
|
+
|
|
116
|
+
{#if topSpacerHeight > 0}
|
|
117
|
+
<div
|
|
118
|
+
role="presentation"
|
|
119
|
+
class="virtual-spacer"
|
|
120
|
+
style="height: {topSpacerHeight}px;"
|
|
121
|
+
></div>
|
|
122
|
+
{/if}
|
|
123
|
+
|
|
124
|
+
{#each visibleRows as { row } (row.id)}
|
|
125
|
+
{@const originalIndex = row.visibleIndex}
|
|
126
|
+
<TableRow
|
|
127
|
+
{row}
|
|
128
|
+
odd={originalIndex % 2 == 1}
|
|
129
|
+
includeHighlight={showHighlightColumn}
|
|
130
|
+
/>
|
|
131
|
+
{/each}
|
|
132
|
+
|
|
133
|
+
{#if bottomSpacerHeight > 0}
|
|
134
|
+
<div
|
|
135
|
+
role="presentation"
|
|
136
|
+
class="virtual-spacer"
|
|
137
|
+
style="height: {bottomSpacerHeight}px;"
|
|
138
|
+
></div>
|
|
139
|
+
{/if}
|
|
140
|
+
</div>
|
|
141
|
+
|
|
155
142
|
<style>.cell {
|
|
156
143
|
display: block;
|
|
157
144
|
position: relative;
|
|
@@ -213,4 +200,4 @@
|
|
|
213
200
|
pointer-events: none;
|
|
214
201
|
--row-stripe-height: var(--height, 3rem);
|
|
215
202
|
background-image: repeating-linear-gradient(to bottom, #ffffff 0, #ffffff var(--row-stripe-height), #f4f7f9 var(--row-stripe-height), #f4f7f9 calc(2 * var(--row-stripe-height)));
|
|
216
|
-
}</style>
|
|
203
|
+
}</style>
|
|
@@ -1,43 +1,37 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
3
|
-
<script
|
|
4
|
-
lang="ts"
|
|
5
|
-
generics="T extends object, IdType extends Primitive"
|
|
6
|
-
>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
{
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
tableContext.onHighlightAll()?.catch(devCatch);
|
|
36
|
-
}}
|
|
37
|
-
/>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
|
+
<script
|
|
4
|
+
lang="ts"
|
|
5
|
+
generics="T extends object, IdType extends Primitive"
|
|
6
|
+
>import { devCatch } from "../../../Helpers/Helpers.svelte.js";
|
|
7
|
+
import { Colour } from "../../../scss/colours.js";
|
|
8
|
+
import { Size } from "../../../Types/Internal/Size.js";
|
|
9
|
+
import { getContext } from "svelte";
|
|
10
|
+
import Action from "../../Action.svelte";
|
|
11
|
+
import { TableContext } from "../Types/Context/TableContext.svelte.js";
|
|
12
|
+
const tableContext = getContext(TableContext.identifier);
|
|
13
|
+
const backgroundColour = $derived.by(() => {
|
|
14
|
+
return tableContext.sortedData.length > 0 && tableContext.allHighlighted ? Colour["$brand-primary"] : Colour["$ui-white"];
|
|
15
|
+
});
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<div class="highlight-header">
|
|
19
|
+
<div class="wrapper">
|
|
20
|
+
<Action
|
|
21
|
+
label="Highlight all rows"
|
|
22
|
+
{backgroundColour}
|
|
23
|
+
hoverBackgroundColour={Colour['$brand-dark']}
|
|
24
|
+
size={Size.FillWidth}
|
|
25
|
+
icon={{
|
|
26
|
+
name: 'nothing',
|
|
27
|
+
}}
|
|
28
|
+
onclick={() => {
|
|
29
|
+
tableContext.onHighlightAll()?.catch(devCatch);
|
|
30
|
+
}}
|
|
31
|
+
/>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
41
35
|
<style>div.wrapper {
|
|
42
36
|
position: absolute;
|
|
43
37
|
top: 0;
|
|
@@ -47,4 +41,4 @@
|
|
|
47
41
|
display: flex;
|
|
48
42
|
align-items: stretch;
|
|
49
43
|
justify-content: stretch;
|
|
50
|
-
}</style>
|
|
44
|
+
}</style>
|
|
@@ -1,32 +1,26 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
3
|
-
<script
|
|
4
|
-
lang="ts"
|
|
5
|
-
generics="T extends object, IdType extends Primitive"
|
|
6
|
-
>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
{checked}
|
|
25
|
-
disabled={tableContext.showSelectedOnly}
|
|
26
|
-
/>
|
|
27
|
-
</label>
|
|
28
|
-
</div>
|
|
29
|
-
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
|
+
<script
|
|
4
|
+
lang="ts"
|
|
5
|
+
generics="T extends object, IdType extends Primitive"
|
|
6
|
+
>import { getContext } from "svelte";
|
|
7
|
+
import { TableContext } from "../Types/Context/TableContext.svelte.js";
|
|
8
|
+
const tableContext = getContext(TableContext.identifier);
|
|
9
|
+
const checked = $derived(tableContext.dataRepo.data.length > 0 ? tableContext.allSelectedInCurrentPage : false);
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<div class="checkbox-cell">
|
|
13
|
+
<label aria-label="Select all rows on this page">
|
|
14
|
+
<input
|
|
15
|
+
aria-label="Select all rows on this page"
|
|
16
|
+
onchange={tableContext.selectAllInCurrentPage}
|
|
17
|
+
type="checkbox"
|
|
18
|
+
{checked}
|
|
19
|
+
disabled={tableContext.showSelectedOnly}
|
|
20
|
+
/>
|
|
21
|
+
</label>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
30
24
|
<style>input[type=checkbox] {
|
|
31
25
|
height: var(--checkbox-height);
|
|
32
26
|
padding: 1rem;
|
|
@@ -54,4 +48,4 @@ label {
|
|
|
54
48
|
|
|
55
49
|
label {
|
|
56
50
|
cursor: pointer;
|
|
57
|
-
}</style>
|
|
51
|
+
}</style>
|