@lavalogic/scoria 0.40.32 → 0.40.33
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 +28 -28
- package/dist/Components/AccordionGroupButton.svelte +60 -60
- package/dist/Components/Action.svelte +48 -48
- package/dist/Components/AlertModal.svelte +102 -102
- package/dist/Components/Base/ContextWrapper.svelte +45 -45
- package/dist/Components/Base/Pagination.svelte +135 -135
- package/dist/Components/Base/Snippets.svelte +25 -25
- package/dist/Components/BigRadioSet.svelte +34 -34
- package/dist/Components/Bubble.svelte +38 -38
- package/dist/Components/Button.svelte +83 -83
- package/dist/Components/Checkbox.svelte +71 -71
- package/dist/Components/CollapsibleCard.svelte +59 -59
- package/dist/Components/CollapsibleMenuGroup.svelte +43 -43
- package/dist/Components/ConditionBuilder/ConditionBuilder.svelte +101 -101
- package/dist/Components/Contexts/ContextMenu.svelte +76 -76
- package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -15
- package/dist/Components/Contexts/ContextMenuOption.svelte +38 -38
- package/dist/Components/Contexts/Toast.svelte +71 -71
- package/dist/Components/Contexts/ToastContainer.svelte +34 -34
- package/dist/Components/Contexts/Tooltip.svelte +32 -32
- package/dist/Components/DataMatrixIcon.svelte +37 -37
- package/dist/Components/DateInput.svelte +80 -80
- package/dist/Components/DatePicker.svelte +86 -86
- package/dist/Components/DesktopModal.svelte +65 -65
- package/dist/Components/Dial.svelte +35 -35
- package/dist/Components/DimensionInput.svelte +95 -95
- package/dist/Components/DragMenu/DragMenuHolder.svelte +53 -53
- package/dist/Components/DragMenu/DraggableCard.svelte +49 -49
- package/dist/Components/FileCard.svelte +18 -18
- package/dist/Components/FileUpload.svelte +115 -115
- package/dist/Components/GridInput.svelte +123 -123
- package/dist/Components/GridInputSet.svelte +21 -21
- package/dist/Components/HorizontalTabGroup.svelte +54 -54
- package/dist/Components/HorizontalTabGroupButton.svelte +32 -32
- package/dist/Components/Icon.svelte +68 -68
- package/dist/Components/InfoAlert.svelte +32 -32
- package/dist/Components/LoadingAnimation.svelte +228 -227
- package/dist/Components/LoadingModal.svelte +19 -19
- package/dist/Components/LoadingOverlay.svelte +20 -20
- package/dist/Components/Modal.svelte +127 -127
- package/dist/Components/MultiSelect.svelte +126 -126
- package/dist/Components/Nav/Nav.svelte +71 -71
- package/dist/Components/Nav/NavServiceMenuList.svelte +37 -37
- package/dist/Components/Nav/NavTab.svelte +46 -46
- package/dist/Components/Nav/ServiceMenuItem.svelte +62 -62
- package/dist/Components/Nav/ServicesNav.svelte +50 -50
- package/dist/Components/NumberInput.svelte +98 -98
- package/dist/Components/OptionCards.svelte +58 -58
- package/dist/Components/PageHeading.svelte +21 -21
- package/dist/Components/PasswordInput.svelte +61 -61
- package/dist/Components/PopoverButton.svelte +53 -53
- package/dist/Components/Portal.svelte +7 -7
- package/dist/Components/ProgressBubble.svelte +42 -42
- package/dist/Components/QuerySelect.svelte +102 -102
- package/dist/Components/ResourceCalendar/ResourceCalendar.svelte +241 -241
- package/dist/Components/SidebarPanel.svelte +32 -32
- package/dist/Components/SingleSelect.svelte +122 -122
- package/dist/Components/StepButton.svelte +48 -48
- package/dist/Components/StepForm.svelte +58 -58
- package/dist/Components/Switch.svelte +43 -43
- package/dist/Components/Table/ARCHITECTURE.md +298 -298
- package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +30 -30
- package/dist/Components/Table/Body/Rows/ColumnList.svelte +24 -24
- package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +165 -165
- package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +13 -13
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +120 -120
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +81 -81
- package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +92 -92
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +110 -110
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +54 -54
- package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +35 -35
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +64 -64
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +82 -82
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +88 -88
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +90 -90
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +96 -96
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +71 -71
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +124 -124
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +91 -91
- package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +88 -88
- package/dist/Components/Table/Body/Rows/TableRow.svelte +127 -127
- package/dist/Components/Table/Body/TableBody.svelte +92 -92
- package/dist/Components/Table/Headers/HighlightAllHeader.svelte +25 -25
- package/dist/Components/Table/Headers/SelectAllHeader.svelte +20 -20
- package/dist/Components/Table/Headers/TableHead.svelte +175 -175
- package/dist/Components/Table/Misc/ColumnPanel.svelte +32 -32
- package/dist/Components/Table/Misc/ColumnPanelModal.svelte +29 -29
- package/dist/Components/Table/Misc/FilterInput.svelte +326 -326
- package/dist/Components/Table/Misc/FilterPanel.svelte +79 -79
- package/dist/Components/Table/Misc/FilterPanelModal.svelte +21 -21
- package/dist/Components/Table/Misc/ShareViewModal.svelte +118 -118
- package/dist/Components/Table/Misc/SidePanel.svelte +24 -24
- package/dist/Components/Table/Misc/TableConfigurationModal.svelte +318 -318
- package/dist/Components/Table/Misc/TableFooter.svelte +201 -201
- package/dist/Components/Table/Misc/TableHorizontalBar.svelte +112 -112
- package/dist/Components/Table/Misc/TableSidebar.svelte +116 -116
- package/dist/Components/Table/Misc/TableViewDropdown.svelte +25 -25
- package/dist/Components/Table/Misc/ToolboxPanel.svelte +60 -60
- package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +63 -63
- package/dist/Components/Table/Misc/UpdateViewOptionsModal.svelte +101 -101
- package/dist/Components/Table/NestedTable.svelte +29 -29
- package/dist/Components/Table/Table.svelte +140 -140
- package/dist/Components/Test/TestContextConsumer.svelte +8 -8
- package/dist/Components/TextArea.svelte +92 -90
- package/dist/Components/TextInput.svelte +128 -117
- package/dist/Components/ThreeStateRadio.svelte +101 -101
- package/dist/Components/Touch/BoolCard.svelte +27 -27
- package/dist/Components/Touch/DateModal.svelte +98 -98
- package/dist/Components/Touch/EditCard.svelte +44 -44
- package/dist/Components/Touch/InfoCard.svelte +25 -25
- package/dist/Components/Touch/InfoTextCard.svelte +22 -22
- package/dist/Components/Touch/ModalExplanation.svelte +13 -13
- package/dist/Components/Touch/NumberKeyboard.svelte +81 -81
- package/dist/Components/Touch/NumberModal.svelte +49 -49
- package/dist/Components/Touch/PlusMinusCard.svelte +40 -40
- package/dist/Components/Touch/SelectModal.svelte +86 -86
- package/dist/Components/Touch/SummaryCard.svelte +74 -74
- package/dist/Components/Touch/TextAreaModal.svelte +53 -53
- package/dist/Components/Touch/TextModal.svelte +56 -56
- package/dist/Components/Touch/TouchCard.svelte +28 -28
- package/dist/Components/Touch/TouchModal.svelte +141 -141
- package/dist/Components/Touch/UtilityButton.svelte +63 -63
- package/dist/Components/VerticalTabGroup.svelte +38 -38
- package/dist/Components/VerticalTabGroupButton.svelte +46 -46
- package/dist/Helpers/Datamatrix.d.ts +19 -19
- package/dist/Helpers/Datamatrix.js +291 -291
- package/dist/Types/Examples/ExampleModal.svelte +27 -27
- package/dist/paraglide/README.md +1 -1
- package/dist/scss/_basics.scss +12 -12
- package/dist/scss/_colours.scss +140 -140
- 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,8 +1,8 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
3
|
-
<script
|
|
4
|
-
module
|
|
5
|
-
lang="ts"
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
|
+
<script
|
|
4
|
+
module
|
|
5
|
+
lang="ts"
|
|
6
6
|
>import Icon from "../../Icon.svelte";
|
|
7
7
|
import { m as i18n } from "../../../paraglide/messages.js";
|
|
8
8
|
import { TooltipContext } from "../../../Contexts/TooltipContext.svelte.js";
|
|
@@ -50,11 +50,11 @@ function debouncedSortToggle(columnRef, handler) {
|
|
|
50
50
|
}
|
|
51
51
|
}, SORT_DEBOUNCE_MS);
|
|
52
52
|
}
|
|
53
|
-
</script>
|
|
54
|
-
|
|
55
|
-
<script
|
|
56
|
-
lang="ts"
|
|
57
|
-
generics="T extends object, IdType extends Primitive"
|
|
53
|
+
</script>
|
|
54
|
+
|
|
55
|
+
<script
|
|
56
|
+
lang="ts"
|
|
57
|
+
generics="T extends object, IdType extends Primitive"
|
|
58
58
|
>const { oncontextmenu } = $props();
|
|
59
59
|
const tableContext = getContext(TableContext.identifier);
|
|
60
60
|
const tooltipContext = getContext(TooltipContext.identifier);
|
|
@@ -195,170 +195,170 @@ function setDragTarget(def) {
|
|
|
195
195
|
tableContext.dragTarget = def;
|
|
196
196
|
}
|
|
197
197
|
const currentDropTargetId = $derived(currentDropTarget?.closest("[role=\"columnheader\"]")?.id);
|
|
198
|
-
</script>
|
|
199
|
-
|
|
200
|
-
<div
|
|
201
|
-
role="rowgroup"
|
|
202
|
-
class="datatable-header"
|
|
203
|
-
{oncontextmenu}
|
|
204
|
-
>
|
|
205
|
-
<div
|
|
206
|
-
role="row"
|
|
207
|
-
class="datatable-row header-row"
|
|
208
|
-
>
|
|
209
|
-
{#if showHighlightColumn}
|
|
210
|
-
<div
|
|
211
|
-
role="columnheader"
|
|
212
|
-
id="highlight-header"
|
|
213
|
-
class="cell header highlight-column pinned-left"
|
|
214
|
-
style="left: 0px"
|
|
215
|
-
>
|
|
216
|
-
<div class="th">
|
|
217
|
-
<HighlightAllHeader />
|
|
218
|
-
</div>
|
|
219
|
-
</div>
|
|
220
|
-
{/if}
|
|
221
|
-
|
|
222
|
-
{#each leftHeaders as header, index (header.id)}
|
|
223
|
-
<!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
|
|
224
|
-
{@render headerCell(header, 'left', leftOffsets[index])}
|
|
225
|
-
{/each}
|
|
226
|
-
{#each centreHeaders as header (header.id)}
|
|
227
|
-
<!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
|
|
228
|
-
{@render headerCell(header, undefined, 0)}
|
|
229
|
-
{/each}
|
|
230
|
-
{#each rightHeaders as header, index (header.id)}
|
|
231
|
-
<!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
|
|
232
|
-
{@render headerCell(header, 'right', rightOffsets[index])}
|
|
233
|
-
{/each}
|
|
234
|
-
</div>
|
|
235
|
-
</div>
|
|
236
|
-
|
|
237
|
-
{#snippet headerCell(header: AnyHeader<T>, side: 'left' | 'right' | undefined, offset: number)}
|
|
238
|
-
{@const headerId = `${tableContext.tableName}-header-${header.id}`}
|
|
239
|
-
<!-- svelte-ignore a11y_interactive_supports_focus -->
|
|
240
|
-
<div
|
|
241
|
-
role="columnheader"
|
|
242
|
-
id={headerId}
|
|
243
|
-
{@attach (node: HTMLElement) => observeHeader(node, header.column.id)}
|
|
244
|
-
draggable={tableContext.allowColumnReordering}
|
|
245
|
-
class="cell header"
|
|
246
|
-
class:pinned-left={side === 'left'}
|
|
247
|
-
class:pinned-right={side === 'right'}
|
|
248
|
-
class:action-column={!header.column.getCanSort()}
|
|
249
|
-
class:targeted={currentDropTargetId === headerId}
|
|
250
|
-
style:left={side === 'left' ? `${offset}px` : null}
|
|
251
|
-
style:right={side === 'right' ? `${offset}px` : null}
|
|
252
|
-
aria-sort={header.column.getCanSort() ? ariaSort(header.column.getIsSorted()) : undefined}
|
|
253
|
-
ondragstart={() => {
|
|
254
|
-
setDragTarget(header.column.columnDef);
|
|
255
|
-
}}
|
|
256
|
-
ondragover={(e) => {
|
|
257
|
-
e.preventDefault();
|
|
258
|
-
if (tableContext.dragTarget?.id !== header.id) {
|
|
259
|
-
setCurrentDropTarget(e.target);
|
|
260
|
-
} else {
|
|
261
|
-
setCurrentDropTarget(null);
|
|
262
|
-
}
|
|
263
|
-
}}
|
|
264
|
-
ondrop={onDrop}
|
|
265
|
-
>
|
|
266
|
-
{#if !header.isPlaceholder}
|
|
267
|
-
<div class="margin-inline-end">
|
|
268
|
-
{#if header.column.getCanSort()}
|
|
269
|
-
<button
|
|
270
|
-
onmouseenter={(e) => {
|
|
271
|
-
showtooltip(e, header.column.columnDef);
|
|
272
|
-
}}
|
|
273
|
-
onmouseleave={() => {
|
|
274
|
-
hideTooltip(header.column.columnDef);
|
|
275
|
-
}}
|
|
276
|
-
class="contents"
|
|
277
|
-
onclick={() => debouncedSortToggle(header.column, header.column.getToggleSortingHandler())}
|
|
278
|
-
>
|
|
279
|
-
<div class="th cursor-pointer select-none">
|
|
280
|
-
<div class="header-text-wrapper">
|
|
281
|
-
{#if header.column.columnDef instanceof RowSelectionDef}
|
|
282
|
-
<SelectAllHeader />
|
|
283
|
-
{:else}
|
|
284
|
-
{#if header.column.columnDef instanceof ExpandDef}
|
|
285
|
-
<Icon
|
|
286
|
-
name={header.column.columnDef.headerIcon}
|
|
287
|
-
colour={Colour['$font-primary']}
|
|
288
|
-
/>
|
|
289
|
-
{:else if typeof header.column.columnDef.header == 'string'}
|
|
290
|
-
{header.column.columnDef.header}
|
|
291
|
-
{:else}
|
|
292
|
-
{@render header.column.columnDef.header()}
|
|
293
|
-
{/if}
|
|
294
|
-
<Icon
|
|
295
|
-
variant={Variant.HeaderIcon}
|
|
296
|
-
size={Size.Medium}
|
|
297
|
-
name={iconNames[header.column.getIsSorted()]}
|
|
298
|
-
/>
|
|
299
|
-
{/if}
|
|
300
|
-
</div>
|
|
301
|
-
</div>
|
|
302
|
-
</button>
|
|
303
|
-
{:else}
|
|
304
|
-
{@const isRowSelect = header.column.columnDef instanceof RowSelectionDef}
|
|
305
|
-
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
306
|
-
<div
|
|
307
|
-
onmouseenter={(e) => {
|
|
308
|
-
showtooltip(e, header.column.columnDef);
|
|
309
|
-
}}
|
|
310
|
-
onmouseleave={() => {
|
|
311
|
-
hideTooltip(header.column.columnDef);
|
|
312
|
-
}}
|
|
313
|
-
class="contents"
|
|
314
|
-
>
|
|
315
|
-
<div
|
|
316
|
-
class="th"
|
|
317
|
-
class:nopadding={isRowSelect}
|
|
318
|
-
>
|
|
319
|
-
<div class="header-text-wrapper no-sort cursor-pointer select-none">
|
|
320
|
-
{#if isRowSelect}
|
|
321
|
-
<SelectAllHeader />
|
|
322
|
-
{:else if header.column.columnDef instanceof ExpandDef}
|
|
323
|
-
<Icon
|
|
324
|
-
name={header.column.columnDef.headerIcon}
|
|
325
|
-
colour={Colour['$font-primary']}
|
|
326
|
-
/>
|
|
327
|
-
{:else if typeof header.column.columnDef.header == 'string'}
|
|
328
|
-
{header.column.columnDef.header}
|
|
329
|
-
{:else}
|
|
330
|
-
{@render header.column.columnDef.header()}
|
|
331
|
-
{/if}
|
|
332
|
-
</div>
|
|
333
|
-
</div>
|
|
334
|
-
</div>
|
|
335
|
-
{/if}
|
|
336
|
-
|
|
337
|
-
{#if tableContext.enableResize}
|
|
338
|
-
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
339
|
-
<div
|
|
340
|
-
onmousedown={(e) => {
|
|
341
|
-
e.preventDefault();
|
|
342
|
-
e.stopImmediatePropagation();
|
|
343
|
-
const handler = header.getResizeHandler();
|
|
344
|
-
handler(e);
|
|
345
|
-
}}
|
|
346
|
-
ondblclick={() => {
|
|
347
|
-
// Reset the column to its factory-default width and
|
|
348
|
-
// clear the user-resized flag so the grid track
|
|
349
|
-
// returns to its original `minmax(W, 1fr)` or
|
|
350
|
-
// fixed-`${W}px` branch.
|
|
351
|
-
header.column.columnDef.resetWidth();
|
|
352
|
-
}}
|
|
353
|
-
class="resizer right"
|
|
354
|
-
class:isResizing={header.column.getIsResizing()}
|
|
355
|
-
></div>
|
|
356
|
-
{/if}
|
|
357
|
-
</div>
|
|
358
|
-
{/if}
|
|
359
|
-
</div>
|
|
360
|
-
{/snippet}
|
|
361
|
-
|
|
198
|
+
</script>
|
|
199
|
+
|
|
200
|
+
<div
|
|
201
|
+
role="rowgroup"
|
|
202
|
+
class="datatable-header"
|
|
203
|
+
{oncontextmenu}
|
|
204
|
+
>
|
|
205
|
+
<div
|
|
206
|
+
role="row"
|
|
207
|
+
class="datatable-row header-row"
|
|
208
|
+
>
|
|
209
|
+
{#if showHighlightColumn}
|
|
210
|
+
<div
|
|
211
|
+
role="columnheader"
|
|
212
|
+
id="highlight-header"
|
|
213
|
+
class="cell header highlight-column pinned-left"
|
|
214
|
+
style="left: 0px"
|
|
215
|
+
>
|
|
216
|
+
<div class="th">
|
|
217
|
+
<HighlightAllHeader />
|
|
218
|
+
</div>
|
|
219
|
+
</div>
|
|
220
|
+
{/if}
|
|
221
|
+
|
|
222
|
+
{#each leftHeaders as header, index (header.id)}
|
|
223
|
+
<!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
|
|
224
|
+
{@render headerCell(header, 'left', leftOffsets[index])}
|
|
225
|
+
{/each}
|
|
226
|
+
{#each centreHeaders as header (header.id)}
|
|
227
|
+
<!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
|
|
228
|
+
{@render headerCell(header, undefined, 0)}
|
|
229
|
+
{/each}
|
|
230
|
+
{#each rightHeaders as header, index (header.id)}
|
|
231
|
+
<!-- eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -->
|
|
232
|
+
{@render headerCell(header, 'right', rightOffsets[index])}
|
|
233
|
+
{/each}
|
|
234
|
+
</div>
|
|
235
|
+
</div>
|
|
236
|
+
|
|
237
|
+
{#snippet headerCell(header: AnyHeader<T>, side: 'left' | 'right' | undefined, offset: number)}
|
|
238
|
+
{@const headerId = `${tableContext.tableName}-header-${header.id}`}
|
|
239
|
+
<!-- svelte-ignore a11y_interactive_supports_focus -->
|
|
240
|
+
<div
|
|
241
|
+
role="columnheader"
|
|
242
|
+
id={headerId}
|
|
243
|
+
{@attach (node: HTMLElement) => observeHeader(node, header.column.id)}
|
|
244
|
+
draggable={tableContext.allowColumnReordering}
|
|
245
|
+
class="cell header"
|
|
246
|
+
class:pinned-left={side === 'left'}
|
|
247
|
+
class:pinned-right={side === 'right'}
|
|
248
|
+
class:action-column={!header.column.getCanSort()}
|
|
249
|
+
class:targeted={currentDropTargetId === headerId}
|
|
250
|
+
style:left={side === 'left' ? `${offset}px` : null}
|
|
251
|
+
style:right={side === 'right' ? `${offset}px` : null}
|
|
252
|
+
aria-sort={header.column.getCanSort() ? ariaSort(header.column.getIsSorted()) : undefined}
|
|
253
|
+
ondragstart={() => {
|
|
254
|
+
setDragTarget(header.column.columnDef);
|
|
255
|
+
}}
|
|
256
|
+
ondragover={(e) => {
|
|
257
|
+
e.preventDefault();
|
|
258
|
+
if (tableContext.dragTarget?.id !== header.id) {
|
|
259
|
+
setCurrentDropTarget(e.target);
|
|
260
|
+
} else {
|
|
261
|
+
setCurrentDropTarget(null);
|
|
262
|
+
}
|
|
263
|
+
}}
|
|
264
|
+
ondrop={onDrop}
|
|
265
|
+
>
|
|
266
|
+
{#if !header.isPlaceholder}
|
|
267
|
+
<div class="margin-inline-end">
|
|
268
|
+
{#if header.column.getCanSort()}
|
|
269
|
+
<button
|
|
270
|
+
onmouseenter={(e) => {
|
|
271
|
+
showtooltip(e, header.column.columnDef);
|
|
272
|
+
}}
|
|
273
|
+
onmouseleave={() => {
|
|
274
|
+
hideTooltip(header.column.columnDef);
|
|
275
|
+
}}
|
|
276
|
+
class="contents"
|
|
277
|
+
onclick={() => debouncedSortToggle(header.column, header.column.getToggleSortingHandler())}
|
|
278
|
+
>
|
|
279
|
+
<div class="th cursor-pointer select-none">
|
|
280
|
+
<div class="header-text-wrapper">
|
|
281
|
+
{#if header.column.columnDef instanceof RowSelectionDef}
|
|
282
|
+
<SelectAllHeader />
|
|
283
|
+
{:else}
|
|
284
|
+
{#if header.column.columnDef instanceof ExpandDef}
|
|
285
|
+
<Icon
|
|
286
|
+
name={header.column.columnDef.headerIcon}
|
|
287
|
+
colour={Colour['$font-primary']}
|
|
288
|
+
/>
|
|
289
|
+
{:else if typeof header.column.columnDef.header == 'string'}
|
|
290
|
+
{header.column.columnDef.header}
|
|
291
|
+
{:else}
|
|
292
|
+
{@render header.column.columnDef.header()}
|
|
293
|
+
{/if}
|
|
294
|
+
<Icon
|
|
295
|
+
variant={Variant.HeaderIcon}
|
|
296
|
+
size={Size.Medium}
|
|
297
|
+
name={iconNames[header.column.getIsSorted()]}
|
|
298
|
+
/>
|
|
299
|
+
{/if}
|
|
300
|
+
</div>
|
|
301
|
+
</div>
|
|
302
|
+
</button>
|
|
303
|
+
{:else}
|
|
304
|
+
{@const isRowSelect = header.column.columnDef instanceof RowSelectionDef}
|
|
305
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
306
|
+
<div
|
|
307
|
+
onmouseenter={(e) => {
|
|
308
|
+
showtooltip(e, header.column.columnDef);
|
|
309
|
+
}}
|
|
310
|
+
onmouseleave={() => {
|
|
311
|
+
hideTooltip(header.column.columnDef);
|
|
312
|
+
}}
|
|
313
|
+
class="contents"
|
|
314
|
+
>
|
|
315
|
+
<div
|
|
316
|
+
class="th"
|
|
317
|
+
class:nopadding={isRowSelect}
|
|
318
|
+
>
|
|
319
|
+
<div class="header-text-wrapper no-sort cursor-pointer select-none">
|
|
320
|
+
{#if isRowSelect}
|
|
321
|
+
<SelectAllHeader />
|
|
322
|
+
{:else if header.column.columnDef instanceof ExpandDef}
|
|
323
|
+
<Icon
|
|
324
|
+
name={header.column.columnDef.headerIcon}
|
|
325
|
+
colour={Colour['$font-primary']}
|
|
326
|
+
/>
|
|
327
|
+
{:else if typeof header.column.columnDef.header == 'string'}
|
|
328
|
+
{header.column.columnDef.header}
|
|
329
|
+
{:else}
|
|
330
|
+
{@render header.column.columnDef.header()}
|
|
331
|
+
{/if}
|
|
332
|
+
</div>
|
|
333
|
+
</div>
|
|
334
|
+
</div>
|
|
335
|
+
{/if}
|
|
336
|
+
|
|
337
|
+
{#if tableContext.enableResize}
|
|
338
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
339
|
+
<div
|
|
340
|
+
onmousedown={(e) => {
|
|
341
|
+
e.preventDefault();
|
|
342
|
+
e.stopImmediatePropagation();
|
|
343
|
+
const handler = header.getResizeHandler();
|
|
344
|
+
handler(e);
|
|
345
|
+
}}
|
|
346
|
+
ondblclick={() => {
|
|
347
|
+
// Reset the column to its factory-default width and
|
|
348
|
+
// clear the user-resized flag so the grid track
|
|
349
|
+
// returns to its original `minmax(W, 1fr)` or
|
|
350
|
+
// fixed-`${W}px` branch.
|
|
351
|
+
header.column.columnDef.resetWidth();
|
|
352
|
+
}}
|
|
353
|
+
class="resizer right"
|
|
354
|
+
class:isResizing={header.column.getIsResizing()}
|
|
355
|
+
></div>
|
|
356
|
+
{/if}
|
|
357
|
+
</div>
|
|
358
|
+
{/if}
|
|
359
|
+
</div>
|
|
360
|
+
{/snippet}
|
|
361
|
+
|
|
362
362
|
<style>.cell.header {
|
|
363
363
|
position: relative;
|
|
364
364
|
min-width: 0;
|
|
@@ -509,4 +509,4 @@ div.th::after {
|
|
|
509
509
|
width: 20px;
|
|
510
510
|
overflow: hidden;
|
|
511
511
|
border-inline-end: solid 1px #cbd4da;
|
|
512
|
-
}</style>
|
|
512
|
+
}</style>
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
3
|
<script lang="ts">import { m as i18n } from "../../../paraglide/messages.js";
|
|
4
4
|
import ColumnList from "../Body/Rows/ColumnList.svelte";
|
|
5
5
|
import TextInput from "../../TextInput.svelte";
|
|
6
6
|
import { Size } from "../../../Types/Internal/Size.js";
|
|
7
7
|
import TableViewDropdown from "./TableViewDropdown.svelte";
|
|
8
8
|
let searchValue = $state("");
|
|
9
|
-
</script>
|
|
10
|
-
|
|
11
|
-
<section class="side-panel-section">
|
|
12
|
-
<header class="side-panel-header">
|
|
13
|
-
<h2>{i18n['scoria.action.modify_columns']()}</h2>
|
|
14
|
-
</header>
|
|
15
|
-
|
|
16
|
-
<div class="toolbar">
|
|
17
|
-
<!-- Quick-switch dropdown for saved column layouts. Sits above the
|
|
18
|
-
search box; saving a layout is done from the Table
|
|
19
|
-
Configuration modal's "Save a new Layout" tab. -->
|
|
20
|
-
<TableViewDropdown kind="layout" />
|
|
21
|
-
<TextInput
|
|
22
|
-
bind:value={searchValue}
|
|
23
|
-
leftIcon={{ name: 'search', size: Size.Medium }}
|
|
24
|
-
placeholder={i18n['scoria.label.search_columns']()}
|
|
25
|
-
onkeydown={() => {
|
|
26
|
-
// Override the TextInput default `passthrough` keydown so the
|
|
27
|
-
// input does not blur on every alphanumeric keystroke (which
|
|
28
|
-
// is the barcode-scanner default; see `Helpers.svelte.ts`).
|
|
29
|
-
}}
|
|
30
|
-
/>
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
<div class="column-list-wrapper">
|
|
34
|
-
<ColumnList {searchValue} />
|
|
35
|
-
</div>
|
|
36
|
-
</section>
|
|
37
|
-
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<section class="side-panel-section">
|
|
12
|
+
<header class="side-panel-header">
|
|
13
|
+
<h2>{i18n['scoria.action.modify_columns']()}</h2>
|
|
14
|
+
</header>
|
|
15
|
+
|
|
16
|
+
<div class="toolbar">
|
|
17
|
+
<!-- Quick-switch dropdown for saved column layouts. Sits above the
|
|
18
|
+
search box; saving a layout is done from the Table
|
|
19
|
+
Configuration modal's "Save a new Layout" tab. -->
|
|
20
|
+
<TableViewDropdown kind="layout" />
|
|
21
|
+
<TextInput
|
|
22
|
+
bind:value={searchValue}
|
|
23
|
+
leftIcon={{ name: 'search', size: Size.Medium }}
|
|
24
|
+
placeholder={i18n['scoria.label.search_columns']()}
|
|
25
|
+
onkeydown={() => {
|
|
26
|
+
// Override the TextInput default `passthrough` keydown so the
|
|
27
|
+
// input does not blur on every alphanumeric keystroke (which
|
|
28
|
+
// is the barcode-scanner default; see `Helpers.svelte.ts`).
|
|
29
|
+
}}
|
|
30
|
+
/>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<div class="column-list-wrapper">
|
|
34
|
+
<ColumnList {searchValue} />
|
|
35
|
+
</div>
|
|
36
|
+
</section>
|
|
37
|
+
|
|
38
38
|
<style>.side-panel-section {
|
|
39
39
|
display: flex;
|
|
40
40
|
flex-flow: column nowrap;
|
|
@@ -117,4 +117,4 @@ let searchValue = $state("");
|
|
|
117
117
|
the toolbar above and the footer below). */
|
|
118
118
|
padding: 0 1.25rem;
|
|
119
119
|
box-sizing: border-box;
|
|
120
|
-
}</style>
|
|
120
|
+
}</style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
3
|
<script lang="ts">import { m as i18n } from "../../../paraglide/messages.js";
|
|
4
4
|
import DesktopModal from "../../DesktopModal.svelte";
|
|
5
5
|
import ColumnList from "../Body/Rows/ColumnList.svelte";
|
|
@@ -7,32 +7,32 @@ import TextInput from "../../TextInput.svelte";
|
|
|
7
7
|
import { Size } from "../../../Types/Internal/Size.js";
|
|
8
8
|
const { onclose } = $props();
|
|
9
9
|
let searchValue = $state("");
|
|
10
|
-
</script>
|
|
11
|
-
|
|
12
|
-
<DesktopModal
|
|
13
|
-
headerLabel={i18n['scoria.action.modify_columns']()}
|
|
14
|
-
onclose={() => onclose?.()}
|
|
15
|
-
buttons={[{ label: i18n['scoria.action.close'](), callback: () => onclose?.() }]}
|
|
16
|
-
>
|
|
17
|
-
<div class="flex">
|
|
18
|
-
<div class="column-panel top">
|
|
19
|
-
<TextInput
|
|
20
|
-
bind:value={searchValue}
|
|
21
|
-
leftIcon={{ name: 'search', size: Size.Medium }}
|
|
22
|
-
placeholder={i18n['scoria.label.search_columns']()}
|
|
23
|
-
onkeydown={() => {
|
|
24
|
-
// Override the TextInput default `passthrough` keydown so
|
|
25
|
-
// the input does not blur on every alphanumeric keystroke
|
|
26
|
-
// (the barcode-scanner default; see `Helpers.svelte.ts`).
|
|
27
|
-
}}
|
|
28
|
-
/>
|
|
29
|
-
</div>
|
|
30
|
-
<div class="scrollable">
|
|
31
|
-
<ColumnList {searchValue} />
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
34
|
-
</DesktopModal>
|
|
35
|
-
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<DesktopModal
|
|
13
|
+
headerLabel={i18n['scoria.action.modify_columns']()}
|
|
14
|
+
onclose={() => onclose?.()}
|
|
15
|
+
buttons={[{ label: i18n['scoria.action.close'](), callback: () => onclose?.() }]}
|
|
16
|
+
>
|
|
17
|
+
<div class="flex">
|
|
18
|
+
<div class="column-panel top">
|
|
19
|
+
<TextInput
|
|
20
|
+
bind:value={searchValue}
|
|
21
|
+
leftIcon={{ name: 'search', size: Size.Medium }}
|
|
22
|
+
placeholder={i18n['scoria.label.search_columns']()}
|
|
23
|
+
onkeydown={() => {
|
|
24
|
+
// Override the TextInput default `passthrough` keydown so
|
|
25
|
+
// the input does not blur on every alphanumeric keystroke
|
|
26
|
+
// (the barcode-scanner default; see `Helpers.svelte.ts`).
|
|
27
|
+
}}
|
|
28
|
+
/>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="scrollable">
|
|
31
|
+
<ColumnList {searchValue} />
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</DesktopModal>
|
|
35
|
+
|
|
36
36
|
<style>.flex {
|
|
37
37
|
display: flex;
|
|
38
38
|
flex-flow: column nowrap;
|
|
@@ -57,4 +57,4 @@ let searchValue = $state("");
|
|
|
57
57
|
row-gap: 0.5rem;
|
|
58
58
|
padding: 0.5rem;
|
|
59
59
|
flex-basis: min-content;
|
|
60
|
-
}</style>
|
|
60
|
+
}</style>
|