tom-select-rails 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +26 -0
- data/Rakefile +3 -0
- data/lib/tom-select-rails/engine.rb +8 -0
- data/lib/tom-select-rails/version.rb +5 -0
- data/lib/tom-select-rails.rb +7 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.complete.js +4887 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.complete.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.js +4085 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.popular.js +4337 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.popular.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/utils.js +196 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/utils.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/caret_position/plugin.js +162 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/caret_position/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/change_listener/plugin.js +50 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/change_listener/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/checkbox_options/plugin.js +172 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/checkbox_options/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/clear_button/plugin.js +91 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/clear_button/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/drag_drop/plugin.js +62 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/drag_drop/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_header/plugin.js +118 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_header/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_input/plugin.js +230 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_input/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/input_autogrow/plugin.js +80 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/input_autogrow/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_active_items/plugin.js +25 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_active_items/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_backspace_delete/plugin.js +32 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_backspace_delete/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/optgroup_columns/plugin.js +108 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/optgroup_columns/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/remove_button/plugin.js +146 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/remove_button/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/restore_on_backspace/plugin.js +43 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/restore_on_backspace/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/virtual_scroll/plugin.js +261 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/virtual_scroll/plugin.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.complete.js +4885 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.complete.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.js +4083 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.popular.js +4335 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.popular.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/utils.js +181 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/utils.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/caret_position.js +170 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/caret_position.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/change_listener.js +58 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/change_listener.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/checkbox_options.js +180 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/checkbox_options.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/clear_button.js +99 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/clear_button.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/drag_drop.js +70 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/drag_drop.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_header.js +126 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_header.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_input.js +238 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_input.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/input_autogrow.js +88 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/input_autogrow.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_active_items.js +33 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_active_items.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_backspace_delete.js +40 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_backspace_delete.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/optgroup_columns.js +116 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/optgroup_columns.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/remove_button.js +154 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/remove_button.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/restore_on_backspace.js +51 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/restore_on_backspace.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/virtual_scroll.js +269 -0
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/virtual_scroll.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.js +4092 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.min.js +303 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.min.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.js +4894 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.min.js +362 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.min.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.js +4344 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.min.js +324 -0
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.min.js.map +1 -0
- data/vendor/assets/javascripts/tom-select-rails/types/constants.d.ts +12 -0
- data/vendor/assets/javascripts/tom-select-rails/types/contrib/highlight.d.ts +13 -0
- data/vendor/assets/javascripts/tom-select-rails/types/contrib/microevent.d.ts +20 -0
- data/vendor/assets/javascripts/tom-select-rails/types/contrib/microplugin.d.ts +71 -0
- data/vendor/assets/javascripts/tom-select-rails/types/defaults.d.ts +51 -0
- data/vendor/assets/javascripts/tom-select-rails/types/getSettings.d.ts +3 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/caret_position/plugin.d.ts +16 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/change_listener/plugin.d.ts +16 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/checkbox_options/plugin.d.ts +16 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/clear_button/plugin.d.ts +17 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/clear_button/types.d.ts +5 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/drag_drop/plugin.d.ts +16 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/dropdown_header/plugin.d.ts +17 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/dropdown_header/types.d.ts +8 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/dropdown_input/plugin.d.ts +16 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/input_autogrow/plugin.d.ts +15 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/no_active_items/plugin.d.ts +15 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/no_backspace_delete/plugin.d.ts +15 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/optgroup_columns/plugin.d.ts +16 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/remove_button/plugin.d.ts +17 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/remove_button/types.d.ts +6 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/restore_on_backspace/plugin.d.ts +21 -0
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/virtual_scroll/plugin.d.ts +16 -0
- data/vendor/assets/javascripts/tom-select-rails/types/tom-select.complete.d.ts +2 -0
- data/vendor/assets/javascripts/tom-select-rails/types/tom-select.d.ts +579 -0
- data/vendor/assets/javascripts/tom-select-rails/types/tom-select.popular.d.ts +2 -0
- data/vendor/assets/javascripts/tom-select-rails/types/types/core.d.ts +44 -0
- data/vendor/assets/javascripts/tom-select-rails/types/types/index.d.ts +2 -0
- data/vendor/assets/javascripts/tom-select-rails/types/types/settings.d.ts +81 -0
- data/vendor/assets/javascripts/tom-select-rails/types/utils.d.ts +76 -0
- data/vendor/assets/javascripts/tom-select-rails/types/vanilla.d.ts +76 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.css +548 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.css.map +1 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.min.css +2 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.min.css.map +1 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.css +592 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.css.map +1 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.min.css +2 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.min.css.map +1 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.css +391 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.css.map +1 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.css +476 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.css.map +1 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.min.css +2 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.min.css.map +1 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.min.css +2 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.min.css.map +1 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/_dropdown.scss +104 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/_items.scss +115 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/checkbox_options.scss +5 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/clear_button.scss +30 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/drag_drop.scss +16 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/dropdown_header.scss +23 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/dropdown_input.scss +47 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/input_autogrow.scss +18 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/optgroup_columns.scss +23 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/plugins/remove_button.scss +44 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.bootstrap4.scss +219 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.bootstrap5.scss +274 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.default.scss +87 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.scss +175 -0
- metadata +195 -0
@@ -0,0 +1,579 @@
|
|
1
|
+
import Sifter from '@orchidjs/sifter/lib/sifter';
|
2
|
+
import { TomInput, TomArgObject, TomOption, TomOptions, TomCreateCallback, TomItem, TomSettings, TomTemplateNames } from './types/index';
|
3
|
+
declare const TomSelect_base: {
|
4
|
+
new (): {
|
5
|
+
[x: string]: any;
|
6
|
+
plugins: {
|
7
|
+
names: string[];
|
8
|
+
settings: {
|
9
|
+
[key: string]: any;
|
10
|
+
};
|
11
|
+
requested: {
|
12
|
+
[key: string]: boolean;
|
13
|
+
};
|
14
|
+
loaded: {
|
15
|
+
[key: string]: any;
|
16
|
+
};
|
17
|
+
};
|
18
|
+
initializePlugins(plugins: string[] | import("./contrib/microplugin").TPluginHash | import("./contrib/microplugin").TPluginItem[]): void;
|
19
|
+
loadPlugin(name: string): void;
|
20
|
+
require(name: string): any;
|
21
|
+
};
|
22
|
+
[x: string]: any;
|
23
|
+
define(name: string, fn: (this: any, settings: {
|
24
|
+
[key: string]: any;
|
25
|
+
}) => any): void;
|
26
|
+
};
|
27
|
+
export default class TomSelect extends TomSelect_base {
|
28
|
+
control_input: HTMLInputElement;
|
29
|
+
wrapper: HTMLElement;
|
30
|
+
dropdown: HTMLElement;
|
31
|
+
control: HTMLElement;
|
32
|
+
dropdown_content: HTMLElement;
|
33
|
+
focus_node: HTMLElement;
|
34
|
+
order: number;
|
35
|
+
settings: TomSettings;
|
36
|
+
input: TomInput;
|
37
|
+
tabIndex: number;
|
38
|
+
is_select_tag: boolean;
|
39
|
+
rtl: boolean;
|
40
|
+
private inputId;
|
41
|
+
private _destroy;
|
42
|
+
sifter: Sifter;
|
43
|
+
isOpen: boolean;
|
44
|
+
isDisabled: boolean;
|
45
|
+
isRequired: boolean;
|
46
|
+
isInvalid: boolean;
|
47
|
+
isValid: boolean;
|
48
|
+
isLocked: boolean;
|
49
|
+
isFocused: boolean;
|
50
|
+
isInputHidden: boolean;
|
51
|
+
isSetup: boolean;
|
52
|
+
ignoreFocus: boolean;
|
53
|
+
hasOptions: boolean;
|
54
|
+
currentResults?: ReturnType<Sifter['search']>;
|
55
|
+
lastValue: string;
|
56
|
+
caretPos: number;
|
57
|
+
loading: number;
|
58
|
+
loadedSearches: {
|
59
|
+
[key: string]: boolean;
|
60
|
+
};
|
61
|
+
activeOption: null | HTMLElement;
|
62
|
+
activeItems: TomItem[];
|
63
|
+
optgroups: TomOptions;
|
64
|
+
options: TomOptions;
|
65
|
+
userOptions: {
|
66
|
+
[key: string]: boolean;
|
67
|
+
};
|
68
|
+
items: string[];
|
69
|
+
constructor(input_arg: string | TomInput, user_settings: Partial<TomSettings>);
|
70
|
+
/**
|
71
|
+
* set up event bindings.
|
72
|
+
*
|
73
|
+
*/
|
74
|
+
setup(): void;
|
75
|
+
/**
|
76
|
+
* Register options and optgroups
|
77
|
+
*
|
78
|
+
*/
|
79
|
+
setupOptions(options?: TomOption[], optgroups?: TomOption[]): void;
|
80
|
+
/**
|
81
|
+
* Sets up default rendering functions.
|
82
|
+
*/
|
83
|
+
setupTemplates(): void;
|
84
|
+
/**
|
85
|
+
* Maps fired events to callbacks provided
|
86
|
+
* in the settings used when creating the control.
|
87
|
+
*/
|
88
|
+
setupCallbacks(): void;
|
89
|
+
/**
|
90
|
+
* Sync the Tom Select instance with the original input or select
|
91
|
+
*
|
92
|
+
*/
|
93
|
+
sync(get_settings?: boolean): void;
|
94
|
+
/**
|
95
|
+
* Triggered when the main control element
|
96
|
+
* has a click event.
|
97
|
+
*
|
98
|
+
*/
|
99
|
+
onClick(): void;
|
100
|
+
/**
|
101
|
+
* @deprecated v1.7
|
102
|
+
*
|
103
|
+
*/
|
104
|
+
onMouseDown(): void;
|
105
|
+
/**
|
106
|
+
* Triggered when the value of the control has been changed.
|
107
|
+
* This should propagate the event to the original DOM
|
108
|
+
* input / select element.
|
109
|
+
*/
|
110
|
+
onChange(): void;
|
111
|
+
/**
|
112
|
+
* Triggered on <input> paste.
|
113
|
+
*
|
114
|
+
*/
|
115
|
+
onPaste(e: MouseEvent | KeyboardEvent): void;
|
116
|
+
/**
|
117
|
+
* Triggered on <input> keypress.
|
118
|
+
*
|
119
|
+
*/
|
120
|
+
onKeyPress(e: KeyboardEvent): void;
|
121
|
+
/**
|
122
|
+
* Triggered on <input> keydown.
|
123
|
+
*
|
124
|
+
*/
|
125
|
+
onKeyDown(e: KeyboardEvent): void;
|
126
|
+
/**
|
127
|
+
* Triggered on <input> keyup.
|
128
|
+
*
|
129
|
+
*/
|
130
|
+
onInput(e: MouseEvent | KeyboardEvent): void;
|
131
|
+
/**
|
132
|
+
* Triggered on <input> focus.
|
133
|
+
*
|
134
|
+
*/
|
135
|
+
onFocus(e?: MouseEvent | KeyboardEvent): void;
|
136
|
+
/**
|
137
|
+
* Triggered on <input> blur.
|
138
|
+
*
|
139
|
+
*/
|
140
|
+
onBlur(e?: FocusEvent): void;
|
141
|
+
/**
|
142
|
+
* Triggered when the user clicks on an option
|
143
|
+
* in the autocomplete dropdown menu.
|
144
|
+
*
|
145
|
+
*/
|
146
|
+
onOptionSelect(evt: MouseEvent | KeyboardEvent, option: HTMLElement): void;
|
147
|
+
/**
|
148
|
+
* Return true if the given option can be selected
|
149
|
+
*
|
150
|
+
*/
|
151
|
+
canSelect(option: HTMLElement | null): boolean;
|
152
|
+
/**
|
153
|
+
* Triggered when the user clicks on an item
|
154
|
+
* that has been selected.
|
155
|
+
*
|
156
|
+
*/
|
157
|
+
onItemSelect(evt?: MouseEvent, item?: TomItem): boolean;
|
158
|
+
/**
|
159
|
+
* Determines whether or not to invoke
|
160
|
+
* the user-provided option provider / loader
|
161
|
+
*
|
162
|
+
* Note, there is a subtle difference between
|
163
|
+
* this.canLoad() and this.settings.shouldLoad();
|
164
|
+
*
|
165
|
+
* - settings.shouldLoad() is a user-input validator.
|
166
|
+
* When false is returned, the not_loading template
|
167
|
+
* will be added to the dropdown
|
168
|
+
*
|
169
|
+
* - canLoad() is lower level validator that checks
|
170
|
+
* the Tom Select instance. There is no inherent user
|
171
|
+
* feedback when canLoad returns false
|
172
|
+
*
|
173
|
+
*/
|
174
|
+
canLoad(value: string): boolean;
|
175
|
+
/**
|
176
|
+
* Invokes the user-provided option provider / loader.
|
177
|
+
*
|
178
|
+
*/
|
179
|
+
load(value: string): void;
|
180
|
+
/**
|
181
|
+
* Invoked by the user-provided option provider
|
182
|
+
*
|
183
|
+
*/
|
184
|
+
loadCallback(options: TomOption[], optgroups: TomOption[]): void;
|
185
|
+
preload(): void;
|
186
|
+
/**
|
187
|
+
* Sets the input field of the control to the specified value.
|
188
|
+
*
|
189
|
+
*/
|
190
|
+
setTextboxValue(value?: string): void;
|
191
|
+
/**
|
192
|
+
* Returns the value of the control. If multiple items
|
193
|
+
* can be selected (e.g. <select multiple>), this returns
|
194
|
+
* an array. If only one item can be selected, this
|
195
|
+
* returns a string.
|
196
|
+
*
|
197
|
+
*/
|
198
|
+
getValue(): string | string[];
|
199
|
+
/**
|
200
|
+
* Resets the selected items to the given value.
|
201
|
+
*
|
202
|
+
*/
|
203
|
+
setValue(value: string | string[], silent?: boolean): void;
|
204
|
+
/**
|
205
|
+
* Resets the number of max items to the given value
|
206
|
+
*
|
207
|
+
*/
|
208
|
+
setMaxItems(value: null | number): void;
|
209
|
+
/**
|
210
|
+
* Sets the selected item.
|
211
|
+
*
|
212
|
+
*/
|
213
|
+
setActiveItem(item?: TomItem, e?: MouseEvent | KeyboardEvent): void;
|
214
|
+
/**
|
215
|
+
* Set the active and last-active classes
|
216
|
+
*
|
217
|
+
*/
|
218
|
+
setActiveItemClass(item: TomItem): void;
|
219
|
+
/**
|
220
|
+
* Remove active item
|
221
|
+
*
|
222
|
+
*/
|
223
|
+
removeActiveItem(item: TomItem): void;
|
224
|
+
/**
|
225
|
+
* Clears all the active items
|
226
|
+
*
|
227
|
+
*/
|
228
|
+
clearActiveItems(): void;
|
229
|
+
/**
|
230
|
+
* Sets the selected item in the dropdown menu
|
231
|
+
* of available options.
|
232
|
+
*
|
233
|
+
*/
|
234
|
+
setActiveOption(option: null | HTMLElement): void;
|
235
|
+
/**
|
236
|
+
* Sets the dropdown_content scrollTop to display the option
|
237
|
+
*
|
238
|
+
*/
|
239
|
+
scrollToOption(option: null | HTMLElement, behavior?: string): void;
|
240
|
+
/**
|
241
|
+
* Scroll the dropdown to the given position
|
242
|
+
*
|
243
|
+
*/
|
244
|
+
scroll(scrollTop: number, behavior?: string): void;
|
245
|
+
/**
|
246
|
+
* Clears the active option
|
247
|
+
*
|
248
|
+
*/
|
249
|
+
clearActiveOption(): void;
|
250
|
+
/**
|
251
|
+
* Selects all items (CTRL + A).
|
252
|
+
*/
|
253
|
+
selectAll(): void;
|
254
|
+
/**
|
255
|
+
* Determines if the control_input should be in a hidden or visible state
|
256
|
+
*
|
257
|
+
*/
|
258
|
+
inputState(): void;
|
259
|
+
/**
|
260
|
+
* Hides the input element out of view, while
|
261
|
+
* retaining its focus.
|
262
|
+
* @deprecated 1.3
|
263
|
+
*/
|
264
|
+
hideInput(): void;
|
265
|
+
/**
|
266
|
+
* Restores input visibility.
|
267
|
+
* @deprecated 1.3
|
268
|
+
*/
|
269
|
+
showInput(): void;
|
270
|
+
/**
|
271
|
+
* Get the input value
|
272
|
+
*/
|
273
|
+
inputValue(): string;
|
274
|
+
/**
|
275
|
+
* Gives the control focus.
|
276
|
+
*/
|
277
|
+
focus(): void;
|
278
|
+
/**
|
279
|
+
* Forces the control out of focus.
|
280
|
+
*
|
281
|
+
*/
|
282
|
+
blur(): void;
|
283
|
+
/**
|
284
|
+
* Returns a function that scores an object
|
285
|
+
* to show how good of a match it is to the
|
286
|
+
* provided query.
|
287
|
+
*
|
288
|
+
* @return {function}
|
289
|
+
*/
|
290
|
+
getScoreFunction(query: string): (data: {}) => any;
|
291
|
+
/**
|
292
|
+
* Returns search options for sifter (the system
|
293
|
+
* for scoring and sorting results).
|
294
|
+
*
|
295
|
+
* @see https://github.com/orchidjs/sifter.js
|
296
|
+
* @return {object}
|
297
|
+
*/
|
298
|
+
getSearchOptions(): {
|
299
|
+
fields: string[];
|
300
|
+
conjunction: string;
|
301
|
+
sort: string | import("@orchidjs/sifter/lib/types").SortFn | import("@orchidjs/sifter/lib/types").Sort[];
|
302
|
+
nesting: boolean;
|
303
|
+
};
|
304
|
+
/**
|
305
|
+
* Searches through available options and returns
|
306
|
+
* a sorted array of matches.
|
307
|
+
*
|
308
|
+
*/
|
309
|
+
search(query: string): ReturnType<Sifter['search']>;
|
310
|
+
/**
|
311
|
+
* Refreshes the list of available options shown
|
312
|
+
* in the autocomplete dropdown menu.
|
313
|
+
*
|
314
|
+
*/
|
315
|
+
refreshOptions(triggerDropdown?: boolean): void;
|
316
|
+
/**
|
317
|
+
* Return list of selectable options
|
318
|
+
*
|
319
|
+
*/
|
320
|
+
selectable(): NodeList;
|
321
|
+
/**
|
322
|
+
* Adds an available option. If it already exists,
|
323
|
+
* nothing will happen. Note: this does not refresh
|
324
|
+
* the options list dropdown (use `refreshOptions`
|
325
|
+
* for that).
|
326
|
+
*
|
327
|
+
* Usage:
|
328
|
+
*
|
329
|
+
* this.addOption(data)
|
330
|
+
*
|
331
|
+
*/
|
332
|
+
addOption(data: TomOption, user_created?: boolean): false | string;
|
333
|
+
/**
|
334
|
+
* Add multiple options
|
335
|
+
*
|
336
|
+
*/
|
337
|
+
addOptions(data: TomOption[], user_created?: boolean): void;
|
338
|
+
/**
|
339
|
+
* @deprecated 1.7.7
|
340
|
+
*/
|
341
|
+
registerOption(data: TomOption): false | string;
|
342
|
+
/**
|
343
|
+
* Registers an option group to the pool of option groups.
|
344
|
+
*
|
345
|
+
* @return {boolean|string}
|
346
|
+
*/
|
347
|
+
registerOptionGroup(data: TomOption): string | false;
|
348
|
+
/**
|
349
|
+
* Registers a new optgroup for options
|
350
|
+
* to be bucketed into.
|
351
|
+
*
|
352
|
+
*/
|
353
|
+
addOptionGroup(id: string, data: TomOption): void;
|
354
|
+
/**
|
355
|
+
* Removes an existing option group.
|
356
|
+
*
|
357
|
+
*/
|
358
|
+
removeOptionGroup(id: string): void;
|
359
|
+
/**
|
360
|
+
* Clears all existing option groups.
|
361
|
+
*/
|
362
|
+
clearOptionGroups(): void;
|
363
|
+
/**
|
364
|
+
* Updates an option available for selection. If
|
365
|
+
* it is visible in the selected items or options
|
366
|
+
* dropdown, it will be re-rendered automatically.
|
367
|
+
*
|
368
|
+
*/
|
369
|
+
updateOption(value: string, data: TomOption): void;
|
370
|
+
/**
|
371
|
+
* Removes a single option.
|
372
|
+
*
|
373
|
+
*/
|
374
|
+
removeOption(value: string, silent?: boolean): void;
|
375
|
+
/**
|
376
|
+
* Clears all options.
|
377
|
+
*/
|
378
|
+
clearOptions(): void;
|
379
|
+
/**
|
380
|
+
* Returns the dom element of the option
|
381
|
+
* matching the given value.
|
382
|
+
*
|
383
|
+
*/
|
384
|
+
getOption(value: null | string, create?: boolean): null | HTMLElement;
|
385
|
+
/**
|
386
|
+
* Returns the dom element of the next or previous dom element of the same type
|
387
|
+
* Note: adjacent options may not be adjacent DOM elements (optgroups)
|
388
|
+
*
|
389
|
+
*/
|
390
|
+
getAdjacent(option: null | HTMLElement, direction: number, type?: string): HTMLElement | null;
|
391
|
+
/**
|
392
|
+
* Returns the dom element of the item
|
393
|
+
* matching the given value.
|
394
|
+
*
|
395
|
+
*/
|
396
|
+
getItem(item: string | TomItem | null): null | TomItem;
|
397
|
+
/**
|
398
|
+
* "Selects" multiple items at once. Adds them to the list
|
399
|
+
* at the current caret position.
|
400
|
+
*
|
401
|
+
*/
|
402
|
+
addItems(values: string | string[], silent?: boolean): void;
|
403
|
+
/**
|
404
|
+
* "Selects" an item. Adds it to the list
|
405
|
+
* at the current caret position.
|
406
|
+
*
|
407
|
+
*/
|
408
|
+
addItem(value: string, silent?: boolean): void;
|
409
|
+
/**
|
410
|
+
* Removes the selected item matching
|
411
|
+
* the provided value.
|
412
|
+
*
|
413
|
+
*/
|
414
|
+
removeItem(item?: string | TomItem | null, silent?: boolean): void;
|
415
|
+
/**
|
416
|
+
* Invokes the `create` method provided in the
|
417
|
+
* TomSelect options that should provide the data
|
418
|
+
* for the new item, given the user input.
|
419
|
+
*
|
420
|
+
* Once this completes, it will be added
|
421
|
+
* to the item list.
|
422
|
+
*
|
423
|
+
*/
|
424
|
+
createItem(input?: null | string, triggerDropdown?: boolean, callback?: TomCreateCallback): boolean;
|
425
|
+
/**
|
426
|
+
* Re-renders the selected item lists.
|
427
|
+
*/
|
428
|
+
refreshItems(): void;
|
429
|
+
/**
|
430
|
+
* Updates all state-dependent attributes
|
431
|
+
* and CSS classes.
|
432
|
+
*/
|
433
|
+
refreshState(): void;
|
434
|
+
/**
|
435
|
+
* Update the `required` attribute of both input and control input.
|
436
|
+
*
|
437
|
+
* The `required` property needs to be activated on the control input
|
438
|
+
* for the error to be displayed at the right place. `required` also
|
439
|
+
* needs to be temporarily deactivated on the input since the input is
|
440
|
+
* hidden and can't show errors.
|
441
|
+
*/
|
442
|
+
refreshValidityState(): void;
|
443
|
+
/**
|
444
|
+
* Determines whether or not more items can be added
|
445
|
+
* to the control without exceeding the user-defined maximum.
|
446
|
+
*
|
447
|
+
* @returns {boolean}
|
448
|
+
*/
|
449
|
+
isFull(): boolean;
|
450
|
+
/**
|
451
|
+
* Refreshes the original <select> or <input>
|
452
|
+
* element to reflect the current state.
|
453
|
+
*
|
454
|
+
*/
|
455
|
+
updateOriginalInput(opts?: TomArgObject): void;
|
456
|
+
/**
|
457
|
+
* Shows the autocomplete dropdown containing
|
458
|
+
* the available options.
|
459
|
+
*/
|
460
|
+
open(): void;
|
461
|
+
/**
|
462
|
+
* Closes the autocomplete dropdown menu.
|
463
|
+
*/
|
464
|
+
close(setTextboxValue?: boolean): void;
|
465
|
+
/**
|
466
|
+
* Calculates and applies the appropriate
|
467
|
+
* position of the dropdown if dropdownParent = 'body'.
|
468
|
+
* Otherwise, position is determined by css
|
469
|
+
*/
|
470
|
+
positionDropdown(): void;
|
471
|
+
/**
|
472
|
+
* Resets / clears all selected items
|
473
|
+
* from the control.
|
474
|
+
*
|
475
|
+
*/
|
476
|
+
clear(silent?: boolean): void;
|
477
|
+
/**
|
478
|
+
* A helper method for inserting an element
|
479
|
+
* at the current caret position.
|
480
|
+
*
|
481
|
+
*/
|
482
|
+
insertAtCaret(el: HTMLElement): void;
|
483
|
+
/**
|
484
|
+
* Removes the current selected item(s).
|
485
|
+
*
|
486
|
+
*/
|
487
|
+
deleteSelection(e: KeyboardEvent): boolean;
|
488
|
+
/**
|
489
|
+
* Selects the previous / next item (depending on the `direction` argument).
|
490
|
+
*
|
491
|
+
* > 0 - right
|
492
|
+
* < 0 - left
|
493
|
+
*
|
494
|
+
*/
|
495
|
+
advanceSelection(direction: number, e?: MouseEvent | KeyboardEvent): void;
|
496
|
+
moveCaret(direction: number): void;
|
497
|
+
/**
|
498
|
+
* Get the last active item
|
499
|
+
*
|
500
|
+
*/
|
501
|
+
getLastActive(direction?: number): any;
|
502
|
+
/**
|
503
|
+
* Moves the caret to the specified index.
|
504
|
+
*
|
505
|
+
* The input must be moved by leaving it in place and moving the
|
506
|
+
* siblings, due to the fact that focus cannot be restored once lost
|
507
|
+
* on mobile webkit devices
|
508
|
+
*
|
509
|
+
*/
|
510
|
+
setCaret(new_pos: number): void;
|
511
|
+
/**
|
512
|
+
* Return list of item dom elements
|
513
|
+
*
|
514
|
+
*/
|
515
|
+
controlChildren(): TomItem[];
|
516
|
+
/**
|
517
|
+
* Disables user input on the control. Used while
|
518
|
+
* items are being asynchronously created.
|
519
|
+
*/
|
520
|
+
lock(): void;
|
521
|
+
/**
|
522
|
+
* Re-enables user input on the control.
|
523
|
+
*/
|
524
|
+
unlock(): void;
|
525
|
+
/**
|
526
|
+
* Disables user input on the control completely.
|
527
|
+
* While disabled, it cannot receive focus.
|
528
|
+
*/
|
529
|
+
disable(): void;
|
530
|
+
/**
|
531
|
+
* Enables the control so that it can respond
|
532
|
+
* to focus and user input.
|
533
|
+
*/
|
534
|
+
enable(): void;
|
535
|
+
/**
|
536
|
+
* Completely destroys the control and
|
537
|
+
* unbinds all event listeners so that it can
|
538
|
+
* be garbage collected.
|
539
|
+
*/
|
540
|
+
destroy(): void;
|
541
|
+
/**
|
542
|
+
* A helper method for rendering "item" and
|
543
|
+
* "option" templates, given the data.
|
544
|
+
*
|
545
|
+
*/
|
546
|
+
render(templateName: TomTemplateNames, data?: any): null | HTMLElement;
|
547
|
+
/**
|
548
|
+
* _render() can be called directly when we know we don't want to hit the cache
|
549
|
+
* return type could be null for some templates, we need https://github.com/microsoft/TypeScript/issues/33014
|
550
|
+
*/
|
551
|
+
_render(templateName: TomTemplateNames, data?: any): HTMLElement;
|
552
|
+
/**
|
553
|
+
* Clears the render cache for a template. If
|
554
|
+
* no template is given, clears all render
|
555
|
+
* caches.
|
556
|
+
*
|
557
|
+
*/
|
558
|
+
clearCache(): void;
|
559
|
+
/**
|
560
|
+
* Removes a value from item and option caches
|
561
|
+
*
|
562
|
+
*/
|
563
|
+
uncacheValue(value: string): void;
|
564
|
+
/**
|
565
|
+
* Determines whether or not to display the
|
566
|
+
* create item prompt, given a user input.
|
567
|
+
*
|
568
|
+
*/
|
569
|
+
canCreate(input: string): boolean;
|
570
|
+
/**
|
571
|
+
* Wraps this.`method` so that `new_fn` can be invoked 'before', 'after', or 'instead' of the original method
|
572
|
+
*
|
573
|
+
* this.hook('instead','onKeyDown',function( arg1, arg2 ...){
|
574
|
+
*
|
575
|
+
* });
|
576
|
+
*/
|
577
|
+
hook(when: string, method: string, new_fn: any): void;
|
578
|
+
}
|
579
|
+
export {};
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import TomSelect from '../tom-select';
|
2
|
+
import { escape_html } from '../utils';
|
3
|
+
export interface TomInput extends HTMLElement {
|
4
|
+
tomselect?: TomSelect;
|
5
|
+
disabled: boolean;
|
6
|
+
required: boolean;
|
7
|
+
value: string;
|
8
|
+
type: string;
|
9
|
+
checkValidity: () => boolean;
|
10
|
+
}
|
11
|
+
export declare type TomArgObject = {
|
12
|
+
silent?: boolean;
|
13
|
+
};
|
14
|
+
export declare type TomOption = {
|
15
|
+
[key: string]: any;
|
16
|
+
};
|
17
|
+
export declare type TomOptions = {
|
18
|
+
[key: string]: TomOption;
|
19
|
+
};
|
20
|
+
export declare type TomCreateFilter = (input: string) => boolean;
|
21
|
+
export declare type TomCreateCallback = (data?: TomOption) => void;
|
22
|
+
export declare type TomCreate = (input: string, create: TomCreateCallback) => boolean;
|
23
|
+
export interface TomItem extends HTMLElement {
|
24
|
+
dataset: {
|
25
|
+
value: string;
|
26
|
+
};
|
27
|
+
}
|
28
|
+
export declare type TomLoadCallback = TomSelect['loadCallback'];
|
29
|
+
export declare type TomTemplate = (data: TomOption, escape: typeof escape_html) => string | HTMLElement;
|
30
|
+
export declare type TomTemplateNull = (data: TomOption, escape: typeof escape_html) => null | string | HTMLElement;
|
31
|
+
export declare type TomTemplates = {
|
32
|
+
'dropdown': TomTemplate;
|
33
|
+
'optgroup': TomTemplate;
|
34
|
+
'optgroup_header': TomTemplate;
|
35
|
+
'option': TomTemplate;
|
36
|
+
'item': TomTemplate;
|
37
|
+
'option_create': TomTemplate;
|
38
|
+
'no_results': TomTemplate;
|
39
|
+
'loading': TomTemplate;
|
40
|
+
'not_loading': TomTemplateNull;
|
41
|
+
'loading_more': TomTemplateNull;
|
42
|
+
'no_more_results': TomTemplateNull;
|
43
|
+
};
|
44
|
+
export declare type TomTemplateNames = keyof TomTemplates;
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import { TomCreateFilter, TomCreate, TomLoadCallback } from './index';
|
2
|
+
import { escape_html } from '../utils';
|
3
|
+
import { TPluginItem, TPluginHash } from '../contrib/microplugin';
|
4
|
+
import * as SifterTypes from '@orchidjs/sifter/lib/types';
|
5
|
+
export declare type TomSettings = {
|
6
|
+
options?: any[];
|
7
|
+
optgroups?: any[];
|
8
|
+
items?: string[];
|
9
|
+
plugins: string[] | TPluginItem[] | TPluginHash;
|
10
|
+
delimiter: string;
|
11
|
+
splitOn: RegExp | string;
|
12
|
+
persist: boolean;
|
13
|
+
diacritics: boolean;
|
14
|
+
create: boolean | TomCreate;
|
15
|
+
createOnBlur: boolean;
|
16
|
+
createFilter: RegExp | string | TomCreateFilter;
|
17
|
+
highlight: boolean;
|
18
|
+
openOnFocus: boolean;
|
19
|
+
shouldOpen: boolean;
|
20
|
+
maxOptions: number;
|
21
|
+
maxItems: null | number;
|
22
|
+
hideSelected: boolean;
|
23
|
+
duplicates: boolean;
|
24
|
+
addPrecedence: boolean;
|
25
|
+
selectOnTab: boolean;
|
26
|
+
preload: boolean | string;
|
27
|
+
allowEmptyOption: boolean;
|
28
|
+
closeAfterSelect: boolean;
|
29
|
+
loadThrottle: number;
|
30
|
+
loadingClass: string;
|
31
|
+
dataAttr: string;
|
32
|
+
optgroupField: string;
|
33
|
+
valueField: string;
|
34
|
+
labelField: string;
|
35
|
+
disabledField: string;
|
36
|
+
optgroupLabelField: string;
|
37
|
+
optgroupValueField: string;
|
38
|
+
lockOptgroupOrder: boolean;
|
39
|
+
sortField: string | SifterTypes.Sort[] | SifterTypes.SortFn;
|
40
|
+
searchField: string[];
|
41
|
+
searchConjunction: string;
|
42
|
+
nesting: boolean;
|
43
|
+
mode: string;
|
44
|
+
wrapperClass: string;
|
45
|
+
controlClass: string;
|
46
|
+
dropdownClass: string;
|
47
|
+
dropdownContentClass: string;
|
48
|
+
itemClass: string;
|
49
|
+
optionClass: string;
|
50
|
+
dropdownParent: string;
|
51
|
+
controlInput: string | HTMLInputElement;
|
52
|
+
copyClassesToDropdown: boolean;
|
53
|
+
placeholder: string;
|
54
|
+
hidePlaceholder: boolean;
|
55
|
+
load: (value: string, callback: TomLoadCallback) => void;
|
56
|
+
score?: (query: string) => () => any;
|
57
|
+
shouldLoad: (query: string) => boolean;
|
58
|
+
onInitialize: (evt: Event) => void;
|
59
|
+
onChange: (evt: Event) => void;
|
60
|
+
onItemAdd: (evt: Event) => void;
|
61
|
+
onItemRemove: (evt: Event) => void;
|
62
|
+
onClear: (evt: Event) => void;
|
63
|
+
onOptionAdd: (evt: Event) => void;
|
64
|
+
onOptionRemove: (evt: Event) => void;
|
65
|
+
onOptionClear: (evt: Event) => void;
|
66
|
+
onOptionGroupAdd: (evt: Event) => void;
|
67
|
+
onOptionGroupRemove: (evt: Event) => void;
|
68
|
+
onOptionGroupClear: (evt: Event) => void;
|
69
|
+
onDropdownOpen: (evt: Event) => void;
|
70
|
+
onDropdownClose: (evt: Event) => void;
|
71
|
+
onType: (evt: Event) => void;
|
72
|
+
onLoad: (evt: Event) => void;
|
73
|
+
onFocus: (evt: Event) => void;
|
74
|
+
onBlur: (evt: Event) => void;
|
75
|
+
onDelete: (values: string[], evt: KeyboardEvent | MouseEvent) => boolean;
|
76
|
+
render: {
|
77
|
+
[key: string]: (data: any, escape: typeof escape_html) => string | HTMLElement;
|
78
|
+
};
|
79
|
+
firstUrl: (query: string) => any;
|
80
|
+
shouldLoadMore: () => boolean;
|
81
|
+
};
|