slim-select 2.4.5 → 2.5.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.
@@ -1,46 +1,46 @@
1
- import Settings, { SettingsPartial } from './settings';
2
- import Render from './render';
3
- import Select from './select';
4
- import Store, { DataArray, DataArrayPartial, Option, OptionOptional } from './store';
5
- export interface Config {
6
- select: string | Element;
7
- data?: DataArrayPartial;
8
- settings?: SettingsPartial;
9
- events?: Events;
10
- }
11
- export interface Events {
12
- search?: (searchValue: string, currentData: DataArray) => Promise<DataArrayPartial> | DataArrayPartial;
13
- searchFilter?: (option: Option, search: string) => boolean;
14
- addable?: (value: string) => Promise<OptionOptional | string> | OptionOptional | string | false | null | undefined;
15
- beforeChange?: (newVal: Option[], oldVal: Option[]) => boolean | void;
16
- afterChange?: (newVal: Option[]) => void;
17
- beforeOpen?: () => void;
18
- afterOpen?: () => void;
19
- beforeClose?: () => void;
20
- afterClose?: () => void;
21
- error?: (err: Error) => void;
22
- }
23
- export default class SlimSelect {
24
- selectEl: HTMLSelectElement;
25
- settings: Settings;
26
- select: Select;
27
- store: Store;
28
- render: Render;
29
- events: Events;
30
- constructor(config: Config);
31
- enable(): void;
32
- disable(): void;
33
- getData(): DataArray;
34
- setData(data: DataArrayPartial): void;
35
- getSelected(): string[];
36
- setSelected(value: string | string[], runAfterChange?: boolean): void;
37
- addOption(option: OptionOptional): void;
38
- open(): void;
39
- close(eventType?: string | null): void;
40
- search(value: string): void;
41
- destroy(): void;
42
- private windowResize;
43
- private windowScroll;
44
- private documentClick;
45
- private windowVisibilityChange;
46
- }
1
+ import Settings, { SettingsPartial } from './settings';
2
+ import Render from './render';
3
+ import Select from './select';
4
+ import Store, { DataArray, DataArrayPartial, Option, OptionOptional } from './store';
5
+ export interface Config {
6
+ select: string | Element;
7
+ data?: DataArrayPartial;
8
+ settings?: SettingsPartial;
9
+ events?: Events;
10
+ }
11
+ export interface Events {
12
+ search?: (searchValue: string, currentData: DataArray) => Promise<DataArrayPartial> | DataArrayPartial;
13
+ searchFilter?: (option: Option, search: string) => boolean;
14
+ addable?: (value: string) => Promise<OptionOptional | string> | OptionOptional | string | false | null | undefined;
15
+ beforeChange?: (newVal: Option[], oldVal: Option[]) => boolean | void;
16
+ afterChange?: (newVal: Option[]) => void;
17
+ beforeOpen?: () => void;
18
+ afterOpen?: () => void;
19
+ beforeClose?: () => void;
20
+ afterClose?: () => void;
21
+ error?: (err: Error) => void;
22
+ }
23
+ export default class SlimSelect {
24
+ selectEl: HTMLSelectElement;
25
+ settings: Settings;
26
+ select: Select;
27
+ store: Store;
28
+ render: Render;
29
+ events: Events;
30
+ constructor(config: Config);
31
+ enable(): void;
32
+ disable(): void;
33
+ getData(): DataArray;
34
+ setData(data: DataArrayPartial): void;
35
+ getSelected(): string[];
36
+ setSelected(value: string | string[], runAfterChange?: boolean): void;
37
+ addOption(option: OptionOptional): void;
38
+ open(): void;
39
+ close(eventType?: string | null): void;
40
+ search(value: string): void;
41
+ destroy(): void;
42
+ private windowResize;
43
+ private windowScroll;
44
+ private documentClick;
45
+ private windowVisibilityChange;
46
+ }
@@ -1,119 +1,120 @@
1
- import Settings from './settings';
2
- import Store, { DataArray, Option, OptionOptional } from './store';
3
- export interface Callbacks {
4
- open: () => void;
5
- close: () => void;
6
- addable?: (value: string) => Promise<OptionOptional | string> | OptionOptional | string | false | undefined | null;
7
- setSelected: (value: string[], runAfterChange: boolean) => void;
8
- addOption: (option: Option) => void;
9
- search: (search: string) => void;
10
- beforeChange?: (newVal: Option[], oldVal: Option[]) => boolean | void;
11
- afterChange?: (newVal: Option[]) => void;
12
- }
13
- export interface Main {
14
- main: HTMLDivElement;
15
- values: HTMLDivElement;
16
- deselect: {
17
- main: HTMLDivElement;
18
- svg: SVGSVGElement;
19
- path: SVGPathElement;
20
- };
21
- arrow: {
22
- main: SVGSVGElement;
23
- path: SVGPathElement;
24
- };
25
- }
26
- export interface Content {
27
- main: HTMLDivElement;
28
- search: Search;
29
- list: HTMLDivElement;
30
- }
31
- export interface Search {
32
- main: HTMLDivElement;
33
- input: HTMLInputElement;
34
- addable?: {
35
- main: HTMLDivElement;
36
- svg: SVGSVGElement;
37
- path: SVGPathElement;
38
- };
39
- }
40
- export default class Render {
41
- settings: Settings;
42
- store: Store;
43
- callbacks: Callbacks;
44
- main: Main;
45
- content: Content;
46
- classes: {
47
- main: string;
48
- placeholder: string;
49
- values: string;
50
- single: string;
51
- max: string;
52
- value: string;
53
- valueText: string;
54
- valueDelete: string;
55
- valueOut: string;
56
- deselect: string;
57
- deselectPath: string;
58
- arrow: string;
59
- arrowClose: string;
60
- arrowOpen: string;
61
- content: string;
62
- openAbove: string;
63
- openBelow: string;
64
- search: string;
65
- searchHighlighter: string;
66
- searching: string;
67
- addable: string;
68
- addablePath: string;
69
- list: string;
70
- optgroup: string;
71
- optgroupLabel: string;
72
- optgroupLabelText: string;
73
- optgroupActions: string;
74
- optgroupSelectAll: string;
75
- optgroupSelectAllBox: string;
76
- optgroupSelectAllCheck: string;
77
- optgroupClosable: string;
78
- option: string;
79
- optionDelete: string;
80
- highlighted: string;
81
- open: string;
82
- close: string;
83
- selected: string;
84
- error: string;
85
- disabled: string;
86
- hide: string;
87
- };
88
- constructor(settings: Required<Settings>, store: Store, callbacks: Callbacks);
89
- enable(): void;
90
- disable(): void;
91
- open(): void;
92
- close(): void;
93
- updateClassStyles(): void;
94
- updateAriaAttributes(): void;
95
- mainDiv(): Main;
96
- mainFocus(eventType: string | null): void;
97
- placeholder(): HTMLDivElement;
98
- renderValues(): void;
99
- private renderSingleValue;
100
- private renderMultipleValues;
101
- multipleValue(option: Option): HTMLDivElement;
102
- contentDiv(): Content;
103
- moveContent(): void;
104
- searchDiv(): Search;
105
- searchFocus(): void;
106
- getOptions(notPlaceholder?: boolean, notDisabled?: boolean, notHidden?: boolean): HTMLDivElement[];
107
- highlight(dir: 'up' | 'down'): void;
108
- listDiv(): HTMLDivElement;
109
- renderError(error: string): void;
110
- renderSearching(): void;
111
- renderOptions(data: DataArray): void;
112
- option(option: Option): HTMLDivElement;
113
- destroy(): void;
114
- private highlightText;
115
- moveContentAbove(): void;
116
- moveContentBelow(): void;
117
- ensureElementInView(container: HTMLElement, element: HTMLElement): void;
118
- putContent(): 'up' | 'down';
119
- }
1
+ import Settings from './settings';
2
+ import Store, { DataArray, Option, OptionOptional } from './store';
3
+ export interface Callbacks {
4
+ open: () => void;
5
+ close: () => void;
6
+ addable?: (value: string) => Promise<OptionOptional | string> | OptionOptional | string | false | undefined | null;
7
+ setSelected: (value: string[], runAfterChange: boolean) => void;
8
+ addOption: (option: Option) => void;
9
+ search: (search: string) => void;
10
+ beforeChange?: (newVal: Option[], oldVal: Option[]) => boolean | void;
11
+ afterChange?: (newVal: Option[]) => void;
12
+ }
13
+ export interface Main {
14
+ main: HTMLDivElement;
15
+ values: HTMLDivElement;
16
+ deselect: {
17
+ main: HTMLDivElement;
18
+ svg: SVGSVGElement;
19
+ path: SVGPathElement;
20
+ };
21
+ arrow: {
22
+ main: SVGSVGElement;
23
+ path: SVGPathElement;
24
+ };
25
+ }
26
+ export interface Content {
27
+ main: HTMLDivElement;
28
+ search: Search;
29
+ list: HTMLDivElement;
30
+ }
31
+ export interface Search {
32
+ main: HTMLDivElement;
33
+ input: HTMLInputElement;
34
+ addable?: {
35
+ main: HTMLDivElement;
36
+ svg: SVGSVGElement;
37
+ path: SVGPathElement;
38
+ };
39
+ }
40
+ export default class Render {
41
+ settings: Settings;
42
+ store: Store;
43
+ callbacks: Callbacks;
44
+ main: Main;
45
+ content: Content;
46
+ classes: {
47
+ main: string;
48
+ placeholder: string;
49
+ values: string;
50
+ single: string;
51
+ max: string;
52
+ value: string;
53
+ valueText: string;
54
+ valueDelete: string;
55
+ valueOut: string;
56
+ deselect: string;
57
+ deselectPath: string;
58
+ arrow: string;
59
+ arrowClose: string;
60
+ arrowOpen: string;
61
+ content: string;
62
+ openAbove: string;
63
+ openBelow: string;
64
+ search: string;
65
+ searchHighlighter: string;
66
+ searching: string;
67
+ addable: string;
68
+ addablePath: string;
69
+ list: string;
70
+ optgroup: string;
71
+ optgroupLabel: string;
72
+ optgroupLabelText: string;
73
+ optgroupActions: string;
74
+ optgroupSelectAll: string;
75
+ optgroupSelectAllBox: string;
76
+ optgroupSelectAllCheck: string;
77
+ optgroupClosable: string;
78
+ option: string;
79
+ optionDelete: string;
80
+ highlighted: string;
81
+ open: string;
82
+ close: string;
83
+ selected: string;
84
+ error: string;
85
+ disabled: string;
86
+ hide: string;
87
+ };
88
+ constructor(settings: Required<Settings>, store: Store, callbacks: Callbacks);
89
+ enable(): void;
90
+ disable(): void;
91
+ open(): void;
92
+ close(): void;
93
+ updateClassStyles(): void;
94
+ updateAriaAttributes(): void;
95
+ mainDiv(): Main;
96
+ mainFocus(eventType: string | null): void;
97
+ placeholder(): HTMLDivElement;
98
+ renderValues(): void;
99
+ private renderSingleValue;
100
+ private renderMultipleValues;
101
+ multipleValue(option: Option): HTMLDivElement;
102
+ contentDiv(): Content;
103
+ moveContent(): void;
104
+ searchDiv(): Search;
105
+ searchFocus(): void;
106
+ getOptions(notPlaceholder?: boolean, notDisabled?: boolean, notHidden?: boolean): HTMLDivElement[];
107
+ highlight(dir: 'up' | 'down'): void;
108
+ listDiv(): HTMLDivElement;
109
+ renderError(error: string): void;
110
+ renderSearching(): void;
111
+ renderOptions(data: DataArray): void;
112
+ option(option: Option): HTMLDivElement;
113
+ destroy(): void;
114
+ private highlightText;
115
+ moveContentAbove(): void;
116
+ moveContentBelow(): void;
117
+ ensureElementInView(container: HTMLElement, element: HTMLElement): void;
118
+ putContent(): 'up' | 'down';
119
+ updateDeselectAll(): void;
120
+ }
@@ -1,28 +1,28 @@
1
- import { DataArray, DataArrayPartial, Optgroup, OptgroupOptional, Option } from './store';
2
- export default class Select {
3
- select: HTMLSelectElement;
4
- onValueChange?: (value: string[]) => void;
5
- onClassChange?: (classes: string[]) => void;
6
- onDisabledChange?: (disabled: boolean) => void;
7
- onOptionsChange?: (data: DataArrayPartial) => void;
8
- listen: boolean;
9
- private observer;
10
- constructor(select: HTMLSelectElement);
11
- enable(): void;
12
- disable(): void;
13
- hideUI(): void;
14
- showUI(): void;
15
- changeListen(listen: boolean): void;
16
- valueChange(ev: Event): boolean;
17
- private observeCall;
18
- getData(): DataArrayPartial;
19
- getDataFromOptgroup(optgroup: HTMLOptGroupElement): OptgroupOptional;
20
- getDataFromOption(option: HTMLOptionElement): Option;
21
- getSelectedValues(): string[];
22
- setSelected(value: string[]): void;
23
- updateSelect(id?: string, style?: string, classes?: string[]): void;
24
- updateOptions(data: DataArray): void;
25
- createOptgroup(optgroup: Optgroup): HTMLOptGroupElement;
26
- createOption(info: Option): HTMLOptionElement;
27
- destroy(): void;
28
- }
1
+ import { DataArray, DataArrayPartial, Optgroup, OptgroupOptional, Option } from './store';
2
+ export default class Select {
3
+ select: HTMLSelectElement;
4
+ onValueChange?: (value: string[]) => void;
5
+ onClassChange?: (classes: string[]) => void;
6
+ onDisabledChange?: (disabled: boolean) => void;
7
+ onOptionsChange?: (data: DataArrayPartial) => void;
8
+ listen: boolean;
9
+ private observer;
10
+ constructor(select: HTMLSelectElement);
11
+ enable(): void;
12
+ disable(): void;
13
+ hideUI(): void;
14
+ showUI(): void;
15
+ changeListen(listen: boolean): void;
16
+ valueChange(ev: Event): boolean;
17
+ private observeCall;
18
+ getData(): DataArrayPartial;
19
+ getDataFromOptgroup(optgroup: HTMLOptGroupElement): OptgroupOptional;
20
+ getDataFromOption(option: HTMLOptionElement): Option;
21
+ getSelectedValues(): string[];
22
+ setSelected(value: string[]): void;
23
+ updateSelect(id?: string, style?: string, classes?: string[]): void;
24
+ updateOptions(data: DataArray): void;
25
+ createOptgroup(optgroup: Optgroup): HTMLOptGroupElement;
26
+ createOption(info: Option): HTMLOptionElement;
27
+ destroy(): void;
28
+ }
@@ -1,32 +1,32 @@
1
- /// <reference types="node" />
2
- export type SettingsPartial = Partial<Settings>;
3
- export default class Settings {
4
- id: string;
5
- style: string;
6
- class: string[];
7
- isMultiple: boolean;
8
- isOpen: boolean;
9
- isFullOpen: boolean;
10
- intervalMove: NodeJS.Timeout | null;
11
- disabled: boolean;
12
- alwaysOpen: boolean;
13
- showSearch: boolean;
14
- searchPlaceholder: string;
15
- searchText: string;
16
- searchingText: string;
17
- searchHighlight: boolean;
18
- closeOnSelect: boolean;
19
- contentLocation: HTMLElement;
20
- contentPosition: 'relative' | 'absolute';
21
- openPosition: 'auto' | 'up' | 'down';
22
- placeholderText: string;
23
- allowDeselect: boolean;
24
- hideSelected: boolean;
25
- showOptionTooltips: boolean;
26
- minSelected: number;
27
- maxSelected: number;
28
- timeoutDelay: number;
29
- maxValuesShown: number;
30
- maxValuesMessage: string;
31
- constructor(settings?: SettingsPartial);
32
- }
1
+ /// <reference types="node" />
2
+ export type SettingsPartial = Partial<Settings>;
3
+ export default class Settings {
4
+ id: string;
5
+ style: string;
6
+ class: string[];
7
+ isMultiple: boolean;
8
+ isOpen: boolean;
9
+ isFullOpen: boolean;
10
+ intervalMove: NodeJS.Timeout | null;
11
+ disabled: boolean;
12
+ alwaysOpen: boolean;
13
+ showSearch: boolean;
14
+ searchPlaceholder: string;
15
+ searchText: string;
16
+ searchingText: string;
17
+ searchHighlight: boolean;
18
+ closeOnSelect: boolean;
19
+ contentLocation: HTMLElement;
20
+ contentPosition: 'relative' | 'absolute';
21
+ openPosition: 'auto' | 'up' | 'down';
22
+ placeholderText: string;
23
+ allowDeselect: boolean;
24
+ hideSelected: boolean;
25
+ showOptionTooltips: boolean;
26
+ minSelected: number;
27
+ maxSelected: number;
28
+ timeoutDelay: number;
29
+ maxValuesShown: number;
30
+ maxValuesMessage: string;
31
+ constructor(settings?: SettingsPartial);
32
+ }
@@ -1,76 +1,77 @@
1
- export type DataArray = DataObject[];
2
- export type DataObject = Optgroup | Option;
3
- export type DataArrayPartial = DataObjectPartial[];
4
- export type DataObjectPartial = OptgroupOptional | OptionOptional;
5
- type selectType = 'single' | 'multiple';
6
- export interface OptgroupOptional {
7
- id?: string;
8
- label: string;
9
- selectAll?: boolean;
10
- closable?: 'off' | 'open' | 'close';
11
- options?: OptionOptional[];
12
- }
13
- export declare class Optgroup {
14
- id: string;
15
- label: string;
16
- selectAll: boolean;
17
- closable: 'off' | 'open' | 'close';
18
- options: Option[];
19
- constructor(optgroup: OptgroupOptional);
20
- }
21
- export interface OptionOptional {
22
- id?: string;
23
- value?: string;
24
- text: string;
25
- html?: string;
26
- selected?: boolean;
27
- display?: boolean;
28
- disabled?: boolean;
29
- mandatory?: boolean;
30
- placeholder?: boolean;
31
- class?: string;
32
- style?: string;
33
- data?: {
34
- [key: string]: string;
35
- };
36
- }
37
- export declare class Option {
38
- id: string;
39
- value: string;
40
- text: string;
41
- html: string;
42
- selected: boolean;
43
- display: boolean;
44
- disabled: boolean;
45
- placeholder: boolean;
46
- class: string;
47
- style: string;
48
- data: {
49
- [key: string]: string;
50
- };
51
- mandatory: boolean;
52
- constructor(option: OptionOptional);
53
- }
54
- export default class Store {
55
- private selectType;
56
- private data;
57
- constructor(type: selectType, data: DataArrayPartial);
58
- validateDataArray(data: DataArray | DataArrayPartial): Error | null;
59
- validateOption(option: Option | OptionOptional): Error | null;
60
- partialToFullData(data: DataArrayPartial): DataArray;
61
- setData(data: DataArray | DataArrayPartial): void;
62
- getData(): DataArray;
63
- getDataOptions(): Option[];
64
- addOption(option: OptionOptional): void;
65
- setSelectedBy(selectedType: 'id' | 'value', selectedValues: string[]): void;
66
- getSelected(): string[];
67
- getSelectedOptions(): Option[];
68
- getSelectedIDs(): string[];
69
- getOptgroupByID(id: string): Optgroup | null;
70
- getOptionByID(id: string): Option | null;
71
- search(search: string, searchFilter: (opt: Option, search: string) => boolean): DataArray;
72
- filter(filter: {
73
- (opt: Option): boolean;
74
- } | null, includeOptgroup: boolean): DataArray;
75
- }
76
- export {};
1
+ export type DataArray = DataObject[];
2
+ export type DataObject = Optgroup | Option;
3
+ export type DataArrayPartial = DataObjectPartial[];
4
+ export type DataObjectPartial = OptgroupOptional | OptionOptional;
5
+ type selectType = 'single' | 'multiple';
6
+ export interface OptgroupOptional {
7
+ id?: string;
8
+ label: string;
9
+ selectAll?: boolean;
10
+ closable?: 'off' | 'open' | 'close';
11
+ options?: OptionOptional[];
12
+ }
13
+ export declare class Optgroup {
14
+ id: string;
15
+ label: string;
16
+ selectAll: boolean;
17
+ closable: 'off' | 'open' | 'close';
18
+ options: Option[];
19
+ constructor(optgroup: OptgroupOptional);
20
+ }
21
+ export interface OptionOptional {
22
+ id?: string;
23
+ value?: string;
24
+ text: string;
25
+ html?: string;
26
+ selected?: boolean;
27
+ display?: boolean;
28
+ disabled?: boolean;
29
+ mandatory?: boolean;
30
+ placeholder?: boolean;
31
+ class?: string;
32
+ style?: string;
33
+ data?: {
34
+ [key: string]: string;
35
+ };
36
+ }
37
+ export declare class Option {
38
+ id: string;
39
+ value: string;
40
+ text: string;
41
+ html: string;
42
+ selected: boolean;
43
+ display: boolean;
44
+ disabled: boolean;
45
+ placeholder: boolean;
46
+ class: string;
47
+ style: string;
48
+ data: {
49
+ [key: string]: string;
50
+ };
51
+ mandatory: boolean;
52
+ constructor(option: OptionOptional);
53
+ }
54
+ export default class Store {
55
+ private selectType;
56
+ private data;
57
+ constructor(type: selectType, data: DataArrayPartial);
58
+ validateDataArray(data: DataArray | DataArrayPartial): Error | null;
59
+ validateOption(option: Option | OptionOptional): Error | null;
60
+ partialToFullData(data: DataArrayPartial): DataArray;
61
+ setData(data: DataArray | DataArrayPartial): void;
62
+ getData(): DataArray;
63
+ getDataOptions(): Option[];
64
+ addOption(option: OptionOptional): void;
65
+ setSelectedBy(selectedType: 'id' | 'value', selectedValues: string[]): void;
66
+ getSelected(): string[];
67
+ getSelectedOptions(): Option[];
68
+ getSelectedIDs(): string[];
69
+ getOptgroupByID(id: string): Optgroup | null;
70
+ getOptionByID(id: string): Option | null;
71
+ search(search: string, searchFilter: (opt: Option, search: string) => boolean): DataArray;
72
+ filter(filter: {
73
+ (opt: Option): boolean;
74
+ } | null, includeOptgroup: boolean): DataArray;
75
+ getSelectType(): string;
76
+ }
77
+ export {};