@startinblox/core 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +182 -0
  3. package/dist/_snowpack/pkg/autolinker.js +4429 -0
  4. package/dist/_snowpack/pkg/autolinker.js.map +1 -0
  5. package/dist/_snowpack/pkg/common/_baseUnary-c1edb653.js +353 -0
  6. package/dist/_snowpack/pkg/common/_baseUnary-c1edb653.js.map +1 -0
  7. package/dist/_snowpack/pkg/common/_commonjsHelpers-37fa8da4.js +26 -0
  8. package/dist/_snowpack/pkg/common/_commonjsHelpers-37fa8da4.js.map +1 -0
  9. package/dist/_snowpack/pkg/common/decode-26fbf385.js +185 -0
  10. package/dist/_snowpack/pkg/common/decode-26fbf385.js.map +1 -0
  11. package/dist/_snowpack/pkg/common/lit-html-3647afce.js +1104 -0
  12. package/dist/_snowpack/pkg/common/lit-html-3647afce.js.map +1 -0
  13. package/dist/_snowpack/pkg/delta-markdown-for-quill.js +26198 -0
  14. package/dist/_snowpack/pkg/delta-markdown-for-quill.js.map +1 -0
  15. package/dist/_snowpack/pkg/dialog-polyfill.js +827 -0
  16. package/dist/_snowpack/pkg/dialog-polyfill.js.map +1 -0
  17. package/dist/_snowpack/pkg/fusejs.js +1593 -0
  18. package/dist/_snowpack/pkg/fusejs.js.map +1 -0
  19. package/dist/_snowpack/pkg/import-map.json +24 -0
  20. package/dist/_snowpack/pkg/jsonld-context-parser.js +836 -0
  21. package/dist/_snowpack/pkg/jsonld-context-parser.js.map +1 -0
  22. package/dist/_snowpack/pkg/leaflet/dist/leaflet.css +640 -0
  23. package/dist/_snowpack/pkg/leaflet/dist/leaflet.css.proxy.js +10 -0
  24. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css +60 -0
  25. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.Default.css.proxy.js +10 -0
  26. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css +14 -0
  27. package/dist/_snowpack/pkg/leaflet.markercluster/dist/MarkerCluster.css.proxy.js +10 -0
  28. package/dist/_snowpack/pkg/lit-html/directives/if-defined.js +39 -0
  29. package/dist/_snowpack/pkg/lit-html/directives/if-defined.js.map +1 -0
  30. package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js +48 -0
  31. package/dist/_snowpack/pkg/lit-html/directives/unsafe-html.js.map +1 -0
  32. package/dist/_snowpack/pkg/lit-html/directives/until.js +87 -0
  33. package/dist/_snowpack/pkg/lit-html/directives/until.js.map +1 -0
  34. package/dist/_snowpack/pkg/lit-html.js +94 -0
  35. package/dist/_snowpack/pkg/lit-html.js.map +1 -0
  36. package/dist/_snowpack/pkg/markdown-it-link-attributes.js +68 -0
  37. package/dist/_snowpack/pkg/markdown-it-link-attributes.js.map +1 -0
  38. package/dist/_snowpack/pkg/markdown-it.js +11307 -0
  39. package/dist/_snowpack/pkg/markdown-it.js.map +1 -0
  40. package/dist/_snowpack/pkg/quill/dist/quill.snow.css +945 -0
  41. package/dist/_snowpack/pkg/quill/dist/quill.snow.css.proxy.js +10 -0
  42. package/dist/_snowpack/pkg/quill-delta-to-markdown.js +971 -0
  43. package/dist/_snowpack/pkg/quill-delta-to-markdown.js.map +1 -0
  44. package/dist/_snowpack/pkg/quill.js +14442 -0
  45. package/dist/_snowpack/pkg/quill.js.map +1 -0
  46. package/dist/_snowpack/pkg/slim-select.js +714 -0
  47. package/dist/_snowpack/pkg/slim-select.js.map +1 -0
  48. package/dist/_snowpack/pkg/tui-calendar/dist/tui-calendar.css +1149 -0
  49. package/dist/_snowpack/pkg/tui-calendar/dist/tui-calendar.css.proxy.js +10 -0
  50. package/dist/_snowpack/pkg/tui-calendar.js +46507 -0
  51. package/dist/_snowpack/pkg/tui-calendar.js.map +1 -0
  52. package/dist/components/solid-ac-checker.js +45 -0
  53. package/dist/components/solid-calendar.js +66 -0
  54. package/dist/components/solid-delete.js +96 -0
  55. package/dist/components/solid-display.js +150 -0
  56. package/dist/components/solid-form-search.js +177 -0
  57. package/dist/components/solid-form.js +259 -0
  58. package/dist/components/solid-lang.js +35 -0
  59. package/dist/components/solid-map.js +204 -0
  60. package/dist/components/solid-table.js +181 -0
  61. package/dist/components/solid-widget.js +72 -0
  62. package/dist/import.css +4 -0
  63. package/dist/index.js +49 -0
  64. package/dist/libs/Component.js +13 -0
  65. package/dist/libs/ComponentFactory.js +168 -0
  66. package/dist/libs/Compositor.js +96 -0
  67. package/dist/libs/Sib.js +44 -0
  68. package/dist/libs/filter.js +184 -0
  69. package/dist/libs/helpers.js +194 -0
  70. package/dist/libs/interfaces.js +6 -0
  71. package/dist/libs/lit-helpers.js +142 -0
  72. package/dist/libs/polyfills.js +37 -0
  73. package/dist/libs/store/server-pagination.js +22 -0
  74. package/dist/libs/store/server-search.js +35 -0
  75. package/dist/libs/store/store.js +814 -0
  76. package/dist/locales/en.json +10 -0
  77. package/dist/locales/en.json.proxy.js +2 -0
  78. package/dist/locales/fr.json +10 -0
  79. package/dist/locales/fr.json.proxy.js +2 -0
  80. package/dist/mixins/attributeBinderMixin.js +116 -0
  81. package/dist/mixins/contextMixin.js +26 -0
  82. package/dist/mixins/counterMixin.js +54 -0
  83. package/dist/mixins/federationMixin.js +51 -0
  84. package/dist/mixins/filterMixin.js +155 -0
  85. package/dist/mixins/grouperMixin.js +73 -0
  86. package/dist/mixins/highlighterMixin.js +36 -0
  87. package/dist/mixins/interfaces.js +6 -0
  88. package/dist/mixins/listMixin.js +105 -0
  89. package/dist/mixins/nextMixin.js +23 -0
  90. package/dist/mixins/paginateMixin.js +97 -0
  91. package/dist/mixins/requiredMixin.js +26 -0
  92. package/dist/mixins/serverPaginationMixin.js +122 -0
  93. package/dist/mixins/sorterMixin.js +131 -0
  94. package/dist/mixins/storeMixin.js +109 -0
  95. package/dist/mixins/translationMixin.js +58 -0
  96. package/dist/mixins/validationMixin.js +95 -0
  97. package/dist/mixins/widgetMixin.js +351 -0
  98. package/dist/new-widgets/attributeMixins/actionMixin.js +13 -0
  99. package/dist/new-widgets/attributeMixins/blankMixin.js +7 -0
  100. package/dist/new-widgets/attributeMixins/booleanMixin.js +7 -0
  101. package/dist/new-widgets/attributeMixins/index.js +19 -0
  102. package/dist/new-widgets/attributeMixins/mailtoMixin.js +7 -0
  103. package/dist/new-widgets/attributeMixins/multipleMixin.js +27 -0
  104. package/dist/new-widgets/attributeMixins/numberMixin.js +7 -0
  105. package/dist/new-widgets/attributeMixins/placeholderMixin.js +16 -0
  106. package/dist/new-widgets/attributeMixins/telMixin.js +7 -0
  107. package/dist/new-widgets/baseWidgetMixin.js +109 -0
  108. package/dist/new-widgets/callbackMixins/autocompletionMixin.js +96 -0
  109. package/dist/new-widgets/callbackMixins/index.js +7 -0
  110. package/dist/new-widgets/callbackMixins/richtextMixin.js +37 -0
  111. package/dist/new-widgets/callbackMixins/slimselect.css +2 -0
  112. package/dist/new-widgets/callbackMixins/slimselect.css.proxy.js +10 -0
  113. package/dist/new-widgets/interfaces.js +1 -0
  114. package/dist/new-widgets/new-widget-factory.js +91 -0
  115. package/dist/new-widgets/templateAdditionMixins/addableMixin.js +26 -0
  116. package/dist/new-widgets/templateAdditionMixins/index.js +13 -0
  117. package/dist/new-widgets/templateAdditionMixins/labelLastMixin.js +16 -0
  118. package/dist/new-widgets/templateAdditionMixins/labelMixin.js +18 -0
  119. package/dist/new-widgets/templates/defaultTemplatesDirectory.js +29 -0
  120. package/dist/new-widgets/templates/displayTemplatesDirectory.js +54 -0
  121. package/dist/new-widgets/templates/formTemplatesDirectory.js +432 -0
  122. package/dist/new-widgets/templates/groupTemplatesDirectory.js +11 -0
  123. package/dist/new-widgets/templates/index.js +6 -0
  124. package/dist/new-widgets/templates/setTemplatesDirectory.js +16 -0
  125. package/dist/new-widgets/templatesDependencies/altMixin.js +12 -0
  126. package/dist/new-widgets/templatesDependencies/editableMixin.js +60 -0
  127. package/dist/new-widgets/templatesDependencies/filterRangeFormMixin.js +34 -0
  128. package/dist/new-widgets/templatesDependencies/formCheckboxMixin.js +10 -0
  129. package/dist/new-widgets/templatesDependencies/formCheckboxesMixin.js +41 -0
  130. package/dist/new-widgets/templatesDependencies/formDropdownMixin.js +56 -0
  131. package/dist/new-widgets/templatesDependencies/formFileMixin.js +82 -0
  132. package/dist/new-widgets/templatesDependencies/formLengthMixin.js +18 -0
  133. package/dist/new-widgets/templatesDependencies/formMinMaxMixin.js +18 -0
  134. package/dist/new-widgets/templatesDependencies/formMixin.js +56 -0
  135. package/dist/new-widgets/templatesDependencies/formNumberMixin.js +10 -0
  136. package/dist/new-widgets/templatesDependencies/formRadioMixin.js +12 -0
  137. package/dist/new-widgets/templatesDependencies/formStepMixin.js +12 -0
  138. package/dist/new-widgets/templatesDependencies/linkTextMixin.js +13 -0
  139. package/dist/new-widgets/templatesDependencies/multipleFormMixin.js +112 -0
  140. package/dist/new-widgets/templatesDependencies/multipleselectFormMixin.js +65 -0
  141. package/dist/new-widgets/templatesDependencies/patternMixin.js +18 -0
  142. package/dist/new-widgets/templatesDependencies/rangeMixin.js +100 -0
  143. package/dist/new-widgets/templatesDependencies/setMixin.js +9 -0
  144. package/dist/new-widgets/templatesDependencies/valueRichtextMixin.js +9 -0
  145. package/dist/new-widgets/valueTransformationMixins/autolinkMixin.js +14 -0
  146. package/dist/new-widgets/valueTransformationMixins/dateMixin.js +29 -0
  147. package/dist/new-widgets/valueTransformationMixins/dateTimeMixin.js +12 -0
  148. package/dist/new-widgets/valueTransformationMixins/index.js +15 -0
  149. package/dist/new-widgets/valueTransformationMixins/markdownMixin.js +30 -0
  150. package/dist/new-widgets/valueTransformationMixins/multilineMixin.js +13 -0
  151. package/dist/new-widgets/valueTransformationMixins/oembedMixin.js +21 -0
  152. package/dist/solid-template-element.js +144 -0
  153. package/dist/style/default-theme.css +24 -0
  154. package/dist/style/default-theme.css.proxy.js +10 -0
  155. package/dist/widgets/baseWidget.js +268 -0
  156. package/dist/widgets/widget-factory.js +22 -0
  157. package/package.json +117 -0
@@ -0,0 +1,714 @@
1
+ var exports = {};
2
+ !function (e, t) {
3
+ "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.SlimSelect = t() : e.SlimSelect = t();
4
+ }(window, function () {
5
+ return n = {}, s.m = i = [function (e, t, i) {
6
+
7
+ function n(e, t) {
8
+ t = t || {
9
+ bubbles: !1,
10
+ cancelable: !1,
11
+ detail: void 0
12
+ };
13
+ var i = document.createEvent("CustomEvent");
14
+ return i.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), i;
15
+ }
16
+ t.__esModule = !0, t.kebabCase = t.highlight = t.isValueInArrayOfObjects = t.debounce = t.putContent = t.ensureElementInView = t.hasClassInTree = void 0, t.hasClassInTree = function (e, t) {
17
+ function n(e, t) {
18
+ return t && e && e.classList && e.classList.contains(t) ? e : null;
19
+ }
20
+ return n(e, t) || function e(t, i) {
21
+ return t && t !== document ? n(t, i) ? t : e(t.parentNode, i) : null;
22
+ }(e, t);
23
+ }, t.ensureElementInView = function (e, t) {
24
+ var i = e.scrollTop + e.offsetTop,
25
+ n = i + e.clientHeight,
26
+ s = t.offsetTop,
27
+ t = s + t.clientHeight;
28
+ s < i ? e.scrollTop -= i - s : n < t && (e.scrollTop += t - n);
29
+ }, t.putContent = function (e, t, i) {
30
+ var n = e.offsetHeight,
31
+ s = e.getBoundingClientRect(),
32
+ e = i ? s.top : s.top - n,
33
+ n = i ? s.bottom : s.bottom + n;
34
+ return e <= 0 ? "below" : n >= window.innerHeight ? "above" : i ? t : "below";
35
+ }, t.debounce = function (s, a, o) {
36
+ var l;
37
+ return void 0 === a && (a = 100), void 0 === o && (o = !1), function () {
38
+ for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
39
+ var i = self,
40
+ n = o && !l;
41
+ clearTimeout(l), l = setTimeout(function () {
42
+ l = null, o || s.apply(i, e);
43
+ }, a), n && s.apply(i, e);
44
+ };
45
+ }, t.isValueInArrayOfObjects = function (e, t, i) {
46
+ if (!Array.isArray(e)) return e[t] === i;
47
+ for (var n = 0, s = e; n < s.length; n++) {
48
+ var a = s[n];
49
+ if (a && a[t] && a[t] === i) return !0;
50
+ }
51
+ return !1;
52
+ }, t.highlight = function (e, t, i) {
53
+ var n = e,
54
+ s = new RegExp("(" + t.trim() + ")(?![^<]*>[^<>]*</)", "i");
55
+ if (!e.match(s)) return e;
56
+ var a = e.match(s).index,
57
+ t = a + e.match(s)[0].toString().length,
58
+ t = e.substring(a, t);
59
+ return n = n.replace(s, '<mark class="'.concat(i, '">').concat(t, "</mark>"));
60
+ }, t.kebabCase = function (e) {
61
+ var t = e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g, function (e) {
62
+ return "-" + e.toLowerCase();
63
+ });
64
+ return e[0] === e[0].toUpperCase() ? t.substring(1) : t;
65
+ }, "function" != typeof (t = window).CustomEvent && (n.prototype = t.Event.prototype, t.CustomEvent = n);
66
+ }, function (e, t, i) {
67
+
68
+ t.__esModule = !0, t.validateOption = t.validateData = t.Data = void 0;
69
+ var n = (s.prototype.newOption = function (e) {
70
+ return {
71
+ id: e.id || String(Math.floor(1e8 * Math.random())),
72
+ value: e.value || "",
73
+ text: e.text || "",
74
+ innerHTML: e.innerHTML || "",
75
+ selected: e.selected || !1,
76
+ display: void 0 === e.display || e.display,
77
+ disabled: e.disabled || !1,
78
+ placeholder: e.placeholder || !1,
79
+ class: e.class || void 0,
80
+ data: e.data || {},
81
+ mandatory: e.mandatory || !1
82
+ };
83
+ }, s.prototype.add = function (e) {
84
+ this.data.push({
85
+ id: String(Math.floor(1e8 * Math.random())),
86
+ value: e.value,
87
+ text: e.text,
88
+ innerHTML: "",
89
+ selected: !1,
90
+ display: !0,
91
+ disabled: !1,
92
+ placeholder: !1,
93
+ class: void 0,
94
+ mandatory: e.mandatory,
95
+ data: {}
96
+ });
97
+ }, s.prototype.parseSelectData = function () {
98
+ this.data = [];
99
+ for (var e = 0, t = this.main.select.element.childNodes; e < t.length; e++) {
100
+ var i = t[e];
101
+ if ("OPTGROUP" === i.nodeName) {
102
+ for (var n = {
103
+ label: i.label,
104
+ options: []
105
+ }, s = 0, a = i.childNodes; s < a.length; s++) {
106
+ var o,
107
+ l = a[s];
108
+ "OPTION" === l.nodeName && (o = this.pullOptionData(l), n.options.push(o), o.placeholder && "" !== o.text.trim() && (this.main.config.placeholderText = o.text));
109
+ }
110
+ this.data.push(n);
111
+ } else "OPTION" === i.nodeName && (o = this.pullOptionData(i), this.data.push(o), o.placeholder && "" !== o.text.trim() && (this.main.config.placeholderText = o.text));
112
+ }
113
+ }, s.prototype.pullOptionData = function (e) {
114
+ return {
115
+ id: !!e.dataset && e.dataset.id || String(Math.floor(1e8 * Math.random())),
116
+ value: e.value,
117
+ text: e.text,
118
+ innerHTML: e.innerHTML,
119
+ selected: e.selected,
120
+ disabled: e.disabled,
121
+ placeholder: "true" === e.dataset.placeholder,
122
+ class: e.className,
123
+ style: e.style.cssText,
124
+ data: e.dataset,
125
+ mandatory: !!e.dataset && "true" === e.dataset.mandatory
126
+ };
127
+ }, s.prototype.setSelectedFromSelect = function () {
128
+ if (this.main.config.isMultiple) {
129
+ for (var e = [], t = 0, i = this.main.select.element.options; t < i.length; t++) {
130
+ var n = i[t];
131
+ !n.selected || (n = this.getObjectFromData(n.value, "value")) && n.id && e.push(n.id);
132
+ }
133
+ this.setSelected(e, "id");
134
+ } else {
135
+ var s = this.main.select.element;
136
+ -1 !== s.selectedIndex && (s = s.options[s.selectedIndex].value, this.setSelected(s, "value"));
137
+ }
138
+ }, s.prototype.setSelected = function (e, t) {
139
+ void 0 === t && (t = "id");
140
+ for (var i = 0, n = this.data; i < n.length; i++) {
141
+ var s = n[i];
142
+ if (s.hasOwnProperty("label")) {
143
+ if (s.hasOwnProperty("options")) {
144
+ var a = s.options;
145
+ if (a) for (var o = 0, l = a; o < l.length; o++) {
146
+ var r = l[o];
147
+ r.placeholder || (r.selected = this.shouldBeSelected(r, e, t));
148
+ }
149
+ }
150
+ } else s.selected = this.shouldBeSelected(s, e, t);
151
+ }
152
+ }, s.prototype.shouldBeSelected = function (e, t, i) {
153
+ if (void 0 === i && (i = "id"), Array.isArray(t)) for (var n = 0, s = t; n < s.length; n++) {
154
+ var a = s[n];
155
+ if (i in e && String(e[i]) === String(a)) return !0;
156
+ } else if (i in e && String(e[i]) === String(t)) return !0;
157
+ return !1;
158
+ }, s.prototype.getSelected = function () {
159
+ for (var e = {
160
+ text: "",
161
+ placeholder: this.main.config.placeholderText
162
+ }, t = [], i = 0, n = this.data; i < n.length; i++) {
163
+ var s = n[i];
164
+ if (s.hasOwnProperty("label")) {
165
+ if (s.hasOwnProperty("options")) {
166
+ var a = s.options;
167
+ if (a) for (var o = 0, l = a; o < l.length; o++) {
168
+ var r = l[o];
169
+ r.selected && (this.main.config.isMultiple ? t.push(r) : e = r);
170
+ }
171
+ }
172
+ } else s.selected && (this.main.config.isMultiple ? t.push(s) : e = s);
173
+ }
174
+ return this.main.config.isMultiple ? t : e;
175
+ }, s.prototype.addToSelected = function (e, t) {
176
+ if (void 0 === t && (t = "id"), this.main.config.isMultiple) {
177
+ var i = [],
178
+ n = this.getSelected();
179
+ if (Array.isArray(n)) for (var s = 0, a = n; s < a.length; s++) {
180
+ var o = a[s];
181
+ i.push(o[t]);
182
+ }
183
+ i.push(e), this.setSelected(i, t);
184
+ }
185
+ }, s.prototype.removeFromSelected = function (e, t) {
186
+ if (void 0 === t && (t = "id"), this.main.config.isMultiple) {
187
+ for (var i = [], n = 0, s = this.getSelected(); n < s.length; n++) {
188
+ var a = s[n];
189
+ String(a[t]) !== String(e) && i.push(a[t]);
190
+ }
191
+ this.setSelected(i, t);
192
+ }
193
+ }, s.prototype.onDataChange = function () {
194
+ this.main.onChange && this.isOnChangeEnabled && this.main.onChange(JSON.parse(JSON.stringify(this.getSelected())));
195
+ }, s.prototype.getObjectFromData = function (e, t) {
196
+ void 0 === t && (t = "id");
197
+ for (var i = 0, n = this.data; i < n.length; i++) {
198
+ var s = n[i];
199
+ if (t in s && String(s[t]) === String(e)) return s;
200
+ if (s.hasOwnProperty("options")) if (s.options) for (var a = 0, o = s.options; a < o.length; a++) {
201
+ var l = o[a];
202
+ if (String(l[t]) === String(e)) return l;
203
+ }
204
+ }
205
+ return null;
206
+ }, s.prototype.search = function (n) {
207
+ var s, e;
208
+ "" !== (this.searchValue = n).trim() ? (s = this.main.config.searchFilter, e = this.data.slice(0), n = n.trim(), e = e.map(function (e) {
209
+ if (e.hasOwnProperty("options")) {
210
+ var t = e,
211
+ i = [];
212
+ if (0 !== (i = t.options ? t.options.filter(function (e) {
213
+ return s(e, n);
214
+ }) : i).length) {
215
+ t = Object.assign({}, t);
216
+ return t.options = i, t;
217
+ }
218
+ }
219
+ if (e.hasOwnProperty("text") && s(e, n)) return e;
220
+ return null;
221
+ }), this.filtered = e.filter(function (e) {
222
+ return e;
223
+ })) : this.filtered = null;
224
+ }, s);
225
+ function s(e) {
226
+ this.contentOpen = !1, this.contentPosition = "below", this.isOnChangeEnabled = !0, this.main = e.main, this.searchValue = "", this.data = [], this.filtered = null, this.parseSelectData(), this.setSelectedFromSelect();
227
+ }
228
+ function r(e) {
229
+ return void 0 !== e.text || (console.error("Data object option must have at least have a text value. Check object: " + JSON.stringify(e)), !1);
230
+ }
231
+ t.Data = n, t.validateData = function (e) {
232
+ if (!e) return console.error("Data must be an array of objects"), !1;
233
+ for (var t = 0, i = 0, n = e; i < n.length; i++) {
234
+ var s = n[i];
235
+ if (s.hasOwnProperty("label")) {
236
+ if (s.hasOwnProperty("options")) {
237
+ var a = s.options;
238
+ if (a) for (var o = 0, l = a; o < l.length; o++) r(l[o]) || t++;
239
+ }
240
+ } else r(s) || t++;
241
+ }
242
+ return 0 === t;
243
+ }, t.validateOption = r;
244
+ }, function (e, t, i) {
245
+
246
+ t.__esModule = !0;
247
+ var n = i(3),
248
+ s = i(4),
249
+ a = i(5),
250
+ r = i(1),
251
+ o = i(0),
252
+ i = (l.prototype.validate = function (e) {
253
+ e = "string" == typeof e.select ? document.querySelector(e.select) : e.select;
254
+ if (!e) throw new Error("Could not find select element");
255
+ if ("SELECT" !== e.tagName) throw new Error("Element isnt of type select");
256
+ return e;
257
+ }, l.prototype.selected = function () {
258
+ if (this.config.isMultiple) {
259
+ for (var e = [], t = 0, i = s = this.data.getSelected(); t < i.length; t++) {
260
+ var n = i[t];
261
+ e.push(n.value);
262
+ }
263
+ return e;
264
+ }
265
+ var s;
266
+ return (s = this.data.getSelected()) ? s.value : "";
267
+ }, l.prototype.set = function (e, t, i, n) {
268
+ void 0 === t && (t = "value"), void 0 === i && (i = !0), this.config.isMultiple && !Array.isArray(e) ? this.data.addToSelected(e, t) : this.data.setSelected(e, t), this.select.setValue(), this.data.onDataChange(), this.render(), (i = this.config.hideSelectedOption && this.config.isMultiple && this.data.getSelected().length === this.data.data.length ? !0 : i) && this.close();
269
+ }, l.prototype.setSelected = function (e, t, i, n) {
270
+ this.set(e, t = void 0 === t ? "value" : t, i = void 0 === i ? !0 : i, n = void 0 === n ? !0 : n);
271
+ }, l.prototype.setData = function (e) {
272
+ if ((0, r.validateData)(e)) {
273
+ for (var t = JSON.parse(JSON.stringify(e)), i = this.data.getSelected(), n = 0; n < t.length; n++) t[n].value || t[n].placeholder || (t[n].value = t[n].text);
274
+ if (this.config.isAjax && i) if (this.config.isMultiple) for (var s = 0, a = i.reverse(); s < a.length; s++) {
275
+ var o = a[s];
276
+ t.unshift(o);
277
+ } else {
278
+ t.unshift(i);
279
+ for (n = 0; n < t.length; n++) t[n].placeholder || t[n].value !== i.value || t[n].text !== i.text || t.splice(n, 1);
280
+ for (var l = !1, n = 0; n < t.length; n++) t[n].placeholder && (l = !0);
281
+ l || t.unshift({
282
+ text: "",
283
+ placeholder: !0
284
+ });
285
+ }
286
+ this.select.create(t), this.data.parseSelectData(), this.data.setSelectedFromSelect();
287
+ } else console.error("Validation problem on: #" + this.select.element.id);
288
+ }, l.prototype.addData = function (e) {
289
+ (0, r.validateData)([e]) ? (this.data.add(this.data.newOption(e)), this.select.create(this.data.data), this.data.parseSelectData(), this.data.setSelectedFromSelect(), this.render()) : console.error("Validation problem on: #" + this.select.element.id);
290
+ }, l.prototype.open = function () {
291
+ var e,
292
+ t = this;
293
+ this.config.isEnabled && (this.data.contentOpen || this.config.hideSelectedOption && this.config.isMultiple && this.data.getSelected().length === this.data.data.length || (this.beforeOpen && this.beforeOpen(), this.config.isMultiple && this.slim.multiSelected ? this.slim.multiSelected.plus.classList.add("ss-cross") : this.slim.singleSelected && (this.slim.singleSelected.arrowIcon.arrow.classList.remove("arrow-down"), this.slim.singleSelected.arrowIcon.arrow.classList.add("arrow-up")), this.slim[this.config.isMultiple ? "multiSelected" : "singleSelected"].container.classList.add("above" === this.data.contentPosition ? this.config.openAbove : this.config.openBelow), this.config.addToBody && (e = this.slim.container.getBoundingClientRect(), this.slim.content.style.top = e.top + e.height + window.scrollY + "px", this.slim.content.style.left = e.left + window.scrollX + "px", this.slim.content.style.width = e.width + "px"), this.slim.content.classList.add(this.config.open), "up" === this.config.showContent.toLowerCase() || "down" !== this.config.showContent.toLowerCase() && "above" === (0, o.putContent)(this.slim.content, this.data.contentPosition, this.data.contentOpen) ? this.moveContentAbove() : this.moveContentBelow(), this.config.isMultiple || (e = this.data.getSelected()) && (e = e.id, (e = this.slim.list.querySelector('[data-id="' + e + '"]')) && (0, o.ensureElementInView)(this.slim.list, e)), setTimeout(function () {
294
+ t.data.contentOpen = !0, t.config.searchFocus && t.slim.search.input.focus(), t.afterOpen && t.afterOpen();
295
+ }, this.config.timeoutDelay)));
296
+ }, l.prototype.close = function () {
297
+ var e = this;
298
+ this.data.contentOpen && (this.beforeClose && this.beforeClose(), this.config.isMultiple && this.slim.multiSelected ? (this.slim.multiSelected.container.classList.remove(this.config.openAbove), this.slim.multiSelected.container.classList.remove(this.config.openBelow), this.slim.multiSelected.plus.classList.remove("ss-cross")) : this.slim.singleSelected && (this.slim.singleSelected.container.classList.remove(this.config.openAbove), this.slim.singleSelected.container.classList.remove(this.config.openBelow), this.slim.singleSelected.arrowIcon.arrow.classList.add("arrow-down"), this.slim.singleSelected.arrowIcon.arrow.classList.remove("arrow-up")), this.slim.content.classList.remove(this.config.open), this.data.contentOpen = !1, this.search(""), setTimeout(function () {
299
+ e.slim.content.removeAttribute("style"), e.data.contentPosition = "below", e.config.isMultiple && e.slim.multiSelected ? (e.slim.multiSelected.container.classList.remove(e.config.openAbove), e.slim.multiSelected.container.classList.remove(e.config.openBelow)) : e.slim.singleSelected && (e.slim.singleSelected.container.classList.remove(e.config.openAbove), e.slim.singleSelected.container.classList.remove(e.config.openBelow)), e.slim.search.input.blur(), e.afterClose && e.afterClose();
300
+ }, this.config.timeoutDelay));
301
+ }, l.prototype.moveContentAbove = function () {
302
+ var e = 0;
303
+ this.config.isMultiple && this.slim.multiSelected ? e = this.slim.multiSelected.container.offsetHeight : this.slim.singleSelected && (e = this.slim.singleSelected.container.offsetHeight);
304
+ var t = e + this.slim.content.offsetHeight - 1;
305
+ this.slim.content.style.margin = "-" + t + "px 0 0 0", this.slim.content.style.height = t - e + 1 + "px", this.slim.content.style.transformOrigin = "center bottom", this.data.contentPosition = "above", this.config.isMultiple && this.slim.multiSelected ? (this.slim.multiSelected.container.classList.remove(this.config.openBelow), this.slim.multiSelected.container.classList.add(this.config.openAbove)) : this.slim.singleSelected && (this.slim.singleSelected.container.classList.remove(this.config.openBelow), this.slim.singleSelected.container.classList.add(this.config.openAbove));
306
+ }, l.prototype.moveContentBelow = function () {
307
+ this.data.contentPosition = "below", this.config.isMultiple && this.slim.multiSelected ? (this.slim.multiSelected.container.classList.remove(this.config.openAbove), this.slim.multiSelected.container.classList.add(this.config.openBelow)) : this.slim.singleSelected && (this.slim.singleSelected.container.classList.remove(this.config.openAbove), this.slim.singleSelected.container.classList.add(this.config.openBelow));
308
+ }, l.prototype.enable = function () {
309
+ this.config.isEnabled = !0, this.config.isMultiple && this.slim.multiSelected ? this.slim.multiSelected.container.classList.remove(this.config.disabled) : this.slim.singleSelected && this.slim.singleSelected.container.classList.remove(this.config.disabled), this.select.triggerMutationObserver = !1, this.select.element.disabled = !1, this.slim.search.input.disabled = !1, this.select.triggerMutationObserver = !0;
310
+ }, l.prototype.disable = function () {
311
+ this.config.isEnabled = !1, this.config.isMultiple && this.slim.multiSelected ? this.slim.multiSelected.container.classList.add(this.config.disabled) : this.slim.singleSelected && this.slim.singleSelected.container.classList.add(this.config.disabled), this.select.triggerMutationObserver = !1, this.select.element.disabled = !0, this.slim.search.input.disabled = !0, this.select.triggerMutationObserver = !0;
312
+ }, l.prototype.search = function (t) {
313
+ var i;
314
+ this.data.searchValue !== t && (this.slim.search.input.value = t, this.config.isAjax ? ((i = this).config.isSearching = !0, this.render(), this.ajax && this.ajax(t, function (e) {
315
+ i.config.isSearching = !1, Array.isArray(e) ? (e.unshift({
316
+ text: "",
317
+ placeholder: !0
318
+ }), i.setData(e), i.data.search(t), i.render()) : "string" == typeof e ? i.slim.options(e) : i.render();
319
+ })) : (this.data.search(t), this.render()));
320
+ }, l.prototype.setSearchText = function (e) {
321
+ this.config.searchText = e;
322
+ }, l.prototype.render = function () {
323
+ this.config.isMultiple ? this.slim.values() : (this.slim.placeholder(), this.slim.deselect()), this.slim.options();
324
+ }, l.prototype.destroy = function (e) {
325
+ var t = (e = void 0 === e ? null : e) ? document.querySelector("." + e + ".ss-main") : this.slim.container,
326
+ i = e ? document.querySelector("[data-ssid=".concat(e, "]")) : this.select.element;
327
+ t && i && (document.removeEventListener("click", this.documentClick), "auto" === this.config.showContent && window.removeEventListener("scroll", this.windowScroll, !1), i.style.display = "", delete i.dataset.ssid, i.slim = null, t.parentElement && t.parentElement.removeChild(t), !this.config.addToBody || (e = e ? document.querySelector("." + e + ".ss-content") : this.slim.content) && document.body.removeChild(e));
328
+ }, l);
329
+ function l(e) {
330
+ var t = this;
331
+ this.ajax = null, this.addable = null, this.beforeOnChange = null, this.onChange = null, this.beforeOpen = null, this.afterOpen = null, this.beforeClose = null, this.afterClose = null, this.windowScroll = (0, o.debounce)(function (e) {
332
+ t.data.contentOpen && ("above" === (0, o.putContent)(t.slim.content, t.data.contentPosition, t.data.contentOpen) ? t.moveContentAbove() : t.moveContentBelow());
333
+ }), this.documentClick = function (e) {
334
+ e.target && !(0, o.hasClassInTree)(e.target, t.config.id) && t.close();
335
+ };
336
+ var i = this.validate(e);
337
+ i.dataset.ssid && this.destroy(i.dataset.ssid), e.ajax && (this.ajax = e.ajax), e.addable && (this.addable = e.addable), this.config = new n.Config({
338
+ select: i,
339
+ isAjax: !!e.ajax,
340
+ showSearch: e.showSearch,
341
+ searchPlaceholder: e.searchPlaceholder,
342
+ searchText: e.searchText,
343
+ searchingText: e.searchingText,
344
+ searchFocus: e.searchFocus,
345
+ searchHighlight: e.searchHighlight,
346
+ searchFilter: e.searchFilter,
347
+ closeOnSelect: e.closeOnSelect,
348
+ showContent: e.showContent,
349
+ placeholderText: e.placeholder,
350
+ allowDeselect: e.allowDeselect,
351
+ allowDeselectOption: e.allowDeselectOption,
352
+ hideSelectedOption: e.hideSelectedOption,
353
+ deselectLabel: e.deselectLabel,
354
+ isEnabled: e.isEnabled,
355
+ valuesUseText: e.valuesUseText,
356
+ showOptionTooltips: e.showOptionTooltips,
357
+ selectByGroup: e.selectByGroup,
358
+ limit: e.limit,
359
+ timeoutDelay: e.timeoutDelay,
360
+ addToBody: e.addToBody
361
+ }), this.select = new s.Select({
362
+ select: i,
363
+ main: this
364
+ }), this.data = new r.Data({
365
+ main: this
366
+ }), this.slim = new a.Slim({
367
+ main: this
368
+ }), this.select.element.parentNode && this.select.element.parentNode.insertBefore(this.slim.container, this.select.element.nextSibling), e.data ? this.setData(e.data) : this.render(), document.addEventListener("click", this.documentClick), "auto" === this.config.showContent && window.addEventListener("scroll", this.windowScroll, !1), e.beforeOnChange && (this.beforeOnChange = e.beforeOnChange), e.onChange && (this.onChange = e.onChange), e.beforeOpen && (this.beforeOpen = e.beforeOpen), e.afterOpen && (this.afterOpen = e.afterOpen), e.beforeClose && (this.beforeClose = e.beforeClose), e.afterClose && (this.afterClose = e.afterClose), this.config.isEnabled || this.disable();
369
+ }
370
+ t.default = i;
371
+ }, function (e, t, i) {
372
+
373
+ t.__esModule = !0, t.Config = void 0;
374
+ var n = (s.prototype.searchFilter = function (e, t) {
375
+ return -1 !== e.text.toLowerCase().indexOf(t.toLowerCase());
376
+ }, s);
377
+ function s(e) {
378
+ this.id = "", this.isMultiple = !1, this.isAjax = !1, this.isSearching = !1, this.showSearch = !0, this.searchFocus = !0, this.searchHighlight = !1, this.closeOnSelect = !0, this.showContent = "auto", this.searchPlaceholder = "Search", this.searchText = "No Results", this.searchingText = "Searching...", this.placeholderText = "Select Value", this.allowDeselect = !1, this.allowDeselectOption = !1, this.hideSelectedOption = !1, this.deselectLabel = "x", this.isEnabled = !0, this.valuesUseText = !1, this.showOptionTooltips = !1, this.selectByGroup = !1, this.limit = 0, this.timeoutDelay = 200, this.addToBody = !1, this.main = "ss-main", this.singleSelected = "ss-single-selected", this.arrow = "ss-arrow", this.multiSelected = "ss-multi-selected", this.add = "ss-add", this.plus = "ss-plus", this.values = "ss-values", this.value = "ss-value", this.valueText = "ss-value-text", this.valueDelete = "ss-value-delete", this.content = "ss-content", this.open = "ss-open", this.openAbove = "ss-open-above", this.openBelow = "ss-open-below", this.search = "ss-search", this.searchHighlighter = "ss-search-highlight", this.addable = "ss-addable", this.list = "ss-list", this.optgroup = "ss-optgroup", this.optgroupLabel = "ss-optgroup-label", this.optgroupLabelSelectable = "ss-optgroup-label-selectable", this.option = "ss-option", this.optionSelected = "ss-option-selected", this.highlighted = "ss-highlighted", this.disabled = "ss-disabled", this.hide = "ss-hide", this.id = "ss-" + Math.floor(1e5 * Math.random()), this.style = e.select.style.cssText, this.class = e.select.className.split(" "), this.isMultiple = e.select.multiple, this.isAjax = e.isAjax, this.showSearch = !1 !== e.showSearch, this.searchFocus = !1 !== e.searchFocus, this.searchHighlight = !0 === e.searchHighlight, this.closeOnSelect = !1 !== e.closeOnSelect, e.showContent && (this.showContent = e.showContent), this.isEnabled = !1 !== e.isEnabled, e.searchPlaceholder && (this.searchPlaceholder = e.searchPlaceholder), e.searchText && (this.searchText = e.searchText), e.searchingText && (this.searchingText = e.searchingText), e.placeholderText && (this.placeholderText = e.placeholderText), this.allowDeselect = !0 === e.allowDeselect, this.allowDeselectOption = !0 === e.allowDeselectOption, this.hideSelectedOption = !0 === e.hideSelectedOption, e.deselectLabel && (this.deselectLabel = e.deselectLabel), e.valuesUseText && (this.valuesUseText = e.valuesUseText), e.showOptionTooltips && (this.showOptionTooltips = e.showOptionTooltips), e.selectByGroup && (this.selectByGroup = e.selectByGroup), e.limit && (this.limit = e.limit), e.searchFilter && (this.searchFilter = e.searchFilter), null != e.timeoutDelay && (this.timeoutDelay = e.timeoutDelay), this.addToBody = !0 === e.addToBody;
379
+ }
380
+ t.Config = n;
381
+ }, function (e, t, i) {
382
+
383
+ t.__esModule = !0, t.Select = void 0;
384
+ var n = i(0),
385
+ i = (s.prototype.setValue = function () {
386
+ if (this.main.data.getSelected()) {
387
+ if (this.main.config.isMultiple) for (var e = this.main.data.getSelected(), t = 0, i = this.element.options; t < i.length; t++) {
388
+ var n = i[t];
389
+ n.selected = !1;
390
+ for (var s = 0, a = e; s < a.length; s++) a[s].value === n.value && (n.selected = !0);
391
+ } else {
392
+ e = this.main.data.getSelected();
393
+ this.element.value = e ? e.value : "";
394
+ }
395
+ this.main.data.isOnChangeEnabled = !1, this.element.dispatchEvent(new CustomEvent("change", {
396
+ bubbles: !0
397
+ })), this.main.data.isOnChangeEnabled = !0;
398
+ }
399
+ }, s.prototype.addAttributes = function () {
400
+ this.element.tabIndex = -1, this.element.style.display = "none", this.element.dataset.ssid = this.main.config.id, this.element.setAttribute("aria-hidden", "true");
401
+ }, s.prototype.addEventListeners = function () {
402
+ var t = this;
403
+ this.element.addEventListener("change", function (e) {
404
+ t.main.data.setSelectedFromSelect(), t.main.render();
405
+ });
406
+ }, s.prototype.addMutationObserver = function () {
407
+ var t = this;
408
+ this.main.config.isAjax || (this.mutationObserver = new MutationObserver(function (e) {
409
+ t.triggerMutationObserver && (t.main.data.parseSelectData(), t.main.data.setSelectedFromSelect(), t.main.render(), e.forEach(function (e) {
410
+ "class" === e.attributeName && t.main.slim.updateContainerDivClass(t.main.slim.container);
411
+ }));
412
+ }), this.observeMutationObserver());
413
+ }, s.prototype.observeMutationObserver = function () {
414
+ this.mutationObserver && this.mutationObserver.observe(this.element, {
415
+ attributes: !0,
416
+ childList: !0,
417
+ characterData: !0
418
+ });
419
+ }, s.prototype.disconnectMutationObserver = function () {
420
+ this.mutationObserver && this.mutationObserver.disconnect();
421
+ }, s.prototype.create = function (e) {
422
+ this.element.innerHTML = "";
423
+ for (var t = 0, i = e; t < i.length; t++) {
424
+ var n = i[t];
425
+ if (n.hasOwnProperty("options")) {
426
+ var s = n,
427
+ a = document.createElement("optgroup");
428
+ if (a.label = s.label, s.options) for (var o = 0, l = s.options; o < l.length; o++) {
429
+ var r = l[o];
430
+ a.appendChild(this.createOption(r));
431
+ }
432
+ this.element.appendChild(a);
433
+ } else this.element.appendChild(this.createOption(n));
434
+ }
435
+ }, s.prototype.createOption = function (t) {
436
+ var i = document.createElement("option");
437
+ return i.value = "" !== t.value ? t.value : t.text, i.innerHTML = t.innerHTML || t.text, t.selected && (i.selected = t.selected), !1 === t.display && (i.style.display = "none"), t.disabled && (i.disabled = !0), t.placeholder && i.setAttribute("data-placeholder", "true"), t.mandatory && i.setAttribute("data-mandatory", "true"), t.class && t.class.split(" ").forEach(function (e) {
438
+ i.classList.add(e);
439
+ }), t.data && "object" == typeof t.data && Object.keys(t.data).forEach(function (e) {
440
+ i.setAttribute("data-" + (0, n.kebabCase)(e), t.data[e]);
441
+ }), i;
442
+ }, s);
443
+ function s(e) {
444
+ this.triggerMutationObserver = !0, this.element = e.select, this.main = e.main, this.element.disabled && (this.main.config.isEnabled = !1), this.addAttributes(), this.addEventListeners(), this.mutationObserver = null, this.addMutationObserver(), this.element.slim = e.main;
445
+ }
446
+ t.Select = i;
447
+ }, function (e, t, i) {
448
+
449
+ t.__esModule = !0, t.Slim = void 0;
450
+ var n = i(0),
451
+ o = i(1),
452
+ i = (s.prototype.containerDiv = function () {
453
+ var e = document.createElement("div");
454
+ return e.style.cssText = this.main.config.style, this.updateContainerDivClass(e), e;
455
+ }, s.prototype.updateContainerDivClass = function (e) {
456
+ this.main.config.class = this.main.select.element.className.split(" "), e.className = "", e.classList.add(this.main.config.id), e.classList.add(this.main.config.main);
457
+ for (var t = 0, i = this.main.config.class; t < i.length; t++) {
458
+ var n = i[t];
459
+ "" !== n.trim() && e.classList.add(n);
460
+ }
461
+ }, s.prototype.singleSelectedDiv = function () {
462
+ var t = this,
463
+ e = document.createElement("div");
464
+ e.classList.add(this.main.config.singleSelected);
465
+ var i = document.createElement("span");
466
+ i.classList.add("placeholder"), e.appendChild(i);
467
+ var n = document.createElement("span");
468
+ n.innerHTML = this.main.config.deselectLabel, n.classList.add("ss-deselect"), n.onclick = function (e) {
469
+ e.stopPropagation(), t.main.config.isEnabled && t.main.set("");
470
+ }, e.appendChild(n);
471
+ var s = document.createElement("span");
472
+ s.classList.add(this.main.config.arrow);
473
+ var a = document.createElement("span");
474
+ return a.classList.add("arrow-down"), s.appendChild(a), e.appendChild(s), e.onclick = function () {
475
+ t.main.config.isEnabled && (t.main.data.contentOpen ? t.main.close() : t.main.open());
476
+ }, {
477
+ container: e,
478
+ placeholder: i,
479
+ deselect: n,
480
+ arrowIcon: {
481
+ container: s,
482
+ arrow: a
483
+ }
484
+ };
485
+ }, s.prototype.placeholder = function () {
486
+ var e,
487
+ t = this.main.data.getSelected();
488
+ null === t || t && t.placeholder ? ((e = document.createElement("span")).classList.add(this.main.config.disabled), e.innerHTML = this.main.config.placeholderText, this.singleSelected && (this.singleSelected.placeholder.innerHTML = e.outerHTML)) : (e = "", t && (e = t.innerHTML && !0 !== this.main.config.valuesUseText ? t.innerHTML : t.text), this.singleSelected && (this.singleSelected.placeholder.innerHTML = t ? e : ""));
489
+ }, s.prototype.deselect = function () {
490
+ this.singleSelected && (!this.main.config.allowDeselect || "" === this.main.selected() ? this.singleSelected.deselect.classList.add("ss-hide") : this.singleSelected.deselect.classList.remove("ss-hide"));
491
+ }, s.prototype.multiSelectedDiv = function () {
492
+ var t = this,
493
+ e = document.createElement("div");
494
+ e.classList.add(this.main.config.multiSelected);
495
+ var i = document.createElement("div");
496
+ i.classList.add(this.main.config.values), e.appendChild(i);
497
+ var n = document.createElement("div");
498
+ n.classList.add(this.main.config.add);
499
+ var s = document.createElement("span");
500
+ return s.classList.add(this.main.config.plus), s.onclick = function (e) {
501
+ t.main.data.contentOpen && (t.main.close(), e.stopPropagation());
502
+ }, n.appendChild(s), e.appendChild(n), e.onclick = function (e) {
503
+ t.main.config.isEnabled && (e.target.classList.contains(t.main.config.valueDelete) || (t.main.data.contentOpen ? t.main.close() : t.main.open()));
504
+ }, {
505
+ container: e,
506
+ values: i,
507
+ add: n,
508
+ plus: s
509
+ };
510
+ }, s.prototype.values = function () {
511
+ if (this.multiSelected) {
512
+ for (var e = this.multiSelected.values.childNodes, t = this.main.data.getSelected(), i = [], n = 0, s = e; n < s.length; n++) {
513
+ for (var a = s[n], o = !0, l = 0, r = t; l < r.length; l++) {
514
+ var c = r[l];
515
+ String(c.id) === String(a.dataset.id) && (o = !1);
516
+ }
517
+ o && i.push(a);
518
+ }
519
+ for (var d = 0, h = i; d < h.length; d++) {
520
+ var u = h[d];
521
+ u.classList.add("ss-out"), this.multiSelected.values.removeChild(u);
522
+ }
523
+ for (var p, e = this.multiSelected.values.childNodes, c = 0; c < t.length; c++) {
524
+ o = !1;
525
+ for (var m = 0, f = e; m < f.length; m++) {
526
+ a = f[m];
527
+ String(t[c].id) === String(a.dataset.id) && (o = !0);
528
+ }
529
+ o || (0 !== e.length && HTMLElement.prototype.insertAdjacentElement ? 0 === c ? this.multiSelected.values.insertBefore(this.valueDiv(t[c]), e[c]) : e[c - 1].insertAdjacentElement("afterend", this.valueDiv(t[c])) : this.multiSelected.values.appendChild(this.valueDiv(t[c])));
530
+ }
531
+ 0 === t.length && ((p = document.createElement("span")).classList.add(this.main.config.disabled), p.innerHTML = this.main.config.placeholderText, this.multiSelected.values.innerHTML = p.outerHTML);
532
+ }
533
+ }, s.prototype.valueDiv = function (s) {
534
+ var a = this,
535
+ e = document.createElement("div");
536
+ e.classList.add(this.main.config.value), e.dataset.id = s.id;
537
+ var t = document.createElement("span");
538
+ return t.classList.add(this.main.config.valueText), t.innerHTML = s.innerHTML && !0 !== this.main.config.valuesUseText ? s.innerHTML : s.text, e.appendChild(t), s.mandatory || ((t = document.createElement("span")).classList.add(this.main.config.valueDelete), t.innerHTML = this.main.config.deselectLabel, t.onclick = function (e) {
539
+ e.preventDefault(), e.stopPropagation();
540
+ var t = !1;
541
+ if (a.main.beforeOnChange || (t = !0), a.main.beforeOnChange) {
542
+ for (var e = a.main.data.getSelected(), i = JSON.parse(JSON.stringify(e)), n = 0; n < i.length; n++) i[n].id === s.id && i.splice(n, 1);
543
+ !1 !== a.main.beforeOnChange(i) && (t = !0);
544
+ }
545
+ t && (a.main.data.removeFromSelected(s.id, "id"), a.main.render(), a.main.select.setValue(), a.main.data.onDataChange());
546
+ }, e.appendChild(t)), e;
547
+ }, s.prototype.contentDiv = function () {
548
+ var e = document.createElement("div");
549
+ return e.classList.add(this.main.config.content), e;
550
+ }, s.prototype.searchDiv = function () {
551
+ var n = this,
552
+ e = document.createElement("div"),
553
+ s = document.createElement("input"),
554
+ a = document.createElement("div");
555
+ e.classList.add(this.main.config.search);
556
+ var t = {
557
+ container: e,
558
+ input: s
559
+ };
560
+ return this.main.config.showSearch || (e.classList.add(this.main.config.hide), s.readOnly = !0), s.type = "search", s.placeholder = this.main.config.searchPlaceholder, s.tabIndex = 0, s.setAttribute("aria-label", this.main.config.searchPlaceholder), s.setAttribute("autocapitalize", "off"), s.setAttribute("autocomplete", "off"), s.setAttribute("autocorrect", "off"), s.onclick = function (e) {
561
+ setTimeout(function () {
562
+ "" === e.target.value && n.main.search("");
563
+ }, 10);
564
+ }, s.onkeydown = function (e) {
565
+ "ArrowUp" === e.key ? (n.main.open(), n.highlightUp(), e.preventDefault()) : "ArrowDown" === e.key ? (n.main.open(), n.highlightDown(), e.preventDefault()) : "Tab" === e.key ? n.main.data.contentOpen ? n.main.close() : setTimeout(function () {
566
+ n.main.close();
567
+ }, n.main.config.timeoutDelay) : "Enter" === e.key && e.preventDefault();
568
+ }, s.onkeyup = function (e) {
569
+ var t = e.target;
570
+ if ("Enter" === e.key) {
571
+ if (n.main.addable && e.ctrlKey) return a.click(), e.preventDefault(), void e.stopPropagation();
572
+ var i = n.list.querySelector("." + n.main.config.highlighted);
573
+ i && i.click();
574
+ } else "ArrowUp" === e.key || "ArrowDown" === e.key || ("Escape" === e.key ? n.main.close() : n.main.config.showSearch && n.main.data.contentOpen ? n.main.search(t.value) : s.value = "");
575
+ e.preventDefault(), e.stopPropagation();
576
+ }, s.onfocus = function () {
577
+ n.main.open();
578
+ }, e.appendChild(s), this.main.addable && (a.classList.add(this.main.config.addable), a.innerHTML = "+", a.onclick = function (e) {
579
+ var t;
580
+ n.main.addable && (e.preventDefault(), e.stopPropagation(), "" !== (e = n.search.input.value).trim() ? (e = n.main.addable(e), t = "", e && ("object" == typeof e ? (0, o.validateOption)(e) && (n.main.addData(e), t = e.value || e.text) : (n.main.addData(n.main.data.newOption({
581
+ text: e,
582
+ value: e
583
+ })), t = e), n.main.search(""), setTimeout(function () {
584
+ n.main.set(t, "value", !1, !1);
585
+ }, 100), n.main.config.closeOnSelect && setTimeout(function () {
586
+ n.main.close();
587
+ }, 100))) : n.search.input.focus());
588
+ }, e.appendChild(a), t.addable = a), t;
589
+ }, s.prototype.highlightUp = function () {
590
+ var e = this.list.querySelector("." + this.main.config.highlighted),
591
+ t = null;
592
+ if (e) for (t = e.previousSibling; null !== t && t.classList.contains(this.main.config.disabled);) t = t.previousSibling;else var i = this.list.querySelectorAll("." + this.main.config.option + ":not(." + this.main.config.disabled + ")"),
593
+ t = i[i.length - 1];
594
+ null !== (t = t && t.classList.contains(this.main.config.optgroupLabel) ? null : t) || (i = e.parentNode).classList.contains(this.main.config.optgroup) && (!i.previousSibling || (i = i.previousSibling.querySelectorAll("." + this.main.config.option + ":not(." + this.main.config.disabled + ")")).length && (t = i[i.length - 1])), t && (e && e.classList.remove(this.main.config.highlighted), t.classList.add(this.main.config.highlighted), (0, n.ensureElementInView)(this.list, t));
595
+ }, s.prototype.highlightDown = function () {
596
+ var e,
597
+ t = this.list.querySelector("." + this.main.config.highlighted),
598
+ i = null;
599
+ if (t) for (i = t.nextSibling; null !== i && i.classList.contains(this.main.config.disabled);) i = i.nextSibling;else i = this.list.querySelector("." + this.main.config.option + ":not(." + this.main.config.disabled + ")");
600
+ null !== i || null === t || (e = t.parentNode).classList.contains(this.main.config.optgroup) && e.nextSibling && (i = e.nextSibling.querySelector("." + this.main.config.option + ":not(." + this.main.config.disabled + ")")), i && (t && t.classList.remove(this.main.config.highlighted), i.classList.add(this.main.config.highlighted), (0, n.ensureElementInView)(this.list, i));
601
+ }, s.prototype.listDiv = function () {
602
+ var e = document.createElement("div");
603
+ return e.classList.add(this.main.config.list), e.setAttribute("role", "listbox"), e;
604
+ }, s.prototype.options = function (e) {
605
+ void 0 === e && (e = "");
606
+ var t = this.main.data.filtered || this.main.data.data;
607
+ if ((this.list.innerHTML = "") !== e) return (i = document.createElement("div")).classList.add(this.main.config.option), i.classList.add(this.main.config.disabled), i.innerHTML = e, void this.list.appendChild(i);
608
+ if (this.main.config.isAjax && this.main.config.isSearching) return (i = document.createElement("div")).classList.add(this.main.config.option), i.classList.add(this.main.config.disabled), i.innerHTML = this.main.config.searchingText, void this.list.appendChild(i);
609
+ if (0 === t.length) {
610
+ var i = document.createElement("div");
611
+ return i.classList.add(this.main.config.option), i.classList.add(this.main.config.disabled), i.innerHTML = this.main.config.searchText, void this.list.appendChild(i);
612
+ }
613
+ for (var r = this, n = 0, s = t; n < s.length; n++) !function (e) {
614
+ if (e.hasOwnProperty("label")) {
615
+ var t = e,
616
+ s = document.createElement("div");
617
+ s.classList.add(r.main.config.optgroup);
618
+ var i = document.createElement("div");
619
+ i.classList.add(r.main.config.optgroupLabel), r.main.config.selectByGroup && r.main.config.isMultiple && i.classList.add(r.main.config.optgroupLabelSelectable), i.innerHTML = t.label, s.appendChild(i);
620
+ t = t.options;
621
+ if (t) {
622
+ for (var a, n = 0, o = t; n < o.length; n++) {
623
+ var l = o[n];
624
+ s.appendChild(r.option(l));
625
+ }
626
+ r.main.config.selectByGroup && r.main.config.isMultiple && (a = r, i.addEventListener("click", function (e) {
627
+ e.preventDefault(), e.stopPropagation();
628
+ for (var t = 0, i = s.children; t < i.length; t++) {
629
+ var n = i[t];
630
+ -1 !== n.className.indexOf(a.main.config.option) && n.click();
631
+ }
632
+ }));
633
+ }
634
+ r.list.appendChild(s);
635
+ } else r.list.appendChild(r.option(e));
636
+ }(s[n]);
637
+ }, s.prototype.option = function (o) {
638
+ if (o.placeholder) {
639
+ var e = document.createElement("div");
640
+ return e.classList.add(this.main.config.option), e.classList.add(this.main.config.hide), e;
641
+ }
642
+ var t = document.createElement("div");
643
+ t.classList.add(this.main.config.option), t.setAttribute("role", "option"), o.class && o.class.split(" ").forEach(function (e) {
644
+ t.classList.add(e);
645
+ }), o.style && (t.style.cssText = o.style);
646
+ var l = this.main.data.getSelected();
647
+ t.dataset.id = o.id, this.main.config.searchHighlight && this.main.slim && o.innerHTML && "" !== this.main.slim.search.input.value.trim() ? t.innerHTML = (0, n.highlight)(o.innerHTML, this.main.slim.search.input.value, this.main.config.searchHighlighter) : o.innerHTML && (t.innerHTML = o.innerHTML), this.main.config.showOptionTooltips && t.textContent && t.setAttribute("title", t.textContent);
648
+ var r = this;
649
+ t.addEventListener("click", function (e) {
650
+ e.preventDefault(), e.stopPropagation();
651
+ var t = this.dataset.id;
652
+ if (!0 === o.selected && r.main.config.allowDeselectOption) {
653
+ var i = !1;
654
+ if (r.main.beforeOnChange && r.main.config.isMultiple || (i = !0), r.main.beforeOnChange && r.main.config.isMultiple) {
655
+ for (var n = r.main.data.getSelected(), s = JSON.parse(JSON.stringify(n)), a = 0; a < s.length; a++) s[a].id === t && s.splice(a, 1);
656
+ !1 !== r.main.beforeOnChange(s) && (i = !0);
657
+ }
658
+ i && (r.main.config.isMultiple ? (r.main.data.removeFromSelected(t, "id"), r.main.render(), r.main.select.setValue(), r.main.data.onDataChange()) : r.main.set(""));
659
+ } else o.disabled || o.selected || r.main.config.limit && Array.isArray(l) && r.main.config.limit <= l.length || (r.main.beforeOnChange ? (n = void 0, (i = JSON.parse(JSON.stringify(r.main.data.getObjectFromData(t)))).selected = !0, r.main.config.isMultiple ? (n = JSON.parse(JSON.stringify(l))).push(i) : n = JSON.parse(JSON.stringify(i)), !1 !== r.main.beforeOnChange(n) && r.main.set(t, "id", r.main.config.closeOnSelect)) : r.main.set(t, "id", r.main.config.closeOnSelect));
660
+ });
661
+ e = l && (0, n.isValueInArrayOfObjects)(l, "id", o.id);
662
+ return (o.disabled || e) && (t.onclick = null, r.main.config.allowDeselectOption || t.classList.add(this.main.config.disabled), r.main.config.hideSelectedOption && t.classList.add(this.main.config.hide)), e ? t.classList.add(this.main.config.optionSelected) : t.classList.remove(this.main.config.optionSelected), t;
663
+ }, s);
664
+ function s(e) {
665
+ this.main = e.main, this.container = this.containerDiv(), this.content = this.contentDiv(), this.search = this.searchDiv(), this.list = this.listDiv(), this.options(), this.singleSelected = null, this.multiSelected = null, this.main.config.isMultiple ? (this.multiSelected = this.multiSelectedDiv(), this.multiSelected && this.container.appendChild(this.multiSelected.container)) : (this.singleSelected = this.singleSelectedDiv(), this.container.appendChild(this.singleSelected.container)), this.main.config.addToBody ? (this.content.classList.add(this.main.config.id), document.body.appendChild(this.content)) : this.container.appendChild(this.content), this.content.appendChild(this.search.container), this.content.appendChild(this.list);
666
+ }
667
+ t.Slim = i;
668
+ }], s.c = n, s.d = function (e, t, i) {
669
+ s.o(e, t) || Object.defineProperty(e, t, {
670
+ enumerable: !0,
671
+ get: i
672
+ });
673
+ }, s.r = function (e) {
674
+ "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
675
+ value: "Module"
676
+ }), Object.defineProperty(e, "__esModule", {
677
+ value: !0
678
+ });
679
+ }, s.t = function (t, e) {
680
+ if (1 & e && (t = s(t)), 8 & e) return t;
681
+ if (4 & e && "object" == typeof t && t && t.__esModule) return t;
682
+ var i = Object.create(null);
683
+ if (s.r(i), Object.defineProperty(i, "default", {
684
+ enumerable: !0,
685
+ value: t
686
+ }), 2 & e && "string" != typeof t) for (var n in t) s.d(i, n, function (e) {
687
+ return t[e];
688
+ }.bind(null, n));
689
+ return i;
690
+ }, s.n = function (e) {
691
+ var t = e && e.__esModule ? function () {
692
+ return e.default;
693
+ } : function () {
694
+ return e;
695
+ };
696
+ return s.d(t, "a", t), t;
697
+ }, s.o = function (e, t) {
698
+ return Object.prototype.hasOwnProperty.call(e, t);
699
+ }, s.p = "", s(s.s = 2).default;
700
+ function s(e) {
701
+ if (n[e]) return n[e].exports;
702
+ var t = n[e] = {
703
+ i: e,
704
+ l: !1,
705
+ exports: {}
706
+ };
707
+ return i[e].call(t.exports, t, t.exports, s), t.l = !0, t.exports;
708
+ }
709
+ var i, n;
710
+ });
711
+ var __pika_web_default_export_for_treeshaking__ = exports.SlimSelect;
712
+
713
+ export default __pika_web_default_export_for_treeshaking__;
714
+ //# sourceMappingURL=slim-select.js.map