@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,192 +1,179 @@
|
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
* headers) and the column id as a fallback for Snippet headers. */
|
|
41
|
-
const matchingDefs: Array<ColumnDef<T, unknown>> = $derived.by(() => {
|
|
42
|
-
const q = quickFindValue.trim().toLowerCase();
|
|
43
|
-
if (q.length === 0) {
|
|
44
|
-
return filterableDefs;
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
|
+
<script
|
|
4
|
+
lang="ts"
|
|
5
|
+
generics="T extends object, IdType extends Primitive"
|
|
6
|
+
>import Action from "../../Action.svelte";
|
|
7
|
+
import TextInput from "../../TextInput.svelte";
|
|
8
|
+
import { Colour, ColourSet } from "../../../scss/colours.js";
|
|
9
|
+
import { Size } from "../../../Types/Internal/Size.js";
|
|
10
|
+
import { SvelteSet } from "svelte/reactivity";
|
|
11
|
+
import { getContext } from "svelte";
|
|
12
|
+
import { TableContext } from "../Types/Context/TableContext.svelte.js";
|
|
13
|
+
import FilterInput from "./FilterInput.svelte";
|
|
14
|
+
import TableViewDropdown from "./TableViewDropdown.svelte";
|
|
15
|
+
const tableContext = getContext(TableContext.identifier);
|
|
16
|
+
/** Fallback group label used for any filterable column whose
|
|
17
|
+
* `filterGroup` is undefined. Picked up by the same grouping +
|
|
18
|
+
* collapse machinery as user-declared groups. */
|
|
19
|
+
const FALLBACK_GROUP = "Other";
|
|
20
|
+
const defs = $derived(tableContext.columnDefs);
|
|
21
|
+
const filterableDefs = $derived(defs.filter((d) => d.allowFiltering));
|
|
22
|
+
/** User-typed substring filter for the column-header text. Empty
|
|
23
|
+
* string is the "no filter" state. */
|
|
24
|
+
let quickFindValue = $state("");
|
|
25
|
+
/** Names of currently-collapsed groups. A name absent from this
|
|
26
|
+
* set is rendered expanded. Reactive via `SvelteSet` so the panel
|
|
27
|
+
* re-renders on toggle without manually re-assigning. */
|
|
28
|
+
const collapsedGroups = new SvelteSet();
|
|
29
|
+
/** Filters the column-def list against `quickFindValue`. The match
|
|
30
|
+
* is case-insensitive against the header text (for string
|
|
31
|
+
* headers) and the column id as a fallback for Snippet headers. */
|
|
32
|
+
const matchingDefs = $derived.by(() => {
|
|
33
|
+
const q = quickFindValue.trim().toLowerCase();
|
|
34
|
+
if (q.length === 0) {
|
|
35
|
+
return filterableDefs;
|
|
36
|
+
}
|
|
37
|
+
return filterableDefs.filter((d) => {
|
|
38
|
+
if (typeof d.header === "string" && d.header.toLowerCase().includes(q)) {
|
|
39
|
+
return true;
|
|
45
40
|
}
|
|
46
|
-
return
|
|
47
|
-
if (typeof d.header === 'string' && d.header.toLowerCase().includes(q)) {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
return d.id.toLowerCase().includes(q);
|
|
51
|
-
});
|
|
41
|
+
return d.id.toLowerCase().includes(q);
|
|
52
42
|
});
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
if (!seen.has(name)) {
|
|
69
|
-
seen.add(name);
|
|
70
|
-
out.push(name);
|
|
71
|
-
}
|
|
43
|
+
});
|
|
44
|
+
/** Ordered list of group names. The first column-def each group
|
|
45
|
+
* is seen on determines its position so groups appear in the
|
|
46
|
+
* source-declaration order. The fallback "Other" group is
|
|
47
|
+
* appended last so explicitly-named groups always lead. */
|
|
48
|
+
const orderedGroupNames = $derived.by(() => {
|
|
49
|
+
const seen = new Set();
|
|
50
|
+
const out = [];
|
|
51
|
+
let sawFallback = false;
|
|
52
|
+
for (const def of matchingDefs) {
|
|
53
|
+
const name = def.filterGroup ?? FALLBACK_GROUP;
|
|
54
|
+
if (name === FALLBACK_GROUP) {
|
|
55
|
+
sawFallback = true;
|
|
56
|
+
continue;
|
|
72
57
|
}
|
|
73
|
-
if (
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return out;
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
/** Group name -> column-defs in that group, preserving declaration
|
|
80
|
-
* order within the group. */
|
|
81
|
-
const groupedDefs: Map<string, Array<ColumnDef<T, unknown>>> = $derived.by(() => {
|
|
82
|
-
const map = new Map<string, Array<ColumnDef<T, unknown>>>();
|
|
83
|
-
for (const def of matchingDefs) {
|
|
84
|
-
const name = def.filterGroup ?? FALLBACK_GROUP;
|
|
85
|
-
let bucket = map.get(name);
|
|
86
|
-
if (!bucket) {
|
|
87
|
-
bucket = [];
|
|
88
|
-
map.set(name, bucket);
|
|
89
|
-
}
|
|
90
|
-
bucket.push(def);
|
|
58
|
+
if (!seen.has(name)) {
|
|
59
|
+
seen.add(name);
|
|
60
|
+
out.push(name);
|
|
91
61
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
62
|
+
}
|
|
63
|
+
if (sawFallback) {
|
|
64
|
+
out.push(FALLBACK_GROUP);
|
|
65
|
+
}
|
|
66
|
+
return out;
|
|
67
|
+
});
|
|
68
|
+
/** Group name -> column-defs in that group, preserving declaration
|
|
69
|
+
* order within the group. */
|
|
70
|
+
const groupedDefs = $derived.by(() => {
|
|
71
|
+
const map = new Map();
|
|
72
|
+
for (const def of matchingDefs) {
|
|
73
|
+
const name = def.filterGroup ?? FALLBACK_GROUP;
|
|
74
|
+
let bucket = map.get(name);
|
|
75
|
+
if (!bucket) {
|
|
76
|
+
bucket = [];
|
|
77
|
+
map.set(name, bucket);
|
|
100
78
|
}
|
|
79
|
+
bucket.push(def);
|
|
101
80
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
* to land in the input rather than the input blurring after the
|
|
110
|
-
* first character. Returns immediately and lets the keystroke
|
|
111
|
-
* continue to bubble so the side-panel's window-level Escape
|
|
112
|
-
* handler still closes the panel.
|
|
113
|
-
*/
|
|
114
|
-
function noopKeydown(_e: KeyboardEvent): void {
|
|
115
|
-
// intentionally empty
|
|
81
|
+
return map;
|
|
82
|
+
});
|
|
83
|
+
function toggleGroup(name) {
|
|
84
|
+
if (collapsedGroups.has(name)) {
|
|
85
|
+
collapsedGroups.delete(name);
|
|
86
|
+
} else {
|
|
87
|
+
collapsedGroups.add(name);
|
|
116
88
|
}
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
{
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
<
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* No-op keydown handler used to override `TextInput`'s default
|
|
92
|
+
* `passthrough` keydown (defined in `Helpers.svelte.ts`), which
|
|
93
|
+
* blurs the focused input on every alphanumeric keypress so that
|
|
94
|
+
* barcode-scanner buffers can flow into `UntypedInputContext`
|
|
95
|
+
* instead. For a plain quick-find search field we want every key
|
|
96
|
+
* to land in the input rather than the input blurring after the
|
|
97
|
+
* first character. Returns immediately and lets the keystroke
|
|
98
|
+
* continue to bubble so the side-panel's window-level Escape
|
|
99
|
+
* handler still closes the panel.
|
|
100
|
+
*/
|
|
101
|
+
function noopKeydown(_e) {
|
|
102
|
+
// intentionally empty
|
|
103
|
+
}
|
|
104
|
+
</script>
|
|
105
|
+
|
|
106
|
+
<section class="side-panel-section">
|
|
107
|
+
<header class="side-panel-header">
|
|
108
|
+
<h2>Advanced Filter</h2>
|
|
109
|
+
</header>
|
|
110
|
+
|
|
111
|
+
<div class="toolbar">
|
|
112
|
+
<!-- Quick-switch dropdown for saved filter sets. Sits above the
|
|
113
|
+
search box; saving a filter is done from the Table
|
|
114
|
+
Configuration modal's "Save a new Filter" tab. -->
|
|
115
|
+
<TableViewDropdown kind="filter" />
|
|
116
|
+
<div class="quick-find">
|
|
117
|
+
<TextInput
|
|
118
|
+
labelTop="Quick Find a Filter"
|
|
119
|
+
placeholder="Filter…"
|
|
120
|
+
bind:value={quickFindValue}
|
|
121
|
+
rightIcon={{ name: 'search', size: Size.Medium }}
|
|
122
|
+
onkeydown={noopKeydown}
|
|
123
|
+
/>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
<div class="side-panel-body">
|
|
128
|
+
{#if filterableDefs.length === 0}
|
|
129
|
+
<p class="empty">No filterable columns.</p>
|
|
130
|
+
{:else if matchingDefs.length === 0}
|
|
131
|
+
<p class="empty">
|
|
132
|
+
No filters match “{quickFindValue}”.
|
|
133
|
+
</p>
|
|
134
|
+
{:else}
|
|
135
|
+
<div class="groups">
|
|
136
|
+
{#each orderedGroupNames as groupName (groupName)}
|
|
137
|
+
{@const defsInGroup = groupedDefs.get(groupName) ?? []}
|
|
138
|
+
{@const isCollapsed = collapsedGroups.has(groupName)}
|
|
139
|
+
{#if defsInGroup.length > 0}
|
|
140
|
+
<section
|
|
141
|
+
class="group"
|
|
142
|
+
class:collapsed={isCollapsed}
|
|
143
|
+
>
|
|
144
|
+
<header class="group-header">
|
|
145
|
+
<h3>{groupName}</h3>
|
|
146
|
+
<Action
|
|
147
|
+
label={isCollapsed ? `Expand ${groupName}` : `Collapse ${groupName}`}
|
|
148
|
+
colourSet={ColourSet.Auxiliary}
|
|
149
|
+
icon={{
|
|
150
|
+
name: isCollapsed ? 'circle-plus' : 'circle-minus',
|
|
151
|
+
size: Size.Medium,
|
|
152
|
+
colour: Colour['$ui-blue-9'],
|
|
153
|
+
}}
|
|
154
|
+
onclick={() => {
|
|
155
|
+
toggleGroup(groupName);
|
|
156
|
+
}}
|
|
157
|
+
/>
|
|
158
|
+
</header>
|
|
159
|
+
{#if !isCollapsed}
|
|
160
|
+
<div class="group-body">
|
|
161
|
+
{#each defsInGroup as def (def.id)}
|
|
162
|
+
<FilterInput
|
|
163
|
+
{def}
|
|
164
|
+
customFilters={tableContext.remoteFilters}
|
|
165
|
+
/>
|
|
166
|
+
{/each}
|
|
167
|
+
</div>
|
|
168
|
+
{/if}
|
|
169
|
+
</section>
|
|
170
|
+
{/if}
|
|
171
|
+
{/each}
|
|
172
|
+
</div>
|
|
173
|
+
{/if}
|
|
174
|
+
</div>
|
|
175
|
+
</section>
|
|
176
|
+
|
|
190
177
|
<style>.side-panel-section {
|
|
191
178
|
display: flex;
|
|
192
179
|
flex-flow: column nowrap;
|
|
@@ -325,4 +312,4 @@ p.empty {
|
|
|
325
312
|
display: flex;
|
|
326
313
|
flex-flow: column nowrap;
|
|
327
314
|
gap: 0.5rem;
|
|
328
|
-
}</style>
|
|
315
|
+
}</style>
|
|
@@ -1,33 +1,27 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
3
|
-
<script
|
|
4
|
-
lang="ts"
|
|
5
|
-
module
|
|
6
|
-
>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
>
|
|
26
|
-
<div class="flex">
|
|
27
|
-
<FilterPanel />
|
|
28
|
-
</div>
|
|
29
|
-
</DesktopModal>
|
|
30
|
-
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
|
+
<script
|
|
4
|
+
lang="ts"
|
|
5
|
+
module
|
|
6
|
+
>import DesktopModal from "../../DesktopModal.svelte";
|
|
7
|
+
import { cssLength } from "../../../Helpers/Helpers.svelte.js";
|
|
8
|
+
import FilterPanel from "./FilterPanel.svelte";
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<script lang="ts">const { onclose } = $props();
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<DesktopModal
|
|
15
|
+
width={cssLength('800px')}
|
|
16
|
+
headerLabel="Filter by"
|
|
17
|
+
onclose={() => onclose?.()}
|
|
18
|
+
buttons={[{ label: 'Close', callback: () => onclose?.() }]}
|
|
19
|
+
>
|
|
20
|
+
<div class="flex">
|
|
21
|
+
<FilterPanel />
|
|
22
|
+
</div>
|
|
23
|
+
</DesktopModal>
|
|
24
|
+
|
|
31
25
|
<style>.flex {
|
|
32
26
|
display: flex;
|
|
33
27
|
flex-flow: column nowrap;
|
|
@@ -35,4 +29,4 @@
|
|
|
35
29
|
width: 100%;
|
|
36
30
|
flex: 1;
|
|
37
31
|
overflow: hidden;
|
|
38
|
-
}</style>
|
|
32
|
+
}</style>
|