@ibobbyts/svelte-ui-utils 0.4.2 → 0.4.4
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 +107 -10
- package/dist/data-table/FilterControl.svelte +30 -4
- package/dist/data-table/FilterControl.svelte.d.ts.map +1 -1
- package/dist/data-table/filter.d.ts +3 -1
- package/dist/data-table/filter.d.ts.map +1 -1
- package/dist/data-table/filter.js +4 -0
- package/dist/data-table/index.d.ts +1 -1
- package/dist/data-table/index.d.ts.map +1 -1
- package/dist/data-table/types.d.ts +41 -11
- package/dist/data-table/types.d.ts.map +1 -1
- package/dist/dialog/ConfirmDialog.svelte +2 -0
- package/dist/dialog/ConfirmDialog.svelte.d.ts +1 -0
- package/dist/dialog/ConfirmDialog.svelte.d.ts.map +1 -1
- package/dist/dialog/Dialog.svelte +22 -2
- package/dist/dialog/Dialog.svelte.d.ts +1 -0
- package/dist/dialog/Dialog.svelte.d.ts.map +1 -1
- package/dist/dropdown/Dropdown.svelte +419 -44
- package/dist/dropdown/Dropdown.svelte.d.ts +13 -1
- package/dist/dropdown/Dropdown.svelte.d.ts.map +1 -1
- package/dist/dropdown/DropdownMultiSelect.svelte +4 -0
- package/dist/dropdown/DropdownMultiSelect.svelte.d.ts +2 -0
- package/dist/dropdown/DropdownMultiSelect.svelte.d.ts.map +1 -1
- package/dist/dropdown/index.d.ts +1 -1
- package/dist/dropdown/index.d.ts.map +1 -1
- package/dist/dropdown/types.d.ts +21 -2
- package/dist/dropdown/types.d.ts.map +1 -1
- package/dist/dropdown-search/DropdownSearch.svelte +12 -10
- package/dist/dropdown-search/DropdownSearch.svelte.d.ts +2 -2
- package/dist/dropdown-search/DropdownSearch.svelte.d.ts.map +1 -1
- package/dist/dropdown-search/DropdownSearchMultiSelect.svelte +3 -3
- package/dist/dropdown-search/DropdownSearchMultiSelect.svelte.d.ts +2 -2
- package/dist/dropdown-search/index.d.ts +1 -1
- package/dist/dropdown-search/types.d.ts +10 -3
- package/dist/dropdown-search/types.d.ts.map +1 -1
- package/dist/pagination/Pagination.svelte +5 -4
- package/dist/pagination/Pagination.svelte.d.ts.map +1 -1
- package/dist/style.css +87 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -87,6 +87,12 @@ chosen side.
|
|
|
87
87
|
|
|
88
88
|
## DropdownSearch
|
|
89
89
|
|
|
90
|
+
`DropdownSearch` is the free-text input entry with server-driven validation
|
|
91
|
+
(`exactMatch`), input statuses, focus options, footer text, a clear button, and
|
|
92
|
+
multiselect chips. For a trigger-style dropdown that combines single or multi
|
|
93
|
+
select with async search and dynamic result groups, use the unified `Dropdown`
|
|
94
|
+
search mode instead.
|
|
95
|
+
|
|
90
96
|
```svelte
|
|
91
97
|
<script lang="ts">
|
|
92
98
|
import { DropdownSearch } from '@ibobbyts/svelte-ui-utils/dropdown-search';
|
|
@@ -114,12 +120,17 @@ chosen side.
|
|
|
114
120
|
|
|
115
121
|
```ts
|
|
116
122
|
{
|
|
117
|
-
|
|
118
|
-
|
|
123
|
+
value: '123',
|
|
124
|
+
label: 'Jane Doe',
|
|
119
125
|
param_dict: { ID: 'M-123' }
|
|
120
126
|
}
|
|
121
127
|
```
|
|
122
128
|
|
|
129
|
+
`label` is the display text and `value` is the submitted string identifier;
|
|
130
|
+
extra fields such as `param_dict` are preserved as business metadata. The
|
|
131
|
+
free-text `value` prop and `onChange` detail stay the raw input text, so they
|
|
132
|
+
never collide with the submitted `item.value`.
|
|
133
|
+
|
|
123
134
|
The input is valid when the server returns one unique `exactMatch`, or when the
|
|
124
135
|
user selects an item. Non-empty text without a unique match is invalid.
|
|
125
136
|
Set `validate={false}` when the field should only show selectable options and
|
|
@@ -159,7 +170,7 @@ same controlled contract:
|
|
|
159
170
|
placeholder="Search members"
|
|
160
171
|
selectedItems={selectedMembers}
|
|
161
172
|
selectedItemsLabel="Selected members"
|
|
162
|
-
removeSelectedItemLabel={(item) => `Remove ${item.
|
|
173
|
+
removeSelectedItemLabel={(item) => `Remove ${item.label}`}
|
|
163
174
|
{loadOptions}
|
|
164
175
|
onSelectedItemsChange={(items) => {
|
|
165
176
|
selectedMembers = items;
|
|
@@ -298,6 +309,7 @@ light and dark defaults and expose `--suu-sortable-table-row-*-light` and
|
|
|
298
309
|
blurBackdrop={true}
|
|
299
310
|
showCountdown={true}
|
|
300
311
|
countdownDurationMs={30000}
|
|
312
|
+
restoreFocusSelector="#edit-record-trigger"
|
|
301
313
|
onClose={() => (dialogOpen = false)}
|
|
302
314
|
>
|
|
303
315
|
<p>Dialog body content goes here.</p>
|
|
@@ -353,7 +365,10 @@ darkening, `blurBackdrop={true}` to blur content behind the dialog, and
|
|
|
353
365
|
countdown bar. The optional `padding` prop accepts a CSS padding shorthand and
|
|
354
366
|
applies it consistently to the dialog header, body, and footer. The default
|
|
355
367
|
section-specific spacing is preserved when `padding` is omitted, and the same
|
|
356
|
-
prop is available on all dialog wrapper components.
|
|
368
|
+
prop is available on all dialog wrapper components. Set `restoreFocusSelector`
|
|
369
|
+
when the opening control may be replaced while the dialog is open; after closing,
|
|
370
|
+
`Dialog` focuses the latest matching element and otherwise falls back to the
|
|
371
|
+
original connected element. `ConfirmDialog` forwards this prop to `Dialog`.
|
|
357
372
|
|
|
358
373
|
## Dropdown
|
|
359
374
|
|
|
@@ -367,12 +382,12 @@ prop is available on all dialog wrapper components.
|
|
|
367
382
|
} from '@ibobbyts/svelte-ui-utils/dropdown';
|
|
368
383
|
|
|
369
384
|
const pageSizeOptions: DropdownOption[] = [
|
|
370
|
-
{ label: '10', value: 10 },
|
|
371
|
-
{ label: '20', value: 20 },
|
|
372
|
-
{ label: '50', value: 50 }
|
|
385
|
+
{ label: '10', value: '10' },
|
|
386
|
+
{ label: '20', value: '20' },
|
|
387
|
+
{ label: '50', value: '50' }
|
|
373
388
|
];
|
|
374
389
|
|
|
375
|
-
let pageSize: DropdownValue = 20;
|
|
390
|
+
let pageSize: DropdownValue = '20';
|
|
376
391
|
</script>
|
|
377
392
|
|
|
378
393
|
<Dropdown
|
|
@@ -386,7 +401,10 @@ prop is available on all dialog wrapper components.
|
|
|
386
401
|
/>
|
|
387
402
|
```
|
|
388
403
|
|
|
389
|
-
`Dropdown` is a controlled select-like component for simple option lists.
|
|
404
|
+
`Dropdown` is a controlled select-like component for simple option lists.
|
|
405
|
+
Every option submits a string `value` while `label` stays the display text;
|
|
406
|
+
callers with numeric domain state convert with `String`/`Number` at the
|
|
407
|
+
boundary (the bundled `Pagination` does this for its numeric page size). Use
|
|
390
408
|
`placement="up"` when the menu should open above the trigger, such as bottom
|
|
391
409
|
pagination bars. The expanded menu shares the trigger's left edge by default;
|
|
392
410
|
use `menuAlign="right"` to align their right edges instead. `fitContent` sizes
|
|
@@ -511,10 +529,67 @@ relational pseudo-class.
|
|
|
511
529
|
The original flat `options` API remains available. New callers may opt into
|
|
512
530
|
grouped options with `optionGroups`; each group can have an
|
|
513
531
|
optional accessible label and its options keep the same keyboard and disabled
|
|
514
|
-
semantics.
|
|
532
|
+
semantics. Set `groupsCollapsedByDefault` to `"true"` to initially collapse
|
|
533
|
+
all groups, or to `"auto"` to initially expand only groups containing a
|
|
534
|
+
selected option; `"false"` is the default. The initial state is evaluated each
|
|
535
|
+
time the menu opens, and selecting options while it remains open does not
|
|
536
|
+
change the current collapsed state. Group headings can always be toggled
|
|
537
|
+
manually. `width`, `minWidth`, `maxWidth`, and `className` are optional styling
|
|
515
538
|
hooks. `onTriggerClick` runs before the dropdown toggles, so a nested control
|
|
516
539
|
can stop event propagation without preventing the dropdown from opening.
|
|
517
540
|
|
|
541
|
+
### Async search mode
|
|
542
|
+
|
|
543
|
+
Set `search={true}` and pass `loadOptions` to turn the menu into an async
|
|
544
|
+
search dropdown. The trigger stays a dropdown button; expanding it opens a menu
|
|
545
|
+
with an always-visible search input:
|
|
546
|
+
|
|
547
|
+
```svelte
|
|
548
|
+
<script lang="ts">
|
|
549
|
+
import { Dropdown, type DropdownLoadOptions } from '@ibobbyts/svelte-ui-utils';
|
|
550
|
+
|
|
551
|
+
let country = '';
|
|
552
|
+
|
|
553
|
+
const loadOptions: DropdownLoadOptions = async (query, { limit, signal }) => {
|
|
554
|
+
const params = new URLSearchParams({ q: query, limit: String(limit) });
|
|
555
|
+
const response = await fetch(`/api/countries?${params}`, { signal });
|
|
556
|
+
return response.json();
|
|
557
|
+
};
|
|
558
|
+
</script>
|
|
559
|
+
|
|
560
|
+
<Dropdown
|
|
561
|
+
value={country}
|
|
562
|
+
search
|
|
563
|
+
searchPlaceholder="Search countries"
|
|
564
|
+
{loadOptions}
|
|
565
|
+
ariaLabel="Country"
|
|
566
|
+
onChange={(next) => {
|
|
567
|
+
country = next;
|
|
568
|
+
}}
|
|
569
|
+
/>
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
`loadOptions(query, { limit, signal })` returns `{ options?, optionGroups? }`
|
|
573
|
+
whose options use `label`/`value` only. The empty query fires immediately on
|
|
574
|
+
every expand; typed queries are debounced with `searchDebounceMs` (default
|
|
575
|
+
`300`) and receive `searchLimit` (default `10`, clamped to `1..50`). When a
|
|
576
|
+
response contains `optionGroups`, the groups are the sole render source and any
|
|
577
|
+
flat `options` on the same response are ignored; empty groups stay hidden, and
|
|
578
|
+
an empty result renders the no-results row. Stale responses are discarded by
|
|
579
|
+
request order, closing the menu aborts the in-flight request, and a rejected
|
|
580
|
+
load shows the error row (override the text with `errorText`). Search-result
|
|
581
|
+
groups follow the same `groupsCollapsedByDefault` states as static groups; with
|
|
582
|
+
`"auto"` the collapse state is seeded once per open session, and manual toggles
|
|
583
|
+
survive later query refreshes within that session.
|
|
584
|
+
|
|
585
|
+
A single-select pick closes the menu; a multiselect pick keeps it open and
|
|
586
|
+
emits the complete selected array. Values picked during earlier queries stay
|
|
587
|
+
selected across new results. Search mode never falls back to the static
|
|
588
|
+
`options`/`optionGroups` props; without `search`, those props remain the only
|
|
589
|
+
render source and `loadOptions` is never called. Type the loader with
|
|
590
|
+
`DropdownLoadOptions`/`DropdownLoadOptionsResult`, exported from the package
|
|
591
|
+
root.
|
|
592
|
+
|
|
518
593
|
## DataTable
|
|
519
594
|
|
|
520
595
|
```svelte
|
|
@@ -701,6 +776,28 @@ and `var(--suu-radius)` corner radius as a bordered `DataTable`. Set
|
|
|
701
776
|
`filter.select` uses the shared `Dropdown` component, so select filters keep the
|
|
702
777
|
same menu, keyboard, and visual behavior as standalone dropdowns.
|
|
703
778
|
|
|
779
|
+
`filter.dropdown` maps a filter row onto the unified `Dropdown` API with
|
|
780
|
+
`label`/`value` options: pass static `options` or `optionGroups` (with
|
|
781
|
+
`groupsCollapsedByDefault`), set `multiselect` to collect an array, or set
|
|
782
|
+
`search` with `loadOptions` to run the async search flow inside the filter row:
|
|
783
|
+
|
|
784
|
+
```svelte
|
|
785
|
+
{
|
|
786
|
+
key: 'assignee',
|
|
787
|
+
title: 'Assignee',
|
|
788
|
+
filter: filter.dropdown({
|
|
789
|
+
value: assignee,
|
|
790
|
+
search: true,
|
|
791
|
+
loadOptions: searchUsers,
|
|
792
|
+
ariaLabel: 'Assignee',
|
|
793
|
+
width: '18rem',
|
|
794
|
+
onChange: (next) => {
|
|
795
|
+
assignee = next;
|
|
796
|
+
}
|
|
797
|
+
})
|
|
798
|
+
}
|
|
799
|
+
```
|
|
800
|
+
|
|
704
801
|
If a dropdown-style filter appears clipped, check the parent containers first.
|
|
705
802
|
`DropdownSearch` renders its result list as an absolutely positioned child, so
|
|
706
803
|
any ancestor with `overflow: hidden`, `overflow: auto`, or `overflow: scroll`
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
return `suu-filter-table__action suu-filter-table__action--${variant ?? 'outline'}`;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
function toggleCheckbox(value: string
|
|
19
|
+
function toggleCheckbox(value: string, checked: boolean) {
|
|
20
20
|
if (control.type !== 'checkbox') {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
width={control.width}
|
|
132
132
|
minWidth={control.minWidth}
|
|
133
133
|
maxWidth={control.maxWidth}
|
|
134
|
-
|
|
134
|
+
getItemLabel={control.getItemLabel}
|
|
135
135
|
loadOptions={control.loadOptions}
|
|
136
136
|
onChange={(detail) => control.type === 'dropdownSearch' && void control.onChange(detail)}
|
|
137
137
|
/>
|
|
@@ -214,11 +214,37 @@
|
|
|
214
214
|
ariaLabel={control.ariaLabel}
|
|
215
215
|
fitContent
|
|
216
216
|
onChange={(value) => {
|
|
217
|
-
if (control.type === 'select') {
|
|
218
|
-
void control.onChange(
|
|
217
|
+
if (control.type === 'select' && !Array.isArray(value)) {
|
|
218
|
+
void control.onChange(value);
|
|
219
219
|
}
|
|
220
220
|
}}
|
|
221
221
|
/>
|
|
222
|
+
{:else if control.type === 'dropdown'}
|
|
223
|
+
<Dropdown
|
|
224
|
+
value={control.value}
|
|
225
|
+
multiselect={control.multiselect}
|
|
226
|
+
options={control.options ?? []}
|
|
227
|
+
optionGroups={control.optionGroups}
|
|
228
|
+
groupsCollapsedByDefault={control.groupsCollapsedByDefault}
|
|
229
|
+
search={control.search}
|
|
230
|
+
loadOptions={control.loadOptions}
|
|
231
|
+
searchDebounceMs={control.searchDebounceMs}
|
|
232
|
+
searchLimit={control.searchLimit}
|
|
233
|
+
searchPlaceholder={control.searchPlaceholder}
|
|
234
|
+
errorText={control.errorText}
|
|
235
|
+
ariaLabel={control.ariaLabel}
|
|
236
|
+
placement={control.placement}
|
|
237
|
+
menuAlign={control.menuAlign}
|
|
238
|
+
fitViewport={control.fitViewport}
|
|
239
|
+
fitContent={control.fitContent ?? true}
|
|
240
|
+
disabled={control.disabled}
|
|
241
|
+
width={control.width}
|
|
242
|
+
minWidth={control.minWidth}
|
|
243
|
+
maxWidth={control.maxWidth}
|
|
244
|
+
portal={control.portal}
|
|
245
|
+
onChange={control.onChange}
|
|
246
|
+
onTriggerClick={control.onTriggerClick}
|
|
247
|
+
/>
|
|
222
248
|
{:else if control.type === 'dropdownMultiSelect'}
|
|
223
249
|
<DropdownMultiSelect
|
|
224
250
|
value={control.value}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterControl.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/FilterControl.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterControl.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/FilterControl.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA6JhD,QAAA,MAAM,aAAa,KAA+E,CAAC;AACjF,KAAK,aAAa,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAC1D,eAAe,aAAa,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CheckboxFilterControl, DateRangeFilterControl, DropdownMultiSelectFilterControl, DropdownSearchFilterControl, FilterButtonControl, FilterContainerControl, FilterControl, FilterLinkControl, FilterSelectControl, NumberRangeFilterControl, RadioFilterControl } from './types.js';
|
|
1
|
+
import type { CheckboxFilterControl, DateRangeFilterControl, DropdownFilterControl, DropdownMultiSelectFilterControl, DropdownSearchFilterControl, FilterButtonControl, FilterContainerControl, FilterControl, FilterLinkControl, FilterSelectControl, NumberRangeFilterControl, RadioFilterControl } from './types.js';
|
|
2
2
|
declare function checkbox(options: Omit<CheckboxFilterControl, 'type'>): CheckboxFilterControl;
|
|
3
3
|
declare function radio(options: Omit<RadioFilterControl, 'type'>): RadioFilterControl;
|
|
4
4
|
declare function dropdownSearch(options: Omit<DropdownSearchFilterControl, 'type'>): DropdownSearchFilterControl;
|
|
@@ -7,6 +7,7 @@ declare function numberRange(options: Omit<NumberRangeFilterControl, 'type'>): N
|
|
|
7
7
|
declare function button(options: Omit<FilterButtonControl, 'type'>): FilterButtonControl;
|
|
8
8
|
declare function link(options: Omit<FilterLinkControl, 'type'>): FilterLinkControl;
|
|
9
9
|
declare function select(options: Omit<FilterSelectControl, 'type'>): FilterSelectControl;
|
|
10
|
+
declare function dropdown(options: Omit<DropdownFilterControl, 'type'>): DropdownFilterControl;
|
|
10
11
|
declare function dropdownMultiSelect(options: Omit<DropdownMultiSelectFilterControl, 'type'>): DropdownMultiSelectFilterControl;
|
|
11
12
|
declare function container(controls: FilterControl[]): FilterContainerControl;
|
|
12
13
|
export declare const filter: {
|
|
@@ -18,6 +19,7 @@ export declare const filter: {
|
|
|
18
19
|
button: typeof button;
|
|
19
20
|
link: typeof link;
|
|
20
21
|
select: typeof select;
|
|
22
|
+
dropdown: typeof dropdown;
|
|
21
23
|
dropdownMultiSelect: typeof dropdownMultiSelect;
|
|
22
24
|
container: typeof container;
|
|
23
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,gCAAgC,EAChC,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,iBAAS,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG,qBAAqB,CAErF;AAED,iBAAS,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAE5E;AAED,iBAAS,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,GAAG,2BAA2B,CAEvG;AAED,iBAAS,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,GAAG,sBAAsB,CAExF;AAED,iBAAS,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,GAAG,wBAAwB,CAE9F;AAED,iBAAS,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,mBAAmB,CAE/E;AAED,iBAAS,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAEzE;AAED,iBAAS,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,mBAAmB,CAE/E;AAED,iBAAS,mBAAmB,CAC1B,OAAO,EAAE,IAAI,CAAC,gCAAgC,EAAE,MAAM,CAAC,GACtD,gCAAgC,CAElC;AAED,iBAAS,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,sBAAsB,CAEpE;AAED,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,gCAAgC,EAChC,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,iBAAS,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG,qBAAqB,CAErF;AAED,iBAAS,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAE5E;AAED,iBAAS,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,GAAG,2BAA2B,CAEvG;AAED,iBAAS,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,GAAG,sBAAsB,CAExF;AAED,iBAAS,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,GAAG,wBAAwB,CAE9F;AAED,iBAAS,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,mBAAmB,CAE/E;AAED,iBAAS,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAEzE;AAED,iBAAS,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,mBAAmB,CAE/E;AAED,iBAAS,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG,qBAAqB,CAErF;AAED,iBAAS,mBAAmB,CAC1B,OAAO,EAAE,IAAI,CAAC,gCAAgC,EAAE,MAAM,CAAC,GACtD,gCAAgC,CAElC;AAED,iBAAS,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,sBAAsB,CAEpE;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;CAYlB,CAAC"}
|
|
@@ -22,6 +22,9 @@ function link(options) {
|
|
|
22
22
|
function select(options) {
|
|
23
23
|
return { type: 'select', ...options };
|
|
24
24
|
}
|
|
25
|
+
function dropdown(options) {
|
|
26
|
+
return { type: 'dropdown', ...options };
|
|
27
|
+
}
|
|
25
28
|
function dropdownMultiSelect(options) {
|
|
26
29
|
return { type: 'dropdownMultiSelect', ...options };
|
|
27
30
|
}
|
|
@@ -37,6 +40,7 @@ export const filter = {
|
|
|
37
40
|
button,
|
|
38
41
|
link,
|
|
39
42
|
select,
|
|
43
|
+
dropdown,
|
|
40
44
|
dropdownMultiSelect,
|
|
41
45
|
container
|
|
42
46
|
};
|
|
@@ -8,5 +8,5 @@ export { resolveDateRangePreset } from './date-range.js';
|
|
|
8
8
|
export { getUiMessages, resolveUiLanguage, uiLanguages } from '../i18n.js';
|
|
9
9
|
export { getAriaSort, getCellValue, getPageCount, normalizePagination, setDataTableFilters, setDataTablePageSize, setDataTablePagination, setDataTableSort, toggleSort } from './state.js';
|
|
10
10
|
export type { UiLanguage, UiMessages } from '../i18n.js';
|
|
11
|
-
export type { CheckboxFilterDefinition, CheckboxFilterControl, DataTableColumn, DataTableCellValue, DataTableClassValue, DataTableHorizontalAlign, DataTableLayout, DataTablePaginationQueryKey, DataTableServerPagination, DataTableVerticalAlign, DateRangeFilterDefinition, DateRangeFilterControl, DateRangeFilterValue, DateRangePreset, DataTableRowAttributes, DataTableRowKey, DataTableSortChangeHandler, DataTableState, DataTableStateChangeHandler, DropdownSearchFilterDefinition, DropdownSearchFilterControl, DropdownMultiSelectFilterDefinition, DropdownMultiSelectFilterControl, FilterDefinition, FilterButtonControl, FilterContainerControl, FilterControl, FilterLinkControl, FilterOption, FilterSelectControl, FilterState, FilterTableRow, FilterValue, NumberRangeFilterDefinition, NumberRangeFilterControl, NumberRangeFilterValue, PaginationState, PaginationChangeHandler, PaginationDropdownPlacement, RadioFilterDefinition, RadioFilterControl, SortDirection, SortState } from './types.js';
|
|
11
|
+
export type { CheckboxFilterDefinition, CheckboxFilterControl, DataTableColumn, DataTableCellValue, DataTableClassValue, DataTableHorizontalAlign, DataTableLayout, DataTablePaginationQueryKey, DataTableServerPagination, DataTableVerticalAlign, DateRangeFilterDefinition, DateRangeFilterControl, DateRangeFilterValue, DateRangePreset, DataTableRowAttributes, DataTableRowKey, DataTableSortChangeHandler, DataTableState, DataTableStateChangeHandler, DropdownSearchFilterDefinition, DropdownSearchFilterControl, DropdownFilterDefinition, DropdownFilterControl, DropdownMultiSelectFilterDefinition, DropdownMultiSelectFilterControl, FilterDefinition, FilterButtonControl, FilterContainerControl, FilterControl, FilterLinkControl, FilterOption, FilterSelectControl, FilterState, FilterTableRow, FilterValue, NumberRangeFilterDefinition, NumberRangeFilterControl, NumberRangeFilterValue, PaginationState, PaginationChangeHandler, PaginationDropdownPlacement, RadioFilterDefinition, RadioFilterControl, SortDirection, SortState } from './types.js';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,mCAAmC,EACnC,gCAAgC,EAChC,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,WAAW,EACX,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACV,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,mCAAmC,EACnC,gCAAgC,EAChC,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,WAAW,EACX,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,SAAS,EACV,MAAM,YAAY,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { DropdownSearchChangeDetail, DropdownSearchItem,
|
|
2
|
-
import type { DropdownMenuAlign, DropdownMultiChangeHandler, DropdownMultiValue, DropdownOption, DropdownOptionGroup, DropdownPlacement, DropdownTriggerClickHandler } from '../dropdown/types.js';
|
|
1
|
+
import type { DropdownSearchChangeDetail, DropdownSearchItem, DropdownSearchItemLabelGetter, DropdownSearchLoadOptions, DropdownSearchStatus } from '../dropdown-search/types.js';
|
|
2
|
+
import type { DropdownLoadOptions, DropdownMenuAlign, DropdownMultiChangeHandler, DropdownMultiValue, DropdownOption, DropdownOptionGroup, DropdownPlacement, DropdownSelection, DropdownSelectionChangeHandler, DropdownTriggerClickHandler } from '../dropdown/types.js';
|
|
3
3
|
export type SortDirection = 'asc' | 'desc';
|
|
4
4
|
export type DataTableLayout = 'auto' | 'fixed';
|
|
5
5
|
export interface SortState {
|
|
@@ -53,7 +53,7 @@ export interface DataTableColumn<Row = unknown> {
|
|
|
53
53
|
}
|
|
54
54
|
export interface FilterOption {
|
|
55
55
|
label: string;
|
|
56
|
-
value: string
|
|
56
|
+
value: string;
|
|
57
57
|
disabled?: boolean;
|
|
58
58
|
}
|
|
59
59
|
export type FilterActionVariant = 'primary' | 'secondary' | 'outline' | 'ghost';
|
|
@@ -77,11 +77,37 @@ export interface FilterLinkControl {
|
|
|
77
77
|
}
|
|
78
78
|
export interface FilterSelectControl {
|
|
79
79
|
type: 'select';
|
|
80
|
-
value: string
|
|
80
|
+
value: string;
|
|
81
81
|
ariaLabel?: string;
|
|
82
82
|
options: FilterOption[];
|
|
83
83
|
onChange: (value: string) => void | Promise<void>;
|
|
84
84
|
}
|
|
85
|
+
export interface DropdownFilterControl {
|
|
86
|
+
type: 'dropdown';
|
|
87
|
+
value: DropdownSelection;
|
|
88
|
+
options?: DropdownOption[];
|
|
89
|
+
optionGroups?: DropdownOptionGroup[];
|
|
90
|
+
groupsCollapsedByDefault?: 'true' | 'false' | 'auto';
|
|
91
|
+
multiselect?: boolean;
|
|
92
|
+
search?: boolean;
|
|
93
|
+
loadOptions?: DropdownLoadOptions;
|
|
94
|
+
searchDebounceMs?: number;
|
|
95
|
+
searchLimit?: number;
|
|
96
|
+
searchPlaceholder?: string;
|
|
97
|
+
errorText?: string;
|
|
98
|
+
ariaLabel?: string;
|
|
99
|
+
placement?: DropdownPlacement;
|
|
100
|
+
menuAlign?: DropdownMenuAlign;
|
|
101
|
+
fitViewport?: boolean;
|
|
102
|
+
fitContent?: boolean;
|
|
103
|
+
disabled?: boolean;
|
|
104
|
+
width?: string;
|
|
105
|
+
minWidth?: string;
|
|
106
|
+
maxWidth?: string;
|
|
107
|
+
portal?: boolean;
|
|
108
|
+
onChange: DropdownSelectionChangeHandler;
|
|
109
|
+
onTriggerClick?: DropdownTriggerClickHandler;
|
|
110
|
+
}
|
|
85
111
|
export interface DropdownMultiSelectFilterControl {
|
|
86
112
|
type: 'dropdownMultiSelect';
|
|
87
113
|
value: DropdownMultiValue;
|
|
@@ -114,16 +140,16 @@ export interface NumberRangeFilterValue {
|
|
|
114
140
|
}
|
|
115
141
|
export interface CheckboxFilterControl {
|
|
116
142
|
type: 'checkbox';
|
|
117
|
-
value:
|
|
143
|
+
value: string[];
|
|
118
144
|
options: FilterOption[];
|
|
119
145
|
optionGroups?: DropdownOptionGroup[];
|
|
120
|
-
onChange: (value:
|
|
146
|
+
onChange: (value: string[]) => void | Promise<void>;
|
|
121
147
|
}
|
|
122
148
|
export interface RadioFilterControl {
|
|
123
149
|
type: 'radio';
|
|
124
|
-
value: string |
|
|
150
|
+
value: string | null | undefined;
|
|
125
151
|
options: FilterOption[];
|
|
126
|
-
onChange: (value: string
|
|
152
|
+
onChange: (value: string) => void | Promise<void>;
|
|
127
153
|
}
|
|
128
154
|
export interface DropdownSearchFilterControl {
|
|
129
155
|
type: 'dropdownSearch';
|
|
@@ -146,7 +172,7 @@ export interface DropdownSearchFilterControl {
|
|
|
146
172
|
width?: string;
|
|
147
173
|
minWidth?: string;
|
|
148
174
|
maxWidth?: string;
|
|
149
|
-
|
|
175
|
+
getItemLabel?: DropdownSearchItemLabelGetter;
|
|
150
176
|
loadOptions: DropdownSearchLoadOptions;
|
|
151
177
|
onChange: (detail: DropdownSearchChangeDetail) => void | Promise<void>;
|
|
152
178
|
}
|
|
@@ -178,7 +204,7 @@ export interface FilterContainerControl {
|
|
|
178
204
|
type: 'container';
|
|
179
205
|
controls: FilterControl[];
|
|
180
206
|
}
|
|
181
|
-
export type FilterControl = CheckboxFilterControl | RadioFilterControl | DropdownSearchFilterControl | DateRangeFilterControl | NumberRangeFilterControl | FilterButtonControl | FilterLinkControl | FilterSelectControl | DropdownMultiSelectFilterControl | FilterContainerControl;
|
|
207
|
+
export type FilterControl = CheckboxFilterControl | RadioFilterControl | DropdownSearchFilterControl | DateRangeFilterControl | NumberRangeFilterControl | FilterButtonControl | FilterLinkControl | FilterSelectControl | DropdownFilterControl | DropdownMultiSelectFilterControl | FilterContainerControl;
|
|
182
208
|
export interface FilterTableRow {
|
|
183
209
|
key: string;
|
|
184
210
|
title: string;
|
|
@@ -196,6 +222,10 @@ export type DropdownSearchFilterDefinition = DropdownSearchFilterControl & {
|
|
|
196
222
|
key: string;
|
|
197
223
|
label: string;
|
|
198
224
|
};
|
|
225
|
+
export type DropdownFilterDefinition = DropdownFilterControl & {
|
|
226
|
+
key: string;
|
|
227
|
+
label: string;
|
|
228
|
+
};
|
|
199
229
|
export type DropdownMultiSelectFilterDefinition = DropdownMultiSelectFilterControl & {
|
|
200
230
|
key: string;
|
|
201
231
|
label: string;
|
|
@@ -208,5 +238,5 @@ export type NumberRangeFilterDefinition = NumberRangeFilterControl & {
|
|
|
208
238
|
key: string;
|
|
209
239
|
label: string;
|
|
210
240
|
};
|
|
211
|
-
export type FilterDefinition = CheckboxFilterDefinition | RadioFilterDefinition | DropdownSearchFilterDefinition | DropdownMultiSelectFilterDefinition | DateRangeFilterDefinition | NumberRangeFilterDefinition;
|
|
241
|
+
export type FilterDefinition = CheckboxFilterDefinition | RadioFilterDefinition | DropdownSearchFilterDefinition | DropdownFilterDefinition | DropdownMultiSelectFilterDefinition | DateRangeFilterDefinition | NumberRangeFilterDefinition;
|
|
212
242
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,6BAA6B,EAC7B,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/C,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,MAAM,0BAA0B,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnF,MAAM,MAAM,2BAA2B,GAAG,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEvF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IACvC,SAAS,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AAE5D,MAAM,MAAM,uBAAuB,GAAG,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5F,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,oBAAoB,GACpB,sBAAsB,GACtB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEzC,MAAM,MAAM,mBAAmB,CAAC,GAAG,GAAG,OAAO,IACzC,MAAM,GACN,SAAS,GACT,IAAI,GACJ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;AAEvG,MAAM,MAAM,eAAe,CAAC,GAAG,GAAG,OAAO,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC,CAAC;AAErG,MAAM,MAAM,sBAAsB,CAAC,GAAG,GAAG,OAAO,IAAI,CAClD,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAElE,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,eAAe,CAAC,GAAG,GAAG,OAAO;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,wBAAwB,CAAC;IACjD,mBAAmB,CAAC,EAAE,sBAAsB,CAAC;IAC7C,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,KAAK,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,kBAAkB,CAAC;CACzE;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
export let showCountdown = false;
|
|
26
26
|
export let countdownDurationMs = 0;
|
|
27
27
|
export let countdownLabel = 'Dialog countdown';
|
|
28
|
+
export let restoreFocusSelector: string | undefined = undefined;
|
|
28
29
|
export let onConfirm: (() => void | Promise<void>) | undefined = undefined;
|
|
29
30
|
export let onCancel: (() => void) | undefined = undefined;
|
|
30
31
|
export let onClose: (() => void) | undefined = undefined;
|
|
@@ -59,6 +60,7 @@
|
|
|
59
60
|
{showCountdown}
|
|
60
61
|
{countdownDurationMs}
|
|
61
62
|
{countdownLabel}
|
|
63
|
+
{restoreFocusSelector}
|
|
62
64
|
onClose={handleClose}
|
|
63
65
|
>
|
|
64
66
|
<slot>
|
|
@@ -39,6 +39,7 @@ declare const ConfirmDialog: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_P
|
|
|
39
39
|
showCountdown?: boolean;
|
|
40
40
|
countdownDurationMs?: number;
|
|
41
41
|
countdownLabel?: string;
|
|
42
|
+
restoreFocusSelector?: string | undefined;
|
|
42
43
|
onConfirm?: (() => void | Promise<void>) | undefined;
|
|
43
44
|
onCancel?: (() => void) | undefined;
|
|
44
45
|
onClose?: (() => void) | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmDialog.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/dialog/ConfirmDialog.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfirmDialog.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/dialog/ConfirmDialog.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAmElE,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,aAAa;;;;;;;aAfq1B,mBAAmB;WAAS,UAAU;cAAY,MAAM,GAAG,SAAS;;;;;;;;sBAA8R,MAAM,GAAG,MAAM;;;;;2BAA6L,MAAM,GAAG,SAAS;gBAAc,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS;eAAa,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;cAAY,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;;;;;;;cAe/7C,CAAC;AACvF,KAAK,aAAa,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAC1D,eAAe,aAAa,CAAC"}
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
export let countdownLabel = 'Dialog countdown';
|
|
24
24
|
export let labelledBy: string | undefined = undefined;
|
|
25
25
|
export let describedBy: string | undefined = undefined;
|
|
26
|
+
export let restoreFocusSelector: string | undefined = undefined;
|
|
26
27
|
export let onClose: (() => void) | undefined = undefined;
|
|
27
28
|
|
|
28
29
|
let dialogElement: HTMLElement | undefined;
|
|
@@ -30,6 +31,7 @@
|
|
|
30
31
|
let descriptionId = `suu-dialog-description-${Math.random().toString(36).slice(2)}`;
|
|
31
32
|
let wasOpen = false;
|
|
32
33
|
let previouslyFocusedElement: HTMLElement | null = null;
|
|
34
|
+
let restoreFocusSelectorAtOpen: string | undefined;
|
|
33
35
|
|
|
34
36
|
$: resolvedLabelledBy = labelledBy ?? (title ? titleId : undefined);
|
|
35
37
|
$: resolvedDescribedBy =
|
|
@@ -52,15 +54,33 @@
|
|
|
52
54
|
document.activeElement instanceof HTMLElement
|
|
53
55
|
? document.activeElement
|
|
54
56
|
: null;
|
|
57
|
+
restoreFocusSelectorAtOpen = restoreFocusSelector;
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
await tick();
|
|
58
61
|
dialogElement?.focus();
|
|
59
62
|
}
|
|
60
63
|
|
|
61
|
-
function restoreFocus() {
|
|
62
|
-
previouslyFocusedElement
|
|
64
|
+
async function restoreFocus() {
|
|
65
|
+
const previousTarget = previouslyFocusedElement;
|
|
66
|
+
const selectorAtOpen = restoreFocusSelectorAtOpen;
|
|
63
67
|
previouslyFocusedElement = null;
|
|
68
|
+
restoreFocusSelectorAtOpen = undefined;
|
|
69
|
+
if (!previousTarget && !selectorAtOpen) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
await tick();
|
|
74
|
+
const replacementTarget = selectorAtOpen
|
|
75
|
+
? document.querySelector(selectorAtOpen)
|
|
76
|
+
: null;
|
|
77
|
+
const target =
|
|
78
|
+
replacementTarget instanceof HTMLElement
|
|
79
|
+
? replacementTarget
|
|
80
|
+
: previousTarget?.isConnected
|
|
81
|
+
? previousTarget
|
|
82
|
+
: null;
|
|
83
|
+
target?.focus();
|
|
64
84
|
}
|
|
65
85
|
|
|
66
86
|
function requestClose() {
|
|
@@ -37,6 +37,7 @@ declare const Dialog: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWit
|
|
|
37
37
|
countdownLabel?: string;
|
|
38
38
|
labelledBy?: string | undefined;
|
|
39
39
|
describedBy?: string | undefined;
|
|
40
|
+
restoreFocusSelector?: string | undefined;
|
|
40
41
|
onClose?: (() => void) | undefined;
|
|
41
42
|
}, {
|
|
42
43
|
default: {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/dialog/Dialog.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Dialog.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/dialog/Dialog.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0J7C,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,MAAM;;;;;WAfksB,UAAU;cAAY,MAAM,GAAG,SAAS;;;;;;;sBAAsP,MAAM,GAAG,MAAM;;;;;iBAAmL,MAAM,GAAG,SAAS;kBAAgB,MAAM,GAAG,SAAS;2BAAyB,MAAM,GAAG,SAAS;cAAY,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;;;;;;;;;cAehtC,CAAC;AAChF,KAAK,MAAM,GAAG,YAAY,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,eAAe,MAAM,CAAC"}
|