/*! choices.js v11.1.0 | © 2025 Josh Johnson | https://github.com/jshjohnson/Choices#readme */ !(function (e, t) { "object" == typeof exports && "undefined" != typeof module ? (module.exports = t()) : "function" == typeof define && define.amd ? define(t) : ((e = "undefined" != typeof globalThis ? globalThis : e || self).Choices = t()); })(this, function () { "use strict"; var e = function (t, i) { return ( (e = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (e, t) { e.__proto__ = t; }) || function (e, t) { for (var i in t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); }), e(t, i) ); }; function t(t, i) { if ("function" != typeof i && null !== i) throw new TypeError( "Class extends value " + String(i) + " is not a constructor or null" ); function n() { this.constructor = t; } e(t, i), (t.prototype = null === i ? Object.create(i) : ((n.prototype = i.prototype), new n())); } var i = function () { return ( (i = Object.assign || function (e) { for (var t, i = 1, n = arguments.length; i < n; i++) for (var s in (t = arguments[i])) Object.prototype.hasOwnProperty.call(t, s) && (e[s] = t[s]); return e; }), i.apply(this, arguments) ); }; function n(e, t, i) { if (i || 2 === arguments.length) for (var n, s = 0, o = t.length; s < o; s++) (!n && s in t) || (n || (n = Array.prototype.slice.call(t, 0, s)), (n[s] = t[s])); return e.concat(n || Array.prototype.slice.call(t)); } "function" == typeof SuppressedError && SuppressedError; var s, o = "ADD_CHOICE", r = "REMOVE_CHOICE", c = "FILTER_CHOICES", a = "ACTIVATE_CHOICES", h = "CLEAR_CHOICES", l = "ADD_GROUP", u = "ADD_ITEM", d = "REMOVE_ITEM", p = "HIGHLIGHT_ITEM", f = "search", m = "removeItem", g = "highlightItem", v = ["fuseOptions", "classNames"], _ = "select-one", y = "select-multiple", b = function (e) { return { type: o, choice: e }; }, E = function (e) { return { type: u, item: e }; }, C = function (e) { return { type: d, item: e }; }, S = function (e, t) { return { type: p, item: e, highlighted: t }; }, w = function (e) { return Array.from({ length: e }, function () { return Math.floor(36 * Math.random() + 0).toString(36); }).join(""); }, I = function (e) { if ("string" != typeof e) { if (null == e) return ""; if ("object" == typeof e) { if ("raw" in e) return I(e.raw); if ("trusted" in e) return e.trusted; } return e; } return e .replace(/&/g, "&") .replace(/>/g, ">") .replace(/= 0 && !window.matchMedia( "(min-height: ".concat(e + 1, "px)") ).matches) : "top" === this.position && (i = !0), i ); }), (e.prototype.setActiveDescendant = function (e) { this.element.setAttribute("aria-activedescendant", e); }), (e.prototype.removeActiveDescendant = function () { this.element.removeAttribute("aria-activedescendant"); }), (e.prototype.open = function (e, t) { P(this.element, this.classNames.openState), this.element.setAttribute("aria-expanded", "true"), (this.isOpen = !0), this.shouldFlip(e, t) && (P(this.element, this.classNames.flippedState), (this.isFlipped = !0)); }), (e.prototype.close = function () { j(this.element, this.classNames.openState), this.element.setAttribute("aria-expanded", "false"), this.removeActiveDescendant(), (this.isOpen = !1), this.isFlipped && (j(this.element, this.classNames.flippedState), (this.isFlipped = !1)); }), (e.prototype.addFocusState = function () { P(this.element, this.classNames.focusState); }), (e.prototype.removeFocusState = function () { j(this.element, this.classNames.focusState); }), (e.prototype.enable = function () { j(this.element, this.classNames.disabledState), this.element.removeAttribute("aria-disabled"), this.type === _ && this.element.setAttribute("tabindex", "0"), (this.isDisabled = !1); }), (e.prototype.disable = function () { P(this.element, this.classNames.disabledState), this.element.setAttribute("aria-disabled", "true"), this.type === _ && this.element.setAttribute("tabindex", "-1"), (this.isDisabled = !0); }), (e.prototype.wrap = function (e) { var t = this.element, i = e.parentNode; i && (e.nextSibling ? i.insertBefore(t, e.nextSibling) : i.appendChild(t)), t.appendChild(e); }), (e.prototype.unwrap = function (e) { var t = this.element, i = t.parentNode; i && (i.insertBefore(e, t), i.removeChild(t)); }), (e.prototype.addLoadingState = function () { P(this.element, this.classNames.loadingState), this.element.setAttribute("aria-busy", "true"), (this.isLoading = !0); }), (e.prototype.removeLoadingState = function () { j(this.element, this.classNames.loadingState), this.element.removeAttribute("aria-busy"), (this.isLoading = !1); }), e ); })(), B = (function () { function e(e) { var t = e.element, i = e.type, n = e.classNames, s = e.preventPaste; (this.element = t), (this.type = i), (this.classNames = n), (this.preventPaste = s), (this.isFocussed = this.element.isEqualNode( document.activeElement )), (this.isDisabled = t.disabled), (this._onPaste = this._onPaste.bind(this)), (this._onInput = this._onInput.bind(this)), (this._onFocus = this._onFocus.bind(this)), (this._onBlur = this._onBlur.bind(this)); } return ( Object.defineProperty(e.prototype, "placeholder", { set: function (e) { this.element.placeholder = e; }, enumerable: !1, configurable: !0, }), Object.defineProperty(e.prototype, "value", { get: function () { return this.element.value; }, set: function (e) { this.element.value = e; }, enumerable: !1, configurable: !0, }), (e.prototype.addEventListeners = function () { var e = this.element; e.addEventListener("paste", this._onPaste), e.addEventListener("input", this._onInput, { passive: !0, }), e.addEventListener("focus", this._onFocus, { passive: !0, }), e.addEventListener("blur", this._onBlur, { passive: !0, }); }), (e.prototype.removeEventListeners = function () { var e = this.element; e.removeEventListener("input", this._onInput), e.removeEventListener("paste", this._onPaste), e.removeEventListener("focus", this._onFocus), e.removeEventListener("blur", this._onBlur); }), (e.prototype.enable = function () { this.element.removeAttribute("disabled"), (this.isDisabled = !1); }), (e.prototype.disable = function () { this.element.setAttribute("disabled", ""), (this.isDisabled = !0); }), (e.prototype.focus = function () { this.isFocussed || this.element.focus(); }), (e.prototype.blur = function () { this.isFocussed && this.element.blur(); }), (e.prototype.clear = function (e) { return ( void 0 === e && (e = !0), (this.element.value = ""), e && this.setWidth(), this ); }), (e.prototype.setWidth = function () { var e = this.element; (e.style.minWidth = "".concat( e.placeholder.length + 1, "ch" )), (e.style.width = "".concat(e.value.length + 1, "ch")); }), (e.prototype.setActiveDescendant = function (e) { this.element.setAttribute("aria-activedescendant", e); }), (e.prototype.removeActiveDescendant = function () { this.element.removeAttribute("aria-activedescendant"); }), (e.prototype._onInput = function () { this.type !== _ && this.setWidth(); }), (e.prototype._onPaste = function (e) { this.preventPaste && e.preventDefault(); }), (e.prototype._onFocus = function () { this.isFocussed = !0; }), (e.prototype._onBlur = function () { this.isFocussed = !1; }), e ); })(), H = (function () { function e(e) { (this.element = e.element), (this.scrollPos = this.element.scrollTop), (this.height = this.element.offsetHeight); } return ( (e.prototype.prepend = function (e) { var t = this.element.firstElementChild; t ? this.element.insertBefore(e, t) : this.element.append(e); }), (e.prototype.scrollToTop = function () { this.element.scrollTop = 0; }), (e.prototype.scrollToChildElement = function (e, t) { var i = this; if (e) { var n = t > 0 ? this.element.scrollTop + (e.offsetTop + e.offsetHeight) - (this.element.scrollTop + this.element.offsetHeight) : e.offsetTop; requestAnimationFrame(function () { i._animateScroll(n, t); }); } }), (e.prototype._scrollDown = function (e, t, i) { var n = (i - e) / t; this.element.scrollTop = e + (n > 1 ? n : 1); }), (e.prototype._scrollUp = function (e, t, i) { var n = (e - i) / t; this.element.scrollTop = e - (n > 1 ? n : 1); }), (e.prototype._animateScroll = function (e, t) { var i = this, n = this.element.scrollTop, s = !1; t > 0 ? (this._scrollDown(n, 4, e), n < e && (s = !0)) : (this._scrollUp(n, 4, e), n > e && (s = !0)), s && requestAnimationFrame(function () { i._animateScroll(e, t); }); }), e ); })(), $ = (function () { function e(e) { var t = e.classNames; (this.element = e.element), (this.classNames = t), (this.isDisabled = !1); } return ( Object.defineProperty(e.prototype, "isActive", { get: function () { return "active" === this.element.dataset.choice; }, enumerable: !1, configurable: !0, }), Object.defineProperty(e.prototype, "dir", { get: function () { return this.element.dir; }, enumerable: !1, configurable: !0, }), Object.defineProperty(e.prototype, "value", { get: function () { return this.element.value; }, set: function (e) { this.element.setAttribute("value", e), (this.element.value = e); }, enumerable: !1, configurable: !0, }), (e.prototype.conceal = function () { var e = this.element; P(e, this.classNames.input), (e.hidden = !0), (e.tabIndex = -1); var t = e.getAttribute("style"); t && e.setAttribute("data-choice-orig-style", t), e.setAttribute("data-choice", "active"); }), (e.prototype.reveal = function () { var e = this.element; j(e, this.classNames.input), (e.hidden = !1), e.removeAttribute("tabindex"); var t = e.getAttribute("data-choice-orig-style"); t ? (e.removeAttribute("data-choice-orig-style"), e.setAttribute("style", t)) : e.removeAttribute("style"), e.removeAttribute("data-choice"); }), (e.prototype.enable = function () { this.element.removeAttribute("disabled"), (this.element.disabled = !1), (this.isDisabled = !1); }), (e.prototype.disable = function () { this.element.setAttribute("disabled", ""), (this.element.disabled = !0), (this.isDisabled = !0); }), (e.prototype.triggerEvent = function (e, t) { var i; void 0 === (i = t || {}) && (i = null), this.element.dispatchEvent( new CustomEvent(e, { detail: i, bubbles: !0, cancelable: !0, }) ); }), e ); })(), q = (function (e) { function i() { return (null !== e && e.apply(this, arguments)) || this; } return t(i, e), i; })($), W = function (e, t) { return void 0 === t && (t = !0), void 0 === e ? t : !!e; }, U = function (e) { if ( ("string" == typeof e && (e = e.split(" ").filter(function (e) { return e.length; })), Array.isArray(e) && e.length) ) return e; }, G = function (e, t, i) { if ((void 0 === i && (i = !0), "string" == typeof e)) { var n = I(e); return G( { value: e, label: i || n === e ? e : { escaped: n, raw: e }, selected: !0, }, !1 ); } var s = e; if ("choices" in s) { if (!t) throw new TypeError("optGroup is not allowed"); var o = s, r = o.choices.map(function (e) { return G(e, !1); }); return { id: 0, label: L(o.label) || o.value, active: !!r.length, disabled: !!o.disabled, choices: r, }; } var c = s; return { id: 0, group: null, score: 0, rank: 0, value: c.value, label: c.label || c.value, active: W(c.active), selected: W(c.selected, !1), disabled: W(c.disabled, !1), placeholder: W(c.placeholder, !1), highlighted: !1, labelClass: U(c.labelClass), labelDescription: c.labelDescription, customProperties: c.customProperties, }; }, z = function (e) { return "SELECT" === e.tagName; }, J = (function (e) { function i(t) { var i = t.template, n = t.extractPlaceholder, s = e.call(this, { element: t.element, classNames: t.classNames, }) || this; return (s.template = i), (s.extractPlaceholder = n), s; } return ( t(i, e), Object.defineProperty(i.prototype, "placeholderOption", { get: function () { return ( this.element.querySelector('option[value=""]') || this.element.querySelector("option[placeholder]") ); }, enumerable: !1, configurable: !0, }), (i.prototype.addOptions = function (e) { var t = this, i = document.createDocumentFragment(); e.forEach(function (e) { var n = e; if (!n.element) { var s = t.template(n); i.appendChild(s), (n.element = s); } }), this.element.appendChild(i); }), (i.prototype.optionsAsChoices = function () { var e = this, t = []; return ( this.element .querySelectorAll( ":scope > option, :scope > optgroup" ) .forEach(function (i) { !(function (e) { return "OPTION" === e.tagName; })(i) ? (function (e) { return "OPTGROUP" === e.tagName; })(i) && t.push(e._optgroupToChoice(i)) : t.push(e._optionToChoice(i)); }), t ); }), (i.prototype._optionToChoice = function (e) { return ( !e.hasAttribute("value") && e.hasAttribute("placeholder") && (e.setAttribute("value", ""), (e.value = "")), { id: 0, group: null, score: 0, rank: 0, value: e.value, label: e.label, element: e, active: !0, selected: this.extractPlaceholder ? e.selected : e.hasAttribute("selected"), disabled: e.disabled, highlighted: !1, placeholder: this.extractPlaceholder && (!e.value || e.hasAttribute("placeholder")), labelClass: void 0 !== e.dataset.labelClass ? U(e.dataset.labelClass) : void 0, labelDescription: void 0 !== e.dataset.labelDescription ? e.dataset.labelDescription : void 0, customProperties: R(e.dataset.customProperties), } ); }), (i.prototype._optgroupToChoice = function (e) { var t = this, i = e.querySelectorAll("option"), n = Array.from(i).map(function (e) { return t._optionToChoice(e); }); return { id: 0, label: e.label || "", element: e, active: !!n.length, disabled: e.disabled, choices: n, }; }), i ); })($), X = { items: [], choices: [], silent: !1, renderChoiceLimit: -1, maxItemCount: -1, closeDropdownOnSelect: "auto", singleModeForMultiSelect: !1, addChoices: !1, addItems: !0, addItemFilter: function (e) { return !!e && "" !== e; }, removeItems: !0, removeItemButton: !1, removeItemButtonAlignLeft: !1, editItems: !1, allowHTML: !1, allowHtmlUserInput: !1, duplicateItemsAllowed: !0, delimiter: ",", paste: !0, searchEnabled: !0, searchChoices: !0, searchFloor: 1, searchResultLimit: 4, searchFields: ["label", "value"], position: "auto", resetScrollPosition: !0, shouldSort: !0, shouldSortItems: !1, sorter: function (e, t) { var i = e.label, n = t.label, s = void 0 === n ? t.value : n; return L(void 0 === i ? e.value : i).localeCompare(L(s), [], { sensitivity: "base", ignorePunctuation: !0, numeric: !0, }); }, shadowRoot: null, placeholder: !0, placeholderValue: null, searchPlaceholderValue: null, prependValue: null, appendValue: null, renderSelectedChoices: "auto", loadingText: "Loading...", noResultsText: "No results found", noChoicesText: "No choices to choose from", itemSelectText: "Press to select", uniqueItemText: "Only unique values can be added", customAddItemText: "Only values matching specific conditions can be added", addItemText: function (e) { return 'Press Enter to add "'.concat(e, '"'); }, removeItemIconText: function () { return "Remove item"; }, removeItemLabelText: function (e) { return "Remove item: ".concat(e); }, maxItemText: function (e) { return "Only ".concat(e, " values can be added"); }, valueComparer: function (e, t) { return e === t; }, fuseOptions: { includeScore: !0 }, labelId: "", callbackOnInit: null, callbackOnCreateTemplates: null, classNames: { containerOuter: ["choices"], containerInner: ["choices__inner"], input: ["choices__input"], inputCloned: ["choices__input--cloned"], list: ["choices__list"], listItems: ["choices__list--multiple"], listSingle: ["choices__list--single"], listDropdown: ["choices__list--dropdown"], item: ["choices__item"], itemSelectable: ["choices__item--selectable"], itemDisabled: ["choices__item--disabled"], itemChoice: ["choices__item--choice"], description: ["choices__description"], placeholder: ["choices__placeholder"], group: ["choices__group"], groupHeading: ["choices__heading"], button: ["choices__button"], activeState: ["is-active"], focusState: ["is-focused"], openState: ["is-open"], disabledState: ["is-disabled"], highlightedState: ["is-highlighted"], selectedState: ["is-selected"], flippedState: ["is-flipped"], loadingState: ["is-loading"], notice: ["choices__notice"], addChoice: ["choices__item--selectable", "add-choice"], noResults: ["has-no-results"], noChoices: ["has-no-choices"], }, appendGroupInSearch: !1, }, Q = function (e) { var t = e.itemEl; t && (t.remove(), (e.itemEl = void 0)); }, Y = { groups: function (e, t) { var i = e, n = !0; switch (t.type) { case l: i.push(t.group); break; case h: i = []; break; default: n = !1; } return { state: i, update: n }; }, items: function (e, t, i) { var n = e, s = !0; switch (t.type) { case u: (t.item.selected = !0), (o = t.item.element) && ((o.selected = !0), o.setAttribute("selected", "")), n.push(t.item); break; case d: var o; if (((t.item.selected = !1), (o = t.item.element))) { (o.selected = !1), o.removeAttribute("selected"); var c = o.parentElement; c && z(c) && c.type === _ && (c.value = ""); } Q(t.item), (n = n.filter(function (e) { return e.id !== t.item.id; })); break; case r: Q(t.choice), (n = n.filter(function (e) { return e.id !== t.choice.id; })); break; case p: var a = t.highlighted, h = n.find(function (e) { return e.id === t.item.id; }); h && h.highlighted !== a && ((h.highlighted = a), i && (function (e, t, i) { var n = e.itemEl; n && (j(n, i), P(n, t)); })( h, a ? i.classNames.highlightedState : i.classNames.selectedState, a ? i.classNames.selectedState : i.classNames.highlightedState )); break; default: s = !1; } return { state: n, update: s }; }, choices: function (e, t, i) { var n = e, s = !0; switch (t.type) { case o: n.push(t.choice); break; case r: (t.choice.choiceEl = void 0), t.choice.group && (t.choice.group.choices = t.choice.group.choices.filter(function (e) { return e.id !== t.choice.id; })), (n = n.filter(function (e) { return e.id !== t.choice.id; })); break; case u: case d: t.item.choiceEl = void 0; break; case c: var l = []; t.results.forEach(function (e) { l[e.item.id] = e; }), n.forEach(function (e) { var t = l[e.id]; void 0 !== t ? ((e.score = t.score), (e.rank = t.rank), (e.active = !0)) : ((e.score = 0), (e.rank = 0), (e.active = !1)), i && i.appendGroupInSearch && (e.choiceEl = void 0); }); break; case a: n.forEach(function (e) { (e.active = t.active), i && i.appendGroupInSearch && (e.choiceEl = void 0); }); break; case h: n = []; break; default: s = !1; } return { state: n, update: s }; }, }, Z = (function () { function e(e) { (this._state = this.defaultState), (this._listeners = []), (this._txn = 0), (this._context = e); } return ( Object.defineProperty(e.prototype, "defaultState", { get: function () { return { groups: [], items: [], choices: [] }; }, enumerable: !1, configurable: !0, }), (e.prototype.changeSet = function (e) { return { groups: e, items: e, choices: e }; }), (e.prototype.reset = function () { this._state = this.defaultState; var e = this.changeSet(!0); this._txn ? (this._changeSet = e) : this._listeners.forEach(function (t) { return t(e); }); }), (e.prototype.subscribe = function (e) { return this._listeners.push(e), this; }), (e.prototype.dispatch = function (e) { var t = this, i = this._state, n = !1, s = this._changeSet || this.changeSet(!1); Object.keys(Y).forEach(function (o) { var r = Y[o](i[o], e, t._context); r.update && ((n = !0), (s[o] = !0), (i[o] = r.state)); }), n && (this._txn ? (this._changeSet = s) : this._listeners.forEach(function (e) { return e(s); })); }), (e.prototype.withTxn = function (e) { this._txn++; try { e(); } finally { if ( ((this._txn = Math.max(0, this._txn - 1)), !this._txn) ) { var t = this._changeSet; t && ((this._changeSet = void 0), this._listeners.forEach(function (e) { return e(t); })); } } }), Object.defineProperty(e.prototype, "state", { get: function () { return this._state; }, enumerable: !1, configurable: !0, }), Object.defineProperty(e.prototype, "items", { get: function () { return this.state.items; }, enumerable: !1, configurable: !0, }), Object.defineProperty(e.prototype, "highlightedActiveItems", { get: function () { return this.items.filter(function (e) { return e.active && e.highlighted; }); }, enumerable: !1, configurable: !0, }), Object.defineProperty(e.prototype, "choices", { get: function () { return this.state.choices; }, enumerable: !1, configurable: !0, }), Object.defineProperty(e.prototype, "activeChoices", { get: function () { return this.choices.filter(function (e) { return e.active; }); }, enumerable: !1, configurable: !0, }), Object.defineProperty(e.prototype, "searchableChoices", { get: function () { return this.choices.filter(function (e) { return !e.disabled && !e.placeholder; }); }, enumerable: !1, configurable: !0, }), Object.defineProperty(e.prototype, "groups", { get: function () { return this.state.groups; }, enumerable: !1, configurable: !0, }), Object.defineProperty(e.prototype, "activeGroups", { get: function () { var e = this; return this.state.groups.filter(function (t) { var i = t.active && !t.disabled, n = e.state.choices.some(function (e) { return e.active && !e.disabled; }); return i && n; }, []); }, enumerable: !1, configurable: !0, }), (e.prototype.inTxn = function () { return this._txn > 0; }), (e.prototype.getChoiceById = function (e) { return this.activeChoices.find(function (t) { return t.id === e; }); }), (e.prototype.getGroupById = function (e) { return this.groups.find(function (t) { return t.id === e; }); }), e ); })(), ee = "no-choices", te = "no-results", ie = "add-choice"; function ne(e, t, i) { return ( (t = (function (e) { var t = (function (e) { if ("object" != typeof e || !e) return e; var t = e[Symbol.toPrimitive]; if (void 0 !== t) { var i = t.call(e, "string"); if ("object" != typeof i) return i; throw new TypeError( "@@toPrimitive must return a primitive value." ); } return String(e); })(e); return "symbol" == typeof t ? t : t + ""; })(t)) in e ? Object.defineProperty(e, t, { value: i, enumerable: !0, configurable: !0, writable: !0, }) : (e[t] = i), e ); } function se(e, t) { var i = Object.keys(e); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); t && (n = n.filter(function (t) { return Object.getOwnPropertyDescriptor(e, t).enumerable; })), i.push.apply(i, n); } return i; } function oe(e) { for (var t = 1; t < arguments.length; t++) { var i = null != arguments[t] ? arguments[t] : {}; t % 2 ? se(Object(i), !0).forEach(function (t) { ne(e, t, i[t]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties( e, Object.getOwnPropertyDescriptors(i) ) : se(Object(i)).forEach(function (t) { Object.defineProperty( e, t, Object.getOwnPropertyDescriptor(i, t) ); }); } return e; } function re(e) { return Array.isArray ? Array.isArray(e) : "[object Array]" === de(e); } function ce(e) { return "string" == typeof e; } function ae(e) { return "number" == typeof e; } function he(e) { return "object" == typeof e; } function le(e) { return null != e; } function ue(e) { return !e.trim().length; } function de(e) { return null == e ? void 0 === e ? "[object Undefined]" : "[object Null]" : Object.prototype.toString.call(e); } const pe = (e) => `Missing ${e} property in key`, fe = (e) => `Property 'weight' in key '${e}' must be a positive integer`, me = Object.prototype.hasOwnProperty; class ge { constructor(e) { (this._keys = []), (this._keyMap = {}); let t = 0; e.forEach((e) => { let i = ve(e); this._keys.push(i), (this._keyMap[i.id] = i), (t += i.weight); }), this._keys.forEach((e) => { e.weight /= t; }); } get(e) { return this._keyMap[e]; } keys() { return this._keys; } toJSON() { return JSON.stringify(this._keys); } } function ve(e) { let t = null, i = null, n = null, s = 1, o = null; if (ce(e) || re(e)) (n = e), (t = _e(e)), (i = ye(e)); else { if (!me.call(e, "name")) throw new Error(pe("name")); const r = e.name; if (((n = r), me.call(e, "weight") && ((s = e.weight), s <= 0))) throw new Error(fe(r)); (t = _e(r)), (i = ye(r)), (o = e.getFn); } return { path: t, id: i, weight: s, src: n, getFn: o }; } function _e(e) { return re(e) ? e : e.split("."); } function ye(e) { return re(e) ? e.join(".") : e; } const be = { useExtendedSearch: !1, getFn: function (e, t) { let i = [], n = !1; const s = (e, t, o) => { if (le(e)) if (t[o]) { const r = e[t[o]]; if (!le(r)) return; if ( o === t.length - 1 && (ce(r) || ae(r) || (function (e) { return ( !0 === e || !1 === e || ((function (e) { return he(e) && null !== e; })(e) && "[object Boolean]" == de(e)) ); })(r)) ) i.push( (function (e) { return null == e ? "" : (function (e) { if ("string" == typeof e) return e; let t = e + ""; return "0" == t && 1 / e == -1 / 0 ? "-0" : t; })(e); })(r) ); else if (re(r)) { n = !0; for (let e = 0, i = r.length; e < i; e += 1) s(r[e], t, o + 1); } else t.length && s(r, t, o + 1); } else i.push(e); }; return s(e, ce(t) ? t.split(".") : t, 0), n ? i : i[0]; }, ignoreLocation: !1, ignoreFieldNorm: !1, fieldNormWeight: 1, }; var Ee = oe( oe( oe( oe( {}, { isCaseSensitive: !1, includeScore: !1, keys: [], shouldSort: !0, sortFn: (e, t) => e.score === t.score ? e.idx < t.idx ? -1 : 1 : e.score < t.score ? -1 : 1, } ), { includeMatches: !1, findAllMatches: !1, minMatchCharLength: 1, } ), { location: 0, threshold: 0.6, distance: 100 } ), be ); const Ce = /[^ ]+/g; class Se { constructor({ getFn: e = Ee.getFn, fieldNormWeight: t = Ee.fieldNormWeight, } = {}) { (this.norm = (function (e = 1, t = 3) { const i = new Map(), n = Math.pow(10, t); return { get(t) { const s = t.match(Ce).length; if (i.has(s)) return i.get(s); const o = 1 / Math.pow(s, 0.5 * e), r = parseFloat(Math.round(o * n) / n); return i.set(s, r), r; }, clear() { i.clear(); }, }; })(t, 3)), (this.getFn = e), (this.isCreated = !1), this.setIndexRecords(); } setSources(e = []) { this.docs = e; } setIndexRecords(e = []) { this.records = e; } setKeys(e = []) { (this.keys = e), (this._keysMap = {}), e.forEach((e, t) => { this._keysMap[e.id] = t; }); } create() { !this.isCreated && this.docs.length && ((this.isCreated = !0), ce(this.docs[0]) ? this.docs.forEach((e, t) => { this._addString(e, t); }) : this.docs.forEach((e, t) => { this._addObject(e, t); }), this.norm.clear()); } add(e) { const t = this.size(); ce(e) ? this._addString(e, t) : this._addObject(e, t); } removeAt(e) { this.records.splice(e, 1); for (let t = e, i = this.size(); t < i; t += 1) this.records[t].i -= 1; } getValueForItemAtKeyId(e, t) { return e[this._keysMap[t]]; } size() { return this.records.length; } _addString(e, t) { if (!le(e) || ue(e)) return; let i = { v: e, i: t, n: this.norm.get(e) }; this.records.push(i); } _addObject(e, t) { let i = { i: t, $: {} }; this.keys.forEach((t, n) => { let s = t.getFn ? t.getFn(e) : this.getFn(e, t.path); if (le(s)) if (re(s)) { let e = []; const t = [{ nestedArrIndex: -1, value: s }]; for (; t.length; ) { const { nestedArrIndex: i, value: n } = t.pop(); if (le(n)) if (ce(n) && !ue(n)) { let t = { v: n, i: i, n: this.norm.get(n) }; e.push(t); } else re(n) && n.forEach((e, i) => { t.push({ nestedArrIndex: i, value: e, }); }); } i.$[n] = e; } else if (ce(s) && !ue(s)) { let e = { v: s, n: this.norm.get(s) }; i.$[n] = e; } }), this.records.push(i); } toJSON() { return { keys: this.keys, records: this.records }; } } function we( e, t, { getFn: i = Ee.getFn, fieldNormWeight: n = Ee.fieldNormWeight } = {} ) { const s = new Se({ getFn: i, fieldNormWeight: n }); return s.setKeys(e.map(ve)), s.setSources(t), s.create(), s; } function Ie( e, { errors: t = 0, currentLocation: i = 0, expectedLocation: n = 0, distance: s = Ee.distance, ignoreLocation: o = Ee.ignoreLocation, } = {} ) { const r = t / e.length; if (o) return r; const c = Math.abs(n - i); return s ? r + c / s : c ? 1 : r; } const Ae = 32; function xe(e) { let t = {}; for (let i = 0, n = e.length; i < n; i += 1) { const s = e.charAt(i); t[s] = (t[s] || 0) | (1 << (n - i - 1)); } return t; } class Oe { constructor( e, { location: t = Ee.location, threshold: i = Ee.threshold, distance: n = Ee.distance, includeMatches: s = Ee.includeMatches, findAllMatches: o = Ee.findAllMatches, minMatchCharLength: r = Ee.minMatchCharLength, isCaseSensitive: c = Ee.isCaseSensitive, ignoreLocation: a = Ee.ignoreLocation, } = {} ) { if ( ((this.options = { location: t, threshold: i, distance: n, includeMatches: s, findAllMatches: o, minMatchCharLength: r, isCaseSensitive: c, ignoreLocation: a, }), (this.pattern = c ? e : e.toLowerCase()), (this.chunks = []), !this.pattern.length) ) return; const h = (e, t) => { this.chunks.push({ pattern: e, alphabet: xe(e), startIndex: t, }); }, l = this.pattern.length; if (l > Ae) { let e = 0; const t = l % Ae, i = l - t; for (; e < i; ) h(this.pattern.substr(e, Ae), e), (e += Ae); if (t) { const e = l - Ae; h(this.pattern.substr(e), e); } } else h(this.pattern, 0); } searchIn(e) { const { isCaseSensitive: t, includeMatches: i } = this.options; if ((t || (e = e.toLowerCase()), this.pattern === e)) { let t = { isMatch: !0, score: 0 }; return i && (t.indices = [[0, e.length - 1]]), t; } const { location: n, distance: s, threshold: o, findAllMatches: r, minMatchCharLength: c, ignoreLocation: a, } = this.options; let h = [], l = 0, u = !1; this.chunks.forEach( ({ pattern: t, alphabet: d, startIndex: p }) => { const { isMatch: f, score: m, indices: g, } = (function ( e, t, i, { location: n = Ee.location, distance: s = Ee.distance, threshold: o = Ee.threshold, findAllMatches: r = Ee.findAllMatches, minMatchCharLength: c = Ee.minMatchCharLength, includeMatches: a = Ee.includeMatches, ignoreLocation: h = Ee.ignoreLocation, } = {} ) { if (t.length > Ae) throw new Error( "Pattern length exceeds max of 32." ); const l = t.length, u = e.length, d = Math.max(0, Math.min(n, u)); let p = o, f = d; const m = c > 1 || a, g = m ? Array(u) : []; let v; for (; (v = e.indexOf(t, f)) > -1; ) { let e = Ie(t, { currentLocation: v, expectedLocation: d, distance: s, ignoreLocation: h, }); if (((p = Math.min(e, p)), (f = v + l), m)) { let e = 0; for (; e < l; ) (g[v + e] = 1), (e += 1); } } f = -1; let _ = [], y = 1, b = l + u; const E = 1 << (l - 1); for (let n = 0; n < l; n += 1) { let o = 0, c = b; for (; o < c; ) Ie(t, { errors: n, currentLocation: d + c, expectedLocation: d, distance: s, ignoreLocation: h, }) <= p ? (o = c) : (b = c), (c = Math.floor((b - o) / 2 + o)); b = c; let a = Math.max(1, d - c + 1), v = r ? u : Math.min(d + c, u) + l, C = Array(v + 2); C[v + 1] = (1 << n) - 1; for (let o = v; o >= a; o -= 1) { let r = o - 1, c = i[e.charAt(r)]; if ( (m && (g[r] = +!!c), (C[o] = ((C[o + 1] << 1) | 1) & c), n && (C[o] |= ((_[o + 1] | _[o]) << 1) | 1 | _[o + 1]), C[o] & E && ((y = Ie(t, { errors: n, currentLocation: r, expectedLocation: d, distance: s, ignoreLocation: h, })), y <= p)) ) { if (((p = y), (f = r), f <= d)) break; a = Math.max(1, 2 * d - f); } } if ( Ie(t, { errors: n + 1, currentLocation: d, expectedLocation: d, distance: s, ignoreLocation: h, }) > p ) break; _ = C; } const C = { isMatch: f >= 0, score: Math.max(0.001, y), }; if (m) { const e = (function ( e = [], t = Ee.minMatchCharLength ) { let i = [], n = -1, s = -1, o = 0; for (let r = e.length; o < r; o += 1) { let r = e[o]; r && -1 === n ? (n = o) : r || -1 === n || ((s = o - 1), s - n + 1 >= t && i.push([n, s]), (n = -1)); } return ( e[o - 1] && o - n >= t && i.push([n, o - 1]), i ); })(g, c); e.length ? a && (C.indices = e) : (C.isMatch = !1); } return C; })(e, t, d, { location: n + p, distance: s, threshold: o, findAllMatches: r, minMatchCharLength: c, includeMatches: i, ignoreLocation: a, }); f && (u = !0), (l += m), f && g && (h = [...h, ...g]); } ); let d = { isMatch: u, score: u ? l / this.chunks.length : 1 }; return u && i && (d.indices = h), d; } } class Le { constructor(e) { this.pattern = e; } static isMultiMatch(e) { return Me(e, this.multiRegex); } static isSingleMatch(e) { return Me(e, this.singleRegex); } search() {} } function Me(e, t) { const i = e.match(t); return i ? i[1] : null; } class Te extends Le { constructor( e, { location: t = Ee.location, threshold: i = Ee.threshold, distance: n = Ee.distance, includeMatches: s = Ee.includeMatches, findAllMatches: o = Ee.findAllMatches, minMatchCharLength: r = Ee.minMatchCharLength, isCaseSensitive: c = Ee.isCaseSensitive, ignoreLocation: a = Ee.ignoreLocation, } = {} ) { super(e), (this._bitapSearch = new Oe(e, { location: t, threshold: i, distance: n, includeMatches: s, findAllMatches: o, minMatchCharLength: r, isCaseSensitive: c, ignoreLocation: a, })); } static get type() { return "fuzzy"; } static get multiRegex() { return /^"(.*)"$/; } static get singleRegex() { return /^(.*)$/; } search(e) { return this._bitapSearch.searchIn(e); } } class Ne extends Le { constructor(e) { super(e); } static get type() { return "include"; } static get multiRegex() { return /^'"(.*)"$/; } static get singleRegex() { return /^'(.*)$/; } search(e) { let t, i = 0; const n = [], s = this.pattern.length; for (; (t = e.indexOf(this.pattern, i)) > -1; ) (i = t + s), n.push([t, i - 1]); const o = !!n.length; return { isMatch: o, score: o ? 0 : 1, indices: n }; } } const ke = [ class extends Le { constructor(e) { super(e); } static get type() { return "exact"; } static get multiRegex() { return /^="(.*)"$/; } static get singleRegex() { return /^=(.*)$/; } search(e) { const t = e === this.pattern; return { isMatch: t, score: t ? 0 : 1, indices: [0, this.pattern.length - 1], }; } }, Ne, class extends Le { constructor(e) { super(e); } static get type() { return "prefix-exact"; } static get multiRegex() { return /^\^"(.*)"$/; } static get singleRegex() { return /^\^(.*)$/; } search(e) { const t = e.startsWith(this.pattern); return { isMatch: t, score: t ? 0 : 1, indices: [0, this.pattern.length - 1], }; } }, class extends Le { constructor(e) { super(e); } static get type() { return "inverse-prefix-exact"; } static get multiRegex() { return /^!\^"(.*)"$/; } static get singleRegex() { return /^!\^(.*)$/; } search(e) { const t = !e.startsWith(this.pattern); return { isMatch: t, score: t ? 0 : 1, indices: [0, e.length - 1], }; } }, class extends Le { constructor(e) { super(e); } static get type() { return "inverse-suffix-exact"; } static get multiRegex() { return /^!"(.*)"\$$/; } static get singleRegex() { return /^!(.*)\$$/; } search(e) { const t = !e.endsWith(this.pattern); return { isMatch: t, score: t ? 0 : 1, indices: [0, e.length - 1], }; } }, class extends Le { constructor(e) { super(e); } static get type() { return "suffix-exact"; } static get multiRegex() { return /^"(.*)"\$$/; } static get singleRegex() { return /^(.*)\$$/; } search(e) { const t = e.endsWith(this.pattern); return { isMatch: t, score: t ? 0 : 1, indices: [e.length - this.pattern.length, e.length - 1], }; } }, class extends Le { constructor(e) { super(e); } static get type() { return "inverse-exact"; } static get multiRegex() { return /^!"(.*)"$/; } static get singleRegex() { return /^!(.*)$/; } search(e) { const t = -1 === e.indexOf(this.pattern); return { isMatch: t, score: t ? 0 : 1, indices: [0, e.length - 1], }; } }, Te, ], Fe = ke.length, De = / +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/, Pe = new Set([Te.type, Ne.type]); const je = []; function Re(e, t) { for (let i = 0, n = je.length; i < n; i += 1) { let n = je[i]; if (n.condition(e, t)) return new n(e, t); } return new Oe(e, t); } const Ke = "$and", Ve = "$path", Be = (e) => !(!e[Ke] && !e.$or), He = (e) => ({ [Ke]: Object.keys(e).map((t) => ({ [t]: e[t] })) }); function $e(e, t, { auto: i = !0 } = {}) { const n = (e) => { let s = Object.keys(e); const o = ((e) => !!e[Ve])(e); if (!o && s.length > 1 && !Be(e)) return n(He(e)); if (((e) => !re(e) && he(e) && !Be(e))(e)) { const n = o ? e[Ve] : s[0], r = o ? e.$val : e[n]; if (!ce(r)) throw new Error(((e) => `Invalid value for key ${e}`)(n)); const c = { keyId: ye(n), pattern: r }; return i && (c.searcher = Re(r, t)), c; } let r = { children: [], operator: s[0] }; return ( s.forEach((t) => { const i = e[t]; re(i) && i.forEach((e) => { r.children.push(n(e)); }); }), r ); }; return Be(e) || (e = He(e)), n(e); } function qe(e, t) { const i = e.matches; (t.matches = []), le(i) && i.forEach((e) => { if (!le(e.indices) || !e.indices.length) return; const { indices: i, value: n } = e; let s = { indices: i, value: n }; e.key && (s.key = e.key.src), e.idx > -1 && (s.refIndex = e.idx), t.matches.push(s); }); } function We(e, t) { t.score = e.score; } class Ue { constructor(e, t = {}, i) { (this.options = oe(oe({}, Ee), t)), (this._keyStore = new ge(this.options.keys)), this.setCollection(e, i); } setCollection(e, t) { if (((this._docs = e), t && !(t instanceof Se))) throw new Error("Incorrect 'index' type"); this._myIndex = t || we(this.options.keys, this._docs, { getFn: this.options.getFn, fieldNormWeight: this.options.fieldNormWeight, }); } add(e) { le(e) && (this._docs.push(e), this._myIndex.add(e)); } remove(e = () => !1) { const t = []; for (let i = 0, n = this._docs.length; i < n; i += 1) { const s = this._docs[i]; e(s, i) && (this.removeAt(i), (i -= 1), (n -= 1), t.push(s)); } return t; } removeAt(e) { this._docs.splice(e, 1), this._myIndex.removeAt(e); } getIndex() { return this._myIndex; } search(e, { limit: t = -1 } = {}) { const { includeMatches: i, includeScore: n, shouldSort: s, sortFn: o, ignoreFieldNorm: r, } = this.options; let c = ce(e) ? ce(this._docs[0]) ? this._searchStringList(e) : this._searchObjectList(e) : this._searchLogical(e); return ( (function (e, { ignoreFieldNorm: t = Ee.ignoreFieldNorm }) { e.forEach((e) => { let i = 1; e.matches.forEach(({ key: e, norm: n, score: s }) => { const o = e ? e.weight : null; i *= Math.pow( 0 === s && o ? Number.EPSILON : s, (o || 1) * (t ? 1 : n) ); }), (e.score = i); }); })(c, { ignoreFieldNorm: r }), s && c.sort(o), ae(t) && t > -1 && (c = c.slice(0, t)), (function ( e, t, { includeMatches: i = Ee.includeMatches, includeScore: n = Ee.includeScore, } = {} ) { const s = []; return ( i && s.push(qe), n && s.push(We), e.map((e) => { const { idx: i } = e, n = { item: t[i], refIndex: i }; return ( s.length && s.forEach((t) => { t(e, n); }), n ); }) ); })(c, this._docs, { includeMatches: i, includeScore: n }) ); } _searchStringList(e) { const t = Re(e, this.options), { records: i } = this._myIndex, n = []; return ( i.forEach(({ v: e, i: i, n: s }) => { if (!le(e)) return; const { isMatch: o, score: r, indices: c } = t.searchIn(e); o && n.push({ item: e, idx: i, matches: [ { score: r, value: e, norm: s, indices: c }, ], }); }), n ); } _searchLogical(e) { const t = $e(e, this.options), i = (e, t, n) => { if (!e.children) { const { keyId: i, searcher: s } = e, o = this._findMatches({ key: this._keyStore.get(i), value: this._myIndex.getValueForItemAtKeyId( t, i ), searcher: s, }); return o && o.length ? [{ idx: n, item: t, matches: o }] : []; } const s = []; for (let o = 0, r = e.children.length; o < r; o += 1) { const r = i(e.children[o], t, n); if (r.length) s.push(...r); else if (e.operator === Ke) return []; } return s; }, n = {}, s = []; return ( this._myIndex.records.forEach(({ $: e, i: o }) => { if (le(e)) { let r = i(t, e, o); r.length && (n[o] || ((n[o] = { idx: o, item: e, matches: [] }), s.push(n[o])), r.forEach(({ matches: e }) => { n[o].matches.push(...e); })); } }), s ); } _searchObjectList(e) { const t = Re(e, this.options), { keys: i, records: n } = this._myIndex, s = []; return ( n.forEach(({ $: e, i: n }) => { if (!le(e)) return; let o = []; i.forEach((i, n) => { o.push( ...this._findMatches({ key: i, value: e[n], searcher: t, }) ); }), o.length && s.push({ idx: n, item: e, matches: o }); }), s ); } _findMatches({ key: e, value: t, searcher: i }) { if (!le(t)) return []; let n = []; if (re(t)) t.forEach(({ v: t, i: s, n: o }) => { if (!le(t)) return; const { isMatch: r, score: c, indices: a } = i.searchIn(t); r && n.push({ score: c, key: e, value: t, idx: s, norm: o, indices: a, }); }); else { const { v: s, n: o } = t, { isMatch: r, score: c, indices: a } = i.searchIn(s); r && n.push({ score: c, key: e, value: s, norm: o, indices: a }); } return n; } } (Ue.version = "7.0.0"), (Ue.createIndex = we), (Ue.parseIndex = function ( e, { getFn: t = Ee.getFn, fieldNormWeight: i = Ee.fieldNormWeight, } = {} ) { const { keys: n, records: s } = e, o = new Se({ getFn: t, fieldNormWeight: i }); return o.setKeys(n), o.setIndexRecords(s), o; }), (Ue.config = Ee), (Ue.parseQuery = $e), (function (...e) { je.push(...e); })( class { constructor( e, { isCaseSensitive: t = Ee.isCaseSensitive, includeMatches: i = Ee.includeMatches, minMatchCharLength: n = Ee.minMatchCharLength, ignoreLocation: s = Ee.ignoreLocation, findAllMatches: o = Ee.findAllMatches, location: r = Ee.location, threshold: c = Ee.threshold, distance: a = Ee.distance, } = {} ) { (this.query = null), (this.options = { isCaseSensitive: t, includeMatches: i, minMatchCharLength: n, findAllMatches: o, ignoreLocation: s, location: r, threshold: c, distance: a, }), (this.pattern = t ? e : e.toLowerCase()), (this.query = (function (e, t = {}) { return e.split("|").map((e) => { let i = e .trim() .split(De) .filter((e) => e && !!e.trim()), n = []; for (let e = 0, s = i.length; e < s; e += 1) { const s = i[e]; let o = !1, r = -1; for (; !o && ++r < Fe; ) { const e = ke[r]; let i = e.isMultiMatch(s); i && (n.push(new e(i, t)), (o = !0)); } if (!o) for (r = -1; ++r < Fe; ) { const e = ke[r]; let i = e.isSingleMatch(s); if (i) { n.push(new e(i, t)); break; } } } return n; }); })(this.pattern, this.options)); } static condition(e, t) { return t.useExtendedSearch; } searchIn(e) { const t = this.query; if (!t) return { isMatch: !1, score: 1 }; const { includeMatches: i, isCaseSensitive: n } = this.options; e = n ? e : e.toLowerCase(); let s = 0, o = [], r = 0; for (let n = 0, c = t.length; n < c; n += 1) { const c = t[n]; (o.length = 0), (s = 0); for (let t = 0, n = c.length; t < n; t += 1) { const n = c[t], { isMatch: a, indices: h, score: l, } = n.search(e); if (!a) { (r = 0), (s = 0), (o.length = 0); break; } (s += 1), (r += l), i && (Pe.has(n.constructor.type) ? (o = [...o, ...h]) : o.push(h)); } if (s) { let e = { isMatch: !0, score: r / s }; return i && (e.indices = o), e; } } return { isMatch: !1, score: 1 }; } } ); var Ge = (function () { function e(e) { (this._haystack = []), (this._fuseOptions = i(i({}, e.fuseOptions), { keys: n([], e.searchFields, !0), includeMatches: !0, })); } return ( (e.prototype.index = function (e) { (this._haystack = e), this._fuse && this._fuse.setCollection(e); }), (e.prototype.reset = function () { (this._haystack = []), (this._fuse = void 0); }), (e.prototype.isEmptyIndex = function () { return !this._haystack.length; }), (e.prototype.search = function (e) { return ( this._fuse || (this._fuse = new Ue( this._haystack, this._fuseOptions )), this._fuse.search(e).map(function (e, t) { return { item: e.item, score: e.score || 0, rank: t + 1, }; }) ); }), e ); })(), ze = function (e, t, i) { var n = e.dataset, s = t.customProperties, o = t.labelClass, r = t.labelDescription; o && (n.labelClass = F(o).join(" ")), r && (n.labelDescription = r), i && s && ("string" == typeof s ? (n.customProperties = s) : "object" != typeof s || (function (e) { for (var t in e) if ( Object.prototype.hasOwnProperty.call(e, t) ) return !1; return !0; })(s) || (n.customProperties = JSON.stringify(s))); }, Je = function (e, t, i) { var n = t && e.querySelector("label[for='".concat(t, "']")), s = n && n.innerText; s && i.setAttribute("aria-label", s); }, Xe = { containerOuter: function (e, t, i, n, s, o, r) { var c = e.classNames.containerOuter, a = document.createElement("div"); return ( P(a, c), (a.dataset.type = o), t && (a.dir = t), n && (a.tabIndex = 0), i && (a.setAttribute("role", s ? "combobox" : "listbox"), s ? a.setAttribute("aria-autocomplete", "list") : r || Je( this._docRoot, this.passedElement.element.id, a ), a.setAttribute("aria-haspopup", "true"), a.setAttribute("aria-expanded", "false")), r && a.setAttribute("aria-labelledby", r), a ); }, containerInner: function (e) { var t = e.classNames.containerInner, i = document.createElement("div"); return P(i, t), i; }, itemList: function (e, t) { var i = e.searchEnabled, n = e.classNames, s = n.list, o = n.listSingle, r = n.listItems, c = document.createElement("div"); return ( P(c, s), P(c, t ? o : r), this._isSelectElement && i && c.setAttribute("role", "listbox"), c ); }, placeholder: function (e, t) { var i = e.allowHTML, n = e.classNames.placeholder, s = document.createElement("div"); return P(s, n), N(s, i, t), s; }, item: function (e, t, i) { var n = e.allowHTML, s = e.removeItemButtonAlignLeft, o = e.removeItemIconText, r = e.removeItemLabelText, c = e.classNames, a = c.item, h = c.button, l = c.highlightedState, u = c.itemSelectable, d = c.placeholder, p = L(t.value), f = document.createElement("div"); if ((P(f, a), t.labelClass)) { var m = document.createElement("span"); N(m, n, t.label), P(m, t.labelClass), f.appendChild(m); } else N(f, n, t.label); if ( ((f.dataset.item = ""), (f.dataset.id = t.id), (f.dataset.value = p), ze(f, t, !0), (t.disabled || this.containerOuter.isDisabled) && f.setAttribute("aria-disabled", "true"), this._isSelectElement && (f.setAttribute("aria-selected", "true"), f.setAttribute("role", "option")), t.placeholder && (P(f, d), (f.dataset.placeholder = "")), P(f, t.highlighted ? l : u), i) ) { t.disabled && j(f, u), (f.dataset.deletable = ""); var g = document.createElement("button"); (g.type = "button"), P(g, h), N(g, !0, x(o, t.value)); var v = x(r, t.value); v && g.setAttribute("aria-label", v), (g.dataset.button = ""), s ? f.insertAdjacentElement("afterbegin", g) : f.appendChild(g); } return f; }, choiceList: function (e, t) { var i = e.classNames.list, n = document.createElement("div"); return ( P(n, i), t || n.setAttribute("aria-multiselectable", "true"), n.setAttribute("role", "listbox"), n ); }, choiceGroup: function (e, t) { var i = e.allowHTML, n = e.classNames, s = n.group, o = n.groupHeading, r = n.itemDisabled, c = t.id, a = t.label, h = t.disabled, l = L(a), u = document.createElement("div"); P(u, s), h && P(u, r), u.setAttribute("role", "group"), (u.dataset.group = ""), (u.dataset.id = c), (u.dataset.value = l), h && u.setAttribute("aria-disabled", "true"); var d = document.createElement("div"); return P(d, o), N(d, i, a || ""), u.appendChild(d), u; }, choice: function (e, t, i, n) { var s = e.allowHTML, o = e.classNames, r = o.item, c = o.itemChoice, a = o.itemSelectable, h = o.selectedState, l = o.itemDisabled, u = o.description, d = o.placeholder, p = t.label, f = L(t.value), m = document.createElement("div"); (m.id = t.elementId), P(m, r), P(m, c), n && "string" == typeof p && ((p = T(s, p)), (p = { trusted: (p += " (".concat(n, ")")) })); var g = m; if (t.labelClass) { var v = document.createElement("span"); N(v, s, p), P(v, t.labelClass), (g = v), m.appendChild(v); } else N(m, s, p); if (t.labelDescription) { var _ = "".concat(t.elementId, "-description"); g.setAttribute("aria-describedby", _); var y = document.createElement("span"); N(y, s, t.labelDescription), (y.id = _), P(y, u), m.appendChild(y); } return ( t.selected && P(m, h), t.placeholder && P(m, d), m.setAttribute("role", t.group ? "treeitem" : "option"), (m.dataset.choice = ""), (m.dataset.id = t.id), (m.dataset.value = f), i && (m.dataset.selectText = i), t.group && (m.dataset.groupId = "".concat(t.group.id)), ze(m, t, !1), t.disabled ? (P(m, l), (m.dataset.choiceDisabled = ""), m.setAttribute("aria-disabled", "true")) : (P(m, a), (m.dataset.choiceSelectable = "")), m ); }, input: function (e, t) { var i = e.classNames, n = i.input, s = i.inputCloned, o = e.labelId, r = document.createElement("input"); return ( (r.type = "search"), P(r, n), P(r, s), (r.autocomplete = "off"), (r.autocapitalize = "off"), (r.spellcheck = !1), r.setAttribute("aria-autocomplete", "list"), t ? r.setAttribute("aria-label", t) : o || Je(this._docRoot, this.passedElement.element.id, r), r ); }, dropdown: function (e) { var t = e.classNames, i = t.list, n = t.listDropdown, s = document.createElement("div"); return ( P(s, i), P(s, n), s.setAttribute("aria-expanded", "false"), s ); }, notice: function (e, t, i) { var n = e.classNames, s = n.item, o = n.itemChoice, r = n.addChoice, c = n.noResults, a = n.noChoices, h = n.notice; void 0 === i && (i = ""); var l = document.createElement("div"); switch ((N(l, !0, t), P(l, s), P(l, o), P(l, h), i)) { case ie: P(l, r); break; case te: P(l, c); break; case ee: P(l, a); } return ( i === ie && ((l.dataset.choiceSelectable = ""), (l.dataset.choice = "")), l ); }, option: function (e) { var t = L(e.label), i = new Option(t, e.value, !1, e.selected); return ( ze(i, e, !0), (i.disabled = e.disabled), e.selected && i.setAttribute("selected", ""), i ); }, }, Qe = "-ms-scroll-limit" in document.documentElement.style && "-ms-ime-align" in document.documentElement.style, Ye = {}, Ze = function (e) { if (e) return e.dataset.id ? parseInt(e.dataset.id, 10) : void 0; }, et = "[data-choice-selectable]"; return (function () { function e(t, n) { void 0 === t && (t = "[data-choice]"), void 0 === n && (n = {}); var s = this; (this.initialisedOK = void 0), (this._hasNonChoicePlaceholder = !1), (this._lastAddedChoiceId = 0), (this._lastAddedGroupId = 0); var o = e.defaults; (this.config = i(i(i({}, o.allOptions), o.options), n)), v.forEach(function (e) { s.config[e] = i( i(i({}, o.allOptions[e]), o.options[e]), n[e] ); }); var r = this.config; r.silent || this._validateConfig(); var c = r.shadowRoot || document.documentElement; this._docRoot = c; var a = "string" == typeof t ? c.querySelector(t) : t; if ( !a || "object" != typeof a || ("INPUT" !== a.tagName && !z(a)) ) { if (!a && "string" == typeof t) throw TypeError( "Selector ".concat(t, " failed to find an element") ); throw TypeError( "Expected one of the following types text|select-one|select-multiple" ); } var h = a.type, l = "text" === h; (l || 1 !== r.maxItemCount) && (r.singleModeForMultiSelect = !1), r.singleModeForMultiSelect && (h = y); var u = h === _, d = h === y, p = u || d; if ( ((this._elementType = h), (this._isTextElement = l), (this._isSelectOneElement = u), (this._isSelectMultipleElement = d), (this._isSelectElement = u || d), (this._canAddUserChoices = (l && r.addItems) || (p && r.addChoices)), "boolean" != typeof r.renderSelectedChoices && (r.renderSelectedChoices = "always" === r.renderSelectedChoices || u), (r.closeDropdownOnSelect = "auto" === r.closeDropdownOnSelect ? l || u || r.singleModeForMultiSelect : W(r.closeDropdownOnSelect)), r.placeholder && (r.placeholderValue ? (this._hasNonChoicePlaceholder = !0) : a.dataset.placeholder && ((this._hasNonChoicePlaceholder = !0), (r.placeholderValue = a.dataset.placeholder))), n.addItemFilter && "function" != typeof n.addItemFilter) ) { var f = n.addItemFilter instanceof RegExp ? n.addItemFilter : new RegExp(n.addItemFilter); r.addItemFilter = f.test.bind(f); } if ( ((this.passedElement = this._isTextElement ? new q({ element: a, classNames: r.classNames }) : new J({ element: a, classNames: r.classNames, template: function (e) { return s._templates.option(e); }, extractPlaceholder: r.placeholder && !this._hasNonChoicePlaceholder, })), (this.initialised = !1), (this._store = new Z(r)), (this._currentValue = ""), (r.searchEnabled = (!l && r.searchEnabled) || d), (this._canSearch = r.searchEnabled), (this._isScrollingOnIe = !1), (this._highlightPosition = 0), (this._wasTap = !0), (this._placeholderValue = this._generatePlaceholderValue()), (this._baseId = (function (e) { var t = e.id || (e.name && "".concat(e.name, "-").concat(w(2))) || w(4); return ( (t = t.replace(/(:|\.|\[|\]|,)/g, "")), "".concat("choices-", "-").concat(t) ); })(a)), (this._direction = a.dir), !this._direction) ) { var m = window.getComputedStyle(a).direction; m !== window.getComputedStyle(document.documentElement) .direction && (this._direction = m); } if ( ((this._idNames = { itemChoice: "item-choice" }), (this._templates = o.templates), (this._render = this._render.bind(this)), (this._onFocus = this._onFocus.bind(this)), (this._onBlur = this._onBlur.bind(this)), (this._onKeyUp = this._onKeyUp.bind(this)), (this._onKeyDown = this._onKeyDown.bind(this)), (this._onInput = this._onInput.bind(this)), (this._onClick = this._onClick.bind(this)), (this._onTouchMove = this._onTouchMove.bind(this)), (this._onTouchEnd = this._onTouchEnd.bind(this)), (this._onMouseDown = this._onMouseDown.bind(this)), (this._onMouseOver = this._onMouseOver.bind(this)), (this._onFormReset = this._onFormReset.bind(this)), (this._onSelectKey = this._onSelectKey.bind(this)), (this._onEnterKey = this._onEnterKey.bind(this)), (this._onEscapeKey = this._onEscapeKey.bind(this)), (this._onDirectionKey = this._onDirectionKey.bind(this)), (this._onDeleteKey = this._onDeleteKey.bind(this)), this.passedElement.isActive) ) return ( r.silent || console.warn( "Trying to initialise Choices on element already initialised", { element: t } ), (this.initialised = !0), void (this.initialisedOK = !1) ); this.init(), (this._initialItems = this._store.items.map(function (e) { return e.value; })); } return ( Object.defineProperty(e, "defaults", { get: function () { return Object.preventExtensions({ get options() { return Ye; }, get allOptions() { return X; }, get templates() { return Xe; }, }); }, enumerable: !1, configurable: !0, }), (e.prototype.init = function () { if (!this.initialised && void 0 === this.initialisedOK) { (this._searcher = new Ge(this.config)), this._loadChoices(), this._createTemplates(), this._createElements(), this._createStructure(), (this._isTextElement && !this.config.addItems) || this.passedElement.element.hasAttribute("disabled") || this.passedElement.element.closest("fieldset:disabled") ? this.disable() : (this.enable(), this._addEventListeners()), this._initStore(), (this.initialised = !0), (this.initialisedOK = !0); var e = this.config.callbackOnInit; "function" == typeof e && e.call(this); } }), (e.prototype.destroy = function () { this.initialised && (this._removeEventListeners(), this.passedElement.reveal(), this.containerOuter.unwrap(this.passedElement.element), (this._store._listeners = []), this.clearStore(!1), this._stopSearch(), (this._templates = e.defaults.templates), (this.initialised = !1), (this.initialisedOK = void 0)); }), (e.prototype.enable = function () { return ( this.passedElement.isDisabled && this.passedElement.enable(), this.containerOuter.isDisabled && (this._addEventListeners(), this.input.enable(), this.containerOuter.enable()), this ); }), (e.prototype.disable = function () { return ( this.passedElement.isDisabled || this.passedElement.disable(), this.containerOuter.isDisabled || (this._removeEventListeners(), this.input.disable(), this.containerOuter.disable()), this ); }), (e.prototype.highlightItem = function (e, t) { if ((void 0 === t && (t = !0), !e || !e.id)) return this; var i = this._store.items.find(function (t) { return t.id === e.id; }); return ( !i || i.highlighted || (this._store.dispatch(S(i, !0)), t && this.passedElement.triggerEvent( g, this._getChoiceForOutput(i) )), this ); }), (e.prototype.unhighlightItem = function (e, t) { if ((void 0 === t && (t = !0), !e || !e.id)) return this; var i = this._store.items.find(function (t) { return t.id === e.id; }); return i && i.highlighted ? (this._store.dispatch(S(i, !1)), t && this.passedElement.triggerEvent( "unhighlightItem", this._getChoiceForOutput(i) ), this) : this; }), (e.prototype.highlightAll = function () { var e = this; return ( this._store.withTxn(function () { e._store.items.forEach(function (t) { t.highlighted || (e._store.dispatch(S(t, !0)), e.passedElement.triggerEvent( g, e._getChoiceForOutput(t) )); }); }), this ); }), (e.prototype.unhighlightAll = function () { var e = this; return ( this._store.withTxn(function () { e._store.items.forEach(function (t) { t.highlighted && (e._store.dispatch(S(t, !1)), e.passedElement.triggerEvent( g, e._getChoiceForOutput(t) )); }); }), this ); }), (e.prototype.removeActiveItemsByValue = function (e) { var t = this; return ( this._store.withTxn(function () { t._store.items .filter(function (t) { return t.value === e; }) .forEach(function (e) { return t._removeItem(e); }); }), this ); }), (e.prototype.removeActiveItems = function (e) { var t = this; return ( this._store.withTxn(function () { t._store.items .filter(function (t) { return t.id !== e; }) .forEach(function (e) { return t._removeItem(e); }); }), this ); }), (e.prototype.removeHighlightedItems = function (e) { var t = this; return ( void 0 === e && (e = !1), this._store.withTxn(function () { t._store.highlightedActiveItems.forEach(function (i) { t._removeItem(i), e && t._triggerChange(i.value); }); }), this ); }), (e.prototype.showDropdown = function (e) { var t = this; return ( this.dropdown.isActive || (void 0 === e && (e = !this._canSearch), requestAnimationFrame(function () { t.dropdown.show(); var i = t.dropdown.element.getBoundingClientRect(); t.containerOuter.open(i.bottom, i.height), e || t.input.focus(), t.passedElement.triggerEvent("showDropdown"); })), this ); }), (e.prototype.hideDropdown = function (e) { var t = this; return this.dropdown.isActive ? (requestAnimationFrame(function () { t.dropdown.hide(), t.containerOuter.close(), !e && t._canSearch && (t.input.removeActiveDescendant(), t.input.blur()), t.passedElement.triggerEvent("hideDropdown"); }), this) : this; }), (e.prototype.getValue = function (e) { var t = this, i = this._store.items.map(function (i) { return e ? i.value : t._getChoiceForOutput(i); }); return this._isSelectOneElement || this.config.singleModeForMultiSelect ? i[0] : i; }), (e.prototype.setValue = function (e) { var t = this; return this.initialisedOK ? (this._store.withTxn(function () { e.forEach(function (e) { e && t._addChoice(G(e, !1)); }); }), this._searcher.reset(), this) : (this._warnChoicesInitFailed("setValue"), this); }), (e.prototype.setChoiceByValue = function (e) { var t = this; return this.initialisedOK ? (this._isTextElement || (this._store.withTxn(function () { (Array.isArray(e) ? e : [e]).forEach(function ( e ) { return t._findAndSelectChoiceByValue(e); }), t.unhighlightAll(); }), this._searcher.reset()), this) : (this._warnChoicesInitFailed("setChoiceByValue"), this); }), (e.prototype.setChoices = function (e, t, n, s, o, r) { var c = this; if ( (void 0 === e && (e = []), void 0 === t && (t = "value"), void 0 === n && (n = "label"), void 0 === s && (s = !1), void 0 === o && (o = !0), void 0 === r && (r = !1), !this.initialisedOK) ) return this._warnChoicesInitFailed("setChoices"), this; if (!this._isSelectElement) throw new TypeError( "setChoices can't be used with INPUT based Choices" ); if ("string" != typeof t || !t) throw new TypeError( "value parameter must be a name of 'value' field in passed objects" ); if ("function" == typeof e) { var a = e(this); if ("function" == typeof Promise && a instanceof Promise) return new Promise(function (e) { return requestAnimationFrame(e); }) .then(function () { return c._handleLoadingState(!0); }) .then(function () { return a; }) .then(function (e) { return c.setChoices(e, t, n, s, o, r); }) .catch(function (e) { c.config.silent || console.error(e); }) .then(function () { return c._handleLoadingState(!1); }) .then(function () { return c; }); if (!Array.isArray(a)) throw new TypeError( ".setChoices first argument function must return either array of choices or Promise, got: ".concat( typeof a ) ); return this.setChoices(a, t, n, !1); } if (!Array.isArray(e)) throw new TypeError( ".setChoices must be called either with array of choices with a function resulting into Promise of array of choices" ); return ( this.containerOuter.removeLoadingState(), this._store.withTxn(function () { o && (c._isSearching = !1), s && c.clearChoices(!0, r); var a = "value" === t, h = "label" === n; e.forEach(function (e) { if ("choices" in e) { var s = e; h || (s = i(i({}, s), { label: s[n] })), c._addGroup(G(s, !0)); } else { var o = e; (h && a) || (o = i(i({}, o), { value: o[t], label: o[n], })); var r = G(o, !1); c._addChoice(r), r.placeholder && !c._hasNonChoicePlaceholder && (c._placeholderValue = M(r.label)); } }), c.unhighlightAll(); }), this._searcher.reset(), this ); }), (e.prototype.refresh = function (e, t, i) { var n = this; return ( void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === i && (i = !1), this._isSelectElement ? (this._store.withTxn(function () { var s = n.passedElement.optionsAsChoices(), o = {}; i || n._store.items.forEach(function (e) { e.id && e.active && e.selected && (o[e.value] = !0); }), n.clearStore(!1); var r = function (e) { i ? n._store.dispatch(C(e)) : o[e.value] && (e.selected = !0); }; s.forEach(function (e) { "choices" in e ? e.choices.forEach(r) : r(e); }), n._addPredefinedChoices(s, t, e), n._isSearching && n._searchChoices(n.input.value); }), this) : (this.config.silent || console.warn( "refresh method can only be used on choices backed by a