@ibobbyts/svelte-ui-utils 0.4.7 → 0.5.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 +3 -110
- package/dist/data-table/FilterControl.svelte +135 -27
- package/dist/data-table/FilterControl.svelte.d.ts.map +1 -1
- package/dist/data-table/types.d.ts +36 -1
- package/dist/data-table/types.d.ts.map +1 -1
- package/dist/dropdown/Dropdown.svelte +27 -11
- package/dist/dropdown/Dropdown.svelte.d.ts +1 -1
- package/dist/dropdown/Dropdown.svelte.d.ts.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/style.css +12 -282
- package/package.json +2 -11
- package/dist/dropdown-search/DropdownSearch.svelte +0 -725
- package/dist/dropdown-search/DropdownSearch.svelte.d.ts +0 -62
- package/dist/dropdown-search/DropdownSearch.svelte.d.ts.map +0 -1
- package/dist/dropdown-search/DropdownSearchMultiSelect.svelte +0 -94
- package/dist/dropdown-search/DropdownSearchMultiSelect.svelte.d.ts +0 -54
- package/dist/dropdown-search/DropdownSearchMultiSelect.svelte.d.ts.map +0 -1
- package/dist/dropdown-search/index.d.ts +0 -7
- package/dist/dropdown-search/index.d.ts.map +0 -1
- package/dist/dropdown-search/index.js +0 -4
- package/dist/dropdown-search/state.d.ts +0 -17
- package/dist/dropdown-search/state.d.ts.map +0 -1
- package/dist/dropdown-search/state.js +0 -51
- package/dist/dropdown-search/types.d.ts +0 -39
- package/dist/dropdown-search/types.d.ts.map +0 -1
- package/dist/dropdown-search/types.js +0 -1
package/README.md
CHANGED
|
@@ -40,7 +40,6 @@ import '@ibobbyts/svelte-ui-utils/style.css';
|
|
|
40
40
|
<script lang="ts">
|
|
41
41
|
import { ToastManager, toast } from '@ibobbyts/svelte-ui-utils/toast';
|
|
42
42
|
import { Dropdown } from '@ibobbyts/svelte-ui-utils/dropdown';
|
|
43
|
-
import { DropdownSearch, DropdownSearchMultiSelect } from '@ibobbyts/svelte-ui-utils/dropdown-search';
|
|
44
43
|
import { Dialog, ConfirmDialog, InputDialog, CsvUploadDialog, ImagePreviewDialog, PasswordCopyDialog } from '@ibobbyts/svelte-ui-utils/dialog';
|
|
45
44
|
import { DataTable, DateRangeFilter, FilterTable, NumberRangeFilter } from '@ibobbyts/svelte-ui-utils/table';
|
|
46
45
|
</script>
|
|
@@ -49,7 +48,7 @@ import '@ibobbyts/svelte-ui-utils/style.css';
|
|
|
49
48
|
The package root also re-exports the public modules:
|
|
50
49
|
|
|
51
50
|
```ts
|
|
52
|
-
import { ToastManager, Dropdown,
|
|
51
|
+
import { ToastManager, Dropdown, Dialog, DataTable } from '@ibobbyts/svelte-ui-utils';
|
|
53
52
|
```
|
|
54
53
|
|
|
55
54
|
## Toast
|
|
@@ -85,103 +84,6 @@ moves. Set `placement="up"` or `placement="down"` to force a direction. Use
|
|
|
85
84
|
`fitViewport={false}` to disable the default panel-height constraint for the
|
|
86
85
|
chosen side.
|
|
87
86
|
|
|
88
|
-
## DropdownSearch
|
|
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
|
-
|
|
96
|
-
```svelte
|
|
97
|
-
<script lang="ts">
|
|
98
|
-
import { DropdownSearch } from '@ibobbyts/svelte-ui-utils/dropdown-search';
|
|
99
|
-
|
|
100
|
-
async function loadOptions(query, { limit, signal }) {
|
|
101
|
-
const response = await fetch(`/api/search?q=${encodeURIComponent(query)}&limit=${limit}`, { signal });
|
|
102
|
-
return response.json();
|
|
103
|
-
}
|
|
104
|
-
</script>
|
|
105
|
-
|
|
106
|
-
<DropdownSearch
|
|
107
|
-
language="en_us"
|
|
108
|
-
placeholder="Search"
|
|
109
|
-
debounceMs={500}
|
|
110
|
-
clearLabel="Clear search"
|
|
111
|
-
width="24rem"
|
|
112
|
-
maxWidth="100%"
|
|
113
|
-
{loadOptions}
|
|
114
|
-
searchOnExternalValueChange={true}
|
|
115
|
-
closeOnValid={true}
|
|
116
|
-
/>
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
`loadOptions` returns `{ options, exactMatch }`. An item uses this shape:
|
|
120
|
-
|
|
121
|
-
```ts
|
|
122
|
-
{
|
|
123
|
-
value: '123',
|
|
124
|
-
label: 'Jane Doe',
|
|
125
|
-
param_dict: { ID: 'M-123' }
|
|
126
|
-
}
|
|
127
|
-
```
|
|
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
|
-
|
|
134
|
-
The input is valid when the server returns one unique `exactMatch`, or when the
|
|
135
|
-
user selects an item. Non-empty text without a unique match is invalid.
|
|
136
|
-
Set `validate={false}` when the field should only show selectable options and
|
|
137
|
-
stay visually neutral instead of turning green or red. In that mode the
|
|
138
|
-
component ignores `exactMatch` for status and auto-selection.
|
|
139
|
-
Use `searchOnExternalValueChange` for scanner or programmatic input workflows.
|
|
140
|
-
Set `closeOnValid={true}` to hide the result list after validation finds a
|
|
141
|
-
usable exact match. The default is `false`, so existing validated searches keep
|
|
142
|
-
showing their current result list until the field closes or the user selects an
|
|
143
|
-
option.
|
|
144
|
-
Use `showOptionsOnFocus={true}` with `focusOptions` to show a controlled set of
|
|
145
|
-
options as soon as the field receives focus, including when the current value is
|
|
146
|
-
empty or already valid. Pass `footerText` to render a non-selectable note below
|
|
147
|
-
the options, separated by a divider.
|
|
148
|
-
When the input has text, `DropdownSearch` shows an internal clear button on the
|
|
149
|
-
right side of the field. Use `clearLabel` to localize that button's accessible
|
|
150
|
-
label, or use `language` to select the package default.
|
|
151
|
-
Use `width`, `minWidth`, and `maxWidth` to size the control directly when a
|
|
152
|
-
wrapper is not convenient.
|
|
153
|
-
Server-side code and Node tests that only need pure helpers should import from
|
|
154
|
-
`@ibobbyts/svelte-ui-utils/dropdown-search/state` so they do not load Svelte
|
|
155
|
-
component files.
|
|
156
|
-
|
|
157
|
-
Set `multiselect={true}` when the search box should collect multiple selected
|
|
158
|
-
items as chips. `DropdownSearchMultiSelect` is a convenience wrapper with the
|
|
159
|
-
same controlled contract:
|
|
160
|
-
|
|
161
|
-
```svelte
|
|
162
|
-
<script lang="ts">
|
|
163
|
-
import { DropdownSearchMultiSelect, type DropdownSearchItem } from '@ibobbyts/svelte-ui-utils/dropdown-search';
|
|
164
|
-
|
|
165
|
-
let selectedMembers: DropdownSearchItem[] = [];
|
|
166
|
-
</script>
|
|
167
|
-
|
|
168
|
-
<DropdownSearchMultiSelect
|
|
169
|
-
language="en_us"
|
|
170
|
-
placeholder="Search members"
|
|
171
|
-
selectedItems={selectedMembers}
|
|
172
|
-
selectedItemsLabel="Selected members"
|
|
173
|
-
removeSelectedItemLabel={(item) => `Remove ${item.label}`}
|
|
174
|
-
{loadOptions}
|
|
175
|
-
onSelectedItemsChange={(items) => {
|
|
176
|
-
selectedMembers = items;
|
|
177
|
-
}}
|
|
178
|
-
/>
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
In multiselect mode, the text input remains a search query. Selecting an item
|
|
182
|
-
adds or removes it from `selectedItems`, clears the query, and emits both
|
|
183
|
-
`onChange` and `onSelectedItemsChange`.
|
|
184
|
-
|
|
185
87
|
## SortableList
|
|
186
88
|
|
|
187
89
|
`SortableList` provides controlled vertical HTML5 drag-and-drop ordering. Each
|
|
@@ -417,8 +319,8 @@ the menu to its longest option while keeping the selected edge aligned.
|
|
|
417
319
|
`DataTable` uses this same component for its page-size picker.
|
|
418
320
|
|
|
419
321
|
Set `search={true}` with `loadOptions` to load remote options as the user
|
|
420
|
-
types. The default `
|
|
421
|
-
expanded menu. Set `
|
|
322
|
+
types. The default `inputStyle="dropdown"` keeps the search field inside the
|
|
323
|
+
expanded menu. Set `inputStyle="input"` to render a directly editable input;
|
|
422
324
|
results appear while it is focused and hide on blur. In input style, the
|
|
423
325
|
optional `getItemLabel` callback controls the displayed label while `value`
|
|
424
326
|
and `onChange` continue to represent submitted option values. The input style
|
|
@@ -766,10 +668,8 @@ for the left column and a controlled filter created with the `filter` helper:
|
|
|
766
668
|
filter.dropdownSearch({
|
|
767
669
|
value: searchValue,
|
|
768
670
|
selectedItem,
|
|
769
|
-
status: searchStatus,
|
|
770
671
|
width: '24rem',
|
|
771
672
|
maxWidth: '100%',
|
|
772
|
-
clearLabel: 'Clear search',
|
|
773
673
|
loadOptions,
|
|
774
674
|
onChange: (detail) => updateSearch(detail)
|
|
775
675
|
}),
|
|
@@ -811,13 +711,6 @@ same menu, keyboard, and visual behavior as standalone dropdowns.
|
|
|
811
711
|
}
|
|
812
712
|
```
|
|
813
713
|
|
|
814
|
-
If a dropdown-style filter appears clipped, check the parent containers first.
|
|
815
|
-
`DropdownSearch` renders its result list as an absolutely positioned child, so
|
|
816
|
-
any ancestor with `overflow: hidden`, `overflow: auto`, or `overflow: scroll`
|
|
817
|
-
can clip the menu even when the menu has a high `z-index`. Keep the nearest
|
|
818
|
-
filter container at `overflow: visible`, or move the clipping/scrolling behavior
|
|
819
|
-
to a parent that does not wrap the dropdown menu directly.
|
|
820
|
-
|
|
821
714
|
`dateRange` renders two browser date inputs, preset buttons, and quick month/year
|
|
822
715
|
selects. The presets are `last 24 hours`, `last 7 days`, `last 30 days`,
|
|
823
716
|
`today`, `this week`, `this month`, and `this year`. Manual changes and quick
|
|
@@ -3,11 +3,16 @@
|
|
|
3
3
|
<script lang="ts">
|
|
4
4
|
import Dropdown from '../dropdown/Dropdown.svelte';
|
|
5
5
|
import DropdownMultiSelect from '../dropdown/DropdownMultiSelect.svelte';
|
|
6
|
-
import
|
|
6
|
+
import type {
|
|
7
|
+
DropdownLoadContext,
|
|
8
|
+
DropdownLoadOptionsResult,
|
|
9
|
+
DropdownOption,
|
|
10
|
+
DropdownSelection
|
|
11
|
+
} from '../dropdown/types.js';
|
|
7
12
|
import type { UiLanguage } from '../i18n.js';
|
|
8
13
|
import DateRangeFilter from './DateRangeFilter.svelte';
|
|
9
14
|
import NumberRangeFilter from './NumberRangeFilter.svelte';
|
|
10
|
-
import type { FilterControl } from './types.js';
|
|
15
|
+
import type { DropdownSearchChangeDetail, DropdownSearchItem, FilterControl } from './types.js';
|
|
11
16
|
|
|
12
17
|
export let control: FilterControl;
|
|
13
18
|
export let language: UiLanguage = 'en_us';
|
|
@@ -32,6 +37,111 @@
|
|
|
32
37
|
}
|
|
33
38
|
}
|
|
34
39
|
|
|
40
|
+
// The removed DropdownSearch spoke free text in `value` while the root
|
|
41
|
+
// Dropdown reports option identifiers. This adapter keeps the legacy
|
|
42
|
+
// `{ value: label, selectedItem, selectedItems, status }` detail by resolving
|
|
43
|
+
// each identifier back to the item that loadOptions returned.
|
|
44
|
+
let dropdownSearchQuery = '';
|
|
45
|
+
const dropdownSearchItems = new Map<string, DropdownSearchItem>();
|
|
46
|
+
|
|
47
|
+
function resolveDropdownSearchItemLabel(item: DropdownSearchItem): string {
|
|
48
|
+
return control.type === 'dropdownSearch' && control.getItemLabel
|
|
49
|
+
? control.getItemLabel(item)
|
|
50
|
+
: item.label;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// The root Dropdown types labels against its own option shape; the options it
|
|
54
|
+
// hands back are the very `DropdownSearchItem` objects we returned, so the
|
|
55
|
+
// structural widening is lossless for consumers' getItemLabel callbacks.
|
|
56
|
+
function dropdownSearchOptionLabel(option: DropdownOption): string {
|
|
57
|
+
return resolveDropdownSearchItemLabel(option as DropdownSearchItem);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function findDropdownSearchItem(identifier: string): DropdownSearchItem | undefined {
|
|
61
|
+
const cached = dropdownSearchItems.get(identifier);
|
|
62
|
+
if (cached !== undefined) {
|
|
63
|
+
return cached;
|
|
64
|
+
}
|
|
65
|
+
if (control.type === 'dropdownSearch' && control.selectedItem?.value === identifier) {
|
|
66
|
+
return control.selectedItem;
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
async function loadDropdownSearchOptions(
|
|
72
|
+
rawQuery: string,
|
|
73
|
+
context: DropdownLoadContext
|
|
74
|
+
): Promise<DropdownLoadOptionsResult> {
|
|
75
|
+
if (control.type !== 'dropdownSearch') {
|
|
76
|
+
return { options: [] };
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const query = rawQuery.trim();
|
|
80
|
+
// minLength has no root Dropdown counterpart, so the wrapper keeps the old
|
|
81
|
+
// "below threshold returns no options" contract itself.
|
|
82
|
+
if (query.length < (control.minLength ?? 1)) {
|
|
83
|
+
return { options: [] };
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const result = await control.loadOptions(query, context);
|
|
87
|
+
// Stale responses must not seed the identifier cache either.
|
|
88
|
+
if (context.signal.aborted) {
|
|
89
|
+
return { options: [] };
|
|
90
|
+
}
|
|
91
|
+
const items = result?.options ?? [];
|
|
92
|
+
for (const item of items) {
|
|
93
|
+
dropdownSearchItems.set(item.value, item);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return { options: items };
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function handleDropdownSearchQueryChange(query: string) {
|
|
100
|
+
dropdownSearchQuery = query;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function handleDropdownSearchChange(selection: DropdownSelection) {
|
|
104
|
+
if (control.type !== 'dropdownSearch') {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const identifier = Array.isArray(selection) ? (selection[0] ?? '') : selection;
|
|
109
|
+
// The root Dropdown reports an empty identifier when the user types over a
|
|
110
|
+
// controlled selection (input/value divergence). That divergent-clear is
|
|
111
|
+
// dropped so `onChange` stays a selection-change (submit) event; a real
|
|
112
|
+
// selection always carries a non-empty identifier.
|
|
113
|
+
if (!identifier) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const item = findDropdownSearchItem(identifier);
|
|
117
|
+
const detail: DropdownSearchChangeDetail = {
|
|
118
|
+
value: item ? resolveDropdownSearchItemLabel(item) : identifier,
|
|
119
|
+
selectedItem: item ?? null,
|
|
120
|
+
selectedItems: [],
|
|
121
|
+
status: item ? 'valid' : dropdownSearchQuery.trim() ? 'invalid' : 'empty'
|
|
122
|
+
};
|
|
123
|
+
void control.onChange(detail);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// External value/selected-item changes rebuild the root Dropdown instance:
|
|
127
|
+
// controlled `value` resets its internal query, results, and draft, and
|
|
128
|
+
// `selectedOptions` then displays the new selection.
|
|
129
|
+
$: dropdownSearchKey = control.type === 'dropdownSearch'
|
|
130
|
+
? `${control.value}\u0000${control.selectedItem?.value ?? ''}`
|
|
131
|
+
: '';
|
|
132
|
+
// A selected item displays through `selectedOptions`; a free-text external
|
|
133
|
+
// value has no option to resolve and falls back to the Dropdown value itself.
|
|
134
|
+
$: dropdownSearchValue = control.type === 'dropdownSearch'
|
|
135
|
+
? control.selectedItem
|
|
136
|
+
? control.selectedItem.value
|
|
137
|
+
: control.value
|
|
138
|
+
: '';
|
|
139
|
+
// The raw item is handed to the Dropdown untouched so its `getItemLabel` prop
|
|
140
|
+
// is the single label conversion on the display path.
|
|
141
|
+
$: dropdownSearchSelectedOptions = control.type === 'dropdownSearch' && control.selectedItem
|
|
142
|
+
? [control.selectedItem]
|
|
143
|
+
: [];
|
|
144
|
+
|
|
35
145
|
</script>
|
|
36
146
|
|
|
37
147
|
{#if control.type === 'container'}
|
|
@@ -110,31 +220,29 @@
|
|
|
110
220
|
{/each}
|
|
111
221
|
</div>
|
|
112
222
|
{:else if control.type === 'dropdownSearch'}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
onChange={(detail) => control.type === 'dropdownSearch' && void control.onChange(detail)}
|
|
137
|
-
/>
|
|
223
|
+
{#key dropdownSearchKey}
|
|
224
|
+
<Dropdown
|
|
225
|
+
value={dropdownSearchValue}
|
|
226
|
+
search
|
|
227
|
+
inputStyle="input"
|
|
228
|
+
portal
|
|
229
|
+
selectedOptions={dropdownSearchSelectedOptions}
|
|
230
|
+
loadOptions={loadDropdownSearchOptions}
|
|
231
|
+
searchDebounceMs={control.debounceMs ?? 500}
|
|
232
|
+
searchLimit={control.limit ?? 10}
|
|
233
|
+
placeholder={control.placeholder ?? ''}
|
|
234
|
+
ariaLabel={control.ariaLabel}
|
|
235
|
+
{language}
|
|
236
|
+
noResultsText={control.noResultsText}
|
|
237
|
+
loadingText={control.loadingText}
|
|
238
|
+
width={control.width}
|
|
239
|
+
minWidth={control.minWidth}
|
|
240
|
+
maxWidth={control.maxWidth}
|
|
241
|
+
getItemLabel={dropdownSearchOptionLabel}
|
|
242
|
+
onChange={handleDropdownSearchChange}
|
|
243
|
+
onSearchChange={handleDropdownSearchQueryChange}
|
|
244
|
+
/>
|
|
245
|
+
{/key}
|
|
138
246
|
{:else if control.type === 'dateRange'}
|
|
139
247
|
<DateRangeFilter
|
|
140
248
|
value={control.value}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterControl.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/FilterControl.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FilterControl.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/FilterControl.svelte.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAkD,aAAa,EAAE,MAAM,YAAY,CAAC;AAwQhG,QAAA,MAAM,aAAa,KAA+E,CAAC;AACjF,KAAK,aAAa,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAC1D,eAAe,aAAa,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { DropdownSearchChangeDetail, DropdownSearchItem, DropdownSearchItemLabelGetter, DropdownSearchLoadOptions, DropdownSearchStatus } from '../dropdown-search/types.js';
|
|
2
1
|
import type { DropdownLoadOptions, DropdownMenuAlign, DropdownMultiChangeHandler, DropdownMultiValue, DropdownOption, DropdownOptionGroup, DropdownPlacement, DropdownSelection, DropdownSelectionChangeHandler, DropdownTriggerClickHandler } from '../dropdown/types.js';
|
|
3
2
|
export type SortDirection = 'asc' | 'desc';
|
|
4
3
|
export type DataTableLayout = 'auto' | 'fixed';
|
|
@@ -187,6 +186,42 @@ export interface RadioFilterControl {
|
|
|
187
186
|
options: FilterOption[];
|
|
188
187
|
onChange: (value: string) => void | Promise<void>;
|
|
189
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Data-table-local copy of the structural types that the removed free-text
|
|
191
|
+
* search component family used to host. The `dropdownSearch` filter control
|
|
192
|
+
* contract is unchanged; only that module is gone.
|
|
193
|
+
*/
|
|
194
|
+
export type DropdownSearchStatus = 'empty' | 'loading' | 'valid' | 'invalid' | 'error';
|
|
195
|
+
/**
|
|
196
|
+
* Search options and selected chips use the unified label/value contract:
|
|
197
|
+
* `label` is the display text, `value` is the submitted string identifier.
|
|
198
|
+
* Extra business fields (e.g. `param_dict`) are preserved as metadata.
|
|
199
|
+
*/
|
|
200
|
+
export interface DropdownSearchItem {
|
|
201
|
+
label: string;
|
|
202
|
+
value: string;
|
|
203
|
+
param_dict?: Record<string, string | number | null>;
|
|
204
|
+
disabled?: boolean;
|
|
205
|
+
[key: string]: unknown;
|
|
206
|
+
}
|
|
207
|
+
export interface DropdownSearchLoadContext {
|
|
208
|
+
limit: number;
|
|
209
|
+
signal: AbortSignal;
|
|
210
|
+
}
|
|
211
|
+
export interface DropdownSearchResult {
|
|
212
|
+
options: DropdownSearchItem[];
|
|
213
|
+
exactMatch?: DropdownSearchItem | null;
|
|
214
|
+
}
|
|
215
|
+
export type DropdownSearchLoadOptions = (query: string, context: DropdownSearchLoadContext) => Promise<DropdownSearchResult> | DropdownSearchResult;
|
|
216
|
+
export interface DropdownSearchChangeDetail {
|
|
217
|
+
/** Free-text input content; distinct from the submitted `DropdownSearchItem.value`. */
|
|
218
|
+
value: string;
|
|
219
|
+
selectedItem: DropdownSearchItem | null;
|
|
220
|
+
selectedItems: DropdownSearchItem[];
|
|
221
|
+
status: DropdownSearchStatus;
|
|
222
|
+
}
|
|
223
|
+
/** Returns the input text shown for a selected item; defaults to the item label. */
|
|
224
|
+
export type DropdownSearchItemLabelGetter = (item: DropdownSearchItem) => string;
|
|
190
225
|
export interface DropdownSearchFilterControl {
|
|
191
226
|
type: 'dropdownSearch';
|
|
192
227
|
value: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/data-table/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
export let selectedOptions: DropdownOption[] = [];
|
|
37
37
|
export let groupsCollapsedByDefault: 'true' | 'false' | 'auto' = 'false';
|
|
38
38
|
export let search = false;
|
|
39
|
-
export let
|
|
39
|
+
export let inputStyle: DropdownInputStyle = 'dropdown';
|
|
40
40
|
export let getItemLabel: DropdownItemLabelGetter = (option) => option.label;
|
|
41
41
|
export let loadOptions: DropdownLoadOptions | undefined = undefined;
|
|
42
42
|
export let searchDebounceMs = 300;
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
$: selectedText = multiselect
|
|
128
128
|
? selectedLabelTexts(selectedValues).join(', ')
|
|
129
129
|
: displayLabelForValue(Array.isArray(value) ? '' : value);
|
|
130
|
-
$: inputMode = search &&
|
|
130
|
+
$: inputMode = search && inputStyle === 'input';
|
|
131
131
|
$: inputDisplayValue = inputMode
|
|
132
132
|
? (inputDraft ?? (searchQuery || (multiselect ? '' : selectedText)))
|
|
133
133
|
: '';
|
|
@@ -743,10 +743,10 @@
|
|
|
743
743
|
? rect.top - viewportMargin - menuGap
|
|
744
744
|
: window.innerHeight - rect.bottom - viewportMargin - menuGap;
|
|
745
745
|
viewportPanelMaxHeight = `${Math.max(0, Math.floor(available))}px`;
|
|
746
|
-
//
|
|
747
|
-
//
|
|
748
|
-
//
|
|
749
|
-
//
|
|
746
|
+
// Apply the value directly before measuring: the reactive style binding on
|
|
747
|
+
// this node only lands in the next flush, so the first upward open would
|
|
748
|
+
// otherwise measure the fallback 100vh height and place the menu above the
|
|
749
|
+
// viewport.
|
|
750
750
|
menuElement?.style.setProperty('--suu-dropdown-panel-max-height', viewportPanelMaxHeight);
|
|
751
751
|
updatePortalPosition(rect);
|
|
752
752
|
}
|
|
@@ -767,13 +767,31 @@
|
|
|
767
767
|
portalMenuLeft = `${Math.round(rect.left)}px`;
|
|
768
768
|
portalMenuRight = undefined;
|
|
769
769
|
}
|
|
770
|
-
portalMenuWidth =
|
|
770
|
+
portalMenuWidth = `${Math.round(rect.width)}px`;
|
|
771
771
|
}
|
|
772
772
|
|
|
773
773
|
function portalMenu(node: HTMLDivElement, enabled: boolean) {
|
|
774
774
|
let resizeObserver: ResizeObserver | undefined;
|
|
775
|
+
|
|
776
|
+
function hideMenuPopover() {
|
|
777
|
+
if (typeof node.hidePopover !== 'function') {
|
|
778
|
+
return;
|
|
779
|
+
}
|
|
780
|
+
try {
|
|
781
|
+
node.hidePopover();
|
|
782
|
+
} catch {
|
|
783
|
+
// The menu never entered the top layer; hiding is already done.
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
|
|
775
787
|
if (enabled && typeof document !== 'undefined') {
|
|
776
|
-
|
|
788
|
+
// Keep the menu inside the component tree and lift it into the top layer
|
|
789
|
+
// instead of moving it under document.body: body-mounted nodes stay inert
|
|
790
|
+
// behind a modal <dialog>, even when they are promoted to a popover.
|
|
791
|
+
if (typeof node.showPopover === 'function') {
|
|
792
|
+
node.setAttribute('popover', 'manual');
|
|
793
|
+
node.showPopover();
|
|
794
|
+
}
|
|
777
795
|
if (typeof ResizeObserver !== 'undefined') {
|
|
778
796
|
resizeObserver = new ResizeObserver(() => {
|
|
779
797
|
if (open) void updateViewportPanelMaxHeight();
|
|
@@ -784,9 +802,7 @@
|
|
|
784
802
|
return {
|
|
785
803
|
destroy() {
|
|
786
804
|
resizeObserver?.disconnect();
|
|
787
|
-
|
|
788
|
-
node.parentNode.removeChild(node);
|
|
789
|
-
}
|
|
805
|
+
hideMenuPopover();
|
|
790
806
|
}
|
|
791
807
|
};
|
|
792
808
|
}
|
|
@@ -22,7 +22,7 @@ declare const Dropdown: $$__sveltets_2_IsomorphicComponent<{
|
|
|
22
22
|
/** Labels for controlled values that are not present in the current search result. */ selectedOptions?: DropdownOption[];
|
|
23
23
|
groupsCollapsedByDefault?: "true" | "false" | "auto";
|
|
24
24
|
search?: boolean;
|
|
25
|
-
|
|
25
|
+
inputStyle?: DropdownInputStyle;
|
|
26
26
|
getItemLabel?: DropdownItemLabelGetter;
|
|
27
27
|
loadOptions?: DropdownLoadOptions | undefined;
|
|
28
28
|
searchDebounceMs?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown/Dropdown.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAER,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EAGnB,iBAAiB,EAGjB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,8BAA8B,EAC9B,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,EAE5B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Dropdown.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown/Dropdown.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAER,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EAGnB,iBAAiB,EAGjB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,8BAA8B,EAC9B,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,EAE5B,MAAM,YAAY,CAAC;AA67BtB,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;AAKD,QAAA,MAAM,QAAQ;SAXw3B,MAAM,GAAG,SAAS;YAAU,iBAAiB;;cAA8C,cAAc,EAAE;mBAAiB,mBAAmB,EAAE,GAAG,SAAS;IACniC,sFAAsF,mBAAkB,cAAc,EAAE;+BAA6B,MAAM,GAAG,OAAO,GAAG,MAAM;;iBAAuC,kBAAkB;mBAAiB,uBAAuB;kBAAgB,mBAAmB,GAAG,SAAS;;;wBAAoG,MAAM,GAAG,SAAS;kBAAgB,MAAM,GAAG,SAAS;eAAa,UAAU;kBAAgB,MAAM,GAAG,SAAS;oBAAkB,MAAM,GAAG,SAAS;gBAAc,MAAM,GAAG,SAAS;gBAAc,MAAM,GAAG,SAAS;gBAAc,iBAAiB;gBAAc,iBAAiB;;;;WAAuG,MAAM,GAAG,SAAS;;YAAsC,MAAM,GAAG,SAAS;eAAa,MAAM,GAAG,SAAS;eAAa,MAAM,GAAG,SAAS;gBAAc,MAAM,GAAG,SAAS;;eAAqC,8BAA8B,GAAG,SAAS;qBAAmB,2BAA2B,GAAG,SAAS;qBAAmB,2BAA2B,GAAG,SAAS;;;;;kBAUtiC,CAAC;AAC5E,KAAK,QAAQ,GAAG,YAAY,CAAC,OAAO,QAAQ,CAAC,CAAC;AAChD,eAAe,QAAQ,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC1E,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,cAAc,2BAA2B,CAAC"}
|