@lavalogic/scoria 0.34.0 → 0.35.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/README.md +58 -58
- package/dist/Components/AccordionGroup.svelte +42 -42
- package/dist/Components/AccordionGroupButton.svelte +99 -99
- package/dist/Components/Action.svelte +138 -138
- package/dist/Components/AlertModal.svelte +125 -125
- package/dist/Components/Base/ContextWrapper.svelte +50 -50
- package/dist/Components/Base/Pagination.svelte +190 -190
- package/dist/Components/Base/Snippets.svelte +29 -29
- package/dist/Components/BigRadioSet.svelte +29 -29
- package/dist/Components/Bubble.svelte +77 -77
- package/dist/Components/Button.svelte +197 -197
- package/dist/Components/Checkbox.svelte +68 -68
- package/dist/Components/CollapsibleCard.svelte +70 -70
- package/dist/Components/Contexts/ContextMenu.svelte +157 -157
- package/dist/Components/Contexts/ContextMenuDivider.svelte +11 -11
- package/dist/Components/Contexts/ContextMenuOption.svelte +52 -52
- package/dist/Components/Contexts/Toast.svelte +61 -61
- package/dist/Components/Contexts/ToastContainer.svelte +46 -46
- package/dist/Components/Contexts/Tooltip.svelte +26 -26
- package/dist/Components/DataMatrixIcon.svelte +41 -41
- package/dist/Components/DateInput.svelte +109 -109
- package/dist/Components/DatePicker.svelte +312 -312
- package/dist/Components/DesktopModal.svelte +106 -106
- package/dist/Components/Dial.svelte +151 -151
- package/dist/Components/DimensionInput.svelte +184 -184
- package/dist/Components/DragMenu/DragMenuHolder.svelte +106 -106
- package/dist/Components/DragMenu/DraggableCard.svelte +41 -41
- package/dist/Components/FileCard.svelte +20 -20
- package/dist/Components/FileUpload.svelte +196 -196
- package/dist/Components/GridInput.svelte +190 -190
- package/dist/Components/GridInputSet.svelte +22 -22
- package/dist/Components/HorizontalTabGroup.svelte +78 -78
- package/dist/Components/HorizontalTabGroupButton.svelte +96 -96
- package/dist/Components/Icon.svelte +97 -97
- package/dist/Components/Icons.js +357 -357
- package/dist/Components/LoadingAnimation.svelte +32 -32
- package/dist/Components/LoadingModal.svelte +47 -47
- package/dist/Components/LoadingOverlay.svelte +27 -27
- package/dist/Components/Modal.svelte +251 -251
- package/dist/Components/MultiSelect.svelte +197 -197
- package/dist/Components/Nav/Nav.svelte +97 -97
- package/dist/Components/Nav/NavServiceMenuList.svelte +34 -34
- package/dist/Components/Nav/NavTab.svelte +91 -91
- package/dist/Components/Nav/ServiceMenuItem.svelte +91 -91
- package/dist/Components/Nav/ServicesNav.svelte +53 -53
- package/dist/Components/NumberInput.svelte +144 -144
- package/dist/Components/PageHeading.svelte +36 -36
- package/dist/Components/PasswordInput.svelte +73 -73
- package/dist/Components/Portal.svelte +25 -25
- package/dist/Components/ProgressBubble.svelte +80 -80
- package/dist/Components/QuerySelect.svelte +411 -411
- package/dist/Components/SingleSelect.svelte +261 -261
- package/dist/Components/StepButton.svelte +120 -120
- package/dist/Components/StepForm.svelte +108 -108
- package/dist/Components/Switch.svelte +36 -36
- package/dist/Components/Table/Body/QuickSearchCell.svelte +632 -632
- package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +30 -30
- package/dist/Components/Table/Body/Rows/ColumnList.svelte +56 -56
- package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +179 -179
- package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +49 -49
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +180 -180
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +102 -102
- package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +119 -119
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +114 -114
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +96 -96
- package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +72 -72
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +131 -131
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +144 -144
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +238 -238
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +358 -358
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +338 -338
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +183 -183
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +309 -309
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +369 -369
- package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +170 -170
- package/dist/Components/Table/Body/Rows/TableRow.svelte +259 -259
- package/dist/Components/Table/Body/TableBody.svelte +67 -67
- package/dist/Components/Table/Headers/HighlightAllHeader.svelte +39 -39
- package/dist/Components/Table/Headers/SelectAllHeader.svelte +28 -28
- package/dist/Components/Table/Headers/TableHead.svelte +260 -260
- package/dist/Components/Table/Misc/ColumnPanel.svelte +78 -78
- package/dist/Components/Table/Misc/ColumnPanelModal.svelte +99 -99
- package/dist/Components/Table/Misc/FilterInput.svelte +556 -556
- package/dist/Components/Table/Misc/FilterPanel.svelte +46 -46
- package/dist/Components/Table/Misc/FilterPanelModal.svelte +67 -67
- package/dist/Components/Table/Misc/SidePanel.svelte +32 -32
- package/dist/Components/Table/Misc/TableFooter.svelte +304 -304
- package/dist/Components/Table/Misc/TableHorizontalBar.svelte +156 -156
- package/dist/Components/Table/Misc/TableSidebar.svelte +176 -176
- package/dist/Components/Table/Misc/ToolboxPanel.svelte +77 -77
- package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +91 -91
- package/dist/Components/Table/NestedTable.svelte +84 -84
- package/dist/Components/Table/Table.svelte +492 -492
- package/dist/Components/Test/TestContextConsumer.svelte +13 -13
- package/dist/Components/TextArea.svelte +108 -108
- package/dist/Components/TextInput.svelte +147 -147
- package/dist/Components/ThreeStateRadio.svelte +124 -124
- package/dist/Components/Touch/BoolCard.svelte +52 -52
- package/dist/Components/Touch/DateModal.svelte +217 -217
- package/dist/Components/Touch/EditCard.svelte +52 -52
- package/dist/Components/Touch/InfoCard.svelte +24 -24
- package/dist/Components/Touch/InfoTextCard.svelte +21 -21
- package/dist/Components/Touch/ModalExplanation.svelte +20 -20
- package/dist/Components/Touch/NumberKeyboard.svelte +268 -268
- package/dist/Components/Touch/NumberModal.svelte +69 -69
- package/dist/Components/Touch/PlusMinusCard.svelte +50 -50
- package/dist/Components/Touch/SelectModal.svelte +105 -105
- package/dist/Components/Touch/SummaryCard.svelte +65 -65
- package/dist/Components/Touch/TextAreaModal.svelte +86 -86
- package/dist/Components/Touch/TextModal.svelte +123 -123
- package/dist/Components/Touch/TouchCard.svelte +28 -28
- package/dist/Components/Touch/TouchModal.svelte +259 -259
- package/dist/Components/Touch/UtilityButton.svelte +91 -91
- package/dist/Components/VerticalTabGroup.svelte +66 -66
- package/dist/Components/VerticalTabGroupButton.svelte +97 -97
- package/dist/Helpers/Datamatrix.d.ts +10 -10
- package/dist/Helpers/Datamatrix.js +1 -1
- package/dist/Helpers/Helpers.svelte.js +6 -4
- package/dist/Types/Examples/ExampleModal.svelte +34 -34
- package/dist/scss/_basics.scss +12 -12
- package/dist/scss/_colours.scss +134 -134
- package/dist/scss/_mixins.scss +3016 -3016
- package/dist/scss/_sizing.scss +69 -69
- package/dist/scss/_transitions.scss +8 -8
- package/package.json +2 -2
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
3
|
-
<script lang="ts" generics="T extends object">
|
|
4
|
-
import Checkbox from '../../Checkbox.svelte';
|
|
5
|
-
import { getContext } from 'svelte';
|
|
6
|
-
import { TableContext } from '../Types/Context/TableContext.svelte.js';
|
|
7
|
-
|
|
8
|
-
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
9
|
-
|
|
10
|
-
const onCompactChange = (e: Event) => {
|
|
11
|
-
tableContext.setIsCompact((e.target as HTMLInputElement).checked);
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
const onSingleCLickChange = (e: Event) => {
|
|
15
|
-
tableContext.setSingleClickEditing((e.target as HTMLInputElement).checked);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const onAlternateRowColoursChange = (e: Event) => {
|
|
19
|
-
tableContext.setAlternateRowColours((e.target as HTMLInputElement).checked);
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const onChangeColourOnHoverChange = (e: Event) => {
|
|
23
|
-
tableContext.setChangeColourOnHover((e.target as HTMLInputElement).checked);
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const onCopyWithHeadersChange = (e: Event) => {
|
|
27
|
-
tableContext.setCopyWithHeaders((e.target as HTMLInputElement).checked);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const onCommaSeparatedCopyChange = (e: Event) => {
|
|
31
|
-
tableContext.setCommaSeparatedCopy((e.target as HTMLInputElement).checked);
|
|
32
|
-
};
|
|
33
|
-
</script>
|
|
34
|
-
|
|
35
|
-
<div class="column-panel">
|
|
36
|
-
<h3>Settings</h3>
|
|
37
|
-
<Checkbox
|
|
38
|
-
label="Compact"
|
|
39
|
-
id={`is-compact-${tableContext.tableName}`}
|
|
40
|
-
value={tableContext.isCompact}
|
|
41
|
-
onchange={onCompactChange}
|
|
42
|
-
/>
|
|
43
|
-
<Checkbox
|
|
44
|
-
label="Single Click Editing"
|
|
45
|
-
id={`single-click-editing-${tableContext.tableName}`}
|
|
46
|
-
value={tableContext.singleClickEditing}
|
|
47
|
-
onchange={onSingleCLickChange}
|
|
48
|
-
/>
|
|
49
|
-
<Checkbox
|
|
50
|
-
label="Alternate Row Colours"
|
|
51
|
-
id={`alternate-row-colours-${tableContext.tableName}`}
|
|
52
|
-
value={tableContext.alternateRowColours}
|
|
53
|
-
onchange={onAlternateRowColoursChange}
|
|
54
|
-
/>
|
|
55
|
-
<Checkbox
|
|
56
|
-
label="Change Colour on Hover"
|
|
57
|
-
id={`change-colour-on-hover-${tableContext.tableName}`}
|
|
58
|
-
value={tableContext.changeColourOnHover}
|
|
59
|
-
onchange={onChangeColourOnHoverChange}
|
|
60
|
-
/>
|
|
61
|
-
{#if tableContext.allowCopy}
|
|
62
|
-
<Checkbox
|
|
63
|
-
label="Include Headers When Copying"
|
|
64
|
-
id={`copy-with-headers-${tableContext.tableName}`}
|
|
65
|
-
value={tableContext.copyWithHeaders}
|
|
66
|
-
onchange={onCopyWithHeadersChange}
|
|
67
|
-
/>
|
|
68
|
-
<Checkbox
|
|
69
|
-
label="Copy as Comma Separated Values"
|
|
70
|
-
id={`comma-separated-copy-${tableContext.tableName}`}
|
|
71
|
-
value={tableContext.commaSeparatedCopy}
|
|
72
|
-
onchange={onCommaSeparatedCopyChange}
|
|
73
|
-
/>
|
|
74
|
-
{/if}
|
|
75
|
-
</div>
|
|
76
|
-
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
|
+
<script lang="ts" generics="T extends object">
|
|
4
|
+
import Checkbox from '../../Checkbox.svelte';
|
|
5
|
+
import { getContext } from 'svelte';
|
|
6
|
+
import { TableContext } from '../Types/Context/TableContext.svelte.js';
|
|
7
|
+
|
|
8
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
9
|
+
|
|
10
|
+
const onCompactChange = (e: Event) => {
|
|
11
|
+
tableContext.setIsCompact((e.target as HTMLInputElement).checked);
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const onSingleCLickChange = (e: Event) => {
|
|
15
|
+
tableContext.setSingleClickEditing((e.target as HTMLInputElement).checked);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const onAlternateRowColoursChange = (e: Event) => {
|
|
19
|
+
tableContext.setAlternateRowColours((e.target as HTMLInputElement).checked);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const onChangeColourOnHoverChange = (e: Event) => {
|
|
23
|
+
tableContext.setChangeColourOnHover((e.target as HTMLInputElement).checked);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const onCopyWithHeadersChange = (e: Event) => {
|
|
27
|
+
tableContext.setCopyWithHeaders((e.target as HTMLInputElement).checked);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const onCommaSeparatedCopyChange = (e: Event) => {
|
|
31
|
+
tableContext.setCommaSeparatedCopy((e.target as HTMLInputElement).checked);
|
|
32
|
+
};
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<div class="column-panel">
|
|
36
|
+
<h3>Settings</h3>
|
|
37
|
+
<Checkbox
|
|
38
|
+
label="Compact"
|
|
39
|
+
id={`is-compact-${tableContext.tableName}`}
|
|
40
|
+
value={tableContext.isCompact}
|
|
41
|
+
onchange={onCompactChange}
|
|
42
|
+
/>
|
|
43
|
+
<Checkbox
|
|
44
|
+
label="Single Click Editing"
|
|
45
|
+
id={`single-click-editing-${tableContext.tableName}`}
|
|
46
|
+
value={tableContext.singleClickEditing}
|
|
47
|
+
onchange={onSingleCLickChange}
|
|
48
|
+
/>
|
|
49
|
+
<Checkbox
|
|
50
|
+
label="Alternate Row Colours"
|
|
51
|
+
id={`alternate-row-colours-${tableContext.tableName}`}
|
|
52
|
+
value={tableContext.alternateRowColours}
|
|
53
|
+
onchange={onAlternateRowColoursChange}
|
|
54
|
+
/>
|
|
55
|
+
<Checkbox
|
|
56
|
+
label="Change Colour on Hover"
|
|
57
|
+
id={`change-colour-on-hover-${tableContext.tableName}`}
|
|
58
|
+
value={tableContext.changeColourOnHover}
|
|
59
|
+
onchange={onChangeColourOnHoverChange}
|
|
60
|
+
/>
|
|
61
|
+
{#if tableContext.allowCopy}
|
|
62
|
+
<Checkbox
|
|
63
|
+
label="Include Headers When Copying"
|
|
64
|
+
id={`copy-with-headers-${tableContext.tableName}`}
|
|
65
|
+
value={tableContext.copyWithHeaders}
|
|
66
|
+
onchange={onCopyWithHeadersChange}
|
|
67
|
+
/>
|
|
68
|
+
<Checkbox
|
|
69
|
+
label="Copy as Comma Separated Values"
|
|
70
|
+
id={`comma-separated-copy-${tableContext.tableName}`}
|
|
71
|
+
value={tableContext.commaSeparatedCopy}
|
|
72
|
+
onchange={onCommaSeparatedCopyChange}
|
|
73
|
+
/>
|
|
74
|
+
{/if}
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
77
|
<style>div.column-panel {
|
|
78
78
|
padding: 0.5rem;
|
|
79
79
|
display: flex;
|
|
@@ -81,4 +81,4 @@
|
|
|
81
81
|
gap: 0.5rem;
|
|
82
82
|
background-color: #ffffff;
|
|
83
83
|
height: 100%;
|
|
84
|
-
}</style>
|
|
84
|
+
}</style>
|
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
3
|
-
<script
|
|
4
|
-
lang="ts"
|
|
5
|
-
generics="T extends object"
|
|
6
|
-
>
|
|
7
|
-
import Checkbox from '../../Checkbox.svelte';
|
|
8
|
-
import DesktopModal from '../../DesktopModal.svelte';
|
|
9
|
-
import { getContext } from 'svelte';
|
|
10
|
-
import { TableContext } from '../Types/Context/TableContext.svelte.js';
|
|
11
|
-
import type { ToolboxPanelModalProps } from './ToolboxPanelModalProps.js';
|
|
12
|
-
|
|
13
|
-
let { onclose }: ToolboxPanelModalProps = $props();
|
|
14
|
-
|
|
15
|
-
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
16
|
-
|
|
17
|
-
const onCompactChange = (e: Event) => {
|
|
18
|
-
tableContext.setIsCompact((e.target as HTMLInputElement).checked);
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const onSingleCLickChange = (e: Event) => {
|
|
22
|
-
tableContext.setSingleClickEditing((e.target as HTMLInputElement).checked);
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
const onAlternateRowColoursChange = (e: Event) => {
|
|
26
|
-
tableContext.setAlternateRowColours((e.target as HTMLInputElement).checked);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const onChangeColourOnHoverChange = (e: Event) => {
|
|
30
|
-
tableContext.setChangeColourOnHover((e.target as HTMLInputElement).checked);
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
const onCopyWithHeadersChange = (e: Event) => {
|
|
34
|
-
tableContext.setCopyWithHeaders((e.target as HTMLInputElement).checked);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const onCommaSeparatedCopyChange = (e: Event) => {
|
|
38
|
-
tableContext.setCommaSeparatedCopy((e.target as HTMLInputElement).checked);
|
|
39
|
-
};
|
|
40
|
-
</script>
|
|
41
|
-
|
|
42
|
-
<DesktopModal
|
|
43
|
-
headerLabel="Table Settings"
|
|
44
|
-
onclose={() => onclose?.()}
|
|
45
|
-
buttons={[{ label: 'Close', callback: () => onclose?.() }]}
|
|
46
|
-
>
|
|
47
|
-
<div class="flex">
|
|
48
|
-
<div class="column-panel">
|
|
49
|
-
<Checkbox
|
|
50
|
-
label="Compact"
|
|
51
|
-
id={`is-compact-${tableContext.tableName}-modal`}
|
|
52
|
-
value={tableContext.isCompact}
|
|
53
|
-
onchange={onCompactChange}
|
|
54
|
-
/>
|
|
55
|
-
<Checkbox
|
|
56
|
-
label="Single Click Editing"
|
|
57
|
-
id={`single-click-editing-${tableContext.tableName}-modal`}
|
|
58
|
-
value={tableContext.singleClickEditing}
|
|
59
|
-
onchange={onSingleCLickChange}
|
|
60
|
-
/>
|
|
61
|
-
<Checkbox
|
|
62
|
-
label="Alternate Row Colours"
|
|
63
|
-
id={`alternate-row-colours-${tableContext.tableName}-modal`}
|
|
64
|
-
value={tableContext.alternateRowColours}
|
|
65
|
-
onchange={onAlternateRowColoursChange}
|
|
66
|
-
/>
|
|
67
|
-
<Checkbox
|
|
68
|
-
label="Change Colour on Hover"
|
|
69
|
-
id={`change-colour-on-hover-${tableContext.tableName}-modal`}
|
|
70
|
-
value={tableContext.changeColourOnHover}
|
|
71
|
-
onchange={onChangeColourOnHoverChange}
|
|
72
|
-
/>
|
|
73
|
-
{#if tableContext.allowCopy}
|
|
74
|
-
<Checkbox
|
|
75
|
-
label="Include Headers When Copying"
|
|
76
|
-
id={`copy-with-headers-${tableContext.tableName}-modal`}
|
|
77
|
-
value={tableContext.copyWithHeaders}
|
|
78
|
-
onchange={onCopyWithHeadersChange}
|
|
79
|
-
/>
|
|
80
|
-
<Checkbox
|
|
81
|
-
label="Copy as Comma Separated Values"
|
|
82
|
-
id={`comma-separated-copy-${tableContext.tableName}-modal`}
|
|
83
|
-
value={tableContext.commaSeparatedCopy}
|
|
84
|
-
onchange={onCommaSeparatedCopyChange}
|
|
85
|
-
/>
|
|
86
|
-
{/if}
|
|
87
|
-
</div>
|
|
88
|
-
</div>
|
|
89
|
-
</DesktopModal>
|
|
90
|
-
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
|
+
<script
|
|
4
|
+
lang="ts"
|
|
5
|
+
generics="T extends object"
|
|
6
|
+
>
|
|
7
|
+
import Checkbox from '../../Checkbox.svelte';
|
|
8
|
+
import DesktopModal from '../../DesktopModal.svelte';
|
|
9
|
+
import { getContext } from 'svelte';
|
|
10
|
+
import { TableContext } from '../Types/Context/TableContext.svelte.js';
|
|
11
|
+
import type { ToolboxPanelModalProps } from './ToolboxPanelModalProps.js';
|
|
12
|
+
|
|
13
|
+
let { onclose }: ToolboxPanelModalProps = $props();
|
|
14
|
+
|
|
15
|
+
const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
|
|
16
|
+
|
|
17
|
+
const onCompactChange = (e: Event) => {
|
|
18
|
+
tableContext.setIsCompact((e.target as HTMLInputElement).checked);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const onSingleCLickChange = (e: Event) => {
|
|
22
|
+
tableContext.setSingleClickEditing((e.target as HTMLInputElement).checked);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const onAlternateRowColoursChange = (e: Event) => {
|
|
26
|
+
tableContext.setAlternateRowColours((e.target as HTMLInputElement).checked);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const onChangeColourOnHoverChange = (e: Event) => {
|
|
30
|
+
tableContext.setChangeColourOnHover((e.target as HTMLInputElement).checked);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const onCopyWithHeadersChange = (e: Event) => {
|
|
34
|
+
tableContext.setCopyWithHeaders((e.target as HTMLInputElement).checked);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const onCommaSeparatedCopyChange = (e: Event) => {
|
|
38
|
+
tableContext.setCommaSeparatedCopy((e.target as HTMLInputElement).checked);
|
|
39
|
+
};
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<DesktopModal
|
|
43
|
+
headerLabel="Table Settings"
|
|
44
|
+
onclose={() => onclose?.()}
|
|
45
|
+
buttons={[{ label: 'Close', callback: () => onclose?.() }]}
|
|
46
|
+
>
|
|
47
|
+
<div class="flex">
|
|
48
|
+
<div class="column-panel">
|
|
49
|
+
<Checkbox
|
|
50
|
+
label="Compact"
|
|
51
|
+
id={`is-compact-${tableContext.tableName}-modal`}
|
|
52
|
+
value={tableContext.isCompact}
|
|
53
|
+
onchange={onCompactChange}
|
|
54
|
+
/>
|
|
55
|
+
<Checkbox
|
|
56
|
+
label="Single Click Editing"
|
|
57
|
+
id={`single-click-editing-${tableContext.tableName}-modal`}
|
|
58
|
+
value={tableContext.singleClickEditing}
|
|
59
|
+
onchange={onSingleCLickChange}
|
|
60
|
+
/>
|
|
61
|
+
<Checkbox
|
|
62
|
+
label="Alternate Row Colours"
|
|
63
|
+
id={`alternate-row-colours-${tableContext.tableName}-modal`}
|
|
64
|
+
value={tableContext.alternateRowColours}
|
|
65
|
+
onchange={onAlternateRowColoursChange}
|
|
66
|
+
/>
|
|
67
|
+
<Checkbox
|
|
68
|
+
label="Change Colour on Hover"
|
|
69
|
+
id={`change-colour-on-hover-${tableContext.tableName}-modal`}
|
|
70
|
+
value={tableContext.changeColourOnHover}
|
|
71
|
+
onchange={onChangeColourOnHoverChange}
|
|
72
|
+
/>
|
|
73
|
+
{#if tableContext.allowCopy}
|
|
74
|
+
<Checkbox
|
|
75
|
+
label="Include Headers When Copying"
|
|
76
|
+
id={`copy-with-headers-${tableContext.tableName}-modal`}
|
|
77
|
+
value={tableContext.copyWithHeaders}
|
|
78
|
+
onchange={onCopyWithHeadersChange}
|
|
79
|
+
/>
|
|
80
|
+
<Checkbox
|
|
81
|
+
label="Copy as Comma Separated Values"
|
|
82
|
+
id={`comma-separated-copy-${tableContext.tableName}-modal`}
|
|
83
|
+
value={tableContext.commaSeparatedCopy}
|
|
84
|
+
onchange={onCommaSeparatedCopyChange}
|
|
85
|
+
/>
|
|
86
|
+
{/if}
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
</DesktopModal>
|
|
90
|
+
|
|
91
91
|
<style>.flex {
|
|
92
92
|
display: flex;
|
|
93
93
|
flex-flow: column nowrap;
|
|
@@ -103,4 +103,4 @@ div.column-panel {
|
|
|
103
103
|
gap: 0.5rem;
|
|
104
104
|
background-color: #ffffff;
|
|
105
105
|
height: 100%;
|
|
106
|
-
}</style>
|
|
106
|
+
}</style>
|
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
3
|
-
<script lang="ts" module>
|
|
4
|
-
import Table from './Table.svelte';
|
|
5
|
-
import type { DefsWrapper } from './Types/Columns/DefsWrapper.js';
|
|
6
|
-
import { TableContext } from './Types/Context/TableContext.svelte.js';
|
|
7
|
-
import type { Primitive, TableInitOptions } from './Types/Context/TableInitOptions.js';
|
|
8
|
-
import { LocalTableDataRepository } from './Types/DataRepository/LocalTableDataRepository.svelte.js';
|
|
9
|
-
import { ToolbarPosition } from './Types/Toolbar/ToolbarPosition.js';
|
|
10
|
-
|
|
11
|
-
const defaultOptions: Omit<
|
|
12
|
-
TableInitOptions<object, never>,
|
|
13
|
-
'selectionExtractor' | 'getUserId'
|
|
14
|
-
> = {
|
|
15
|
-
allowCopy: false,
|
|
16
|
-
enableResize: false,
|
|
17
|
-
allowColumnReordering: false,
|
|
18
|
-
allowQuickFiltering: true,
|
|
19
|
-
allowAdvancedFiltering: true,
|
|
20
|
-
toolbar: ToolbarPosition.None,
|
|
21
|
-
displayFooter: false
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export interface NestedTableProps<T extends object, IdType extends Primitive> {
|
|
25
|
-
tableName: string;
|
|
26
|
-
data: Array<T>;
|
|
27
|
-
columnDefWrapper: DefsWrapper<T>;
|
|
28
|
-
options: Pick<TableInitOptions<T, IdType>, 'selectionExtractor'> &
|
|
29
|
-
Partial<TableInitOptions<T, IdType>>;
|
|
30
|
-
oncontextmenu?: (e: MouseEvent) => void;
|
|
31
|
-
getUserId: () => string | undefined;
|
|
32
|
-
}
|
|
33
|
-
</script>
|
|
34
|
-
|
|
35
|
-
<script lang="ts" generics="T extends object,IdType extends Primitive">
|
|
36
|
-
const {
|
|
37
|
-
tableName,
|
|
38
|
-
data,
|
|
39
|
-
columnDefWrapper,
|
|
40
|
-
options,
|
|
41
|
-
oncontextmenu,
|
|
42
|
-
getUserId
|
|
43
|
-
}: NestedTableProps<T, IdType> = $props();
|
|
44
|
-
|
|
45
|
-
const wrapper = {
|
|
46
|
-
get value() {
|
|
47
|
-
return data;
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
let root: HTMLDivElement | undefined = $state();
|
|
52
|
-
const maxWidth: number | undefined = $derived(
|
|
53
|
-
root?.closest('.flex_table')?.getBoundingClientRect().width
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
// NOTE known limitation: These are passed as wrappers, and they should never require reassignment. They are deeply reactive
|
|
57
|
-
const dataRepo = $state(new LocalTableDataRepository(tableName, wrapper, () => getUserId()));
|
|
58
|
-
|
|
59
|
-
// NOTE known limitation: These are passed as wrappers, and they should never require reassignment. They are deeply reactive
|
|
60
|
-
const tableContext: TableContext<T, IdType> | undefined = $state(
|
|
61
|
-
TableContext.init<T, IdType>(columnDefWrapper, tableName, dataRepo, {
|
|
62
|
-
...defaultOptions,
|
|
63
|
-
...options,
|
|
64
|
-
getUserId: () => getUserId()
|
|
65
|
-
})
|
|
66
|
-
);
|
|
67
|
-
</script>
|
|
68
|
-
|
|
69
|
-
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
70
|
-
<div
|
|
71
|
-
class="limit-height"
|
|
72
|
-
bind:this={root}
|
|
73
|
-
style={maxWidth != null ? `max-width: ${maxWidth}px` : ''}
|
|
74
|
-
oncontextmenu={(e) => {
|
|
75
|
-
e.stopPropagation();
|
|
76
|
-
oncontextmenu?.(e);
|
|
77
|
-
}}
|
|
78
|
-
>
|
|
79
|
-
{#if tableContext}
|
|
80
|
-
<Table nested {tableContext} />
|
|
81
|
-
{/if}
|
|
82
|
-
</div>
|
|
83
|
-
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
|
+
<script lang="ts" module>
|
|
4
|
+
import Table from './Table.svelte';
|
|
5
|
+
import type { DefsWrapper } from './Types/Columns/DefsWrapper.js';
|
|
6
|
+
import { TableContext } from './Types/Context/TableContext.svelte.js';
|
|
7
|
+
import type { Primitive, TableInitOptions } from './Types/Context/TableInitOptions.js';
|
|
8
|
+
import { LocalTableDataRepository } from './Types/DataRepository/LocalTableDataRepository.svelte.js';
|
|
9
|
+
import { ToolbarPosition } from './Types/Toolbar/ToolbarPosition.js';
|
|
10
|
+
|
|
11
|
+
const defaultOptions: Omit<
|
|
12
|
+
TableInitOptions<object, never>,
|
|
13
|
+
'selectionExtractor' | 'getUserId'
|
|
14
|
+
> = {
|
|
15
|
+
allowCopy: false,
|
|
16
|
+
enableResize: false,
|
|
17
|
+
allowColumnReordering: false,
|
|
18
|
+
allowQuickFiltering: true,
|
|
19
|
+
allowAdvancedFiltering: true,
|
|
20
|
+
toolbar: ToolbarPosition.None,
|
|
21
|
+
displayFooter: false
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export interface NestedTableProps<T extends object, IdType extends Primitive> {
|
|
25
|
+
tableName: string;
|
|
26
|
+
data: Array<T>;
|
|
27
|
+
columnDefWrapper: DefsWrapper<T>;
|
|
28
|
+
options: Pick<TableInitOptions<T, IdType>, 'selectionExtractor'> &
|
|
29
|
+
Partial<TableInitOptions<T, IdType>>;
|
|
30
|
+
oncontextmenu?: (e: MouseEvent) => void;
|
|
31
|
+
getUserId: () => string | undefined;
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<script lang="ts" generics="T extends object,IdType extends Primitive">
|
|
36
|
+
const {
|
|
37
|
+
tableName,
|
|
38
|
+
data,
|
|
39
|
+
columnDefWrapper,
|
|
40
|
+
options,
|
|
41
|
+
oncontextmenu,
|
|
42
|
+
getUserId
|
|
43
|
+
}: NestedTableProps<T, IdType> = $props();
|
|
44
|
+
|
|
45
|
+
const wrapper = {
|
|
46
|
+
get value() {
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
let root: HTMLDivElement | undefined = $state();
|
|
52
|
+
const maxWidth: number | undefined = $derived(
|
|
53
|
+
root?.closest('.flex_table')?.getBoundingClientRect().width
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
// NOTE known limitation: These are passed as wrappers, and they should never require reassignment. They are deeply reactive
|
|
57
|
+
const dataRepo = $state(new LocalTableDataRepository(tableName, wrapper, () => getUserId()));
|
|
58
|
+
|
|
59
|
+
// NOTE known limitation: These are passed as wrappers, and they should never require reassignment. They are deeply reactive
|
|
60
|
+
const tableContext: TableContext<T, IdType> | undefined = $state(
|
|
61
|
+
TableContext.init<T, IdType>(columnDefWrapper, tableName, dataRepo, {
|
|
62
|
+
...defaultOptions,
|
|
63
|
+
...options,
|
|
64
|
+
getUserId: () => getUserId()
|
|
65
|
+
})
|
|
66
|
+
);
|
|
67
|
+
</script>
|
|
68
|
+
|
|
69
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
70
|
+
<div
|
|
71
|
+
class="limit-height"
|
|
72
|
+
bind:this={root}
|
|
73
|
+
style={maxWidth != null ? `max-width: ${maxWidth}px` : ''}
|
|
74
|
+
oncontextmenu={(e) => {
|
|
75
|
+
e.stopPropagation();
|
|
76
|
+
oncontextmenu?.(e);
|
|
77
|
+
}}
|
|
78
|
+
>
|
|
79
|
+
{#if tableContext}
|
|
80
|
+
<Table nested {tableContext} />
|
|
81
|
+
{/if}
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
84
|
<style>.limit-height {
|
|
85
85
|
box-shadow: inset 0px 7px 5px -6px #cbd4da, inset 0px -7px 5px -6px #cbd4da;
|
|
86
86
|
position: relative;
|
|
@@ -89,4 +89,4 @@
|
|
|
89
89
|
position: sticky;
|
|
90
90
|
left: 0;
|
|
91
91
|
z-index: 3;
|
|
92
|
-
}</style>
|
|
92
|
+
}</style>
|