@ibobbyts/svelte-ui-utils 0.3.9 → 0.4.1
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 +100 -21
- package/dist/data-table/DataTable.svelte +139 -22
- package/dist/data-table/DataTable.svelte.d.ts +2 -8
- package/dist/data-table/DataTable.svelte.d.ts.map +1 -1
- package/dist/data-table/FilterControl.svelte +64 -18
- 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 +37 -3
- package/dist/data-table/types.d.ts.map +1 -1
- package/dist/dropdown/Dropdown.svelte +102 -0
- package/dist/dropdown/Dropdown.svelte.d.ts +2 -0
- package/dist/dropdown/Dropdown.svelte.d.ts.map +1 -1
- package/dist/dropdown/DropdownMultiSelect.svelte +1 -1
- package/dist/dropdown/types.d.ts +2 -0
- package/dist/dropdown/types.d.ts.map +1 -1
- package/dist/dropdown-search/DropdownSearch.svelte +47 -0
- package/dist/dropdown-search/DropdownSearch.svelte.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/ordered-list/OrderedListEditor.svelte +1 -1
- package/dist/pagination/Pagination.svelte +9 -0
- package/dist/pagination/Pagination.svelte.d.ts +1 -0
- package/dist/pagination/Pagination.svelte.d.ts.map +1 -1
- package/dist/sortable-list/SortableList.svelte +1 -1
- package/dist/sortable-table/SortableTable.svelte +1 -1
- package/dist/style.css +97 -12
- package/dist/tooltip/Tooltip.svelte +149 -0
- package/dist/tooltip/Tooltip.svelte.d.ts +22 -0
- package/dist/tooltip/Tooltip.svelte.d.ts.map +1 -0
- package/dist/tooltip/index.d.ts +2 -0
- package/dist/tooltip/index.d.ts.map +1 -0
- package/dist/tooltip/index.js +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DropdownSearchChangeDetail, DropdownSearchItem, DropdownSearchItemValueGetter, DropdownSearchLoadOptions, DropdownSearchStatus } from '../dropdown-search/types.js';
|
|
2
|
-
import type { DropdownPlacement } from '../dropdown/types.js';
|
|
2
|
+
import type { DropdownMenuAlign, DropdownMultiChangeHandler, DropdownMultiValue, DropdownOption, DropdownOptionGroup, DropdownPlacement, DropdownTriggerClickHandler } from '../dropdown/types.js';
|
|
3
3
|
export type SortDirection = 'asc' | 'desc';
|
|
4
4
|
export type DataTableLayout = 'auto' | 'fixed';
|
|
5
5
|
export interface SortState {
|
|
@@ -12,6 +12,17 @@ export interface PaginationState {
|
|
|
12
12
|
page: number;
|
|
13
13
|
pageSize: number;
|
|
14
14
|
}
|
|
15
|
+
export type DataTablePaginationQueryKey = string | number | boolean | null | undefined;
|
|
16
|
+
export type DataTableServerPagination = {
|
|
17
|
+
tableId: string;
|
|
18
|
+
totalRows: number;
|
|
19
|
+
defaultPageSize?: number;
|
|
20
|
+
pageSizeOptions?: number[];
|
|
21
|
+
pageSizeLabel?: string;
|
|
22
|
+
persistPageSize?: boolean;
|
|
23
|
+
queryKey?: DataTablePaginationQueryKey;
|
|
24
|
+
onRequest: (pagination: PaginationState) => void | Promise<void>;
|
|
25
|
+
};
|
|
15
26
|
export type PaginationDropdownPlacement = DropdownPlacement;
|
|
16
27
|
export type PaginationChangeHandler = (pagination: PaginationState) => void | Promise<void>;
|
|
17
28
|
export type FilterValue = string | number | boolean | null | undefined | DateRangeFilterValue | NumberRangeFilterValue | Array<string | number> | Record<string, unknown>;
|
|
@@ -71,6 +82,24 @@ export interface FilterSelectControl {
|
|
|
71
82
|
options: FilterOption[];
|
|
72
83
|
onChange: (value: string) => void | Promise<void>;
|
|
73
84
|
}
|
|
85
|
+
export interface DropdownMultiSelectFilterControl {
|
|
86
|
+
type: 'dropdownMultiSelect';
|
|
87
|
+
value: DropdownMultiValue;
|
|
88
|
+
options?: DropdownOption[];
|
|
89
|
+
optionGroups?: DropdownOptionGroup[];
|
|
90
|
+
ariaLabel?: string;
|
|
91
|
+
placement?: DropdownPlacement;
|
|
92
|
+
menuAlign?: DropdownMenuAlign;
|
|
93
|
+
fitViewport?: boolean;
|
|
94
|
+
fitContent?: boolean;
|
|
95
|
+
disabled?: boolean;
|
|
96
|
+
width?: string;
|
|
97
|
+
minWidth?: string;
|
|
98
|
+
maxWidth?: string;
|
|
99
|
+
portal?: boolean;
|
|
100
|
+
onChange: DropdownMultiChangeHandler;
|
|
101
|
+
onTriggerClick?: DropdownTriggerClickHandler;
|
|
102
|
+
}
|
|
74
103
|
export type DateRangePreset = 'last24Hours' | 'last7Days' | 'last30Days' | 'today' | 'thisWeek' | 'thisMonth' | 'thisYear';
|
|
75
104
|
export interface DateRangeFilterValue {
|
|
76
105
|
startDate: string;
|
|
@@ -87,6 +116,7 @@ export interface CheckboxFilterControl {
|
|
|
87
116
|
type: 'checkbox';
|
|
88
117
|
value: Array<string | number>;
|
|
89
118
|
options: FilterOption[];
|
|
119
|
+
optionGroups?: DropdownOptionGroup[];
|
|
90
120
|
onChange: (value: Array<string | number>) => void | Promise<void>;
|
|
91
121
|
}
|
|
92
122
|
export interface RadioFilterControl {
|
|
@@ -148,7 +178,7 @@ export interface FilterContainerControl {
|
|
|
148
178
|
type: 'container';
|
|
149
179
|
controls: FilterControl[];
|
|
150
180
|
}
|
|
151
|
-
export type FilterControl = CheckboxFilterControl | RadioFilterControl | DropdownSearchFilterControl | DateRangeFilterControl | NumberRangeFilterControl | FilterButtonControl | FilterLinkControl | FilterSelectControl | FilterContainerControl;
|
|
181
|
+
export type FilterControl = CheckboxFilterControl | RadioFilterControl | DropdownSearchFilterControl | DateRangeFilterControl | NumberRangeFilterControl | FilterButtonControl | FilterLinkControl | FilterSelectControl | DropdownMultiSelectFilterControl | FilterContainerControl;
|
|
152
182
|
export interface FilterTableRow {
|
|
153
183
|
key: string;
|
|
154
184
|
title: string;
|
|
@@ -166,6 +196,10 @@ export type DropdownSearchFilterDefinition = DropdownSearchFilterControl & {
|
|
|
166
196
|
key: string;
|
|
167
197
|
label: string;
|
|
168
198
|
};
|
|
199
|
+
export type DropdownMultiSelectFilterDefinition = DropdownMultiSelectFilterControl & {
|
|
200
|
+
key: string;
|
|
201
|
+
label: string;
|
|
202
|
+
};
|
|
169
203
|
export type DateRangeFilterDefinition = DateRangeFilterControl & {
|
|
170
204
|
key: string;
|
|
171
205
|
label: string;
|
|
@@ -174,5 +208,5 @@ export type NumberRangeFilterDefinition = NumberRangeFilterControl & {
|
|
|
174
208
|
key: string;
|
|
175
209
|
label: string;
|
|
176
210
|
};
|
|
177
|
-
export type FilterDefinition = CheckboxFilterDefinition | RadioFilterDefinition | DropdownSearchFilterDefinition | DateRangeFilterDefinition | NumberRangeFilterDefinition;
|
|
211
|
+
export type FilterDefinition = CheckboxFilterDefinition | RadioFilterDefinition | DropdownSearchFilterDefinition | DropdownMultiSelectFilterDefinition | DateRangeFilterDefinition | NumberRangeFilterDefinition;
|
|
178
212
|
//# 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,
|
|
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,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,0BAA0B,CAAC;IACrC,cAAc,CAAC,EAAE,2BAA2B,CAAC;CAC9C;AAED,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,WAAW,GACX,YAAY,GACZ,OAAO,GACP,UAAU,GACV,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC9B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,6BAA6B,CAAC;IAC7C,WAAW,EAAE,yBAAyB,CAAC;IACvC,QAAQ,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,aAAa,GACrB,qBAAqB,GACrB,kBAAkB,GAClB,2BAA2B,GAC3B,sBAAsB,GACtB,wBAAwB,GACxB,mBAAmB,GACnB,iBAAiB,GACjB,mBAAmB,GACnB,gCAAgC,GAChC,sBAAsB,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,MAAM,wBAAwB,GAAG,qBAAqB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9F,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,8BAA8B,GAAG,2BAA2B,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1G,MAAM,MAAM,mCAAmC,GAAG,gCAAgC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACpH,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAChG,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACpG,MAAM,MAAM,gBAAgB,GACxB,wBAAwB,GACxB,qBAAqB,GACrB,8BAA8B,GAC9B,mCAAmC,GACnC,yBAAyB,GACzB,2BAA2B,CAAC"}
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
export let fitViewport = true;
|
|
28
28
|
export let fitContent = true;
|
|
29
29
|
export let disabled = false;
|
|
30
|
+
export let name: string | undefined = undefined;
|
|
31
|
+
export let required = false;
|
|
30
32
|
export let width: string | undefined = undefined;
|
|
31
33
|
export let minWidth: string | undefined = undefined;
|
|
32
34
|
export let maxWidth: string | undefined = undefined;
|
|
@@ -51,6 +53,12 @@
|
|
|
51
53
|
let portalMenuWidth: string | undefined = undefined;
|
|
52
54
|
let removeOpenViewportListeners: (() => void) | undefined = undefined;
|
|
53
55
|
let removeOutsidePointerListener: (() => void) | undefined = undefined;
|
|
56
|
+
let typeaheadBuffer = '';
|
|
57
|
+
let typeaheadTimer: ReturnType<typeof setTimeout> | undefined;
|
|
58
|
+
let typeaheadGeneration = 0;
|
|
59
|
+
// Keep the buffer long enough for users to type multi-character aliases
|
|
60
|
+
// while the menu is rendering a large option list.
|
|
61
|
+
const typeaheadTimeoutMs = 1000;
|
|
54
62
|
|
|
55
63
|
$: resolvedOptions = optionGroups === undefined ? options : optionGroups.flatMap((group) => group.options);
|
|
56
64
|
$: selectedValues = normalizeSelectedValues(multiselect && Array.isArray(value) ? value : []);
|
|
@@ -131,6 +139,70 @@
|
|
|
131
139
|
activeValue = enabledOptions[nextIndex]?.value ?? activeValue;
|
|
132
140
|
}
|
|
133
141
|
|
|
142
|
+
function clearTypeaheadBuffer() {
|
|
143
|
+
typeaheadBuffer = '';
|
|
144
|
+
typeaheadGeneration += 1;
|
|
145
|
+
if (typeaheadTimer !== undefined) {
|
|
146
|
+
clearTimeout(typeaheadTimer);
|
|
147
|
+
typeaheadTimer = undefined;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
function scheduleTypeaheadReset() {
|
|
152
|
+
const generation = ++typeaheadGeneration;
|
|
153
|
+
if (typeaheadTimer !== undefined) {
|
|
154
|
+
clearTimeout(typeaheadTimer);
|
|
155
|
+
}
|
|
156
|
+
typeaheadTimer = setTimeout(() => {
|
|
157
|
+
if (generation !== typeaheadGeneration) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
typeaheadBuffer = '';
|
|
161
|
+
typeaheadTimer = undefined;
|
|
162
|
+
}, typeaheadTimeoutMs);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function scrollActiveOptionIntoView() {
|
|
166
|
+
void tick().then(() => {
|
|
167
|
+
if (!open || typeof document === 'undefined') {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
const activeElement = Array.from(
|
|
171
|
+
menuElement?.querySelectorAll<HTMLElement>('.suu-dropdown__option') ?? []
|
|
172
|
+
).find((element) => element.dataset.value === String(activeValue));
|
|
173
|
+
activeElement?.scrollIntoView?.({ block: 'nearest' });
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
function handleTypeahead(key: string) {
|
|
178
|
+
const normalizedKey = key.startsWith('Key') && key.length === 4
|
|
179
|
+
? key.slice(3).toLocaleLowerCase()
|
|
180
|
+
: key.toLocaleLowerCase();
|
|
181
|
+
const nextBuffer = `${typeaheadBuffer}${normalizedKey}`;
|
|
182
|
+
const findMatch = (prefix: string) =>
|
|
183
|
+
resolvedOptions.find(
|
|
184
|
+
(option) =>
|
|
185
|
+
!option.disabled &&
|
|
186
|
+
[option.searchText, option.label]
|
|
187
|
+
.filter((text): text is string => text !== undefined)
|
|
188
|
+
.some((text) => text.toLocaleLowerCase().startsWith(prefix))
|
|
189
|
+
);
|
|
190
|
+
const match = findMatch(nextBuffer) ?? findMatch(normalizedKey);
|
|
191
|
+
|
|
192
|
+
typeaheadBuffer = match ? (findMatch(nextBuffer) ? nextBuffer : normalizedKey) : nextBuffer;
|
|
193
|
+
scheduleTypeaheadReset();
|
|
194
|
+
if (!match) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (!open) {
|
|
199
|
+
updateResolvedPlacement();
|
|
200
|
+
open = true;
|
|
201
|
+
}
|
|
202
|
+
activeValue = match.value;
|
|
203
|
+
scrollActiveOptionIntoView();
|
|
204
|
+
}
|
|
205
|
+
|
|
134
206
|
function selectOption(option: DropdownOption) {
|
|
135
207
|
if (option.disabled) {
|
|
136
208
|
return;
|
|
@@ -144,11 +216,13 @@
|
|
|
144
216
|
nextSelected.add(option.value);
|
|
145
217
|
}
|
|
146
218
|
const nextValues = normalizeSelectedValues([...nextSelected]);
|
|
219
|
+
clearTypeaheadBuffer();
|
|
147
220
|
void (onChange as DropdownMultiChangeHandler | undefined)?.(nextValues);
|
|
148
221
|
return;
|
|
149
222
|
}
|
|
150
223
|
|
|
151
224
|
open = false;
|
|
225
|
+
clearTypeaheadBuffer();
|
|
152
226
|
void (onChange as DropdownChangeHandler | undefined)?.(option.value);
|
|
153
227
|
buttonElement?.focus();
|
|
154
228
|
}
|
|
@@ -160,6 +234,7 @@
|
|
|
160
234
|
if (!open) {
|
|
161
235
|
updateResolvedPlacement();
|
|
162
236
|
}
|
|
237
|
+
clearTypeaheadBuffer();
|
|
163
238
|
open = !open;
|
|
164
239
|
activeValue = initialActiveValue();
|
|
165
240
|
}
|
|
@@ -179,6 +254,7 @@
|
|
|
179
254
|
event.preventDefault();
|
|
180
255
|
open = false;
|
|
181
256
|
}
|
|
257
|
+
clearTypeaheadBuffer();
|
|
182
258
|
return;
|
|
183
259
|
}
|
|
184
260
|
|
|
@@ -193,6 +269,18 @@
|
|
|
193
269
|
return;
|
|
194
270
|
}
|
|
195
271
|
|
|
272
|
+
if (
|
|
273
|
+
((event.key.length === 1 && event.key !== ' ') ||
|
|
274
|
+
(event.key.startsWith('Key') && event.key.length === 4)) &&
|
|
275
|
+
!event.ctrlKey &&
|
|
276
|
+
!event.metaKey &&
|
|
277
|
+
!event.altKey
|
|
278
|
+
) {
|
|
279
|
+
event.preventDefault();
|
|
280
|
+
handleTypeahead(event.key);
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
|
|
196
284
|
if ((event.key === 'Enter' || event.key === ' ') && open) {
|
|
197
285
|
event.preventDefault();
|
|
198
286
|
const index = activeOptionIndex(activeValue);
|
|
@@ -366,6 +454,7 @@
|
|
|
366
454
|
onDestroy(() => {
|
|
367
455
|
disableOpenViewportTracking();
|
|
368
456
|
disableOutsidePointerDismissal();
|
|
457
|
+
clearTypeaheadBuffer();
|
|
369
458
|
});
|
|
370
459
|
</script>
|
|
371
460
|
|
|
@@ -402,6 +491,19 @@
|
|
|
402
491
|
<span class="suu-dropdown__chevron" aria-hidden="true"></span>
|
|
403
492
|
</button>
|
|
404
493
|
|
|
494
|
+
{#if name !== undefined && !multiselect}
|
|
495
|
+
<input
|
|
496
|
+
class="suu-visually-hidden"
|
|
497
|
+
type="text"
|
|
498
|
+
name={name}
|
|
499
|
+
value={String(value)}
|
|
500
|
+
required={required}
|
|
501
|
+
disabled={disabled}
|
|
502
|
+
tabindex="-1"
|
|
503
|
+
aria-label={ariaLabel}
|
|
504
|
+
/>
|
|
505
|
+
{/if}
|
|
506
|
+
|
|
405
507
|
{#if open}
|
|
406
508
|
<div
|
|
407
509
|
bind:this={menuElement}
|
|
@@ -24,6 +24,8 @@ declare const Dropdown: $$__sveltets_2_IsomorphicComponent<{
|
|
|
24
24
|
fitViewport?: boolean;
|
|
25
25
|
fitContent?: boolean;
|
|
26
26
|
disabled?: boolean;
|
|
27
|
+
name?: string | undefined;
|
|
28
|
+
required?: boolean;
|
|
27
29
|
width?: string | undefined;
|
|
28
30
|
minWidth?: string | undefined;
|
|
29
31
|
maxWidth?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown/Dropdown.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAER,iBAAiB,EAGjB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,8BAA8B,EAC9B,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":"AAIA,OAAO,KAAK,EAER,iBAAiB,EAGjB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,8BAA8B,EAC9B,iBAAiB,EACjB,2BAA2B,EAE5B,MAAM,YAAY,CAAC;AA+ftB,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;SAVqb,MAAM,GAAG,SAAS;YAAU,iBAAiB;;cAA8C,cAAc,EAAE;mBAAiB,mBAAmB,EAAE,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;;;kBAUz/B,CAAC;AAC5E,KAAK,QAAQ,GAAG,YAAY,CAAC,OAAO,QAAQ,CAAC,CAAC;AAChD,eAAe,QAAQ,CAAC"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
export let placement: DropdownPlacement = 'auto';
|
|
21
21
|
export let menuAlign: DropdownMenuAlign = 'left';
|
|
22
22
|
export let fitViewport = true;
|
|
23
|
-
export let fitContent =
|
|
23
|
+
export let fitContent = true;
|
|
24
24
|
export let disabled = false;
|
|
25
25
|
export let width: string | undefined = undefined;
|
|
26
26
|
export let minWidth: string | undefined = undefined;
|
package/dist/dropdown/types.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export type DropdownPlacement = 'auto' | 'up' | 'down';
|
|
|
5
5
|
export type DropdownMenuAlign = 'left' | 'right';
|
|
6
6
|
export interface DropdownOption {
|
|
7
7
|
label: string;
|
|
8
|
+
/** Optional text used for keyboard typeahead matching instead of (or in addition to) the label. */
|
|
9
|
+
searchText?: string;
|
|
8
10
|
value: DropdownValue;
|
|
9
11
|
disabled?: boolean;
|
|
10
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAEnE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnF,MAAM,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,MAAM,MAAM,8BAA8B,GAAG;IAC5C,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC,gBAAgB,CAAC,CAAC;AAEpB,MAAM,MAAM,2BAA2B,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAEnE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,mGAAmG;IACnG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnF,MAAM,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7F,MAAM,MAAM,8BAA8B,GAAG;IAC5C,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC,gBAAgB,CAAC,CAAC;AAEpB,MAAM,MAAM,2BAA2B,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC"}
|
|
@@ -301,6 +301,33 @@
|
|
|
301
301
|
}, 0);
|
|
302
302
|
}
|
|
303
303
|
|
|
304
|
+
function handleFormReset() {
|
|
305
|
+
clearSearchTimer();
|
|
306
|
+
clearBlurTimer();
|
|
307
|
+
abortActiveSearch();
|
|
308
|
+
value = '';
|
|
309
|
+
inputValue = '';
|
|
310
|
+
lastHandledValue = '';
|
|
311
|
+
if (!multiselect) {
|
|
312
|
+
selectedItem = null;
|
|
313
|
+
}
|
|
314
|
+
exactMatch = null;
|
|
315
|
+
options = [];
|
|
316
|
+
showingFocusOptions = false;
|
|
317
|
+
setStatus(
|
|
318
|
+
resolveDropdownSearchStatus({
|
|
319
|
+
value,
|
|
320
|
+
selectedItem,
|
|
321
|
+
selectedItems,
|
|
322
|
+
exactMatch,
|
|
323
|
+
minLength,
|
|
324
|
+
validate,
|
|
325
|
+
multiselect,
|
|
326
|
+
}),
|
|
327
|
+
);
|
|
328
|
+
emitChange();
|
|
329
|
+
}
|
|
330
|
+
|
|
304
331
|
function handleFocus() {
|
|
305
332
|
clearBlurTimer();
|
|
306
333
|
focused = true;
|
|
@@ -526,12 +553,32 @@
|
|
|
526
553
|
});
|
|
527
554
|
|
|
528
555
|
onMount(() => {
|
|
556
|
+
const formElement = inputElement?.form;
|
|
557
|
+
formElement?.addEventListener('reset', handleFormReset);
|
|
529
558
|
if (showOptionsOnFocus && focused) {
|
|
530
559
|
showFocusOptions();
|
|
531
560
|
}
|
|
532
561
|
if (searchOnExternalValueChange && normalizeDropdownSearchValue(value)) {
|
|
533
562
|
handleExternalValue(value);
|
|
534
563
|
}
|
|
564
|
+
|
|
565
|
+
const visibilityObserver =
|
|
566
|
+
typeof IntersectionObserver === 'undefined'
|
|
567
|
+
? undefined
|
|
568
|
+
: new IntersectionObserver(([entry]) => {
|
|
569
|
+
if (!entry?.isIntersecting) {
|
|
570
|
+
focused = false;
|
|
571
|
+
showingFocusOptions = false;
|
|
572
|
+
}
|
|
573
|
+
});
|
|
574
|
+
if (inputElement && visibilityObserver) {
|
|
575
|
+
visibilityObserver.observe(inputElement);
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
return () => {
|
|
579
|
+
formElement?.removeEventListener('reset', handleFormReset);
|
|
580
|
+
visibilityObserver?.disconnect();
|
|
581
|
+
};
|
|
535
582
|
});
|
|
536
583
|
</script>
|
|
537
584
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownSearch.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown-search/DropdownSearch.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAM5D,OAAO,KAAK,EACR,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,6BAA6B,EAC7B,yBAAyB,EACzB,qCAAqC,EACrC,wCAAwC,EACxC,oBAAoB,EACrB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"DropdownSearch.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown-search/DropdownSearch.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAM5D,OAAO,KAAK,EACR,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,6BAA6B,EAC7B,yBAAyB,EACzB,qCAAqC,EACrC,wCAAwC,EACxC,oBAAoB,EACrB,MAAM,YAAY,CAAC;AA0oBtB,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,cAAc;;mBAdihC,kBAAkB,GAAG,IAAI;oBAAkB,kBAAkB,EAAE;aAAW,oBAAoB;;;;;;;;;mBAAyR,kBAAkB,EAAE;iBAAe,MAAM,GAAG,SAAS;iBAAe,yBAAyB;SAAO,MAAM,GAAG,SAAS;WAAS,MAAM,GAAG,SAAS;gBAAc,MAAM,GAAG,SAAS;gBAAc,MAAM,GAAG,SAAS;;eAAyC,UAAU;oBAAkB,MAAM,GAAG,SAAS;kBAAgB,MAAM,GAAG,SAAS;iBAAe,MAAM,GAAG,SAAS;;YAA4E,MAAM,GAAG,SAAS;eAAa,MAAM,GAAG,SAAS;eAAa,MAAM,GAAG,SAAS;;8BAA8E,qCAAqC,GAChhE,SAAS;mBAAiB,6BAA6B;eAAe,CAAC,CAAC,MAAM,EAAE,0BAA0B,KAAK,IAAI,CAAC,GACpH,SAAS;eAAa,CAAC,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS;iBAAe,CAAC,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS;4BAA4B,wCAAwC,GACzM,SAAS;qBAAqB,CAAC,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC,GACtE,SAAS;kBAAgB,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS;cAAY,CAAC,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;kBAU1C,CAAC;AAClF,KAAK,cAAc,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,eAAe,cAAc,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './toast/index.js';
|
|
|
2
2
|
export * from './dropdown/index.js';
|
|
3
3
|
export * from './dropdown-search/index.js';
|
|
4
4
|
export * from './dialog/index.js';
|
|
5
|
+
export * from './tooltip/index.js';
|
|
5
6
|
export * from './data-table/index.js';
|
|
6
7
|
export * from './sortable-list/index.js';
|
|
7
8
|
export * from './ordered-list/index.js';
|
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,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,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"}
|
|
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,4BAA4B,CAAC;AAC3C,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"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export * from './toast/index.js';
|
|
|
2
2
|
export * from './dropdown/index.js';
|
|
3
3
|
export * from './dropdown-search/index.js';
|
|
4
4
|
export * from './dialog/index.js';
|
|
5
|
+
export * from './tooltip/index.js';
|
|
5
6
|
export * from './data-table/index.js';
|
|
6
7
|
export * from './sortable-list/index.js';
|
|
7
8
|
export * from './ordered-list/index.js';
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
.suu-ordered-list-editor__row :global(label input) { flex: 0; }
|
|
55
55
|
.compact .suu-ordered-list-editor__row { gap: 3px; }
|
|
56
56
|
.suu-ordered-list-editor__current { margin-left: auto; }
|
|
57
|
-
.suu-ordered-list-editor__remove { display: inline-grid; place-items: center; width: 30px; height: 30px; padding: 6px; border: 1px solid transparent; border-radius:
|
|
57
|
+
.suu-ordered-list-editor__remove { display: inline-grid; place-items: center; width: 30px; height: 30px; padding: 6px; border: 1px solid transparent; border-radius: var(--suu-radius-sm); background: transparent; color: #dc2626; cursor: pointer; }
|
|
58
58
|
.suu-ordered-list-editor__remove svg { width: 16px; height: 16px; }
|
|
59
59
|
.suu-ordered-list-editor__remove:disabled { cursor: default; opacity: .35; }
|
|
60
60
|
</style>
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
export let pageSizeLabel: string | undefined = undefined;
|
|
15
15
|
export let maxPageButtons = 15;
|
|
16
16
|
export let pageSizeDropdownPlacement: PaginationDropdownPlacement = 'down';
|
|
17
|
+
export let disabled = false;
|
|
17
18
|
export let onPaginationChange: PaginationChangeHandler | undefined = undefined;
|
|
18
19
|
|
|
19
20
|
type PaginationItem = { kind: 'page'; page: number } | { kind: 'ellipsis' };
|
|
@@ -74,10 +75,16 @@
|
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
function setPage(page: number) {
|
|
78
|
+
if (disabled) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
77
81
|
void onPaginationChange?.(normalizePagination({ ...normalized, page }, totalRows));
|
|
78
82
|
}
|
|
79
83
|
|
|
80
84
|
function setPageSize(nextValue: DropdownValue) {
|
|
85
|
+
if (disabled) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
81
88
|
const pageSize = typeof nextValue === 'number' ? nextValue : Number(nextValue);
|
|
82
89
|
if (!Number.isFinite(pageSize)) {
|
|
83
90
|
return;
|
|
@@ -95,6 +102,7 @@
|
|
|
95
102
|
class:suu-pagination__page-button={true}
|
|
96
103
|
class:suu-pagination__page-button--active={item.page === normalized.page}
|
|
97
104
|
aria-current={item.page === normalized.page ? 'page' : undefined}
|
|
105
|
+
{disabled}
|
|
98
106
|
on:click={() => setPage(item.page)}
|
|
99
107
|
>
|
|
100
108
|
{item.page}
|
|
@@ -111,6 +119,7 @@
|
|
|
111
119
|
options={pageSizeDropdownOptions}
|
|
112
120
|
ariaLabel={resolvedPageSizeLabel}
|
|
113
121
|
placement={pageSizeDropdownPlacement}
|
|
122
|
+
{disabled}
|
|
114
123
|
onChange={setPageSize}
|
|
115
124
|
/>
|
|
116
125
|
</div>
|
|
@@ -21,6 +21,7 @@ declare const Pagination: $$__sveltets_2_IsomorphicComponent<{
|
|
|
21
21
|
pageSizeLabel?: string | undefined;
|
|
22
22
|
maxPageButtons?: number;
|
|
23
23
|
pageSizeDropdownPlacement?: PaginationDropdownPlacement;
|
|
24
|
+
disabled?: boolean;
|
|
24
25
|
onPaginationChange?: PaginationChangeHandler | undefined;
|
|
25
26
|
}, {
|
|
26
27
|
[evt: string]: CustomEvent<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/pagination/Pagination.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"Pagination.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/pagination/Pagination.svelte.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAqHpH,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,UAAU;iBAV8S,eAAe;;sBAAkD,MAAM,EAAE;eAAa,UAAU;oBAAkB,MAAM,GAAG,SAAS;;gCAAsE,2BAA2B;;yBAAmD,uBAAuB,GAAG,SAAS;;;kBAU1hB,CAAC;AAC9E,KAAK,UAAU,GAAG,YAAY,CAAC,OAAO,UAAU,CAAC,CAAC;AACpD,eAAe,UAAU,CAAC"}
|
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
left: 0;
|
|
157
157
|
z-index: 2;
|
|
158
158
|
height: 3px;
|
|
159
|
-
border-radius:
|
|
159
|
+
border-radius: var(--suu-radius-pill);
|
|
160
160
|
background: var(--suu-color-accent, #2563eb);
|
|
161
161
|
box-shadow: 0 0 8px color-mix(in srgb, var(--suu-color-accent, #2563eb) 65%, transparent);
|
|
162
162
|
content: '';
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
</div>
|
|
107
107
|
|
|
108
108
|
<style>
|
|
109
|
-
.suu-sortable-table-wrap { overflow: auto; border: 1px solid var(--suu-sortable-table-border, var(--suu-color-border, #d1d5db)); border-radius: var(--suu-radius
|
|
109
|
+
.suu-sortable-table-wrap { overflow: auto; border: 1px solid var(--suu-sortable-table-border, var(--suu-color-border, #d1d5db)); border-radius: var(--suu-radius); }
|
|
110
110
|
.suu-sortable-table { width: 100%; border-collapse: collapse; }
|
|
111
111
|
.suu-sortable-table__drag-column { width: 1%; }
|
|
112
112
|
.suu-sortable-table__remove-column { width: 38px; }
|