@ozdao/prometheus-framework 0.2.254 → 0.2.256

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,7 +4,7 @@ const require$$0 = require("mongoose");
4
4
  const queryProcessor$2 = require("./queryProcessor-CcsJEUBr.js");
5
5
  const metadata_schema = require("./metadata.schema-6slGhpQS.js");
6
6
  const require$$1 = require("stripe");
7
- const tickets_controller = require("./tickets.controller-Dn5NbQEu.js");
7
+ const tickets_controller = require("./tickets.controller-DPjBlikx.js");
8
8
  const index = require("./index-CsS7qx1d.js");
9
9
  const common_schema = require("./common.schema-BFhpUXUt.js");
10
10
  const engagement_schema = require("./engagement.schema-D-9md46B.js");
@@ -3,7 +3,7 @@ import require$$0 from "mongoose";
3
3
  import { q as queryProcessor$2 } from "./queryProcessor-CU4A6Y4N.mjs";
4
4
  import { s as seoFriendlyUrl, m as metadata_schema } from "./metadata.schema-CK5e2O3f.mjs";
5
5
  import require$$1 from "stripe";
6
- import { t as tickets_controller } from "./tickets.controller-CLL05IYf.mjs";
6
+ import { t as tickets_controller } from "./tickets.controller-C07KixAL.mjs";
7
7
  import { m as middlewares } from "./index-UIHE6Rk3.mjs";
8
8
  import { c as common_schema } from "./common.schema-ChBVARrs.mjs";
9
9
  import { e as engagement_schema } from "./engagement.schema-CCdSLKd4.mjs";
@@ -0,0 +1,450 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const multiselectMixin = require("./multiselectMixin.cjs");
4
+ const pointerMixin = require("./pointerMixin.cjs");
5
+ const vue = require("vue");
6
+ ;/* empty css */
7
+ const _pluginVue_exportHelper = require("../../../../_virtual/_plugin-vue_export-helper.cjs");
8
+ const _sfc_main = {
9
+ name: "vue-multiselect",
10
+ mixins: [multiselectMixin.default, pointerMixin.default],
11
+ compatConfig: {
12
+ MODE: 3,
13
+ ATTR_ENUMERATED_COERCION: false
14
+ },
15
+ props: {
16
+ /**
17
+ * name attribute to match optional label element
18
+ * @default ''
19
+ * @type {String}
20
+ */
21
+ name: {
22
+ type: String,
23
+ default: ""
24
+ },
25
+ /**
26
+ * Presets the selected options value.
27
+ * @type {Object||Array||String||Integer}
28
+ */
29
+ modelValue: {
30
+ type: null,
31
+ default() {
32
+ return [];
33
+ }
34
+ },
35
+ /**
36
+ * String to show when pointing to an option
37
+ * @default 'Press enter to select'
38
+ * @type {String}
39
+ */
40
+ selectLabel: {
41
+ type: String,
42
+ default: "Press enter to select"
43
+ },
44
+ /**
45
+ * String to show when pointing to an option
46
+ * @default 'Press enter to select'
47
+ * @type {String}
48
+ */
49
+ selectGroupLabel: {
50
+ type: String,
51
+ default: "Press enter to select group"
52
+ },
53
+ /**
54
+ * String to show next to selected option
55
+ * @default 'Selected'
56
+ * @type {String}
57
+ */
58
+ selectedLabel: {
59
+ type: String,
60
+ default: "Selected"
61
+ },
62
+ /**
63
+ * String to show when pointing to an already selected option
64
+ * @default 'Press enter to remove'
65
+ * @type {String}
66
+ */
67
+ deselectLabel: {
68
+ type: String,
69
+ default: "Press enter to remove"
70
+ },
71
+ /**
72
+ * String to show when pointing to an already selected option
73
+ * @default 'Press enter to remove'
74
+ * @type {String}
75
+ */
76
+ deselectGroupLabel: {
77
+ type: String,
78
+ default: "Press enter to deselect group"
79
+ },
80
+ /**
81
+ * Decide whether to show pointer labels
82
+ * @default true
83
+ * @type {Boolean}
84
+ */
85
+ showLabels: {
86
+ type: Boolean,
87
+ default: true
88
+ },
89
+ /**
90
+ * Limit the display of selected options. The rest will be hidden within the limitText string.
91
+ * @default 99999
92
+ * @type {Integer}
93
+ */
94
+ limit: {
95
+ type: Number,
96
+ default: 99999
97
+ },
98
+ /**
99
+ * Sets maxHeight style value of the dropdown
100
+ * @default 300
101
+ * @type {Integer}
102
+ */
103
+ maxHeight: {
104
+ type: Number,
105
+ default: 300
106
+ },
107
+ /**
108
+ * Function that process the message shown when selected
109
+ * elements pass the defined limit.
110
+ * @default 'and * more'
111
+ * @param {Int} count Number of elements more than limit
112
+ * @type {Function}
113
+ */
114
+ limitText: {
115
+ type: Function,
116
+ default: (count) => `and ${count} more`
117
+ },
118
+ /**
119
+ * Set true to trigger the loading spinner.
120
+ * @default False
121
+ * @type {Boolean}
122
+ */
123
+ loading: {
124
+ type: Boolean,
125
+ default: false
126
+ },
127
+ /**
128
+ * Disables the multiselect if true.
129
+ * @default false
130
+ * @type {Boolean}
131
+ */
132
+ disabled: {
133
+ type: Boolean,
134
+ default: false
135
+ },
136
+ /**
137
+ * Fixed opening direction
138
+ * @default ''
139
+ * @type {String}
140
+ */
141
+ openDirection: {
142
+ type: String,
143
+ default: ""
144
+ },
145
+ /**
146
+ * Shows slot with message about empty options
147
+ * @default true
148
+ * @type {Boolean}
149
+ */
150
+ showNoOptions: {
151
+ type: Boolean,
152
+ default: true
153
+ },
154
+ showNoResults: {
155
+ type: Boolean,
156
+ default: true
157
+ },
158
+ tabindex: {
159
+ type: Number,
160
+ default: 0
161
+ }
162
+ },
163
+ computed: {
164
+ hasOptionGroup() {
165
+ return this.groupValues && this.groupLabel && this.groupSelect;
166
+ },
167
+ isSingleLabelVisible() {
168
+ return (this.singleValue || this.singleValue === 0) && (!this.isOpen || !this.searchable) && !this.visibleValues.length;
169
+ },
170
+ isPlaceholderVisible() {
171
+ return !this.internalValue.length && (!this.searchable || !this.isOpen);
172
+ },
173
+ visibleValues() {
174
+ return this.multiple ? this.internalValue.slice(0, this.limit) : [];
175
+ },
176
+ singleValue() {
177
+ return this.internalValue[0];
178
+ },
179
+ deselectLabelText() {
180
+ return this.showLabels ? this.deselectLabel : "";
181
+ },
182
+ deselectGroupLabelText() {
183
+ return this.showLabels ? this.deselectGroupLabel : "";
184
+ },
185
+ selectLabelText() {
186
+ return this.showLabels ? this.selectLabel : "";
187
+ },
188
+ selectGroupLabelText() {
189
+ return this.showLabels ? this.selectGroupLabel : "";
190
+ },
191
+ selectedLabelText() {
192
+ return this.showLabels ? this.selectedLabel : "";
193
+ },
194
+ inputStyle() {
195
+ if (this.searchable || this.multiple && this.modelValue && this.modelValue.length) {
196
+ return this.isOpen ? { width: "100%" } : { width: "0", position: "absolute", padding: "0" };
197
+ }
198
+ return "";
199
+ },
200
+ contentStyle() {
201
+ return this.options.length ? { display: "inline-block" } : { display: "block" };
202
+ },
203
+ isAbove() {
204
+ if (this.openDirection === "above" || this.openDirection === "top") {
205
+ return true;
206
+ } else if (this.openDirection === "below" || this.openDirection === "bottom") {
207
+ return false;
208
+ } else {
209
+ return this.preferredOpenDirection === "above";
210
+ }
211
+ },
212
+ showSearchInput() {
213
+ return this.searchable && (this.hasSingleSelectedSlot && (this.visibleSingleValue || this.visibleSingleValue === 0) ? this.isOpen : true);
214
+ }
215
+ }
216
+ };
217
+ const _hoisted_1 = ["tabindex", "aria-owns"];
218
+ const _hoisted_2 = {
219
+ ref: "tags",
220
+ class: "multiselect__tags"
221
+ };
222
+ const _hoisted_3 = { class: "multiselect__tags-wrap" };
223
+ const _hoisted_4 = ["textContent"];
224
+ const _hoisted_5 = ["onKeypress", "onMousedown"];
225
+ const _hoisted_6 = ["textContent"];
226
+ const _hoisted_7 = { class: "multiselect__spinner" };
227
+ const _hoisted_8 = ["name", "id", "placeholder", "value", "disabled", "tabindex", "aria-controls"];
228
+ const _hoisted_9 = ["id"];
229
+ const _hoisted_10 = { key: 0 };
230
+ const _hoisted_11 = { class: "multiselect__option" };
231
+ const _hoisted_12 = ["id", "role"];
232
+ const _hoisted_13 = ["onClick", "onMouseenter", "data-select", "data-selected", "data-deselect"];
233
+ const _hoisted_14 = ["data-select", "data-deselect", "onMouseenter", "onMousedown"];
234
+ const _hoisted_15 = { class: "multiselect__option" };
235
+ const _hoisted_16 = { class: "multiselect__option" };
236
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
237
+ return vue.openBlock(), vue.createElementBlock("div", {
238
+ tabindex: _ctx.searchable ? -1 : $props.tabindex,
239
+ class: vue.normalizeClass([{ "multiselect--active": _ctx.isOpen, "multiselect--disabled": $props.disabled, "multiselect--above": $options.isAbove, "multiselect--has-options-group": $options.hasOptionGroup }, "multiselect flex flex-v-center"]),
240
+ onFocus: _cache[13] || (_cache[13] = ($event) => _ctx.activate()),
241
+ onBlur: _cache[14] || (_cache[14] = ($event) => _ctx.searchable ? false : _ctx.deactivate()),
242
+ onKeydown: [
243
+ _cache[15] || (_cache[15] = vue.withKeys(vue.withModifiers(($event) => _ctx.pointerForward(), ["self", "prevent"]), ["down"])),
244
+ _cache[16] || (_cache[16] = vue.withKeys(vue.withModifiers(($event) => _ctx.pointerBackward(), ["self", "prevent"]), ["up"]))
245
+ ],
246
+ onKeypress: _cache[17] || (_cache[17] = vue.withKeys(vue.withModifiers(($event) => _ctx.addPointerElement($event), ["stop", "self"]), ["enter", "tab"])),
247
+ onKeyup: _cache[18] || (_cache[18] = vue.withKeys(($event) => _ctx.deactivate(), ["esc"])),
248
+ role: "combobox",
249
+ "aria-owns": "listbox-" + _ctx.id
250
+ }, [
251
+ vue.renderSlot(_ctx.$slots, "caret", { toggle: _ctx.toggle }, () => [
252
+ vue.createElementVNode("div", {
253
+ onMousedown: _cache[0] || (_cache[0] = vue.withModifiers(($event) => _ctx.toggle(), ["prevent", "stop"])),
254
+ class: "multiselect__select"
255
+ }, null, 32)
256
+ ]),
257
+ vue.renderSlot(_ctx.$slots, "clear", { search: _ctx.search }),
258
+ vue.createElementVNode("div", _hoisted_2, [
259
+ vue.renderSlot(_ctx.$slots, "selection", {
260
+ search: _ctx.search,
261
+ remove: _ctx.removeElement,
262
+ values: $options.visibleValues,
263
+ isOpen: _ctx.isOpen
264
+ }, () => [
265
+ vue.withDirectives(vue.createElementVNode("div", _hoisted_3, [
266
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($options.visibleValues, (option, index) => {
267
+ return vue.renderSlot(_ctx.$slots, "tag", {
268
+ option,
269
+ search: _ctx.search,
270
+ remove: _ctx.removeElement
271
+ }, () => [
272
+ (vue.openBlock(), vue.createElementBlock("span", {
273
+ class: "multiselect__tag",
274
+ key: index
275
+ }, [
276
+ vue.createElementVNode("span", {
277
+ textContent: vue.toDisplayString(_ctx.getOptionLabel(option))
278
+ }, null, 8, _hoisted_4),
279
+ vue.createElementVNode("i", {
280
+ tabindex: "1",
281
+ onKeypress: vue.withKeys(vue.withModifiers(($event) => _ctx.removeElement(option), ["prevent"]), ["enter"]),
282
+ onMousedown: vue.withModifiers(($event) => _ctx.removeElement(option), ["prevent"]),
283
+ class: "multiselect__tag-icon"
284
+ }, null, 40, _hoisted_5)
285
+ ]))
286
+ ]);
287
+ }), 256))
288
+ ], 512), [
289
+ [vue.vShow, $options.visibleValues.length > 0]
290
+ ]),
291
+ _ctx.internalValue && _ctx.internalValue.length > $props.limit ? vue.renderSlot(_ctx.$slots, "limit", { key: 0 }, () => [
292
+ vue.createElementVNode("strong", {
293
+ class: "multiselect__strong",
294
+ textContent: vue.toDisplayString($props.limitText(_ctx.internalValue.length - $props.limit))
295
+ }, null, 8, _hoisted_6)
296
+ ]) : vue.createCommentVNode("", true)
297
+ ]),
298
+ vue.createVNode(vue.Transition, { name: "multiselect__loading" }, {
299
+ default: vue.withCtx(() => [
300
+ vue.renderSlot(_ctx.$slots, "loading", {}, () => [
301
+ vue.withDirectives(vue.createElementVNode("div", _hoisted_7, null, 512), [
302
+ [vue.vShow, $props.loading]
303
+ ])
304
+ ])
305
+ ]),
306
+ _: 3
307
+ }),
308
+ _ctx.searchable ? (vue.openBlock(), vue.createElementBlock("input", {
309
+ key: 0,
310
+ ref: "search",
311
+ name: $props.name,
312
+ id: _ctx.id,
313
+ type: "text",
314
+ autocomplete: "off",
315
+ spellcheck: "false",
316
+ placeholder: _ctx.placeholder,
317
+ style: vue.normalizeStyle($options.inputStyle),
318
+ value: _ctx.search,
319
+ disabled: $props.disabled,
320
+ tabindex: $props.tabindex,
321
+ onInput: _cache[1] || (_cache[1] = ($event) => _ctx.updateSearch($event.target.value)),
322
+ onFocus: _cache[2] || (_cache[2] = vue.withModifiers(($event) => _ctx.activate(), ["prevent"])),
323
+ onBlur: _cache[3] || (_cache[3] = vue.withModifiers(($event) => _ctx.deactivate(), ["prevent"])),
324
+ onKeyup: _cache[4] || (_cache[4] = vue.withKeys(($event) => _ctx.deactivate(), ["esc"])),
325
+ onKeydown: [
326
+ _cache[5] || (_cache[5] = vue.withKeys(vue.withModifiers(($event) => _ctx.pointerForward(), ["prevent"]), ["down"])),
327
+ _cache[6] || (_cache[6] = vue.withKeys(vue.withModifiers(($event) => _ctx.pointerBackward(), ["prevent"]), ["up"])),
328
+ _cache[8] || (_cache[8] = vue.withKeys(vue.withModifiers(($event) => _ctx.removeLastElement(), ["stop"]), ["delete"]))
329
+ ],
330
+ onKeypress: _cache[7] || (_cache[7] = vue.withKeys(vue.withModifiers(($event) => _ctx.addPointerElement($event), ["prevent", "stop", "self"]), ["enter"])),
331
+ class: "multiselect__input",
332
+ "aria-controls": "listbox-" + _ctx.id
333
+ }, null, 44, _hoisted_8)) : vue.createCommentVNode("", true),
334
+ $options.isSingleLabelVisible ? (vue.openBlock(), vue.createElementBlock("span", {
335
+ key: 1,
336
+ class: "multiselect__single",
337
+ onMousedown: _cache[9] || (_cache[9] = vue.withModifiers((...args) => _ctx.toggle && _ctx.toggle(...args), ["prevent"]))
338
+ }, [
339
+ vue.renderSlot(_ctx.$slots, "singleLabel", { option: $options.singleValue }, () => [
340
+ vue.createTextVNode(vue.toDisplayString(_ctx.currentOptionLabel), 1)
341
+ ])
342
+ ], 32)) : vue.createCommentVNode("", true),
343
+ $options.isPlaceholderVisible ? (vue.openBlock(), vue.createElementBlock("span", {
344
+ key: 2,
345
+ class: "multiselect__placeholder",
346
+ onMousedown: _cache[10] || (_cache[10] = vue.withModifiers((...args) => _ctx.toggle && _ctx.toggle(...args), ["prevent"]))
347
+ }, [
348
+ vue.renderSlot(_ctx.$slots, "placeholder", {}, () => [
349
+ vue.createTextVNode(vue.toDisplayString(_ctx.placeholder), 1)
350
+ ])
351
+ ], 32)) : vue.createCommentVNode("", true)
352
+ ], 512),
353
+ vue.createVNode(vue.Transition, { name: "multiselect" }, {
354
+ default: vue.withCtx(() => [
355
+ vue.withDirectives(vue.createElementVNode("div", {
356
+ class: vue.normalizeClass(["multiselect__content-wrapper", _ctx.$attrs.class]),
357
+ onFocus: _cache[11] || (_cache[11] = (...args) => _ctx.activate && _ctx.activate(...args)),
358
+ tabindex: "-1",
359
+ onMousedown: _cache[12] || (_cache[12] = vue.withModifiers(() => {
360
+ }, ["prevent"])),
361
+ style: vue.normalizeStyle({ maxHeight: _ctx.optimizedHeight + "px" }),
362
+ ref: "list"
363
+ }, [
364
+ vue.createElementVNode("ul", {
365
+ class: "multiselect__content",
366
+ style: vue.normalizeStyle($options.contentStyle),
367
+ role: "listbox",
368
+ id: "listbox-" + _ctx.id
369
+ }, [
370
+ vue.renderSlot(_ctx.$slots, "beforeList"),
371
+ _ctx.multiple && _ctx.max === _ctx.internalValue.length ? (vue.openBlock(), vue.createElementBlock("li", _hoisted_10, [
372
+ vue.createElementVNode("span", _hoisted_11, [
373
+ vue.renderSlot(_ctx.$slots, "maxElements", {}, () => [
374
+ vue.createTextVNode("Maximum of " + vue.toDisplayString(_ctx.max) + " options selected. First remove a selected option to select another.", 1)
375
+ ])
376
+ ])
377
+ ])) : vue.createCommentVNode("", true),
378
+ !_ctx.max || _ctx.internalValue.length < _ctx.max ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(_ctx.filteredOptions, (option, index) => {
379
+ return vue.openBlock(), vue.createElementBlock("li", {
380
+ class: "multiselect__element",
381
+ key: index,
382
+ id: _ctx.id + "-" + index,
383
+ role: !(option && (option.$isLabel || option.$isDisabled)) ? "option" : null
384
+ }, [
385
+ !(option && (option.$isLabel || option.$isDisabled)) ? (vue.openBlock(), vue.createElementBlock("span", {
386
+ key: 0,
387
+ class: vue.normalizeClass([_ctx.optionHighlight(index, option), "multiselect__option"]),
388
+ onClick: vue.withModifiers(($event) => _ctx.select(option), ["stop"]),
389
+ onMouseenter: vue.withModifiers(($event) => _ctx.pointerSet(index), ["self"]),
390
+ "data-select": option && option.isTag ? _ctx.tagPlaceholder : $options.selectLabelText,
391
+ "data-selected": $options.selectedLabelText,
392
+ "data-deselect": $options.deselectLabelText
393
+ }, [
394
+ vue.renderSlot(_ctx.$slots, "option", {
395
+ option,
396
+ search: _ctx.search,
397
+ index
398
+ }, () => [
399
+ vue.createElementVNode("span", null, vue.toDisplayString(_ctx.getOptionLabel(option)), 1)
400
+ ])
401
+ ], 42, _hoisted_13)) : vue.createCommentVNode("", true),
402
+ option && (option.$isLabel || option.$isDisabled) ? (vue.openBlock(), vue.createElementBlock("span", {
403
+ key: 1,
404
+ "data-select": _ctx.groupSelect && $options.selectGroupLabelText,
405
+ "data-deselect": _ctx.groupSelect && $options.deselectGroupLabelText,
406
+ class: vue.normalizeClass([_ctx.groupHighlight(index, option), "multiselect__option"]),
407
+ onMouseenter: vue.withModifiers(($event) => _ctx.groupSelect && _ctx.pointerSet(index), ["self"]),
408
+ onMousedown: vue.withModifiers(($event) => _ctx.selectGroup(option), ["prevent"])
409
+ }, [
410
+ vue.renderSlot(_ctx.$slots, "option", {
411
+ option,
412
+ search: _ctx.search,
413
+ index
414
+ }, () => [
415
+ vue.createElementVNode("span", null, vue.toDisplayString(_ctx.getOptionLabel(option)), 1)
416
+ ])
417
+ ], 42, _hoisted_14)) : vue.createCommentVNode("", true)
418
+ ], 8, _hoisted_12);
419
+ }), 128)) : vue.createCommentVNode("", true),
420
+ vue.withDirectives(vue.createElementVNode("li", null, [
421
+ vue.createElementVNode("span", _hoisted_15, [
422
+ vue.renderSlot(_ctx.$slots, "noResult", { search: _ctx.search }, () => [
423
+ _cache[19] || (_cache[19] = vue.createTextVNode("No elements found. Consider changing the search query."))
424
+ ])
425
+ ])
426
+ ], 512), [
427
+ [vue.vShow, $props.showNoResults && (_ctx.filteredOptions.length === 0 && _ctx.search && !$props.loading)]
428
+ ]),
429
+ vue.withDirectives(vue.createElementVNode("li", null, [
430
+ vue.createElementVNode("span", _hoisted_16, [
431
+ vue.renderSlot(_ctx.$slots, "noOptions", {}, () => [
432
+ _cache[20] || (_cache[20] = vue.createTextVNode("List is empty."))
433
+ ])
434
+ ])
435
+ ], 512), [
436
+ [vue.vShow, $props.showNoOptions && ((_ctx.options.length === 0 || $options.hasOptionGroup === true && _ctx.filteredOptions.length === 0) && !_ctx.search && !$props.loading)]
437
+ ]),
438
+ vue.renderSlot(_ctx.$slots, "afterList")
439
+ ], 12, _hoisted_9)
440
+ ], 38), [
441
+ [vue.vShow, _ctx.isOpen]
442
+ ])
443
+ ]),
444
+ _: 3
445
+ })
446
+ ], 42, _hoisted_1);
447
+ }
448
+ const SelectMulti = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["render", _sfc_render]]);
449
+ exports.default = SelectMulti;
450
+ //# sourceMappingURL=SelectMulti.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectMulti.vue2.cjs","sources":["../../../../../src/components/SelectMulti/SelectMulti.vue"],"sourcesContent":["<template>\n <div\n :tabindex=\"searchable ? -1 : tabindex\"\n :class=\"{ 'multiselect--active': isOpen, 'multiselect--disabled': disabled, 'multiselect--above': isAbove, 'multiselect--has-options-group': hasOptionGroup }\"\n @focus=\"activate()\"\n @blur=\"searchable ? false : deactivate()\"\n @keydown.self.down.prevent=\"pointerForward()\"\n @keydown.self.up.prevent=\"pointerBackward()\"\n @keypress.enter.tab.stop.self=\"addPointerElement($event)\"\n @keyup.esc=\"deactivate()\"\n class=\"multiselect flex flex-v-center\"\n role=\"combobox\"\n :aria-owns=\"'listbox-'+id\">\n \n <slot name=\"caret\" :toggle=\"toggle\">\n <div @mousedown.prevent.stop=\"toggle()\" class=\"multiselect__select\"></div>\n </slot>\n \n <slot name=\"clear\" :search=\"search\"></slot>\n \n <div ref=\"tags\" class=\"multiselect__tags\">\n <slot\n name=\"selection\"\n :search=\"search\"\n :remove=\"removeElement\"\n :values=\"visibleValues\"\n :is-open=\"isOpen\"\n >\n <div class=\"multiselect__tags-wrap\" v-show=\"visibleValues.length > 0\">\n <template v-for=\"(option, index) of visibleValues\" @mousedown.prevent>\n <slot name=\"tag\" :option=\"option\" :search=\"search\" :remove=\"removeElement\">\n <span class=\"multiselect__tag\" :key=\"index\">\n <span v-text=\"getOptionLabel(option)\"></span>\n <i tabindex=\"1\" @keypress.enter.prevent=\"removeElement(option)\"\n @mousedown.prevent=\"removeElement(option)\" class=\"multiselect__tag-icon\"></i>\n </span>\n </slot>\n </template>\n </div>\n <template v-if=\"internalValue && internalValue.length > limit\">\n <slot name=\"limit\">\n <strong class=\"multiselect__strong\" v-text=\"limitText(internalValue.length - limit)\"/>\n </slot>\n </template>\n </slot>\n <transition name=\"multiselect__loading\">\n <slot name=\"loading\">\n <div v-show=\"loading\" class=\"multiselect__spinner\"/>\n </slot>\n </transition>\n <input\n ref=\"search\"\n v-if=\"searchable\"\n :name=\"name\"\n :id=\"id\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\n :value=\"search\"\n :disabled=\"disabled\"\n :tabindex=\"tabindex\"\n @input=\"updateSearch($event.target.value)\"\n @focus.prevent=\"activate()\"\n @blur.prevent=\"deactivate()\"\n @keyup.esc=\"deactivate()\"\n @keydown.down.prevent=\"pointerForward()\"\n @keydown.up.prevent=\"pointerBackward()\"\n @keypress.enter.prevent.stop.self=\"addPointerElement($event)\"\n @keydown.delete.stop=\"removeLastElement()\"\n class=\"multiselect__input\"\n :aria-controls=\"'listbox-'+id\"\n />\n <span\n v-if=\"isSingleLabelVisible\"\n class=\"multiselect__single\"\n @mousedown.prevent=\"toggle\"\n >\n <slot name=\"singleLabel\" :option=\"singleValue\">\n {{ currentOptionLabel }}\n </slot>\n </span>\n <span\n v-if=\"isPlaceholderVisible\"\n class=\"multiselect__placeholder\"\n @mousedown.prevent=\"toggle\"\n >\n <slot name=\"placeholder\">\n {{ placeholder }}\n </slot>\n </span>\n </div>\n \n <transition name=\"multiselect\">\n <div\n class=\"multiselect__content-wrapper\"\n v-show=\"isOpen\"\n @focus=\"activate\"\n tabindex=\"-1\"\n @mousedown.prevent\n :style=\"{ maxHeight: optimizedHeight + 'px' }\"\n ref=\"list\"\n :class=\"$attrs.class\"\n >\n <ul class=\"multiselect__content\" :style=\"contentStyle\" role=\"listbox\" :id=\"'listbox-'+id\">\n <slot name=\"beforeList\"></slot>\n <li v-if=\"multiple && max === internalValue.length\">\n <span class=\"multiselect__option\">\n <slot name=\"maxElements\">Maximum of {{ max }} options selected. First remove a selected option to select another.</slot>\n </span>\n </li>\n <template v-if=\"!max || internalValue.length < max\">\n <li class=\"multiselect__element\"\n v-for=\"(option, index) of filteredOptions\"\n :key=\"index\"\n v-bind:id=\"id + '-' + index\"\n v-bind:role=\"!(option && (option.$isLabel || option.$isDisabled)) ? 'option' : null\">\n <span\n v-if=\"!(option && (option.$isLabel || option.$isDisabled))\"\n :class=\"optionHighlight(index, option)\"\n @click.stop=\"select(option)\"\n @mouseenter.self=\"pointerSet(index)\"\n :data-select=\"option && option.isTag ? tagPlaceholder : selectLabelText\"\n :data-selected=\"selectedLabelText\"\n :data-deselect=\"deselectLabelText\"\n class=\"multiselect__option\">\n <slot name=\"option\" :option=\"option\" :search=\"search\" :index=\"index\">\n <span>{{ getOptionLabel(option) }}</span>\n </slot>\n </span>\n <span\n v-if=\"option && (option.$isLabel || option.$isDisabled)\"\n :data-select=\"groupSelect && selectGroupLabelText\"\n :data-deselect=\"groupSelect && deselectGroupLabelText\"\n :class=\"groupHighlight(index, option)\"\n @mouseenter.self=\"groupSelect && pointerSet(index)\"\n @mousedown.prevent=\"selectGroup(option)\"\n class=\"multiselect__option\">\n <slot name=\"option\" :option=\"option\" :search=\"search\" :index=\"index\">\n <span>{{ getOptionLabel(option) }}</span>\n </slot>\n </span>\n </li>\n </template>\n <li v-show=\"showNoResults && (filteredOptions.length === 0 && search && !loading)\">\n <span class=\"multiselect__option\">\n <slot name=\"noResult\" :search=\"search\">No elements found. Consider changing the search query.</slot>\n </span>\n </li>\n <li v-show=\"showNoOptions && ((options.length === 0 || (hasOptionGroup === true && filteredOptions.length === 0)) && !search && !loading)\">\n <span class=\"multiselect__option\">\n <slot name=\"noOptions\">List is empty.</slot>\n </span>\n </li>\n <slot name=\"afterList\"></slot>\n </ul>\n </div>\n </transition>\n </div>\n</template>\n\n<script>\nimport multiselectMixin from './multiselectMixin'\nimport pointerMixin from './pointerMixin'\n\nexport default {\n name: 'vue-multiselect',\n mixins: [multiselectMixin, pointerMixin],\n compatConfig: {\n MODE: 3,\n ATTR_ENUMERATED_COERCION: false\n },\n props: {\n /**\n * name attribute to match optional label element\n * @default ''\n * @type {String}\n */\n name: {\n type: String,\n default: ''\n },\n /**\n * Presets the selected options value.\n * @type {Object||Array||String||Integer}\n */\n modelValue: {\n type: null,\n default () {\n return []\n }\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectLabel: {\n type: String,\n default: 'Press enter to select'\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectGroupLabel: {\n type: String,\n default: 'Press enter to select group'\n },\n /**\n * String to show next to selected option\n * @default 'Selected'\n * @type {String}\n */\n selectedLabel: {\n type: String,\n default: 'Selected'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectLabel: {\n type: String,\n default: 'Press enter to remove'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectGroupLabel: {\n type: String,\n default: 'Press enter to deselect group'\n },\n /**\n * Decide whether to show pointer labels\n * @default true\n * @type {Boolean}\n */\n showLabels: {\n type: Boolean,\n default: true\n },\n /**\n * Limit the display of selected options. The rest will be hidden within the limitText string.\n * @default 99999\n * @type {Integer}\n */\n limit: {\n type: Number,\n default: 99999\n },\n /**\n * Sets maxHeight style value of the dropdown\n * @default 300\n * @type {Integer}\n */\n maxHeight: {\n type: Number,\n default: 300\n },\n /**\n * Function that process the message shown when selected\n * elements pass the defined limit.\n * @default 'and * more'\n * @param {Int} count Number of elements more than limit\n * @type {Function}\n */\n limitText: {\n type: Function,\n default: (count) => `and ${count} more`\n },\n /**\n * Set true to trigger the loading spinner.\n * @default False\n * @type {Boolean}\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Disables the multiselect if true.\n * @default false\n * @type {Boolean}\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Fixed opening direction\n * @default ''\n * @type {String}\n */\n openDirection: {\n type: String,\n default: ''\n },\n /**\n * Shows slot with message about empty options\n * @default true\n * @type {Boolean}\n */\n showNoOptions: {\n type: Boolean,\n default: true\n },\n showNoResults: {\n type: Boolean,\n default: true\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n computed: {\n hasOptionGroup () {\n return this.groupValues && this.groupLabel && this.groupSelect\n },\n isSingleLabelVisible () {\n return (\n (this.singleValue || this.singleValue === 0) &&\n (!this.isOpen || !this.searchable) &&\n !this.visibleValues.length\n )\n },\n isPlaceholderVisible () {\n return !this.internalValue.length && (!this.searchable || !this.isOpen)\n },\n visibleValues () {\n return this.multiple ? this.internalValue.slice(0, this.limit) : []\n },\n singleValue () {\n return this.internalValue[0]\n },\n deselectLabelText () {\n return this.showLabels ? this.deselectLabel : ''\n },\n deselectGroupLabelText () {\n return this.showLabels ? this.deselectGroupLabel : ''\n },\n selectLabelText () {\n return this.showLabels ? this.selectLabel : ''\n },\n selectGroupLabelText () {\n return this.showLabels ? this.selectGroupLabel : ''\n },\n selectedLabelText () {\n return this.showLabels ? this.selectedLabel : ''\n },\n inputStyle () {\n if (\n this.searchable ||\n (this.multiple && this.modelValue && this.modelValue.length)\n ) {\n // Hide input by setting the width to 0 allowing it to receive focus\n return this.isOpen\n ? {width: '100%'}\n : {width: '0', position: 'absolute', padding: '0'}\n }\n return ''\n },\n contentStyle () {\n return this.options.length\n ? {display: 'inline-block'}\n : {display: 'block'}\n },\n isAbove () {\n if (this.openDirection === 'above' || this.openDirection === 'top') {\n return true\n } else if (\n this.openDirection === 'below' ||\n this.openDirection === 'bottom'\n ) {\n return false\n } else {\n return this.preferredOpenDirection === 'above'\n }\n },\n showSearchInput () {\n return (\n this.searchable &&\n (this.hasSingleSelectedSlot &&\n (this.visibleSingleValue || this.visibleSingleValue === 0)\n ? this.isOpen\n : true)\n )\n }\n }\n}\n</script>\n\n<style>\n\n fieldset[disabled] .multiselect {\n pointer-events: none;\n }\n\n .multiselect__spinner {\n position: absolute;\n right: 1px;\n top: 1px;\n width: 40px;\n height: 38px;\n background: #fff;\n display: block;\n }\n\n .multiselect__spinner::before,\n .multiselect__spinner::after {\n position: absolute;\n content: \"\";\n top: 50%;\n left: 50%;\n margin: -8px 0 0 -8px;\n width: 16px;\n height: 16px;\n border-radius: 100%;\n border-color: #41b883 transparent transparent;\n border-style: solid;\n border-width: 2px;\n box-shadow: 0 0 0 1px transparent;\n }\n\n .multiselect__spinner::before {\n animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62);\n animation-iteration-count: infinite;\n }\n\n .multiselect__spinner::after {\n animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8);\n animation-iteration-count: infinite;\n }\n\n .multiselect__loading-enter-active,\n .multiselect__loading-leave-active {\n transition: opacity 0.4s ease-in-out;\n opacity: 1;\n }\n\n .multiselect__loading-enter,\n .multiselect__loading-leave-active {\n opacity: 0;\n }\n\n .multiselect,\n .multiselect__input,\n .multiselect__single {\n font-family: inherit;\n touch-action: manipulation;\n }\n\n .multiselect {\n display: block;\n position: relative;\n width: 100%;\n min-height: 40px;\n }\n\n .multiselect * {\n box-sizing: border-box;\n }\n\n .multiselect:focus {\n outline: none;\n }\n\n .multiselect--disabled {\n background: #ededed;\n pointer-events: none;\n opacity: 0.6;\n }\n\n .multiselect--active {\n z-index: 50;\n }\n\n .multiselect--active:not(.multiselect--above) .multiselect__current,\n .multiselect--active:not(.multiselect--above) .multiselect__input,\n .multiselect--active:not(.multiselect--above) .multiselect__tags {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .multiselect--active .multiselect__select {\n transform: rotateZ(180deg);\n }\n\n .multiselect--above.multiselect--active .multiselect__current,\n .multiselect--above.multiselect--active .multiselect__input,\n .multiselect--above.multiselect--active .multiselect__tags {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n .multiselect__input,\n .multiselect__single,\n .multiselect__placeholder {\n position: relative;\n display: inline-block;\n min-height: 20px;\n line-height: 20px;\n border: none;\n width: calc(100%);\n height: inherit;\n box-sizing: border-box;\n vertical-align: top;\n display: flex;\n align-items: center;\n }\n\n .multiselect__input::placeholder {\n color: #35495e;\n }\n\n .multiselect__tag ~ .multiselect__input,\n .multiselect__tag ~ .multiselect__single {\n width: auto;\n }\n\n .multiselect__input:hover,\n .multiselect__single:hover {\n border-color: #cfcfcf;\n }\n\n .multiselect__input:focus,\n .multiselect__single:focus {\n border-color: #a8a8a8;\n outline: none;\n }\n\n .multiselect__tags-wrap {\n display: inline;\n }\n\n .multiselect__tags {\n display: block;\n height: inherit;\n }\n\n .multiselect__tag {\n position: relative;\n display: inline-block;\n padding: 4px 26px 4px 10px;\n border-radius: 5px;\n margin-right: 10px;\n color: #fff;\n line-height: 1;\n background: #41b883;\n margin-bottom: 5px;\n white-space: nowrap;\n overflow: hidden;\n max-width: 100%;\n text-overflow: ellipsis;\n }\n\n .multiselect__tag-icon {\n cursor: pointer;\n margin-left: 7px;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n font-weight: 700;\n font-style: initial;\n width: 22px;\n text-align: center;\n line-height: 22px;\n transition: all 0.2s ease;\n border-radius: 5px;\n }\n\n .multiselect__tag-icon::after {\n content: \"×\";\n color: #266d4d;\n font-size: 14px;\n }\n\n /* // Remove these lines to avoid green closing button\n //.multiselect__tag-icon:focus,\n //.multiselect__tag-icon:hover {\n // background: #369a6e;\n //} */\n\n .multiselect__tag-icon:focus::after,\n .multiselect__tag-icon:hover::after {\n color: white;\n }\n\n .multiselect__current {\n line-height: 16px;\n min-height: 40px;\n box-sizing: border-box;\n display: block;\n overflow: hidden;\n padding: 8px 12px 0;\n padding-right: 30px;\n white-space: nowrap;\n margin: 0;\n text-decoration: none;\n border-radius: 5px;\n border: 1px solid #e8e8e8;\n cursor: pointer;\n }\n\n .multiselect__select {\n line-height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: center;\n position: absolute;\n box-sizing: border-box;\n width: 40px;\n height: 38px;\n right: 1px;\n top: calc( 50% - 19px);\n padding: 4px 8px;\n margin: 0;\n text-decoration: none;\n text-align: center;\n cursor: pointer;\n transition: transform 0.2s ease;\n }\n\n .multiselect__select::before {\n position: relative;\n color: #999;\n margin-top: 4px;\n border-style: solid;\n border-width: 5px 5px 0 5px;\n border-color: #999 transparent transparent transparent;\n content: \"\";\n }\n\n\n .multiselect--active .multiselect__placeholder {\n display: none;\n }\n\n .multiselect__content-wrapper {\n position: absolute;\n display: block;\n background: #fff;\n width: 100%;\n max-height: 240px;\n height: min-content;\n overflow: auto;\n left: 0;\n border-top: none;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n z-index: 50;\n -webkit-overflow-scrolling: touch;\n }\n\n .multiselect__content {\n list-style: none;\n display: inline-block;\n padding: 0;\n margin: 0;\n min-width: 100%;\n vertical-align: top;\n }\n\n .multiselect--above .multiselect__content-wrapper {\n bottom: 100%;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n border-bottom: none;\n border-top: 1px solid #e8e8e8;\n }\n\n .multiselect__content::-webkit-scrollbar {\n display: none;\n }\n\n .multiselect__element {\n display: block;\n }\n\n .multiselect__option {\n display: block;\n padding: 12px;\n min-height: 40px;\n line-height: 16px;\n text-decoration: none;\n text-transform: none;\n vertical-align: middle;\n position: relative;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .multiselect__option::after {\n top: 0;\n right: 0;\n position: absolute;\n line-height: 40px;\n padding-right: 12px;\n padding-left: 20px;\n font-size: 13px;\n }\n\n .multiselect__option--highlight {\n background: rgba(var(--main),0.1);\n outline: none;\n }\n\n .multiselect__option--highlight::after {\n content: attr(data-select);\n }\n\n .multiselect__option--selected {\n background: #f3f3f3;\n color: #35495e;\n font-weight: bold;\n }\n\n .multiselect__option--selected::after {\n content: attr(data-selected);\n color: silver;\n background: inherit;\n }\n\n .multiselect__option--selected.multiselect__option--highlight {\n background: rgba(var(--red),0.1);\n }\n\n .multiselect__option--selected.multiselect__option--highlight::after {\n content: attr(data-deselect);\n }\n\n .multiselect--disabled .multiselect__current,\n .multiselect--disabled .multiselect__select {\n background: #ededed;\n color: #a6a6a6;\n }\n\n .multiselect__option--disabled {\n background: #ededed !important;\n color: #a6a6a6 !important;\n cursor: text;\n pointer-events: none;\n }\n\n .multiselect__option--group {\n background: #ededed;\n color: #35495e;\n }\n\n .multiselect__option--group.multiselect__option--highlight {\n background: #35495e;\n color: #fff;\n }\n\n .multiselect__option--group.multiselect__option--highlight::after {\n background: #35495e;\n }\n\n .multiselect__option--disabled.multiselect__option--highlight {\n background: #dedede;\n }\n\n .multiselect__option--group-selected.multiselect__option--highlight {\n background: #ff6a6a;\n color: #fff;\n }\n\n .multiselect__option--group-selected.multiselect__option--highlight::after {\n background: #ff6a6a;\n content: attr(data-deselect);\n color: #fff;\n }\n\n .multiselect-enter-active,\n .multiselect-leave-active {\n transition: all 0.15s ease;\n }\n\n .multiselect-enter,\n .multiselect-leave-active {\n opacity: 0;\n }\n\n .multiselect__strong {\n margin-bottom: 8px;\n line-height: 20px;\n display: inline-block;\n vertical-align: top;\n }\n\n *[dir=\"rtl\"] .multiselect {\n text-align: right;\n }\n\n *[dir=\"rtl\"] .multiselect__select {\n right: auto;\n left: 1px;\n }\n\n *[dir=\"rtl\"] .multiselect__tags {\n padding: 8px 8px 0 40px;\n }\n\n *[dir=\"rtl\"] .multiselect__content {\n text-align: right;\n }\n\n *[dir=\"rtl\"] .multiselect__option::after {\n right: auto;\n left: 0;\n }\n\n *[dir=\"rtl\"] .multiselect__clear {\n right: auto;\n left: 12px;\n }\n\n *[dir=\"rtl\"] .multiselect__spinner {\n right: auto;\n left: 1px;\n }\n\n @keyframes spinning {\n from {\n transform: rotate(0);\n }\n\n to {\n transform: rotate(2turn);\n }\n }\n</style>\n"],"names":["multiselectMixin","pointerMixin","_createElementBlock","_normalizeClass","_withKeys","_withModifiers","_renderSlot","_createElementVNode","_withDirectives","_openBlock","_Fragment","_renderList","_toDisplayString","_vShow","_createVNode","_Transition"],"mappings":"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"}