@tabler/core 1.0.0-beta12 → 1.0.0-beta13

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 (222) hide show
  1. package/dist/css/demo.css +188 -248
  2. package/dist/css/demo.min.css +3 -3
  3. package/dist/css/demo.rtl.css +188 -248
  4. package/dist/css/demo.rtl.min.css +3 -3
  5. package/dist/css/tabler-flags.css +529 -266
  6. package/dist/css/tabler-flags.min.css +3 -3
  7. package/dist/css/tabler-flags.rtl.css +529 -266
  8. package/dist/css/tabler-flags.rtl.min.css +3 -3
  9. package/dist/css/tabler-payments.css +252 -127
  10. package/dist/css/tabler-payments.min.css +2 -2
  11. package/dist/css/tabler-payments.rtl.css +252 -127
  12. package/dist/css/tabler-payments.rtl.min.css +2 -2
  13. package/dist/css/tabler-vendors.css +739 -469
  14. package/dist/css/tabler-vendors.min.css +3 -3
  15. package/dist/css/tabler-vendors.rtl.css +739 -469
  16. package/dist/css/tabler-vendors.rtl.min.css +3 -3
  17. package/dist/css/tabler.css +13247 -8033
  18. package/dist/css/tabler.min.css +4 -4
  19. package/dist/css/tabler.rtl.css +13244 -8031
  20. package/dist/css/tabler.rtl.min.css +4 -4
  21. package/dist/js/demo-theme.js +2 -2
  22. package/dist/js/demo-theme.min.js +2 -2
  23. package/dist/js/demo.js +2 -2
  24. package/dist/js/demo.min.js +2 -2
  25. package/dist/js/tabler.esm.js +138 -77
  26. package/dist/js/tabler.esm.min.js +5 -5
  27. package/dist/js/tabler.js +140 -79
  28. package/dist/js/tabler.min.js +5 -5
  29. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.js +66 -72
  30. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.js.map +1 -1
  31. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.min.js +2 -2
  32. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.min.js.map +1 -1
  33. package/dist/libs/bootstrap/dist/js/bootstrap.esm.js +65 -71
  34. package/dist/libs/bootstrap/dist/js/bootstrap.esm.js.map +1 -1
  35. package/dist/libs/bootstrap/dist/js/bootstrap.esm.min.js +2 -2
  36. package/dist/libs/bootstrap/dist/js/bootstrap.esm.min.js.map +1 -1
  37. package/dist/libs/bootstrap/dist/js/bootstrap.js +66 -72
  38. package/dist/libs/bootstrap/dist/js/bootstrap.js.map +1 -1
  39. package/dist/libs/bootstrap/dist/js/bootstrap.min.js +2 -2
  40. package/dist/libs/bootstrap/dist/js/bootstrap.min.js.map +1 -1
  41. package/dist/libs/tinymce/CHANGELOG.md +45 -0
  42. package/dist/libs/tinymce/composer.json +1 -1
  43. package/dist/libs/tinymce/icons/default/icons.js +2 -0
  44. package/dist/libs/tinymce/icons/default/icons.min.js +1 -1
  45. package/dist/libs/tinymce/models/dom/model.js +14 -10
  46. package/dist/libs/tinymce/models/dom/model.min.js +2 -2
  47. package/dist/libs/tinymce/package.json +1 -1
  48. package/dist/libs/tinymce/plugins/advlist/plugin.js +16 -9
  49. package/dist/libs/tinymce/plugins/advlist/plugin.min.js +2 -2
  50. package/dist/libs/tinymce/plugins/anchor/plugin.js +7 -6
  51. package/dist/libs/tinymce/plugins/anchor/plugin.min.js +2 -2
  52. package/dist/libs/tinymce/plugins/autolink/plugin.js +93 -97
  53. package/dist/libs/tinymce/plugins/autolink/plugin.min.js +2 -2
  54. package/dist/libs/tinymce/plugins/autoresize/plugin.js +3 -2
  55. package/dist/libs/tinymce/plugins/autoresize/plugin.min.js +2 -2
  56. package/dist/libs/tinymce/plugins/autosave/plugin.js +11 -10
  57. package/dist/libs/tinymce/plugins/autosave/plugin.min.js +2 -2
  58. package/dist/libs/tinymce/plugins/charmap/plugin.js +17 -7
  59. package/dist/libs/tinymce/plugins/charmap/plugin.min.js +2 -2
  60. package/dist/libs/tinymce/plugins/code/plugin.js +1 -1
  61. package/dist/libs/tinymce/plugins/code/plugin.min.js +1 -1
  62. package/dist/libs/tinymce/plugins/codesample/plugin.js +4 -6
  63. package/dist/libs/tinymce/plugins/codesample/plugin.min.js +2 -2
  64. package/dist/libs/tinymce/plugins/directionality/plugin.js +1 -1
  65. package/dist/libs/tinymce/plugins/directionality/plugin.min.js +1 -1
  66. package/dist/libs/tinymce/plugins/emoticons/plugin.js +10 -4
  67. package/dist/libs/tinymce/plugins/emoticons/plugin.min.js +2 -2
  68. package/dist/libs/tinymce/plugins/fullscreen/plugin.js +11 -5
  69. package/dist/libs/tinymce/plugins/fullscreen/plugin.min.js +2 -2
  70. package/dist/libs/tinymce/plugins/help/plugin.js +92 -19
  71. package/dist/libs/tinymce/plugins/help/plugin.min.js +2 -2
  72. package/dist/libs/tinymce/plugins/image/plugin.js +50 -37
  73. package/dist/libs/tinymce/plugins/image/plugin.min.js +2 -2
  74. package/dist/libs/tinymce/plugins/importcss/plugin.js +8 -6
  75. package/dist/libs/tinymce/plugins/importcss/plugin.min.js +2 -2
  76. package/dist/libs/tinymce/plugins/insertdatetime/plugin.js +2 -3
  77. package/dist/libs/tinymce/plugins/insertdatetime/plugin.min.js +2 -2
  78. package/dist/libs/tinymce/plugins/link/plugin.js +57 -43
  79. package/dist/libs/tinymce/plugins/link/plugin.min.js +2 -2
  80. package/dist/libs/tinymce/plugins/lists/plugin.js +120 -74
  81. package/dist/libs/tinymce/plugins/lists/plugin.min.js +2 -2
  82. package/dist/libs/tinymce/plugins/media/plugin.js +39 -24
  83. package/dist/libs/tinymce/plugins/media/plugin.min.js +2 -2
  84. package/dist/libs/tinymce/plugins/nonbreaking/plugin.js +1 -1
  85. package/dist/libs/tinymce/plugins/nonbreaking/plugin.min.js +1 -1
  86. package/dist/libs/tinymce/plugins/pagebreak/plugin.js +2 -2
  87. package/dist/libs/tinymce/plugins/pagebreak/plugin.min.js +2 -2
  88. package/dist/libs/tinymce/plugins/preview/plugin.js +1 -1
  89. package/dist/libs/tinymce/plugins/preview/plugin.min.js +1 -1
  90. package/dist/libs/tinymce/plugins/quickbars/plugin.js +3 -2
  91. package/dist/libs/tinymce/plugins/quickbars/plugin.min.js +2 -2
  92. package/dist/libs/tinymce/plugins/save/plugin.js +1 -1
  93. package/dist/libs/tinymce/plugins/save/plugin.min.js +1 -1
  94. package/dist/libs/tinymce/plugins/searchreplace/plugin.js +13 -13
  95. package/dist/libs/tinymce/plugins/searchreplace/plugin.min.js +2 -2
  96. package/dist/libs/tinymce/plugins/table/plugin.js +42 -37
  97. package/dist/libs/tinymce/plugins/table/plugin.min.js +2 -2
  98. package/dist/libs/tinymce/plugins/template/plugin.js +7 -4
  99. package/dist/libs/tinymce/plugins/template/plugin.min.js +2 -2
  100. package/dist/libs/tinymce/plugins/visualblocks/plugin.js +1 -1
  101. package/dist/libs/tinymce/plugins/visualblocks/plugin.min.js +1 -1
  102. package/dist/libs/tinymce/plugins/visualchars/plugin.js +9 -6
  103. package/dist/libs/tinymce/plugins/visualchars/plugin.min.js +2 -2
  104. package/dist/libs/tinymce/plugins/wordcount/plugin.js +6 -5
  105. package/dist/libs/tinymce/plugins/wordcount/plugin.min.js +2 -2
  106. package/dist/libs/tinymce/skins/ui/oxide/content.css +28 -0
  107. package/dist/libs/tinymce/skins/ui/oxide/content.inline.css +28 -0
  108. package/dist/libs/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
  109. package/dist/libs/tinymce/skins/ui/oxide/content.min.css +1 -1
  110. package/dist/libs/tinymce/skins/ui/oxide/skin.css +39 -4
  111. package/dist/libs/tinymce/skins/ui/oxide/skin.min.css +1 -1
  112. package/dist/libs/tinymce/skins/ui/oxide-dark/content.css +28 -0
  113. package/dist/libs/tinymce/skins/ui/oxide-dark/content.inline.css +28 -0
  114. package/dist/libs/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
  115. package/dist/libs/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
  116. package/dist/libs/tinymce/skins/ui/oxide-dark/skin.css +39 -4
  117. package/dist/libs/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  118. package/dist/libs/tinymce/skins/ui/tinymce-5/content.css +28 -0
  119. package/dist/libs/tinymce/skins/ui/tinymce-5/content.inline.css +28 -0
  120. package/dist/libs/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -1
  121. package/dist/libs/tinymce/skins/ui/tinymce-5/content.min.css +1 -1
  122. package/dist/libs/tinymce/skins/ui/tinymce-5/skin.css +45 -4
  123. package/dist/libs/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
  124. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.css +28 -0
  125. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.css +28 -0
  126. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -1
  127. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -1
  128. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.css +44 -3
  129. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
  130. package/dist/libs/tinymce/themes/silver/theme.js +2494 -1999
  131. package/dist/libs/tinymce/themes/silver/theme.min.js +2 -2
  132. package/dist/libs/tinymce/tinymce.d.ts +345 -169
  133. package/dist/libs/tinymce/tinymce.js +2988 -2392
  134. package/dist/libs/tinymce/tinymce.min.js +2 -2
  135. package/dist/libs/tom-select/dist/js/plugins/caret_position.js +164 -160
  136. package/dist/libs/tom-select/dist/js/plugins/caret_position.js.map +1 -1
  137. package/dist/libs/tom-select/dist/js/plugins/change_listener.js +1 -1
  138. package/dist/libs/tom-select/dist/js/plugins/change_listener.js.map +1 -1
  139. package/dist/libs/tom-select/dist/js/plugins/checkbox_options.js +12 -7
  140. package/dist/libs/tom-select/dist/js/plugins/checkbox_options.js.map +1 -1
  141. package/dist/libs/tom-select/dist/js/plugins/clear_button.js +94 -89
  142. package/dist/libs/tom-select/dist/js/plugins/clear_button.js.map +1 -1
  143. package/dist/libs/tom-select/dist/js/plugins/drag_drop.js +1 -1
  144. package/dist/libs/tom-select/dist/js/plugins/drag_drop.js.map +1 -1
  145. package/dist/libs/tom-select/dist/js/plugins/dropdown_header.js +121 -116
  146. package/dist/libs/tom-select/dist/js/plugins/dropdown_header.js.map +1 -1
  147. package/dist/libs/tom-select/dist/js/plugins/dropdown_input.js +234 -230
  148. package/dist/libs/tom-select/dist/js/plugins/dropdown_input.js.map +1 -1
  149. package/dist/libs/tom-select/dist/js/plugins/input_autogrow.js +1 -1
  150. package/dist/libs/tom-select/dist/js/plugins/input_autogrow.js.map +1 -1
  151. package/dist/libs/tom-select/dist/js/plugins/no_active_items.js +1 -1
  152. package/dist/libs/tom-select/dist/js/plugins/no_active_items.js.map +1 -1
  153. package/dist/libs/tom-select/dist/js/plugins/no_backspace_delete.js +1 -1
  154. package/dist/libs/tom-select/dist/js/plugins/no_backspace_delete.js.map +1 -1
  155. package/dist/libs/tom-select/dist/js/plugins/optgroup_columns.js +112 -107
  156. package/dist/libs/tom-select/dist/js/plugins/optgroup_columns.js.map +1 -1
  157. package/dist/libs/tom-select/dist/js/plugins/remove_button.js +149 -144
  158. package/dist/libs/tom-select/dist/js/plugins/remove_button.js.map +1 -1
  159. package/dist/libs/tom-select/dist/js/plugins/restore_on_backspace.js +1 -1
  160. package/dist/libs/tom-select/dist/js/plugins/restore_on_backspace.js.map +1 -1
  161. package/dist/libs/tom-select/dist/js/plugins/virtual_scroll.js +277 -269
  162. package/dist/libs/tom-select/dist/js/plugins/virtual_scroll.js.map +1 -1
  163. package/dist/libs/tom-select/dist/js/tom-select.base.js +756 -272
  164. package/dist/libs/tom-select/dist/js/tom-select.base.js.map +1 -1
  165. package/dist/libs/tom-select/dist/js/tom-select.base.min.js +329 -272
  166. package/dist/libs/tom-select/dist/js/tom-select.base.min.js.map +1 -1
  167. package/dist/libs/tom-select/dist/js/tom-select.complete.js +761 -273
  168. package/dist/libs/tom-select/dist/js/tom-select.complete.js.map +1 -1
  169. package/dist/libs/tom-select/dist/js/tom-select.complete.min.js +268 -209
  170. package/dist/libs/tom-select/dist/js/tom-select.complete.min.js.map +1 -1
  171. package/dist/libs/tom-select/dist/js/tom-select.popular.js +753 -269
  172. package/dist/libs/tom-select/dist/js/tom-select.popular.js.map +1 -1
  173. package/dist/libs/tom-select/dist/js/tom-select.popular.min.js +348 -291
  174. package/dist/libs/tom-select/dist/js/tom-select.popular.min.js.map +1 -1
  175. package/package.json +22 -24
  176. package/src/js/src/dropdown.js +5 -2
  177. package/src/js/tabler.js +2 -2
  178. package/src/scss/_core.scss +1 -0
  179. package/src/scss/_utilities.scss +2 -4
  180. package/src/scss/_variables.scss +129 -104
  181. package/src/scss/demo/_examples.scss +2 -2
  182. package/src/scss/demo/_highlight.scss +13 -277
  183. package/src/scss/demo.scss +3 -3
  184. package/src/scss/layout/_core.scss +1 -1
  185. package/src/scss/layout/_dark.scss +21 -34
  186. package/src/scss/layout/_footer.scss +1 -1
  187. package/src/scss/layout/_navbar.scss +20 -18
  188. package/src/scss/layout/_page.scss +3 -3
  189. package/src/scss/layout/_root.scss +11 -0
  190. package/src/scss/mixins/_mixins.scss +7 -6
  191. package/src/scss/ui/_alerts.scss +2 -2
  192. package/src/scss/ui/_avatars.scss +3 -3
  193. package/src/scss/ui/_badges.scss +3 -3
  194. package/src/scss/ui/_buttons.scss +14 -9
  195. package/src/scss/ui/_calendars.scss +4 -4
  196. package/src/scss/ui/_cards.scss +37 -52
  197. package/src/scss/ui/_carousel.scss +4 -4
  198. package/src/scss/ui/_dropdowns.scss +2 -1
  199. package/src/scss/ui/_empty.scss +1 -1
  200. package/src/scss/ui/_flags.scss +1 -1
  201. package/src/scss/ui/_forms.scss +2 -2
  202. package/src/scss/ui/_grid.scss +3 -3
  203. package/src/scss/ui/_lists.scss +3 -3
  204. package/src/scss/ui/_modals.scss +1 -1
  205. package/src/scss/ui/_nav.scss +3 -3
  206. package/src/scss/ui/_offcanvas.scss +1 -5
  207. package/src/scss/ui/_progress.scss +1 -1
  208. package/src/scss/ui/_ribbons.scss +12 -7
  209. package/src/scss/ui/_status.scss +2 -2
  210. package/src/scss/ui/_steps.scss +2 -2
  211. package/src/scss/ui/_tables.scss +2 -2
  212. package/src/scss/ui/_toasts.scss +1 -1
  213. package/src/scss/ui/_tracking.scss +29 -0
  214. package/src/scss/ui/_type.scss +35 -47
  215. package/src/scss/ui/forms/_form-colorinput.scss +1 -1
  216. package/src/scss/ui/forms/_form-imagecheck.scss +12 -4
  217. package/src/scss/ui/forms/_form-selectgroup.scss +2 -2
  218. package/src/scss/utils/_colors.scss +5 -3
  219. package/src/scss/vendor/_apexcharts.scss +26 -0
  220. package/src/scss/vendor/_jsvectormap.scss +2 -2
  221. package/src/scss/vendor/_litepicker.scss +4 -3
  222. package/src/scss/vendor/_tinymce.scss +14 -3
@@ -1,240 +1,244 @@
1
1
  /**
2
- * Tom Select v2.1.0
2
+ * Tom Select v2.2.1
3
3
  * Licensed under the Apache License, Version 2.0 (the "License");
4
4
  */
5
5
 
6
6
  (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
- typeof define === 'function' && define.amd ? define(factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.dropdown_input = factory());
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8
+ typeof define === 'function' && define.amd ? define(factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.dropdown_input = factory());
10
10
  })(this, (function () { 'use strict';
11
11
 
12
- const KEY_ESC = 27;
13
- const KEY_TAB = 9;
14
- typeof navigator === 'undefined' ? false : /Mac/.test(navigator.userAgent);
15
- // ctrl key or apple key for ma
16
-
17
- // @ts-ignore TS2691 "An import path cannot end with a '.ts' extension"
18
- const latin_convert = {
19
- 'æ': 'ae',
20
- 'ⱥ': 'a',
21
- 'ø': 'o'
22
- };
23
- new RegExp(Object.keys(latin_convert).join('|'), 'gu');
24
-
25
- // @ts-ignore TS2691 "An import path cannot end with a '.ts' extension"
26
- /**
27
- * Iterates over arrays and hashes.
28
- *
29
- * ```
30
- * iterate(this.items, function(item, id) {
31
- * // invoked for each item
32
- * });
33
- * ```
34
- *
35
- */
36
-
37
- const iterate = (object, callback) => {
38
- if (Array.isArray(object)) {
39
- object.forEach(callback);
40
- } else {
41
- for (var key in object) {
42
- if (object.hasOwnProperty(key)) {
43
- callback(object[key], key);
44
- }
45
- }
46
- }
47
- };
48
-
49
- /**
50
- * Return a dom element from either a dom query string, jQuery object, a dom element or html string
51
- * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518
52
- *
53
- * param query should be {}
54
- */
55
-
56
- const getDom = query => {
57
- if (query.jquery) {
58
- return query[0];
59
- }
60
-
61
- if (query instanceof HTMLElement) {
62
- return query;
63
- }
64
-
65
- if (isHtmlString(query)) {
66
- let div = document.createElement('div');
67
- div.innerHTML = query.trim(); // Never return a text node of whitespace as the result
68
-
69
- return div.firstChild;
70
- }
71
-
72
- return document.querySelector(query);
73
- };
74
- const isHtmlString = arg => {
75
- if (typeof arg === 'string' && arg.indexOf('<') > -1) {
76
- return true;
77
- }
78
-
79
- return false;
80
- };
81
- /**
82
- * Add css classes
83
- *
84
- */
85
-
86
- const addClasses = (elmts, ...classes) => {
87
- var norm_classes = classesArray(classes);
88
- elmts = castAsArray(elmts);
89
- elmts.map(el => {
90
- norm_classes.map(cls => {
91
- el.classList.add(cls);
92
- });
93
- });
94
- };
95
- /**
96
- * Return arguments
97
- *
98
- */
99
-
100
- const classesArray = args => {
101
- var classes = [];
102
- iterate(args, _classes => {
103
- if (typeof _classes === 'string') {
104
- _classes = _classes.trim().split(/[\11\12\14\15\40]/);
105
- }
106
-
107
- if (Array.isArray(_classes)) {
108
- classes = classes.concat(_classes);
109
- }
110
- });
111
- return classes.filter(Boolean);
112
- };
113
- /**
114
- * Create an array from arg if it's not already an array
115
- *
116
- */
117
-
118
- const castAsArray = arg => {
119
- if (!Array.isArray(arg)) {
120
- arg = [arg];
121
- }
122
-
123
- return arg;
124
- };
125
-
126
- /**
127
- * Converts a scalar to its best string representation
128
- * for hash keys and HTML attribute values.
129
- *
130
- * Transformations:
131
- * 'str' -> 'str'
132
- * null -> ''
133
- * undefined -> ''
134
- * true -> '1'
135
- * false -> '0'
136
- * 0 -> '0'
137
- * 1 -> '1'
138
- *
139
- */
140
- /**
141
- * Prevent default
142
- *
143
- */
144
-
145
- const preventDefault = (evt, stop = false) => {
146
- if (evt) {
147
- evt.preventDefault();
148
-
149
- if (stop) {
150
- evt.stopPropagation();
151
- }
152
- }
153
- };
154
- /**
155
- * Prevent default
156
- *
157
- */
158
-
159
- const addEvent = (target, type, callback, options) => {
160
- target.addEventListener(type, callback, options);
161
- };
162
-
163
- /**
164
- * Plugin: "dropdown_input" (Tom Select)
165
- * Copyright (c) contributors
166
- *
167
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
168
- * file except in compliance with the License. You may obtain a copy of the License at:
169
- * http://www.apache.org/licenses/LICENSE-2.0
170
- *
171
- * Unless required by applicable law or agreed to in writing, software distributed under
172
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
173
- * ANY KIND, either express or implied. See the License for the specific language
174
- * governing permissions and limitations under the License.
175
- *
176
- */
177
- function plugin () {
178
- const self = this;
179
- self.settings.shouldOpen = true; // make sure the input is shown even if there are no options to display in the dropdown
180
-
181
- self.hook('before', 'setup', () => {
182
- self.focus_node = self.control;
183
- addClasses(self.control_input, 'dropdown-input');
184
- const div = getDom('<div class="dropdown-input-wrap">');
185
- div.append(self.control_input);
186
- self.dropdown.insertBefore(div, self.dropdown.firstChild); // set a placeholder in the select control
187
-
188
- const placeholder = getDom('<input class="items-placeholder" tabindex="-1" />');
189
- placeholder.placeholder = self.settings.placeholder || '';
190
- self.control.append(placeholder);
191
- });
192
- self.on('initialize', () => {
193
- // set tabIndex on control to -1, otherwise [shift+tab] will put focus right back on control_input
194
- self.control_input.addEventListener('keydown', evt => {
195
- //addEvent(self.control_input,'keydown' as const,(evt:KeyboardEvent) =>{
196
- switch (evt.keyCode) {
197
- case KEY_ESC:
198
- if (self.isOpen) {
199
- preventDefault(evt, true);
200
- self.close();
201
- }
202
-
203
- self.clearActiveItems();
204
- return;
205
-
206
- case KEY_TAB:
207
- self.focus_node.tabIndex = -1;
208
- break;
209
- }
210
-
211
- return self.onKeyDown.call(self, evt);
212
- });
213
- self.on('blur', () => {
214
- self.focus_node.tabIndex = self.isDisabled ? -1 : self.tabIndex;
215
- }); // give the control_input focus when the dropdown is open
216
-
217
- self.on('dropdown_open', () => {
218
- self.control_input.focus();
219
- }); // prevent onBlur from closing when focus is on the control_input
220
-
221
- const orig_onBlur = self.onBlur;
222
- self.hook('instead', 'onBlur', evt => {
223
- if (evt && evt.relatedTarget == self.control_input) return;
224
- return orig_onBlur.call(self);
225
- });
226
- addEvent(self.control_input, 'blur', () => self.onBlur()); // return focus to control to allow further keyboard input
227
-
228
- self.hook('before', 'close', () => {
229
- if (!self.isOpen) return;
230
- self.focus_node.focus({
231
- preventScroll: true
232
- });
233
- });
234
- });
235
- }
236
-
237
- return plugin;
12
+ const KEY_ESC = 27;
13
+ const KEY_TAB = 9;
14
+ typeof navigator === 'undefined' ? false : /Mac/.test(navigator.userAgent);
15
+ // ctrl key or apple key for ma
16
+
17
+ /*! @orchidjs/unicode-variants | https://github.com/orchidjs/unicode-variants | Apache License (v2) */
18
+ const accent_pat = '[\u0300-\u036F\u{b7}\u{2be}]'; // \u{2bc}
19
+ /** @type {TUnicodeMap} */
20
+
21
+ const latin_convert = {
22
+ 'æ': 'ae',
23
+ 'ⱥ': 'a',
24
+ 'ø': 'o',
25
+ '⁄': '/',
26
+ '∕': '/'
27
+ };
28
+ new RegExp(Object.keys(latin_convert).join('|') + '|' + accent_pat, 'gu');
29
+
30
+ /**
31
+ * Iterates over arrays and hashes.
32
+ *
33
+ * ```
34
+ * iterate(this.items, function(item, id) {
35
+ * // invoked for each item
36
+ * });
37
+ * ```
38
+ *
39
+ */
40
+
41
+ const iterate = (object, callback) => {
42
+ if (Array.isArray(object)) {
43
+ object.forEach(callback);
44
+ } else {
45
+ for (var key in object) {
46
+ if (object.hasOwnProperty(key)) {
47
+ callback(object[key], key);
48
+ }
49
+ }
50
+ }
51
+ };
52
+
53
+ /**
54
+ * Return a dom element from either a dom query string, jQuery object, a dom element or html string
55
+ * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518
56
+ *
57
+ * param query should be {}
58
+ */
59
+
60
+ const getDom = query => {
61
+ if (query.jquery) {
62
+ return query[0];
63
+ }
64
+
65
+ if (query instanceof HTMLElement) {
66
+ return query;
67
+ }
68
+
69
+ if (isHtmlString(query)) {
70
+ var tpl = document.createElement('template');
71
+ tpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result
72
+
73
+ return tpl.content.firstChild;
74
+ }
75
+
76
+ return document.querySelector(query);
77
+ };
78
+ const isHtmlString = arg => {
79
+ if (typeof arg === 'string' && arg.indexOf('<') > -1) {
80
+ return true;
81
+ }
82
+
83
+ return false;
84
+ };
85
+ /**
86
+ * Add css classes
87
+ *
88
+ */
89
+
90
+ const addClasses = (elmts, ...classes) => {
91
+ var norm_classes = classesArray(classes);
92
+ elmts = castAsArray(elmts);
93
+ elmts.map(el => {
94
+ norm_classes.map(cls => {
95
+ el.classList.add(cls);
96
+ });
97
+ });
98
+ };
99
+ /**
100
+ * Return arguments
101
+ *
102
+ */
103
+
104
+ const classesArray = args => {
105
+ var classes = [];
106
+ iterate(args, _classes => {
107
+ if (typeof _classes === 'string') {
108
+ _classes = _classes.trim().split(/[\11\12\14\15\40]/);
109
+ }
110
+
111
+ if (Array.isArray(_classes)) {
112
+ classes = classes.concat(_classes);
113
+ }
114
+ });
115
+ return classes.filter(Boolean);
116
+ };
117
+ /**
118
+ * Create an array from arg if it's not already an array
119
+ *
120
+ */
121
+
122
+ const castAsArray = arg => {
123
+ if (!Array.isArray(arg)) {
124
+ arg = [arg];
125
+ }
126
+
127
+ return arg;
128
+ };
129
+
130
+ /**
131
+ * Converts a scalar to its best string representation
132
+ * for hash keys and HTML attribute values.
133
+ *
134
+ * Transformations:
135
+ * 'str' -> 'str'
136
+ * null -> ''
137
+ * undefined -> ''
138
+ * true -> '1'
139
+ * false -> '0'
140
+ * 0 -> '0'
141
+ * 1 -> '1'
142
+ *
143
+ */
144
+ /**
145
+ * Prevent default
146
+ *
147
+ */
148
+
149
+ const preventDefault = (evt, stop = false) => {
150
+ if (evt) {
151
+ evt.preventDefault();
152
+
153
+ if (stop) {
154
+ evt.stopPropagation();
155
+ }
156
+ }
157
+ };
158
+ /**
159
+ * Prevent default
160
+ *
161
+ */
162
+
163
+ const addEvent = (target, type, callback, options) => {
164
+ target.addEventListener(type, callback, options);
165
+ };
166
+
167
+ /**
168
+ * Plugin: "dropdown_input" (Tom Select)
169
+ * Copyright (c) contributors
170
+ *
171
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
172
+ * file except in compliance with the License. You may obtain a copy of the License at:
173
+ * http://www.apache.org/licenses/LICENSE-2.0
174
+ *
175
+ * Unless required by applicable law or agreed to in writing, software distributed under
176
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
177
+ * ANY KIND, either express or implied. See the License for the specific language
178
+ * governing permissions and limitations under the License.
179
+ *
180
+ */
181
+ function plugin () {
182
+ const self = this;
183
+ self.settings.shouldOpen = true; // make sure the input is shown even if there are no options to display in the dropdown
184
+
185
+ self.hook('before', 'setup', () => {
186
+ self.focus_node = self.control;
187
+ addClasses(self.control_input, 'dropdown-input');
188
+ const div = getDom('<div class="dropdown-input-wrap">');
189
+ div.append(self.control_input);
190
+ self.dropdown.insertBefore(div, self.dropdown.firstChild); // set a placeholder in the select control
191
+
192
+ const placeholder = getDom('<input class="items-placeholder" tabindex="-1" />');
193
+ placeholder.placeholder = self.settings.placeholder || '';
194
+ self.control.append(placeholder);
195
+ });
196
+ self.on('initialize', () => {
197
+ // set tabIndex on control to -1, otherwise [shift+tab] will put focus right back on control_input
198
+ self.control_input.addEventListener('keydown', evt => {
199
+ //addEvent(self.control_input,'keydown' as const,(evt:KeyboardEvent) =>{
200
+ switch (evt.keyCode) {
201
+ case KEY_ESC:
202
+ if (self.isOpen) {
203
+ preventDefault(evt, true);
204
+ self.close();
205
+ }
206
+
207
+ self.clearActiveItems();
208
+ return;
209
+
210
+ case KEY_TAB:
211
+ self.focus_node.tabIndex = -1;
212
+ break;
213
+ }
214
+
215
+ return self.onKeyDown.call(self, evt);
216
+ });
217
+ self.on('blur', () => {
218
+ self.focus_node.tabIndex = self.isDisabled ? -1 : self.tabIndex;
219
+ }); // give the control_input focus when the dropdown is open
220
+
221
+ self.on('dropdown_open', () => {
222
+ self.control_input.focus();
223
+ }); // prevent onBlur from closing when focus is on the control_input
224
+
225
+ const orig_onBlur = self.onBlur;
226
+ self.hook('instead', 'onBlur', evt => {
227
+ if (evt && evt.relatedTarget == self.control_input) return;
228
+ return orig_onBlur.call(self);
229
+ });
230
+ addEvent(self.control_input, 'blur', () => self.onBlur()); // return focus to control to allow further keyboard input
231
+
232
+ self.hook('before', 'close', () => {
233
+ if (!self.isOpen) return;
234
+ self.focus_node.focus({
235
+ preventScroll: true
236
+ });
237
+ });
238
+ });
239
+ }
240
+
241
+ return plugin;
238
242
 
239
243
  }));
240
244
  //# sourceMappingURL=dropdown_input.js.map