@tabler/core 1.0.0-beta11 → 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 (250) hide show
  1. package/README.md +33 -10
  2. package/dist/css/demo.css +43 -231
  3. package/dist/css/demo.min.css +3 -3
  4. package/dist/css/demo.rtl.css +43 -231
  5. package/dist/css/demo.rtl.min.css +3 -3
  6. package/dist/css/tabler-flags.css +4 -4
  7. package/dist/css/tabler-flags.min.css +3 -3
  8. package/dist/css/tabler-flags.rtl.css +4 -4
  9. package/dist/css/tabler-flags.rtl.min.css +3 -3
  10. package/dist/css/tabler-payments.css +2 -2
  11. package/dist/css/tabler-payments.min.css +2 -2
  12. package/dist/css/tabler-payments.rtl.css +2 -2
  13. package/dist/css/tabler-payments.rtl.min.css +2 -2
  14. package/dist/css/tabler-vendors.css +138 -67
  15. package/dist/css/tabler-vendors.min.css +3 -3
  16. package/dist/css/tabler-vendors.rtl.css +138 -67
  17. package/dist/css/tabler-vendors.rtl.min.css +3 -3
  18. package/dist/css/tabler.css +3234 -2860
  19. package/dist/css/tabler.min.css +4 -4
  20. package/dist/css/tabler.rtl.css +3234 -2860
  21. package/dist/css/tabler.rtl.min.css +4 -4
  22. package/dist/js/demo-theme.js +32 -0
  23. package/dist/js/demo-theme.min.js +9 -0
  24. package/dist/js/demo.js +2 -12
  25. package/dist/js/demo.min.js +3 -3
  26. package/dist/js/tabler.esm.js +219 -129
  27. package/dist/js/tabler.esm.min.js +9 -3
  28. package/dist/js/tabler.js +242 -130
  29. package/dist/js/tabler.min.js +9 -3
  30. package/dist/libs/apexcharts/dist/apexcharts.amd.js +1 -1
  31. package/dist/libs/apexcharts/dist/apexcharts.common.js +3 -3
  32. package/dist/libs/apexcharts/dist/apexcharts.esm.js +3 -3
  33. package/dist/libs/apexcharts/dist/apexcharts.js +27 -8
  34. package/dist/libs/apexcharts/dist/apexcharts.min.js +3 -3
  35. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.js +162 -144
  36. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.js.map +1 -1
  37. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.min.js +2 -2
  38. package/dist/libs/bootstrap/dist/js/bootstrap.bundle.min.js.map +1 -1
  39. package/dist/libs/bootstrap/dist/js/bootstrap.esm.js +101 -94
  40. package/dist/libs/bootstrap/dist/js/bootstrap.esm.js.map +1 -1
  41. package/dist/libs/bootstrap/dist/js/bootstrap.esm.min.js +2 -2
  42. package/dist/libs/bootstrap/dist/js/bootstrap.esm.min.js.map +1 -1
  43. package/dist/libs/bootstrap/dist/js/bootstrap.js +102 -95
  44. package/dist/libs/bootstrap/dist/js/bootstrap.js.map +1 -1
  45. package/dist/libs/bootstrap/dist/js/bootstrap.min.js +2 -2
  46. package/dist/libs/bootstrap/dist/js/bootstrap.min.js.map +1 -1
  47. package/dist/libs/jsvectormap/dist/js/jsvectormap.js +1061 -1066
  48. package/dist/libs/jsvectormap/dist/js/jsvectormap.min.js +1 -1
  49. package/dist/libs/nouislider/dist/nouislider.d.ts +1 -1
  50. package/dist/libs/tinymce/CHANGELOG.md +45 -0
  51. package/dist/libs/tinymce/composer.json +1 -1
  52. package/dist/libs/tinymce/icons/default/icons.js +2 -0
  53. package/dist/libs/tinymce/icons/default/icons.min.js +1 -1
  54. package/dist/libs/tinymce/models/dom/model.js +14 -10
  55. package/dist/libs/tinymce/models/dom/model.min.js +2 -2
  56. package/dist/libs/tinymce/package.json +1 -1
  57. package/dist/libs/tinymce/plugins/advlist/plugin.js +16 -9
  58. package/dist/libs/tinymce/plugins/advlist/plugin.min.js +2 -2
  59. package/dist/libs/tinymce/plugins/anchor/plugin.js +7 -6
  60. package/dist/libs/tinymce/plugins/anchor/plugin.min.js +2 -2
  61. package/dist/libs/tinymce/plugins/autolink/plugin.js +93 -97
  62. package/dist/libs/tinymce/plugins/autolink/plugin.min.js +2 -2
  63. package/dist/libs/tinymce/plugins/autoresize/plugin.js +3 -2
  64. package/dist/libs/tinymce/plugins/autoresize/plugin.min.js +2 -2
  65. package/dist/libs/tinymce/plugins/autosave/plugin.js +11 -10
  66. package/dist/libs/tinymce/plugins/autosave/plugin.min.js +2 -2
  67. package/dist/libs/tinymce/plugins/charmap/plugin.js +17 -7
  68. package/dist/libs/tinymce/plugins/charmap/plugin.min.js +2 -2
  69. package/dist/libs/tinymce/plugins/code/plugin.js +1 -1
  70. package/dist/libs/tinymce/plugins/code/plugin.min.js +1 -1
  71. package/dist/libs/tinymce/plugins/codesample/plugin.js +4 -6
  72. package/dist/libs/tinymce/plugins/codesample/plugin.min.js +2 -2
  73. package/dist/libs/tinymce/plugins/directionality/plugin.js +1 -1
  74. package/dist/libs/tinymce/plugins/directionality/plugin.min.js +1 -1
  75. package/dist/libs/tinymce/plugins/emoticons/plugin.js +10 -4
  76. package/dist/libs/tinymce/plugins/emoticons/plugin.min.js +2 -2
  77. package/dist/libs/tinymce/plugins/fullscreen/plugin.js +11 -5
  78. package/dist/libs/tinymce/plugins/fullscreen/plugin.min.js +2 -2
  79. package/dist/libs/tinymce/plugins/help/plugin.js +92 -19
  80. package/dist/libs/tinymce/plugins/help/plugin.min.js +2 -2
  81. package/dist/libs/tinymce/plugins/image/plugin.js +50 -37
  82. package/dist/libs/tinymce/plugins/image/plugin.min.js +2 -2
  83. package/dist/libs/tinymce/plugins/importcss/plugin.js +8 -6
  84. package/dist/libs/tinymce/plugins/importcss/plugin.min.js +2 -2
  85. package/dist/libs/tinymce/plugins/insertdatetime/plugin.js +2 -3
  86. package/dist/libs/tinymce/plugins/insertdatetime/plugin.min.js +2 -2
  87. package/dist/libs/tinymce/plugins/link/plugin.js +57 -43
  88. package/dist/libs/tinymce/plugins/link/plugin.min.js +2 -2
  89. package/dist/libs/tinymce/plugins/lists/plugin.js +120 -74
  90. package/dist/libs/tinymce/plugins/lists/plugin.min.js +2 -2
  91. package/dist/libs/tinymce/plugins/media/plugin.js +39 -24
  92. package/dist/libs/tinymce/plugins/media/plugin.min.js +2 -2
  93. package/dist/libs/tinymce/plugins/nonbreaking/plugin.js +1 -1
  94. package/dist/libs/tinymce/plugins/nonbreaking/plugin.min.js +1 -1
  95. package/dist/libs/tinymce/plugins/pagebreak/plugin.js +2 -2
  96. package/dist/libs/tinymce/plugins/pagebreak/plugin.min.js +2 -2
  97. package/dist/libs/tinymce/plugins/preview/plugin.js +1 -1
  98. package/dist/libs/tinymce/plugins/preview/plugin.min.js +1 -1
  99. package/dist/libs/tinymce/plugins/quickbars/plugin.js +3 -2
  100. package/dist/libs/tinymce/plugins/quickbars/plugin.min.js +2 -2
  101. package/dist/libs/tinymce/plugins/save/plugin.js +1 -1
  102. package/dist/libs/tinymce/plugins/save/plugin.min.js +1 -1
  103. package/dist/libs/tinymce/plugins/searchreplace/plugin.js +13 -13
  104. package/dist/libs/tinymce/plugins/searchreplace/plugin.min.js +2 -2
  105. package/dist/libs/tinymce/plugins/table/plugin.js +42 -37
  106. package/dist/libs/tinymce/plugins/table/plugin.min.js +2 -2
  107. package/dist/libs/tinymce/plugins/template/plugin.js +7 -4
  108. package/dist/libs/tinymce/plugins/template/plugin.min.js +2 -2
  109. package/dist/libs/tinymce/plugins/visualblocks/plugin.js +1 -1
  110. package/dist/libs/tinymce/plugins/visualblocks/plugin.min.js +1 -1
  111. package/dist/libs/tinymce/plugins/visualchars/plugin.js +9 -6
  112. package/dist/libs/tinymce/plugins/visualchars/plugin.min.js +2 -2
  113. package/dist/libs/tinymce/plugins/wordcount/plugin.js +6 -5
  114. package/dist/libs/tinymce/plugins/wordcount/plugin.min.js +2 -2
  115. package/dist/libs/tinymce/skins/ui/oxide/content.css +28 -0
  116. package/dist/libs/tinymce/skins/ui/oxide/content.inline.css +28 -0
  117. package/dist/libs/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
  118. package/dist/libs/tinymce/skins/ui/oxide/content.min.css +1 -1
  119. package/dist/libs/tinymce/skins/ui/oxide/skin.css +39 -4
  120. package/dist/libs/tinymce/skins/ui/oxide/skin.min.css +1 -1
  121. package/dist/libs/tinymce/skins/ui/oxide-dark/content.css +28 -0
  122. package/dist/libs/tinymce/skins/ui/oxide-dark/content.inline.css +28 -0
  123. package/dist/libs/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
  124. package/dist/libs/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
  125. package/dist/libs/tinymce/skins/ui/oxide-dark/skin.css +39 -4
  126. package/dist/libs/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  127. package/dist/libs/tinymce/skins/ui/tinymce-5/content.css +28 -0
  128. package/dist/libs/tinymce/skins/ui/tinymce-5/content.inline.css +28 -0
  129. package/dist/libs/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -1
  130. package/dist/libs/tinymce/skins/ui/tinymce-5/content.min.css +1 -1
  131. package/dist/libs/tinymce/skins/ui/tinymce-5/skin.css +45 -4
  132. package/dist/libs/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
  133. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.css +28 -0
  134. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.css +28 -0
  135. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -1
  136. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -1
  137. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.css +44 -3
  138. package/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
  139. package/dist/libs/tinymce/themes/silver/theme.js +2494 -1999
  140. package/dist/libs/tinymce/themes/silver/theme.min.js +2 -2
  141. package/dist/libs/tinymce/tinymce.d.ts +345 -169
  142. package/dist/libs/tinymce/tinymce.js +2988 -2392
  143. package/dist/libs/tinymce/tinymce.min.js +2 -2
  144. package/dist/libs/tom-select/dist/js/plugins/caret_position.js +164 -160
  145. package/dist/libs/tom-select/dist/js/plugins/caret_position.js.map +1 -1
  146. package/dist/libs/tom-select/dist/js/plugins/change_listener.js +1 -1
  147. package/dist/libs/tom-select/dist/js/plugins/change_listener.js.map +1 -1
  148. package/dist/libs/tom-select/dist/js/plugins/checkbox_options.js +12 -7
  149. package/dist/libs/tom-select/dist/js/plugins/checkbox_options.js.map +1 -1
  150. package/dist/libs/tom-select/dist/js/plugins/clear_button.js +94 -89
  151. package/dist/libs/tom-select/dist/js/plugins/clear_button.js.map +1 -1
  152. package/dist/libs/tom-select/dist/js/plugins/drag_drop.js +1 -1
  153. package/dist/libs/tom-select/dist/js/plugins/drag_drop.js.map +1 -1
  154. package/dist/libs/tom-select/dist/js/plugins/dropdown_header.js +121 -116
  155. package/dist/libs/tom-select/dist/js/plugins/dropdown_header.js.map +1 -1
  156. package/dist/libs/tom-select/dist/js/plugins/dropdown_input.js +234 -230
  157. package/dist/libs/tom-select/dist/js/plugins/dropdown_input.js.map +1 -1
  158. package/dist/libs/tom-select/dist/js/plugins/input_autogrow.js +1 -1
  159. package/dist/libs/tom-select/dist/js/plugins/input_autogrow.js.map +1 -1
  160. package/dist/libs/tom-select/dist/js/plugins/no_active_items.js +1 -1
  161. package/dist/libs/tom-select/dist/js/plugins/no_active_items.js.map +1 -1
  162. package/dist/libs/tom-select/dist/js/plugins/no_backspace_delete.js +1 -1
  163. package/dist/libs/tom-select/dist/js/plugins/no_backspace_delete.js.map +1 -1
  164. package/dist/libs/tom-select/dist/js/plugins/optgroup_columns.js +112 -107
  165. package/dist/libs/tom-select/dist/js/plugins/optgroup_columns.js.map +1 -1
  166. package/dist/libs/tom-select/dist/js/plugins/remove_button.js +149 -144
  167. package/dist/libs/tom-select/dist/js/plugins/remove_button.js.map +1 -1
  168. package/dist/libs/tom-select/dist/js/plugins/restore_on_backspace.js +1 -1
  169. package/dist/libs/tom-select/dist/js/plugins/restore_on_backspace.js.map +1 -1
  170. package/dist/libs/tom-select/dist/js/plugins/virtual_scroll.js +277 -269
  171. package/dist/libs/tom-select/dist/js/plugins/virtual_scroll.js.map +1 -1
  172. package/dist/libs/tom-select/dist/js/tom-select.base.js +756 -272
  173. package/dist/libs/tom-select/dist/js/tom-select.base.js.map +1 -1
  174. package/dist/libs/tom-select/dist/js/tom-select.base.min.js +329 -272
  175. package/dist/libs/tom-select/dist/js/tom-select.base.min.js.map +1 -1
  176. package/dist/libs/tom-select/dist/js/tom-select.complete.js +761 -273
  177. package/dist/libs/tom-select/dist/js/tom-select.complete.js.map +1 -1
  178. package/dist/libs/tom-select/dist/js/tom-select.complete.min.js +268 -209
  179. package/dist/libs/tom-select/dist/js/tom-select.complete.min.js.map +1 -1
  180. package/dist/libs/tom-select/dist/js/tom-select.popular.js +753 -269
  181. package/dist/libs/tom-select/dist/js/tom-select.popular.js.map +1 -1
  182. package/dist/libs/tom-select/dist/js/tom-select.popular.min.js +348 -291
  183. package/dist/libs/tom-select/dist/js/tom-select.popular.min.js.map +1 -1
  184. package/package.json +78 -34
  185. package/src/js/demo-theme.js +25 -0
  186. package/src/js/demo.js +0 -17
  187. package/src/js/src/dropdown.js +5 -2
  188. package/src/js/src/tabler.js +17 -0
  189. package/src/js/tabler.js +3 -1
  190. package/src/scss/_core.scss +2 -0
  191. package/src/scss/_mixins-override.scss +26 -26
  192. package/src/scss/_utilities.scss +2 -4
  193. package/src/scss/_variables.scss +311 -168
  194. package/src/scss/demo/_examples.scss +2 -2
  195. package/src/scss/demo/_highlight.scss +14 -278
  196. package/src/scss/demo.scss +4 -4
  197. package/src/scss/fonts/_webfonts.scss +0 -50
  198. package/src/scss/layout/_core.scss +2 -23
  199. package/src/scss/layout/_dark.scss +27 -38
  200. package/src/scss/layout/_footer.scss +2 -2
  201. package/src/scss/layout/_navbar.scss +23 -19
  202. package/src/scss/layout/_page.scss +9 -7
  203. package/src/scss/layout/_root.scss +48 -0
  204. package/src/scss/mixins/_functions.scss +2 -2
  205. package/src/scss/mixins/_mixins.scss +10 -8
  206. package/src/scss/ui/_accordion.scss +1 -1
  207. package/src/scss/ui/_alerts.scss +3 -3
  208. package/src/scss/ui/_avatars.scss +7 -7
  209. package/src/scss/ui/_badges.scss +3 -3
  210. package/src/scss/ui/_buttons.scss +35 -22
  211. package/src/scss/ui/_calendars.scss +10 -10
  212. package/src/scss/ui/_cards.scss +45 -63
  213. package/src/scss/ui/_carousel.scss +5 -5
  214. package/src/scss/ui/_chips.scss +0 -0
  215. package/src/scss/ui/_dropdowns.scss +2 -1
  216. package/src/scss/ui/_empty.scss +3 -3
  217. package/src/scss/ui/_flags.scss +2 -2
  218. package/src/scss/ui/_forms.scss +8 -8
  219. package/src/scss/ui/_grid.scss +8 -9
  220. package/src/scss/ui/_icons.scss +64 -4
  221. package/src/scss/ui/_legend.scss +8 -4
  222. package/src/scss/ui/_lists.scss +16 -13
  223. package/src/scss/ui/_markdown.scss +2 -3
  224. package/src/scss/ui/_modals.scss +1 -1
  225. package/src/scss/ui/_nav.scss +9 -9
  226. package/src/scss/ui/_offcanvas.scss +2 -6
  227. package/src/scss/ui/_pagination.scss +10 -6
  228. package/src/scss/ui/_placeholder.scss +1 -1
  229. package/src/scss/ui/_progress.scss +45 -6
  230. package/src/scss/ui/_ribbons.scss +17 -12
  231. package/src/scss/ui/_status.scss +3 -3
  232. package/src/scss/ui/_steps.scss +4 -4
  233. package/src/scss/ui/_tables.scss +27 -6
  234. package/src/scss/ui/_toasts.scss +1 -2
  235. package/src/scss/ui/_tracking.scss +29 -0
  236. package/src/scss/ui/_type.scss +43 -40
  237. package/src/scss/ui/forms/_form-check.scss +26 -1
  238. package/src/scss/ui/forms/_form-colorinput.scss +2 -2
  239. package/src/scss/ui/forms/_form-icon.scss +1 -1
  240. package/src/scss/ui/forms/_form-imagecheck.scss +14 -6
  241. package/src/scss/ui/forms/_form-selectgroup.scss +8 -8
  242. package/src/scss/ui/typo/_hr.scss +2 -3
  243. package/src/scss/utils/_colors.scss +17 -6
  244. package/src/scss/vendor/_apexcharts.scss +26 -0
  245. package/src/scss/vendor/_dropzone.scss +1 -1
  246. package/src/scss/vendor/_jsvectormap.scss +7 -7
  247. package/src/scss/vendor/_litepicker.scss +14 -13
  248. package/src/scss/vendor/_plyr.scss +1 -1
  249. package/src/scss/vendor/_tinymce.scss +14 -3
  250. package/src/scss/vendor/_tom-select.scss +2 -0
@@ -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