slim-select 3.4.2 → 3.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.
Files changed (73) hide show
  1. package/dist/classes.d.ts +46 -0
  2. package/dist/helpers.d.ts +5 -0
  3. package/dist/index.d.ts +53 -318
  4. package/dist/index.umd.d.ts +2 -0
  5. package/dist/react/index.d.ts +4 -318
  6. package/dist/react/index.js +1459 -1696
  7. package/dist/react/index.umd.js +2 -2
  8. package/dist/react/react.d.ts +17 -0
  9. package/dist/react/react.test.d.ts +1 -0
  10. package/dist/react/slim-select/react/index.d.ts +4 -0
  11. package/dist/render.d.ts +88 -0
  12. package/dist/select.d.ts +38 -0
  13. package/dist/settings.d.ts +39 -0
  14. package/dist/slimselect.cjs.js +2 -2
  15. package/dist/slimselect.cjs.js.map +1 -1
  16. package/dist/slimselect.css +1 -1
  17. package/dist/slimselect.css.map +1 -1
  18. package/dist/slimselect.es.js +1233 -1384
  19. package/dist/slimselect.es.js.map +1 -1
  20. package/dist/slimselect.iife.js +2 -2
  21. package/dist/slimselect.iife.js.map +1 -1
  22. package/dist/slimselect.js +2 -2
  23. package/dist/slimselect.js.map +1 -1
  24. package/dist/src/docs/main.d.ts +0 -0
  25. package/dist/src/docs/router.d.ts +2 -0
  26. package/dist/src/docs/store.d.ts +12 -0
  27. package/dist/store.d.ts +53 -0
  28. package/dist/vue/index.d.ts +4 -318
  29. package/dist/vue/index.js +1335 -1503
  30. package/dist/vue/index.umd.js +1 -1
  31. package/dist/vue/slim-select/vue/index.d.ts +4 -0
  32. package/package.json +30 -36
  33. package/src/slim-select/slimselect.scss +34 -5
  34. package/.nvmrc +0 -1
  35. package/.prettierignore +0 -1
  36. package/.prettierrc +0 -7
  37. package/CODE_OF_CONDUCT.md +0 -46
  38. package/CONTRIBUTING.md +0 -1
  39. package/cdn.html +0 -21
  40. package/docs.go +0 -12
  41. package/example.html +0 -25
  42. package/index.html +0 -76
  43. package/release.js +0 -191
  44. package/sitemap.js +0 -108
  45. package/src/slim-select/accessibility.test.ts +0 -782
  46. package/src/slim-select/classes.test.ts +0 -73
  47. package/src/slim-select/classes.ts +0 -117
  48. package/src/slim-select/helpers.test.ts +0 -162
  49. package/src/slim-select/helpers.ts +0 -61
  50. package/src/slim-select/index.test.ts +0 -1356
  51. package/src/slim-select/index.ts +0 -594
  52. package/src/slim-select/index.umd.ts +0 -8
  53. package/src/slim-select/react/index.tsx +0 -9
  54. package/src/slim-select/react/react.test.tsx +0 -498
  55. package/src/slim-select/react/react.tsx +0 -209
  56. package/src/slim-select/render.test.ts +0 -1877
  57. package/src/slim-select/render.ts +0 -1765
  58. package/src/slim-select/select.test.ts +0 -683
  59. package/src/slim-select/select.ts +0 -659
  60. package/src/slim-select/settings.test.ts +0 -285
  61. package/src/slim-select/settings.ts +0 -78
  62. package/src/slim-select/store.test.ts +0 -1007
  63. package/src/slim-select/store.ts +0 -433
  64. package/src/slim-select/vue/index.ts +0 -9
  65. package/src/slim-select/vue/vue.test.ts +0 -1091
  66. package/src/slim-select/vue/vue.vue +0 -224
  67. package/tsconfig.json +0 -26
  68. package/vite.config.docs.mts +0 -29
  69. package/vite.config.lib.es-cjs.ts +0 -40
  70. package/vite.config.lib.umd-iife.ts +0 -34
  71. package/vite.config.react.mts +0 -41
  72. package/vite.config.vue.mts +0 -40
  73. package/vitest.config.ts +0 -30
File without changes
@@ -0,0 +1,2 @@
1
+ declare const router: import('vue-router')._RouterClassic;
2
+ export default router;
@@ -0,0 +1,12 @@
1
+ export declare const useAppStore: import('pinia').StoreDefinition<"app", {
2
+ width: number;
3
+ }, {
4
+ isLocalhost: () => boolean;
5
+ isMobile: (state: {
6
+ width: number;
7
+ } & import('pinia').PiniaCustomStateProperties<{
8
+ width: number;
9
+ }>) => boolean;
10
+ }, {
11
+ setWidth(width: number): void;
12
+ }>;
@@ -0,0 +1,53 @@
1
+ export declare class Option {
2
+ id: string;
3
+ value: string;
4
+ text: string;
5
+ html: string;
6
+ defaultSelected: boolean;
7
+ selected: boolean;
8
+ display: boolean;
9
+ disabled: boolean;
10
+ placeholder: boolean;
11
+ class: string;
12
+ style: string;
13
+ data: {
14
+ [key: string]: string;
15
+ };
16
+ mandatory: boolean;
17
+ constructor(option: Partial<Option>);
18
+ }
19
+ export declare class Optgroup {
20
+ id: string;
21
+ label: string;
22
+ selectAll: boolean;
23
+ selectAllText: string;
24
+ closable: 'off' | 'open' | 'close';
25
+ options: Partial<Option>[];
26
+ constructor(optgroup: Partial<Optgroup>);
27
+ }
28
+ export default class Store {
29
+ private selectType;
30
+ private data;
31
+ private selectedOrder;
32
+ constructor(type: 'single' | 'multiple', data: (Partial<Option> | Partial<Optgroup>)[]);
33
+ validateDataArray(data: (Partial<Option> | Partial<Optgroup>)[]): Error | null;
34
+ validateOption(option: Partial<Option>): Error | null;
35
+ partialToFullData(data: (Partial<Option> | Partial<Optgroup>)[]): (Option | Optgroup)[];
36
+ setData(data: (Partial<Option> | Partial<Optgroup>)[], preserveSelected?: boolean): void;
37
+ getData(): Option[] | Optgroup[];
38
+ getDataOptions(): Option[];
39
+ addOption(option: Partial<Option>, addToStart?: boolean): void;
40
+ setSelectedBy(selectedType: 'id' | 'value', selectedValues: string[], allowEmptySelection?: boolean): void;
41
+ getSelected(): string[];
42
+ getSelectedValues(): string[];
43
+ getSelectedOptions(): Option[];
44
+ getOptgroupByID(id: string): Optgroup | null;
45
+ getOptionByID(id: string): Option | null;
46
+ getSelectType(): string;
47
+ getFirstOption(): Option | null;
48
+ search(search: string, searchFilter: (opt: Option, search: string) => boolean): (Option | Optgroup)[];
49
+ filter(filter: {
50
+ (opt: Option): boolean;
51
+ } | null, includeOptgroup: boolean): (Option | Optgroup)[];
52
+ selectedOrderOptions(options: Option[]): Option[];
53
+ }
@@ -1,318 +1,4 @@
1
- declare interface Callbacks {
2
- open: () => void;
3
- close: () => void;
4
- addable?: (value: string) => Promise<Partial<Option_2> | string> | Partial<Option_2> | string | false | undefined | null | Error;
5
- setSelected: (value: string | string[], runAfterChange: boolean) => void;
6
- addOption: (option: Option_2) => void;
7
- search: (search: string) => void;
8
- beforeChange?: (newVal: Option_2[], oldVal: Option_2[]) => boolean | void;
9
- afterChange?: (newVal: Option_2[]) => void;
10
- }
11
-
12
- export declare interface Config {
13
- select: string | Element;
14
- data?: (Partial<Option_2> | Partial<Optgroup>)[];
15
- settings?: Partial<Settings>;
16
- cssClasses?: Partial<CssClasses>;
17
- events?: Events;
18
- }
19
-
20
- export declare interface Content {
21
- main: HTMLDivElement;
22
- search: Search;
23
- list: HTMLDivElement;
24
- }
25
-
26
- declare class CssClasses {
27
- main: string;
28
- placeholder: string;
29
- values: string;
30
- single: string;
31
- max: string;
32
- value: string;
33
- valueText: string;
34
- valueDelete: string;
35
- valueOut: string;
36
- deselect: string;
37
- deselectPath: string;
38
- arrow: string;
39
- arrowClose: string;
40
- arrowOpen: string;
41
- content: string;
42
- contentOpen: string;
43
- dirAbove: string;
44
- dirBelow: string;
45
- search: string;
46
- searchHighlighter: string;
47
- searching: string;
48
- addable: string;
49
- addablePath: string;
50
- list: string;
51
- optgroup: string;
52
- optgroupLabel: string;
53
- optgroupLabelText: string;
54
- optgroupActions: string;
55
- optgroupSelectAll: string;
56
- optgroupSelectAllBox: string;
57
- optgroupSelectAllCheck: string;
58
- optgroupClosable: string;
59
- option: string;
60
- optionDelete: string;
61
- highlighted: string;
62
- mainOpen: string;
63
- close: string;
64
- selected: string;
65
- error: string;
66
- disabled: string;
67
- hide: string;
68
- constructor(classes?: Partial<CssClasses>);
69
- getFirst(name: keyof Omit<CssClasses, 'getFirst'>): string;
70
- }
71
-
72
- export declare interface Events {
73
- search?: (searchValue: string, currentData: (Option_2 | Optgroup)[]) => Promise<(Partial<Option_2> | Partial<Optgroup>)[]> | (Partial<Option_2> | Partial<Optgroup>)[];
74
- searchFilter?: (option: Option_2, search: string) => boolean;
75
- addable?: (value: string) => Promise<Partial<Option_2> | string> | Partial<Option_2> | string | false | null | undefined | Error;
76
- beforeChange?: (newVal: Option_2[], oldVal: Option_2[]) => boolean | void;
77
- afterChange?: (newVal: Option_2[]) => void;
78
- beforeOpen?: () => void;
79
- afterOpen?: () => void;
80
- beforeClose?: () => void;
81
- afterClose?: () => void;
82
- error?: (err: Error) => void;
83
- }
84
-
85
- export declare interface Main {
86
- main: HTMLDivElement;
87
- values: HTMLDivElement;
88
- deselect: {
89
- main: HTMLDivElement;
90
- svg: SVGSVGElement;
91
- path: SVGPathElement;
92
- };
93
- arrow: {
94
- main: SVGSVGElement;
95
- path: SVGPathElement;
96
- };
97
- }
98
-
99
- export declare class Optgroup {
100
- id: string;
101
- label: string;
102
- selectAll: boolean;
103
- selectAllText: string;
104
- closable: 'off' | 'open' | 'close';
105
- options: Partial<Option_2>[];
106
- constructor(optgroup: Partial<Optgroup>);
107
- }
108
-
109
- declare class Option_2 {
110
- id: string;
111
- value: string;
112
- text: string;
113
- html: string;
114
- defaultSelected: boolean;
115
- selected: boolean;
116
- display: boolean;
117
- disabled: boolean;
118
- placeholder: boolean;
119
- class: string;
120
- style: string;
121
- data: {
122
- [key: string]: string;
123
- };
124
- mandatory: boolean;
125
- constructor(option: Partial<Option_2>);
126
- }
127
- export { Option_2 as Option }
128
-
129
- declare class Render {
130
- settings: Settings;
131
- store: Store;
132
- callbacks: Callbacks;
133
- private lastSelectedOption;
134
- private closeAnimationTimeout;
135
- main: Main;
136
- content: Content;
137
- classes: CssClasses;
138
- constructor(settings: Required<Settings>, classes: Required<CssClasses>, store: Store, callbacks: Callbacks);
139
- private addClasses;
140
- private removeClasses;
141
- enable(): void;
142
- disable(): void;
143
- open(): void;
144
- close(): void;
145
- private getAnimationTiming;
146
- updateClassStyles(): void;
147
- updateAriaAttributes(): void;
148
- mainDiv(): Main;
149
- mainFocus(eventType: string | null): void;
150
- placeholder(): HTMLDivElement;
151
- renderValues(): void;
152
- private renderSingleValue;
153
- private renderMultipleValues;
154
- multipleValue(option: Option_2): HTMLDivElement;
155
- contentDiv(): Content;
156
- moveContent(): void;
157
- searchDiv(): Search;
158
- searchFocus(): void;
159
- getOptions(notPlaceholder?: boolean, notDisabled?: boolean, notHidden?: boolean): HTMLDivElement[];
160
- highlight(dir: 'up' | 'down'): void;
161
- listDiv(): HTMLDivElement;
162
- renderError(error: string): void;
163
- renderSearching(): void;
164
- renderOptions(data: (Option_2 | Optgroup)[]): void;
165
- option(option: Option_2): HTMLDivElement;
166
- destroy(): void;
167
- private highlightText;
168
- private setContentDirection;
169
- private setContentPosition;
170
- moveContentAbove(): void;
171
- moveContentBelow(): void;
172
- ensureElementInView(container: HTMLElement, element: HTMLElement): void;
173
- putContent(): 'up' | 'down';
174
- updateDeselectAll(): void;
175
- }
176
-
177
- export declare interface Search {
178
- main: HTMLDivElement;
179
- input: HTMLInputElement;
180
- addable?: {
181
- main: HTMLDivElement;
182
- svg: SVGSVGElement;
183
- path: SVGPathElement;
184
- };
185
- }
186
-
187
- declare class Select {
188
- select: HTMLSelectElement;
189
- onValueChange?: (value: Option_2[]) => void;
190
- onClassChange?: (classes: string[]) => void;
191
- onDisabledChange?: (disabled: boolean) => void;
192
- onOptionsChange?: (data: (Option_2 | Optgroup)[]) => void;
193
- onLabelClick?: () => void;
194
- private listen;
195
- private observer;
196
- private isUpdating;
197
- private pendingOptionsChange;
198
- private preventNativeSelect;
199
- private preventNativeSelectMousedown;
200
- private preventNativeSelectFocus;
201
- constructor(select: HTMLSelectElement);
202
- enable(): void;
203
- disable(): void;
204
- hideUI(): void;
205
- showUI(): void;
206
- changeListen(listen: boolean): void;
207
- valueChange(ev: Event): boolean;
208
- private observeCall;
209
- getData(): (Option_2 | Optgroup)[];
210
- getDataFromOptgroup(optgroup: HTMLOptGroupElement): Optgroup;
211
- getDataFromOption(option: HTMLOptionElement): Option_2;
212
- getSelectedOptions(): Option_2[];
213
- getSelectedValues(): string[];
214
- setSelected(ids: string[]): void;
215
- setSelectedByValue(values: string[]): void;
216
- updateSelect(id?: string, style?: string, classes?: string[]): void;
217
- updateOptions(data: (Option_2 | Optgroup)[]): void;
218
- createOptgroup(optgroup: Optgroup): HTMLOptGroupElement;
219
- createOption(info: Option_2): HTMLOptionElement;
220
- setupLabelHandlers(): void;
221
- removeLabelHandlers(): void;
222
- destroy(): void;
223
- }
224
-
225
- export declare class Settings {
226
- id: string;
227
- style: string;
228
- class: string[];
229
- isMultiple: boolean;
230
- isOpen: boolean;
231
- isFullOpen: boolean;
232
- intervalMove: ReturnType<typeof setInterval> | null;
233
- disabled: boolean;
234
- alwaysOpen: boolean;
235
- showSearch: boolean;
236
- focusSearch: boolean;
237
- keepSearch: boolean;
238
- ariaLabel: string;
239
- searchPlaceholder: string;
240
- searchText: string;
241
- searchingText: string;
242
- searchHighlight: boolean;
243
- closeOnSelect: boolean;
244
- contentLocation: HTMLElement | null;
245
- contentPosition: 'relative' | 'absolute' | 'fixed';
246
- contentWidth: string;
247
- openPosition: 'auto' | 'up' | 'down';
248
- placeholderText: string;
249
- allowDeselect: boolean;
250
- hideSelected: boolean;
251
- keepOrder: boolean;
252
- showOptionTooltips: boolean;
253
- minSelected: number;
254
- maxSelected: number;
255
- timeoutDelay: number;
256
- maxValuesShown: number;
257
- maxValuesMessage: string;
258
- addableText: string;
259
- constructor(settings?: Partial<Settings>);
260
- }
261
-
262
- declare class SlimSelect {
263
- selectEl: HTMLSelectElement;
264
- settings: Settings;
265
- cssClasses: CssClasses;
266
- select: Select;
267
- store: Store;
268
- render: Render;
269
- private openTimeout;
270
- private closeTimeout;
271
- events: Events;
272
- constructor(config: Config);
273
- enable(): void;
274
- disable(): void;
275
- getData(): Option_2[] | Optgroup[];
276
- setData(data: (Partial<Option_2> | Partial<Optgroup>)[]): void;
277
- getSelected(): string[];
278
- setSelected(values: string | string[], runAfterChange?: boolean): void;
279
- addOption(option: Partial<Option_2>): void;
280
- open(): void;
281
- close(eventType?: string | null): void;
282
- search(value: string): void;
283
- destroy(): void;
284
- private windowResize;
285
- private windowScroll;
286
- private documentClick;
287
- private windowVisibilityChange;
288
- }
289
- export default SlimSelect;
290
-
291
- declare class Store {
292
- private selectType;
293
- private data;
294
- private selectedOrder;
295
- constructor(type: 'single' | 'multiple', data: (Partial<Option_2> | Partial<Optgroup>)[]);
296
- validateDataArray(data: (Partial<Option_2> | Partial<Optgroup>)[]): Error | null;
297
- validateOption(option: Partial<Option_2>): Error | null;
298
- partialToFullData(data: (Partial<Option_2> | Partial<Optgroup>)[]): (Option_2 | Optgroup)[];
299
- setData(data: (Partial<Option_2> | Partial<Optgroup>)[], preserveSelected?: boolean): void;
300
- getData(): Option_2[] | Optgroup[];
301
- getDataOptions(): Option_2[];
302
- addOption(option: Partial<Option_2>, addToStart?: boolean): void;
303
- setSelectedBy(selectedType: 'id' | 'value', selectedValues: string[], allowEmptySelection?: boolean): void;
304
- getSelected(): string[];
305
- getSelectedValues(): string[];
306
- getSelectedOptions(): Option_2[];
307
- getOptgroupByID(id: string): Optgroup | null;
308
- getOptionByID(id: string): Option_2 | null;
309
- getSelectType(): string;
310
- getFirstOption(): Option_2 | null;
311
- search(search: string, searchFilter: (opt: Option_2, search: string) => boolean): (Option_2 | Optgroup)[];
312
- filter(filter: {
313
- (opt: Option_2): boolean;
314
- } | null, includeOptgroup: boolean): (Option_2 | Optgroup)[];
315
- selectedOrderOptions(options: Option_2[]): Option_2[];
316
- }
317
-
318
- export { }
1
+ import { default as SlimSelect } from './vue.vue';
2
+ export default SlimSelect;
3
+ export { Settings, Option, Optgroup } from '../index';
4
+ export type { Config, Events } from '../index';