@infineon/infineon-design-system-stencil 39.4.4--canary.2134.cd83647d2771e1e22b8c6c80a0df75f24ca168b6.0 → 39.4.4--canary.2134.84be7b9e85db8400d052b6d3b5addde807790384.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"file":"ifx-button.ifx-checkbox.ifx-chip.ifx-chip-item.ifx-icon.ifx-icon-button.ifx-indicator.ifx-pagination.ifx-select.ifx-table.entry.cjs.js","mappings":"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","names":["isNestedInIfxComponent","detectFramework","trackComponent","h","Host","classNames","getIcon","createGrid"],"sources":["src/components/button/button.scss?tag=ifx-button&encapsulation=shadow","src/components/button/button.tsx","src/components/checkbox/checkbox.scss?tag=ifx-checkbox&encapsulation=shadow","src/components/checkbox/checkbox.tsx","src/components/chip/chip.scss?tag=ifx-chip&encapsulation=shadow","src/components/chip/chip.tsx","src/components/chip/chip-item/chip-item.scss?tag=ifx-chip-item&encapsulation=shadow","src/components/chip/chip-item/chip-item.tsx","src/components/icon/infineonIconStencil.scss?tag=ifx-icon","src/components/icon/infineonIconStencil.tsx","src/components/icon-button/icon-button.scss?tag=ifx-icon-button&encapsulation=shadow","src/components/icon-button/icon-button.tsx","src/components/indicator/indicator.scss?tag=ifx-indicator&encapsulation=shadow","src/components/indicator/indicator.tsx","src/components/pagination/pagination.scss?tag=ifx-pagination&encapsulation=shadow","src/components/pagination/pagination.tsx","../../node_modules/choices.js/public/assets/scripts/choices.js","src/components/select/single-select/utils.ts","src/components/select/single-select/select.scss?tag=ifx-select","src/components/select/single-select/select.tsx","src/components/table-advanced-version/buttonCellRenderer.ts","src/components/table-advanced-version/checkboxCellRenderer.ts","src/components/table-advanced-version/checkboxHeaderRenderer.ts","src/components/table-advanced-version/iconButtonCellRenderer.ts","src/components/table-advanced-version/linkCellRenderer.ts","src/components/table-advanced-version/statusCellRenderer.ts","src/components/table-advanced-version/customNoRowsOverlay.ts","src/components/table-advanced-version/customLoadingOverlay.ts","src/components/table-advanced-version/table.scss?tag=ifx-table&encapsulation=shadow","src/components/table-advanced-version/table.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n vertical-align: bottom;\n display: inline-flex;\n width: var(--bw, fit-content);\n}\n\n.btn {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: tokens.$ifxSize500;\n padding: 0px tokens.$ifxSpace200;\n gap: tokens.$ifxSpace100;\n color: tokens.$ifxColorBaseWhite;\n font-weight: tokens.$ifxFontWeightSemibold;\n border-radius: tokens.$ifxBorderRadius12;\n line-height: tokens.$ifxLineHeightM;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n font-style: normal;\n text-decoration: none;\n user-select: none;\n font-size: tokens.$ifxFontSizeM;\n transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;\n width: var(--bw, fit-content);\n}\n\n.btn:not(.disabled) {\n cursor: pointer;\n}\n\n.btn.disabled {\n pointer-events: none;\n}\n\n.btn-default {\n //default variant=primary; default color=default\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n pointer-events: none;\n\n }\n}\n\n.btn-secondary-default {\n background-color: tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorOcean500;\n border: 1px solid tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n.btn-tertiary-default {\n background-color: tokens.$ifxColorBaseTransparent;\n color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n\n.btn-danger {\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorRed500;\n border-color: tokens.$ifxColorRed500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n pointer-events: none;\n\n }\n}\n\n.btn-secondary-danger {\n background-color: tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorRed500;\n border: 1px solid tokens.$ifxColorRed500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n.btn-tertiary-danger {\n //combination tertiary + danger not in design\n background-color: tokens.$ifxColorBaseTransparent;\n color: tokens.$ifxColorRed500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n.btn-inverse {\n color: tokens.$ifxColorOcean500;\n background-color: tokens.$ifxColorBaseWhite;\n\n &:disabled,\n &.disabled {\n opacity: tokens.$ifxOpacity100;\n background-color: tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n }\n}\n\n.btn-secondary-inverse {\n color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorBaseWhite;\n\n &:disabled,\n &.disabled {\n border: 1px solid tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorBaseWhite;\n pointer-events: none;\n\n }\n}\n\n\n.btn-tertiary-inverse {\n color: tokens.$ifxColorBaseWhite;\n\n &:disabled,\n &.disabled {\n color: tokens.$ifxColorBaseWhite;\n opacity: tokens.$ifxOpacity100;\n pointer-events: none;\n\n }\n}\n\n.btn {\n & ifx-icon:empty {\n display: none;\n }\n\n &.btn-xs {\n font-size: tokens.$ifxFontSizeS;\n height: tokens.$ifxSize400;\n line-height: tokens.$ifxLineHeightXs;\n }\n\n &.btn-s {\n font-size: tokens.$ifxFontSizeS;\n height: tokens.$ifxSize450;\n line-height: tokens.$ifxLineHeightS;\n }\n\n // &.btn-m { //default\n // font-size: tokens.$ifxFontSizeM;\n // height: tokens.$ifxSize400;\n // line-height: tokens.$ifxLineHeightM;\n // }\n\n\n &.btn-l {\n font-size: tokens.$ifxFontSizeXl;\n height: tokens.$ifxSize600;\n line-height: tokens.$ifxLineHeightXl;\n }\n\n\n\n &.btn-default:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n }\n }\n\n &.btn-secondary-default:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorOcean600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n }\n }\n\n &.btn-secondary:not(:disabled, .disabled) {\n\n &:hover {\n background-color: tokens.$ifxColorBerry500;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorBerry500;\n }\n }\n\n\n\n &.btn-danger:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorRed600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorRed700;\n }\n }\n\n &.btn-secondary-danger:not(:disabled, .disabled) {\n\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorRed600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorRed700;\n }\n }\n\n\n &.btn-inverse:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorOcean500, 0 0 0 4px tokens.$ifxColorBaseWhite;\n }\n\n &:hover {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorEngineering300;\n }\n }\n\n &.btn-secondary-inverse:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorOcean500, 0 0 0 4px tokens.$ifxColorBaseWhite;\n }\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorOcean500;\n background-color: tokens.$ifxColorEngineering300;\n }\n }\n\n\n\n &.btn-tertiary-default:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean600;\n }\n\n &:hover {\n color: tokens.$ifxColorOcean600;\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorOcean700;\n }\n\n\n }\n\n\n\n\n\n &.btn-tertiary-danger:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorRed600;\n }\n\n &:hover {\n color: tokens.$ifxColorRed600;\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorRed700;\n }\n\n }\n\n\n &.btn-tertiary-inverse:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorOcean500, 0 0 0 4px tokens.$ifxColorBaseWhite;\n }\n\n &:hover {\n color: tokens.$ifxColorEngineering200;\n\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorEngineering300;\n }\n }\n}","import { Component, Prop, h, Host, Method, Element, Listen, State, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport classNames from 'classnames';\n \n@Component({\n tag: 'ifx-button',\n styleUrl: 'button.scss',\n shadow: true,\n})\nexport class Button {\n @Prop() variant: 'primary' | 'secondary' | 'tertiary' = 'primary';\n @Prop() theme: 'default' | 'danger' | 'inverse' = 'default';\n @Prop() size: string = 'm';\n @Prop() disabled: boolean = false;\n @State() internalHref: string;\n @Prop() href: string;\n @Prop() target: string = '_self';\n @Prop() type: \"button\" | \"submit\" | \"reset\" = \"button\";\n @Prop() fullWidth: boolean = false;\n @Prop() ariaLabel: string | null;\n @Element() el;\n\n private focusableElement: HTMLElement;\n private nativeButton: HTMLButtonElement | HTMLInputElement;\n\n @Watch('href')\n setInternalHref(newValue: string) {\n this.internalHref = newValue;\n }\n\n @Method()\n async setFocus() {\n this.focusableElement.focus();\n }\n\n insertNativeButton() {\n this.nativeButton = document.createElement('button');\n this.nativeButton.type = this.type;\n this.nativeButton.style.display = 'none';\n this.el.closest('form').appendChild(this.nativeButton);\n }\n\n handleFormAndInternalHref() {\n if (this.el.closest('form')) {\n if (this.el.href) {\n this.el.internalHref = undefined;\n }\n this.insertNativeButton()\n } else {\n this.internalHref = this.href;\n }\n }\n\n handleButtonWidth() {\n if (this.fullWidth) {\n this.el.style.setProperty('--bw', '100%');\n } else {\n this.el.style.setProperty('--bw', 'fit-content');\n }\n }\n\n componentWillLoad() {\n this.handleFormAndInternalHref()\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-button', await framework)\n }\n }\n\n componentWillRender() {\n this.handleButtonWidth()\n }\n\n\n\n handleClick = (ev: Event) => {\n if (this.el.shadowRoot) {\n const parentForm = this.el.closest('form');\n if (parentForm) {\n ev.preventDefault();\n\n if (this.type === 'reset') {\n // If the button type is 'reset', manually reset all custom form fields\n this.resetClickHandler(); //this will reset all ifx-text-fields within a form\n } else {\n const fakeButton = document.createElement('button');\n if (this.type) {\n fakeButton.type = this.type;\n }\n fakeButton.style.display = 'none';\n parentForm.appendChild(fakeButton);\n fakeButton.click();\n fakeButton.remove();\n }\n }\n }\n }\n\n resetClickHandler() {\n const formElement = this.el.closest('form');\n const customElements = formElement.querySelectorAll('ifx-text-field, ifx-textarea');\n customElements.forEach(element => {\n element.reset();\n });\n }\n\n @Listen('keydown')\n handleKeyDown(ev: KeyboardEvent) {\n if ( ev.key === \" \" || ev.key === 'Enter' && !this.disabled) {\n this.focusableElement.click();\n }\n }\n\n @Listen('click', { capture: true })\n handleHostClick(event: Event) {\n if (this.disabled === true) {\n event.stopImmediatePropagation();\n }\n }\n\n handleFocus(event: FocusEvent) {\n if (this.disabled) {\n event.preventDefault();\n this.focusableElement.blur();\n }\n }\n\n render() {\n return (\n <Host>\n <a\n role={this.href ? 'link' : 'button'}\n tabIndex={this.disabled ? -1 : 0}\n ref={(el) => (this.focusableElement = el)}\n class={this.getClassNames()}\n href={!this.disabled ? this.internalHref : undefined}\n target={this.target}\n onClick={this.handleClick}\n rel={this.target === '_blank' ? 'noopener noreferrer' : undefined}\n onFocus={(event) => this.handleFocus(event)}\n aria-disabled={this.disabled ? 'true' : null}\n aria-describedby={this.theme === 'danger' ? 'Dangerous action' : undefined}\n aria-label={this.ariaLabel || undefined}\n >\n <slot></slot>\n </a>\n </Host>\n );\n }\n\n\n getVariantClass() {\n return `${this.variant}` === \"secondary\"\n ? `secondary-${this.theme}`\n : `${this.variant}` === 'tertiary'\n ? `tertiary-${this.theme}`\n : `${this.theme}`;\n }\n\n getSizeClass() {\n if (`${this.size}` === \"xs\") {\n return \"xs\"\n }\n else if (`${this.size}` === \"s\") {\n return \"s\"\n }\n else if (`${this.size}` === \"l\") {\n return \"l\"\n }\n else return \"\";\n }\n\n getClassNames() {\n return classNames(\n 'btn',\n this.size && `btn-${this.getSizeClass()}`,\n `btn-${this.getVariantClass()}`,\n this.disabled ? 'disabled' : ''\n );\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n display: inline-flex;\n vertical-align: top;\n}\n\n.checkbox__container {\n box-sizing: border-box;\n display: inline-flex;\n flex-direction: row;\n align-items: top;\n padding: 0px;\n gap: tokens.$ifxSpace100;\n font-family: tokens.$ifxFontFamilyBody;\n vertical-align: bottom;\n\n & .checkbox__wrapper {\n box-sizing: border-box;\n display: flex;\n position: relative; //needs to be added for the indeterminate state of the checkbox\n justify-content: center;\n align-items: center;\n width: tokens.$ifxSize250;\n height: tokens.$ifxSize250;\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering500;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n flex-grow: 0;\n align-self: flex-start;\n\n &.checkbox-m {\n height: tokens.$ifxSize300;\n width: tokens.$ifxSize300;\n }\n\n &.error {\n border-color: tokens.$ifxColorRed500;\n }\n\n &:focus-visible {\n border: 1px solid tokens.$ifxColorEngineering500;\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n\n &:hover {\n background-color: tokens.$ifxColorEngineering200;\n border: 1px solid tokens.$ifxColorEngineering500;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n flex-grow: 0;\n }\n\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;;\n border-color: tokens.$ifxColorEngineering300;;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n flex-grow: 0;\n }\n\n &.checked:not(.indeterminate) {\n background-color: tokens.$ifxColorOcean500;\n border-radius: tokens.$ifxBorderRadius12;\n border-color: tokens.$ifxColorBaseTransparent;\n flex: none;\n order: 0;\n flex-grow: 0;\n color: tokens.$ifxColorBaseWhite;\n\n &.error {\n background-color: tokens.$ifxColorRed500;\n }\n\n &:focus-visible {\n border: 1px solid transparent;\n outline: 2px solid #0A8276;\n outline-offset: 2px;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean500;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n flex-grow: 0;\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering300;;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n flex-grow: 0;\n }\n }\n\n &.indeterminate {\n &:before {\n content: \"\";\n display: block;\n width: 70%; // Adjust as needed for the width of the minus sign\n height: 2px; // Adjust for thickness of the minus sign\n background-color: tokens.$ifxColorOcean600; // Color of the minus sign\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n }\n\n }\n\n & .label {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n color: tokens.$ifxColorBaseBlack;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-all;\n max-width: 100%;\n\n &.label-m {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n }\n }\n\n & .checkbox__wrapper,\n & .label {\n &:hover {\n cursor: pointer;\n }\n }\n}","import { Component, h, Prop, Element, State, Event, EventEmitter, Watch, Method, AttachInternals } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-checkbox',\n styleUrl: 'checkbox.scss',\n shadow: true,\n // formAssociated: true\n})\n\nexport class Checkbox {\n private inputElement: HTMLInputElement;\n\n @Element() el;\n @Prop() disabled: boolean = false;\n @Prop() checked: boolean = false;\n @Prop() error: boolean = false;\n @Prop() size: string = 'm';\n @Prop() indeterminate: boolean = false;\n @Prop() value: string;\n @State() internalChecked: boolean;\n @State() internalIndeterminate: boolean;\n\n @AttachInternals() internals: ElementInternals;\n\n @Event({ bubbles: true, composed: true }) ifxChange: EventEmitter;\n @Event({ bubbles: true, composed: true }) ifxError: EventEmitter;\n\n handleCheckbox() {\n if (!this.disabled) {\n if (!this.inputElement.indeterminate) {\n this.internalChecked = !this.internalChecked;\n } \n if (this.internalChecked && !this.internalIndeterminate) {\n if (this.value !== undefined) {\n //this.internals.setFormValue(this.value);\n } else {\n //this.internals.setFormValue(\"on\")\n }\n } else {\n //this.internals.setFormValue(null)\n }\n this.ifxChange.emit(this.internalChecked);\n }\n }\n\n @Method()\n async isChecked(): Promise<boolean> {\n return this.internalChecked;\n }\n\n @Method()\n async toggleCheckedState(newVal: boolean) {\n this.internalChecked = newVal;\n }\n\n @Watch('checked')\n valueChanged(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n this.internalChecked = newValue;\n this.inputElement.checked = this.internalChecked; // update the checkbox's checked property\n }\n }\n\n @Watch('error')\n errorChanged(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n this.ifxError.emit(newValue);\n }\n }\n\n @Watch('indeterminate')\n indeterminateChanged(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n this.internalIndeterminate = newValue;\n this.inputElement.indeterminate = this.internalIndeterminate; // update the checkbox's indeterminate property\n }\n }\n\n handleKeydown(event) {\n // Keycode 32 corresponds to the Space key, 13 corresponds to the Enter key\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.handleCheckbox();\n event.preventDefault(); // prevent the default action when space or enter is pressed\n }\n }\n\n componentWillLoad() {\n this.internalChecked = this.checked;\n this.internalIndeterminate = this.indeterminate;\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-checkbox', await framework)\n }\n }\n\n componentDidRender() {\n this.inputElement.indeterminate = this.internalIndeterminate;\n }\n\n /**\n * Callback for form association.\n * Called whenever the form is reset.\n */\n // formResetCallback() {\n // this.internals.setFormValue(null);\n // }\n\n getCheckedClassName() {\n if (this.error) {\n if (this.internalChecked) {\n return \"checked error\"\n } else {\n return \"error\"\n }\n } else if (this.internalChecked) {\n return \"checked\";\n } else return \"\"\n }\n\n render() {\n const slot = this.el.innerHTML;\n let hasSlot = false;\n if (slot) {\n hasSlot = true;\n }\n return (\n <div class=\"checkbox__container\">\n <input\n type=\"checkbox\"\n hidden\n ref={(el) => (this.inputElement = el)}\n checked={this.internalChecked}\n onChange={this.handleCheckbox.bind(this)} // Listen for changes here\n id='checkbox'\n value={`${this.value}`}\n disabled={this.disabled ? true : undefined}\n />\n <div\n tabindex=\"0\"\n onClick={this.handleCheckbox.bind(this)}\n onKeyDown={this.handleKeydown.bind(this)}\n role=\"checkbox\"\n aria-checked={this.indeterminate ? 'mixed' : this.internalChecked.toString()}\n aria-disabled={this.disabled}\n aria-labelledby=\"label\"\n class={`checkbox__wrapper \n ${this.getCheckedClassName()}\n ${this.size === \"m\" ? \"checkbox-m\" : \"\"}\n ${this.indeterminate ? 'indeterminate' : \"\"}\n ${this.disabled ? 'disabled' : \"\"}`}\n >\n {this.internalChecked && !this.internalIndeterminate && <ifx-icon icon=\"check-16\" aria-hidden=\"true\"></ifx-icon>}\n </div>\n {hasSlot &&\n <div id=\"label\" class={`label ${this.size === \"m\" ? \"label-m\" : \"\"} ${this.disabled ? 'disabled' : \"\"} `} onClick={this.handleCheckbox.bind(this)}>\n <slot />\n </div>}\n </div>\n );\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-block;\n}\n\n.chip {\n position: relative;\n}\n\n.chip__wrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: tokens.$ifxSpace100;\n box-sizing: border-box;\n border-radius: tokens.$ifxBorderRadiusRound;\n background: tokens.$ifxColorBaseWhite;\n cursor: pointer; \n transition: border 100ms ease;\n font: tokens.$ifxBodyBody04;\n\n & .icon__wrapper { \n display: flex;\n }\n\n &.outlined, &.filled-dark, &.filled-light { \n outline: 2px solid transparent;\n &:focus-visible {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n \n &.chip__wrapper--opened {\n .wrapper__open-button {\n transform: rotate(-180deg);\n }\n }\n\n &.chip__wrapper--selected {\n .wrapper__label {\n .label__selected-options {\n font: tokens.$ifxBodyBody04;\n }\n }\n }\n }\n\n &.filled-dark, &.filled-light { \n &.chip__wrapper--selected:not(.read-only) {\n background-color: tokens.$ifxColorOcean500;\n color: white;\n &:hover { \n background-color: tokens.$ifxColorOcean600;\n }\n\n &:hover.disabled { \n background-color: tokens.$ifxColorOcean500;\n }\n }\n }\n \n &.outlined { \n border: 1px solid tokens.$ifxColorEngineering400;\n &:hover:not(.read-only) {\n border-color: tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering100;\n }\n\n &:active:not(.read-only) { \n border-color: tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering300;\n }\n\n &.chip__wrapper--opened {\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n &.chip__wrapper--selected {\n outline: 3px solid tokens.$ifxColorOcean500;\n border: 1px solid transparent;\n background-color: white;\n\n &:focus-visible {\n outline-offset: 0px;\n }\n &:hover:not(.read-only) { \n outline-color: tokens.$ifxColorOcean600;\n }\n\n &.read-only { \n outline: none;\n border: 1px solid black;\n }\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n border: 1px solid tokens.$ifxColorEngineering300;\n &:hover { \n outline: none;\n border-color: tokens.$ifxColorEngineering300;\n background-color: white;\n }\n }\n\n &.read-only { \n border: 1px solid black;\n &:focus-visible { \n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n }\n }\n\n &.filled-dark { \n background-color: tokens.$ifxColorEngineering600;\n color: white;\n\n &:hover:not(.chip__wrapper--selected, .disabled, .read-only) { \n background-color: tokens.$ifxColorEngineering500;\n }\n\n &:active:not(.chip__wrapper--selected, .disabled, .read-only) { \n background-color: tokens.$ifxColorEngineering400;\n color: black;\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n &:hover:not(.chip__wrapper--selected) { \n background-color: tokens.$ifxColorEngineering600;\n }\n }\n\n &.chip__wrapper--selected { \n &.read-only { \n border: 1px solid tokens.$ifxColorEngineering400;\n }\n }\n\n &.read-only { \n border: 1px solid tokens.$ifxColorEngineering400;\n }\n }\n\n &.filled-light { \n background-color: tokens.$ifxColorEngineering200;\n\n &:hover:not(.read-only) { \n background-color: tokens.$ifxColorEngineering300;\n }\n\n &:active:not(.read-only) { \n background-color: tokens.$ifxColorEngineering400;\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n &:hover:not(.chip__wrapper--selected) { \n background-color: tokens.$ifxColorEngineering200;\n }\n }\n\n &.chip__wrapper--selected { \n &.read-only { \n border: 1px solid black;\n }\n }\n\n &.read-only { \n border: 1px solid black;\n }\n }\n \n &.chip__wrapper--small {\n padding: tokens.$ifxSpace50 tokens.$ifxSpace100;\n height: tokens.$ifxSize300;\n }\n\n &.chip__wrapper--medium {\n padding: tokens.$ifxSpace50 tokens.$ifxSpace150;\n height: tokens.$ifxSize350;\n }\n \n &.chip__wrapper--large {\n padding: tokens.$ifxSpace100 tokens.$ifxSpace150;\n height: tokens.$ifxSize450;\n }\n}\n\n.wrapper__label {\n display: inline-flex;\n align-items: center;\n gap: tokens.$ifxSpace50;\n\n .label__selected-options {\n font: tokens.$ifxBodyBodySemibold04;\n }\n}\n\n.wrapper__open-button {\n display:flex;\n align-items: center;\n}\n\n.wrapper__unselect-button {\n display:flex;\n align-items: center;\n}\n\n.chip__dropdown {\n position: absolute;\n z-index: 1;\n box-shadow: 0px 6px 9px 0px #1D1D1D1A;\n border: 1px solid tokens.$ifxColorEngineering200;\n border-radius: tokens.$ifxBorderRadius12;\n padding: tokens.$ifxSpace100 0;\n min-width: 222px;\n background-color: tokens.$ifxColorBaseWhite;\n}\n","import { h, Component, Element, Event, EventEmitter, Listen, Prop, State, Watch } from '@stencil/core';\nimport { ChipItemSelectEvent } from './interfaces';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-chip',\n styleUrl: 'chip.scss',\n shadow: true\n})\nexport class Chip {\n @Element() chip: HTMLIfxChipElement;\n\n @Event() ifxChange: EventEmitter<{ previousSelection: Array<ChipItemSelectEvent>, currentSelection: Array<ChipItemSelectEvent>, name: string }>;\n @Prop() placeholder: string = '';\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n @Prop({ mutable: true }) value: Array<string> | string = undefined;\n @Prop() variant: 'single' | 'multi' = 'single';\n @Prop() theme: 'outlined' | 'filled-light' | 'filled-dark' = 'outlined';\n @Prop() readOnly: boolean = false;\n @Prop() ariaLabel: string | null;\n @Prop() disabled: boolean = false;\n @Prop() icon: string = \"\";\n\n @State() opened: boolean = false;\n @State() selectedOptions: Array<ChipItemSelectEvent> = [];\n\n @Watch('value')\n handleValueChange(newValue: Array<string> | string) {\n this.syncSelectedOptionsWithProp(newValue);\n }\n\n @Watch('readOnly')\n handleReadOnlyChange(newValue: boolean) {\n if (newValue) {\n this.opened = false;\n }\n }\n\n @Listen('mousedown', { target: 'document' })\n closeDropdownOnOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n const chipWrapper: HTMLElement = this.chip.shadowRoot.querySelector('.chip__wrapper');\n const chipDropdown: HTMLElement = this.chip.shadowRoot.querySelector('.chip__dropdown');\n if (!path.includes(chipDropdown) && !path.includes(chipWrapper) && this.opened) {\n this.toggleDropdownMenu();\n }\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n // override behavior of all keys except Tab. Users should be able to tab out of the component.\n if (event.code !== 'Tab') {\n event.preventDefault(); \n }\n\n if ((event.target as HTMLElement).tagName === 'IFX-CHIP') {\n this.handleWrapperKeyDown(event);\n } else if ((event.target as HTMLElement).tagName === 'IFX-CHIP-ITEM') {\n this.handleDropdownKeyDown(event);\n }\n }\n\n @Listen('ifxChipItemSelect')\n updateSelectedOptions(event: CustomEvent<ChipItemSelectEvent>) {\n const eventDetail: ChipItemSelectEvent = event.detail;\n const previousSelection: Array<ChipItemSelectEvent> = [...this.selectedOptions];\n\n if (this.variant !== 'multi') {\n if (eventDetail.selected) {\n this.opened = false;\n const chipItems: NodeList = this.getChipItems();\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n if (chipItem.selected && chipItem !== event.target) {\n chipItem.chipState = {\n ...chipItem.chipState,\n emitIfxChipItemSelect: false,\n };\n chipItem.selected = false;\n }\n });\n this.selectedOptions = [eventDetail];\n } else {\n this.selectedOptions = [];\n }\n this.value = this.selectedOptions[0] ? this.selectedOptions[0].value : undefined;\n } else {\n if (eventDetail.selected) {\n // Prevent duplicate entries\n if (!this.selectedOptions.find(option => option.value === eventDetail.value)) {\n this.selectedOptions = [...this.selectedOptions, eventDetail];\n }\n } else {\n this.selectedOptions = this.selectedOptions.filter((option) => option.value !== eventDetail.value);\n }\n this.value = this.selectedOptions.map((option) => option.value);\n }\n\n if (eventDetail.emitIfxChange) {\n this.ifxChange.emit({\n previousSelection: previousSelection,\n currentSelection: this.selectedOptions,\n name: this.placeholder\n });\n }\n }\n\n getChipItems(): NodeList {\n return this.chip.querySelectorAll('ifx-chip-item');\n }\n\n getSelectedOptions(): string {\n if (this.variant !== 'multi') {\n return this.selectedOptions.map(option => option.label).join('');\n }\n return this.selectedOptions.slice(0, 2).map(option => option.label).join(', ');\n }\n\n toggleDropdownMenu() {\n if (this.readOnly) return;\n this.opened = !this.opened;\n }\n\n /**\n * Focuses the chip item at the specified index.\n * @param index the index of the chip item to focus. -1 will focus the last chip item.\n */\n focusChipItemAt(index: number = 0) {\n this.opened = true;\n const chipItems: NodeList = this.getChipItems();\n let item: HTMLIfxChipItemElement;\n \n if (index === -1) {\n item = chipItems.item(chipItems.length - 1) as HTMLIfxChipItemElement;\n } else if (index >= 0 && index < chipItems.length) {\n item = chipItems.item(index) as HTMLIfxChipItemElement;\n } else {\n console.error(`Invalid index: ${index}`);\n return;\n }\n\n const shadowItem = item.shadowRoot.querySelector('.chip-item') as HTMLDivElement;\n if (shadowItem) {\n // Delay needed for the shadow item to be rendered.\n setTimeout(() => {\n shadowItem.focus();\n }, 1);\n }\n }\n\n focusChip() {\n const chipWrapper: HTMLElement = this.chip.shadowRoot.querySelector('.chip__wrapper');\n chipWrapper.focus();\n }\n\n handleUnselectButtonClick(event: MouseEvent) {\n event.stopPropagation();\n this.opened = false;\n\n let itemGotUnselected = false;\n const chipItems: NodeList = this.getChipItems();\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n if (chipItem.selected) {\n itemGotUnselected = true;\n chipItem.chipState = {\n ...chipItem.chipState,\n emitIfxChipItemSelect: false,\n }\n chipItem.selected = false;\n }\n });\n\n /* Emit event only if at least one item was unselected. */\n if (itemGotUnselected) {\n const previousSelection: Array<ChipItemSelectEvent> = this.selectedOptions;\n this.selectedOptions = [];\n this.value = [];\n this.ifxChange.emit({\n previousSelection: previousSelection,\n currentSelection: [],\n name: this.placeholder\n });\n }\n }\n\n handleWrapperClick() {\n if (!this.readOnly) {\n this.toggleDropdownMenu();\n }\n }\n\n handleWrapperKeyDown(event: KeyboardEvent) {\n // Keymap oriented at https://www.w3.org/WAI/ARIA/apg/patterns/combobox/#keyboard_interaction\n if (this.readOnly) return;\n\n if (!this.opened) {\n switch (event.code) {\n case 'Space':\n case 'Enter':\n case 'ArrowDown':\n this.focusChipItemAt(0);\n break;\n case 'ArrowUp':\n this.focusChipItemAt(-1);\n break;\n }\n } else {\n switch (event.code) {\n case 'Escape':\n this.opened = false;\n this.focusChip();\n break;\n }\n }\n }\n\n handleDropdownKeyDown(event: KeyboardEvent) {\n let chipitems = this.getChipItems();\n\n let targetIndex = Array.from(chipitems).indexOf(event.target as HTMLIfxChipItemElement);\n if (targetIndex === -1) {\n console.error('Target not found in chip items');\n return;\n }\n\n switch (event.code) {\n case 'ArrowDown':\n if (targetIndex === chipitems.length - 1) break;\n this.focusChipItemAt(targetIndex + 1);\n break;\n case 'ArrowUp':\n if (targetIndex === 0) break;\n this.focusChipItemAt( targetIndex - 1);\n break;\n case 'Escape':\n this.opened = false;\n this.focusChip();\n break;\n case 'Space':\n // selection is handled by the chip-item component\n if (this.variant === 'single') {\n // only close dropdown if single select\n this.opened = false;\n this.focusChip();\n }\n break;\n case 'Enter':\n // selection is handled by the chip-item component\n this.opened = false;\n this.focusChip();\n break;\n }\n }\n\n syncChipState() {\n const chipItems: NodeList = this.getChipItems();\n let key: number = 0;\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n chipItem.chipState = {\n emitIfxChipItemSelect: true,\n size: this.size ? this.size : 'medium',\n variant: (this.variant === 'multi' ? 'multi' : 'single'),\n key: key++\n };\n });\n }\n\n syncSelectedOptionsWithProp(newValue: Array<string> | string) {\n // Clear old selected options\n this.selectedOptions = [];\n\n const generateKey = (() => {\n let count = 0;\n return () => count++;\n })();\n\n if (Array.isArray(newValue)) {\n this.selectedOptions = newValue.map(value => ({\n value,\n label: value,\n selected: true,\n key: generateKey(),\n emitIfxChange: true\n }));\n } else if (typeof newValue === 'string') {\n this.selectedOptions = [{\n value: newValue,\n label: newValue,\n selected: true,\n key: generateKey(),\n emitIfxChange: true\n }];\n }\n\n this.syncChipState();\n }\n\n componentWillLoad() {\n this.syncSelectedOptionsWithProp(this.value);\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.chip)) { \n const framework = detectFramework();\n trackComponent('ifx-chip', await framework)\n }\n }\n\n render() {\n return (\n <div class='chip'>\n <div class={`chip__wrapper chip__wrapper--${this.size ? this.size : 'medium'}\n chip__wrapper--${this.variant === 'multi' ? 'multi' : 'single'}\n ${this.opened && !this.readOnly ? 'chip__wrapper--opened' : ''}\n ${this.selectedOptions.length ? 'chip__wrapper--selected' : ''}\n ${this.theme ? this.theme : 'outlined'}\n ${this.disabled ? 'disabled' : \"\"}\n ${this.readOnly ? 'read-only' : \"\"}`}\n tabIndex={0}\n onClick={!this.readOnly && !this.disabled ? () => { this.handleWrapperClick() } : undefined}\n role='combobox'\n aria-label={this.ariaLabel}\n aria-value={this.getSelectedOptions()}\n aria-haspopup={!this.readOnly ? 'listbox' : undefined}\n aria-expanded={!this.readOnly ? this.opened.toString() : undefined}\n aria-controls={!this.readOnly ? 'dropdown' : undefined}\n aria-readonly={this.readOnly ? 'true' : undefined}\n aria-multiselectable={this.variant === 'multi' ? 'true' : undefined}\n >\n \n {this.icon && \n <div class=\"icon__wrapper\">\n <ifx-icon icon={this.icon}></ifx-icon>\n </div>}\n\n <div class='wrapper__label'>\n {\n (this.selectedOptions.length === 0) && `${this.placeholder}`\n }\n\n {\n (this.selectedOptions.length !== 0 && (this.variant === 'multi') && this.placeholder !== '') &&\n `${this.placeholder}:`\n }\n\n {\n (this.selectedOptions.length !== 0) &&\n <div class='label__selected-options'>\n {this.getSelectedOptions()}\n </div>\n }\n\n {\n (this.selectedOptions.length > 2 && this.variant === 'multi') &&\n <ifx-indicator variant='number' inverted={this.theme === 'outlined' ? false : true} number={this.selectedOptions.length - 2}></ifx-indicator>\n }\n </div>\n\n {\n !this.readOnly && (this.variant !== 'multi' || (this.variant === 'multi' && this.selectedOptions.length === 0)) &&\n <div class='wrapper__open-button'>\n <ifx-icon key={1} icon={`chevron-down-16`} />\n </div>\n }\n\n {\n ((this.selectedOptions.length >= 1) && this.variant === 'multi') &&\n <div class='wrapper__unselect-button' onClick={!this.readOnly && !this.disabled ? (e) => { this.handleUnselectButtonClick(e) } : undefined}>\n <ifx-icon key={2} icon={`cross16`} />\n </div>\n }\n\n </div>\n\n {\n this.opened && !this.readOnly &&\n <div id='dropdown' role='listbox' class='chip__dropdown'>\n <slot />\n </div>\n }\n </div>\n );\n }\n}\n","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.chip-item {\n display: flex;\n align-items: center;\n gap: tokens.$ifxSpace100;\n \n padding: tokens.$ifxSpace100 tokens.$ifxSpace200;\n \n user-select: none;\n \n transition: all 100ms ease;\n transition-property: background, color;\n \n &:hover {\n cursor: pointer;\n \n background-color: tokens.$ifxColorEngineering200;\n }\n \n &:active {\n background-color: tokens.$ifxColorEngineering300;\n }\n\n &:focus {\n outline: 2px solid tokens.$ifxColorOcean500;\n }\n \n &.chip-item--large {\n font: tokens.$ifxBodyBody03;\n }\n \n &.chip-item--small {\n font: tokens.$ifxBodyBody04;\n }\n\n &.chip-item--selected {\n color: tokens.$ifxColorOcean500;\n\n .chip-item__selected-indicator {\n display: block;\n }\n }\n}\n\n.chip-item__selected-indicator {\n display: none;\n \n margin-left: auto;\n}\n\n","import { h,\n Component,\n Element,\n Event,\n EventEmitter, \n Listen,\n Prop, \n Watch } from '@stencil/core';\nimport { ChipItemSelectEvent, ChipState } from '../interfaces';\n\n@Component({\ntag: 'ifx-chip-item',\nstyleUrl: 'chip-item.scss',\nshadow: true\n})\n\nexport class ChipItem {\n@Element() chipItem: HTMLIfxChipItemElement;\n\n@Event({ composed: false }) ifxChipItemSelect: EventEmitter<ChipItemSelectEvent>;\n\n@Prop() value: string = undefined;\n@Prop() chipState: ChipState = { emitIfxChipItemSelect: true, variant: 'multi', size: 'large' }; \n@Prop({ mutable: true, reflect: true }) selected: boolean = false;\n\n@Listen('ifxChipItemSelect', { target: 'body' })\nupdateItemSelection(event: CustomEvent<ChipItemSelectEvent>) {\n if (this.chipState.variant === 'single') {\n const target = event.target as HTMLIfxChipItemElement;\n /* Also making sure chip items are from the same group (parent) while unselecting. */\n if (this.chipItem !== target && this.chipItem.parentElement === target.parentElement) {\n this.selected = false;\n }\n }\n} \n\n@Watch('selected')\nvalidateSelected(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n /* Do not emit if ChipState does not allow. */\n if (this.chipState.emitIfxChipItemSelect){\n this.emitIfxChipItemSelectEvent();\n } else {\n this.chipState.emitIfxChipItemSelect = true;\n }\n }\n} \n\ngetItemLabel(): string {\n return this.chipItem.innerText as string;\n}\n\ntoggleItemSelection() {\n this.selected = !this.selected;\n}\n \n\nemitIfxChipItemSelectEvent(emitIfxChange: boolean = true) {\n this.ifxChipItemSelect.emit({ emitIfxChange: emitIfxChange,\n key: this.chipState.key,\n label: this.getItemLabel(), \n selected: this.selected, \n value: this.value });\n}\n\nhandleItemClick() {\n this.toggleItemSelection();\n}\n\nhandleItemKeyDown(event: KeyboardEvent) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.toggleItemSelection();\n }\n}\n\nhandleSelectedState() {\n if (this.selected) {\n this.emitIfxChipItemSelectEvent(false);\n }\n}\n\n\ncomponentWillLoad() {\n /* Propogating the selected state to the Chip (Parent) component if it is set. */\n this.handleSelectedState();\n}\n\nrender() {\n return (\n <div class={`chip-item chip-item--${this.chipState.size} \n chip-item--${(this.selected && this.chipState.variant) === 'single' ? 'selected' : ''}`} \n tabIndex={0}\n onClick={() => {this.handleItemClick()}}\n onKeyDown={(e) => {this.handleItemKeyDown(e)}}\n role=\"option\"\n aria-selected={this.selected.toString()}> \n {/* Checkbox; renders only in 'multi' variant. */}\n { \n this.chipState.variant === 'multi' &&\n <ifx-checkbox checked={this.selected}\n tabIndex={-1} \n size='s'>\n </ifx-checkbox>\n }\n\n <div class='chip-item__label'> <slot /> </div>\n\n {/* Selected indicator only visible in 'single' variant. */}\n <div class='chip-item__selected-indicator'> \n <ifx-icon icon='check-16'> </ifx-icon> \n </div>\n\n </div>\n );\n}\n}","ifx-icon {\n display: inline-flex;\n justify-content: center;\n\n &:empty {\n display: none;\n }\n}","import { Component, Prop, h, Host, Event, EventEmitter, Watch, State, Element } from '@stencil/core';\nimport { getIcon } from '@infineon/infineon-icons'\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-icon',\n styleUrl: './infineonIconStencil.scss'\n})\n\nexport class InfineonIconStencil {\n @Element() el: HTMLElement;\n @Prop({ mutable: true }) icon: string = \"\"\n @Prop({ mutable: true }) ifxIcon: any;\n @State() internalIcon: string;\n @Event() consoleError: EventEmitter<boolean>;\n\n @Watch('icon')\n updateIcon(newIcon: string) { \n this.internalIcon = newIcon;\n this.setIcon()\n }\n\n convertStringToHtml(htmlString) { \n const div = document.createElement('div')\n div.innerHTML = htmlString\n return div.firstChild\n }\n\n convertHtmlToObject(htmlElement) { \n let pathToObject = Array\n .from(htmlElement.attributes, ({ name, value }) => ({ name, value }))\n .reduce((acc, current) => {\n acc[current.name] = current.value\n return acc\n }, {})\n\n return pathToObject\n }\n\n convertPathsToVnode(htmlPath) { \n let svgPaths = []\n const parentPath = this.convertHtmlToObject(htmlPath);\n const parentPathToVnode = h(\"path\", parentPath);\n svgPaths.push(parentPathToVnode)\n if(htmlPath.firstChild) { \n const paths = htmlPath.querySelectorAll('path');\n const pathLength = htmlPath.querySelectorAll('path').length;\n for(let i = 0; i < pathLength; i++) { \n let pathToObject = this.convertHtmlToObject(paths[i])\n let objToVnode = h(\"path\", pathToObject)\n svgPaths.push(objToVnode)\n } \n }\n return svgPaths\n }\n\n getSVG(svgPath) {\n const htmlPath = this.convertStringToHtml(this.ifxIcon) as SVGElement;\n const width = htmlPath.getAttribute('width');\n const height = htmlPath.getAttribute('height');\n const fill = htmlPath.getAttribute('fill');\n const viewBox = htmlPath.getAttribute('viewBox');\n \n return <svg class=\"inline-svg\" width={width} height={height} xmlns=\"http://www.w3.org/2000/svg\" fill={fill} viewBox={viewBox}>{...svgPath}</svg>\n }\n\n constructIcon() {\n if(this.ifxIcon) {\n const htmlPath = this.convertStringToHtml(this.ifxIcon)\n const svgPath = this.convertPathsToVnode(htmlPath)\n const SVG = this.getSVG(svgPath)\n return SVG;\n } else if(this.icon !== \"\") {\n this.consoleError.emit(true)\n return;\n } else { \n return;\n }\n }\n\nsetIcon() { \n const toCamelCase = str =>\n str\n .replace(/[-_]+(.)/g, (_, chr) => chr.toUpperCase()) // handle - and _ to uppercase\n .replace(/^(.)/, (m) => m.toLowerCase()); // ensure first letter is lowercase\n\n const iconName = toCamelCase(this.internalIcon);\n this.ifxIcon = getIcon(iconName);\n}\n\n isInsideAgGrid(el: HTMLElement): boolean {\n let current = el;\n while (current) {\n if (current.className?.toLowerCase().startsWith('ag-')) {\n return true;\n }\n current = current.parentElement;\n }\n return false;\n}\n\n isInsideChoices(el: HTMLElement): boolean {\n let current = el;\n while (current) {\n if (current.className?.toLowerCase().startsWith('choices__')) {\n return true;\n }\n current = current.parentElement;\n }\n return false;\n }\n\n componentWillLoad() {\n this.internalIcon = this.icon;\n this.setIcon()\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n if(!this.isInsideAgGrid(this.el) && !this.isInsideChoices(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-icon', await framework)\n }\n }\n }\n\n render() {\n return (\n <Host>\n {this.constructIcon()}\n </Host>\n );\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n display: inline-flex;\n}\n\n.btn {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: tokens.$ifxSize500;\n padding: 8px;\n gap: tokens.$ifxSpace100;\n color: tokens.$ifxColorBaseWhite;\n flex-direction: row;\n font-weight: tokens.$ifxFontWeightSemibold;\n border-radius: tokens.$ifxBorderRadius12;\n line-height: tokens.$ifxLineHeightM;\n outline: none;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n text-decoration: none;\n user-select: none;\n border: 1px solid rgba(0, 0, 0, 0);\n font-size: tokens.$ifxFontSizeM;\n transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;\n}\n\n.btn:not(.disabled) {\n cursor: pointer;\n}\n\n.btn-primary {\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n pointer-events: none;\n\n }\n}\n\n\n.btn-secondary {\n color: tokens.$ifxColorOcean500;\n background-color: tokens.$ifxColorBaseWhite;\n border-color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n.btn-tertiary {\n background-color: transparent;\n color: tokens.$ifxColorBaseBlack;\n\n &:disabled,\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n }\n}\n\n\n.btn {\n\n &.icon-button {\n min-width: initial;\n min-height: initial;\n width: tokens.$ifxSize500;\n height: tokens.$ifxSize500;\n padding: 0;\n justify-content: center;\n\n &.btn-round {\n border-radius: 100px;\n }\n\n &.btn-square {\n border-radius: tokens.$ifxBorderRadius12;\n }\n\n &.btn-s {\n width: tokens.$ifxSize400;\n height: tokens.$ifxSize400;\n padding: 8px;\n }\n\n\n &.btn-l {\n width: tokens.$ifxSize600;\n height: tokens.$ifxSize600;\n padding: 8px;\n }\n }\n\n &.btn-primary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean600;\n border-color: tokens.$ifxColorOcean600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n border-color: tokens.$ifxColorOcean700;\n }\n }\n\n\n &.btn-secondary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean600;\n border-color: tokens.$ifxColorOcean600;\n color: tokens.$ifxColorBaseWhite;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n border-color: tokens.$ifxColorOcean700;\n }\n }\n\n &.btn-tertiary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n color: tokens.$ifxColorBaseBlack;\n box-shadow: 0 0 0 0px tokens.$ifxColorBaseWhite, 0 0 0 2px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorOcean600;\n }\n }\n}","import { Component, Prop, h, Host, Method, Element, Listen, Watch, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'ifx-icon-button',\n styleUrl: 'icon-button.scss',\n shadow: true,\n})\n\nexport class IconButton {\n @Prop() variant: 'primary' | 'secondary' | 'tertiary';\n @Prop() size: string;\n @Prop() disabled: boolean;\n @Prop() icon: string;\n @Prop() href: string;\n @Prop() target: string = '_self';\n @Prop() shape: string = 'round';\n @Prop() ariaLabel: string | null;\n @State() internalIcon: string;\n @Element() el;\n\n private focusableElement: HTMLElement;\n \n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Watch('icon')\n updateIcon(newIcon: string) { \n this.internalIcon = newIcon;\n }\n\n @Method()\n async setFocus() {\n this.focusableElement.focus();\n }\n\n componentWillLoad() {\n if (this.shape === '') {\n this.shape = 'round';\n }\n this.internalIcon = this.icon;\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-icon-button', await framework)\n }\n }\n\n render() {\n return (\n <Host \n aria-disabled={this.disabled}\n aria-label={this.ariaLabel}> \n {this.href ? (\n <a\n ref={(el) => (this.focusableElement = el)}\n class={this.getClassNames()}\n href={!this.disabled ? this.href : undefined} \n target={this.target}\n rel={this.target === '_blank' ? 'noopener noreferrer' : undefined}\n >\n <ifx-icon icon={this.internalIcon}></ifx-icon>\n </a>\n ) : (\n <button\n class={this.getClassNames()}\n type=\"button\"\n disabled={this.disabled}\n >\n <ifx-icon icon={this.internalIcon}></ifx-icon>\n </button>\n )}\n </Host>\n );\n }\n\n getVariantClass() {\n return `${this.variant}` === \"secondary\"\n ? `secondary`\n : `${this.variant}` === 'tertiary'\n ? `tertiary`\n : `primary`;\n }\n\n getSizeClass() {\n if (`${this.size}` === \"xs\") {\n return \"xs\"\n }\n else if (`${this.size}` === \"s\") {\n return \"s\"\n }\n else if (`${this.size}` === \"l\") {\n return \"l\"\n }\n else return \"\";\n }\n\n getClassNames() {\n return classNames(\n 'btn icon-button',\n `btn-${this.shape}`,\n this.size && `btn-${this.getSizeClass()}`,\n `btn-${this.getVariantClass()}`,\n this.disabled ? 'disabled' : ''\n );\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.indicator__container { \n & .dot__wrapper { \n display: flex;\n width: 8px;\n height: 8px;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n border-radius: 50%;\n background-color: tokens.$ifxColorOcean500;\n }\n\n & .number__container {\n height: 16px;\n display: inline-flex;\n padding: 0; \n min-width: 16px; \n justify-content: center;\n align-items: center;\n border-radius: 100px;\n background-color: tokens.$ifxColorOcean500;\n\n & .number__wrapper {\n padding: 0 4px;\n color: tokens.$ifxColorBaseWhite;\n text-align: center;\n font-size: tokens.$ifxFontSizeS;\n font-style: normal;\n font-weight: tokens.$ifxFontWeightSemibold;\n line-height: 16px;\n }\n\n &.inverted {\n background-color: tokens.$ifxColorBaseWhite;\n\n & .number__wrapper {\n color: tokens.$ifxColorOcean500;\n }\n }\n }\n}\n\n\n","import { Component, h, Prop, Element, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-indicator',\n styleUrl: 'indicator.scss',\n shadow: true\n})\nexport class Indicator {\n @Element() el;\n @State() filteredNumber: string | number;\n @Prop() inverted: boolean = false;\n @Prop() ariaLabel: string | null;\n @Prop() variant: string = 'number'\n @Prop() number: number = 0;\n\n handleNumber() {\n this.filteredNumber = !isNaN(this.number) && this.number > 99 ? '99+' : this.number;\n }\n\n componentWillLoad() { \n this.handleNumber()\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-indicator', await framework)\n }\n }\n\n componentWillUpdate() {\n this.handleNumber()\n }\n\n render() {\n return (\n <div aria-label={this.ariaLabel} class='indicator__container'>\n {this.variant === 'number' && \n <div class={`number__container ${this.inverted ? 'inverted' : \"\"}`}>\n <div class=\"number__wrapper\">\n {this.filteredNumber}\n </div> \n </div>}\n {this.variant === 'dot' && <div class=\"dot__wrapper\"></div>}\n </div>\n );\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.container {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n gap: 32px;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n flex-wrap: wrap;\n\n & .items__per-page-wrapper {\n display: flex;\n align-items: center;\n gap: 16px;\n\n & .items__per-page-label {\n color: #1D1D1D;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n }\n\n & .items__per-page-field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n & ifx-select {\n width: 92px;\n }\n }\n }\n\n & .items__total-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 12px;\n\n & .items__total-button {\n display: flex;\n width: 40px;\n height: 40px;\n justify-content: center;\n align-items: center;\n border-radius: 100px;\n border: 1px solid #BFBBBB;\n background: #FFF;\n }\n\n & .page__numbers-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 12px;\n\n & .page__number-item {\n display: flex;\n padding: 6px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 100px;\n\n &.active {\n background-color: #0A8276;\n\n & span {\n color: #fff;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &:hover:not(.active) {\n background-color: #ddd;\n\n }\n\n &:active:not(.active) {\n background-color: #575352;\n }\n\n & span {\n display: flex;\n width: 16px;\n height: 16px;\n flex-direction: column;\n justify-content: center;\n color: #1D1D1D;\n text-align: center;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n }\n }\n }\n }\n}\n\n\n.pagination {\n display: flex;\n\n & ifx-icon-button:first-of-type {\n margin-right: 12px;\n }\n\n & ifx-icon-button:last-of-type {\n margin-left: 12px;\n }\n}\n\n.page__button {\n padding: 8px;\n border-radius: 100px;\n}\n\nol {\n list-style-type: none;\n padding: 0;\n margin: 0;\n display: inline-flex;\n align-items: center;\n gap: 12px;\n}\n\nli {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n border-radius: 100px;\n\n &:hover:not(.active) {\n & page__button {\n background-color: #EEEDED;\n }\n }\n\n &:active:not(.active) {\n & .page__button {\n background-color: #575352;\n color: #fff;\n }\n }\n\n &.active {\n background-color: #0A8276;\n\n & .page__button {\n color: #fff;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n & .page__button {\n text-decoration: none;\n display: flex;\n width: 16px;\n height: 16px;\n flex-direction: column;\n justify-content: center;\n color: #1D1D1D;\n text-align: center;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n align-items: center;\n }\n}\n\n.prev,\n.next {\n &.disabled {\n cursor: default;\n\n &:hover {\n cursor: default;\n text-decoration: none;\n }\n }\n}\n\n.prev {\n margin-right: 2.5px;\n}\n\n.next {\n margin-left: 2.5px;\n}\n\n@media (max-width: tokens.$ifxBreakpointM) {\n .container {\n gap: tokens.$ifxSpace200;\n justify-content: left;\n\n .items__total-wrapper {\n .pagination {\n ol {\n gap: tokens.$ifxSpace150;\n }\n }\n }\n }\n}\n\n@media (max-width: 374px) {\n .pagination {\n .ellipsis + .active {\n margin-left: tokens.$ifxSpace100;\n }\n\n .active + .ellipsis {\n margin-left: tokens.$ifxSpace100;\n }\n }\n}\n","import { Component, h, Element, Event, EventEmitter, Prop, State, Listen, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-pagination',\n styleUrl: 'pagination.scss',\n shadow: true\n})\nexport class Pagination {\n @Element() el: HTMLElement;\n @Event() ifxPageChange: EventEmitter;\n @Event() ifxItemsPerPageChange: EventEmitter;\n @Prop() currentPage: number = 1;\n @Prop() showItemsPerPage: boolean = true;\n @State() internalPage: number = 1;\n @State() internalItemsPerPage: number = 10;\n @State() numberOfPages: number[] = [];\n @Prop() total: number = 1;\n @Prop() itemsPerPage: any[] | string;\n @State() filteredItemsPerPage: any[] = [];\n @State() visiblePages: (number | string)[] = [];\n\n private CLASS_DISABLED = \"disabled\";\n private CLASS_ACTIVE = \"active\";\n private prevInternalPage: number;\n\n @Watch('total')\n watchTotalHandler() {\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n }\n\n @Watch('currentPage')\n currentPageWatcher(newVal: number) {\n this.internalPage = Math.max(1, Math.min(newVal, this.numberOfPages.length));\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n }\n\n @Listen('ifxSelect')\n setItemsPerPage(e: CustomEvent) {\n const selectedValue = e.detail?.value || e.detail?.label;\n const newItemsPerPage = parseInt(selectedValue) || 10;\n\n if (newItemsPerPage === this.internalItemsPerPage) {\n return;\n }\n\n this.internalItemsPerPage = newItemsPerPage;\n this.internalPage = 1;\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n this.handleEventEmission();\n }\n\n emitItemsPerPage(e) {\n this.ifxItemsPerPageChange.emit((e as any).detail.label)\n }\n\n async componentDidLoad() {\n if (this.showItemsPerPage) {\n const select = this.el.shadowRoot.querySelector('#itemsPerPageSelect');\n if(select) {\n select.addEventListener('ifxSelect', (e) => this.emitItemsPerPage(e))\n }\n }\n\n // Add resize listener to update pagination on screen size changes\n window.addEventListener('resize', this.handleResize);\n\n if(!isNestedInIfxComponent(this.el)) {\n const framework = detectFramework();\n trackComponent('ifx-pagination', await framework)\n }\n this.initPagination();\n }\n\n disconnectedCallback() {\n if (this.showItemsPerPage) {\n const select = this.el.shadowRoot.querySelector('#itemsPerPageSelect');\n if (select) {\n select.removeEventListener('ifxSelect', (e) => this.emitItemsPerPage(e));\n }\n }\n\n // Remove resize listener\n window.removeEventListener('resize', this.handleResize);\n\n // Clear any pending resize timeout\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n }\n\n updateVisiblePages() {\n // Check if screen is mobile (< 375px)\n const isMobile = window.innerWidth < 375;\n const totalPages = this.numberOfPages.length;\n const current = this.internalPage;\n let pages: (number | string)[] = [];\n\n if (isMobile) {\n // Mobile logic: maximum 5 elements\n if (totalPages <= 5) {\n pages = [...this.numberOfPages];\n } else {\n // Always show first page\n pages.push(1);\n\n if (current <= 2) {\n // Show: 1 2 3 … 10 (for pages 1 and 2)\n pages.push(2, 3, '...', totalPages);\n } else if (current >= totalPages - 1) {\n // Show: 1 … 23 24 25 (for last 2 pages only)\n pages.push('...', totalPages - 2, totalPages - 1, totalPages);\n } else {\n // Show: 1 … 5 … 10 (for middle pages, including page 3 and third-to-last page)\n pages.push('...', current, '...', totalPages);\n }\n }\n } else {\n // Desktop logic: maximum 7 elements\n const buffer = 2;\n\n if (totalPages <= 7) {\n pages = [...this.numberOfPages];\n } else {\n // Always show first page\n pages.push(1);\n\n // Determine the range around current page\n let start = Math.max(2, current - buffer);\n let end = Math.min(totalPages - 1, current + buffer);\n\n // Adjust range to ensure we show enough pages\n // If we're close to the beginning, extend the end\n if (current <= 4) {\n start = 2;\n end = Math.min(totalPages - 1, 5);\n }\n // If we're close to the end, extend the start\n else if (current >= totalPages - 3) {\n start = Math.max(2, totalPages - 4);\n end = totalPages - 1;\n }\n // For middle pages, show current +/- 1\n else {\n start = current - 1;\n end = current + 1;\n }\n\n // Add ellipsis before the range if there's a gap\n if (start > 2) {\n pages.push('...');\n }\n\n // Add the range of pages\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n // Add ellipsis after the range if there's a gap\n if (end < totalPages - 1) {\n pages.push('...');\n }\n\n // Always show last page\n pages.push(totalPages);\n }\n }\n\n this.visiblePages = pages;\n }\n\n calculateNumberOfPages() {\n const totalPages = Math.ceil(this.total / this.internalItemsPerPage);\n this.numberOfPages = Array.from({ length: totalPages }, (_, i) => i + 1);\n this.internalPage = Math.max(1, Math.min(this.currentPage, totalPages));\n }\n\n filterOptionsArray() {\n const items = typeof this.itemsPerPage === 'string' ?\n JSON.parse(this.itemsPerPage) : this.itemsPerPage;\n this.filteredItemsPerPage = items.map(item => ({\n ...item,\n label: item.label || item.value\n }));\n }\n\n componentWillLoad() {\n this.filterOptionsArray();\n\n const selectedOption = this.filteredItemsPerPage.find(option => option.selected);\n if (selectedOption) {\n this.internalItemsPerPage = Number(selectedOption.value);\n } else if (this.filteredItemsPerPage.length > 0) {\n this.internalItemsPerPage = Number(this.filteredItemsPerPage[0].value);\n }\n\n this.calculateNumberOfPages();\n this.internalPage = Math.max(1, Math.min(this.currentPage, this.numberOfPages.length));\n this.updateVisiblePages();\n }\n\n componentWillUpdate() {\n if (this.prevInternalPage !== this.internalPage) {\n this.updateVisiblePages();\n this.prevInternalPage = this.internalPage;\n }\n }\n\n componentDidUpdate() {\n this.initPagination();\n }\n\n handleEventEmission() {\n this.ifxPageChange.emit({\n currentPage: this.internalPage,\n totalPages: this.numberOfPages.length,\n itemsPerPage: this.internalItemsPerPage\n });\n }\n\n initPagination() {\n const pagination = this.el.shadowRoot.querySelector('.pagination');\n if (!pagination) return;\n\n const updateButtons = () => {\n const prev = pagination.querySelector<HTMLButtonElement>('.prev');\n const next = pagination.querySelector<HTMLButtonElement>('.next');\n if (prev) {\n prev.disabled = this.internalPage === 1;\n prev.classList.toggle(this.CLASS_DISABLED, this.internalPage === 1);\n }\n if (next) {\n next.disabled = this.internalPage === this.numberOfPages.length;\n next.classList.toggle(this.CLASS_DISABLED, this.internalPage === this.numberOfPages.length);\n }\n };\n\n pagination.querySelectorAll('li').forEach(li => {\n li.removeEventListener('click', this.handlePageClick);\n li.addEventListener('click', this.handlePageClick);\n });\n\n updateButtons();\n }\n\n private handlePageClick = (e: Event) => {\n const li = e.currentTarget as HTMLLIElement;\n const page = parseInt(li.dataset.page);\n if (!isNaN(page)) this.changePage(page);\n };\n\n private handleResize = () => {\n // Debounce resize events to prevent excessive calls\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n this.updateVisiblePages();\n }, 100);\n };\n\n private resizeTimeout: any;\n\n changePage(newPage: number) {\n newPage = Math.max(1, Math.min(newPage, this.numberOfPages.length));\n if (newPage === this.internalPage) return;\n\n this.internalPage = newPage;\n this.handleEventEmission();\n this.initPagination();\n }\n\n render() {\n return (\n <div class=\"container\">\n {this.showItemsPerPage && (\n <div class=\"items__per-page-wrapper\">\n <div class=\"items__per-page-label\">Results per Page</div>\n <div class=\"items__per-page-field\">\n <ifx-select\n id='itemsPerPageSelect'\n placeholder='false'\n show-search='false'\n value={undefined}\n disabled={false}\n error={false}\n size=\"s\"\n options={this.filteredItemsPerPage}\n placeholder-value=\"Select\"\n ></ifx-select>\n </div>\n </div>\n )}\n\n <div class=\"items__total-wrapper\">\n <div class=\"pagination\">\n <ifx-icon-button\n class=\"prev\"\n icon=\"arrow-left-16\"\n aria-label='Previous Page'\n onClick={() => this.changePage(this.internalPage - 1)}\n variant=\"secondary\"\n ></ifx-icon-button>\n\n <ol>\n {this.visiblePages.map((page, i) => typeof page === 'number' ? (\n <li\n key={`page-${page}`}\n class={{ [this.CLASS_ACTIVE]: page === this.internalPage }}\n data-page={page}\n >\n <span \n class='page__button'\n role=\"button\"\n tabindex=\"0\"\n aria-current={page === this.internalPage ? \"page\" : undefined}\n aria-label={`Page ${page}`}\n onClick={() => this.changePage(page)}\n onKeyDown={(e) => (e.key === 'Enter' || e.key === ' ') && this.changePage(page)}\n >\n {page}\n </span>\n </li>\n ) : (\n <li class=\"ellipsis\" key={`ellipsis-${i}`}>\n <span aria-hidden=\"true\">...</span>\n </li>\n ))}\n </ol>\n\n <ifx-icon-button\n class=\"next\"\n icon=\"arrow-right-16\"\n aria-label='Next Page'\n onClick={() => this.changePage(this.internalPage + 1)}\n variant=\"secondary\"\n ></ifx-icon-button>\n </div>\n </div>\n </div>\n );\n }\n}\n","/*! choices.js v10.2.0 | © 2022 Josh Johnson | https://github.com/jshjohnson/Choices#readme */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Choices\"] = factory();\n\telse\n\t\troot[\"Choices\"] = factory();\n})(window, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 282:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.clearChoices = exports.activateChoices = exports.filterChoices = exports.addChoice = void 0;\nvar constants_1 = __webpack_require__(883);\nvar addChoice = function (_a) {\n var value = _a.value,\n label = _a.label,\n id = _a.id,\n groupId = _a.groupId,\n disabled = _a.disabled,\n elementId = _a.elementId,\n customProperties = _a.customProperties,\n placeholder = _a.placeholder,\n keyCode = _a.keyCode;\n return {\n type: constants_1.ACTION_TYPES.ADD_CHOICE,\n value: value,\n label: label,\n id: id,\n groupId: groupId,\n disabled: disabled,\n elementId: elementId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\nexports.addChoice = addChoice;\nvar filterChoices = function (results) {\n return {\n type: constants_1.ACTION_TYPES.FILTER_CHOICES,\n results: results\n };\n};\nexports.filterChoices = filterChoices;\nvar activateChoices = function (active) {\n if (active === void 0) {\n active = true;\n }\n return {\n type: constants_1.ACTION_TYPES.ACTIVATE_CHOICES,\n active: active\n };\n};\nexports.activateChoices = activateChoices;\nvar clearChoices = function () {\n return {\n type: constants_1.ACTION_TYPES.CLEAR_CHOICES\n };\n};\nexports.clearChoices = clearChoices;\n\n/***/ }),\n\n/***/ 783:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addGroup = void 0;\nvar constants_1 = __webpack_require__(883);\nvar addGroup = function (_a) {\n var value = _a.value,\n id = _a.id,\n active = _a.active,\n disabled = _a.disabled;\n return {\n type: constants_1.ACTION_TYPES.ADD_GROUP,\n value: value,\n id: id,\n active: active,\n disabled: disabled\n };\n};\nexports.addGroup = addGroup;\n\n/***/ }),\n\n/***/ 464:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.highlightItem = exports.removeItem = exports.addItem = void 0;\nvar constants_1 = __webpack_require__(883);\nvar addItem = function (_a) {\n var value = _a.value,\n label = _a.label,\n id = _a.id,\n choiceId = _a.choiceId,\n groupId = _a.groupId,\n customProperties = _a.customProperties,\n placeholder = _a.placeholder,\n keyCode = _a.keyCode;\n return {\n type: constants_1.ACTION_TYPES.ADD_ITEM,\n value: value,\n label: label,\n id: id,\n choiceId: choiceId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\nexports.addItem = addItem;\nvar removeItem = function (id, choiceId) {\n return {\n type: constants_1.ACTION_TYPES.REMOVE_ITEM,\n id: id,\n choiceId: choiceId\n };\n};\nexports.removeItem = removeItem;\nvar highlightItem = function (id, highlighted) {\n return {\n type: constants_1.ACTION_TYPES.HIGHLIGHT_ITEM,\n id: id,\n highlighted: highlighted\n };\n};\nexports.highlightItem = highlightItem;\n\n/***/ }),\n\n/***/ 137:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setIsLoading = exports.resetTo = exports.clearAll = void 0;\nvar constants_1 = __webpack_require__(883);\nvar clearAll = function () {\n return {\n type: constants_1.ACTION_TYPES.CLEAR_ALL\n };\n};\nexports.clearAll = clearAll;\nvar resetTo = function (state) {\n return {\n type: constants_1.ACTION_TYPES.RESET_TO,\n state: state\n };\n};\nexports.resetTo = resetTo;\nvar setIsLoading = function (isLoading) {\n return {\n type: constants_1.ACTION_TYPES.SET_IS_LOADING,\n isLoading: isLoading\n };\n};\nexports.setIsLoading = setIsLoading;\n\n/***/ }),\n\n/***/ 373:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar deepmerge_1 = __importDefault(__webpack_require__(996));\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar fuse_js_1 = __importDefault(__webpack_require__(221));\nvar choices_1 = __webpack_require__(282);\nvar groups_1 = __webpack_require__(783);\nvar items_1 = __webpack_require__(464);\nvar misc_1 = __webpack_require__(137);\nvar components_1 = __webpack_require__(520);\nvar constants_1 = __webpack_require__(883);\nvar defaults_1 = __webpack_require__(789);\nvar utils_1 = __webpack_require__(799);\nvar reducers_1 = __webpack_require__(655);\nvar store_1 = __importDefault(__webpack_require__(744));\nvar templates_1 = __importDefault(__webpack_require__(686));\n/** @see {@link http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c} */\nvar IS_IE11 = '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style;\nvar USER_DEFAULTS = {};\n/**\n * Choices\n * @author Josh Johnson<josh@joshuajohnson.co.uk>\n */\nvar Choices = /** @class */function () {\n function Choices(element, userConfig) {\n if (element === void 0) {\n element = '[data-choice]';\n }\n if (userConfig === void 0) {\n userConfig = {};\n }\n var _this = this;\n if (userConfig.allowHTML === undefined) {\n console.warn('Deprecation warning: allowHTML will default to false in a future release. To render HTML in Choices, you will need to set it to true. Setting allowHTML will suppress this message.');\n }\n this.config = deepmerge_1.default.all([defaults_1.DEFAULT_CONFIG, Choices.defaults.options, userConfig],\n // When merging array configs, replace with a copy of the userConfig array,\n // instead of concatenating with the default array\n {\n arrayMerge: function (_, sourceArray) {\n return __spreadArray([], sourceArray, true);\n }\n });\n var invalidConfigOptions = (0, utils_1.diff)(this.config, defaults_1.DEFAULT_CONFIG);\n if (invalidConfigOptions.length) {\n console.warn('Unknown config option(s) passed', invalidConfigOptions.join(', '));\n }\n var passedElement = typeof element === 'string' ? document.querySelector(element) : element;\n if (!(passedElement instanceof HTMLInputElement || passedElement instanceof HTMLSelectElement)) {\n throw TypeError('Expected one of the following types text|select-one|select-multiple');\n }\n this._isTextElement = passedElement.type === constants_1.TEXT_TYPE;\n this._isSelectOneElement = passedElement.type === constants_1.SELECT_ONE_TYPE;\n this._isSelectMultipleElement = passedElement.type === constants_1.SELECT_MULTIPLE_TYPE;\n this._isSelectElement = this._isSelectOneElement || this._isSelectMultipleElement;\n this.config.searchEnabled = this._isSelectMultipleElement || this.config.searchEnabled;\n if (!['auto', 'always'].includes(\"\".concat(this.config.renderSelectedChoices))) {\n this.config.renderSelectedChoices = 'auto';\n }\n if (userConfig.addItemFilter && typeof userConfig.addItemFilter !== 'function') {\n var re = userConfig.addItemFilter instanceof RegExp ? userConfig.addItemFilter : new RegExp(userConfig.addItemFilter);\n this.config.addItemFilter = re.test.bind(re);\n }\n if (this._isTextElement) {\n this.passedElement = new components_1.WrappedInput({\n element: passedElement,\n classNames: this.config.classNames,\n delimiter: this.config.delimiter\n });\n } else {\n this.passedElement = new components_1.WrappedSelect({\n element: passedElement,\n classNames: this.config.classNames,\n template: function (data) {\n return _this._templates.option(data);\n }\n });\n }\n this.initialised = false;\n this._store = new store_1.default();\n this._initialState = reducers_1.defaultState;\n this._currentState = reducers_1.defaultState;\n this._prevState = reducers_1.defaultState;\n this._currentValue = '';\n this._canSearch = !!this.config.searchEnabled;\n this._isScrollingOnIe = false;\n this._highlightPosition = 0;\n this._wasTap = true;\n this._placeholderValue = this._generatePlaceholderValue();\n this._baseId = (0, utils_1.generateId)(this.passedElement.element, 'choices-');\n /**\n * setting direction in cases where it's explicitly set on passedElement\n * or when calculated direction is different from the document\n */\n this._direction = this.passedElement.dir;\n if (!this._direction) {\n var elementDirection = window.getComputedStyle(this.passedElement.element).direction;\n var documentDirection = window.getComputedStyle(document.documentElement).direction;\n if (elementDirection !== documentDirection) {\n this._direction = elementDirection;\n }\n }\n this._idNames = {\n itemChoice: 'item-choice'\n };\n if (this._isSelectElement) {\n // Assign preset groups from passed element\n this._presetGroups = this.passedElement.optionGroups;\n // Assign preset options from passed element\n this._presetOptions = this.passedElement.options;\n }\n // Assign preset choices from passed object\n this._presetChoices = this.config.choices;\n // Assign preset items from passed object first\n this._presetItems = this.config.items;\n // Add any values passed from attribute\n if (this.passedElement.value && this._isTextElement) {\n var splitValues = this.passedElement.value.split(this.config.delimiter);\n this._presetItems = this._presetItems.concat(splitValues);\n }\n // Create array of choices from option elements\n if (this.passedElement.options) {\n this.passedElement.options.forEach(function (option) {\n _this._presetChoices.push({\n value: option.value,\n label: option.innerHTML,\n selected: !!option.selected,\n disabled: option.disabled || option.parentNode.disabled,\n placeholder: option.value === '' || option.hasAttribute('placeholder'),\n customProperties: (0, utils_1.parseCustomProperties)(option.dataset.customProperties)\n });\n });\n }\n this._render = this._render.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n this._onKeyUp = this._onKeyUp.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onTouchMove = this._onTouchMove.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onMouseOver = this._onMouseOver.bind(this);\n this._onFormReset = this._onFormReset.bind(this);\n this._onSelectKey = this._onSelectKey.bind(this);\n this._onEnterKey = this._onEnterKey.bind(this);\n this._onEscapeKey = this._onEscapeKey.bind(this);\n this._onDirectionKey = this._onDirectionKey.bind(this);\n this._onDeleteKey = this._onDeleteKey.bind(this);\n // If element has already been initialised with Choices, fail silently\n if (this.passedElement.isActive) {\n if (!this.config.silent) {\n console.warn('Trying to initialise Choices on element already initialised', {\n element: element\n });\n }\n this.initialised = true;\n return;\n }\n // Let's go\n this.init();\n }\n Object.defineProperty(Choices, \"defaults\", {\n get: function () {\n return Object.preventExtensions({\n get options() {\n return USER_DEFAULTS;\n },\n get templates() {\n return templates_1.default;\n }\n });\n },\n enumerable: false,\n configurable: true\n });\n Choices.prototype.init = function () {\n if (this.initialised) {\n return;\n }\n this._createTemplates();\n this._createElements();\n this._createStructure();\n this._store.subscribe(this._render);\n this._render();\n this._addEventListeners();\n var shouldDisable = !this.config.addItems || this.passedElement.element.hasAttribute('disabled');\n if (shouldDisable) {\n this.disable();\n }\n this.initialised = true;\n var callbackOnInit = this.config.callbackOnInit;\n // Run callback if it is a function\n if (callbackOnInit && typeof callbackOnInit === 'function') {\n callbackOnInit.call(this);\n }\n };\n Choices.prototype.destroy = function () {\n if (!this.initialised) {\n return;\n }\n this._removeEventListeners();\n this.passedElement.reveal();\n this.containerOuter.unwrap(this.passedElement.element);\n this.clearStore();\n if (this._isSelectElement) {\n this.passedElement.options = this._presetOptions;\n }\n this._templates = templates_1.default;\n this.initialised = false;\n };\n Choices.prototype.enable = function () {\n if (this.passedElement.isDisabled) {\n this.passedElement.enable();\n }\n if (this.containerOuter.isDisabled) {\n this._addEventListeners();\n this.input.enable();\n this.containerOuter.enable();\n }\n return this;\n };\n Choices.prototype.disable = function () {\n if (!this.passedElement.isDisabled) {\n this.passedElement.disable();\n }\n if (!this.containerOuter.isDisabled) {\n this._removeEventListeners();\n this.input.disable();\n this.containerOuter.disable();\n }\n return this;\n };\n Choices.prototype.highlightItem = function (item, runEvent) {\n if (runEvent === void 0) {\n runEvent = true;\n }\n if (!item || !item.id) {\n return this;\n }\n var id = item.id,\n _a = item.groupId,\n groupId = _a === void 0 ? -1 : _a,\n _b = item.value,\n value = _b === void 0 ? '' : _b,\n _c = item.label,\n label = _c === void 0 ? '' : _c;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n this._store.dispatch((0, items_1.highlightItem)(id, true));\n if (runEvent) {\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n }\n return this;\n };\n Choices.prototype.unhighlightItem = function (item) {\n if (!item || !item.id) {\n return this;\n }\n var id = item.id,\n _a = item.groupId,\n groupId = _a === void 0 ? -1 : _a,\n _b = item.value,\n value = _b === void 0 ? '' : _b,\n _c = item.label,\n label = _c === void 0 ? '' : _c;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n this._store.dispatch((0, items_1.highlightItem)(id, false));\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n return this;\n };\n Choices.prototype.highlightAll = function () {\n var _this = this;\n this._store.items.forEach(function (item) {\n return _this.highlightItem(item);\n });\n return this;\n };\n Choices.prototype.unhighlightAll = function () {\n var _this = this;\n this._store.items.forEach(function (item) {\n return _this.unhighlightItem(item);\n });\n return this;\n };\n Choices.prototype.removeActiveItemsByValue = function (value) {\n var _this = this;\n this._store.activeItems.filter(function (item) {\n return item.value === value;\n }).forEach(function (item) {\n return _this._removeItem(item);\n });\n return this;\n };\n Choices.prototype.removeActiveItems = function (excludedId) {\n var _this = this;\n this._store.activeItems.filter(function (_a) {\n var id = _a.id;\n return id !== excludedId;\n }).forEach(function (item) {\n return _this._removeItem(item);\n });\n return this;\n };\n Choices.prototype.removeHighlightedItems = function (runEvent) {\n var _this = this;\n if (runEvent === void 0) {\n runEvent = false;\n }\n this._store.highlightedActiveItems.forEach(function (item) {\n _this._removeItem(item);\n // If this action was performed by the user\n // trigger the event\n if (runEvent) {\n _this._triggerChange(item.value);\n }\n });\n return this;\n };\n Choices.prototype.showDropdown = function (preventInputFocus) {\n var _this = this;\n if (this.dropdown.isActive) {\n return this;\n }\n requestAnimationFrame(function () {\n _this.dropdown.show();\n _this.containerOuter.open(_this.dropdown.distanceFromTopWindow);\n if (!preventInputFocus && _this._canSearch) {\n _this.input.focus();\n }\n _this.passedElement.triggerEvent(constants_1.EVENTS.showDropdown, {});\n });\n return this;\n };\n Choices.prototype.hideDropdown = function (preventInputBlur) {\n var _this = this;\n if (!this.dropdown.isActive) {\n return this;\n }\n requestAnimationFrame(function () {\n _this.dropdown.hide();\n _this.containerOuter.close();\n if (!preventInputBlur && _this._canSearch) {\n _this.input.removeActiveDescendant();\n _this.input.blur();\n }\n _this.passedElement.triggerEvent(constants_1.EVENTS.hideDropdown, {});\n });\n return this;\n };\n Choices.prototype.getValue = function (valueOnly) {\n if (valueOnly === void 0) {\n valueOnly = false;\n }\n var values = this._store.activeItems.reduce(function (selectedItems, item) {\n var itemValue = valueOnly ? item.value : item;\n selectedItems.push(itemValue);\n return selectedItems;\n }, []);\n return this._isSelectOneElement ? values[0] : values;\n };\n Choices.prototype.setValue = function (items) {\n var _this = this;\n if (!this.initialised) {\n return this;\n }\n items.forEach(function (value) {\n return _this._setChoiceOrItem(value);\n });\n return this;\n };\n Choices.prototype.setChoiceByValue = function (value) {\n var _this = this;\n if (!this.initialised || this._isTextElement) {\n return this;\n }\n // If only one value has been passed, convert to array\n var choiceValue = Array.isArray(value) ? value : [value];\n // Loop through each value and\n choiceValue.forEach(function (val) {\n return _this._findAndSelectChoiceByValue(val);\n });\n return this;\n };\n /**\n * Set choices of select input via an array of objects (or function that returns array of object or promise of it),\n * a value field name and a label field name.\n * This behaves the same as passing items via the choices option but can be called after initialising Choices.\n * This can also be used to add groups of choices (see example 2); Optionally pass a true `replaceChoices` value to remove any existing choices.\n * Optionally pass a `customProperties` object to add additional data to your choices (useful when searching/filtering etc).\n *\n * **Input types affected:** select-one, select-multiple\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([\n * {value: 'One', label: 'Label One', disabled: true},\n * {value: 'Two', label: 'Label Two', selected: true},\n * {value: 'Three', label: 'Label Three'},\n * ], 'value', 'label', false);\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices(async () => {\n * try {\n * const items = await fetch('/items');\n * return items.json()\n * } catch(err) {\n * console.error(err)\n * }\n * });\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([{\n * label: 'Group one',\n * id: 1,\n * disabled: false,\n * choices: [\n * {value: 'Child One', label: 'Child One', selected: true},\n * {value: 'Child Two', label: 'Child Two', disabled: true},\n * {value: 'Child Three', label: 'Child Three'},\n * ]\n * },\n * {\n * label: 'Group two',\n * id: 2,\n * disabled: false,\n * choices: [\n * {value: 'Child Four', label: 'Child Four', disabled: true},\n * {value: 'Child Five', label: 'Child Five'},\n * {value: 'Child Six', label: 'Child Six', customProperties: {\n * description: 'Custom description about child six',\n * random: 'Another random custom property'\n * }},\n * ]\n * }], 'value', 'label', false);\n * ```\n */\n Choices.prototype.setChoices = function (choicesArrayOrFetcher, value, label, replaceChoices) {\n var _this = this;\n if (choicesArrayOrFetcher === void 0) {\n choicesArrayOrFetcher = [];\n }\n if (value === void 0) {\n value = 'value';\n }\n if (label === void 0) {\n label = 'label';\n }\n if (replaceChoices === void 0) {\n replaceChoices = false;\n }\n if (!this.initialised) {\n throw new ReferenceError(\"setChoices was called on a non-initialized instance of Choices\");\n }\n if (!this._isSelectElement) {\n throw new TypeError(\"setChoices can't be used with INPUT based Choices\");\n }\n if (typeof value !== 'string' || !value) {\n throw new TypeError(\"value parameter must be a name of 'value' field in passed objects\");\n }\n // Clear choices if needed\n if (replaceChoices) {\n this.clearChoices();\n }\n if (typeof choicesArrayOrFetcher === 'function') {\n // it's a choices fetcher function\n var fetcher_1 = choicesArrayOrFetcher(this);\n if (typeof Promise === 'function' && fetcher_1 instanceof Promise) {\n // that's a promise\n // eslint-disable-next-line no-promise-executor-return\n return new Promise(function (resolve) {\n return requestAnimationFrame(resolve);\n }).then(function () {\n return _this._handleLoadingState(true);\n }).then(function () {\n return fetcher_1;\n }).then(function (data) {\n return _this.setChoices(data, value, label, replaceChoices);\n }).catch(function (err) {\n if (!_this.config.silent) {\n console.error(err);\n }\n }).then(function () {\n return _this._handleLoadingState(false);\n }).then(function () {\n return _this;\n });\n }\n // function returned something else than promise, let's check if it's an array of choices\n if (!Array.isArray(fetcher_1)) {\n throw new TypeError(\".setChoices first argument function must return either array of choices or Promise, got: \".concat(typeof fetcher_1));\n }\n // recursion with results, it's sync and choices were cleared already\n return this.setChoices(fetcher_1, value, label, false);\n }\n if (!Array.isArray(choicesArrayOrFetcher)) {\n throw new TypeError(\".setChoices must be called either with array of choices with a function resulting into Promise of array of choices\");\n }\n this.containerOuter.removeLoadingState();\n this._startLoading();\n choicesArrayOrFetcher.forEach(function (groupOrChoice) {\n if (groupOrChoice.choices) {\n _this._addGroup({\n id: groupOrChoice.id ? parseInt(\"\".concat(groupOrChoice.id), 10) : null,\n group: groupOrChoice,\n valueKey: value,\n labelKey: label\n });\n } else {\n var choice = groupOrChoice;\n _this._addChoice({\n value: choice[value],\n label: choice[label],\n isSelected: !!choice.selected,\n isDisabled: !!choice.disabled,\n placeholder: !!choice.placeholder,\n customProperties: choice.customProperties\n });\n }\n });\n this._stopLoading();\n return this;\n };\n Choices.prototype.clearChoices = function () {\n this._store.dispatch((0, choices_1.clearChoices)());\n return this;\n };\n Choices.prototype.clearStore = function () {\n this._store.dispatch((0, misc_1.clearAll)());\n return this;\n };\n Choices.prototype.clearInput = function () {\n var shouldSetInputWidth = !this._isSelectOneElement;\n this.input.clear(shouldSetInputWidth);\n if (!this._isTextElement && this._canSearch) {\n this._isSearching = false;\n this._store.dispatch((0, choices_1.activateChoices)(true));\n }\n return this;\n };\n Choices.prototype._render = function () {\n if (this._store.isLoading()) {\n return;\n }\n this._currentState = this._store.state;\n var stateChanged = this._currentState.choices !== this._prevState.choices || this._currentState.groups !== this._prevState.groups || this._currentState.items !== this._prevState.items;\n var shouldRenderChoices = this._isSelectElement;\n var shouldRenderItems = this._currentState.items !== this._prevState.items;\n if (!stateChanged) {\n return;\n }\n if (shouldRenderChoices) {\n this._renderChoices();\n }\n if (shouldRenderItems) {\n this._renderItems();\n }\n this._prevState = this._currentState;\n };\n Choices.prototype._renderChoices = function () {\n var _this = this;\n var _a = this._store,\n activeGroups = _a.activeGroups,\n activeChoices = _a.activeChoices;\n var choiceListFragment = document.createDocumentFragment();\n this.choiceList.clear();\n if (this.config.resetScrollPosition) {\n requestAnimationFrame(function () {\n return _this.choiceList.scrollToTop();\n });\n }\n // If we have grouped options\n if (activeGroups.length >= 1 && !this._isSearching) {\n // If we have a placeholder choice along with groups\n var activePlaceholders = activeChoices.filter(function (activeChoice) {\n return activeChoice.placeholder === true && activeChoice.groupId === -1;\n });\n if (activePlaceholders.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activePlaceholders, choiceListFragment);\n }\n choiceListFragment = this._createGroupsFragment(activeGroups, activeChoices, choiceListFragment);\n } else if (activeChoices.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activeChoices, choiceListFragment);\n }\n // If we have choices to show\n if (choiceListFragment.childNodes && choiceListFragment.childNodes.length > 0) {\n var activeItems = this._store.activeItems;\n var canAddItem = this._canAddItem(activeItems, this.input.value);\n // ...and we can select them\n if (canAddItem.response) {\n // ...append them and highlight the first choice\n this.choiceList.append(choiceListFragment);\n this._highlightChoice();\n } else {\n var notice = this._getTemplate('notice', canAddItem.notice);\n this.choiceList.append(notice);\n }\n } else {\n // Otherwise show a notice\n var dropdownItem = void 0;\n var notice = void 0;\n if (this._isSearching) {\n notice = typeof this.config.noResultsText === 'function' ? this.config.noResultsText() : this.config.noResultsText;\n dropdownItem = this._getTemplate('notice', notice, 'no-results');\n } else {\n notice = typeof this.config.noChoicesText === 'function' ? this.config.noChoicesText() : this.config.noChoicesText;\n dropdownItem = this._getTemplate('notice', notice, 'no-choices');\n }\n this.choiceList.append(dropdownItem);\n }\n };\n Choices.prototype._renderItems = function () {\n var activeItems = this._store.activeItems || [];\n this.itemList.clear();\n // Create a fragment to store our list items\n // (so we don't have to update the DOM for each item)\n var itemListFragment = this._createItemsFragment(activeItems);\n // If we have items to add, append them\n if (itemListFragment.childNodes) {\n this.itemList.append(itemListFragment);\n }\n };\n Choices.prototype._createGroupsFragment = function (groups, choices, fragment) {\n var _this = this;\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n var getGroupChoices = function (group) {\n return choices.filter(function (choice) {\n if (_this._isSelectOneElement) {\n return choice.groupId === group.id;\n }\n return choice.groupId === group.id && (_this.config.renderSelectedChoices === 'always' || !choice.selected);\n });\n };\n // If sorting is enabled, filter groups\n if (this.config.shouldSort) {\n groups.sort(this.config.sorter);\n }\n groups.forEach(function (group) {\n var groupChoices = getGroupChoices(group);\n if (groupChoices.length >= 1) {\n var dropdownGroup = _this._getTemplate('choiceGroup', group);\n fragment.appendChild(dropdownGroup);\n _this._createChoicesFragment(groupChoices, fragment, true);\n }\n });\n return fragment;\n };\n Choices.prototype._createChoicesFragment = function (choices, fragment, withinGroup) {\n var _this = this;\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n if (withinGroup === void 0) {\n withinGroup = false;\n }\n // Create a fragment to store our list items (so we don't have to update the DOM for each item)\n var _a = this.config,\n renderSelectedChoices = _a.renderSelectedChoices,\n searchResultLimit = _a.searchResultLimit,\n renderChoiceLimit = _a.renderChoiceLimit;\n var filter = this._isSearching ? utils_1.sortByScore : this.config.sorter;\n var appendChoice = function (choice) {\n var shouldRender = renderSelectedChoices === 'auto' ? _this._isSelectOneElement || !choice.selected : true;\n if (shouldRender) {\n var dropdownItem = _this._getTemplate('choice', choice, _this.config.itemSelectText);\n fragment.appendChild(dropdownItem);\n }\n };\n var rendererableChoices = choices;\n if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) {\n rendererableChoices = choices.filter(function (choice) {\n return !choice.selected;\n });\n }\n // Split array into placeholders and \"normal\" choices\n var _b = rendererableChoices.reduce(function (acc, choice) {\n if (choice.placeholder) {\n acc.placeholderChoices.push(choice);\n } else {\n acc.normalChoices.push(choice);\n }\n return acc;\n }, {\n placeholderChoices: [],\n normalChoices: []\n }),\n placeholderChoices = _b.placeholderChoices,\n normalChoices = _b.normalChoices;\n // If sorting is enabled or the user is searching, filter choices\n if (this.config.shouldSort || this._isSearching) {\n normalChoices.sort(filter);\n }\n var choiceLimit = rendererableChoices.length;\n // Prepend placeholeder\n var sortedChoices = this._isSelectOneElement ? __spreadArray(__spreadArray([], placeholderChoices, true), normalChoices, true) : normalChoices;\n if (this._isSearching) {\n choiceLimit = searchResultLimit;\n } else if (renderChoiceLimit && renderChoiceLimit > 0 && !withinGroup) {\n choiceLimit = renderChoiceLimit;\n }\n // Add each choice to dropdown within range\n for (var i = 0; i < choiceLimit; i += 1) {\n if (sortedChoices[i]) {\n appendChoice(sortedChoices[i]);\n }\n }\n return fragment;\n };\n Choices.prototype._createItemsFragment = function (items, fragment) {\n var _this = this;\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n // Create fragment to add elements to\n var _a = this.config,\n shouldSortItems = _a.shouldSortItems,\n sorter = _a.sorter,\n removeItemButton = _a.removeItemButton;\n // If sorting is enabled, filter items\n if (shouldSortItems && !this._isSelectOneElement) {\n items.sort(sorter);\n }\n if (this._isTextElement) {\n // Update the value of the hidden input\n this.passedElement.value = items.map(function (_a) {\n var value = _a.value;\n return value;\n }).join(this.config.delimiter);\n } else {\n // Update the options of the hidden input\n this.passedElement.options = items;\n }\n var addItemToFragment = function (item) {\n // Create new list element\n var listItem = _this._getTemplate('item', item, removeItemButton);\n // Append it to list\n fragment.appendChild(listItem);\n };\n // Add each list item to list\n items.forEach(addItemToFragment);\n return fragment;\n };\n Choices.prototype._triggerChange = function (value) {\n if (value === undefined || value === null) {\n return;\n }\n this.passedElement.triggerEvent(constants_1.EVENTS.change, {\n value: value\n });\n };\n Choices.prototype._selectPlaceholderChoice = function (placeholderChoice) {\n this._addItem({\n value: placeholderChoice.value,\n label: placeholderChoice.label,\n choiceId: placeholderChoice.id,\n groupId: placeholderChoice.groupId,\n placeholder: placeholderChoice.placeholder\n });\n this._triggerChange(placeholderChoice.value);\n };\n Choices.prototype._handleButtonAction = function (activeItems, element) {\n if (!activeItems || !element || !this.config.removeItems || !this.config.removeItemButton) {\n return;\n }\n var itemId = element.parentNode && element.parentNode.dataset.id;\n var itemToRemove = itemId && activeItems.find(function (item) {\n return item.id === parseInt(itemId, 10);\n });\n if (!itemToRemove) {\n return;\n }\n // Remove item associated with button\n this._removeItem(itemToRemove);\n this._triggerChange(itemToRemove.value);\n if (this._isSelectOneElement && this._store.placeholderChoice) {\n this._selectPlaceholderChoice(this._store.placeholderChoice);\n }\n };\n Choices.prototype._handleItemAction = function (activeItems, element, hasShiftKey) {\n var _this = this;\n if (hasShiftKey === void 0) {\n hasShiftKey = false;\n }\n if (!activeItems || !element || !this.config.removeItems || this._isSelectOneElement) {\n return;\n }\n var passedId = element.dataset.id;\n // We only want to select one item with a click\n // so we deselect any items that aren't the target\n // unless shift is being pressed\n activeItems.forEach(function (item) {\n if (item.id === parseInt(\"\".concat(passedId), 10) && !item.highlighted) {\n _this.highlightItem(item);\n } else if (!hasShiftKey && item.highlighted) {\n _this.unhighlightItem(item);\n }\n });\n // Focus input as without focus, a user cannot do anything with a\n // highlighted item\n this.input.focus();\n };\n Choices.prototype._handleChoiceAction = function (activeItems, element) {\n if (!activeItems || !element) {\n return;\n }\n // If we are clicking on an option\n var id = element.dataset.id;\n var choice = id && this._store.getChoiceById(id);\n if (!choice) {\n return;\n }\n var passedKeyCode = activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : undefined;\n var hasActiveDropdown = this.dropdown.isActive;\n // Update choice keyCode\n choice.keyCode = passedKeyCode;\n this.passedElement.triggerEvent(constants_1.EVENTS.choice, {\n choice: choice\n });\n if (!choice.selected && !choice.disabled) {\n var canAddItem = this._canAddItem(activeItems, choice.value);\n if (canAddItem.response) {\n this._addItem({\n value: choice.value,\n label: choice.label,\n choiceId: choice.id,\n groupId: choice.groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder,\n keyCode: choice.keyCode\n });\n this._triggerChange(choice.value);\n }\n }\n this.clearInput();\n // We want to close the dropdown if we are dealing with a single select box\n if (hasActiveDropdown && this._isSelectOneElement) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n Choices.prototype._handleBackspace = function (activeItems) {\n if (!this.config.removeItems || !activeItems) {\n return;\n }\n var lastItem = activeItems[activeItems.length - 1];\n var hasHighlightedItems = activeItems.some(function (item) {\n return item.highlighted;\n });\n // If editing the last item is allowed and there are not other selected items,\n // we can edit the item value. Otherwise if we can remove items, remove all selected items\n if (this.config.editItems && !hasHighlightedItems && lastItem) {\n this.input.value = lastItem.value;\n this.input.setWidth();\n this._removeItem(lastItem);\n this._triggerChange(lastItem.value);\n } else {\n if (!hasHighlightedItems) {\n // Highlight last item if none already highlighted\n this.highlightItem(lastItem, false);\n }\n this.removeHighlightedItems(true);\n }\n };\n Choices.prototype._startLoading = function () {\n this._store.dispatch((0, misc_1.setIsLoading)(true));\n };\n Choices.prototype._stopLoading = function () {\n this._store.dispatch((0, misc_1.setIsLoading)(false));\n };\n Choices.prototype._handleLoadingState = function (setLoading) {\n if (setLoading === void 0) {\n setLoading = true;\n }\n var placeholderItem = this.itemList.getChild(\".\".concat(this.config.classNames.placeholder));\n if (setLoading) {\n this.disable();\n this.containerOuter.addLoadingState();\n if (this._isSelectOneElement) {\n if (!placeholderItem) {\n placeholderItem = this._getTemplate('placeholder', this.config.loadingText);\n if (placeholderItem) {\n this.itemList.append(placeholderItem);\n }\n } else {\n placeholderItem.innerHTML = this.config.loadingText;\n }\n } else {\n this.input.placeholder = this.config.loadingText;\n }\n } else {\n this.enable();\n this.containerOuter.removeLoadingState();\n if (this._isSelectOneElement) {\n if (placeholderItem) {\n placeholderItem.innerHTML = this._placeholderValue || '';\n }\n } else {\n this.input.placeholder = this._placeholderValue || '';\n }\n }\n };\n Choices.prototype._handleSearch = function (value) {\n if (!this.input.isFocussed) {\n return;\n }\n var choices = this._store.choices;\n var _a = this.config,\n searchFloor = _a.searchFloor,\n searchChoices = _a.searchChoices;\n var hasUnactiveChoices = choices.some(function (option) {\n return !option.active;\n });\n // Check that we have a value to search and the input was an alphanumeric character\n if (value !== null && typeof value !== 'undefined' && value.length >= searchFloor) {\n var resultCount = searchChoices ? this._searchChoices(value) : 0;\n // Trigger search event\n this.passedElement.triggerEvent(constants_1.EVENTS.search, {\n value: value,\n resultCount: resultCount\n });\n } else if (hasUnactiveChoices) {\n // Otherwise reset choices to active\n this._isSearching = false;\n this._store.dispatch((0, choices_1.activateChoices)(true));\n }\n };\n Choices.prototype._canAddItem = function (activeItems, value) {\n var canAddItem = true;\n var notice = typeof this.config.addItemText === 'function' ? this.config.addItemText(value) : this.config.addItemText;\n if (!this._isSelectOneElement) {\n var isDuplicateValue = (0, utils_1.existsInArray)(activeItems, value);\n if (this.config.maxItemCount > 0 && this.config.maxItemCount <= activeItems.length) {\n // If there is a max entry limit and we have reached that limit\n // don't update\n canAddItem = false;\n notice = typeof this.config.maxItemText === 'function' ? this.config.maxItemText(this.config.maxItemCount) : this.config.maxItemText;\n }\n if (!this.config.duplicateItemsAllowed && isDuplicateValue && canAddItem) {\n canAddItem = false;\n notice = typeof this.config.uniqueItemText === 'function' ? this.config.uniqueItemText(value) : this.config.uniqueItemText;\n }\n if (this._isTextElement && this.config.addItems && canAddItem && typeof this.config.addItemFilter === 'function' && !this.config.addItemFilter(value)) {\n canAddItem = false;\n notice = typeof this.config.customAddItemText === 'function' ? this.config.customAddItemText(value) : this.config.customAddItemText;\n }\n }\n return {\n response: canAddItem,\n notice: notice\n };\n };\n Choices.prototype._searchChoices = function (value) {\n var newValue = typeof value === 'string' ? value.trim() : value;\n var currentValue = typeof this._currentValue === 'string' ? this._currentValue.trim() : this._currentValue;\n if (newValue.length < 1 && newValue === \"\".concat(currentValue, \" \")) {\n return 0;\n }\n // If new value matches the desired length and is not the same as the current value with a space\n var haystack = this._store.searchableChoices;\n var needle = newValue;\n var options = Object.assign(this.config.fuseOptions, {\n keys: __spreadArray([], this.config.searchFields, true),\n includeMatches: true\n });\n var fuse = new fuse_js_1.default(haystack, options);\n var results = fuse.search(needle); // see https://github.com/krisk/Fuse/issues/303\n this._currentValue = newValue;\n this._highlightPosition = 0;\n this._isSearching = true;\n this._store.dispatch((0, choices_1.filterChoices)(results));\n return results.length;\n };\n Choices.prototype._addEventListeners = function () {\n var documentElement = document.documentElement;\n // capture events - can cancel event processing or propagation\n documentElement.addEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.addEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.addEventListener('mousedown', this._onMouseDown, true);\n // passive events - doesn't call `preventDefault` or `stopPropagation`\n documentElement.addEventListener('click', this._onClick, {\n passive: true\n });\n documentElement.addEventListener('touchmove', this._onTouchMove, {\n passive: true\n });\n this.dropdown.element.addEventListener('mouseover', this._onMouseOver, {\n passive: true\n });\n if (this._isSelectOneElement) {\n this.containerOuter.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.containerOuter.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n }\n this.input.element.addEventListener('keyup', this._onKeyUp, {\n passive: true\n });\n this.input.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.input.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n if (this.input.element.form) {\n this.input.element.form.addEventListener('reset', this._onFormReset, {\n passive: true\n });\n }\n this.input.addEventListeners();\n };\n Choices.prototype._removeEventListeners = function () {\n var documentElement = document.documentElement;\n documentElement.removeEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.removeEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.removeEventListener('mousedown', this._onMouseDown, true);\n documentElement.removeEventListener('click', this._onClick);\n documentElement.removeEventListener('touchmove', this._onTouchMove);\n this.dropdown.element.removeEventListener('mouseover', this._onMouseOver);\n if (this._isSelectOneElement) {\n this.containerOuter.element.removeEventListener('focus', this._onFocus);\n this.containerOuter.element.removeEventListener('blur', this._onBlur);\n }\n this.input.element.removeEventListener('keyup', this._onKeyUp);\n this.input.element.removeEventListener('focus', this._onFocus);\n this.input.element.removeEventListener('blur', this._onBlur);\n if (this.input.element.form) {\n this.input.element.form.removeEventListener('reset', this._onFormReset);\n }\n this.input.removeEventListeners();\n };\n Choices.prototype._onKeyDown = function (event) {\n var keyCode = event.keyCode;\n var activeItems = this._store.activeItems;\n var hasFocusedInput = this.input.isFocussed;\n var hasActiveDropdown = this.dropdown.isActive;\n var hasItems = this.itemList.hasChildren();\n var keyString = String.fromCharCode(keyCode);\n // eslint-disable-next-line no-control-regex\n var wasPrintableChar = /[^\\x00-\\x1F]/.test(keyString);\n var BACK_KEY = constants_1.KEY_CODES.BACK_KEY,\n DELETE_KEY = constants_1.KEY_CODES.DELETE_KEY,\n ENTER_KEY = constants_1.KEY_CODES.ENTER_KEY,\n A_KEY = constants_1.KEY_CODES.A_KEY,\n ESC_KEY = constants_1.KEY_CODES.ESC_KEY,\n UP_KEY = constants_1.KEY_CODES.UP_KEY,\n DOWN_KEY = constants_1.KEY_CODES.DOWN_KEY,\n PAGE_UP_KEY = constants_1.KEY_CODES.PAGE_UP_KEY,\n PAGE_DOWN_KEY = constants_1.KEY_CODES.PAGE_DOWN_KEY;\n if (!this._isTextElement && !hasActiveDropdown && wasPrintableChar) {\n this.showDropdown();\n if (!this.input.isFocussed) {\n /*\n We update the input value with the pressed key as\n the input was not focussed at the time of key press\n therefore does not have the value of the key.\n */\n this.input.value += event.key.toLowerCase();\n }\n }\n switch (keyCode) {\n case A_KEY:\n return this._onSelectKey(event, hasItems);\n case ENTER_KEY:\n return this._onEnterKey(event, activeItems, hasActiveDropdown);\n case ESC_KEY:\n return this._onEscapeKey(hasActiveDropdown);\n case UP_KEY:\n case PAGE_UP_KEY:\n case DOWN_KEY:\n case PAGE_DOWN_KEY:\n return this._onDirectionKey(event, hasActiveDropdown);\n case DELETE_KEY:\n case BACK_KEY:\n return this._onDeleteKey(event, activeItems, hasFocusedInput);\n default:\n }\n };\n Choices.prototype._onKeyUp = function (_a) {\n var target = _a.target,\n keyCode = _a.keyCode;\n var value = this.input.value;\n var activeItems = this._store.activeItems;\n var canAddItem = this._canAddItem(activeItems, value);\n var backKey = constants_1.KEY_CODES.BACK_KEY,\n deleteKey = constants_1.KEY_CODES.DELETE_KEY;\n // We are typing into a text input and have a value, we want to show a dropdown\n // notice. Otherwise hide the dropdown\n if (this._isTextElement) {\n var canShowDropdownNotice = canAddItem.notice && value;\n if (canShowDropdownNotice) {\n var dropdownItem = this._getTemplate('notice', canAddItem.notice);\n this.dropdown.element.innerHTML = dropdownItem.outerHTML;\n this.showDropdown(true);\n } else {\n this.hideDropdown(true);\n }\n } else {\n var wasRemovalKeyCode = keyCode === backKey || keyCode === deleteKey;\n var userHasRemovedValue = wasRemovalKeyCode && target && !target.value;\n var canReactivateChoices = !this._isTextElement && this._isSearching;\n var canSearch = this._canSearch && canAddItem.response;\n if (userHasRemovedValue && canReactivateChoices) {\n this._isSearching = false;\n this._store.dispatch((0, choices_1.activateChoices)(true));\n } else if (canSearch) {\n this._handleSearch(this.input.rawValue);\n }\n }\n this._canSearch = this.config.searchEnabled;\n };\n Choices.prototype._onSelectKey = function (event, hasItems) {\n var ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n var hasCtrlDownKeyPressed = ctrlKey || metaKey;\n // If CTRL + A or CMD + A have been pressed and there are items to select\n if (hasCtrlDownKeyPressed && hasItems) {\n this._canSearch = false;\n var shouldHightlightAll = this.config.removeItems && !this.input.value && this.input.element === document.activeElement;\n if (shouldHightlightAll) {\n this.highlightAll();\n }\n }\n };\n Choices.prototype._onEnterKey = function (event, activeItems, hasActiveDropdown) {\n var target = event.target;\n var enterKey = constants_1.KEY_CODES.ENTER_KEY;\n var targetWasButton = target && target.hasAttribute('data-button');\n if (this._isTextElement && target && target.value) {\n var value = this.input.value;\n var canAddItem = this._canAddItem(activeItems, value);\n if (canAddItem.response) {\n this.hideDropdown(true);\n this._addItem({\n value: value\n });\n this._triggerChange(value);\n this.clearInput();\n }\n }\n if (targetWasButton) {\n this._handleButtonAction(activeItems, target);\n event.preventDefault();\n }\n if (hasActiveDropdown) {\n var highlightedChoice = this.dropdown.getChild(\".\".concat(this.config.classNames.highlightedState));\n if (highlightedChoice) {\n // add enter keyCode value\n if (activeItems[0]) {\n activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign\n }\n\n this._handleChoiceAction(activeItems, highlightedChoice);\n }\n event.preventDefault();\n } else if (this._isSelectOneElement) {\n this.showDropdown();\n event.preventDefault();\n }\n };\n Choices.prototype._onEscapeKey = function (hasActiveDropdown) {\n if (hasActiveDropdown) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n Choices.prototype._onDirectionKey = function (event, hasActiveDropdown) {\n var keyCode = event.keyCode,\n metaKey = event.metaKey;\n var downKey = constants_1.KEY_CODES.DOWN_KEY,\n pageUpKey = constants_1.KEY_CODES.PAGE_UP_KEY,\n pageDownKey = constants_1.KEY_CODES.PAGE_DOWN_KEY;\n // If up or down key is pressed, traverse through options\n if (hasActiveDropdown || this._isSelectOneElement) {\n this.showDropdown();\n this._canSearch = false;\n var directionInt = keyCode === downKey || keyCode === pageDownKey ? 1 : -1;\n var skipKey = metaKey || keyCode === pageDownKey || keyCode === pageUpKey;\n var selectableChoiceIdentifier = '[data-choice-selectable]';\n var nextEl = void 0;\n if (skipKey) {\n if (directionInt > 0) {\n nextEl = this.dropdown.element.querySelector(\"\".concat(selectableChoiceIdentifier, \":last-of-type\"));\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n } else {\n var currentEl = this.dropdown.element.querySelector(\".\".concat(this.config.classNames.highlightedState));\n if (currentEl) {\n nextEl = (0, utils_1.getAdjacentEl)(currentEl, selectableChoiceIdentifier, directionInt);\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n }\n if (nextEl) {\n // We prevent default to stop the cursor moving\n // when pressing the arrow\n if (!(0, utils_1.isScrolledIntoView)(nextEl, this.choiceList.element, directionInt)) {\n this.choiceList.scrollToChildElement(nextEl, directionInt);\n }\n this._highlightChoice(nextEl);\n }\n // Prevent default to maintain cursor position whilst\n // traversing dropdown options\n event.preventDefault();\n }\n };\n Choices.prototype._onDeleteKey = function (event, activeItems, hasFocusedInput) {\n var target = event.target;\n // If backspace or delete key is pressed and the input has no value\n if (!this._isSelectOneElement && !target.value && hasFocusedInput) {\n this._handleBackspace(activeItems);\n event.preventDefault();\n }\n };\n Choices.prototype._onTouchMove = function () {\n if (this._wasTap) {\n this._wasTap = false;\n }\n };\n Choices.prototype._onTouchEnd = function (event) {\n var target = (event || event.touches[0]).target;\n var touchWasWithinContainer = this._wasTap && this.containerOuter.element.contains(target);\n if (touchWasWithinContainer) {\n var containerWasExactTarget = target === this.containerOuter.element || target === this.containerInner.element;\n if (containerWasExactTarget) {\n if (this._isTextElement) {\n this.input.focus();\n } else if (this._isSelectMultipleElement) {\n this.showDropdown();\n }\n }\n // Prevents focus event firing\n event.stopPropagation();\n }\n this._wasTap = true;\n };\n /**\n * Handles mousedown event in capture mode for containetOuter.element\n */\n Choices.prototype._onMouseDown = function (event) {\n var target = event.target;\n if (!(target instanceof HTMLElement)) {\n return;\n }\n // If we have our mouse down on the scrollbar and are on IE11...\n if (IS_IE11 && this.choiceList.element.contains(target)) {\n // check if click was on a scrollbar area\n var firstChoice = this.choiceList.element.firstElementChild;\n var isOnScrollbar = this._direction === 'ltr' ? event.offsetX >= firstChoice.offsetWidth : event.offsetX < firstChoice.offsetLeft;\n this._isScrollingOnIe = isOnScrollbar;\n }\n if (target === this.input.element) {\n return;\n }\n var item = target.closest('[data-button],[data-item],[data-choice]');\n if (item instanceof HTMLElement) {\n var hasShiftKey = event.shiftKey;\n var activeItems = this._store.activeItems;\n var dataset = item.dataset;\n if ('button' in dataset) {\n this._handleButtonAction(activeItems, item);\n } else if ('item' in dataset) {\n this._handleItemAction(activeItems, item, hasShiftKey);\n } else if ('choice' in dataset) {\n this._handleChoiceAction(activeItems, item);\n }\n }\n event.preventDefault();\n };\n /**\n * Handles mouseover event over this.dropdown\n * @param {MouseEvent} event\n */\n Choices.prototype._onMouseOver = function (_a) {\n var target = _a.target;\n if (target instanceof HTMLElement && 'choice' in target.dataset) {\n this._highlightChoice(target);\n }\n };\n Choices.prototype._onClick = function (_a) {\n var target = _a.target;\n var clickWasWithinContainer = this.containerOuter.element.contains(target);\n if (clickWasWithinContainer) {\n if (!this.dropdown.isActive && !this.containerOuter.isDisabled) {\n if (this._isTextElement) {\n if (document.activeElement !== this.input.element) {\n this.input.focus();\n }\n } else {\n this.showDropdown();\n this.containerOuter.focus();\n }\n } else if (this._isSelectOneElement && target !== this.input.element && !this.dropdown.element.contains(target)) {\n this.hideDropdown();\n }\n } else {\n var hasHighlightedItems = this._store.highlightedActiveItems.length > 0;\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n this.containerOuter.removeFocusState();\n this.hideDropdown(true);\n }\n };\n Choices.prototype._onFocus = function (_a) {\n var _b;\n var _this = this;\n var target = _a.target;\n var focusWasWithinContainer = target && this.containerOuter.element.contains(target);\n if (!focusWasWithinContainer) {\n return;\n }\n var focusActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.addFocusState();\n }\n }, _b[constants_1.SELECT_ONE_TYPE] = function () {\n _this.containerOuter.addFocusState();\n if (target === _this.input.element) {\n _this.showDropdown(true);\n }\n }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this.input.element) {\n _this.showDropdown(true);\n // If element is a select box, the focused element is the container and the dropdown\n // isn't already open, focus and show dropdown\n _this.containerOuter.addFocusState();\n }\n }, _b);\n focusActions[this.passedElement.element.type]();\n };\n Choices.prototype._onBlur = function (_a) {\n var _b;\n var _this = this;\n var target = _a.target;\n var blurWasWithinContainer = target && this.containerOuter.element.contains(target);\n if (blurWasWithinContainer && !this._isScrollingOnIe) {\n var activeItems = this._store.activeItems;\n var hasHighlightedItems_1 = activeItems.some(function (item) {\n return item.highlighted;\n });\n var blurActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.removeFocusState();\n if (hasHighlightedItems_1) {\n _this.unhighlightAll();\n }\n _this.hideDropdown(true);\n }\n }, _b[constants_1.SELECT_ONE_TYPE] = function () {\n _this.containerOuter.removeFocusState();\n if (target === _this.input.element || target === _this.containerOuter.element && !_this._canSearch) {\n _this.hideDropdown(true);\n }\n }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.removeFocusState();\n _this.hideDropdown(true);\n if (hasHighlightedItems_1) {\n _this.unhighlightAll();\n }\n }\n }, _b);\n blurActions[this.passedElement.element.type]();\n } else {\n // On IE11, clicking the scollbar blurs our input and thus\n // closes the dropdown. To stop this, we refocus our input\n // if we know we are on IE *and* are scrolling.\n this._isScrollingOnIe = false;\n this.input.element.focus();\n }\n };\n Choices.prototype._onFormReset = function () {\n this._store.dispatch((0, misc_1.resetTo)(this._initialState));\n };\n Choices.prototype._highlightChoice = function (el) {\n var _this = this;\n if (el === void 0) {\n el = null;\n }\n var choices = Array.from(this.dropdown.element.querySelectorAll('[data-choice-selectable]'));\n if (!choices.length) {\n return;\n }\n var passedEl = el;\n var highlightedChoices = Array.from(this.dropdown.element.querySelectorAll(\".\".concat(this.config.classNames.highlightedState)));\n // Remove any highlighted choices\n highlightedChoices.forEach(function (choice) {\n choice.classList.remove(_this.config.classNames.highlightedState);\n choice.setAttribute('aria-selected', 'false');\n });\n if (passedEl) {\n this._highlightPosition = choices.indexOf(passedEl);\n } else {\n // Highlight choice based on last known highlight location\n if (choices.length > this._highlightPosition) {\n // If we have an option to highlight\n passedEl = choices[this._highlightPosition];\n } else {\n // Otherwise highlight the option before\n passedEl = choices[choices.length - 1];\n }\n if (!passedEl) {\n passedEl = choices[0];\n }\n }\n passedEl.classList.add(this.config.classNames.highlightedState);\n passedEl.setAttribute('aria-selected', 'true');\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightChoice, {\n el: passedEl\n });\n if (this.dropdown.isActive) {\n // IE11 ignores aria-label and blocks virtual keyboard\n // if aria-activedescendant is set without a dropdown\n this.input.setActiveDescendant(passedEl.id);\n this.containerOuter.setActiveDescendant(passedEl.id);\n }\n };\n Choices.prototype._addItem = function (_a) {\n var value = _a.value,\n _b = _a.label,\n label = _b === void 0 ? null : _b,\n _c = _a.choiceId,\n choiceId = _c === void 0 ? -1 : _c,\n _d = _a.groupId,\n groupId = _d === void 0 ? -1 : _d,\n _e = _a.customProperties,\n customProperties = _e === void 0 ? {} : _e,\n _f = _a.placeholder,\n placeholder = _f === void 0 ? false : _f,\n _g = _a.keyCode,\n keyCode = _g === void 0 ? -1 : _g;\n var passedValue = typeof value === 'string' ? value.trim() : value;\n var items = this._store.items;\n var passedLabel = label || passedValue;\n var passedOptionId = choiceId || -1;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n var id = items ? items.length + 1 : 1;\n // If a prepended value has been passed, prepend it\n if (this.config.prependValue) {\n passedValue = this.config.prependValue + passedValue.toString();\n }\n // If an appended value has been passed, append it\n if (this.config.appendValue) {\n passedValue += this.config.appendValue.toString();\n }\n this._store.dispatch((0, items_1.addItem)({\n value: passedValue,\n label: passedLabel,\n id: id,\n choiceId: passedOptionId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n if (this._isSelectOneElement) {\n this.removeActiveItems(id);\n }\n // Trigger change event\n this.passedElement.triggerEvent(constants_1.EVENTS.addItem, {\n id: id,\n value: passedValue,\n label: passedLabel,\n customProperties: customProperties,\n groupValue: group && group.value ? group.value : null,\n keyCode: keyCode\n });\n };\n Choices.prototype._removeItem = function (item) {\n var id = item.id,\n value = item.value,\n label = item.label,\n customProperties = item.customProperties,\n choiceId = item.choiceId,\n groupId = item.groupId;\n var group = groupId && groupId >= 0 ? this._store.getGroupById(groupId) : null;\n if (!id || !choiceId) {\n return;\n }\n this._store.dispatch((0, items_1.removeItem)(id, choiceId));\n this.passedElement.triggerEvent(constants_1.EVENTS.removeItem, {\n id: id,\n value: value,\n label: label,\n customProperties: customProperties,\n groupValue: group && group.value ? group.value : null\n });\n };\n Choices.prototype._addChoice = function (_a) {\n var value = _a.value,\n _b = _a.label,\n label = _b === void 0 ? null : _b,\n _c = _a.isSelected,\n isSelected = _c === void 0 ? false : _c,\n _d = _a.isDisabled,\n isDisabled = _d === void 0 ? false : _d,\n _e = _a.groupId,\n groupId = _e === void 0 ? -1 : _e,\n _f = _a.customProperties,\n customProperties = _f === void 0 ? {} : _f,\n _g = _a.placeholder,\n placeholder = _g === void 0 ? false : _g,\n _h = _a.keyCode,\n keyCode = _h === void 0 ? -1 : _h;\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n // Generate unique id\n var choices = this._store.choices;\n var choiceLabel = label || value;\n var choiceId = choices ? choices.length + 1 : 1;\n var choiceElementId = \"\".concat(this._baseId, \"-\").concat(this._idNames.itemChoice, \"-\").concat(choiceId);\n this._store.dispatch((0, choices_1.addChoice)({\n id: choiceId,\n groupId: groupId,\n elementId: choiceElementId,\n value: value,\n label: choiceLabel,\n disabled: isDisabled,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n if (isSelected) {\n this._addItem({\n value: value,\n label: choiceLabel,\n choiceId: choiceId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n });\n }\n };\n Choices.prototype._addGroup = function (_a) {\n var _this = this;\n var group = _a.group,\n id = _a.id,\n _b = _a.valueKey,\n valueKey = _b === void 0 ? 'value' : _b,\n _c = _a.labelKey,\n labelKey = _c === void 0 ? 'label' : _c;\n var groupChoices = (0, utils_1.isType)('Object', group) ? group.choices : Array.from(group.getElementsByTagName('OPTION'));\n var groupId = id || Math.floor(new Date().valueOf() * Math.random());\n var isDisabled = group.disabled ? group.disabled : false;\n if (groupChoices) {\n this._store.dispatch((0, groups_1.addGroup)({\n value: group.label,\n id: groupId,\n active: true,\n disabled: isDisabled\n }));\n var addGroupChoices = function (choice) {\n var isOptDisabled = choice.disabled || choice.parentNode && choice.parentNode.disabled;\n _this._addChoice({\n value: choice[valueKey],\n label: (0, utils_1.isType)('Object', choice) ? choice[labelKey] : choice.innerHTML,\n isSelected: choice.selected,\n isDisabled: isOptDisabled,\n groupId: groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder\n });\n };\n groupChoices.forEach(addGroupChoices);\n } else {\n this._store.dispatch((0, groups_1.addGroup)({\n value: group.label,\n id: group.id,\n active: false,\n disabled: group.disabled\n }));\n }\n };\n Choices.prototype._getTemplate = function (template) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return (_a = this._templates[template]).call.apply(_a, __spreadArray([this, this.config], args, false));\n };\n Choices.prototype._createTemplates = function () {\n var callbackOnCreateTemplates = this.config.callbackOnCreateTemplates;\n var userTemplates = {};\n if (callbackOnCreateTemplates && typeof callbackOnCreateTemplates === 'function') {\n userTemplates = callbackOnCreateTemplates.call(this, utils_1.strToEl);\n }\n this._templates = (0, deepmerge_1.default)(templates_1.default, userTemplates);\n };\n Choices.prototype._createElements = function () {\n this.containerOuter = new components_1.Container({\n element: this._getTemplate('containerOuter', this._direction, this._isSelectElement, this._isSelectOneElement, this.config.searchEnabled, this.passedElement.element.type, this.config.labelId),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.containerInner = new components_1.Container({\n element: this._getTemplate('containerInner'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.input = new components_1.Input({\n element: this._getTemplate('input', this._placeholderValue),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n preventPaste: !this.config.paste\n });\n this.choiceList = new components_1.List({\n element: this._getTemplate('choiceList', this._isSelectOneElement)\n });\n this.itemList = new components_1.List({\n element: this._getTemplate('itemList', this._isSelectOneElement)\n });\n this.dropdown = new components_1.Dropdown({\n element: this._getTemplate('dropdown'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type\n });\n };\n Choices.prototype._createStructure = function () {\n // Hide original element\n this.passedElement.conceal();\n // Wrap input in container preserving DOM ordering\n this.containerInner.wrap(this.passedElement.element);\n // Wrapper inner container with outer container\n this.containerOuter.wrap(this.containerInner.element);\n if (this._isSelectOneElement) {\n this.input.placeholder = this.config.searchPlaceholderValue || '';\n } else if (this._placeholderValue) {\n this.input.placeholder = this._placeholderValue;\n this.input.setWidth();\n }\n this.containerOuter.element.appendChild(this.containerInner.element);\n this.containerOuter.element.appendChild(this.dropdown.element);\n this.containerInner.element.appendChild(this.itemList.element);\n if (!this._isTextElement) {\n this.dropdown.element.appendChild(this.choiceList.element);\n }\n if (!this._isSelectOneElement) {\n this.containerInner.element.appendChild(this.input.element);\n } else if (this.config.searchEnabled) {\n this.dropdown.element.insertBefore(this.input.element, this.dropdown.element.firstChild);\n }\n if (this._isSelectElement) {\n this._highlightPosition = 0;\n this._isSearching = false;\n this._startLoading();\n if (this._presetGroups.length) {\n this._addPredefinedGroups(this._presetGroups);\n } else {\n this._addPredefinedChoices(this._presetChoices);\n }\n this._stopLoading();\n }\n if (this._isTextElement) {\n this._addPredefinedItems(this._presetItems);\n }\n };\n Choices.prototype._addPredefinedGroups = function (groups) {\n var _this = this;\n // If we have a placeholder option\n var placeholderChoice = this.passedElement.placeholderOption;\n if (placeholderChoice && placeholderChoice.parentNode && placeholderChoice.parentNode.tagName === 'SELECT') {\n this._addChoice({\n value: placeholderChoice.value,\n label: placeholderChoice.innerHTML,\n isSelected: placeholderChoice.selected,\n isDisabled: placeholderChoice.disabled,\n placeholder: true\n });\n }\n groups.forEach(function (group) {\n return _this._addGroup({\n group: group,\n id: group.id || null\n });\n });\n };\n Choices.prototype._addPredefinedChoices = function (choices) {\n var _this = this;\n // If sorting is enabled or the user is searching, filter choices\n if (this.config.shouldSort) {\n choices.sort(this.config.sorter);\n }\n var hasSelectedChoice = choices.some(function (choice) {\n return choice.selected;\n });\n var firstEnabledChoiceIndex = choices.findIndex(function (choice) {\n return choice.disabled === undefined || !choice.disabled;\n });\n choices.forEach(function (choice, index) {\n var _a = choice.value,\n value = _a === void 0 ? '' : _a,\n label = choice.label,\n customProperties = choice.customProperties,\n placeholder = choice.placeholder;\n if (_this._isSelectElement) {\n // If the choice is actually a group\n if (choice.choices) {\n _this._addGroup({\n group: choice,\n id: choice.id || null\n });\n } else {\n /**\n * If there is a selected choice already or the choice is not the first in\n * the array, add each choice normally.\n *\n * Otherwise we pre-select the first enabled choice in the array (\"select-one\" only)\n */\n var shouldPreselect = _this._isSelectOneElement && !hasSelectedChoice && index === firstEnabledChoiceIndex;\n var isSelected = shouldPreselect ? true : choice.selected;\n var isDisabled = choice.disabled;\n _this._addChoice({\n value: value,\n label: label,\n isSelected: !!isSelected,\n isDisabled: !!isDisabled,\n placeholder: !!placeholder,\n customProperties: customProperties\n });\n }\n } else {\n _this._addChoice({\n value: value,\n label: label,\n isSelected: !!choice.selected,\n isDisabled: !!choice.disabled,\n placeholder: !!choice.placeholder,\n customProperties: customProperties\n });\n }\n });\n };\n Choices.prototype._addPredefinedItems = function (items) {\n var _this = this;\n items.forEach(function (item) {\n if (typeof item === 'object' && item.value) {\n _this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n if (typeof item === 'string') {\n _this._addItem({\n value: item\n });\n }\n });\n };\n Choices.prototype._setChoiceOrItem = function (item) {\n var _this = this;\n var itemType = (0, utils_1.getType)(item).toLowerCase();\n var handleType = {\n object: function () {\n if (!item.value) {\n return;\n }\n // If we are dealing with a select input, we need to create an option first\n // that is then selected. For text inputs we can just add items normally.\n if (!_this._isTextElement) {\n _this._addChoice({\n value: item.value,\n label: item.label,\n isSelected: true,\n isDisabled: false,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n } else {\n _this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n },\n string: function () {\n if (!_this._isTextElement) {\n _this._addChoice({\n value: item,\n label: item,\n isSelected: true,\n isDisabled: false\n });\n } else {\n _this._addItem({\n value: item\n });\n }\n }\n };\n handleType[itemType]();\n };\n Choices.prototype._findAndSelectChoiceByValue = function (value) {\n var _this = this;\n var choices = this._store.choices;\n // Check 'value' property exists and the choice isn't already selected\n var foundChoice = choices.find(function (choice) {\n return _this.config.valueComparer(choice.value, value);\n });\n if (foundChoice && !foundChoice.selected) {\n this._addItem({\n value: foundChoice.value,\n label: foundChoice.label,\n choiceId: foundChoice.id,\n groupId: foundChoice.groupId,\n customProperties: foundChoice.customProperties,\n placeholder: foundChoice.placeholder,\n keyCode: foundChoice.keyCode\n });\n }\n };\n Choices.prototype._generatePlaceholderValue = function () {\n if (this._isSelectElement && this.passedElement.placeholderOption) {\n var placeholderOption = this.passedElement.placeholderOption;\n return placeholderOption ? placeholderOption.text : null;\n }\n var _a = this.config,\n placeholder = _a.placeholder,\n placeholderValue = _a.placeholderValue;\n var dataset = this.passedElement.element.dataset;\n if (placeholder) {\n if (placeholderValue) {\n return placeholderValue;\n }\n if (dataset.placeholder) {\n return dataset.placeholder;\n }\n }\n return null;\n };\n return Choices;\n}();\nexports[\"default\"] = Choices;\n\n/***/ }),\n\n/***/ 613:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar utils_1 = __webpack_require__(799);\nvar constants_1 = __webpack_require__(883);\nvar Container = /** @class */function () {\n function Container(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames,\n position = _a.position;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.position = position;\n this.isOpen = false;\n this.isFlipped = false;\n this.isFocussed = false;\n this.isDisabled = false;\n this.isLoading = false;\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n Container.prototype.addEventListeners = function () {\n this.element.addEventListener('focus', this._onFocus);\n this.element.addEventListener('blur', this._onBlur);\n };\n Container.prototype.removeEventListeners = function () {\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n };\n /**\n * Determine whether container should be flipped based on passed\n * dropdown position\n */\n Container.prototype.shouldFlip = function (dropdownPos) {\n if (typeof dropdownPos !== 'number') {\n return false;\n }\n // If flip is enabled and the dropdown bottom position is\n // greater than the window height flip the dropdown.\n var shouldFlip = false;\n if (this.position === 'auto') {\n shouldFlip = !window.matchMedia(\"(min-height: \".concat(dropdownPos + 1, \"px)\")).matches;\n } else if (this.position === 'top') {\n shouldFlip = true;\n }\n return shouldFlip;\n };\n Container.prototype.setActiveDescendant = function (activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n Container.prototype.removeActiveDescendant = function () {\n this.element.removeAttribute('aria-activedescendant');\n };\n Container.prototype.open = function (dropdownPos) {\n this.element.classList.add(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isOpen = true;\n if (this.shouldFlip(dropdownPos)) {\n this.element.classList.add(this.classNames.flippedState);\n this.isFlipped = true;\n }\n };\n Container.prototype.close = function () {\n this.element.classList.remove(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'false');\n this.removeActiveDescendant();\n this.isOpen = false;\n // A dropdown flips if it does not have space within the page\n if (this.isFlipped) {\n this.element.classList.remove(this.classNames.flippedState);\n this.isFlipped = false;\n }\n };\n Container.prototype.focus = function () {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n Container.prototype.addFocusState = function () {\n this.element.classList.add(this.classNames.focusState);\n };\n Container.prototype.removeFocusState = function () {\n this.element.classList.remove(this.classNames.focusState);\n };\n Container.prototype.enable = function () {\n this.element.classList.remove(this.classNames.disabledState);\n this.element.removeAttribute('aria-disabled');\n if (this.type === constants_1.SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '0');\n }\n this.isDisabled = false;\n };\n Container.prototype.disable = function () {\n this.element.classList.add(this.classNames.disabledState);\n this.element.setAttribute('aria-disabled', 'true');\n if (this.type === constants_1.SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '-1');\n }\n this.isDisabled = true;\n };\n Container.prototype.wrap = function (element) {\n (0, utils_1.wrap)(element, this.element);\n };\n Container.prototype.unwrap = function (element) {\n if (this.element.parentNode) {\n // Move passed element outside this element\n this.element.parentNode.insertBefore(element, this.element);\n // Remove this element\n this.element.parentNode.removeChild(this.element);\n }\n };\n Container.prototype.addLoadingState = function () {\n this.element.classList.add(this.classNames.loadingState);\n this.element.setAttribute('aria-busy', 'true');\n this.isLoading = true;\n };\n Container.prototype.removeLoadingState = function () {\n this.element.classList.remove(this.classNames.loadingState);\n this.element.removeAttribute('aria-busy');\n this.isLoading = false;\n };\n Container.prototype._onFocus = function () {\n this.isFocussed = true;\n };\n Container.prototype._onBlur = function () {\n this.isFocussed = false;\n };\n return Container;\n}();\nexports[\"default\"] = Container;\n\n/***/ }),\n\n/***/ 217:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar Dropdown = /** @class */function () {\n function Dropdown(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.isActive = false;\n }\n Object.defineProperty(Dropdown.prototype, \"distanceFromTopWindow\", {\n /**\n * Bottom position of dropdown in viewport coordinates\n */\n get: function () {\n return this.element.getBoundingClientRect().bottom;\n },\n enumerable: false,\n configurable: true\n });\n Dropdown.prototype.getChild = function (selector) {\n return this.element.querySelector(selector);\n };\n /**\n * Show dropdown to user by adding active state class\n */\n Dropdown.prototype.show = function () {\n this.element.classList.add(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isActive = true;\n return this;\n };\n /**\n * Hide dropdown from user\n */\n Dropdown.prototype.hide = function () {\n this.element.classList.remove(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'false');\n this.isActive = false;\n return this;\n };\n return Dropdown;\n}();\nexports[\"default\"] = Dropdown;\n\n/***/ }),\n\n/***/ 520:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.WrappedSelect = exports.WrappedInput = exports.List = exports.Input = exports.Container = exports.Dropdown = void 0;\nvar dropdown_1 = __importDefault(__webpack_require__(217));\nexports.Dropdown = dropdown_1.default;\nvar container_1 = __importDefault(__webpack_require__(613));\nexports.Container = container_1.default;\nvar input_1 = __importDefault(__webpack_require__(11));\nexports.Input = input_1.default;\nvar list_1 = __importDefault(__webpack_require__(624));\nexports.List = list_1.default;\nvar wrapped_input_1 = __importDefault(__webpack_require__(541));\nexports.WrappedInput = wrapped_input_1.default;\nvar wrapped_select_1 = __importDefault(__webpack_require__(982));\nexports.WrappedSelect = wrapped_select_1.default;\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar utils_1 = __webpack_require__(799);\nvar constants_1 = __webpack_require__(883);\nvar Input = /** @class */function () {\n function Input(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames,\n preventPaste = _a.preventPaste;\n this.element = element;\n this.type = type;\n this.classNames = classNames;\n this.preventPaste = preventPaste;\n this.isFocussed = this.element.isEqualNode(document.activeElement);\n this.isDisabled = element.disabled;\n this._onPaste = this._onPaste.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n Object.defineProperty(Input.prototype, \"placeholder\", {\n set: function (placeholder) {\n this.element.placeholder = placeholder;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"value\", {\n get: function () {\n return (0, utils_1.sanitise)(this.element.value);\n },\n set: function (value) {\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"rawValue\", {\n get: function () {\n return this.element.value;\n },\n enumerable: false,\n configurable: true\n });\n Input.prototype.addEventListeners = function () {\n this.element.addEventListener('paste', this._onPaste);\n this.element.addEventListener('input', this._onInput, {\n passive: true\n });\n this.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n };\n Input.prototype.removeEventListeners = function () {\n this.element.removeEventListener('input', this._onInput);\n this.element.removeEventListener('paste', this._onPaste);\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n };\n Input.prototype.enable = function () {\n this.element.removeAttribute('disabled');\n this.isDisabled = false;\n };\n Input.prototype.disable = function () {\n this.element.setAttribute('disabled', '');\n this.isDisabled = true;\n };\n Input.prototype.focus = function () {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n Input.prototype.blur = function () {\n if (this.isFocussed) {\n this.element.blur();\n }\n };\n Input.prototype.clear = function (setWidth) {\n if (setWidth === void 0) {\n setWidth = true;\n }\n if (this.element.value) {\n this.element.value = '';\n }\n if (setWidth) {\n this.setWidth();\n }\n return this;\n };\n /**\n * Set the correct input width based on placeholder\n * value or input value\n */\n Input.prototype.setWidth = function () {\n // Resize input to contents or placeholder\n var _a = this.element,\n style = _a.style,\n value = _a.value,\n placeholder = _a.placeholder;\n style.minWidth = \"\".concat(placeholder.length + 1, \"ch\");\n style.width = \"\".concat(value.length + 1, \"ch\");\n };\n Input.prototype.setActiveDescendant = function (activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n Input.prototype.removeActiveDescendant = function () {\n this.element.removeAttribute('aria-activedescendant');\n };\n Input.prototype._onInput = function () {\n if (this.type !== constants_1.SELECT_ONE_TYPE) {\n this.setWidth();\n }\n };\n Input.prototype._onPaste = function (event) {\n if (this.preventPaste) {\n event.preventDefault();\n }\n };\n Input.prototype._onFocus = function () {\n this.isFocussed = true;\n };\n Input.prototype._onBlur = function () {\n this.isFocussed = false;\n };\n return Input;\n}();\nexports[\"default\"] = Input;\n\n/***/ }),\n\n/***/ 624:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar constants_1 = __webpack_require__(883);\nvar List = /** @class */function () {\n function List(_a) {\n var element = _a.element;\n this.element = element;\n this.scrollPos = this.element.scrollTop;\n this.height = this.element.offsetHeight;\n }\n List.prototype.clear = function () {\n this.element.innerHTML = '';\n };\n List.prototype.append = function (node) {\n this.element.appendChild(node);\n };\n List.prototype.getChild = function (selector) {\n return this.element.querySelector(selector);\n };\n List.prototype.hasChildren = function () {\n return this.element.hasChildNodes();\n };\n List.prototype.scrollToTop = function () {\n this.element.scrollTop = 0;\n };\n List.prototype.scrollToChildElement = function (element, direction) {\n var _this = this;\n if (!element) {\n return;\n }\n var listHeight = this.element.offsetHeight;\n // Scroll position of dropdown\n var listScrollPosition = this.element.scrollTop + listHeight;\n var elementHeight = element.offsetHeight;\n // Distance from bottom of element to top of parent\n var elementPos = element.offsetTop + elementHeight;\n // Difference between the element and scroll position\n var destination = direction > 0 ? this.element.scrollTop + elementPos - listScrollPosition : element.offsetTop;\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n };\n List.prototype._scrollDown = function (scrollPos, strength, destination) {\n var easing = (destination - scrollPos) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos + distance;\n };\n List.prototype._scrollUp = function (scrollPos, strength, destination) {\n var easing = (scrollPos - destination) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos - distance;\n };\n List.prototype._animateScroll = function (destination, direction) {\n var _this = this;\n var strength = constants_1.SCROLLING_SPEED;\n var choiceListScrollTop = this.element.scrollTop;\n var continueAnimation = false;\n if (direction > 0) {\n this._scrollDown(choiceListScrollTop, strength, destination);\n if (choiceListScrollTop < destination) {\n continueAnimation = true;\n }\n } else {\n this._scrollUp(choiceListScrollTop, strength, destination);\n if (choiceListScrollTop > destination) {\n continueAnimation = true;\n }\n }\n if (continueAnimation) {\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n }\n };\n return List;\n}();\nexports[\"default\"] = List;\n\n/***/ }),\n\n/***/ 730:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar utils_1 = __webpack_require__(799);\nvar WrappedElement = /** @class */function () {\n function WrappedElement(_a) {\n var element = _a.element,\n classNames = _a.classNames;\n this.element = element;\n this.classNames = classNames;\n if (!(element instanceof HTMLInputElement) && !(element instanceof HTMLSelectElement)) {\n throw new TypeError('Invalid element passed');\n }\n this.isDisabled = false;\n }\n Object.defineProperty(WrappedElement.prototype, \"isActive\", {\n get: function () {\n return this.element.dataset.choice === 'active';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedElement.prototype, \"dir\", {\n get: function () {\n return this.element.dir;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedElement.prototype, \"value\", {\n get: function () {\n return this.element.value;\n },\n set: function (value) {\n // you must define setter here otherwise it will be readonly property\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n WrappedElement.prototype.conceal = function () {\n // Hide passed input\n this.element.classList.add(this.classNames.input);\n this.element.hidden = true;\n // Remove element from tab index\n this.element.tabIndex = -1;\n // Backup original styles if any\n var origStyle = this.element.getAttribute('style');\n if (origStyle) {\n this.element.setAttribute('data-choice-orig-style', origStyle);\n }\n this.element.setAttribute('data-choice', 'active');\n };\n WrappedElement.prototype.reveal = function () {\n // Reinstate passed element\n this.element.classList.remove(this.classNames.input);\n this.element.hidden = false;\n this.element.removeAttribute('tabindex');\n // Recover original styles if any\n var origStyle = this.element.getAttribute('data-choice-orig-style');\n if (origStyle) {\n this.element.removeAttribute('data-choice-orig-style');\n this.element.setAttribute('style', origStyle);\n } else {\n this.element.removeAttribute('style');\n }\n this.element.removeAttribute('data-choice');\n // Re-assign values - this is weird, I know\n // @todo Figure out why we need to do this\n this.element.value = this.element.value; // eslint-disable-line no-self-assign\n };\n\n WrappedElement.prototype.enable = function () {\n this.element.removeAttribute('disabled');\n this.element.disabled = false;\n this.isDisabled = false;\n };\n WrappedElement.prototype.disable = function () {\n this.element.setAttribute('disabled', '');\n this.element.disabled = true;\n this.isDisabled = true;\n };\n WrappedElement.prototype.triggerEvent = function (eventType, data) {\n (0, utils_1.dispatchEvent)(this.element, eventType, data);\n };\n return WrappedElement;\n}();\nexports[\"default\"] = WrappedElement;\n\n/***/ }),\n\n/***/ 541:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar wrapped_element_1 = __importDefault(__webpack_require__(730));\nvar WrappedInput = /** @class */function (_super) {\n __extends(WrappedInput, _super);\n function WrappedInput(_a) {\n var element = _a.element,\n classNames = _a.classNames,\n delimiter = _a.delimiter;\n var _this = _super.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n _this.delimiter = delimiter;\n return _this;\n }\n Object.defineProperty(WrappedInput.prototype, \"value\", {\n get: function () {\n return this.element.value;\n },\n set: function (value) {\n this.element.setAttribute('value', value);\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n return WrappedInput;\n}(wrapped_element_1.default);\nexports[\"default\"] = WrappedInput;\n\n/***/ }),\n\n/***/ 982:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar wrapped_element_1 = __importDefault(__webpack_require__(730));\nvar WrappedSelect = /** @class */function (_super) {\n __extends(WrappedSelect, _super);\n function WrappedSelect(_a) {\n var element = _a.element,\n classNames = _a.classNames,\n template = _a.template;\n var _this = _super.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n _this.template = template;\n return _this;\n }\n Object.defineProperty(WrappedSelect.prototype, \"placeholderOption\", {\n get: function () {\n return this.element.querySelector('option[value=\"\"]') ||\n // Backward compatibility layer for the non-standard placeholder attribute supported in older versions.\n this.element.querySelector('option[placeholder]');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedSelect.prototype, \"optionGroups\", {\n get: function () {\n return Array.from(this.element.getElementsByTagName('OPTGROUP'));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedSelect.prototype, \"options\", {\n get: function () {\n return Array.from(this.element.options);\n },\n set: function (options) {\n var _this = this;\n var fragment = document.createDocumentFragment();\n var addOptionToFragment = function (data) {\n // Create a standard select option\n var option = _this.template(data);\n // Append it to fragment\n fragment.appendChild(option);\n };\n // Add each list item to list\n options.forEach(function (optionData) {\n return addOptionToFragment(optionData);\n });\n this.appendDocFragment(fragment);\n },\n enumerable: false,\n configurable: true\n });\n WrappedSelect.prototype.appendDocFragment = function (fragment) {\n this.element.innerHTML = '';\n this.element.appendChild(fragment);\n };\n return WrappedSelect;\n}(wrapped_element_1.default);\nexports[\"default\"] = WrappedSelect;\n\n/***/ }),\n\n/***/ 883:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SCROLLING_SPEED = exports.SELECT_MULTIPLE_TYPE = exports.SELECT_ONE_TYPE = exports.TEXT_TYPE = exports.KEY_CODES = exports.ACTION_TYPES = exports.EVENTS = void 0;\nexports.EVENTS = {\n showDropdown: 'showDropdown',\n hideDropdown: 'hideDropdown',\n change: 'change',\n choice: 'choice',\n search: 'search',\n addItem: 'addItem',\n removeItem: 'removeItem',\n highlightItem: 'highlightItem',\n highlightChoice: 'highlightChoice',\n unhighlightItem: 'unhighlightItem'\n};\nexports.ACTION_TYPES = {\n ADD_CHOICE: 'ADD_CHOICE',\n FILTER_CHOICES: 'FILTER_CHOICES',\n ACTIVATE_CHOICES: 'ACTIVATE_CHOICES',\n CLEAR_CHOICES: 'CLEAR_CHOICES',\n ADD_GROUP: 'ADD_GROUP',\n ADD_ITEM: 'ADD_ITEM',\n REMOVE_ITEM: 'REMOVE_ITEM',\n HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM',\n CLEAR_ALL: 'CLEAR_ALL',\n RESET_TO: 'RESET_TO',\n SET_IS_LOADING: 'SET_IS_LOADING'\n};\nexports.KEY_CODES = {\n BACK_KEY: 46,\n DELETE_KEY: 8,\n ENTER_KEY: 13,\n A_KEY: 65,\n ESC_KEY: 27,\n UP_KEY: 38,\n DOWN_KEY: 40,\n PAGE_UP_KEY: 33,\n PAGE_DOWN_KEY: 34\n};\nexports.TEXT_TYPE = 'text';\nexports.SELECT_ONE_TYPE = 'select-one';\nexports.SELECT_MULTIPLE_TYPE = 'select-multiple';\nexports.SCROLLING_SPEED = 4;\n\n/***/ }),\n\n/***/ 789:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.DEFAULT_CONFIG = exports.DEFAULT_CLASSNAMES = void 0;\nvar utils_1 = __webpack_require__(799);\nexports.DEFAULT_CLASSNAMES = {\n containerOuter: 'choices',\n containerInner: 'choices__inner',\n input: 'choices__input',\n inputCloned: 'choices__input--cloned',\n list: 'choices__list',\n listItems: 'choices__list--multiple',\n listSingle: 'choices__list--single',\n listDropdown: 'choices__list--dropdown',\n item: 'choices__item',\n itemSelectable: 'choices__item--selectable',\n itemDisabled: 'choices__item--disabled',\n itemChoice: 'choices__item--choice',\n placeholder: 'choices__placeholder',\n group: 'choices__group',\n groupHeading: 'choices__heading',\n button: 'choices__button',\n activeState: 'is-active',\n focusState: 'is-focused',\n openState: 'is-open',\n disabledState: 'is-disabled',\n highlightedState: 'is-highlighted',\n selectedState: 'is-selected',\n flippedState: 'is-flipped',\n loadingState: 'is-loading',\n noResults: 'has-no-results',\n noChoices: 'has-no-choices'\n};\nexports.DEFAULT_CONFIG = {\n items: [],\n choices: [],\n silent: false,\n renderChoiceLimit: -1,\n maxItemCount: -1,\n addItems: true,\n addItemFilter: null,\n removeItems: true,\n removeItemButton: false,\n editItems: false,\n allowHTML: true,\n duplicateItemsAllowed: true,\n delimiter: ',',\n paste: true,\n searchEnabled: true,\n searchChoices: true,\n searchFloor: 1,\n searchResultLimit: 4,\n searchFields: ['label', 'value'],\n position: 'auto',\n resetScrollPosition: true,\n shouldSort: true,\n shouldSortItems: false,\n sorter: utils_1.sortByAlpha,\n placeholder: true,\n placeholderValue: null,\n searchPlaceholderValue: null,\n prependValue: null,\n appendValue: null,\n renderSelectedChoices: 'auto',\n loadingText: 'Loading...',\n noResultsText: 'No results found',\n noChoicesText: 'No choices to choose from',\n itemSelectText: 'Press to select',\n uniqueItemText: 'Only unique values can be added',\n customAddItemText: 'Only values matching specific conditions can be added',\n addItemText: function (value) {\n return \"Press Enter to add <b>\\\"\".concat((0, utils_1.sanitise)(value), \"\\\"</b>\");\n },\n maxItemText: function (maxItemCount) {\n return \"Only \".concat(maxItemCount, \" values can be added\");\n },\n valueComparer: function (value1, value2) {\n return value1 === value2;\n },\n fuseOptions: {\n includeScore: true\n },\n labelId: '',\n callbackOnInit: null,\n callbackOnCreateTemplates: null,\n classNames: exports.DEFAULT_CLASSNAMES\n};\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 978:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 948:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 359:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 285:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 533:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 187:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar __exportStar = this && this.__exportStar || function (m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n__exportStar(__webpack_require__(18), exports);\n__exportStar(__webpack_require__(978), exports);\n__exportStar(__webpack_require__(948), exports);\n__exportStar(__webpack_require__(359), exports);\n__exportStar(__webpack_require__(285), exports);\n__exportStar(__webpack_require__(533), exports);\n__exportStar(__webpack_require__(287), exports);\n__exportStar(__webpack_require__(132), exports);\n__exportStar(__webpack_require__(837), exports);\n__exportStar(__webpack_require__(598), exports);\n__exportStar(__webpack_require__(369), exports);\n__exportStar(__webpack_require__(37), exports);\n__exportStar(__webpack_require__(47), exports);\n__exportStar(__webpack_require__(923), exports);\n__exportStar(__webpack_require__(876), exports);\n\n/***/ }),\n\n/***/ 287:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 132:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 837:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 598:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 369:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 47:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 923:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 876:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 799:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.parseCustomProperties = exports.diff = exports.cloneObject = exports.existsInArray = exports.dispatchEvent = exports.sortByScore = exports.sortByAlpha = exports.strToEl = exports.sanitise = exports.isScrolledIntoView = exports.getAdjacentEl = exports.wrap = exports.isType = exports.getType = exports.generateId = exports.generateChars = exports.getRandomNumber = void 0;\nvar getRandomNumber = function (min, max) {\n return Math.floor(Math.random() * (max - min) + min);\n};\nexports.getRandomNumber = getRandomNumber;\nvar generateChars = function (length) {\n return Array.from({\n length: length\n }, function () {\n return (0, exports.getRandomNumber)(0, 36).toString(36);\n }).join('');\n};\nexports.generateChars = generateChars;\nvar generateId = function (element, prefix) {\n var id = element.id || element.name && \"\".concat(element.name, \"-\").concat((0, exports.generateChars)(2)) || (0, exports.generateChars)(4);\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = \"\".concat(prefix, \"-\").concat(id);\n return id;\n};\nexports.generateId = generateId;\nvar getType = function (obj) {\n return Object.prototype.toString.call(obj).slice(8, -1);\n};\nexports.getType = getType;\nvar isType = function (type, obj) {\n return obj !== undefined && obj !== null && (0, exports.getType)(obj) === type;\n};\nexports.isType = isType;\nvar wrap = function (element, wrapper) {\n if (wrapper === void 0) {\n wrapper = document.createElement('div');\n }\n if (element.parentNode) {\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n }\n return wrapper.appendChild(element);\n};\nexports.wrap = wrap;\nvar getAdjacentEl = function (startEl, selector, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n var prop = \"\".concat(direction > 0 ? 'next' : 'previous', \"ElementSibling\");\n var sibling = startEl[prop];\n while (sibling) {\n if (sibling.matches(selector)) {\n return sibling;\n }\n sibling = sibling[prop];\n }\n return sibling;\n};\nexports.getAdjacentEl = getAdjacentEl;\nvar isScrolledIntoView = function (element, parent, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n if (!element) {\n return false;\n }\n var isVisible;\n if (direction > 0) {\n // In view from bottom\n isVisible = parent.scrollTop + parent.offsetHeight >= element.offsetTop + element.offsetHeight;\n } else {\n // In view from top\n isVisible = element.offsetTop >= parent.scrollTop;\n }\n return isVisible;\n};\nexports.isScrolledIntoView = isScrolledIntoView;\nvar sanitise = function (value) {\n if (typeof value !== 'string') {\n return value;\n }\n return value.replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/\"/g, '&quot;');\n};\nexports.sanitise = sanitise;\nexports.strToEl = function () {\n var tmpEl = document.createElement('div');\n return function (str) {\n var cleanedInput = str.trim();\n tmpEl.innerHTML = cleanedInput;\n var firldChild = tmpEl.children[0];\n while (tmpEl.firstChild) {\n tmpEl.removeChild(tmpEl.firstChild);\n }\n return firldChild;\n };\n}();\nvar sortByAlpha = function (_a, _b) {\n var value = _a.value,\n _c = _a.label,\n label = _c === void 0 ? value : _c;\n var value2 = _b.value,\n _d = _b.label,\n label2 = _d === void 0 ? value2 : _d;\n return label.localeCompare(label2, [], {\n sensitivity: 'base',\n ignorePunctuation: true,\n numeric: true\n });\n};\nexports.sortByAlpha = sortByAlpha;\nvar sortByScore = function (a, b) {\n var _a = a.score,\n scoreA = _a === void 0 ? 0 : _a;\n var _b = b.score,\n scoreB = _b === void 0 ? 0 : _b;\n return scoreA - scoreB;\n};\nexports.sortByScore = sortByScore;\nvar dispatchEvent = function (element, type, customArgs) {\n if (customArgs === void 0) {\n customArgs = null;\n }\n var event = new CustomEvent(type, {\n detail: customArgs,\n bubbles: true,\n cancelable: true\n });\n return element.dispatchEvent(event);\n};\nexports.dispatchEvent = dispatchEvent;\nvar existsInArray = function (array, value, key) {\n if (key === void 0) {\n key = 'value';\n }\n return array.some(function (item) {\n if (typeof value === 'string') {\n return item[key] === value.trim();\n }\n return item[key] === value;\n });\n};\nexports.existsInArray = existsInArray;\nvar cloneObject = function (obj) {\n return JSON.parse(JSON.stringify(obj));\n};\nexports.cloneObject = cloneObject;\n/**\n * Returns an array of keys present on the first but missing on the second object\n */\nvar diff = function (a, b) {\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n return aKeys.filter(function (i) {\n return bKeys.indexOf(i) < 0;\n });\n};\nexports.diff = diff;\nvar parseCustomProperties = function (customProperties) {\n if (typeof customProperties !== 'undefined') {\n try {\n return JSON.parse(customProperties);\n } catch (e) {\n return customProperties;\n }\n }\n return {};\n};\nexports.parseCustomProperties = parseCustomProperties;\n\n/***/ }),\n\n/***/ 273:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\nfunction choices(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n if (action === void 0) {\n action = {};\n }\n switch (action.type) {\n case 'ADD_CHOICE':\n {\n var addChoiceAction = action;\n var choice = {\n id: addChoiceAction.id,\n elementId: addChoiceAction.elementId,\n groupId: addChoiceAction.groupId,\n value: addChoiceAction.value,\n label: addChoiceAction.label || addChoiceAction.value,\n disabled: addChoiceAction.disabled || false,\n selected: false,\n active: true,\n score: 9999,\n customProperties: addChoiceAction.customProperties,\n placeholder: addChoiceAction.placeholder || false\n };\n /*\n A disabled choice appears in the choice dropdown but cannot be selected\n A selected choice has been added to the passed input's value (added as an item)\n An active choice appears within the choice dropdown\n */\n return __spreadArray(__spreadArray([], state, true), [choice], false);\n }\n case 'ADD_ITEM':\n {\n var addItemAction_1 = action;\n // When an item is added and it has an associated choice,\n // we want to disable it so it can't be chosen again\n if (addItemAction_1.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n if (choice.id === parseInt(\"\".concat(addItemAction_1.choiceId), 10)) {\n choice.selected = true;\n }\n return choice;\n });\n }\n return state;\n }\n case 'REMOVE_ITEM':\n {\n var removeItemAction_1 = action;\n // When an item is removed and it has an associated choice,\n // we want to re-enable it so it can be chosen again\n if (removeItemAction_1.choiceId && removeItemAction_1.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n if (choice.id === parseInt(\"\".concat(removeItemAction_1.choiceId), 10)) {\n choice.selected = false;\n }\n return choice;\n });\n }\n return state;\n }\n case 'FILTER_CHOICES':\n {\n var filterChoicesAction_1 = action;\n return state.map(function (obj) {\n var choice = obj;\n // Set active state based on whether choice is\n // within filtered results\n choice.active = filterChoicesAction_1.results.some(function (_a) {\n var item = _a.item,\n score = _a.score;\n if (item.id === choice.id) {\n choice.score = score;\n return true;\n }\n return false;\n });\n return choice;\n });\n }\n case 'ACTIVATE_CHOICES':\n {\n var activateChoicesAction_1 = action;\n return state.map(function (obj) {\n var choice = obj;\n choice.active = activateChoicesAction_1.active;\n return choice;\n });\n }\n case 'CLEAR_CHOICES':\n {\n return exports.defaultState;\n }\n default:\n {\n return state;\n }\n }\n}\nexports[\"default\"] = choices;\n\n/***/ }),\n\n/***/ 871:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\nfunction groups(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n if (action === void 0) {\n action = {};\n }\n switch (action.type) {\n case 'ADD_GROUP':\n {\n var addGroupAction = action;\n return __spreadArray(__spreadArray([], state, true), [{\n id: addGroupAction.id,\n value: addGroupAction.value,\n active: addGroupAction.active,\n disabled: addGroupAction.disabled\n }], false);\n }\n case 'CLEAR_CHOICES':\n {\n return [];\n }\n default:\n {\n return state;\n }\n }\n}\nexports[\"default\"] = groups;\n\n/***/ }),\n\n/***/ 655:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nvar redux_1 = __webpack_require__(791);\nvar items_1 = __importDefault(__webpack_require__(52));\nvar groups_1 = __importDefault(__webpack_require__(871));\nvar choices_1 = __importDefault(__webpack_require__(273));\nvar loading_1 = __importDefault(__webpack_require__(502));\nvar utils_1 = __webpack_require__(799);\nexports.defaultState = {\n groups: [],\n items: [],\n choices: [],\n loading: false\n};\nvar appReducer = (0, redux_1.combineReducers)({\n items: items_1.default,\n groups: groups_1.default,\n choices: choices_1.default,\n loading: loading_1.default\n});\nvar rootReducer = function (passedState, action) {\n var state = passedState;\n // If we are clearing all items, groups and options we reassign\n // state and then pass that state to our proper reducer. This isn't\n // mutating our actual state\n // See: http://stackoverflow.com/a/35641992\n if (action.type === 'CLEAR_ALL') {\n state = exports.defaultState;\n } else if (action.type === 'RESET_TO') {\n return (0, utils_1.cloneObject)(action.state);\n }\n return appReducer(state, action);\n};\nexports[\"default\"] = rootReducer;\n\n/***/ }),\n\n/***/ 52:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\nfunction items(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n if (action === void 0) {\n action = {};\n }\n switch (action.type) {\n case 'ADD_ITEM':\n {\n var addItemAction = action;\n // Add object to items array\n var newState = __spreadArray(__spreadArray([], state, true), [{\n id: addItemAction.id,\n choiceId: addItemAction.choiceId,\n groupId: addItemAction.groupId,\n value: addItemAction.value,\n label: addItemAction.label,\n active: true,\n highlighted: false,\n customProperties: addItemAction.customProperties,\n placeholder: addItemAction.placeholder || false,\n keyCode: null\n }], false);\n return newState.map(function (obj) {\n var item = obj;\n item.highlighted = false;\n return item;\n });\n }\n case 'REMOVE_ITEM':\n {\n // Set item to inactive\n return state.map(function (obj) {\n var item = obj;\n if (item.id === action.id) {\n item.active = false;\n }\n return item;\n });\n }\n case 'HIGHLIGHT_ITEM':\n {\n var highlightItemAction_1 = action;\n return state.map(function (obj) {\n var item = obj;\n if (item.id === highlightItemAction_1.id) {\n item.highlighted = highlightItemAction_1.highlighted;\n }\n return item;\n });\n }\n default:\n {\n return state;\n }\n }\n}\nexports[\"default\"] = items;\n\n/***/ }),\n\n/***/ 502:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = false;\nvar general = function (state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n if (action === void 0) {\n action = {};\n }\n switch (action.type) {\n case 'SET_IS_LOADING':\n {\n return action.isLoading;\n }\n default:\n {\n return state;\n }\n }\n};\nexports[\"default\"] = general;\n\n/***/ }),\n\n/***/ 744:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar redux_1 = __webpack_require__(791);\nvar index_1 = __importDefault(__webpack_require__(655));\nvar Store = /** @class */function () {\n function Store() {\n this._store = (0, redux_1.createStore)(index_1.default, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n }\n /**\n * Subscribe store to function call (wrapped Redux method)\n */\n Store.prototype.subscribe = function (onChange) {\n this._store.subscribe(onChange);\n };\n /**\n * Dispatch event to store (wrapped Redux method)\n */\n Store.prototype.dispatch = function (action) {\n this._store.dispatch(action);\n };\n Object.defineProperty(Store.prototype, \"state\", {\n /**\n * Get store object (wrapping Redux method)\n */\n get: function () {\n return this._store.getState();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"items\", {\n /**\n * Get items from store\n */\n get: function () {\n return this.state.items;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeItems\", {\n /**\n * Get active items from store\n */\n get: function () {\n return this.items.filter(function (item) {\n return item.active === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"highlightedActiveItems\", {\n /**\n * Get highlighted items from store\n */\n get: function () {\n return this.items.filter(function (item) {\n return item.active && item.highlighted;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"choices\", {\n /**\n * Get choices from store\n */\n get: function () {\n return this.state.choices;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeChoices\", {\n /**\n * Get active choices from store\n */\n get: function () {\n return this.choices.filter(function (choice) {\n return choice.active === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"selectableChoices\", {\n /**\n * Get selectable choices from store\n */\n get: function () {\n return this.choices.filter(function (choice) {\n return choice.disabled !== true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"searchableChoices\", {\n /**\n * Get choices that can be searched (excluding placeholders)\n */\n get: function () {\n return this.selectableChoices.filter(function (choice) {\n return choice.placeholder !== true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"placeholderChoice\", {\n /**\n * Get placeholder choice from store\n */\n get: function () {\n return __spreadArray([], this.choices, true).reverse().find(function (choice) {\n return choice.placeholder === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"groups\", {\n /**\n * Get groups from store\n */\n get: function () {\n return this.state.groups;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeGroups\", {\n /**\n * Get active groups from store\n */\n get: function () {\n var _a = this,\n groups = _a.groups,\n choices = _a.choices;\n return groups.filter(function (group) {\n var isActive = group.active === true && group.disabled === false;\n var hasActiveOptions = choices.some(function (choice) {\n return choice.active === true && choice.disabled === false;\n });\n return isActive && hasActiveOptions;\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Get loading state from store\n */\n Store.prototype.isLoading = function () {\n return this.state.loading;\n };\n /**\n * Get single choice by it's ID\n */\n Store.prototype.getChoiceById = function (id) {\n return this.activeChoices.find(function (choice) {\n return choice.id === parseInt(id, 10);\n });\n };\n /**\n * Get group by group id\n */\n Store.prototype.getGroupById = function (id) {\n return this.groups.find(function (group) {\n return group.id === id;\n });\n };\n return Store;\n}();\nexports[\"default\"] = Store;\n\n/***/ }),\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\n/**\n * Helpers to create HTML elements used by Choices\n * Can be overridden by providing `callbackOnCreateTemplates` option\n */\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar templates = {\n containerOuter: function (_a, dir, isSelectElement, isSelectOneElement, searchEnabled, passedElementType, labelId) {\n var containerOuter = _a.classNames.containerOuter;\n var div = Object.assign(document.createElement('div'), {\n className: containerOuter\n });\n div.dataset.type = passedElementType;\n if (dir) {\n div.dir = dir;\n }\n if (isSelectOneElement) {\n div.tabIndex = 0;\n }\n if (isSelectElement) {\n div.setAttribute('role', searchEnabled ? 'combobox' : 'listbox');\n if (searchEnabled) {\n div.setAttribute('aria-autocomplete', 'list');\n }\n }\n div.setAttribute('aria-haspopup', 'true');\n div.setAttribute('aria-expanded', 'false');\n if (labelId) {\n div.setAttribute('aria-labelledby', labelId);\n }\n return div;\n },\n containerInner: function (_a) {\n var containerInner = _a.classNames.containerInner;\n return Object.assign(document.createElement('div'), {\n className: containerInner\n });\n },\n itemList: function (_a, isSelectOneElement) {\n var _b = _a.classNames,\n list = _b.list,\n listSingle = _b.listSingle,\n listItems = _b.listItems;\n return Object.assign(document.createElement('div'), {\n className: \"\".concat(list, \" \").concat(isSelectOneElement ? listSingle : listItems)\n });\n },\n placeholder: function (_a, value) {\n var _b;\n var allowHTML = _a.allowHTML,\n placeholder = _a.classNames.placeholder;\n return Object.assign(document.createElement('div'), (_b = {\n className: placeholder\n }, _b[allowHTML ? 'innerHTML' : 'innerText'] = value, _b));\n },\n item: function (_a, _b, removeItemButton) {\n var _c, _d;\n var allowHTML = _a.allowHTML,\n _e = _a.classNames,\n item = _e.item,\n button = _e.button,\n highlightedState = _e.highlightedState,\n itemSelectable = _e.itemSelectable,\n placeholder = _e.placeholder;\n var id = _b.id,\n value = _b.value,\n label = _b.label,\n customProperties = _b.customProperties,\n active = _b.active,\n disabled = _b.disabled,\n highlighted = _b.highlighted,\n isPlaceholder = _b.placeholder;\n var div = Object.assign(document.createElement('div'), (_c = {\n className: item\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c));\n Object.assign(div.dataset, {\n item: '',\n id: id,\n value: value,\n customProperties: customProperties\n });\n if (active) {\n div.setAttribute('aria-selected', 'true');\n }\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n div.classList.add(highlighted ? highlightedState : itemSelectable);\n if (removeItemButton) {\n if (disabled) {\n div.classList.remove(itemSelectable);\n }\n div.dataset.deletable = '';\n /** @todo This MUST be localizable, not hardcoded! */\n var REMOVE_ITEM_TEXT = 'Remove item';\n var removeButton = Object.assign(document.createElement('button'), (_d = {\n type: 'button',\n className: button\n }, _d[allowHTML ? 'innerHTML' : 'innerText'] = REMOVE_ITEM_TEXT, _d));\n removeButton.setAttribute('aria-label', \"\".concat(REMOVE_ITEM_TEXT, \": '\").concat(value, \"'\"));\n removeButton.dataset.button = '';\n div.appendChild(removeButton);\n }\n return div;\n },\n choiceList: function (_a, isSelectOneElement) {\n var list = _a.classNames.list;\n var div = Object.assign(document.createElement('div'), {\n className: list\n });\n if (!isSelectOneElement) {\n div.setAttribute('aria-multiselectable', 'true');\n }\n div.setAttribute('role', 'listbox');\n return div;\n },\n choiceGroup: function (_a, _b) {\n var _c;\n var allowHTML = _a.allowHTML,\n _d = _a.classNames,\n group = _d.group,\n groupHeading = _d.groupHeading,\n itemDisabled = _d.itemDisabled;\n var id = _b.id,\n value = _b.value,\n disabled = _b.disabled;\n var div = Object.assign(document.createElement('div'), {\n className: \"\".concat(group, \" \").concat(disabled ? itemDisabled : '')\n });\n div.setAttribute('role', 'group');\n Object.assign(div.dataset, {\n group: '',\n id: id,\n value: value\n });\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n div.appendChild(Object.assign(document.createElement('div'), (_c = {\n className: groupHeading\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = value, _c)));\n return div;\n },\n choice: function (_a, _b, selectText) {\n var _c;\n var allowHTML = _a.allowHTML,\n _d = _a.classNames,\n item = _d.item,\n itemChoice = _d.itemChoice,\n itemSelectable = _d.itemSelectable,\n selectedState = _d.selectedState,\n itemDisabled = _d.itemDisabled,\n placeholder = _d.placeholder;\n var id = _b.id,\n value = _b.value,\n label = _b.label,\n groupId = _b.groupId,\n elementId = _b.elementId,\n isDisabled = _b.disabled,\n isSelected = _b.selected,\n isPlaceholder = _b.placeholder;\n var div = Object.assign(document.createElement('div'), (_c = {\n id: elementId\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c.className = \"\".concat(item, \" \").concat(itemChoice), _c));\n if (isSelected) {\n div.classList.add(selectedState);\n }\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n div.setAttribute('role', groupId && groupId > 0 ? 'treeitem' : 'option');\n Object.assign(div.dataset, {\n choice: '',\n id: id,\n value: value,\n selectText: selectText\n });\n if (isDisabled) {\n div.classList.add(itemDisabled);\n div.dataset.choiceDisabled = '';\n div.setAttribute('aria-disabled', 'true');\n } else {\n div.classList.add(itemSelectable);\n div.dataset.choiceSelectable = '';\n }\n return div;\n },\n input: function (_a, placeholderValue) {\n var _b = _a.classNames,\n input = _b.input,\n inputCloned = _b.inputCloned;\n var inp = Object.assign(document.createElement('input'), {\n type: 'search',\n name: 'search_terms',\n className: \"\".concat(input, \" \").concat(inputCloned),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: false\n });\n inp.setAttribute('role', 'textbox');\n inp.setAttribute('aria-autocomplete', 'list');\n inp.setAttribute('aria-label', placeholderValue);\n return inp;\n },\n dropdown: function (_a) {\n var _b = _a.classNames,\n list = _b.list,\n listDropdown = _b.listDropdown;\n var div = document.createElement('div');\n div.classList.add(list, listDropdown);\n div.setAttribute('aria-expanded', 'false');\n return div;\n },\n notice: function (_a, innerText, type) {\n var _b;\n var allowHTML = _a.allowHTML,\n _c = _a.classNames,\n item = _c.item,\n itemChoice = _c.itemChoice,\n noResults = _c.noResults,\n noChoices = _c.noChoices;\n if (type === void 0) {\n type = '';\n }\n var classes = [item, itemChoice];\n if (type === 'no-choices') {\n classes.push(noChoices);\n } else if (type === 'no-results') {\n classes.push(noResults);\n }\n return Object.assign(document.createElement('div'), (_b = {}, _b[allowHTML ? 'innerHTML' : 'innerText'] = innerText, _b.className = classes.join(' '), _b));\n },\n option: function (_a) {\n var label = _a.label,\n value = _a.value,\n customProperties = _a.customProperties,\n active = _a.active,\n disabled = _a.disabled;\n var opt = new Option(label, value, false, active);\n if (customProperties) {\n opt.dataset.customProperties = \"\".concat(customProperties);\n }\n opt.disabled = !!disabled;\n return opt;\n }\n};\nexports[\"default\"] = templates;\n\n/***/ }),\n\n/***/ 996:\n/***/ (function(module) {\n\n\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n\n\n/***/ }),\n\n/***/ 221:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Fuse; }\n/* harmony export */ });\n/**\n * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2022 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n return !Array.isArray\n ? getTag(value) === '[object Array]'\n : Array.isArray(value)\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\nconst INFINITY = 1 / 0;\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value\n }\n let result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result\n}\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value)\n}\n\nfunction isString(value) {\n return typeof value === 'string'\n}\n\nfunction isNumber(value) {\n return typeof value === 'number'\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n return (\n value === true ||\n value === false ||\n (isObjectLike(value) && getTag(value) == '[object Boolean]')\n )\n}\n\nfunction isObject(value) {\n return typeof value === 'object'\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n return isObject(value) && value !== null\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null\n}\n\nfunction isBlank(value) {\n return !value.trim().length\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n return value == null\n ? value === undefined\n ? '[object Undefined]'\n : '[object Null]'\n : Object.prototype.toString.call(value)\n}\n\nconst EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>\n `Invalid value for key ${key}`;\n\nconst PATTERN_LENGTH_TOO_LARGE = (max) =>\n `Pattern length exceeds max of ${max}.`;\n\nconst MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;\n\nconst INVALID_KEY_WEIGHT_VALUE = (key) =>\n `Property 'weight' in key '${key}' must be a positive integer`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nclass KeyStore {\n constructor(keys) {\n this._keys = [];\n this._keyMap = {};\n\n let totalWeight = 0;\n\n keys.forEach((key) => {\n let obj = createKey(key);\n\n totalWeight += obj.weight;\n\n this._keys.push(obj);\n this._keyMap[obj.id] = obj;\n\n totalWeight += obj.weight;\n });\n\n // Normalize weights so that their sum is equal to 1\n this._keys.forEach((key) => {\n key.weight /= totalWeight;\n });\n }\n get(keyId) {\n return this._keyMap[keyId]\n }\n keys() {\n return this._keys\n }\n toJSON() {\n return JSON.stringify(this._keys)\n }\n}\n\nfunction createKey(key) {\n let path = null;\n let id = null;\n let src = null;\n let weight = 1;\n let getFn = null;\n\n if (isString(key) || isArray(key)) {\n src = key;\n path = createKeyPath(key);\n id = createKeyId(key);\n } else {\n if (!hasOwn.call(key, 'name')) {\n throw new Error(MISSING_KEY_PROPERTY('name'))\n }\n\n const name = key.name;\n src = name;\n\n if (hasOwn.call(key, 'weight')) {\n weight = key.weight;\n\n if (weight <= 0) {\n throw new Error(INVALID_KEY_WEIGHT_VALUE(name))\n }\n }\n\n path = createKeyPath(name);\n id = createKeyId(name);\n getFn = key.getFn;\n }\n\n return { path, id, weight, src, getFn }\n}\n\nfunction createKeyPath(key) {\n return isArray(key) ? key : key.split('.')\n}\n\nfunction createKeyId(key) {\n return isArray(key) ? key.join('.') : key\n}\n\nfunction get(obj, path) {\n let list = [];\n let arr = false;\n\n const deepGet = (obj, path, index) => {\n if (!isDefined(obj)) {\n return\n }\n if (!path[index]) {\n // If there's no path left, we've arrived at the object we care about.\n list.push(obj);\n } else {\n let key = path[index];\n\n const value = obj[key];\n\n if (!isDefined(value)) {\n return\n }\n\n // If we're at the last value in the path, and if it's a string/number/bool,\n // add it to the list\n if (\n index === path.length - 1 &&\n (isString(value) || isNumber(value) || isBoolean(value))\n ) {\n list.push(toString(value));\n } else if (isArray(value)) {\n arr = true;\n // Search each item in the array.\n for (let i = 0, len = value.length; i < len; i += 1) {\n deepGet(value[i], path, index + 1);\n }\n } else if (path.length) {\n // An object. Recurse further.\n deepGet(value, path, index + 1);\n }\n }\n };\n\n // Backwards compatibility (since path used to be a string)\n deepGet(obj, isString(path) ? path.split('.') : path, 0);\n\n return arr ? list : list[0]\n}\n\nconst MatchOptions = {\n // Whether the matches should be included in the result set. When `true`, each record in the result\n // set will include the indices of the matched characters.\n // These can consequently be used for highlighting purposes.\n includeMatches: false,\n // When `true`, the matching function will continue to the end of a search pattern even if\n // a perfect match has already been located in the string.\n findAllMatches: false,\n // Minimum number of characters that must be matched before a result is considered a match\n minMatchCharLength: 1\n};\n\nconst BasicOptions = {\n // When `true`, the algorithm continues searching to the end of the input even if a perfect\n // match is found before the end of the same input.\n isCaseSensitive: false,\n // When true, the matching function will continue to the end of a search pattern even if\n includeScore: false,\n // List of properties that will be searched. This also supports nested properties.\n keys: [],\n // Whether to sort the result list, by score\n shouldSort: true,\n // Default sort function: sort by ascending score, ascending index\n sortFn: (a, b) =>\n a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1\n};\n\nconst FuzzyOptions = {\n // Approximately where in the text is the pattern expected to be found?\n location: 0,\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n // (of both letters and location), a threshold of '1.0' would match anything.\n threshold: 0.6,\n // Determines how close the match must be to the fuzzy location (specified above).\n // An exact letter match which is 'distance' characters away from the fuzzy location\n // would score as a complete mismatch. A distance of '0' requires the match be at\n // the exact location specified, a threshold of '1000' would require a perfect match\n // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n distance: 100\n};\n\nconst AdvancedOptions = {\n // When `true`, it enables the use of unix-like search commands\n useExtendedSearch: false,\n // The get function to use when fetching an object's properties.\n // The default will search nested paths *ie foo.bar.baz*\n getFn: get,\n // When `true`, search will ignore `location` and `distance`, so it won't matter\n // where in the string the pattern appears.\n // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n ignoreLocation: false,\n // When `true`, the calculation for the relevance score (used for sorting) will\n // ignore the field-length norm.\n // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n ignoreFieldNorm: false,\n // The weight to determine how much field length norm effects scoring.\n fieldNormWeight: 1\n};\n\nvar Config = {\n ...BasicOptions,\n ...MatchOptions,\n ...FuzzyOptions,\n ...AdvancedOptions\n};\n\nconst SPACE = /[^ ]+/g;\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n const cache = new Map();\n const m = Math.pow(10, mantissa);\n\n return {\n get(value) {\n const numTokens = value.match(SPACE).length;\n\n if (cache.has(numTokens)) {\n return cache.get(numTokens)\n }\n\n // Default function is 1/sqrt(x), weight makes that variable\n const norm = 1 / Math.pow(numTokens, 0.5 * weight);\n\n // In place of `toFixed(mantissa)`, for faster computation\n const n = parseFloat(Math.round(norm * m) / m);\n\n cache.set(numTokens, n);\n\n return n\n },\n clear() {\n cache.clear();\n }\n }\n}\n\nclass FuseIndex {\n constructor({\n getFn = Config.getFn,\n fieldNormWeight = Config.fieldNormWeight\n } = {}) {\n this.norm = norm(fieldNormWeight, 3);\n this.getFn = getFn;\n this.isCreated = false;\n\n this.setIndexRecords();\n }\n setSources(docs = []) {\n this.docs = docs;\n }\n setIndexRecords(records = []) {\n this.records = records;\n }\n setKeys(keys = []) {\n this.keys = keys;\n this._keysMap = {};\n keys.forEach((key, idx) => {\n this._keysMap[key.id] = idx;\n });\n }\n create() {\n if (this.isCreated || !this.docs.length) {\n return\n }\n\n this.isCreated = true;\n\n // List is Array<String>\n if (isString(this.docs[0])) {\n this.docs.forEach((doc, docIndex) => {\n this._addString(doc, docIndex);\n });\n } else {\n // List is Array<Object>\n this.docs.forEach((doc, docIndex) => {\n this._addObject(doc, docIndex);\n });\n }\n\n this.norm.clear();\n }\n // Adds a doc to the end of the index\n add(doc) {\n const idx = this.size();\n\n if (isString(doc)) {\n this._addString(doc, idx);\n } else {\n this._addObject(doc, idx);\n }\n }\n // Removes the doc at the specified index of the index\n removeAt(idx) {\n this.records.splice(idx, 1);\n\n // Change ref index of every subsquent doc\n for (let i = idx, len = this.size(); i < len; i += 1) {\n this.records[i].i -= 1;\n }\n }\n getValueForItemAtKeyId(item, keyId) {\n return item[this._keysMap[keyId]]\n }\n size() {\n return this.records.length\n }\n _addString(doc, docIndex) {\n if (!isDefined(doc) || isBlank(doc)) {\n return\n }\n\n let record = {\n v: doc,\n i: docIndex,\n n: this.norm.get(doc)\n };\n\n this.records.push(record);\n }\n _addObject(doc, docIndex) {\n let record = { i: docIndex, $: {} };\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n this.keys.forEach((key, keyIndex) => {\n let value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);\n\n if (!isDefined(value)) {\n return\n }\n\n if (isArray(value)) {\n let subRecords = [];\n const stack = [{ nestedArrIndex: -1, value }];\n\n while (stack.length) {\n const { nestedArrIndex, value } = stack.pop();\n\n if (!isDefined(value)) {\n continue\n }\n\n if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n i: nestedArrIndex,\n n: this.norm.get(value)\n };\n\n subRecords.push(subRecord);\n } else if (isArray(value)) {\n value.forEach((item, k) => {\n stack.push({\n nestedArrIndex: k,\n value: item\n });\n });\n } else ;\n }\n record.$[keyIndex] = subRecords;\n } else if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n n: this.norm.get(value)\n };\n\n record.$[keyIndex] = subRecord;\n }\n });\n\n this.records.push(record);\n }\n toJSON() {\n return {\n keys: this.keys,\n records: this.records\n }\n }\n}\n\nfunction createIndex(\n keys,\n docs,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys.map(createKey));\n myIndex.setSources(docs);\n myIndex.create();\n return myIndex\n}\n\nfunction parseIndex(\n data,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const { keys, records } = data;\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys);\n myIndex.setIndexRecords(records);\n return myIndex\n}\n\nfunction computeScore$1(\n pattern,\n {\n errors = 0,\n currentLocation = 0,\n expectedLocation = 0,\n distance = Config.distance,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n const accuracy = errors / pattern.length;\n\n if (ignoreLocation) {\n return accuracy\n }\n\n const proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy\n }\n\n return accuracy + proximity / distance\n}\n\nfunction convertMaskToIndices(\n matchmask = [],\n minMatchCharLength = Config.minMatchCharLength\n) {\n let indices = [];\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (let len = matchmask.length; i < len; i += 1) {\n let match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n indices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n indices.push([start, i - 1]);\n }\n\n return indices\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(\n text,\n pattern,\n patternAlphabet,\n {\n location = Config.location,\n distance = Config.distance,\n threshold = Config.threshold,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n includeMatches = Config.includeMatches,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n if (pattern.length > MAX_BITS) {\n throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))\n }\n\n const patternLen = pattern.length;\n // Set starting location at beginning text and initialize the alphabet.\n const textLen = text.length;\n // Handle the case when location > text.length\n const expectedLocation = Math.max(0, Math.min(location, textLen));\n // Highest score beyond which we give up.\n let currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n let bestLocation = expectedLocation;\n\n // Performance: only computer matches when the minMatchCharLength > 1\n // OR if `includeMatches` is true.\n const computeMatches = minMatchCharLength > 1 || includeMatches;\n // A mask of the matches, used for building the indices\n const matchMask = computeMatches ? Array(textLen) : [];\n\n let index;\n\n // Get all exact matches, here for speed up\n while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n let score = computeScore$1(pattern, {\n currentLocation: index,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n currentThreshold = Math.min(score, currentThreshold);\n bestLocation = index + patternLen;\n\n if (computeMatches) {\n let i = 0;\n while (i < patternLen) {\n matchMask[index + i] = 1;\n i += 1;\n }\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n let lastBitArr = [];\n let finalScore = 1;\n let binMax = patternLen + textLen;\n\n const mask = 1 << (patternLen - 1);\n\n for (let i = 0; i < patternLen; i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n let binMin = 0;\n let binMid = binMax;\n\n while (binMin < binMid) {\n const score = computeScore$1(pattern, {\n errors: i,\n currentLocation: expectedLocation + binMid,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n let start = Math.max(1, expectedLocation - binMid + 1);\n let finish = findAllMatches\n ? textLen\n : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n let bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << i) - 1;\n\n for (let j = finish; j >= start; j -= 1) {\n let currentLocation = j - 1;\n let charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (computeMatches) {\n // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n matchMask[currentLocation] = +!!charMatch;\n }\n\n // First pass: exact match\n bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (i) {\n bitArr[j] |=\n ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = computeScore$1(pattern, {\n errors: i,\n currentLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n const score = computeScore$1(pattern, {\n errors: i + 1,\n currentLocation: expectedLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score > currentThreshold) {\n break\n }\n\n lastBitArr = bitArr;\n }\n\n const result = {\n isMatch: bestLocation >= 0,\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n score: Math.max(0.001, finalScore)\n };\n\n if (computeMatches) {\n const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n if (!indices.length) {\n result.isMatch = false;\n } else if (includeMatches) {\n result.indices = indices;\n }\n }\n\n return result\n}\n\nfunction createPatternAlphabet(pattern) {\n let mask = {};\n\n for (let i = 0, len = pattern.length; i < len; i += 1) {\n const char = pattern.charAt(i);\n mask[char] = (mask[char] || 0) | (1 << (len - i - 1));\n }\n\n return mask\n}\n\nclass BitapSearch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n this.options = {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n\n this.chunks = [];\n\n if (!this.pattern.length) {\n return\n }\n\n const addChunk = (pattern, startIndex) => {\n this.chunks.push({\n pattern,\n alphabet: createPatternAlphabet(pattern),\n startIndex\n });\n };\n\n const len = this.pattern.length;\n\n if (len > MAX_BITS) {\n let i = 0;\n const remainder = len % MAX_BITS;\n const end = len - remainder;\n\n while (i < end) {\n addChunk(this.pattern.substr(i, MAX_BITS), i);\n i += MAX_BITS;\n }\n\n if (remainder) {\n const startIndex = len - MAX_BITS;\n addChunk(this.pattern.substr(startIndex), startIndex);\n }\n } else {\n addChunk(this.pattern, 0);\n }\n }\n\n searchIn(text) {\n const { isCaseSensitive, includeMatches } = this.options;\n\n if (!isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n let result = {\n isMatch: true,\n score: 0\n };\n\n if (includeMatches) {\n result.indices = [[0, text.length - 1]];\n }\n\n return result\n }\n\n // Otherwise, use Bitap algorithm\n const {\n location,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n ignoreLocation\n } = this.options;\n\n let allIndices = [];\n let totalScore = 0;\n let hasMatches = false;\n\n this.chunks.forEach(({ pattern, alphabet, startIndex }) => {\n const { isMatch, score, indices } = search(text, pattern, alphabet, {\n location: location + startIndex,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n includeMatches,\n ignoreLocation\n });\n\n if (isMatch) {\n hasMatches = true;\n }\n\n totalScore += score;\n\n if (isMatch && indices) {\n allIndices = [...allIndices, ...indices];\n }\n });\n\n let result = {\n isMatch: hasMatches,\n score: hasMatches ? totalScore / this.chunks.length : 1\n };\n\n if (hasMatches && includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n}\n\nclass BaseMatch {\n constructor(pattern) {\n this.pattern = pattern;\n }\n static isMultiMatch(pattern) {\n return getMatch(pattern, this.multiRegex)\n }\n static isSingleMatch(pattern) {\n return getMatch(pattern, this.singleRegex)\n }\n search(/*text*/) {}\n}\n\nfunction getMatch(pattern, exp) {\n const matches = pattern.match(exp);\n return matches ? matches[1] : null\n}\n\n// Token: 'file\n\nclass ExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'exact'\n }\n static get multiRegex() {\n return /^=\"(.*)\"$/\n }\n static get singleRegex() {\n return /^=(.*)$/\n }\n search(text) {\n const isMatch = text === this.pattern;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !fire\n\nclass InverseExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!(.*)$/\n }\n search(text) {\n const index = text.indexOf(this.pattern);\n const isMatch = index === -1;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: ^file\n\nclass PrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'prefix-exact'\n }\n static get multiRegex() {\n return /^\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^\\^(.*)$/\n }\n search(text) {\n const isMatch = text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !^fire\n\nclass InversePrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-prefix-exact'\n }\n static get multiRegex() {\n return /^!\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!\\^(.*)$/\n }\n search(text) {\n const isMatch = !text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: .file$\n\nclass SuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'suffix-exact'\n }\n static get multiRegex() {\n return /^\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^(.*)\\$$/\n }\n search(text) {\n const isMatch = text.endsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [text.length - this.pattern.length, text.length - 1]\n }\n }\n}\n\n// Token: !.file$\n\nclass InverseSuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-suffix-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^!(.*)\\$$/\n }\n search(text) {\n const isMatch = !text.endsWith(this.pattern);\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\nclass FuzzyMatch extends BaseMatch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n super(pattern);\n this._bitapSearch = new BitapSearch(pattern, {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n });\n }\n static get type() {\n return 'fuzzy'\n }\n static get multiRegex() {\n return /^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^(.*)$/\n }\n search(text) {\n return this._bitapSearch.searchIn(text)\n }\n}\n\n// Token: 'file\n\nclass IncludeMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'include'\n }\n static get multiRegex() {\n return /^'\"(.*)\"$/\n }\n static get singleRegex() {\n return /^'(.*)$/\n }\n search(text) {\n let location = 0;\n let index;\n\n const indices = [];\n const patternLen = this.pattern.length;\n\n // Get all exact matches\n while ((index = text.indexOf(this.pattern, location)) > -1) {\n location = index + patternLen;\n indices.push([index, location - 1]);\n }\n\n const isMatch = !!indices.length;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices\n }\n }\n}\n\n// ❗Order is important. DO NOT CHANGE.\nconst searchers = [\n ExactMatch,\n IncludeMatch,\n PrefixExactMatch,\n InversePrefixExactMatch,\n InverseSuffixExactMatch,\n SuffixExactMatch,\n InverseExactMatch,\n FuzzyMatch\n];\n\nconst searchersLen = searchers.length;\n\n// Regex to split by spaces, but keep anything in quotes together\nconst SPACE_RE = / +(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nconst OR_TOKEN = '|';\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n return pattern.split(OR_TOKEN).map((item) => {\n let query = item\n .trim()\n .split(SPACE_RE)\n .filter((item) => item && !!item.trim());\n\n let results = [];\n for (let i = 0, len = query.length; i < len; i += 1) {\n const queryItem = query[i];\n\n // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n let found = false;\n let idx = -1;\n while (!found && ++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isMultiMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n found = true;\n }\n }\n\n if (found) {\n continue\n }\n\n // 2. Handle single query matches (i.e, once that are *not* quoted)\n idx = -1;\n while (++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isSingleMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n break\n }\n }\n }\n\n return results\n })\n}\n\n// These extended matchers can return an array of matches, as opposed\n// to a singl match\nconst MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token | Match type | Description |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |\n * | `=scheme` | exact-match | Items that are `scheme` |\n * | `'python` | include-match | Items that include `python` |\n * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |\n * | `^java` | prefix-exact-match | Items that start with `java` |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$` | suffix-exact-match | Items that end with `.js` |\n * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\nclass ExtendedSearch {\n constructor(\n pattern,\n {\n isCaseSensitive = Config.isCaseSensitive,\n includeMatches = Config.includeMatches,\n minMatchCharLength = Config.minMatchCharLength,\n ignoreLocation = Config.ignoreLocation,\n findAllMatches = Config.findAllMatches,\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance\n } = {}\n ) {\n this.query = null;\n this.options = {\n isCaseSensitive,\n includeMatches,\n minMatchCharLength,\n findAllMatches,\n ignoreLocation,\n location,\n threshold,\n distance\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.query = parseQuery(this.pattern, this.options);\n }\n\n static condition(_, options) {\n return options.useExtendedSearch\n }\n\n searchIn(text) {\n const query = this.query;\n\n if (!query) {\n return {\n isMatch: false,\n score: 1\n }\n }\n\n const { includeMatches, isCaseSensitive } = this.options;\n\n text = isCaseSensitive ? text : text.toLowerCase();\n\n let numMatches = 0;\n let allIndices = [];\n let totalScore = 0;\n\n // ORs\n for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n const searchers = query[i];\n\n // Reset indices\n allIndices.length = 0;\n numMatches = 0;\n\n // ANDs\n for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n const searcher = searchers[j];\n const { isMatch, indices, score } = searcher.search(text);\n\n if (isMatch) {\n numMatches += 1;\n totalScore += score;\n if (includeMatches) {\n const type = searcher.constructor.type;\n if (MultiMatchSet.has(type)) {\n allIndices = [...allIndices, ...indices];\n } else {\n allIndices.push(indices);\n }\n }\n } else {\n totalScore = 0;\n numMatches = 0;\n allIndices.length = 0;\n break\n }\n }\n\n // OR condition, so if TRUE, return\n if (numMatches) {\n let result = {\n isMatch: true,\n score: totalScore / numMatches\n };\n\n if (includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n }\n\n // Nothing was matched\n return {\n isMatch: false,\n score: 1\n }\n }\n}\n\nconst registeredSearchers = [];\n\nfunction register(...args) {\n registeredSearchers.push(...args);\n}\n\nfunction createSearcher(pattern, options) {\n for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n let searcherClass = registeredSearchers[i];\n if (searcherClass.condition(pattern, options)) {\n return new searcherClass(pattern, options)\n }\n }\n\n return new BitapSearch(pattern, options)\n}\n\nconst LogicalOperator = {\n AND: '$and',\n OR: '$or'\n};\n\nconst KeyType = {\n PATH: '$path',\n PATTERN: '$val'\n};\n\nconst isExpression = (query) =>\n !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n\nconst isPath = (query) => !!query[KeyType.PATH];\n\nconst isLeaf = (query) =>\n !isArray(query) && isObject(query) && !isExpression(query);\n\nconst convertToExplicit = (query) => ({\n [LogicalOperator.AND]: Object.keys(query).map((key) => ({\n [key]: query[key]\n }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, { auto = true } = {}) {\n const next = (query) => {\n let keys = Object.keys(query);\n\n const isQueryPath = isPath(query);\n\n if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n return next(convertToExplicit(query))\n }\n\n if (isLeaf(query)) {\n const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n\n const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n if (!isString(pattern)) {\n throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))\n }\n\n const obj = {\n keyId: createKeyId(key),\n pattern\n };\n\n if (auto) {\n obj.searcher = createSearcher(pattern, options);\n }\n\n return obj\n }\n\n let node = {\n children: [],\n operator: keys[0]\n };\n\n keys.forEach((key) => {\n const value = query[key];\n\n if (isArray(value)) {\n value.forEach((item) => {\n node.children.push(next(item));\n });\n }\n });\n\n return node\n };\n\n if (!isExpression(query)) {\n query = convertToExplicit(query);\n }\n\n return next(query)\n}\n\n// Practical scoring function\nfunction computeScore(\n results,\n { ignoreFieldNorm = Config.ignoreFieldNorm }\n) {\n results.forEach((result) => {\n let totalScore = 1;\n\n result.matches.forEach(({ key, norm, score }) => {\n const weight = key ? key.weight : null;\n\n totalScore *= Math.pow(\n score === 0 && weight ? Number.EPSILON : score,\n (weight || 1) * (ignoreFieldNorm ? 1 : norm)\n );\n });\n\n result.score = totalScore;\n });\n}\n\nfunction transformMatches(result, data) {\n const matches = result.matches;\n data.matches = [];\n\n if (!isDefined(matches)) {\n return\n }\n\n matches.forEach((match) => {\n if (!isDefined(match.indices) || !match.indices.length) {\n return\n }\n\n const { indices, value } = match;\n\n let obj = {\n indices,\n value\n };\n\n if (match.key) {\n obj.key = match.key.src;\n }\n\n if (match.idx > -1) {\n obj.refIndex = match.idx;\n }\n\n data.matches.push(obj);\n });\n}\n\nfunction transformScore(result, data) {\n data.score = result.score;\n}\n\nfunction format(\n results,\n docs,\n {\n includeMatches = Config.includeMatches,\n includeScore = Config.includeScore\n } = {}\n) {\n const transformers = [];\n\n if (includeMatches) transformers.push(transformMatches);\n if (includeScore) transformers.push(transformScore);\n\n return results.map((result) => {\n const { idx } = result;\n\n const data = {\n item: docs[idx],\n refIndex: idx\n };\n\n if (transformers.length) {\n transformers.forEach((transformer) => {\n transformer(result, data);\n });\n }\n\n return data\n })\n}\n\nclass Fuse {\n constructor(docs, options = {}, index) {\n this.options = { ...Config, ...options };\n\n if (\n this.options.useExtendedSearch &&\n !true\n ) {}\n\n this._keyStore = new KeyStore(this.options.keys);\n\n this.setCollection(docs, index);\n }\n\n setCollection(docs, index) {\n this._docs = docs;\n\n if (index && !(index instanceof FuseIndex)) {\n throw new Error(INCORRECT_INDEX_TYPE)\n }\n\n this._myIndex =\n index ||\n createIndex(this.options.keys, this._docs, {\n getFn: this.options.getFn,\n fieldNormWeight: this.options.fieldNormWeight\n });\n }\n\n add(doc) {\n if (!isDefined(doc)) {\n return\n }\n\n this._docs.push(doc);\n this._myIndex.add(doc);\n }\n\n remove(predicate = (/* doc, idx */) => false) {\n const results = [];\n\n for (let i = 0, len = this._docs.length; i < len; i += 1) {\n const doc = this._docs[i];\n if (predicate(doc, i)) {\n this.removeAt(i);\n i -= 1;\n len -= 1;\n\n results.push(doc);\n }\n }\n\n return results\n }\n\n removeAt(idx) {\n this._docs.splice(idx, 1);\n this._myIndex.removeAt(idx);\n }\n\n getIndex() {\n return this._myIndex\n }\n\n search(query, { limit = -1 } = {}) {\n const {\n includeMatches,\n includeScore,\n shouldSort,\n sortFn,\n ignoreFieldNorm\n } = this.options;\n\n let results = isString(query)\n ? isString(this._docs[0])\n ? this._searchStringList(query)\n : this._searchObjectList(query)\n : this._searchLogical(query);\n\n computeScore(results, { ignoreFieldNorm });\n\n if (shouldSort) {\n results.sort(sortFn);\n }\n\n if (isNumber(limit) && limit > -1) {\n results = results.slice(0, limit);\n }\n\n return format(results, this._docs, {\n includeMatches,\n includeScore\n })\n }\n\n _searchStringList(query) {\n const searcher = createSearcher(query, this.options);\n const { records } = this._myIndex;\n const results = [];\n\n // Iterate over every string in the index\n records.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n results.push({\n item: text,\n idx,\n matches: [{ score, value: text, norm, indices }]\n });\n }\n });\n\n return results\n }\n\n _searchLogical(query) {\n\n const expression = parse(query, this.options);\n\n const evaluate = (node, item, idx) => {\n if (!node.children) {\n const { keyId, searcher } = node;\n\n const matches = this._findMatches({\n key: this._keyStore.get(keyId),\n value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n searcher\n });\n\n if (matches && matches.length) {\n return [\n {\n idx,\n item,\n matches\n }\n ]\n }\n\n return []\n }\n\n const res = [];\n for (let i = 0, len = node.children.length; i < len; i += 1) {\n const child = node.children[i];\n const result = evaluate(child, item, idx);\n if (result.length) {\n res.push(...result);\n } else if (node.operator === LogicalOperator.AND) {\n return []\n }\n }\n return res\n };\n\n const records = this._myIndex.records;\n const resultMap = {};\n const results = [];\n\n records.forEach(({ $: item, i: idx }) => {\n if (isDefined(item)) {\n let expResults = evaluate(expression, item, idx);\n\n if (expResults.length) {\n // Dedupe when adding\n if (!resultMap[idx]) {\n resultMap[idx] = { idx, item, matches: [] };\n results.push(resultMap[idx]);\n }\n expResults.forEach(({ matches }) => {\n resultMap[idx].matches.push(...matches);\n });\n }\n }\n });\n\n return results\n }\n\n _searchObjectList(query) {\n const searcher = createSearcher(query, this.options);\n const { keys, records } = this._myIndex;\n const results = [];\n\n // List is Array<Object>\n records.forEach(({ $: item, i: idx }) => {\n if (!isDefined(item)) {\n return\n }\n\n let matches = [];\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n keys.forEach((key, keyIndex) => {\n matches.push(\n ...this._findMatches({\n key,\n value: item[keyIndex],\n searcher\n })\n );\n });\n\n if (matches.length) {\n results.push({\n idx,\n item,\n matches\n });\n }\n });\n\n return results\n }\n _findMatches({ key, value, searcher }) {\n if (!isDefined(value)) {\n return []\n }\n\n let matches = [];\n\n if (isArray(value)) {\n value.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({\n score,\n key,\n value: text,\n idx,\n norm,\n indices\n });\n }\n });\n } else {\n const { v: text, n: norm } = value;\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({ score, key, value: text, norm, indices });\n }\n }\n\n return matches\n }\n}\n\nFuse.version = '6.6.2';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n\n{\n Fuse.parseQuery = parse;\n}\n\n{\n register(ExtendedSearch);\n}\n\n\n\n\n/***/ }),\n\n/***/ 791:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"__DO_NOT_USE__ActionTypes\": function() { return /* binding */ ActionTypes; },\n \"applyMiddleware\": function() { return /* binding */ applyMiddleware; },\n \"bindActionCreators\": function() { return /* binding */ bindActionCreators; },\n \"combineReducers\": function() { return /* binding */ combineReducers; },\n \"compose\": function() { return /* binding */ compose; },\n \"createStore\": function() { return /* binding */ createStore; },\n \"legacy_createStore\": function() { return /* binding */ legacy_createStore; }\n});\n\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js\n\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js\n\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\n\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\n;// CONCATENATED MODULE: ./node_modules/redux/es/redux.js\n\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (false) {}\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error( true ? formatProdErrorMessage(0) : 0);\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(1) : 0);\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(2) : 0);\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(3) : 0);\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error( true ? formatProdErrorMessage(4) : 0);\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(5) : 0);\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(6) : 0);\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error( true ? formatProdErrorMessage(7) : 0);\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(8) : 0);\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(9) : 0);\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(10) : 0);\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error( true ? formatProdErrorMessage(11) : 0);\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(12) : 0);\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(13) : 0);\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (false) {}\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (false) {}\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (false) { var warningMessage; }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error( true ? formatProdErrorMessage(14) : 0);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error( true ? formatProdErrorMessage(16) : 0);\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error( true ? formatProdErrorMessage(15) : 0);\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2(_objectSpread2({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (false) {}\n\n\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n!function() {\n/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(373);\n/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_scripts_choices__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187);\n/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _scripts_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(883);\n/* harmony import */ var _scripts_defaults__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(789);\n/* harmony import */ var _scripts_templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(686);\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((_scripts_choices__WEBPACK_IMPORTED_MODULE_0___default()));\n\n}();\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","export type FilterObjectFn = (value: any, key: string | number, obj: object) => boolean;\n\n/**\n * Filter out entries from an object.\n *\n * @param obj - object to filter.\n * @param fn - filter function.\n * @returns a new object without the entries satisfying the filter function.\n */\nexport function filterObject(obj: object, fn: FilterObjectFn): object {\n return Object.keys(obj).reduce((accum, property) => {\n const value = obj[property];\n\n if (fn(value, property, obj)) {\n accum[property] = value;\n }\n\n return accum;\n }, {});\n}\n\n/**\n * Check if given parameter is not undefined.\n *\n * @param value - value to check.\n * @returns whether the value is defined.\n */\nexport function isDefined(value: any): boolean {\n return typeof value !== 'undefined';\n}\n\n/**\n * Returns the list of values.\n *\n * @param value - Value or list of values.\n * @returns List of values.\n */\nexport function getValues(value: string | Array<string>): Array<string> {\n return typeof value !== 'undefined'\n ? [].concat(typeof value === 'string' ? value.split(',') : value)\n : [];\n}\n\n/**\n * Determines whether a string is valid JSON and can be parsed.\n * \n * @param str - The input string.\n * @returns - Whether the string can be parsed.\n */\nexport function isJSONParseable(str: string): boolean {\n try {\n JSON.parse(str);\n return true;\n } catch (e) {\n return false;\n }\n}\n","// @import '~choices.js/public/assets/styles/choices.css';\n@use '~@infineon/design-system-tokens/dist/tokens';\n@use '../../../global/font.scss';\n\n/*===============================\n= Choices =\n===============================*/\n\n.ifx-select-container {\n box-sizing: border-box;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n &.small-select {\n height: 36px;\n }\n\n &.medium-select {\n height: 40px;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n .ifx-label-wrapper {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n overflow: hidden;\n\n &.disabled { \n color: tokens.$ifxColorEngineering300;\n }\n\n & .required {\n margin-left: 4px;\n\n &.error {\n color: #cd002f;\n }\n }\n }\n\n .single__select-caption {\n font-style: normal;\n font-weight: tokens.$ifxFontWeightRegular;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 1;\n align-self: stretch;\n flex-grow: 0;\n\n &.error {\n color: tokens.$ifxColorRed500;\n }\n\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n }\n }\n\n .ifx-choices__wrapper {\n background-color: tokens.$ifxColorBaseWhite;\n box-sizing: border-box;\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadius12;\n font-weight: 400;\n font-style: normal;\n width: 100%;\n\n & .choices {\n flex-grow: 1;\n overflow: hidden;\n }\n\n & .single__select-icon-container {\n display: flex;\n align-items: center;\n margin-left: auto;\n }\n\n &.small-select {\n height: 36px;\n line-height: 20px;\n padding: 8px 12px;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n height: 40px;\n line-height: 24px;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n border-color: tokens.$ifxColorEngineering300;\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n & .choices { \n & .choices__inner { \n & .choices__list { \n & .choices__item { \n color: white;\n }\n }\n }\n }\n\n .ifx-choices__icon-wrapper-down {\n color: tokens.$ifxColorBaseWhite;\n &:hover {\n cursor: default;\n }\n }\n }\n\n &.error {\n border-color: #cd002f;\n }\n\n &:not(.disabled):hover:not(.focus, :focus) {\n border-color: tokens.$ifxColorEngineering500;\n }\n\n &.active {\n border-color: tokens.$ifxColorOcean500 !important; // Active border color\n\n & .ifx-choices__icon-wrapper-up {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n & .ifx-choices__icon-wrapper-down {\n display: none;\n }\n }\n\n &:focus-visible:not(.active):not(:active) {\n outline: none;\n\n &::before {\n content: '';\n position: absolute;\n width: calc(100% + 4px);\n height: calc(100% + 4px);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border: 2px solid #0a8276;\n border-radius: 2px;\n }\n }\n\n &:focus:not(.active, :active) {\n &:not(.disabled)::before {\n content: '';\n position: absolute;\n width: calc(100% + 4px);\n height: calc(100% + 4px);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n }\n\n & .ifx-choices__icon-wrapper-up {\n display: none;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n & .ifx-choices__icon-wrapper-down {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n & .ifx-choices__icon-wrapper-delete {\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.hide {\n display: none;\n }\n\n &:focus{\n outline: none;\n border: 2px solid tokens.$ifxColorOcean600;\n border-radius: 50%;\n box-sizing: border-box;\n }\n }\n }\n\n /*\nSTART Select options: item alignment\n*/\n // .choice-container {\n // display: flex;\n // justify-content: space-between;\n // align-items: center;\n // }\n\n // .choice-label {\n // /* Additional styles for label if necessary */\n // }\n\n // .choice-icon {\n // /* Additional styles for icon if necessary */\n // }\n\n /*\nEND Select options: item alignment\n*/\n\n .choices {\n width: 100%;\n }\n\n .choices:focus {\n outline: none;\n }\n\n .choices &.is-focused {\n outline: none;\n }\n\n .choices:last-child {\n margin-bottom: 0;\n }\n\n .choices.is-disabled .choices__inner,\n .choices.is-disabled .choices__input {\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n .choices.is-disabled .choices__item {\n cursor: default;\n color: tokens.$ifxColorEngineering300;\n }\n\n .choices [hidden] {\n display: none !important;\n }\n\n .choices[data-type*='select-one'] {\n cursor: pointer;\n }\n\n .choices[data-type*='select-one'] .choices__input {\n display: block;\n width: 100%;\n padding: 8px 16px;\n border-bottom: 1px solid tokens.$ifxColorEngineering400;\n background-color: tokens.$ifxColorBaseWhite;\n margin: 0;\n font-style: normal;\n font-weight: 400;\n\n &.small-select {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n }\n\n .choices[data-type*='select-one'] .choices__single-button {\n background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);\n padding: 0;\n background-size: 8px;\n position: absolute;\n top: 50%;\n right: 0;\n margin-top: -10px;\n margin-right: 25px;\n height: 20px;\n width: 20px;\n border-radius: 10em;\n opacity: 0.5;\n }\n\n .choices[data-type*='select-one'] .choices__single-button:hover,\n .choices[data-type*='select-one'] .choices__single-button:focus {\n opacity: 1;\n }\n\n .choices[data-type*='select-one'] .choices__single-button:focus {\n box-shadow: 0px 0px 0px 2px tokens.$ifxColorOcean500;\n }\n\n .choices[data-type*='select-one'] .choices__item[data-value=''] .choices__single-button {\n display: none;\n }\n\n .choices[data-type*='select-one'].is-open:after {\n // border-color: transparent transparent #333333 transparent;\n margin-top: -7.5px;\n }\n\n .choices[data-type*='select-one'][dir='rtl']:after {\n left: 11.5px;\n right: auto;\n }\n\n .choices[data-type*='select-one'][dir='rtl'] .choices__single-button {\n right: auto;\n left: 0;\n margin-left: 25px;\n margin-right: 0;\n }\n\n .choices[data-type*='select-multiple'] {\n cursor: pointer;\n }\n\n .choices[data-type*='select-multiple'] .choices__input {\n display: block;\n width: 100%;\n margin: 0;\n }\n\n .choices[data-type*='select-multiple'] .choices__inner,\n .choices[data-type*='text'] .choices__inner {\n cursor: text;\n }\n\n .choices[data-type*='select-multiple'] .choices__button,\n .choices[data-type*='text'] .choices__button {\n position: relative;\n display: inline-block;\n margin-top: 0;\n margin-right: -4px;\n margin-bottom: 0;\n margin-left: 8px;\n padding-left: 16px;\n border-left: 1px solid tokens.$ifxColorOcean500;\n background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);\n background-size: 8px;\n width: 8px;\n line-height: 1;\n opacity: 0.75;\n border-radius: 0;\n }\n\n .choices[data-type*='select-multiple'] .choices__button:hover,\n .choices[data-type*='select-multiple'] .choices__button:focus,\n .choices[data-type*='text'] .choices__button:hover,\n .choices[data-type*='text'] .choices__button:focus {\n opacity: 1;\n }\n\n .choices__inner {\n overflow: hidden;\n\n & .choices__list {\n & .choices__item {\n & span {\n flex-grow: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n .is-focused .choices__inner,\n .is-open .choices__inner {\n border-color: #b7b7b7;\n }\n\n .is-open .choices__inner {\n border-radius: 2.5px 2.5px 0 0;\n }\n\n .is-flipped.is-open .choices__inner {\n border-radius: 0 0 2.5px 2.5px;\n }\n\n .choices__list {\n margin: 0;\n padding-left: 0;\n list-style: none;\n }\n\n .choices__list--single .choices__item {\n width: 100%;\n display: flex;\n justify-content: space-between;\n }\n\n .disabled > .choices__list--single .choices__item[data-value=''] {\n color: #8d8786;\n /* Placeholder font color */\n }\n\n .choices__list--multiple .choices__item {\n display: inline-block;\n vertical-align: middle;\n border-radius: 20px;\n padding: 4px 10px;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n font-weight: 500;\n margin-right: 3.75px;\n margin-bottom: 3.75px;\n background-color: tokens.$ifxColorOcean500;\n border: 1px solid tokens.$ifxColorOcean500;\n color: tokens.$ifxColorBaseWhite;\n word-break: break-all;\n box-sizing: border-box;\n }\n\n .choices__list--multiple .choices__item[data-deletable] {\n padding-right: 5px;\n }\n\n [dir='rtl'] .choices__list--multiple .choices__item {\n margin-right: 0;\n margin-left: 3.75px;\n }\n\n .choices__list--multiple .choices__item.is-highlighted {\n background-color: tokens.$ifxColorEngineering200;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n .choices__list--dropdown {\n display: none;\n visibility: hidden;\n box-sizing: border-box;\n position: absolute;\n width: 100%;\n background-color: tokens.$ifxColorBaseWhite;\n top: 100%;\n margin-top: -1px;\n\n overflow: hidden;\n word-break: break-all;\n will-change: visibility;\n box-shadow: 0px 0px 16px rgba(29, 29, 29, 0.12);\n border-radius: 1px;\n margin-top: 8px;\n z-index: 1000;\n left: 0;\n }\n\n .choices__list--dropdown.is-active {\n display: block;\n visibility: visible;\n }\n\n .is-open .choices__list--dropdown {\n border-color: #b7b7b7;\n }\n\n .is-flipped .choices__list--dropdown {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: -1px;\n border-radius: 0.25rem 0.25rem 0 0;\n }\n\n .choices__list--dropdown .choices__list {\n position: relative;\n max-height: 300px;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n will-change: scroll-position;\n }\n\n .choices__list--dropdown .choices__item {\n position: relative;\n padding: 8px 16px;\n gap: 8px;\n align-items: center;\n display: flex;\n justify-content: space-between;\n font-style: normal;\n font-weight: 400;\n\n &.small-select {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &.selected {\n color: #0a8276;\n }\n }\n\n [dir='rtl'] .choices__list--dropdown .choices__item {\n text-align: right;\n }\n\n @media (min-width: 640px) {\n .choices__list--dropdown .choices__item--selectable:after {\n // content: attr(data-select-text); #press to select text next to select option\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n opacity: 0;\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n }\n\n [dir='rtl'] .choices__list--dropdown .choices__item--selectable {\n text-align: right;\n padding-left: 100px;\n padding-right: 10px;\n }\n\n [dir='rtl'] .choices__list--dropdown .choices__item--selectable:after {\n right: auto;\n left: 10px;\n }\n }\n\n .choices__list--dropdown .choices__item--selectable.is-highlighted {\n background-color: #eeeded;\n\n &.selected {\n color: #0a8276;\n }\n }\n\n .choices__list--dropdown .choices__item--selectable:hover {\n background-color: #eeeded;\n\n &.selected {\n color: #0a8276;\n }\n }\n\n .choices__list--dropdown .choices__item--selectable.is-highlighted:after {\n opacity: 0.5;\n }\n\n .choices__item {\n cursor: default;\n }\n\n .choices__item--selectable {\n cursor: pointer;\n }\n\n .choices__item--disabled {\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n opacity: 0.5;\n }\n\n .choices__heading {\n font-weight: 600;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n padding: 10px;\n border-bottom: 1px solid #f7f7f7;\n color: tokens.$ifxColorBaseBlack;\n }\n\n .choices__button {\n //default button for removing items\n text-indent: -9999px;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: 0;\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n cursor: pointer;\n // visibility: hidden; //hide remove button on select menu\n }\n\n .choices__button:focus {\n outline: none;\n }\n\n .choices__single-button {\n text-indent: -9999px;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: 0;\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n cursor: pointer;\n visibility: hidden; //hide remove button on select menu\n }\n\n .choices__single-button:focus {\n outline: none;\n }\n\n .choices__input {\n display: inline-block;\n vertical-align: baseline;\n background-color: #f9f9f9;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n margin-bottom: 5px;\n border: 0;\n border-radius: 0;\n max-width: 100%;\n }\n\n .choices__input--cloned {\n background-color: transparent;\n }\n\n /* clears the 'X' for the input type=search from Internet Explorer */\n .choices__input::-ms-clear {\n display: none;\n width: 0;\n height: 0;\n }\n\n .choices__input::-ms-reveal {\n display: none;\n width: 0;\n height: 0;\n }\n\n /* clears the 'X' for the input type=search from Chrome */\n .choices__input::-webkit-search-decoration,\n .choices__input::-webkit-search-cancel-button,\n .choices__input::-webkit-search-results-button,\n .choices__input::-webkit-search-results-decoration {\n display: none;\n }\n\n .choices__input:focus {\n outline: 0;\n }\n\n [dir='rtl'] .choices__input {\n padding-right: 2px;\n padding-left: 0;\n }\n\n .ifx-choices__wrapper:not(.disabled) .choices__placeholder {\n opacity: 0.5;\n }\n\n /*===== End of Choices ======*/\n}\n","import { h, Component, Element, Method, Prop, Event, EventEmitter, State } from '@stencil/core';\nimport { trackComponent } from '../../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../../global/utils/dom-utils';\nimport { detectFramework } from '../../../global/utils/framework-detection';\nimport { HTMLStencilElement, Listen, Watch } from '@stencil/core/internal';\nimport ChoicesJs from 'choices.js';\n\nimport {\n AjaxFn,\n ClassNames,\n FuseOptions,\n IChoicesProps,\n IChoicesMethods,\n ItemFilterFn,\n NoResultsTextFn,\n NoChoicesTextFn,\n AddItemTextFn,\n MaxItemTextFn,\n SortFn,\n OnInit,\n OnCreateTemplates,\n UniqueItemText,\n ValueCompareFunction,\n CustomAddItemText,\n} from './interfaces';\n\nimport { filterObject, isDefined, isJSONParseable } from './utils';\n\n@Component({\n tag: 'ifx-select',\n styleUrl: 'select.scss',\n // shadow: true, //with shadow dom enabled, styles to the external choicesJs library cant be applied.\n})\nexport class Choices implements IChoicesProps, IChoicesMethods {\n @Prop() public value: string;\n @Prop() public name: string;\n @Prop() public items: Array<any>;\n @Prop() public choices: Array<any> | string = undefined;\n @Prop() public renderChoiceLimit: number;\n @Prop() public maxItemCount: number;\n @Prop() public addItems: boolean;\n @Prop() public removeItems: boolean;\n @Prop() public removeItemButton: boolean;\n @Prop() public editItems: boolean;\n @Prop() public duplicateItemsAllowed: boolean;\n @Prop() public delimiter: string;\n @Prop() public paste: boolean;\n @Prop() public showSearch: boolean;\n @Prop() public searchChoices: boolean;\n @Prop() public searchFields: Array<string> | string;\n @Prop() public searchFloor: number;\n @Prop() public searchResultLimit: number;\n @Prop() public position: 'auto' | 'top' | 'bottom';\n @Prop() public resetScrollPosition: boolean;\n @Prop() public shouldSort: boolean;\n @Prop() public shouldSortItems: boolean;\n @Prop() public sorter: SortFn;\n @Prop() public placeholder: boolean | string;\n @Prop() public searchPlaceholderValue: string;\n @Prop() public prependValue: string;\n @Prop() public appendValue: string;\n @Prop() public renderSelectedChoices: 'always' | 'auto';\n @Prop() public loadingText: string;\n @Prop() public noResultsText: string | NoResultsTextFn;\n @Prop() public noChoicesText: string | NoChoicesTextFn;\n @Prop() public itemSelectText: '';\n @Prop() public addItemText: string | AddItemTextFn;\n @Prop() public maxItemText: string | MaxItemTextFn;\n @Prop() public uniqueItemText: UniqueItemText;\n @Prop() public classNames: ClassNames;\n @Prop() public fuseOptions: FuseOptions;\n @Prop() public addItemFilter: string | RegExp | ItemFilterFn;\n @Prop() public customAddItemText: CustomAddItemText;\n @Prop() public callbackOnInit: OnInit;\n @Prop() public callbackOnCreateTemplates: OnCreateTemplates;\n @Prop() public valueComparer: ValueCompareFunction;\n //custom ifx props\n @Prop() error: boolean = false;\n @Prop() label: string = '';\n @Prop() caption: string = '';\n @Prop() disabled: boolean = false;\n @Prop() required: boolean = false;\n @Prop() placeholderValue: string = 'Placeholder';\n @Event() ifxSelect: EventEmitter<CustomEvent>;\n @Event() ifxInput: EventEmitter<CustomEvent>;\n @Prop({ mutable: true }) options: any[] | string;\n @Prop() size: string = 'medium (40px)';\n @State() selectedOption: any | null = null;\n @State() optionIsSelected: boolean = false;\n @Prop() showClearButton: boolean = true;\n\n private resizeObserver: ResizeObserver;\n private previousOptions: any[] = [];\n\n @Element() private readonly root: HTMLElement;\n private choice;\n private element;\n\n @Watch('disabled')\n watchDisabled(newValue: boolean) {\n if (newValue && !this.error) {\n this.choice.disable();\n } else {\n this.choice.enable();\n }\n }\n\n @Method()\n async clearSelection() {\n if(!this.disabled) { \n this.clearInput();\n this.clearSelectField();\n this.setPreSelected(null);\n this.closeDropdown();\n this.optionIsSelected = false;\n }\n }\n\n clearSelectField() {\n this.selectedOption = null;\n this.ifxSelect.emit(null);\n }\n\n @Method()\n async handleChange() {\n this.ifxSelect.emit(this.choice.getValue());\n this.selectedOption = this.choice.getValue(); //store the selected option to reflect it in the template function\n this.setPreSelected(this.selectedOption.value); //set previously selected items from the input array to false and the new selection to true\n this.closeDropdown();\n }\n\n @Method()\n public async highlightItem(item: HTMLElement, runEvent?: boolean) {\n this.choice.highlightItem(item, runEvent);\n\n return this;\n }\n\n @Method()\n public async unhighlightItem(item: HTMLElement) {\n this.choice.unhighlightItem(item);\n\n return this;\n }\n\n @Method()\n public async highlightAll() {\n this.choice.highlightAll();\n\n return this;\n }\n\n @Method()\n public async unhighlightAll() {\n this.choice.unhighlightAll();\n\n return this;\n }\n\n @Method()\n public async removeActiveItemsByValue(value: string) {\n this.choice.removeActiveItemsByValue(value);\n return this;\n }\n\n @Method()\n public async removeActiveItems(excludedId?: number) {\n this.choice.removeActiveItems(excludedId);\n\n return this;\n }\n\n @Method()\n public async removeHighlightedItems(runEvent?: boolean) {\n this.choice.removeHighlightedItems(runEvent);\n\n return this;\n }\n\n @Method()\n public async showDropdown(focusInput?: boolean) {\n this.choice.showDropdown(focusInput);\n return this;\n }\n\n @Method()\n public async hideDropdown(blurInput?: boolean) {\n this.choice.hideDropdown(blurInput);\n\n return this;\n }\n\n @Method()\n public async getValue(valueOnly?: boolean): Promise<string | Array<string>> {\n return this.choice.getValue(valueOnly);\n }\n\n @Method()\n public async setValue(args: Array<any>) {\n this.choice.setValue(args);\n\n return this;\n }\n\n @Method()\n public async setChoiceByValue(value: string | Array<string>) {\n this.choice.setChoiceByValue(value);\n\n return this;\n }\n\n @Method()\n public async setChoices(choices: any[] | string, value: string, label: string, replaceChoices?: boolean) {\n let listOfChoices;\n if (typeof choices === 'string') {\n try {\n if (!isJSONParseable(choices)) {\n //meaning the input string comes from storybook as a non valid json string to be displayed in a beautified version on storybook\n choices = choices\n .replace(/'/g, '\"')\n .replace(/\"false\"/g, 'false')\n .replace(/\"true\"/g, 'true');\n }\n listOfChoices = [...JSON.parse(choices)];\n } catch (err) {\n console.error('Failed to parse choices:', err);\n }\n } else if (Array.isArray(choices) || typeof choices === 'object') {\n listOfChoices = [...choices];\n } else {\n console.error('Unexpected value for choices:', this.options);\n }\n\n this.choice.setChoices(listOfChoices, value, label, replaceChoices);\n return this;\n }\n\n @Method()\n public async clearChoices() {\n this.choice.clearChoices();\n\n return this;\n }\n\n @Method()\n public async clearStore() {\n this.choice.clearStore();\n\n return this;\n }\n\n @Method()\n public async clearInput() {\n this.choice.clearInput();\n\n return this;\n }\n\n @Method()\n public async ajax(fn: AjaxFn) {\n this.choice.ajax(fn);\n\n return this;\n }\n\n @Method()\n async handleDeleteIcon() {\n const width = this.root.offsetWidth;\n const deleteIconWrapper = this.root.querySelector('.ifx-choices__icon-wrapper-delete');\n if (deleteIconWrapper) {\n if (width <= 180) {\n deleteIconWrapper.classList.add('hide');\n } else if (this.showClearButton) {\n deleteIconWrapper.classList.remove('hide');\n }\n }\n }\n\n handleCloseButton() {\n if (typeof this.options === 'string') {\n const optionsToArray = JSON.parse(this.options);\n const optionIsSelected = optionsToArray.find(option => option.selected === true);\n if (optionIsSelected) {\n this.optionIsSelected = true;\n } else {\n this.optionIsSelected = false;\n }\n } else if (this.options && Array.isArray(this.options)) {\n const optionIsSelected = this.options.find(option => option.selected === true);\n if (optionIsSelected) {\n this.optionIsSelected = true;\n } else {\n this.optionIsSelected = false;\n }\n }\n }\n\n protected componentWillLoad() {\n this.handleCloseButton();\n }\n\n protected componentWillUpdate() {\n this.handleCloseButton();\n this.previousOptions = [...this.options];\n const optionsAreEqual = this.isEqual(this.options, this.previousOptions);\n if (this.options && !optionsAreEqual) {\n this.clearSelectField();\n }\n }\n\n isEqual(a: any, b: any[]) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n addResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => {\n this.handleDeleteIcon();\n });\n\n const componentWrapper = this.root.querySelector('.ifx-choices__wrapper');\n this.resizeObserver.observe(componentWrapper);\n }\n\n protected async componentDidLoad() {\n this.init();\n if (!isNestedInIfxComponent(this.root)) {\n const framework = detectFramework();\n trackComponent('ifx-select', await framework);\n }\n this.addEventListenersToHandleCustomFocusAndActiveState();\n this.handleDeleteIcon();\n this.addResizeObserver();\n }\n\n protected componentDidUpdate() {\n this.init();\n this.handleDeleteIcon();\n }\n\n protected disconnectedCallback() {\n this.destroy();\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n private handleWrapperClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const isSearchInput = target.classList.contains('choices__input') || target.closest('.choices__input');\n const isDropdownItem = target.closest('.choices__list--dropdown .choices__item');\n\n // Only toggle dropdown if clicking on wrapper itself\n if (!isSearchInput && !isDropdownItem) {\n this.toggleDropdown();\n }\n }\n\n protected render(): any {\n const attributes = {\n 'data-selector': 'root',\n 'name': this.name || null,\n // 'remove-item-button': false,\n };\n const choicesWrapperClass = `ifx-choices__wrapper ${this.getSizeClass()}`;\n\n // destroy choices element to restore previous dom structure\n // so vdom can replace the element correctly\n this.destroy();\n\n return (\n <div class={`ifx-select-container`}>\n {this.label ? (\n <div class={`ifx-label-wrapper ${this.disabled && !this.error ? 'disabled' : \"\"}`}>\n <span>{this.label}</span>\n {this.required && <span class={`required ${this.error ? 'error' : ''}`}>*</span>}\n </div>\n ) : null}\n <div\n class={`${choicesWrapperClass} \n ${this.disabled && !this.error ? 'disabled' : ''} \n ${this.error ? 'error' : ''}`}\n onClick={this.disabled && !this.error ? undefined : e => this.handleWrapperClick(e)}\n onKeyDown={event => this.handleKeyDown(event)}\n >\n <select class=\"single__select-input-field\" disabled={this.disabled && !this.error} {...attributes} data-trigger onChange={() => this.handleChange()}>\n {this.createSelectOptions(this.options)}\n </select>\n\n <div class=\"single__select-icon-container\">\n {this.optionIsSelected && (\n <div class={`ifx-choices__icon-wrapper-delete ${!this.showClearButton ? 'hide' : ''}`}>\n <ifx-icon icon=\"cRemove16\" onClick={() => this.clearSelection()}></ifx-icon>\n </div>\n )}\n <div class=\"ifx-choices__icon-wrapper-up\">\n <ifx-icon key=\"icon-up\" icon=\"chevron-up-16\"></ifx-icon>\n </div>\n <div class=\"ifx-choices__icon-wrapper-down\">\n <ifx-icon key=\"icon-down\" icon=\"chevron-down-16\"></ifx-icon>\n </div>\n </div>\n </div>\n {this.caption && <div class={`single__select-caption ${this.error ? 'error' : ''} ${this.disabled && !this.error ? 'disabled' : ''}`}>{this.caption}</div>}\n </div>\n );\n }\n\n toggleDropdown() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n if (div.classList.contains('active') || this.choice.dropdown.isActive) {\n this.closeDropdown();\n } else {\n this.choice.showDropdown();\n div.classList.add('active');\n }\n const choicesElement = this.root.querySelector('.choices');\n choicesElement.classList.add('is-focused'); // Add the 'is-focused' class, cause a click on the wrapper (and not the embedded select element) doesnt add this automatically to the choices instance\n }\n\n closeDropdown() {\n this.hideDropdown();\n const wrapper = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n wrapper.focus();\n wrapper.classList.remove('active');\n }\n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n const ifxChoicesContainer = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!path.includes(this.root)) {\n ifxChoicesContainer.classList.remove('active');\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) {\n return;\n }\n\n const isSearchInput = (event.target as HTMLElement).classList.contains('choices__input');\n const isClearButton = (event.target as HTMLElement).classList.contains('ifx-choices__icon-wrapper-delete');\n\n switch (event.code) {\n case 'Enter': {\n if (isClearButton) {\n this.clearSelection();\n } else {\n this.toggleDropdown();\n }\n break;\n }\n case 'Space': {\n if (!isSearchInput) {\n this.toggleDropdown();\n }\n break;\n }\n case 'Tab': {\n if (isSearchInput) {\n event.preventDefault();\n this.closeDropdown();\n }\n break;\n }\n }\n }\n\n getSizeClass() {\n return `${this.size}` === 's' ? 'small-select' : 'medium-select';\n }\n\n private init() {\n const props = {\n allowHTML: true,\n items: this.items,\n choices: this.choices,\n renderChoiceLimit: this.renderChoiceLimit,\n maxItemCount: this.maxItemCount,\n addItems: this.addItems,\n removeItems: this.removeItems,\n removeItemButton: this.removeItemButton,\n editItems: this.editItems,\n duplicateItemsAllowed: this.duplicateItemsAllowed,\n delimiter: this.delimiter,\n paste: this.paste,\n searchEnabled: this.showSearch,\n searchChoices: this.searchChoices,\n searchFields: this.searchFields,\n searchFloor: this.searchFloor,\n searchResultLimit: this.searchResultLimit,\n position: this.position,\n resetScrollPosition: this.resetScrollPosition,\n shouldSort: false, // choices/groups will appear in the order they were given.\n shouldSortItems: this.shouldSortItems,\n sorter: this.sorter,\n placeholder: this.placeholder,\n searchPlaceholderValue: this.searchPlaceholderValue,\n prependValue: this.prependValue,\n appendValue: this.appendValue,\n renderSelectedChoices: this.renderSelectedChoices,\n loadingText: this.loadingText,\n noResultsText: this.noResultsText,\n noChoicesText: this.noChoicesText,\n itemSelectText: this.itemSelectText,\n addItemText: this.addItemText,\n maxItemText: this.maxItemText,\n uniqueItemText: this.uniqueItemText,\n classNames: this.classNames,\n fuseOptions: this.fuseOptions,\n callbackOnInit: this.callbackOnInit,\n callbackOnCreateTemplates: this.callbackOnCreateTemplates,\n valueComparer: this.valueComparer,\n addItemFilter: this.addItemFilter,\n customAddItemText: this.customAddItemText,\n };\n\n const settings = filterObject(props, isDefined);\n\n //type check\n const element = this.root.querySelector('[data-selector=\"root\"]');\n if (element instanceof HTMLInputElement || element instanceof HTMLSelectElement) {\n // this.choice = new ChoicesJs(element, settings); //standard, without using custom templates\n const self = this; // save the context of this in a variable outside of the function to access it in the following\n\n this.choice = new ChoicesJs(\n element,\n Object.assign({}, settings, {\n callbackOnCreateTemplates: function (template) {\n return {\n //modifying the selected item template\n item: ({ classNames }, data) => {\n let removeButtonHTML = '';\n\n if (data.placeholder && !self.selectedOption?.value) {\n // For placeholders, use data-id=\"placeholder\"\n return template(`\n <div class=\"choices__placeholder\" data-item data-id=\"${data.id}\" data-value=\"${data.value}\" ${data.disabled && !this.error ? 'aria-disabled=\"true\"' : ''}>\n ${data.label === undefined ? this.placeholderValue : data.label}\n ${removeButtonHTML}\n </div>\n `);\n } else {\n // For non-placeholder items, use the actual data ID\n return template(`\n <div class=\"${classNames.item} ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}\" \n data-item \n data-id=\"${self.selectedOption?.id !== undefined ? self.selectedOption?.id : self.choice.getValue().id}\" \n data-value=\"${self.selectedOption?.value !== undefined ? self.selectedOption?.value : self.choice.getValue().value}\" \n ${data.disabled && !this.error ? 'aria-disabled=\"true\"' : ''}>\n <span>${self.selectedOption?.label !== undefined ? self.selectedOption?.label : self.choice.getValue().label}</span>\n <!-- Add your remove button here if needed -->\n </div>\n `);\n }\n },\n input: ({ classNames }) => {\n return template(`\n <input \n type=\"search\"\n class=\"${classNames.input} ${classNames.inputCloned} ${self.getSizeClass()}\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n role=\"textbox\"\n aria-autocomplete=\"list\"\n aria-label=\"${this.showSearch ? this.searchPlaceholderValue : ''}\">`);\n },\n\n //modifying the template of each item in the options list\n choice: ({ classNames }, data) => {\n return template(`\n <div class=\"${classNames.item} ${classNames.itemChoice} ${self.getSizeClass()} \n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? 'selected' : ''} \n ${data.placeholder ? classNames.placeholder : ''} \n ${data.disabled && !this.error ? classNames.itemDisabled : classNames.itemSelectable} \n role=\"${data.groupId && data.groupId > 0 ? 'treeitem' : 'option'}\"\n data-choice ${data.disabled && !this.error ? 'data-choice-disabled aria-disabled=\"true\"' : 'data-choice-selectable'} data-id=\"${data.id}\"\n data-value=\"${data.value}\"\n data-select-text=\"${this.config.itemSelectText}\">\n <span>${data.label}</span>\n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? '<ifx-icon icon=\"check16\"></ifx-icon>' : ''}\n </div>\n `);\n },\n };\n },\n }),\n );\n\n //set select options\n this.setChoices(this.options, 'value', 'label', true);\n //set custom event listener to listen for search input\n self.addSearchEventListener(self, this.choice);\n } else {\n // handle the case when the element is neither an HTMLInputElement nor an HTMLSelectElement\n }\n }\n\n private addEventListenersToHandleCustomFocusAndActiveState() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!div) {\n console.error('.ifx-choices__wrapper not found');\n return;\n }\n\n div.tabIndex = 0;\n\n div.addEventListener('focus', function () {\n if (!this.classList.contains('disabled')) {\n this.classList.add('focus');\n }\n });\n\n div.addEventListener('blur', function () {\n this.classList.remove('focus');\n });\n }\n\n private addSearchEventListener(self, choiceElement: ChoicesJs) {\n choiceElement.passedElement.element.addEventListener(\n 'search',\n function (event: CustomEvent) {\n self.ifxInput.emit(event.detail.value);\n },\n false,\n );\n return choiceElement;\n }\n\n private destroy() {\n if (this.element) {\n this.element = null;\n }\n\n if (this.choice) {\n this.choice.destroy();\n this.choice = null;\n }\n }\n\n //get selected values from input array\n private getPreSelected(self) {\n const optionsArray: any[] = Array.isArray(self.options) ? self.options : JSON.parse(self.options);\n return optionsArray.find(option => option.selected === true) || null;\n }\n\n //set previously marked as selected items in the input array to unselected and select new ones\n private setPreSelected(newValue) {\n const optionsArray: any[] = Array.isArray(this.options) ? this.options : JSON.parse(this.options);\n\n this.options = optionsArray.map(obj => {\n return {\n ...obj,\n selected: obj.value === newValue,\n };\n });\n }\n\n //setting the value that gets displayed in the select at component start (either the value prop or a placeholder)\n private createSelectOptions(ifxOptions): Array<HTMLStencilElement> {\n if (this.value !== 'undefined' || this.selectedOption?.value !== '') {\n let options;\n if (isJSONParseable(ifxOptions)) {\n options = [...JSON.parse(ifxOptions)];\n } else if (Array.isArray(ifxOptions) || typeof ifxOptions === 'object') {\n options = [...ifxOptions];\n }\n const optionValueBasedOnAvailableOptions = options?.find(option => option.value === this.value || this.selectedOption?.value);\n\n if (optionValueBasedOnAvailableOptions) {\n return [<option value={optionValueBasedOnAvailableOptions.value}>{optionValueBasedOnAvailableOptions.label}</option>];\n }\n }\n\n // Assign a unique id for the placeholder\n return this.placeholder !== 'false' ? [<option value=\"\">{this.placeholderValue}</option>] : [<option value=\"\"></option>];\n }\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { ButtonInterface } from './interfaces';\n\nexport class ButtonCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eButton!: HTMLElement; // Change to a generic HTMLElement to accommodate custom elements\n eventListener!: (event: Event) => void;\n\n init(params: ICellRendererParams) {\n this.createButton(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateButton(params);\n return true;\n }\n\n private createButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n this.eGui = document.createElement('div');\n this.eButton = document.createElement('ifx-button') as HTMLElement;\n \n if (this.hasRequiredKeys(config)) {\n this.setButtonAttributes(config);\n this.eGui.appendChild(this.eButton);\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private updateButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n if (this.hasRequiredKeys(config)) {\n this.setButtonAttributes(config);\n this.detachEventListener();\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setButtonAttributes(config: ButtonInterface) {\n this.eButton.setAttribute('disabled', config.disabled.toString());\n this.eButton.setAttribute('variant', config.variant);\n this.eButton.setAttribute('theme', config.theme);\n this.eButton.setAttribute('type', config.type);\n this.eButton.setAttribute('size', config.size);\n this.eButton.setAttribute('full-width', config.fullWidth.toString());\n this.eButton.setAttribute('target', config.target);\n this.eButton.setAttribute('href', config.href);\n this.eButton.textContent = config.text;\n }\n\n private attachEventListener(options: any, params: ICellRendererParams) {\n this.eventListener = (event: Event) => {\n if (options.onButtonClick) {\n options.onButtonClick(params, event);\n }\n };\n this.eButton.addEventListener('click', this.eventListener);\n }\n\n private detachEventListener() {\n if (this.eventListener) {\n this.eButton.removeEventListener('click', this.eventListener);\n }\n }\n\n private hasRequiredKeys(config: ButtonInterface): boolean {\n return config && config.text !== '' && config.variant !== '' && config.size !== '' && config.type !== '';\n }\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { CheckboxInterface } from './interfaces';\n\nexport class CheckboxCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eCheckbox!: HTMLElement;\n eventListener!: (event: Event) => void;\n\n init(params: ICellRendererParams) {\n this.createCheckbox(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateCheckbox(params);\n return true;\n }\n\n private createCheckbox(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n this.eGui = document.createElement('div');\n this.eGui.style.display = 'flex';\n this.eGui.style.alignItems = 'center';\n this.eGui.style.justifyContent = 'center';\n this.eCheckbox = document.createElement('ifx-checkbox') as HTMLElement;\n\n if (this.hasRequiredKeys(config)) {\n this.setCheckboxAttributes(config);\n this.eGui.appendChild(this.eCheckbox);\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : 'No checkbox data';\n }\n }\n\n private updateCheckbox(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n\n if (this.hasRequiredKeys(config)) {\n this.setCheckboxAttributes(config);\n this.detachEventListener();\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setCheckboxAttributes(config: CheckboxInterface) {\n this.eCheckbox.setAttribute('disabled', config.disabled.toString());\n this.eCheckbox.setAttribute('error', config.error.toString());\n this.eCheckbox.setAttribute('size', config.size);\n this.eCheckbox.setAttribute('checked', config.checked.toString());\n this.eCheckbox.setAttribute('indeterminate', config.indeterminate.toString());\n }\n\n private attachEventListener(options: any, params: ICellRendererParams) {\n this.eventListener = (event: Event) => {\n if (options.onCheckboxClick) {\n options.onCheckboxClick(params, event);\n }\n };\n this.eCheckbox.addEventListener('click', this.eventListener);\n }\n\n private detachEventListener() {\n if (this.eventListener) {\n this.eCheckbox.removeEventListener('click', this.eventListener);\n }\n }\n\n private hasRequiredKeys(config: CheckboxInterface): boolean {\n return config && config.size !== '';\n }\n}\n","import { IHeaderComp, IHeaderParams } from 'ag-grid-community';\n\nexport class CheckboxHeaderRenderer implements IHeaderComp {\n eGui!: HTMLDivElement;\n eCheckbox!: HTMLElement;\n params!: IHeaderParams & { onSelectAll?: (checked: boolean) => void };\n\n init(params: IHeaderParams & { onSelectAll?: (checked: boolean) => void }) {\n this.params = params;\n this.createHeader();\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: IHeaderParams): boolean {\n this.params = { ...this.params, ...params };\n return true;\n }\n\n private createHeader() {\n this.eGui = document.createElement('div');\n this.eGui.style.display = 'flex';\n this.eGui.style.alignItems = 'center';\n this.eGui.style.justifyContent = 'center';\n\n this.eCheckbox = document.createElement('ifx-checkbox');\n this.eCheckbox.setAttribute('size', 's');\n this.eCheckbox.setAttribute('checked', 'false');\n\n this.eCheckbox.addEventListener('ifxChange', (event: any) => {\n const checked = event.detail;\n if (this.params.onSelectAll) {\n this.params.onSelectAll(checked);\n }\n });\n\n this.eGui.appendChild(this.eCheckbox);\n }\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { IconButtonInterface } from './interfaces';\n\nexport class IconButtonCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eIconButton!: HTMLElement; \n eventListener!: (event: Event) => void;\n\n init(params: ICellRendererParams) {\n this.createIconButton(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateIconButton(params);\n return true;\n }\n\n private createIconButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n this.eGui = document.createElement('div');\n this.eIconButton = document.createElement('ifx-icon-button') as HTMLElement;\n \n if (this.hasRequiredKeys(config)) {\n this.setIconButtonAttributes(config);\n this.eGui.appendChild(this.eIconButton);\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private updateIconButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n if (this.hasRequiredKeys(config)) {\n this.setIconButtonAttributes(config);\n this.detachEventListener();\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setIconButtonAttributes(config: IconButtonInterface) {\n this.eIconButton.setAttribute('disabled', config.disabled.toString());\n this.eIconButton.setAttribute('variant', config.variant);\n this.eIconButton.setAttribute('shape', config.shape);\n this.eIconButton.setAttribute('size', config.size);\n this.eIconButton.setAttribute('target', config.target);\n this.eIconButton.setAttribute('href', config.href);\n this.eIconButton.setAttribute('icon', config.icon);\n }\n\n private attachEventListener(options: any, params: ICellRendererParams) {\n this.eventListener = (event: Event) => {\n if (options.onIconButtonClick) {\n options.onIconButtonClick(params, event);\n }\n };\n this.eIconButton.addEventListener('click', this.eventListener);\n }\n\n private detachEventListener() {\n if (this.eventListener) {\n this.eIconButton.removeEventListener('click', this.eventListener);\n }\n }\n\n private hasRequiredKeys(config: IconButtonInterface): boolean {\n return config && config.variant !== '' && config.size !== '' && config.shape !== '';\n }\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { LinkInterface } from './interfaces';\n\nexport class LinkCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eLink!: HTMLElement;\n\n init(params: ICellRendererParams) {\n this.createLink(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateLink(params);\n return true;\n }\n\n private createLink(params: ICellRendererParams) {\n const field = params.colDef?.field as string | undefined;\n const config = (params.value ?? params.data?.[field]) as any;\n\n this.eGui = document.createElement('div');\n this.eLink = document.createElement('ifx-link') as HTMLElement;\n\n if (this.hasRequiredKeys(config)) {\n this.setLinkAttributes(config);\n this.eGui.appendChild(this.eLink);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private updateLink(params: ICellRendererParams) {\n const field = params.colDef?.field as string | undefined;\n const config = (params.value ?? params.data?.[field]) as any;\n\n if (this.hasRequiredKeys(config)) {\n this.setLinkAttributes(config);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setLinkAttributes(config: LinkInterface) {\n this.eLink.setAttribute('disabled', config.disabled?.toString());\n this.eLink.setAttribute('variant', config.variant);\n this.eLink.setAttribute('size', config.size);\n this.eLink.setAttribute('target', config.target);\n this.eLink.setAttribute('href', config.href);\n if (config.download) this.eLink.setAttribute('download', config.download);\n this.eLink.textContent = config.text || '';\n }\n\n private hasRequiredKeys(config: LinkInterface): boolean {\n return !!(\n config &&\n config.text &&\n config.variant &&\n config.size\n );\n }\n}\n","// statusCellRenderer.ts\nimport { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\n\ntype StatusConfig = {\n label: string;\n color?: string;\n border?: boolean;\n};\n\nexport class StatusCellRenderer implements ICellRendererComp {\n private eGui!: HTMLDivElement;\n\n init(params: ICellRendererParams) {\n this.eGui = document.createElement('div');\n this.render(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.render(params);\n return true;\n }\n\nprivate render(params: ICellRendererParams) {\n const field = params.colDef?.field as string | undefined;\n const cfg = (params.value ?? params.data?.[field]) as StatusConfig | string | undefined;\n\n this.eGui.textContent = '';\n\n if (cfg && typeof cfg === 'object' && 'label' in cfg) {\n const el = document.createElement('ifx-status') as any;\n el.label = cfg.label;\n if (cfg.color != null) el.color = cfg.color;\n el.border = !!(cfg as StatusConfig).border;\n this.eGui.appendChild(el);\n } else if (cfg != null) {\n this.eGui.textContent = String(cfg);\n }\n}\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\n\nexport class CustomNoRowsOverlay implements ICellRendererComp {\n eGui!: HTMLElement;\n\n init(params: ICellRendererParams & { noRowsMessageFunc: () => string }) {\n this.eGui = document.createElement('div');\n this.eGui.innerHTML = `\n <div role=\"presentation\" class=\"ag-overlay-loading-center\" >\n ${params.noRowsMessageFunc()}\n </div>\n `;\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(_params: ICellRendererParams): boolean {\n return false;\n }\n}","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\n\nexport class CustomLoadingOverlay implements ICellRendererComp {\n eGui!: HTMLElement;\n\n init(_params: ICellRendererParams & { loadingMessage: string }) {\n this.eGui = document.createElement('div');\n this.eGui.innerHTML = `<div class=\"ag-overlay-loading-center\" role=\"presentation\">\n<ifx-spinner></ifx-spinner>\n </div>`;\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(_params: ICellRendererParams): boolean {\n return false;\n }\n}","@use '~@infineon/design-system-tokens/dist/tokens';\n@use '../../global/font.scss';\n\n@import '~ag-grid-community/styles/ag-grid.css';\n\n.zebra {\n & .ag-row-odd {\n background-color: tokens.$ifxColorEngineering100 !important;\n }\n\n & .ag-row {\n border-bottom: none !important;\n }\n}\n\n.ag-header-viewport {\n background-color: tokens.$ifxColorEngineering200 !important;\n}\n\n.table-container {\n display: block;\n}\n\n.sidebar-btn {\n margin-bottom: 24px;\n}\n\n.sidebar-container {\n margin-right: 24px;\n}\n\n.sidebar-layout {\n display: flex;\n flex-direction: row;\n}\n\n.topbar-layout {\n display: flex;\n flex-direction: column;\n}\n\n.table-pagination-wrapper {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n width: 100%;\n\n & .pagination-wrapper {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n }\n}\n\n#table-wrapper {\n flex: 1;\n padding-bottom: tokens.$ifxSpace100;\n overflow-x: auto;\n width: 100%;\n}\n\n.table-wrapper {\n overflow-x: auto;\n width: 100%;\n}\n\n.ag-horizontal-left-spacer {\n display: none;\n}\n\n.table-wrapper .ag-root-wrapper-body {\n height: auto !important;\n min-height: 100px !important;\n min-width: 100px;\n}\n\n.filter-chips {\n display: flex;\n flex-wrap: wrap;\n gap: tokens.$ifxSpace100;\n margin-bottom: 12px;\n}\n\n.filter-chips > ifx-button {\n margin-left: -8px;\n}\n\n.set-filter-wrapper-sidebar {\n display: flex;\n flex-direction: column;\n margin-bottom: tokens.$ifxSpace100;\n}\n\n.set-filter-wrapper-topbar {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n margin-bottom: tokens.$ifxSpace100;\n background: tokens.$ifxColorEngineering100;\n padding-top: 32px;\n padding-bottom: 32px;\n gap: 24px;\n}\n\n.headline-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px 0px;\n}\n\n.inner-buttons-wrapper {\n flex: 1;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 5px;\n}\n\n.ifx-ag-grid {\n display: grid;\n height: 100%;\n width: 100%;\n min-width: 100px;\n overflow-x: auto;\n}\n\n.ifx-ag-grid .ag-header-cell::after {\n outline: none !important;\n border: none !important;\n box-shadow: none !important;\n}\n\n.ifx-ag-grid .ag-header-cell:focus {\n outline: none !important;\n}\n\n.ifx-ag-grid *:not(.ag-header-cell):focus {\n outline: none;\n}\n\n.ifx-ag-grid .ag-header-cell:not(:last-child)::before {\n content: '';\n position: absolute;\n right: 0;\n top: calc(50% - 12px);\n height: 24px;\n width: 1px;\n background-color: tokens.$ifxColorEngineering300;\n}\n\n.ag-pinned-left-header {\n background-color: tokens.$ifxColorEngineering200;\n min-width: 50px !important;\n max-width: 50px !important;\n width: 50px !important;\n &::before {\n content: '';\n position: absolute;\n right: 0;\n top: calc(50% - 12px);\n height: 24px;\n width: 1px;\n background-color: tokens.$ifxColorEngineering300;\n }\n}\n\n.ag-header-row {\n width: 50px !important;\n}\n\n.ag-pinned-left-cols-container {\n width: 50px !important;\n max-width: 50px !important;\n min-width: 50px !important;\n}\n\n.ag-overlay-loading-center {\n border: none;\n background: none;\n border-radius: none;\n box-shadow: none;\n}\n\n.ag-root-wrapper {\n border: 1px solid tokens.$ifxColorEngineering200;\n}\n\n.ag-header {\n background-color: tokens.$ifxColorEngineering100;\n border-bottom: none;\n\n &.ag-header-active {\n outline: none !important;\n border-color: #0a8276 !important;\n }\n}\n\n.ag-header-cell {\n padding-left: 16px;\n padding-right: 16px;\n gap: 4px;\n}\n\n.ag-header-cell-focus {\n border: none !important;\n outline: none !important;\n}\n\n.ag-header-cell-text {\n font-size: 13px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n color: tokens.$ifxColorBaseBlack;\n font-family: var(--ifx-font-family);\n}\n\n.ag-row-focus {\n background-color: inherit !important;\n}\n\n.ag-row-hover {\n background-color: tokens.$ifxColorBaseWhite !important;\n}\n\n.ag-cell-focus {\n border: none !important;\n outline: none !important;\n background-color: inherit !important;\n}\n\n.ag-row {\n background-color: tokens.$ifxColorBaseWhite;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n z-index: 1;\n}\n\n.ag-row-odd {\n background-color: tokens.$ifxColorBaseWhite;\n}\n\n.ag-cell {\n display: flex;\n padding-left: 16px;\n padding-right: 16px;\n white-space: pre-line;\n min-height: 40px;\n height: auto;\n}\n\n.ag-ltr .ag-sort-indicator-icon {\n padding-left: 0px;\n vertical-align: bottom;\n line-height: 12px;\n}\n\n.ag-sort-indicator-container .ag-sort-order {\n display: none;\n}\n\n.unsort-icon-custom-color {\n color: tokens.$ifxColorEngineering400;\n}\n\n.filters-title {\n font-size: 24px;\n font-weight: 600;\n}\n\n.matching-results-container {\n flex: 1;\n font-family: 'Source Sans 3';\n display: flex;\n gap: 4px;\n font-size: 24px;\n font-weight: 600;\n line-height: 32px;\n letter-spacing: -1px;\n padding-right: 56px;\n}\n\n.matching-results-count {\n font-weight: 600;\n}\n\n.matching-results-text {\n font-weight: 400;\n}\n\n.ag-body-horizontal-scroll {\n display: none;\n}\n\n@media (max-width: tokens.$ifxBreakpointM) {\n .table-wrapper,\n #table-wrapper {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n\n .ag-root-wrapper {\n min-width: 100%;\n }\n\n .ag-body-horizontal-scroll {\n display: block;\n }\n\n .ag-header-cell,\n .ag-cell {\n min-width: 100px;\n white-space: nowrap;\n }\n\n .sidebar-layout {\n flex-direction: column;\n }\n\n .sidebar-container {\n margin-right: 0;\n margin-bottom: 24px;\n }\n\n .set-filter-wrapper-topbar {\n padding-left: 16px;\n padding-right: 16px;\n }\n\n .table-pagination-wrapper {\n gap: tokens.$ifxSpace200;\n }\n}\n","import { Component, h, Host, Method, Element, Prop, State, Listen, Watch } from '@stencil/core';\nimport classNames from 'classnames';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport { CellPosition, createGrid, FirstDataRenderedEvent, GridApi, GridOptions } from 'ag-grid-community';\nimport { ButtonCellRenderer } from './buttonCellRenderer';\nimport { CheckboxCellRenderer } from './checkboxCellRenderer';\nimport { CheckboxHeaderRenderer } from './checkboxHeaderRenderer';\nimport { IconButtonCellRenderer } from './iconButtonCellRenderer';\nimport { LinkCellRenderer } from './linkCellRenderer';\nimport { StatusCellRenderer } from './statusCellRenderer';\nimport { CustomNoRowsOverlay } from './customNoRowsOverlay';\nimport { CustomLoadingOverlay } from './customLoadingOverlay';\n\n@Component({\n tag: 'ifx-table',\n styleUrl: 'table.scss',\n shadow: true,\n})\nexport class Table {\n gridOptions: GridOptions;\n gridApi: GridApi;\n @State() currentPage: number = 1;\n @Prop() cols: any;\n @Prop() rows: any;\n @Prop() buttonRendererOptions?: { onButtonClick?: (params: any, event: Event) => void };\n @Prop() iconButtonRendererOptions?: { onIconButtonClick?: (params: any, event: Event) => void };\n @Prop() checkboxRendererOptions?: { onCheckboxClick?: (params: any, event: Event) => void };\n @State() rowData: any[] = [];\n @State() colData: any[] = [];\n @State() filterOptions: { [key: string]: string[] } = {};\n @State() currentFilters = {};\n @State() uniqueKey: string;\n allRowData: any[] = [];\n @Prop() rowHeight: string = 'default';\n @Prop() tableHeight: string = 'auto';\n @Prop() pagination: boolean = true;\n @Prop() paginationItemsPerPage: string;\n @State() paginationPageSize: number = 10;\n @Prop() filterOrientation: string = 'sidebar';\n @Prop() headline: string = '';\n @State() showSidebarFilters: boolean = true;\n @State() matchingResultsCount: number = 0;\n @Prop() variant: string = 'default';\n @Prop() serverSidePagination: boolean = false;\n @Prop() serverPageChangeHandler?: (params: { page: number; pageSize: number }) => Promise<{ rows: any[]; total: number }>;\n @Prop() enableSelection: boolean = false;\n @State() selectedRows: Set<string> = new Set();\n @State() selectAll: boolean = false;\n @State() selectedRowsData: Map<string, any> = new Map();\n @Prop() showLoading: boolean = false;\n private container: HTMLDivElement;\n @Element() host: HTMLElement;\n originalRowData: any[] = [];\n\n private internalItemsPerPage = JSON.stringify([\n { value: 10, label: '10', selected: true },\n { value: 20, label: '20', selected: false },\n { value: 30, label: '30', selected: false },\n ]);\n\n @Watch('rows')\n rowsChanged(_newVal: any) {\n const parsed = this.parseArrayInput<any>(this.rows);\n\n parsed.forEach((row, index) => {\n if (!row.__rowId) {\n row.__rowId = `row_${index}_${Date.now()}_${Math.random()}`;\n }\n });\n\n if (this.enableSelection) {\n parsed.forEach(row => {\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(row.__rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n });\n }\n this.currentFilters = {};\n this.currentPage = 1;\n this.originalRowData = [...parsed];\n this.allRowData = [...parsed];\n this.matchingResultsCount = this.allRowData.length;\n this.updateTableView();\n this.updateFilterOptions();\n }\n\n @Watch('cols')\n colsChanged(_newVal: any) {\n this.colData = this.getColData();\n\n if (this.gridApi) {\n this.gridApi.setGridOption('columnDefs', this.colData);\n this.gridApi.sizeColumnsToFit({\n defaultMinWidth: 100,\n });\n }\n\n this.updateFilterOptions();\n }\n\n @Listen('ifxItemsPerPageChange')\n handleResultsPerPageChange(e: CustomEvent<string>) {\n this.paginationPageSize = Number(e.detail);\n this.currentPage = 1;\n this.updateTableView();\n }\n\n @Listen('ifxChange')\n handleChipChange(event: CustomEvent<{ previousSelection: Array<any>; currentSelection: Array<any>; name: string }>) {\n const { name, currentSelection, previousSelection } = event.detail;\n if (currentSelection && previousSelection) {\n // Clone the current filters state\n const updatedFilters = { ...this.currentFilters };\n\n if (currentSelection.length === 0) {\n // If there are no selections for this filter, delete the filter\n delete updatedFilters[name];\n\n // Emit event with specific filter name\n const customEvent = new CustomEvent('ifxUpdateSidebarFilter', { detail: { filterName: name }, bubbles: true, composed: true });\n this.host.dispatchEvent(customEvent);\n } else {\n // Otherwise, update the filter values with the current selection\n updatedFilters[name].filterValues = currentSelection.map(selection => selection.value);\n }\n\n // Update the component's filters\n this.currentFilters = updatedFilters;\n // Ensure table data is updated\n this.allRowData = this.applyAllFilters(this.originalRowData, this.currentFilters);\n this.updateTableView();\n }\n }\n\n @Watch('buttonRendererOptions')\n onButtonRendererOptionsChanged() {\n this.colData = this.getColData();\n if (this.gridApi) {\n this.gridApi.setColumnDefs(this.colData);\n }\n }\n\n @Watch('iconButtonRendererOptions')\n onIconButtonRendererOptionsChanged() {\n this.colData = this.getColData();\n if (this.gridApi) {\n this.gridApi.setColumnDefs(this.colData);\n }\n }\n\n @Watch('checkboxRendererOptions')\n onCheckboxRendererOptionsChanged() {\n this.colData = this.getColData();\n if (this.gridApi) {\n this.gridApi.setColumnDefs(this.colData);\n }\n }\n\n private parseArrayInput<T>(input: any): T[] {\n if (typeof input === 'string') {\n try {\n const parsed = JSON.parse(input);\n return Array.isArray(parsed) ? parsed : [];\n } catch {\n console.error('Failed to parse input:', input);\n return [];\n }\n }\n if (Array.isArray(input)) return input;\n if (typeof input === 'object' && input !== null) return [input as T];\n return [];\n }\n\n toggleSidebarFilters() {\n this.showSidebarFilters = !this.showSidebarFilters;\n }\n\n updateFilterOptions() {\n const options = {};\n for (let col of this.colData) {\n options[col.field] = [...new Set(this.rowData.map(row => row[col.field]))];\n }\n this.filterOptions = options;\n }\n\n private updateHeaderCheckboxState() {\n if (this.gridApi && this.enableSelection) {\n setTimeout(() => {\n const headerCheckbox = this.container?.querySelector('.ag-header-cell[col-id=\"__checkbox\"] ifx-checkbox') as any;\n if (headerCheckbox) {\n if (this.serverSidePagination) {\n // For server-side: only reflect current page selection\n const currentPageSelectedCount = this.rowData.filter(row => this.selectedRows?.has(row.__rowId)).length;\n const allOnPageSelected = currentPageSelectedCount === this.rowData.length && this.rowData.length > 0;\n const someOnPageSelected = currentPageSelectedCount > 0 && currentPageSelectedCount < this.rowData.length;\n\n headerCheckbox.checked = allOnPageSelected;\n headerCheckbox.indeterminate = someOnPageSelected;\n } else {\n // For client-side: use all data\n const allSelected = this.selectedRows.size === this.allRowData.length && this.allRowData.length > 0;\n const someSelected = this.selectedRows.size > 0 && this.selectedRows.size < this.allRowData.length;\n\n headerCheckbox.checked = allSelected;\n headerCheckbox.indeterminate = someSelected;\n }\n }\n }, 0);\n }\n }\n\n handleSidebarFilterChange(event: CustomEvent) {\n const filterGroups = event.detail;\n const updatedFilters = {};\n\n filterGroups.forEach(filterGroup => {\n const filterName = filterGroup.filterGroupName;\n let filterValues;\n let type;\n\n if (filterGroup.selectedItems && filterGroup.selectedItems.length > 0) {\n filterValues = filterGroup.selectedItems.map(item => item.label);\n type = 'multi-select';\n } else if (filterGroup.value) {\n filterValues = [filterGroup.value];\n type = 'text';\n } else {\n filterValues = [];\n }\n\n if (!(filterValues.length === 0 || (filterValues.length === 1 && type === 'text' && filterValues[0] === ''))) {\n updatedFilters[filterName] = { filterValues, type };\n }\n });\n\n this.allRowData = this.applyAllFilters(this.originalRowData, updatedFilters);\n this.updateTableView();\n this.currentFilters = updatedFilters;\n }\n\n handleTopbarFilterChange(event: CustomEvent) {\n const filters = event.detail;\n\n // Start by resetting the filter conditions to a blank object\n this.currentFilters = {};\n\n // Loop through each filter group provided in the event detail\n filters.forEach(filter => {\n const filterName = filter.filterName;\n let filterValues;\n\n let type = filter.type;\n\n if (type === 'text') {\n // Search/Text filter\n filterValues = filter.filterValues;\n } else {\n // Multi-select/Single-Select\n filterValues = filter.filterValues.map(item => item.label);\n }\n\n // If there are no filter values, or the filter is a text filter with an empty value, remove the filter\n if (!(filterValues.length === 0 || (filterValues.length === 1 && type === 'text' && filterValues[0] === ''))) {\n // Add or update the filter in the currentFilters object\n this.currentFilters[filterName] = { filterValues, type };\n }\n });\n\n // Now that the currentFilters object has been updated, apply all filters to the data\n this.allRowData = this.applyAllFilters(this.originalRowData, this.currentFilters);\n\n // After filtering, update the table view with the new filtered data\n this.updateTableView();\n }\n\n applyAllFilters(data, filters) {\n return data.filter(row => {\n for (const filterName in filters) {\n const filterInfo = filters[filterName];\n let selectedValues = (filterInfo.filterValues || []).map(value => {\n if (typeof value === 'string') {\n return value.toLowerCase();\n } else if (typeof value === 'number' || typeof value === 'boolean') {\n return value.toString();\n }\n return '';\n });\n\n // For text filters, check if row values start with any of the selectedValues\n if (filterInfo.type === 'text') {\n let textFilterMatched = false;\n for (let property in row) {\n if (row.hasOwnProperty(property)) {\n let rowValue = row[property] != null ? String(row[property]).toLowerCase() : '';\n if (selectedValues.some(filterValue => rowValue.startsWith(filterValue))) {\n textFilterMatched = true;\n break;\n }\n }\n }\n if (!textFilterMatched) return false;\n }\n // For multi-select filters, this remains unchanged\n else if (filterInfo.type === 'multi-select') {\n let rowValue = row[filterName] != null ? String(row[filterName]).toLowerCase() : '';\n // Check if 'undefined' is a selected value and include rows with empty values in that case\n let includesUndefined = selectedValues.includes('undefined');\n if (!selectedValues.includes(rowValue) && !(includesUndefined && rowValue === '')) {\n return false;\n }\n }\n }\n return true;\n });\n }\n\n async updateTableView() {\n // Reset select-all when loading new data in server-side mode\n if (this.serverSidePagination) {\n this.selectAll = false;\n }\n\n if (this.serverSidePagination && this.serverPageChangeHandler) {\n const { rows, total } = await this.serverPageChangeHandler({\n page: this.currentPage,\n pageSize: this.paginationPageSize,\n });\n\n rows.forEach((row, index) => {\n const rowId = row.sampleNumber || `row_${(this.currentPage - 1) * this.paginationPageSize + index}`;\n row.__rowId = rowId;\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n });\n\n this.rowData = rows;\n this.matchingResultsCount = total;\n\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', rows);\n // Update header checkbox state\n this.updateHeaderCheckboxState();\n }\n\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.setAttribute('total', total.toString());\n }\n } else {\n const startIndex = (this.currentPage - 1) * this.paginationPageSize;\n const endIndex = startIndex + this.paginationPageSize;\n const visibleRowData = this.allRowData.slice(startIndex, endIndex);\n\n if (this.enableSelection) {\n visibleRowData.forEach(row => {\n if (!row.__checkbox) {\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(row.__rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n } else {\n row.__checkbox.checked = this.selectedRows?.has(row.__rowId) || false;\n }\n });\n }\n\n this.rowData = visibleRowData;\n this.matchingResultsCount = this.allRowData.length;\n\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', this.rowData);\n }\n }\n }\n\n clearAllFilters() {\n this.currentFilters = {};\n this.allRowData = [...this.originalRowData];\n }\n\n @Method()\n async onBtShowLoading() {\n this.gridApi.showLoadingOverlay();\n }\n\n setPaginationItemsPerPage() {\n const newItemsPerPage = this.paginationItemsPerPage;\n if (newItemsPerPage) {\n this.internalItemsPerPage = this.paginationItemsPerPage;\n const itemsPerPageArray = JSON.parse(this.internalItemsPerPage);\n\n const selectedOption = itemsPerPageArray.find(option => option.selected);\n if (selectedOption) {\n this.paginationPageSize = Number(selectedOption.value);\n } else if (itemsPerPageArray.length > 0) {\n this.paginationPageSize = Number(itemsPerPageArray[0].value);\n }\n }\n }\n\n componentWillLoad() {\n this.setPaginationItemsPerPage();\n\n this.uniqueKey = `unique-${Math.floor(Math.random() * 1000000)}`;\n this.rowData = this.getRowData();\n this.colData = this.getColData();\n this.updateFilterOptions();\n\n this.gridOptions = {\n suppressCellFocus: true,\n rowHeight: this.rowHeight === 'default' ? 40 : 32,\n headerHeight: 40,\n components: {\n checkboxCellRenderer: CheckboxCellRenderer,\n checkboxHeaderRenderer: CheckboxHeaderRenderer,\n customLoadingOverlay: CustomLoadingOverlay,\n customNoRowsOverlay: CustomNoRowsOverlay,\n },\n defaultColDef: {\n resizable: true,\n autoHeight: true,\n },\n suppressDragLeaveHidesColumns: true,\n enableCellTextSelection: true,\n onFirstDataRendered: this.onFirstDataRendered.bind(this),\n columnDefs: this.colData,\n rowData: this.rowData,\n loadingOverlayComponent: CustomLoadingOverlay,\n noRowsOverlayComponent: CustomNoRowsOverlay,\n noRowsOverlayComponentParams: {\n noRowsMessageFunc: () => 'No rows found', //at: ' + new Date().toLocaleTimeString(),\n },\n icons: {\n sortAscending: '<ifx-icon icon=\"arrow-triangle-up-16\"></ifx-icon>',\n sortDescending: '<ifx-icon icon=\"arrow-triangle-down-16\"></ifx-icon>',\n sortUnSort: '<a class=\"unsort-icon-custom-color\"><ifx-icon icon=\"arrow-triangle-vertikal-16\"></ifx-icon></a>',\n },\n rowDragManaged: this.colData.some(col => col.dndSource === true) ? true : false,\n animateRows: this.colData.some(col => col.dndSource === true) ? true : false,\n navigateToNextCell: params => {\n return this.focusCellIfContainingButton(params.api, params.nextCellPosition);\n },\n tabToNextCell: params => {\n // Returning null is deprecated so we return false if the result is null (browser handles tab behavior).\n return this.focusCellIfContainingButton(params.api, params.nextCellPosition) ?? false;\n },\n };\n }\n\n focusCellIfContainingButton<T>(api: GridApi<T>, cellPosition: CellPosition): CellPosition | null {\n if (!cellPosition) {\n return null;\n }\n\n if (cellPosition.column.getColDef().field === 'button') {\n const rowNode = api.getDisplayedRowAtIndex(cellPosition.rowIndex);\n\n if (!rowNode) {\n // Row not yet rendered due to virtualization.\n return null;\n }\n\n const cellRenderers = api.getCellRendererInstances({\n rowNodes: [rowNode],\n columns: [cellPosition.column],\n });\n\n if (cellRenderers.length > 0) {\n const renderedContent = (cellRenderers[0] as ButtonCellRenderer)?.getGui();\n\n if (renderedContent) {\n const button = renderedContent.querySelector('ifx-button');\n\n if (button) {\n setTimeout(() => {\n // Just calling button.focus() will not work because the focus of <ifx-button> will not be\n // forwared to its child <a>-element (containing the tabindex attribute) due to shadow root.\n // We must therefore grab the <a>-element manually first and then call focus() on it.\n const focusableChild = button.shadowRoot?.querySelector<HTMLElement>('a[tabindex]');\n focusableChild?.focus();\n }, 0);\n }\n }\n }\n }\n\n return cellPosition;\n }\n\n async componentDidLoad() {\n if (this.container) {\n if (!isNestedInIfxComponent(this.host)) {\n const framework = detectFramework();\n trackComponent('ifx-table', await framework);\n }\n this.gridApi = createGrid(this.container, this.gridOptions);\n if (this.gridApi) {\n this.gridApi.sizeColumnsToFit({\n defaultMinWidth: 100,\n });\n this.gridApi.setGridOption('columnDefs', this.colData);\n this.gridApi.setGridOption('rowData', this.rowData);\n\n if (this.pagination) {\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.addEventListener('ifxPageChange', this.handlePageChange.bind(this));\n }\n }\n const sidebarFilterElements = this.host.querySelectorAll('ifx-filter-type-group');\n // Add an event listener to each SetFilter component\n sidebarFilterElements.forEach(sidebarFilterElement => {\n sidebarFilterElement.addEventListener('ifxSidebarFilterChange', this.handleSidebarFilterChange.bind(this));\n });\n const topbarFilterElements = this.host.querySelectorAll('ifx-filter-bar');\n // Add an event listener to each SetFilter component\n topbarFilterElements.forEach(topbarFilterElement => {\n topbarFilterElement.addEventListener('ifxTopbarFilterChange', this.handleTopbarFilterChange.bind(this));\n });\n }\n }\n this.updateTableView();\n }\n\n componentWillUnmount() {\n if (this.pagination) {\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.removeEventListener('ifxPageChange', this.handlePageChange.bind(this));\n }\n }\n const sidebarFilters = this.host.shadowRoot.querySelectorAll('ifx-filter-type-group');\n // Remove the event listener from each SetFilter component\n sidebarFilters.forEach(sidebarFilter => {\n sidebarFilter.removeEventListener('ifxSidebarFilterChange', this.handleSidebarFilterChange.bind(this));\n });\n const topbarFilters = this.host.shadowRoot.querySelectorAll('ifx-filter-type-group');\n // Remove the event listener from each SetFilter component\n topbarFilters.forEach(topbarFilter => {\n topbarFilter.removeEventListener('ifxTopbarFilterChange', this.handleTopbarFilterChange.bind(this));\n });\n }\n\n async handlePageChange(event) {\n this.currentPage = event.detail.currentPage;\n\n // Reset the select-all checkbox state when changing pages in server-side mode\n if (this.serverSidePagination) {\n this.selectAll = false;\n }\n\n if (this.serverSidePagination && this.serverPageChangeHandler) {\n const { rows, total } = await this.serverPageChangeHandler({\n page: this.currentPage,\n pageSize: this.paginationPageSize,\n });\n\n // Add checkbox properties to rows\n rows.forEach((row, index) => {\n const rowId = row.sampleNumber || `row_${(this.currentPage - 1) * this.paginationPageSize + index}`;\n row.__rowId = rowId;\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n });\n\n this.rowData = rows;\n this.matchingResultsCount = total;\n\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', this.rowData);\n // Update header checkbox state\n this.updateHeaderCheckboxState();\n }\n\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.setAttribute('total', total.toString());\n }\n } else {\n const startIndex = (this.currentPage - 1) * this.paginationPageSize;\n const endIndex = startIndex + this.paginationPageSize;\n const visibleRowData = this.allRowData.slice(startIndex, endIndex);\n\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', visibleRowData);\n }\n }\n }\n\n isJSONParseable(str) {\n try {\n JSON.parse(str);\n return true;\n } catch (e) {\n return false;\n }\n }\n\n handleSelectAll = (checked: boolean) => {\n this.selectAll = checked;\n\n const newSelectedRows = new Set(this.selectedRows);\n const newSelectedRowsData = new Map(this.selectedRowsData);\n\n if (checked) {\n // Add all current page rows\n this.rowData.forEach(row => {\n const rowId = row.__rowId;\n newSelectedRows.add(rowId);\n const { __checkbox, __rowId, ...cleanRow } = row;\n newSelectedRowsData.set(rowId, cleanRow);\n });\n } else {\n // Remove only current page rows\n this.rowData.forEach(row => {\n const rowId = row.__rowId;\n newSelectedRows.delete(rowId);\n newSelectedRowsData.delete(rowId);\n });\n }\n\n this.selectedRows = newSelectedRows;\n this.selectedRowsData = newSelectedRowsData;\n\n this.updateCheckboxStates();\n this.updateHeaderCheckboxState();\n this.emitSelectionChange();\n };\n\n getRowData() {\n let rows: any[] = [];\n if (this.rows === undefined || this.rows === null) {\n return rows;\n }\n if (this.isJSONParseable(this.rows)) {\n rows = [...JSON.parse(this.rows)];\n } else if (Array.isArray(this.rows) || typeof this.rows === 'object') {\n rows = [...this.rows];\n } else {\n console.error('Unexpected value for rows: ', this.rows);\n }\n\n rows.forEach((row, index) => {\n if (!row.__rowId) {\n row.__rowId = `row_${index}_${Date.now()}_${Math.random()}`;\n }\n });\n\n if (this.enableSelection) {\n rows.forEach(row => {\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(row.__rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n });\n }\n this.allRowData = rows;\n this.originalRowData = [...rows];\n this.matchingResultsCount = this.allRowData.length;\n return rows.slice(0, this.paginationPageSize);\n }\n\n handleRowCheckboxClick = (params: any) => {\n const clickedRowData = params.data;\n const rowId = clickedRowData.__rowId;\n const newSelectedRows = new Set(this.selectedRows);\n const newSelectedRowsData = new Map(this.selectedRowsData);\n\n if (newSelectedRows.has(rowId)) {\n newSelectedRows.delete(rowId);\n newSelectedRowsData.delete(rowId);\n } else {\n newSelectedRows.add(rowId);\n // Store the clean row data (without internal props)\n const { __checkbox, __rowId, ...cleanRow } = clickedRowData;\n newSelectedRowsData.set(rowId, cleanRow);\n }\n\n this.selectedRows = newSelectedRows;\n this.selectedRowsData = newSelectedRowsData;\n this.selectAll = newSelectedRows.size === this.rowData.length && this.rowData.length > 0;\n\n this.updateCheckboxStates();\n this.updateHeaderCheckboxState();\n this.emitSelectionChange();\n };\n\n private updateCheckboxStates() {\n const dataSource = this.serverSidePagination ? this.rowData : this.allRowData;\n\n dataSource.forEach(row => {\n if (row.__checkbox) {\n row.__checkbox.checked = this.selectedRows.has(row.__rowId);\n }\n });\n\n if (this.gridApi) {\n this.gridApi.refreshCells({\n columns: ['__checkbox'],\n force: true,\n });\n }\n }\n\n private emitSelectionChange() {\n const selectedRowsArray = Array.from(this.selectedRowsData.values());\n\n this.host.dispatchEvent(\n new CustomEvent('ifxSelectionChange', {\n detail: {\n selectedRows: selectedRowsArray,\n selectedCount: selectedRowsArray.length,\n isSelectAll: this.selectedRows.size === this.rowData.length && this.rowData.length > 0,\n },\n bubbles: true,\n }),\n );\n }\n\n getColData() {\n let cols: any[] = [];\n if (this.cols === undefined || this.cols === null) return cols;\n if (this.isJSONParseable(this.cols)) {\n cols = [...JSON.parse(this.cols)];\n } else if (Array.isArray(this.cols) || typeof this.cols === 'object') {\n cols = [...this.cols];\n } else {\n console.error('Unexpected value for cols: ', this.cols);\n }\n\n if (this.enableSelection) {\n const checkboxColumn = {\n headerName: '',\n field: '__checkbox',\n width: 50,\n pinned: 'left',\n cellRenderer: 'checkboxCellRenderer',\n cellRendererParams: {\n onCheckboxClick: this.handleRowCheckboxClick?.bind(this),\n },\n headerComponent: 'checkboxHeaderRenderer',\n headerComponentParams: {\n onSelectAll: this.handleSelectAll?.bind(this),\n },\n sortable: false,\n filter: false,\n resizable: false,\n valueFormatter: undefined,\n cellDataType: false,\n };\n cols.unshift(checkboxColumn);\n }\n\n cols.forEach(column => {\n const field = column.field?.toLowerCase() || '';\n // --- Button columns ---\n if (field.startsWith('button')) {\n column.cellRenderer = ButtonCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n if (this.buttonRendererOptions?.onButtonClick) {\n column.cellRendererParams = {\n onButtonClick: this.buttonRendererOptions.onButtonClick,\n };\n }\n }\n // --- Checkbox columns ---\n else if (field.startsWith('checkbox')) {\n column.cellRenderer = CheckboxCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n if (this.checkboxRendererOptions?.onCheckboxClick) {\n column.cellRendererParams = {\n onCheckboxClick: this.checkboxRendererOptions.onCheckboxClick,\n };\n }\n }\n // --- Icon Button columns ---\n else if (field.startsWith('iconbutton') || field === 'iconButton') {\n column.cellRenderer = IconButtonCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n if (this.iconButtonRendererOptions?.onIconButtonClick) {\n column.cellRendererParams = {\n onIconButtonClick: this.iconButtonRendererOptions.onIconButtonClick,\n };\n }\n }\n // --- Status columns ---\n else if (field.startsWith('status')) {\n column.cellRenderer = StatusCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n }\n // --- Link columns ---\n else if (field.startsWith('link')) {\n column.cellRenderer = LinkCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n }\n });\n return cols;\n }\n\n onFirstDataRendered(params: FirstDataRenderedEvent) {\n params.api.sizeColumnsToFit();\n }\n\n handleResetButtonClick() {\n const resetEvent = new CustomEvent('ifxResetFiltersEvent', { bubbles: true, composed: true });\n window.dispatchEvent(resetEvent);\n\n this.clearAllFilters();\n this.updateTableView();\n }\n\n disconnectedCallback() {\n if (this.pagination) {\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.removeEventListener('ifxPageChange', this.handlePageChange);\n }\n }\n\n const resetButton = this.host.shadowRoot.querySelector('#reset-filters-button');\n if (resetButton) {\n resetButton.removeEventListener('click', this.handleResetButtonClick.bind(this));\n }\n }\n\n getTableClassNames() {\n return classNames(this.tableHeight === 'auto' && 'table-wrapper ag-root-wrapper-body', 'table-wrapper');\n }\n\n render() {\n let style = {};\n if (this.tableHeight !== 'auto') {\n style = {\n height: this.tableHeight,\n };\n }\n\n const filterClass = this.filterOrientation === 'topbar' ? 'topbar-layout' : this.filterOrientation === 'none' ? '' : 'sidebar-layout';\n\n return (\n <Host>\n <div class=\"table-container\">\n {this.filterOrientation === 'sidebar' && (\n <div class=\"sidebar-btn\">\n <ifx-button\n type=\"button\"\n disabled={false}\n variant=\"secondary\"\n size=\"m\"\n target=\"_blank\"\n theme=\"default\"\n full-width=\"false\"\n onClick={() => this.toggleSidebarFilters()}\n >\n <ifx-icon icon=\"cross-16\"></ifx-icon>\n {this.showSidebarFilters ? 'Hide Filters' : 'Show Filters'}\n </ifx-button>\n </div>\n )}\n\n <div class={filterClass}>\n {this.filterOrientation === 'sidebar' && this.showSidebarFilters && (\n <div class=\"sidebar-container\">\n <div class=\"filters-title-container\">\n <span class=\"filters-title\">Filters</span>\n </div>\n <div class=\"set-filter-wrapper-sidebar\">{(this.filterOrientation !== 'sidebar' || this.showSidebarFilters) && <slot name=\"sidebar-filter\"></slot>}</div>\n </div>\n )}\n\n {this.filterOrientation !== 'none' && this.filterOrientation !== 'sidebar' && (\n <div class=\"set-filter-wrapper-topbar\">{(this.filterOrientation !== 'sidebar' || this.showSidebarFilters) && <slot name=\"topbar-filter\"></slot>}</div>\n )}\n\n <div class=\"table-pagination-wrapper\">\n {this.filterOrientation !== 'none' && this.filterOrientation !== 'topbar' && this.showSidebarFilters && (\n <div class=\"filter-chips\">\n {Object.keys(this.currentFilters).map(name => {\n const filter = this.currentFilters[name];\n const filterValues = filter.filterValues;\n const isMultiSelect = filter.type !== 'text';\n\n return filterValues.length > 0 ? (\n <ifx-chip placeholder={name} size=\"large\" variant={isMultiSelect ? 'multi' : 'single'} readOnly={true} value={filterValues} key={name}>\n {filterValues.map(filterValue => (\n <ifx-chip-item value={filterValue} selected={true} key={filterValue}>\n {filterValue}\n </ifx-chip-item>\n ))}\n </ifx-chip>\n ) : null;\n })}\n </div>\n )}\n\n <div class=\"headline-wrapper\">\n {this.filterOrientation !== 'none' && this.headline && (\n <div class=\"matching-results-container\">\n <span class=\"matching-results-count\">({this.matchingResultsCount})</span>\n <span class=\"matching-results-text\">{this.headline}</span>\n </div>\n )}\n\n <div class=\"inner-buttons-wrapper\">\n <slot name=\"inner-button\" />\n </div>\n </div>\n\n <div id=\"table-wrapper\" class={this.getTableClassNames()}>\n <div id={`ifxTable-${this.uniqueKey}`} class={`ifx-ag-grid ${this.variant === 'zebra' ? 'zebra' : ''}`} style={style} ref={el => (this.container = el)}></div>\n </div>\n <div class=\"pagination-wrapper\">\n {this.pagination ? (\n <ifx-pagination\n total={this.serverSidePagination ? this.matchingResultsCount : this.allRowData.length}\n current-page={this.currentPage}\n items-per-page={this.internalItemsPerPage}\n ></ifx-pagination>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n hasButtonCol(): boolean {\n return this.getColData().some(column => column.field === 'button');\n }\n\n onDragOver(event) {\n var dragSupported = event.dataTransfer.length;\n\n if (dragSupported) {\n event.dataTransfer.dropEffect = 'move';\n }\n\n event.preventDefault();\n }\n\n onDrop(event) {\n var jsonData = event.dataTransfer.getData('application/json');\n\n var eJsonRow = document.createElement('div');\n eJsonRow.classList.add('json-row');\n eJsonRow.innerText = jsonData;\n\n var eJsonDisplay = document.querySelector('#eJsonDisplay');\n\n eJsonDisplay.appendChild(eJsonRow);\n event.preventDefault();\n }\n}\n"],"version":3}
1
+ {"file":"ifx-button.ifx-checkbox.ifx-chip.ifx-chip-item.ifx-icon.ifx-icon-button.ifx-indicator.ifx-pagination.ifx-select.ifx-table.entry.cjs.js","mappings":"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","names":["isNestedInIfxComponent","detectFramework","trackComponent","h","Host","classNames","getIcon","createGrid"],"sources":["src/components/button/button.scss?tag=ifx-button&encapsulation=shadow","src/components/button/button.tsx","src/components/checkbox/checkbox.scss?tag=ifx-checkbox&encapsulation=shadow","src/components/checkbox/checkbox.tsx","src/components/chip/chip.scss?tag=ifx-chip&encapsulation=shadow","src/components/chip/chip.tsx","src/components/chip/chip-item/chip-item.scss?tag=ifx-chip-item&encapsulation=shadow","src/components/chip/chip-item/chip-item.tsx","src/components/icon/infineonIconStencil.scss?tag=ifx-icon","src/components/icon/infineonIconStencil.tsx","src/components/icon-button/icon-button.scss?tag=ifx-icon-button&encapsulation=shadow","src/components/icon-button/icon-button.tsx","src/components/indicator/indicator.scss?tag=ifx-indicator&encapsulation=shadow","src/components/indicator/indicator.tsx","src/components/pagination/pagination.scss?tag=ifx-pagination&encapsulation=shadow","src/components/pagination/pagination.tsx","../../node_modules/choices.js/public/assets/scripts/choices.js","src/components/select/single-select/utils.ts","src/components/select/single-select/select.scss?tag=ifx-select","src/components/select/single-select/select.tsx","src/components/table-advanced-version/buttonCellRenderer.ts","src/components/table-advanced-version/checkboxCellRenderer.ts","src/components/table-advanced-version/checkboxHeaderRenderer.ts","src/components/table-advanced-version/iconButtonCellRenderer.ts","src/components/table-advanced-version/linkCellRenderer.ts","src/components/table-advanced-version/statusCellRenderer.ts","src/components/table-advanced-version/customNoRowsOverlay.ts","src/components/table-advanced-version/customLoadingOverlay.ts","src/components/table-advanced-version/table.scss?tag=ifx-table&encapsulation=shadow","src/components/table-advanced-version/table.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n vertical-align: bottom;\n display: inline-flex;\n width: var(--bw, fit-content);\n}\n\n.btn {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: tokens.$ifxSize500;\n padding: 0px tokens.$ifxSpace200;\n gap: tokens.$ifxSpace100;\n color: tokens.$ifxColorBaseWhite;\n font-weight: tokens.$ifxFontWeightSemibold;\n border-radius: tokens.$ifxBorderRadius12;\n line-height: tokens.$ifxLineHeightM;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n font-style: normal;\n text-decoration: none;\n user-select: none;\n font-size: tokens.$ifxFontSizeM;\n transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;\n width: var(--bw, fit-content);\n}\n\n.btn:not(.disabled) {\n cursor: pointer;\n}\n\n.btn.disabled {\n pointer-events: none;\n}\n\n.btn-default {\n //default variant=primary; default color=default\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n pointer-events: none;\n\n }\n}\n\n.btn-secondary-default {\n background-color: tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorOcean500;\n border: 1px solid tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n.btn-tertiary-default {\n background-color: tokens.$ifxColorBaseTransparent;\n color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n\n.btn-danger {\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorRed500;\n border-color: tokens.$ifxColorRed500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n pointer-events: none;\n\n }\n}\n\n.btn-secondary-danger {\n background-color: tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorRed500;\n border: 1px solid tokens.$ifxColorRed500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n.btn-tertiary-danger {\n //combination tertiary + danger not in design\n background-color: tokens.$ifxColorBaseTransparent;\n color: tokens.$ifxColorRed500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n.btn-inverse {\n color: tokens.$ifxColorOcean500;\n background-color: tokens.$ifxColorBaseWhite;\n\n &:disabled,\n &.disabled {\n opacity: tokens.$ifxOpacity100;\n background-color: tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n }\n}\n\n.btn-secondary-inverse {\n color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorBaseWhite;\n\n &:disabled,\n &.disabled {\n border: 1px solid tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorBaseWhite;\n pointer-events: none;\n\n }\n}\n\n\n.btn-tertiary-inverse {\n color: tokens.$ifxColorBaseWhite;\n\n &:disabled,\n &.disabled {\n color: tokens.$ifxColorBaseWhite;\n opacity: tokens.$ifxOpacity100;\n pointer-events: none;\n\n }\n}\n\n.btn {\n & ifx-icon:empty {\n display: none;\n }\n\n &.btn-xs {\n font-size: tokens.$ifxFontSizeS;\n height: tokens.$ifxSize400;\n line-height: tokens.$ifxLineHeightXs;\n }\n\n &.btn-s {\n font-size: tokens.$ifxFontSizeS;\n height: tokens.$ifxSize450;\n line-height: tokens.$ifxLineHeightS;\n }\n\n // &.btn-m { //default\n // font-size: tokens.$ifxFontSizeM;\n // height: tokens.$ifxSize400;\n // line-height: tokens.$ifxLineHeightM;\n // }\n\n\n &.btn-l {\n font-size: tokens.$ifxFontSizeXl;\n height: tokens.$ifxSize600;\n line-height: tokens.$ifxLineHeightXl;\n }\n\n\n\n &.btn-default:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n }\n }\n\n &.btn-secondary-default:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorOcean600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n }\n }\n\n &.btn-secondary:not(:disabled, .disabled) {\n\n &:hover {\n background-color: tokens.$ifxColorBerry500;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorBerry500;\n }\n }\n\n\n\n &.btn-danger:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorRed600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorRed700;\n }\n }\n\n &.btn-secondary-danger:not(:disabled, .disabled) {\n\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorRed600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorRed700;\n }\n }\n\n\n &.btn-inverse:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorOcean500, 0 0 0 4px tokens.$ifxColorBaseWhite;\n }\n\n &:hover {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorEngineering300;\n }\n }\n\n &.btn-secondary-inverse:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorOcean500, 0 0 0 4px tokens.$ifxColorBaseWhite;\n }\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorOcean500;\n background-color: tokens.$ifxColorEngineering300;\n }\n }\n\n\n\n &.btn-tertiary-default:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean600;\n }\n\n &:hover {\n color: tokens.$ifxColorOcean600;\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorOcean700;\n }\n\n\n }\n\n\n\n\n\n &.btn-tertiary-danger:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorRed600;\n }\n\n &:hover {\n color: tokens.$ifxColorRed600;\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorRed700;\n }\n\n }\n\n\n &.btn-tertiary-inverse:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorOcean500, 0 0 0 4px tokens.$ifxColorBaseWhite;\n }\n\n &:hover {\n color: tokens.$ifxColorEngineering200;\n\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorEngineering300;\n }\n }\n}","import { Component, Prop, h, Host, Method, Element, Listen, State, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport classNames from 'classnames';\n \n@Component({\n tag: 'ifx-button',\n styleUrl: 'button.scss',\n shadow: true,\n})\nexport class Button {\n @Prop() variant: 'primary' | 'secondary' | 'tertiary' = 'primary';\n @Prop() theme: 'default' | 'danger' | 'inverse' = 'default';\n @Prop() size: string = 'm';\n @Prop() disabled: boolean = false;\n @State() internalHref: string;\n @Prop() href: string;\n @Prop() target: string = '_self';\n @Prop() type: \"button\" | \"submit\" | \"reset\" = \"button\";\n @Prop() fullWidth: boolean = false;\n @Prop() ariaLabel: string | null;\n @Element() el;\n\n private focusableElement: HTMLElement;\n private nativeButton: HTMLButtonElement | HTMLInputElement;\n\n @Watch('href')\n setInternalHref(newValue: string) {\n this.internalHref = newValue;\n }\n\n @Method()\n async setFocus() {\n this.focusableElement.focus();\n }\n\n insertNativeButton() {\n this.nativeButton = document.createElement('button');\n this.nativeButton.type = this.type;\n this.nativeButton.style.display = 'none';\n this.el.closest('form').appendChild(this.nativeButton);\n }\n\n handleFormAndInternalHref() {\n if (this.el.closest('form')) {\n if (this.el.href) {\n this.el.internalHref = undefined;\n }\n this.insertNativeButton()\n } else {\n this.internalHref = this.href;\n }\n }\n\n handleButtonWidth() {\n if (this.fullWidth) {\n this.el.style.setProperty('--bw', '100%');\n } else {\n this.el.style.setProperty('--bw', 'fit-content');\n }\n }\n\n componentWillLoad() {\n this.handleFormAndInternalHref()\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-button', await framework)\n }\n }\n\n componentWillRender() {\n this.handleButtonWidth()\n }\n\n\n\n handleClick = (ev: Event) => {\n if (this.el.shadowRoot) {\n const parentForm = this.el.closest('form');\n if (parentForm) {\n ev.preventDefault();\n\n if (this.type === 'reset') {\n // If the button type is 'reset', manually reset all custom form fields\n this.resetClickHandler(); //this will reset all ifx-text-fields within a form\n } else {\n const fakeButton = document.createElement('button');\n if (this.type) {\n fakeButton.type = this.type;\n }\n fakeButton.style.display = 'none';\n parentForm.appendChild(fakeButton);\n fakeButton.click();\n fakeButton.remove();\n }\n }\n }\n }\n\n resetClickHandler() {\n const formElement = this.el.closest('form');\n const customElements = formElement.querySelectorAll('ifx-text-field, ifx-textarea');\n customElements.forEach(element => {\n element.reset();\n });\n }\n\n @Listen('keydown')\n handleKeyDown(ev: KeyboardEvent) {\n if ( ev.key === \" \" || ev.key === 'Enter' && !this.disabled) {\n this.focusableElement.click();\n }\n }\n\n @Listen('click', { capture: true })\n handleHostClick(event: Event) {\n if (this.disabled === true) {\n event.stopImmediatePropagation();\n }\n }\n\n handleFocus(event: FocusEvent) {\n if (this.disabled) {\n event.preventDefault();\n this.focusableElement.blur();\n }\n }\n\n render() {\n return (\n <Host>\n <a\n role={this.href ? 'link' : 'button'}\n tabIndex={this.disabled ? -1 : 0}\n ref={(el) => (this.focusableElement = el)}\n class={this.getClassNames()}\n href={!this.disabled ? this.internalHref : undefined}\n target={this.target}\n onClick={this.handleClick}\n rel={this.target === '_blank' ? 'noopener noreferrer' : undefined}\n onFocus={(event) => this.handleFocus(event)}\n aria-disabled={this.disabled ? 'true' : null}\n aria-describedby={this.theme === 'danger' ? 'Dangerous action' : undefined}\n aria-label={this.ariaLabel || undefined}\n >\n <slot></slot>\n </a>\n </Host>\n );\n }\n\n\n getVariantClass() {\n return `${this.variant}` === \"secondary\"\n ? `secondary-${this.theme}`\n : `${this.variant}` === 'tertiary'\n ? `tertiary-${this.theme}`\n : `${this.theme}`;\n }\n\n getSizeClass() {\n if (`${this.size}` === \"xs\") {\n return \"xs\"\n }\n else if (`${this.size}` === \"s\") {\n return \"s\"\n }\n else if (`${this.size}` === \"l\") {\n return \"l\"\n }\n else return \"\";\n }\n\n getClassNames() {\n return classNames(\n 'btn',\n this.size && `btn-${this.getSizeClass()}`,\n `btn-${this.getVariantClass()}`,\n this.disabled ? 'disabled' : ''\n );\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n display: inline-flex;\n vertical-align: top;\n}\n\n.checkbox__container {\n box-sizing: border-box;\n display: inline-flex;\n flex-direction: row;\n align-items: top;\n padding: 0px;\n gap: tokens.$ifxSpace100;\n font-family: tokens.$ifxFontFamilyBody;\n vertical-align: bottom;\n\n & .checkbox__wrapper {\n box-sizing: border-box;\n display: flex;\n position: relative; //needs to be added for the indeterminate state of the checkbox\n justify-content: center;\n align-items: center;\n width: tokens.$ifxSize250;\n height: tokens.$ifxSize250;\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering500;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n flex-grow: 0;\n align-self: flex-start;\n\n &.checkbox-m {\n height: tokens.$ifxSize300;\n width: tokens.$ifxSize300;\n }\n\n &.error {\n border-color: tokens.$ifxColorRed500;\n }\n\n &:focus-visible {\n border: 1px solid tokens.$ifxColorEngineering500;\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n\n &:hover {\n background-color: tokens.$ifxColorEngineering200;\n border: 1px solid tokens.$ifxColorEngineering500;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n flex-grow: 0;\n }\n\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;;\n border-color: tokens.$ifxColorEngineering300;;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n flex-grow: 0;\n }\n\n &.checked:not(.indeterminate) {\n background-color: tokens.$ifxColorOcean500;\n border-radius: tokens.$ifxBorderRadius12;\n border-color: tokens.$ifxColorBaseTransparent;\n flex: none;\n order: 0;\n flex-grow: 0;\n color: tokens.$ifxColorBaseWhite;\n\n &.error {\n background-color: tokens.$ifxColorRed500;\n }\n\n &:focus-visible {\n border: 1px solid transparent;\n outline: 2px solid #0A8276;\n outline-offset: 2px;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean500;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n flex-grow: 0;\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering300;;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n flex-grow: 0;\n }\n }\n\n &.indeterminate {\n &:before {\n content: \"\";\n display: block;\n width: 70%; // Adjust as needed for the width of the minus sign\n height: 2px; // Adjust for thickness of the minus sign\n background-color: tokens.$ifxColorOcean600; // Color of the minus sign\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n }\n\n }\n\n & .label {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n color: tokens.$ifxColorBaseBlack;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-all;\n max-width: 100%;\n\n &.label-m {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n }\n }\n\n & .checkbox__wrapper,\n & .label {\n &:hover {\n cursor: pointer;\n }\n }\n}","import { Component, h, Prop, Element, State, Event, EventEmitter, Watch, Method, AttachInternals } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-checkbox',\n styleUrl: 'checkbox.scss',\n shadow: true,\n // formAssociated: true\n})\n\nexport class Checkbox {\n private inputElement: HTMLInputElement;\n\n @Element() el;\n @Prop() disabled: boolean = false;\n @Prop() checked: boolean = false;\n @Prop() error: boolean = false;\n @Prop() size: string = 'm';\n @Prop() indeterminate: boolean = false;\n @Prop() value: string;\n @State() internalChecked: boolean;\n @State() internalIndeterminate: boolean;\n\n @AttachInternals() internals: ElementInternals;\n\n @Event({ bubbles: true, composed: true }) ifxChange: EventEmitter;\n @Event({ bubbles: true, composed: true }) ifxError: EventEmitter;\n\n handleCheckbox() {\n if (!this.disabled) {\n if (!this.inputElement.indeterminate) {\n this.internalChecked = !this.internalChecked;\n } \n if (this.internalChecked && !this.internalIndeterminate) {\n if (this.value !== undefined) {\n //this.internals.setFormValue(this.value);\n } else {\n //this.internals.setFormValue(\"on\")\n }\n } else {\n //this.internals.setFormValue(null)\n }\n this.ifxChange.emit(this.internalChecked);\n }\n }\n\n @Method()\n async isChecked(): Promise<boolean> {\n return this.internalChecked;\n }\n\n @Method()\n async toggleCheckedState(newVal: boolean) {\n this.internalChecked = newVal;\n }\n\n @Watch('checked')\n valueChanged(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n this.internalChecked = newValue;\n this.inputElement.checked = this.internalChecked; // update the checkbox's checked property\n }\n }\n\n @Watch('error')\n errorChanged(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n this.ifxError.emit(newValue);\n }\n }\n\n @Watch('indeterminate')\n indeterminateChanged(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n this.internalIndeterminate = newValue;\n this.inputElement.indeterminate = this.internalIndeterminate; // update the checkbox's indeterminate property\n }\n }\n\n handleKeydown(event) {\n // Keycode 32 corresponds to the Space key, 13 corresponds to the Enter key\n if (event.keyCode === 32 || event.keyCode === 13) {\n this.handleCheckbox();\n event.preventDefault(); // prevent the default action when space or enter is pressed\n }\n }\n\n componentWillLoad() {\n this.internalChecked = this.checked;\n this.internalIndeterminate = this.indeterminate;\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-checkbox', await framework)\n }\n }\n\n componentDidRender() {\n this.inputElement.indeterminate = this.internalIndeterminate;\n }\n\n /**\n * Callback for form association.\n * Called whenever the form is reset.\n */\n // formResetCallback() {\n // this.internals.setFormValue(null);\n // }\n\n getCheckedClassName() {\n if (this.error) {\n if (this.internalChecked) {\n return \"checked error\"\n } else {\n return \"error\"\n }\n } else if (this.internalChecked) {\n return \"checked\";\n } else return \"\"\n }\n\n render() {\n const slot = this.el.innerHTML;\n let hasSlot = false;\n if (slot) {\n hasSlot = true;\n }\n return (\n <div class=\"checkbox__container\">\n <input\n type=\"checkbox\"\n hidden\n ref={(el) => (this.inputElement = el)}\n checked={this.internalChecked}\n onChange={this.handleCheckbox.bind(this)} // Listen for changes here\n id='checkbox'\n value={`${this.value}`}\n disabled={this.disabled ? true : undefined}\n />\n <div\n tabindex=\"0\"\n onClick={this.handleCheckbox.bind(this)}\n onKeyDown={this.handleKeydown.bind(this)}\n role=\"checkbox\"\n aria-checked={this.indeterminate ? 'mixed' : this.internalChecked.toString()}\n aria-disabled={this.disabled}\n aria-labelledby=\"label\"\n class={`checkbox__wrapper \n ${this.getCheckedClassName()}\n ${this.size === \"m\" ? \"checkbox-m\" : \"\"}\n ${this.indeterminate ? 'indeterminate' : \"\"}\n ${this.disabled ? 'disabled' : \"\"}`}\n >\n {this.internalChecked && !this.internalIndeterminate && <ifx-icon icon=\"check-16\" aria-hidden=\"true\"></ifx-icon>}\n </div>\n {hasSlot &&\n <div id=\"label\" class={`label ${this.size === \"m\" ? \"label-m\" : \"\"} ${this.disabled ? 'disabled' : \"\"} `} onClick={this.handleCheckbox.bind(this)}>\n <slot />\n </div>}\n </div>\n );\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-block;\n}\n\n.chip {\n position: relative;\n}\n\n.chip__wrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: tokens.$ifxSpace100;\n box-sizing: border-box;\n border-radius: tokens.$ifxBorderRadiusRound;\n background: tokens.$ifxColorBaseWhite;\n cursor: pointer; \n transition: border 100ms ease;\n font: tokens.$ifxBodyBody04;\n\n & .icon__wrapper { \n display: flex;\n }\n\n &.outlined, &.filled-dark, &.filled-light { \n outline: 2px solid transparent;\n &:focus-visible {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n \n &.chip__wrapper--opened {\n .wrapper__open-button {\n transform: rotate(-180deg);\n }\n }\n\n &.chip__wrapper--selected {\n .wrapper__label {\n .label__selected-options {\n font: tokens.$ifxBodyBody04;\n }\n }\n }\n }\n\n &.filled-dark, &.filled-light { \n &.chip__wrapper--selected:not(.read-only) {\n background-color: tokens.$ifxColorOcean500;\n color: white;\n &:hover { \n background-color: tokens.$ifxColorOcean600;\n }\n\n &:hover.disabled { \n background-color: tokens.$ifxColorOcean500;\n }\n }\n }\n \n &.outlined { \n border: 1px solid tokens.$ifxColorEngineering400;\n &:hover:not(.read-only) {\n border-color: tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering100;\n }\n\n &:active:not(.read-only) { \n border-color: tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering300;\n }\n\n &.chip__wrapper--opened {\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n &.chip__wrapper--selected {\n outline: 3px solid tokens.$ifxColorOcean500;\n border: 1px solid transparent;\n background-color: white;\n\n &:focus-visible {\n outline-offset: 0px;\n }\n &:hover:not(.read-only) { \n outline-color: tokens.$ifxColorOcean600;\n }\n\n &.read-only { \n outline: none;\n border: 1px solid black;\n }\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n border: 1px solid tokens.$ifxColorEngineering300;\n &:hover { \n outline: none;\n border-color: tokens.$ifxColorEngineering300;\n background-color: white;\n }\n }\n\n &.read-only { \n border: 1px solid black;\n &:focus-visible { \n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n }\n }\n\n &.filled-dark { \n background-color: tokens.$ifxColorEngineering600;\n color: white;\n\n &:hover:not(.chip__wrapper--selected, .disabled, .read-only) { \n background-color: tokens.$ifxColorEngineering500;\n }\n\n &:active:not(.chip__wrapper--selected, .disabled, .read-only) { \n background-color: tokens.$ifxColorEngineering400;\n color: black;\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n &:hover:not(.chip__wrapper--selected) { \n background-color: tokens.$ifxColorEngineering600;\n }\n }\n\n &.chip__wrapper--selected { \n &.read-only { \n border: 1px solid tokens.$ifxColorEngineering400;\n }\n }\n\n &.read-only { \n border: 1px solid tokens.$ifxColorEngineering400;\n }\n }\n\n &.filled-light { \n background-color: tokens.$ifxColorEngineering200;\n\n &:hover:not(.read-only) { \n background-color: tokens.$ifxColorEngineering300;\n }\n\n &:active:not(.read-only) { \n background-color: tokens.$ifxColorEngineering400;\n }\n\n &.disabled { \n outline: none;\n color: tokens.$ifxColorEngineering300;\n &:hover:not(.chip__wrapper--selected) { \n background-color: tokens.$ifxColorEngineering200;\n }\n }\n\n &.chip__wrapper--selected { \n &.read-only { \n border: 1px solid black;\n }\n }\n\n &.read-only { \n border: 1px solid black;\n }\n }\n \n &.chip__wrapper--small {\n padding: tokens.$ifxSpace50 tokens.$ifxSpace100;\n height: tokens.$ifxSize300;\n }\n\n &.chip__wrapper--medium {\n padding: tokens.$ifxSpace50 tokens.$ifxSpace150;\n height: tokens.$ifxSize350;\n }\n \n &.chip__wrapper--large {\n padding: tokens.$ifxSpace100 tokens.$ifxSpace150;\n height: tokens.$ifxSize450;\n }\n}\n\n.wrapper__label {\n display: inline-flex;\n align-items: center;\n gap: tokens.$ifxSpace50;\n\n .label__selected-options {\n font: tokens.$ifxBodyBodySemibold04;\n }\n}\n\n.wrapper__open-button {\n display:flex;\n align-items: center;\n}\n\n.wrapper__unselect-button {\n display:flex;\n align-items: center;\n}\n\n.chip__dropdown {\n position: absolute;\n z-index: 1;\n box-shadow: 0px 6px 9px 0px #1D1D1D1A;\n border: 1px solid tokens.$ifxColorEngineering200;\n border-radius: tokens.$ifxBorderRadius12;\n padding: tokens.$ifxSpace100 0;\n min-width: 222px;\n background-color: tokens.$ifxColorBaseWhite;\n}\n","import { h, Component, Element, Event, EventEmitter, Listen, Prop, State, Watch } from '@stencil/core';\nimport { ChipItemSelectEvent } from './interfaces';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-chip',\n styleUrl: 'chip.scss',\n shadow: true\n})\nexport class Chip {\n @Element() chip: HTMLIfxChipElement;\n\n @Event() ifxChange: EventEmitter<{ previousSelection: Array<ChipItemSelectEvent>, currentSelection: Array<ChipItemSelectEvent>, name: string }>;\n @Prop() placeholder: string = '';\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n @Prop({ mutable: true }) value: Array<string> | string = undefined;\n @Prop() variant: 'single' | 'multi' = 'single';\n @Prop() theme: 'outlined' | 'filled-light' | 'filled-dark' = 'outlined';\n @Prop() readOnly: boolean = false;\n @Prop() ariaLabel: string | null;\n @Prop() disabled: boolean = false;\n @Prop() icon: string = \"\";\n\n @State() opened: boolean = false;\n @State() selectedOptions: Array<ChipItemSelectEvent> = [];\n\n @Watch('value')\n handleValueChange(newValue: Array<string> | string) {\n this.syncSelectedOptionsWithProp(newValue);\n }\n\n @Watch('readOnly')\n handleReadOnlyChange(newValue: boolean) {\n if (newValue) {\n this.opened = false;\n }\n }\n\n @Listen('mousedown', { target: 'document' })\n closeDropdownOnOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n const chipWrapper: HTMLElement = this.chip.shadowRoot.querySelector('.chip__wrapper');\n const chipDropdown: HTMLElement = this.chip.shadowRoot.querySelector('.chip__dropdown');\n if (!path.includes(chipDropdown) && !path.includes(chipWrapper) && this.opened) {\n this.toggleDropdownMenu();\n }\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n // override behavior of all keys except Tab. Users should be able to tab out of the component.\n if (event.code !== 'Tab') {\n event.preventDefault(); \n }\n\n if ((event.target as HTMLElement).tagName === 'IFX-CHIP') {\n this.handleWrapperKeyDown(event);\n } else if ((event.target as HTMLElement).tagName === 'IFX-CHIP-ITEM') {\n this.handleDropdownKeyDown(event);\n }\n }\n\n @Listen('ifxChipItemSelect')\n updateSelectedOptions(event: CustomEvent<ChipItemSelectEvent>) {\n const eventDetail: ChipItemSelectEvent = event.detail;\n const previousSelection: Array<ChipItemSelectEvent> = [...this.selectedOptions];\n\n if (this.variant !== 'multi') {\n if (eventDetail.selected) {\n this.opened = false;\n const chipItems: NodeList = this.getChipItems();\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n if (chipItem.selected && chipItem !== event.target) {\n chipItem.chipState = {\n ...chipItem.chipState,\n emitIfxChipItemSelect: false,\n };\n chipItem.selected = false;\n }\n });\n this.selectedOptions = [eventDetail];\n } else {\n this.selectedOptions = [];\n }\n this.value = this.selectedOptions[0] ? this.selectedOptions[0].value : undefined;\n } else {\n if (eventDetail.selected) {\n // Prevent duplicate entries\n if (!this.selectedOptions.find(option => option.value === eventDetail.value)) {\n this.selectedOptions = [...this.selectedOptions, eventDetail];\n }\n } else {\n this.selectedOptions = this.selectedOptions.filter((option) => option.value !== eventDetail.value);\n }\n this.value = this.selectedOptions.map((option) => option.value);\n }\n\n if (eventDetail.emitIfxChange) {\n this.ifxChange.emit({\n previousSelection: previousSelection,\n currentSelection: this.selectedOptions,\n name: this.placeholder\n });\n }\n }\n\n getChipItems(): NodeList {\n return this.chip.querySelectorAll('ifx-chip-item');\n }\n\n getSelectedOptions(): string {\n if (this.variant !== 'multi') {\n return this.selectedOptions.map(option => option.label).join('');\n }\n return this.selectedOptions.slice(0, 2).map(option => option.label).join(', ');\n }\n\n toggleDropdownMenu() {\n if (this.readOnly) return;\n this.opened = !this.opened;\n }\n\n /**\n * Focuses the chip item at the specified index.\n * @param index the index of the chip item to focus. -1 will focus the last chip item.\n */\n focusChipItemAt(index: number = 0) {\n this.opened = true;\n const chipItems: NodeList = this.getChipItems();\n let item: HTMLIfxChipItemElement;\n \n if (index === -1) {\n item = chipItems.item(chipItems.length - 1) as HTMLIfxChipItemElement;\n } else if (index >= 0 && index < chipItems.length) {\n item = chipItems.item(index) as HTMLIfxChipItemElement;\n } else {\n console.error(`Invalid index: ${index}`);\n return;\n }\n\n const shadowItem = item.shadowRoot.querySelector('.chip-item') as HTMLDivElement;\n if (shadowItem) {\n // Delay needed for the shadow item to be rendered.\n setTimeout(() => {\n shadowItem.focus();\n }, 1);\n }\n }\n\n focusChip() {\n const chipWrapper: HTMLElement = this.chip.shadowRoot.querySelector('.chip__wrapper');\n chipWrapper.focus();\n }\n\n handleUnselectButtonClick(event: MouseEvent) {\n event.stopPropagation();\n this.opened = false;\n\n let itemGotUnselected = false;\n const chipItems: NodeList = this.getChipItems();\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n if (chipItem.selected) {\n itemGotUnselected = true;\n chipItem.chipState = {\n ...chipItem.chipState,\n emitIfxChipItemSelect: false,\n }\n chipItem.selected = false;\n }\n });\n\n /* Emit event only if at least one item was unselected. */\n if (itemGotUnselected) {\n const previousSelection: Array<ChipItemSelectEvent> = this.selectedOptions;\n this.selectedOptions = [];\n this.value = [];\n this.ifxChange.emit({\n previousSelection: previousSelection,\n currentSelection: [],\n name: this.placeholder\n });\n }\n }\n\n handleWrapperClick() {\n if (!this.readOnly) {\n this.toggleDropdownMenu();\n }\n }\n\n handleWrapperKeyDown(event: KeyboardEvent) {\n // Keymap oriented at https://www.w3.org/WAI/ARIA/apg/patterns/combobox/#keyboard_interaction\n if (this.readOnly) return;\n\n if (!this.opened) {\n switch (event.code) {\n case 'Space':\n case 'Enter':\n case 'ArrowDown':\n this.focusChipItemAt(0);\n break;\n case 'ArrowUp':\n this.focusChipItemAt(-1);\n break;\n }\n } else {\n switch (event.code) {\n case 'Escape':\n this.opened = false;\n this.focusChip();\n break;\n }\n }\n }\n\n handleDropdownKeyDown(event: KeyboardEvent) {\n let chipitems = this.getChipItems();\n\n let targetIndex = Array.from(chipitems).indexOf(event.target as HTMLIfxChipItemElement);\n if (targetIndex === -1) {\n console.error('Target not found in chip items');\n return;\n }\n\n switch (event.code) {\n case 'ArrowDown':\n if (targetIndex === chipitems.length - 1) break;\n this.focusChipItemAt(targetIndex + 1);\n break;\n case 'ArrowUp':\n if (targetIndex === 0) break;\n this.focusChipItemAt( targetIndex - 1);\n break;\n case 'Escape':\n this.opened = false;\n this.focusChip();\n break;\n case 'Space':\n // selection is handled by the chip-item component\n if (this.variant === 'single') {\n // only close dropdown if single select\n this.opened = false;\n this.focusChip();\n }\n break;\n case 'Enter':\n // selection is handled by the chip-item component\n this.opened = false;\n this.focusChip();\n break;\n }\n }\n\n syncChipState() {\n const chipItems: NodeList = this.getChipItems();\n let key: number = 0;\n chipItems.forEach((chipItem: HTMLIfxChipItemElement) => {\n chipItem.chipState = {\n emitIfxChipItemSelect: true,\n size: this.size ? this.size : 'medium',\n variant: (this.variant === 'multi' ? 'multi' : 'single'),\n key: key++\n };\n });\n }\n\n syncSelectedOptionsWithProp(newValue: Array<string> | string) {\n // Clear old selected options\n this.selectedOptions = [];\n\n const generateKey = (() => {\n let count = 0;\n return () => count++;\n })();\n\n if (Array.isArray(newValue)) {\n this.selectedOptions = newValue.map(value => ({\n value,\n label: value,\n selected: true,\n key: generateKey(),\n emitIfxChange: true\n }));\n } else if (typeof newValue === 'string') {\n this.selectedOptions = [{\n value: newValue,\n label: newValue,\n selected: true,\n key: generateKey(),\n emitIfxChange: true\n }];\n }\n\n this.syncChipState();\n }\n\n componentWillLoad() {\n this.syncSelectedOptionsWithProp(this.value);\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.chip)) { \n const framework = detectFramework();\n trackComponent('ifx-chip', await framework)\n }\n }\n\n render() {\n return (\n <div class='chip'>\n <div class={`chip__wrapper chip__wrapper--${this.size ? this.size : 'medium'}\n chip__wrapper--${this.variant === 'multi' ? 'multi' : 'single'}\n ${this.opened && !this.readOnly ? 'chip__wrapper--opened' : ''}\n ${this.selectedOptions.length ? 'chip__wrapper--selected' : ''}\n ${this.theme ? this.theme : 'outlined'}\n ${this.disabled ? 'disabled' : \"\"}\n ${this.readOnly ? 'read-only' : \"\"}`}\n tabIndex={0}\n onClick={!this.readOnly && !this.disabled ? () => { this.handleWrapperClick() } : undefined}\n role='combobox'\n aria-label={this.ariaLabel}\n aria-value={this.getSelectedOptions()}\n aria-haspopup={!this.readOnly ? 'listbox' : undefined}\n aria-expanded={!this.readOnly ? this.opened.toString() : undefined}\n aria-controls={!this.readOnly ? 'dropdown' : undefined}\n aria-readonly={this.readOnly ? 'true' : undefined}\n aria-multiselectable={this.variant === 'multi' ? 'true' : undefined}\n >\n \n {this.icon && \n <div class=\"icon__wrapper\">\n <ifx-icon icon={this.icon}></ifx-icon>\n </div>}\n\n <div class='wrapper__label'>\n {\n (this.selectedOptions.length === 0) && `${this.placeholder}`\n }\n\n {\n (this.selectedOptions.length !== 0 && (this.variant === 'multi') && this.placeholder !== '') &&\n `${this.placeholder}:`\n }\n\n {\n (this.selectedOptions.length !== 0) &&\n <div class='label__selected-options'>\n {this.getSelectedOptions()}\n </div>\n }\n\n {\n (this.selectedOptions.length > 2 && this.variant === 'multi') &&\n <ifx-indicator variant='number' inverted={this.theme === 'outlined' ? false : true} number={this.selectedOptions.length - 2}></ifx-indicator>\n }\n </div>\n\n {\n !this.readOnly && (this.variant !== 'multi' || (this.variant === 'multi' && this.selectedOptions.length === 0)) &&\n <div class='wrapper__open-button'>\n <ifx-icon key={1} icon={`chevron-down-16`} />\n </div>\n }\n\n {\n ((this.selectedOptions.length >= 1) && this.variant === 'multi') &&\n <div class='wrapper__unselect-button' onClick={!this.readOnly && !this.disabled ? (e) => { this.handleUnselectButtonClick(e) } : undefined}>\n <ifx-icon key={2} icon={`cross16`} />\n </div>\n }\n\n </div>\n\n {\n this.opened && !this.readOnly &&\n <div id='dropdown' role='listbox' class='chip__dropdown'>\n <slot />\n </div>\n }\n </div>\n );\n }\n}\n","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.chip-item {\n display: flex;\n align-items: center;\n gap: tokens.$ifxSpace100;\n \n padding: tokens.$ifxSpace100 tokens.$ifxSpace200;\n \n user-select: none;\n \n transition: all 100ms ease;\n transition-property: background, color;\n \n &:hover {\n cursor: pointer;\n \n background-color: tokens.$ifxColorEngineering200;\n }\n \n &:active {\n background-color: tokens.$ifxColorEngineering300;\n }\n\n &:focus {\n outline: 2px solid tokens.$ifxColorOcean500;\n }\n \n &.chip-item--large {\n font: tokens.$ifxBodyBody03;\n }\n \n &.chip-item--small {\n font: tokens.$ifxBodyBody04;\n }\n\n &.chip-item--selected {\n color: tokens.$ifxColorOcean500;\n\n .chip-item__selected-indicator {\n display: block;\n }\n }\n}\n\n.chip-item__selected-indicator {\n display: none;\n \n margin-left: auto;\n}\n\n","import { h,\n Component,\n Element,\n Event,\n EventEmitter, \n Listen,\n Prop, \n Watch } from '@stencil/core';\nimport { ChipItemSelectEvent, ChipState } from '../interfaces';\n\n@Component({\ntag: 'ifx-chip-item',\nstyleUrl: 'chip-item.scss',\nshadow: true\n})\n\nexport class ChipItem {\n@Element() chipItem: HTMLIfxChipItemElement;\n\n@Event({ composed: false }) ifxChipItemSelect: EventEmitter<ChipItemSelectEvent>;\n\n@Prop() value: string = undefined;\n@Prop() chipState: ChipState = { emitIfxChipItemSelect: true, variant: 'multi', size: 'large' }; \n@Prop({ mutable: true, reflect: true }) selected: boolean = false;\n\n@Listen('ifxChipItemSelect', { target: 'body' })\nupdateItemSelection(event: CustomEvent<ChipItemSelectEvent>) {\n if (this.chipState.variant === 'single') {\n const target = event.target as HTMLIfxChipItemElement;\n /* Also making sure chip items are from the same group (parent) while unselecting. */\n if (this.chipItem !== target && this.chipItem.parentElement === target.parentElement) {\n this.selected = false;\n }\n }\n} \n\n@Watch('selected')\nvalidateSelected(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n /* Do not emit if ChipState does not allow. */\n if (this.chipState.emitIfxChipItemSelect){\n this.emitIfxChipItemSelectEvent();\n } else {\n this.chipState.emitIfxChipItemSelect = true;\n }\n }\n} \n\ngetItemLabel(): string {\n return this.chipItem.innerText as string;\n}\n\ntoggleItemSelection() {\n this.selected = !this.selected;\n}\n \n\nemitIfxChipItemSelectEvent(emitIfxChange: boolean = true) {\n this.ifxChipItemSelect.emit({ emitIfxChange: emitIfxChange,\n key: this.chipState.key,\n label: this.getItemLabel(), \n selected: this.selected, \n value: this.value });\n}\n\nhandleItemClick() {\n this.toggleItemSelection();\n}\n\nhandleItemKeyDown(event: KeyboardEvent) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.toggleItemSelection();\n }\n}\n\nhandleSelectedState() {\n if (this.selected) {\n this.emitIfxChipItemSelectEvent(false);\n }\n}\n\n\ncomponentWillLoad() {\n /* Propogating the selected state to the Chip (Parent) component if it is set. */\n this.handleSelectedState();\n}\n\nrender() {\n return (\n <div class={`chip-item chip-item--${this.chipState.size} \n chip-item--${(this.selected && this.chipState.variant) === 'single' ? 'selected' : ''}`} \n tabIndex={0}\n onClick={() => {this.handleItemClick()}}\n onKeyDown={(e) => {this.handleItemKeyDown(e)}}\n role=\"option\"\n aria-selected={this.selected.toString()}> \n {/* Checkbox; renders only in 'multi' variant. */}\n { \n this.chipState.variant === 'multi' &&\n <ifx-checkbox checked={this.selected}\n tabIndex={-1} \n size='s'>\n </ifx-checkbox>\n }\n\n <div class='chip-item__label'> <slot /> </div>\n\n {/* Selected indicator only visible in 'single' variant. */}\n <div class='chip-item__selected-indicator'> \n <ifx-icon icon='check-16'> </ifx-icon> \n </div>\n\n </div>\n );\n}\n}","ifx-icon {\n display: inline-flex;\n justify-content: center;\n\n &:empty {\n display: none;\n }\n}","import { Component, Prop, h, Host, Event, EventEmitter, Watch, State, Element } from '@stencil/core';\nimport { getIcon } from '@infineon/infineon-icons'\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-icon',\n styleUrl: './infineonIconStencil.scss'\n})\n\nexport class InfineonIconStencil {\n @Element() el: HTMLElement;\n @Prop({ mutable: true }) icon: string = \"\"\n @Prop({ mutable: true }) ifxIcon: any;\n @State() internalIcon: string;\n @Event() consoleError: EventEmitter<boolean>;\n\n @Watch('icon')\n updateIcon(newIcon: string) { \n this.internalIcon = newIcon;\n this.setIcon()\n }\n\n convertStringToHtml(htmlString) { \n const div = document.createElement('div')\n div.innerHTML = htmlString\n return div.firstChild\n }\n\n convertHtmlToObject(htmlElement) { \n let pathToObject = Array\n .from(htmlElement.attributes, ({ name, value }) => ({ name, value }))\n .reduce((acc, current) => {\n acc[current.name] = current.value\n return acc\n }, {})\n\n return pathToObject\n }\n\n convertPathsToVnode(htmlPath) { \n let svgPaths = []\n const parentPath = this.convertHtmlToObject(htmlPath);\n const parentPathToVnode = h(\"path\", parentPath);\n svgPaths.push(parentPathToVnode)\n if(htmlPath.firstChild) { \n const paths = htmlPath.querySelectorAll('path');\n const pathLength = htmlPath.querySelectorAll('path').length;\n for(let i = 0; i < pathLength; i++) { \n let pathToObject = this.convertHtmlToObject(paths[i])\n let objToVnode = h(\"path\", pathToObject)\n svgPaths.push(objToVnode)\n } \n }\n return svgPaths\n }\n\n getSVG(svgPath) {\n const htmlPath = this.convertStringToHtml(this.ifxIcon) as SVGElement;\n const width = htmlPath.getAttribute('width');\n const height = htmlPath.getAttribute('height');\n const fill = htmlPath.getAttribute('fill');\n const viewBox = htmlPath.getAttribute('viewBox');\n \n return <svg class=\"inline-svg\" width={width} height={height} xmlns=\"http://www.w3.org/2000/svg\" fill={fill} viewBox={viewBox}>{...svgPath}</svg>\n }\n\n constructIcon() {\n if(this.ifxIcon) {\n const htmlPath = this.convertStringToHtml(this.ifxIcon)\n const svgPath = this.convertPathsToVnode(htmlPath)\n const SVG = this.getSVG(svgPath)\n return SVG;\n } else if(this.icon !== \"\") {\n this.consoleError.emit(true)\n return;\n } else { \n return;\n }\n }\n\nsetIcon() { \n const toCamelCase = str =>\n str\n .replace(/[-_]+(.)/g, (_, chr) => chr.toUpperCase()) // handle - and _ to uppercase\n .replace(/^(.)/, (m) => m.toLowerCase()); // ensure first letter is lowercase\n\n const iconName = toCamelCase(this.internalIcon);\n this.ifxIcon = getIcon(iconName);\n}\n\n isInsideAgGrid(el: HTMLElement): boolean {\n let current = el;\n while (current) {\n if (current.className?.toLowerCase().startsWith('ag-')) {\n return true;\n }\n current = current.parentElement;\n }\n return false;\n}\n\n isInsideChoices(el: HTMLElement): boolean {\n let current = el;\n while (current) {\n if (current.className?.toLowerCase().startsWith('choices__')) {\n return true;\n }\n current = current.parentElement;\n }\n return false;\n }\n\n componentWillLoad() {\n this.internalIcon = this.icon;\n this.setIcon()\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n if(!this.isInsideAgGrid(this.el) && !this.isInsideChoices(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-icon', await framework)\n }\n }\n }\n\n render() {\n return (\n <Host>\n {this.constructIcon()}\n </Host>\n );\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n display: inline-flex;\n}\n\n.btn {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: tokens.$ifxSize500;\n padding: 8px;\n gap: tokens.$ifxSpace100;\n color: tokens.$ifxColorBaseWhite;\n flex-direction: row;\n font-weight: tokens.$ifxFontWeightSemibold;\n border-radius: tokens.$ifxBorderRadius12;\n line-height: tokens.$ifxLineHeightM;\n outline: none;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n text-decoration: none;\n user-select: none;\n border: 1px solid rgba(0, 0, 0, 0);\n font-size: tokens.$ifxFontSizeM;\n transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;\n}\n\n.btn:not(.disabled) {\n cursor: pointer;\n}\n\n.btn-primary {\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n pointer-events: none;\n\n }\n}\n\n\n.btn-secondary {\n color: tokens.$ifxColorOcean500;\n background-color: tokens.$ifxColorBaseWhite;\n border-color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n.btn-tertiary {\n background-color: transparent;\n color: tokens.$ifxColorBaseBlack;\n\n &:disabled,\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n }\n}\n\n\n.btn {\n\n &.icon-button {\n min-width: initial;\n min-height: initial;\n width: tokens.$ifxSize500;\n height: tokens.$ifxSize500;\n padding: 0;\n justify-content: center;\n\n &.btn-round {\n border-radius: 100px;\n }\n\n &.btn-square {\n border-radius: tokens.$ifxBorderRadius12;\n }\n\n &.btn-s {\n width: tokens.$ifxSize400;\n height: tokens.$ifxSize400;\n padding: 8px;\n }\n\n\n &.btn-l {\n width: tokens.$ifxSize600;\n height: tokens.$ifxSize600;\n padding: 8px;\n }\n }\n\n &.btn-primary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean600;\n border-color: tokens.$ifxColorOcean600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n border-color: tokens.$ifxColorOcean700;\n }\n }\n\n\n &.btn-secondary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean600;\n border-color: tokens.$ifxColorOcean600;\n color: tokens.$ifxColorBaseWhite;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n border-color: tokens.$ifxColorOcean700;\n }\n }\n\n &.btn-tertiary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n color: tokens.$ifxColorBaseBlack;\n box-shadow: 0 0 0 0px tokens.$ifxColorBaseWhite, 0 0 0 2px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorOcean600;\n }\n }\n}","import { Component, Prop, h, Host, Method, Element, Listen, Watch, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'ifx-icon-button',\n styleUrl: 'icon-button.scss',\n shadow: true,\n})\n\nexport class IconButton {\n @Prop() variant: 'primary' | 'secondary' | 'tertiary';\n @Prop() size: string;\n @Prop() disabled: boolean;\n @Prop() icon: string;\n @Prop() href: string;\n @Prop() target: string = '_self';\n @Prop() shape: string = 'round';\n @Prop() ariaLabel: string | null;\n @State() internalIcon: string;\n @Element() el;\n\n private focusableElement: HTMLElement;\n \n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Watch('icon')\n updateIcon(newIcon: string) { \n this.internalIcon = newIcon;\n }\n\n @Method()\n async setFocus() {\n this.focusableElement.focus();\n }\n\n componentWillLoad() {\n if (this.shape === '') {\n this.shape = 'round';\n }\n this.internalIcon = this.icon;\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-icon-button', await framework)\n }\n }\n\n render() {\n return (\n <Host \n aria-disabled={this.disabled}\n aria-label={this.ariaLabel}> \n {this.href ? (\n <a\n ref={(el) => (this.focusableElement = el)}\n class={this.getClassNames()}\n href={!this.disabled ? this.href : undefined} \n target={this.target}\n rel={this.target === '_blank' ? 'noopener noreferrer' : undefined}\n >\n <ifx-icon icon={this.internalIcon}></ifx-icon>\n </a>\n ) : (\n <button\n class={this.getClassNames()}\n type=\"button\"\n disabled={this.disabled}\n >\n <ifx-icon icon={this.internalIcon}></ifx-icon>\n </button>\n )}\n </Host>\n );\n }\n\n getVariantClass() {\n return `${this.variant}` === \"secondary\"\n ? `secondary`\n : `${this.variant}` === 'tertiary'\n ? `tertiary`\n : `primary`;\n }\n\n getSizeClass() {\n if (`${this.size}` === \"xs\") {\n return \"xs\"\n }\n else if (`${this.size}` === \"s\") {\n return \"s\"\n }\n else if (`${this.size}` === \"l\") {\n return \"l\"\n }\n else return \"\";\n }\n\n getClassNames() {\n return classNames(\n 'btn icon-button',\n `btn-${this.shape}`,\n this.size && `btn-${this.getSizeClass()}`,\n `btn-${this.getVariantClass()}`,\n this.disabled ? 'disabled' : ''\n );\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.indicator__container { \n & .dot__wrapper { \n display: flex;\n width: 8px;\n height: 8px;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n border-radius: 50%;\n background-color: tokens.$ifxColorOcean500;\n }\n\n & .number__container {\n height: 16px;\n display: inline-flex;\n padding: 0; \n min-width: 16px; \n justify-content: center;\n align-items: center;\n border-radius: 100px;\n background-color: tokens.$ifxColorOcean500;\n\n & .number__wrapper {\n padding: 0 4px;\n color: tokens.$ifxColorBaseWhite;\n text-align: center;\n font-size: tokens.$ifxFontSizeS;\n font-style: normal;\n font-weight: tokens.$ifxFontWeightSemibold;\n line-height: 16px;\n }\n\n &.inverted {\n background-color: tokens.$ifxColorBaseWhite;\n\n & .number__wrapper {\n color: tokens.$ifxColorOcean500;\n }\n }\n }\n}\n\n\n","import { Component, h, Prop, Element, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-indicator',\n styleUrl: 'indicator.scss',\n shadow: true\n})\nexport class Indicator {\n @Element() el;\n @State() filteredNumber: string | number;\n @Prop() inverted: boolean = false;\n @Prop() ariaLabel: string | null;\n @Prop() variant: string = 'number'\n @Prop() number: number = 0;\n\n handleNumber() {\n this.filteredNumber = !isNaN(this.number) && this.number > 99 ? '99+' : this.number;\n }\n\n componentWillLoad() { \n this.handleNumber()\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-indicator', await framework)\n }\n }\n\n componentWillUpdate() {\n this.handleNumber()\n }\n\n render() {\n return (\n <div aria-label={this.ariaLabel} class='indicator__container'>\n {this.variant === 'number' && \n <div class={`number__container ${this.inverted ? 'inverted' : \"\"}`}>\n <div class=\"number__wrapper\">\n {this.filteredNumber}\n </div> \n </div>}\n {this.variant === 'dot' && <div class=\"dot__wrapper\"></div>}\n </div>\n );\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.container {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n gap: 32px;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n flex-wrap: wrap;\n\n & .items__per-page-wrapper {\n display: flex;\n align-items: center;\n gap: 16px;\n\n & .items__per-page-label {\n color: #1D1D1D;\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n }\n\n & .items__per-page-field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n & ifx-select {\n width: 92px;\n }\n }\n }\n\n & .items__total-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 12px;\n\n & .items__total-button {\n display: flex;\n width: 40px;\n height: 40px;\n justify-content: center;\n align-items: center;\n border-radius: 100px;\n border: 1px solid #BFBBBB;\n background: #FFF;\n }\n\n & .page__numbers-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 12px;\n\n & .page__number-item {\n display: flex;\n padding: 6px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 100px;\n\n &.active {\n background-color: #0A8276;\n\n & span {\n color: #fff;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &:hover:not(.active) {\n background-color: #ddd;\n\n }\n\n &:active:not(.active) {\n background-color: #575352;\n }\n\n & span {\n display: flex;\n width: 16px;\n height: 16px;\n flex-direction: column;\n justify-content: center;\n color: #1D1D1D;\n text-align: center;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n }\n }\n }\n }\n}\n\n\n.pagination {\n display: flex;\n\n & ifx-icon-button:first-of-type {\n margin-right: 12px;\n }\n\n & ifx-icon-button:last-of-type {\n margin-left: 12px;\n }\n}\n\n.page__button {\n padding: 8px;\n border-radius: 100px;\n}\n\nol {\n list-style-type: none;\n padding: 0;\n margin: 0;\n display: inline-flex;\n align-items: center;\n gap: 12px;\n}\n\nli {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n border-radius: 100px;\n\n &:hover:not(.active) {\n & page__button {\n background-color: #EEEDED;\n }\n }\n\n &:active:not(.active) {\n & .page__button {\n background-color: #575352;\n color: #fff;\n }\n }\n\n &.active {\n background-color: #0A8276;\n\n & .page__button {\n color: #fff;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n & .page__button {\n text-decoration: none;\n display: flex;\n width: 16px;\n height: 16px;\n flex-direction: column;\n justify-content: center;\n color: #1D1D1D;\n text-align: center;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n align-items: center;\n }\n}\n\n.prev,\n.next {\n &.disabled {\n cursor: default;\n\n &:hover {\n cursor: default;\n text-decoration: none;\n }\n }\n}\n\n.prev {\n margin-right: 2.5px;\n}\n\n.next {\n margin-left: 2.5px;\n}\n\n@media (max-width: tokens.$ifxBreakpointM) {\n .container {\n gap: tokens.$ifxSpace200;\n justify-content: left;\n\n .items__total-wrapper {\n .pagination {\n ol {\n gap: tokens.$ifxSpace150;\n }\n }\n }\n }\n}\n\n@media (max-width: 374px) {\n .pagination {\n .ellipsis + .active {\n margin-left: tokens.$ifxSpace100;\n }\n\n .active + .ellipsis {\n margin-left: tokens.$ifxSpace100;\n }\n }\n}\n","import { Component, h, Element, Event, EventEmitter, Prop, State, Listen, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\n@Component({\n tag: 'ifx-pagination',\n styleUrl: 'pagination.scss',\n shadow: true\n})\nexport class Pagination {\n @Element() el: HTMLElement;\n @Event() ifxPageChange: EventEmitter;\n @Event() ifxItemsPerPageChange: EventEmitter;\n @Prop() currentPage: number = 1;\n @Prop() showItemsPerPage: boolean = true;\n @State() internalPage: number = 1;\n @State() internalItemsPerPage: number = 10;\n @State() numberOfPages: number[] = [];\n @Prop() total: number = 1;\n @Prop() itemsPerPage: any[] | string;\n @State() filteredItemsPerPage: any[] = [];\n @State() visiblePages: (number | string)[] = [];\n\n private CLASS_DISABLED = \"disabled\";\n private CLASS_ACTIVE = \"active\";\n private prevInternalPage: number;\n\n @Watch('total')\n watchTotalHandler() {\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n }\n\n @Watch('currentPage')\n currentPageWatcher(newVal: number) {\n this.internalPage = Math.max(1, Math.min(newVal, this.numberOfPages.length));\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n }\n\n @Listen('ifxSelect')\n setItemsPerPage(e: CustomEvent) {\n const selectedValue = e.detail?.value || e.detail?.label;\n const newItemsPerPage = parseInt(selectedValue) || 10;\n\n if (newItemsPerPage === this.internalItemsPerPage) {\n return;\n }\n\n this.internalItemsPerPage = newItemsPerPage;\n this.internalPage = 1;\n this.calculateNumberOfPages();\n this.updateVisiblePages();\n this.handleEventEmission();\n }\n\n emitItemsPerPage(e) {\n this.ifxItemsPerPageChange.emit((e as any).detail.label)\n }\n\n async componentDidLoad() {\n if (this.showItemsPerPage) {\n const select = this.el.shadowRoot.querySelector('#itemsPerPageSelect');\n if(select) {\n select.addEventListener('ifxSelect', (e) => this.emitItemsPerPage(e))\n }\n }\n\n // Add resize listener to update pagination on screen size changes\n window.addEventListener('resize', this.handleResize);\n\n if(!isNestedInIfxComponent(this.el)) {\n const framework = detectFramework();\n trackComponent('ifx-pagination', await framework)\n }\n this.initPagination();\n }\n\n disconnectedCallback() {\n if (this.showItemsPerPage) {\n const select = this.el.shadowRoot.querySelector('#itemsPerPageSelect');\n if (select) {\n select.removeEventListener('ifxSelect', (e) => this.emitItemsPerPage(e));\n }\n }\n\n // Remove resize listener\n window.removeEventListener('resize', this.handleResize);\n\n // Clear any pending resize timeout\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n }\n\n updateVisiblePages() {\n // Check if screen is mobile (< 375px)\n const isMobile = window.innerWidth < 375;\n const totalPages = this.numberOfPages.length;\n const current = this.internalPage;\n let pages: (number | string)[] = [];\n\n if (isMobile) {\n // Mobile logic: maximum 5 elements\n if (totalPages <= 5) {\n pages = [...this.numberOfPages];\n } else {\n // Always show first page\n pages.push(1);\n\n if (current <= 2) {\n // Show: 1 2 3 … 10 (for pages 1 and 2)\n pages.push(2, 3, '...', totalPages);\n } else if (current >= totalPages - 1) {\n // Show: 1 … 23 24 25 (for last 2 pages only)\n pages.push('...', totalPages - 2, totalPages - 1, totalPages);\n } else {\n // Show: 1 … 5 … 10 (for middle pages, including page 3 and third-to-last page)\n pages.push('...', current, '...', totalPages);\n }\n }\n } else {\n // Desktop logic: maximum 7 elements\n const buffer = 2;\n\n if (totalPages <= 7) {\n pages = [...this.numberOfPages];\n } else {\n // Always show first page\n pages.push(1);\n\n // Determine the range around current page\n let start = Math.max(2, current - buffer);\n let end = Math.min(totalPages - 1, current + buffer);\n\n // Adjust range to ensure we show enough pages\n // If we're close to the beginning, extend the end\n if (current <= 4) {\n start = 2;\n end = Math.min(totalPages - 1, 5);\n }\n // If we're close to the end, extend the start\n else if (current >= totalPages - 3) {\n start = Math.max(2, totalPages - 4);\n end = totalPages - 1;\n }\n // For middle pages, show current +/- 1\n else {\n start = current - 1;\n end = current + 1;\n }\n\n // Add ellipsis before the range if there's a gap\n if (start > 2) {\n pages.push('...');\n }\n\n // Add the range of pages\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n // Add ellipsis after the range if there's a gap\n if (end < totalPages - 1) {\n pages.push('...');\n }\n\n // Always show last page\n pages.push(totalPages);\n }\n }\n\n this.visiblePages = pages;\n }\n\n calculateNumberOfPages() {\n const totalPages = Math.ceil(this.total / this.internalItemsPerPage);\n this.numberOfPages = Array.from({ length: totalPages }, (_, i) => i + 1);\n this.internalPage = Math.max(1, Math.min(this.currentPage, totalPages));\n }\n\n filterOptionsArray() {\n const items = typeof this.itemsPerPage === 'string' ?\n JSON.parse(this.itemsPerPage) : this.itemsPerPage;\n this.filteredItemsPerPage = items.map(item => ({\n ...item,\n label: item.label || item.value\n }));\n }\n\n componentWillLoad() {\n this.filterOptionsArray();\n\n const selectedOption = this.filteredItemsPerPage.find(option => option.selected);\n if (selectedOption) {\n this.internalItemsPerPage = Number(selectedOption.value);\n } else if (this.filteredItemsPerPage.length > 0) {\n this.internalItemsPerPage = Number(this.filteredItemsPerPage[0].value);\n }\n\n this.calculateNumberOfPages();\n this.internalPage = Math.max(1, Math.min(this.currentPage, this.numberOfPages.length));\n this.updateVisiblePages();\n }\n\n componentWillUpdate() {\n if (this.prevInternalPage !== this.internalPage) {\n this.updateVisiblePages();\n this.prevInternalPage = this.internalPage;\n }\n }\n\n componentDidUpdate() {\n this.initPagination();\n }\n\n handleEventEmission() {\n this.ifxPageChange.emit({\n currentPage: this.internalPage,\n totalPages: this.numberOfPages.length,\n itemsPerPage: this.internalItemsPerPage\n });\n }\n\n initPagination() {\n const pagination = this.el.shadowRoot.querySelector('.pagination');\n if (!pagination) return;\n\n const updateButtons = () => {\n const prev = pagination.querySelector<HTMLButtonElement>('.prev');\n const next = pagination.querySelector<HTMLButtonElement>('.next');\n if (prev) {\n prev.disabled = this.internalPage === 1;\n prev.classList.toggle(this.CLASS_DISABLED, this.internalPage === 1);\n }\n if (next) {\n next.disabled = this.internalPage === this.numberOfPages.length;\n next.classList.toggle(this.CLASS_DISABLED, this.internalPage === this.numberOfPages.length);\n }\n };\n\n pagination.querySelectorAll('li').forEach(li => {\n li.removeEventListener('click', this.handlePageClick);\n li.addEventListener('click', this.handlePageClick);\n });\n\n updateButtons();\n }\n\n private handlePageClick = (e: Event) => {\n const li = e.currentTarget as HTMLLIElement;\n const page = parseInt(li.dataset.page);\n if (!isNaN(page)) this.changePage(page);\n };\n\n private handleResize = () => {\n // Debounce resize events to prevent excessive calls\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n this.updateVisiblePages();\n }, 100);\n };\n\n private resizeTimeout: any;\n\n changePage(newPage: number) {\n newPage = Math.max(1, Math.min(newPage, this.numberOfPages.length));\n if (newPage === this.internalPage) return;\n\n this.internalPage = newPage;\n this.handleEventEmission();\n this.initPagination();\n }\n\n render() {\n return (\n <div class=\"container\">\n {this.showItemsPerPage && (\n <div class=\"items__per-page-wrapper\">\n <div class=\"items__per-page-label\">Results per Page</div>\n <div class=\"items__per-page-field\">\n <ifx-select\n id='itemsPerPageSelect'\n placeholder='false'\n show-search='false'\n value={undefined}\n disabled={false}\n error={false}\n size=\"s\"\n options={this.filteredItemsPerPage}\n placeholder-value=\"Select\"\n ></ifx-select>\n </div>\n </div>\n )}\n\n <div class=\"items__total-wrapper\">\n <div class=\"pagination\">\n <ifx-icon-button\n class=\"prev\"\n icon=\"arrow-left-16\"\n aria-label='Previous Page'\n onClick={() => this.changePage(this.internalPage - 1)}\n variant=\"secondary\"\n ></ifx-icon-button>\n\n <ol>\n {this.visiblePages.map((page, i) => typeof page === 'number' ? (\n <li\n key={`page-${page}`}\n class={{ [this.CLASS_ACTIVE]: page === this.internalPage }}\n data-page={page}\n >\n <span \n class='page__button'\n role=\"button\"\n tabindex=\"0\"\n aria-current={page === this.internalPage ? \"page\" : undefined}\n aria-label={`Page ${page}`}\n onClick={() => this.changePage(page)}\n onKeyDown={(e) => (e.key === 'Enter' || e.key === ' ') && this.changePage(page)}\n >\n {page}\n </span>\n </li>\n ) : (\n <li class=\"ellipsis\" key={`ellipsis-${i}`}>\n <span aria-hidden=\"true\">...</span>\n </li>\n ))}\n </ol>\n\n <ifx-icon-button\n class=\"next\"\n icon=\"arrow-right-16\"\n aria-label='Next Page'\n onClick={() => this.changePage(this.internalPage + 1)}\n variant=\"secondary\"\n ></ifx-icon-button>\n </div>\n </div>\n </div>\n );\n }\n}\n","/*! choices.js v10.2.0 | © 2022 Josh Johnson | https://github.com/jshjohnson/Choices#readme */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Choices\"] = factory();\n\telse\n\t\troot[\"Choices\"] = factory();\n})(window, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 282:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.clearChoices = exports.activateChoices = exports.filterChoices = exports.addChoice = void 0;\nvar constants_1 = __webpack_require__(883);\nvar addChoice = function (_a) {\n var value = _a.value,\n label = _a.label,\n id = _a.id,\n groupId = _a.groupId,\n disabled = _a.disabled,\n elementId = _a.elementId,\n customProperties = _a.customProperties,\n placeholder = _a.placeholder,\n keyCode = _a.keyCode;\n return {\n type: constants_1.ACTION_TYPES.ADD_CHOICE,\n value: value,\n label: label,\n id: id,\n groupId: groupId,\n disabled: disabled,\n elementId: elementId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\nexports.addChoice = addChoice;\nvar filterChoices = function (results) {\n return {\n type: constants_1.ACTION_TYPES.FILTER_CHOICES,\n results: results\n };\n};\nexports.filterChoices = filterChoices;\nvar activateChoices = function (active) {\n if (active === void 0) {\n active = true;\n }\n return {\n type: constants_1.ACTION_TYPES.ACTIVATE_CHOICES,\n active: active\n };\n};\nexports.activateChoices = activateChoices;\nvar clearChoices = function () {\n return {\n type: constants_1.ACTION_TYPES.CLEAR_CHOICES\n };\n};\nexports.clearChoices = clearChoices;\n\n/***/ }),\n\n/***/ 783:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addGroup = void 0;\nvar constants_1 = __webpack_require__(883);\nvar addGroup = function (_a) {\n var value = _a.value,\n id = _a.id,\n active = _a.active,\n disabled = _a.disabled;\n return {\n type: constants_1.ACTION_TYPES.ADD_GROUP,\n value: value,\n id: id,\n active: active,\n disabled: disabled\n };\n};\nexports.addGroup = addGroup;\n\n/***/ }),\n\n/***/ 464:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.highlightItem = exports.removeItem = exports.addItem = void 0;\nvar constants_1 = __webpack_require__(883);\nvar addItem = function (_a) {\n var value = _a.value,\n label = _a.label,\n id = _a.id,\n choiceId = _a.choiceId,\n groupId = _a.groupId,\n customProperties = _a.customProperties,\n placeholder = _a.placeholder,\n keyCode = _a.keyCode;\n return {\n type: constants_1.ACTION_TYPES.ADD_ITEM,\n value: value,\n label: label,\n id: id,\n choiceId: choiceId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\nexports.addItem = addItem;\nvar removeItem = function (id, choiceId) {\n return {\n type: constants_1.ACTION_TYPES.REMOVE_ITEM,\n id: id,\n choiceId: choiceId\n };\n};\nexports.removeItem = removeItem;\nvar highlightItem = function (id, highlighted) {\n return {\n type: constants_1.ACTION_TYPES.HIGHLIGHT_ITEM,\n id: id,\n highlighted: highlighted\n };\n};\nexports.highlightItem = highlightItem;\n\n/***/ }),\n\n/***/ 137:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setIsLoading = exports.resetTo = exports.clearAll = void 0;\nvar constants_1 = __webpack_require__(883);\nvar clearAll = function () {\n return {\n type: constants_1.ACTION_TYPES.CLEAR_ALL\n };\n};\nexports.clearAll = clearAll;\nvar resetTo = function (state) {\n return {\n type: constants_1.ACTION_TYPES.RESET_TO,\n state: state\n };\n};\nexports.resetTo = resetTo;\nvar setIsLoading = function (isLoading) {\n return {\n type: constants_1.ACTION_TYPES.SET_IS_LOADING,\n isLoading: isLoading\n };\n};\nexports.setIsLoading = setIsLoading;\n\n/***/ }),\n\n/***/ 373:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar deepmerge_1 = __importDefault(__webpack_require__(996));\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar fuse_js_1 = __importDefault(__webpack_require__(221));\nvar choices_1 = __webpack_require__(282);\nvar groups_1 = __webpack_require__(783);\nvar items_1 = __webpack_require__(464);\nvar misc_1 = __webpack_require__(137);\nvar components_1 = __webpack_require__(520);\nvar constants_1 = __webpack_require__(883);\nvar defaults_1 = __webpack_require__(789);\nvar utils_1 = __webpack_require__(799);\nvar reducers_1 = __webpack_require__(655);\nvar store_1 = __importDefault(__webpack_require__(744));\nvar templates_1 = __importDefault(__webpack_require__(686));\n/** @see {@link http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c} */\nvar IS_IE11 = '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style;\nvar USER_DEFAULTS = {};\n/**\n * Choices\n * @author Josh Johnson<josh@joshuajohnson.co.uk>\n */\nvar Choices = /** @class */function () {\n function Choices(element, userConfig) {\n if (element === void 0) {\n element = '[data-choice]';\n }\n if (userConfig === void 0) {\n userConfig = {};\n }\n var _this = this;\n if (userConfig.allowHTML === undefined) {\n console.warn('Deprecation warning: allowHTML will default to false in a future release. To render HTML in Choices, you will need to set it to true. Setting allowHTML will suppress this message.');\n }\n this.config = deepmerge_1.default.all([defaults_1.DEFAULT_CONFIG, Choices.defaults.options, userConfig],\n // When merging array configs, replace with a copy of the userConfig array,\n // instead of concatenating with the default array\n {\n arrayMerge: function (_, sourceArray) {\n return __spreadArray([], sourceArray, true);\n }\n });\n var invalidConfigOptions = (0, utils_1.diff)(this.config, defaults_1.DEFAULT_CONFIG);\n if (invalidConfigOptions.length) {\n console.warn('Unknown config option(s) passed', invalidConfigOptions.join(', '));\n }\n var passedElement = typeof element === 'string' ? document.querySelector(element) : element;\n if (!(passedElement instanceof HTMLInputElement || passedElement instanceof HTMLSelectElement)) {\n throw TypeError('Expected one of the following types text|select-one|select-multiple');\n }\n this._isTextElement = passedElement.type === constants_1.TEXT_TYPE;\n this._isSelectOneElement = passedElement.type === constants_1.SELECT_ONE_TYPE;\n this._isSelectMultipleElement = passedElement.type === constants_1.SELECT_MULTIPLE_TYPE;\n this._isSelectElement = this._isSelectOneElement || this._isSelectMultipleElement;\n this.config.searchEnabled = this._isSelectMultipleElement || this.config.searchEnabled;\n if (!['auto', 'always'].includes(\"\".concat(this.config.renderSelectedChoices))) {\n this.config.renderSelectedChoices = 'auto';\n }\n if (userConfig.addItemFilter && typeof userConfig.addItemFilter !== 'function') {\n var re = userConfig.addItemFilter instanceof RegExp ? userConfig.addItemFilter : new RegExp(userConfig.addItemFilter);\n this.config.addItemFilter = re.test.bind(re);\n }\n if (this._isTextElement) {\n this.passedElement = new components_1.WrappedInput({\n element: passedElement,\n classNames: this.config.classNames,\n delimiter: this.config.delimiter\n });\n } else {\n this.passedElement = new components_1.WrappedSelect({\n element: passedElement,\n classNames: this.config.classNames,\n template: function (data) {\n return _this._templates.option(data);\n }\n });\n }\n this.initialised = false;\n this._store = new store_1.default();\n this._initialState = reducers_1.defaultState;\n this._currentState = reducers_1.defaultState;\n this._prevState = reducers_1.defaultState;\n this._currentValue = '';\n this._canSearch = !!this.config.searchEnabled;\n this._isScrollingOnIe = false;\n this._highlightPosition = 0;\n this._wasTap = true;\n this._placeholderValue = this._generatePlaceholderValue();\n this._baseId = (0, utils_1.generateId)(this.passedElement.element, 'choices-');\n /**\n * setting direction in cases where it's explicitly set on passedElement\n * or when calculated direction is different from the document\n */\n this._direction = this.passedElement.dir;\n if (!this._direction) {\n var elementDirection = window.getComputedStyle(this.passedElement.element).direction;\n var documentDirection = window.getComputedStyle(document.documentElement).direction;\n if (elementDirection !== documentDirection) {\n this._direction = elementDirection;\n }\n }\n this._idNames = {\n itemChoice: 'item-choice'\n };\n if (this._isSelectElement) {\n // Assign preset groups from passed element\n this._presetGroups = this.passedElement.optionGroups;\n // Assign preset options from passed element\n this._presetOptions = this.passedElement.options;\n }\n // Assign preset choices from passed object\n this._presetChoices = this.config.choices;\n // Assign preset items from passed object first\n this._presetItems = this.config.items;\n // Add any values passed from attribute\n if (this.passedElement.value && this._isTextElement) {\n var splitValues = this.passedElement.value.split(this.config.delimiter);\n this._presetItems = this._presetItems.concat(splitValues);\n }\n // Create array of choices from option elements\n if (this.passedElement.options) {\n this.passedElement.options.forEach(function (option) {\n _this._presetChoices.push({\n value: option.value,\n label: option.innerHTML,\n selected: !!option.selected,\n disabled: option.disabled || option.parentNode.disabled,\n placeholder: option.value === '' || option.hasAttribute('placeholder'),\n customProperties: (0, utils_1.parseCustomProperties)(option.dataset.customProperties)\n });\n });\n }\n this._render = this._render.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n this._onKeyUp = this._onKeyUp.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onTouchMove = this._onTouchMove.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onMouseOver = this._onMouseOver.bind(this);\n this._onFormReset = this._onFormReset.bind(this);\n this._onSelectKey = this._onSelectKey.bind(this);\n this._onEnterKey = this._onEnterKey.bind(this);\n this._onEscapeKey = this._onEscapeKey.bind(this);\n this._onDirectionKey = this._onDirectionKey.bind(this);\n this._onDeleteKey = this._onDeleteKey.bind(this);\n // If element has already been initialised with Choices, fail silently\n if (this.passedElement.isActive) {\n if (!this.config.silent) {\n console.warn('Trying to initialise Choices on element already initialised', {\n element: element\n });\n }\n this.initialised = true;\n return;\n }\n // Let's go\n this.init();\n }\n Object.defineProperty(Choices, \"defaults\", {\n get: function () {\n return Object.preventExtensions({\n get options() {\n return USER_DEFAULTS;\n },\n get templates() {\n return templates_1.default;\n }\n });\n },\n enumerable: false,\n configurable: true\n });\n Choices.prototype.init = function () {\n if (this.initialised) {\n return;\n }\n this._createTemplates();\n this._createElements();\n this._createStructure();\n this._store.subscribe(this._render);\n this._render();\n this._addEventListeners();\n var shouldDisable = !this.config.addItems || this.passedElement.element.hasAttribute('disabled');\n if (shouldDisable) {\n this.disable();\n }\n this.initialised = true;\n var callbackOnInit = this.config.callbackOnInit;\n // Run callback if it is a function\n if (callbackOnInit && typeof callbackOnInit === 'function') {\n callbackOnInit.call(this);\n }\n };\n Choices.prototype.destroy = function () {\n if (!this.initialised) {\n return;\n }\n this._removeEventListeners();\n this.passedElement.reveal();\n this.containerOuter.unwrap(this.passedElement.element);\n this.clearStore();\n if (this._isSelectElement) {\n this.passedElement.options = this._presetOptions;\n }\n this._templates = templates_1.default;\n this.initialised = false;\n };\n Choices.prototype.enable = function () {\n if (this.passedElement.isDisabled) {\n this.passedElement.enable();\n }\n if (this.containerOuter.isDisabled) {\n this._addEventListeners();\n this.input.enable();\n this.containerOuter.enable();\n }\n return this;\n };\n Choices.prototype.disable = function () {\n if (!this.passedElement.isDisabled) {\n this.passedElement.disable();\n }\n if (!this.containerOuter.isDisabled) {\n this._removeEventListeners();\n this.input.disable();\n this.containerOuter.disable();\n }\n return this;\n };\n Choices.prototype.highlightItem = function (item, runEvent) {\n if (runEvent === void 0) {\n runEvent = true;\n }\n if (!item || !item.id) {\n return this;\n }\n var id = item.id,\n _a = item.groupId,\n groupId = _a === void 0 ? -1 : _a,\n _b = item.value,\n value = _b === void 0 ? '' : _b,\n _c = item.label,\n label = _c === void 0 ? '' : _c;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n this._store.dispatch((0, items_1.highlightItem)(id, true));\n if (runEvent) {\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n }\n return this;\n };\n Choices.prototype.unhighlightItem = function (item) {\n if (!item || !item.id) {\n return this;\n }\n var id = item.id,\n _a = item.groupId,\n groupId = _a === void 0 ? -1 : _a,\n _b = item.value,\n value = _b === void 0 ? '' : _b,\n _c = item.label,\n label = _c === void 0 ? '' : _c;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n this._store.dispatch((0, items_1.highlightItem)(id, false));\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n return this;\n };\n Choices.prototype.highlightAll = function () {\n var _this = this;\n this._store.items.forEach(function (item) {\n return _this.highlightItem(item);\n });\n return this;\n };\n Choices.prototype.unhighlightAll = function () {\n var _this = this;\n this._store.items.forEach(function (item) {\n return _this.unhighlightItem(item);\n });\n return this;\n };\n Choices.prototype.removeActiveItemsByValue = function (value) {\n var _this = this;\n this._store.activeItems.filter(function (item) {\n return item.value === value;\n }).forEach(function (item) {\n return _this._removeItem(item);\n });\n return this;\n };\n Choices.prototype.removeActiveItems = function (excludedId) {\n var _this = this;\n this._store.activeItems.filter(function (_a) {\n var id = _a.id;\n return id !== excludedId;\n }).forEach(function (item) {\n return _this._removeItem(item);\n });\n return this;\n };\n Choices.prototype.removeHighlightedItems = function (runEvent) {\n var _this = this;\n if (runEvent === void 0) {\n runEvent = false;\n }\n this._store.highlightedActiveItems.forEach(function (item) {\n _this._removeItem(item);\n // If this action was performed by the user\n // trigger the event\n if (runEvent) {\n _this._triggerChange(item.value);\n }\n });\n return this;\n };\n Choices.prototype.showDropdown = function (preventInputFocus) {\n var _this = this;\n if (this.dropdown.isActive) {\n return this;\n }\n requestAnimationFrame(function () {\n _this.dropdown.show();\n _this.containerOuter.open(_this.dropdown.distanceFromTopWindow);\n if (!preventInputFocus && _this._canSearch) {\n _this.input.focus();\n }\n _this.passedElement.triggerEvent(constants_1.EVENTS.showDropdown, {});\n });\n return this;\n };\n Choices.prototype.hideDropdown = function (preventInputBlur) {\n var _this = this;\n if (!this.dropdown.isActive) {\n return this;\n }\n requestAnimationFrame(function () {\n _this.dropdown.hide();\n _this.containerOuter.close();\n if (!preventInputBlur && _this._canSearch) {\n _this.input.removeActiveDescendant();\n _this.input.blur();\n }\n _this.passedElement.triggerEvent(constants_1.EVENTS.hideDropdown, {});\n });\n return this;\n };\n Choices.prototype.getValue = function (valueOnly) {\n if (valueOnly === void 0) {\n valueOnly = false;\n }\n var values = this._store.activeItems.reduce(function (selectedItems, item) {\n var itemValue = valueOnly ? item.value : item;\n selectedItems.push(itemValue);\n return selectedItems;\n }, []);\n return this._isSelectOneElement ? values[0] : values;\n };\n Choices.prototype.setValue = function (items) {\n var _this = this;\n if (!this.initialised) {\n return this;\n }\n items.forEach(function (value) {\n return _this._setChoiceOrItem(value);\n });\n return this;\n };\n Choices.prototype.setChoiceByValue = function (value) {\n var _this = this;\n if (!this.initialised || this._isTextElement) {\n return this;\n }\n // If only one value has been passed, convert to array\n var choiceValue = Array.isArray(value) ? value : [value];\n // Loop through each value and\n choiceValue.forEach(function (val) {\n return _this._findAndSelectChoiceByValue(val);\n });\n return this;\n };\n /**\n * Set choices of select input via an array of objects (or function that returns array of object or promise of it),\n * a value field name and a label field name.\n * This behaves the same as passing items via the choices option but can be called after initialising Choices.\n * This can also be used to add groups of choices (see example 2); Optionally pass a true `replaceChoices` value to remove any existing choices.\n * Optionally pass a `customProperties` object to add additional data to your choices (useful when searching/filtering etc).\n *\n * **Input types affected:** select-one, select-multiple\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([\n * {value: 'One', label: 'Label One', disabled: true},\n * {value: 'Two', label: 'Label Two', selected: true},\n * {value: 'Three', label: 'Label Three'},\n * ], 'value', 'label', false);\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices(async () => {\n * try {\n * const items = await fetch('/items');\n * return items.json()\n * } catch(err) {\n * console.error(err)\n * }\n * });\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([{\n * label: 'Group one',\n * id: 1,\n * disabled: false,\n * choices: [\n * {value: 'Child One', label: 'Child One', selected: true},\n * {value: 'Child Two', label: 'Child Two', disabled: true},\n * {value: 'Child Three', label: 'Child Three'},\n * ]\n * },\n * {\n * label: 'Group two',\n * id: 2,\n * disabled: false,\n * choices: [\n * {value: 'Child Four', label: 'Child Four', disabled: true},\n * {value: 'Child Five', label: 'Child Five'},\n * {value: 'Child Six', label: 'Child Six', customProperties: {\n * description: 'Custom description about child six',\n * random: 'Another random custom property'\n * }},\n * ]\n * }], 'value', 'label', false);\n * ```\n */\n Choices.prototype.setChoices = function (choicesArrayOrFetcher, value, label, replaceChoices) {\n var _this = this;\n if (choicesArrayOrFetcher === void 0) {\n choicesArrayOrFetcher = [];\n }\n if (value === void 0) {\n value = 'value';\n }\n if (label === void 0) {\n label = 'label';\n }\n if (replaceChoices === void 0) {\n replaceChoices = false;\n }\n if (!this.initialised) {\n throw new ReferenceError(\"setChoices was called on a non-initialized instance of Choices\");\n }\n if (!this._isSelectElement) {\n throw new TypeError(\"setChoices can't be used with INPUT based Choices\");\n }\n if (typeof value !== 'string' || !value) {\n throw new TypeError(\"value parameter must be a name of 'value' field in passed objects\");\n }\n // Clear choices if needed\n if (replaceChoices) {\n this.clearChoices();\n }\n if (typeof choicesArrayOrFetcher === 'function') {\n // it's a choices fetcher function\n var fetcher_1 = choicesArrayOrFetcher(this);\n if (typeof Promise === 'function' && fetcher_1 instanceof Promise) {\n // that's a promise\n // eslint-disable-next-line no-promise-executor-return\n return new Promise(function (resolve) {\n return requestAnimationFrame(resolve);\n }).then(function () {\n return _this._handleLoadingState(true);\n }).then(function () {\n return fetcher_1;\n }).then(function (data) {\n return _this.setChoices(data, value, label, replaceChoices);\n }).catch(function (err) {\n if (!_this.config.silent) {\n console.error(err);\n }\n }).then(function () {\n return _this._handleLoadingState(false);\n }).then(function () {\n return _this;\n });\n }\n // function returned something else than promise, let's check if it's an array of choices\n if (!Array.isArray(fetcher_1)) {\n throw new TypeError(\".setChoices first argument function must return either array of choices or Promise, got: \".concat(typeof fetcher_1));\n }\n // recursion with results, it's sync and choices were cleared already\n return this.setChoices(fetcher_1, value, label, false);\n }\n if (!Array.isArray(choicesArrayOrFetcher)) {\n throw new TypeError(\".setChoices must be called either with array of choices with a function resulting into Promise of array of choices\");\n }\n this.containerOuter.removeLoadingState();\n this._startLoading();\n choicesArrayOrFetcher.forEach(function (groupOrChoice) {\n if (groupOrChoice.choices) {\n _this._addGroup({\n id: groupOrChoice.id ? parseInt(\"\".concat(groupOrChoice.id), 10) : null,\n group: groupOrChoice,\n valueKey: value,\n labelKey: label\n });\n } else {\n var choice = groupOrChoice;\n _this._addChoice({\n value: choice[value],\n label: choice[label],\n isSelected: !!choice.selected,\n isDisabled: !!choice.disabled,\n placeholder: !!choice.placeholder,\n customProperties: choice.customProperties\n });\n }\n });\n this._stopLoading();\n return this;\n };\n Choices.prototype.clearChoices = function () {\n this._store.dispatch((0, choices_1.clearChoices)());\n return this;\n };\n Choices.prototype.clearStore = function () {\n this._store.dispatch((0, misc_1.clearAll)());\n return this;\n };\n Choices.prototype.clearInput = function () {\n var shouldSetInputWidth = !this._isSelectOneElement;\n this.input.clear(shouldSetInputWidth);\n if (!this._isTextElement && this._canSearch) {\n this._isSearching = false;\n this._store.dispatch((0, choices_1.activateChoices)(true));\n }\n return this;\n };\n Choices.prototype._render = function () {\n if (this._store.isLoading()) {\n return;\n }\n this._currentState = this._store.state;\n var stateChanged = this._currentState.choices !== this._prevState.choices || this._currentState.groups !== this._prevState.groups || this._currentState.items !== this._prevState.items;\n var shouldRenderChoices = this._isSelectElement;\n var shouldRenderItems = this._currentState.items !== this._prevState.items;\n if (!stateChanged) {\n return;\n }\n if (shouldRenderChoices) {\n this._renderChoices();\n }\n if (shouldRenderItems) {\n this._renderItems();\n }\n this._prevState = this._currentState;\n };\n Choices.prototype._renderChoices = function () {\n var _this = this;\n var _a = this._store,\n activeGroups = _a.activeGroups,\n activeChoices = _a.activeChoices;\n var choiceListFragment = document.createDocumentFragment();\n this.choiceList.clear();\n if (this.config.resetScrollPosition) {\n requestAnimationFrame(function () {\n return _this.choiceList.scrollToTop();\n });\n }\n // If we have grouped options\n if (activeGroups.length >= 1 && !this._isSearching) {\n // If we have a placeholder choice along with groups\n var activePlaceholders = activeChoices.filter(function (activeChoice) {\n return activeChoice.placeholder === true && activeChoice.groupId === -1;\n });\n if (activePlaceholders.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activePlaceholders, choiceListFragment);\n }\n choiceListFragment = this._createGroupsFragment(activeGroups, activeChoices, choiceListFragment);\n } else if (activeChoices.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activeChoices, choiceListFragment);\n }\n // If we have choices to show\n if (choiceListFragment.childNodes && choiceListFragment.childNodes.length > 0) {\n var activeItems = this._store.activeItems;\n var canAddItem = this._canAddItem(activeItems, this.input.value);\n // ...and we can select them\n if (canAddItem.response) {\n // ...append them and highlight the first choice\n this.choiceList.append(choiceListFragment);\n this._highlightChoice();\n } else {\n var notice = this._getTemplate('notice', canAddItem.notice);\n this.choiceList.append(notice);\n }\n } else {\n // Otherwise show a notice\n var dropdownItem = void 0;\n var notice = void 0;\n if (this._isSearching) {\n notice = typeof this.config.noResultsText === 'function' ? this.config.noResultsText() : this.config.noResultsText;\n dropdownItem = this._getTemplate('notice', notice, 'no-results');\n } else {\n notice = typeof this.config.noChoicesText === 'function' ? this.config.noChoicesText() : this.config.noChoicesText;\n dropdownItem = this._getTemplate('notice', notice, 'no-choices');\n }\n this.choiceList.append(dropdownItem);\n }\n };\n Choices.prototype._renderItems = function () {\n var activeItems = this._store.activeItems || [];\n this.itemList.clear();\n // Create a fragment to store our list items\n // (so we don't have to update the DOM for each item)\n var itemListFragment = this._createItemsFragment(activeItems);\n // If we have items to add, append them\n if (itemListFragment.childNodes) {\n this.itemList.append(itemListFragment);\n }\n };\n Choices.prototype._createGroupsFragment = function (groups, choices, fragment) {\n var _this = this;\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n var getGroupChoices = function (group) {\n return choices.filter(function (choice) {\n if (_this._isSelectOneElement) {\n return choice.groupId === group.id;\n }\n return choice.groupId === group.id && (_this.config.renderSelectedChoices === 'always' || !choice.selected);\n });\n };\n // If sorting is enabled, filter groups\n if (this.config.shouldSort) {\n groups.sort(this.config.sorter);\n }\n groups.forEach(function (group) {\n var groupChoices = getGroupChoices(group);\n if (groupChoices.length >= 1) {\n var dropdownGroup = _this._getTemplate('choiceGroup', group);\n fragment.appendChild(dropdownGroup);\n _this._createChoicesFragment(groupChoices, fragment, true);\n }\n });\n return fragment;\n };\n Choices.prototype._createChoicesFragment = function (choices, fragment, withinGroup) {\n var _this = this;\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n if (withinGroup === void 0) {\n withinGroup = false;\n }\n // Create a fragment to store our list items (so we don't have to update the DOM for each item)\n var _a = this.config,\n renderSelectedChoices = _a.renderSelectedChoices,\n searchResultLimit = _a.searchResultLimit,\n renderChoiceLimit = _a.renderChoiceLimit;\n var filter = this._isSearching ? utils_1.sortByScore : this.config.sorter;\n var appendChoice = function (choice) {\n var shouldRender = renderSelectedChoices === 'auto' ? _this._isSelectOneElement || !choice.selected : true;\n if (shouldRender) {\n var dropdownItem = _this._getTemplate('choice', choice, _this.config.itemSelectText);\n fragment.appendChild(dropdownItem);\n }\n };\n var rendererableChoices = choices;\n if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) {\n rendererableChoices = choices.filter(function (choice) {\n return !choice.selected;\n });\n }\n // Split array into placeholders and \"normal\" choices\n var _b = rendererableChoices.reduce(function (acc, choice) {\n if (choice.placeholder) {\n acc.placeholderChoices.push(choice);\n } else {\n acc.normalChoices.push(choice);\n }\n return acc;\n }, {\n placeholderChoices: [],\n normalChoices: []\n }),\n placeholderChoices = _b.placeholderChoices,\n normalChoices = _b.normalChoices;\n // If sorting is enabled or the user is searching, filter choices\n if (this.config.shouldSort || this._isSearching) {\n normalChoices.sort(filter);\n }\n var choiceLimit = rendererableChoices.length;\n // Prepend placeholeder\n var sortedChoices = this._isSelectOneElement ? __spreadArray(__spreadArray([], placeholderChoices, true), normalChoices, true) : normalChoices;\n if (this._isSearching) {\n choiceLimit = searchResultLimit;\n } else if (renderChoiceLimit && renderChoiceLimit > 0 && !withinGroup) {\n choiceLimit = renderChoiceLimit;\n }\n // Add each choice to dropdown within range\n for (var i = 0; i < choiceLimit; i += 1) {\n if (sortedChoices[i]) {\n appendChoice(sortedChoices[i]);\n }\n }\n return fragment;\n };\n Choices.prototype._createItemsFragment = function (items, fragment) {\n var _this = this;\n if (fragment === void 0) {\n fragment = document.createDocumentFragment();\n }\n // Create fragment to add elements to\n var _a = this.config,\n shouldSortItems = _a.shouldSortItems,\n sorter = _a.sorter,\n removeItemButton = _a.removeItemButton;\n // If sorting is enabled, filter items\n if (shouldSortItems && !this._isSelectOneElement) {\n items.sort(sorter);\n }\n if (this._isTextElement) {\n // Update the value of the hidden input\n this.passedElement.value = items.map(function (_a) {\n var value = _a.value;\n return value;\n }).join(this.config.delimiter);\n } else {\n // Update the options of the hidden input\n this.passedElement.options = items;\n }\n var addItemToFragment = function (item) {\n // Create new list element\n var listItem = _this._getTemplate('item', item, removeItemButton);\n // Append it to list\n fragment.appendChild(listItem);\n };\n // Add each list item to list\n items.forEach(addItemToFragment);\n return fragment;\n };\n Choices.prototype._triggerChange = function (value) {\n if (value === undefined || value === null) {\n return;\n }\n this.passedElement.triggerEvent(constants_1.EVENTS.change, {\n value: value\n });\n };\n Choices.prototype._selectPlaceholderChoice = function (placeholderChoice) {\n this._addItem({\n value: placeholderChoice.value,\n label: placeholderChoice.label,\n choiceId: placeholderChoice.id,\n groupId: placeholderChoice.groupId,\n placeholder: placeholderChoice.placeholder\n });\n this._triggerChange(placeholderChoice.value);\n };\n Choices.prototype._handleButtonAction = function (activeItems, element) {\n if (!activeItems || !element || !this.config.removeItems || !this.config.removeItemButton) {\n return;\n }\n var itemId = element.parentNode && element.parentNode.dataset.id;\n var itemToRemove = itemId && activeItems.find(function (item) {\n return item.id === parseInt(itemId, 10);\n });\n if (!itemToRemove) {\n return;\n }\n // Remove item associated with button\n this._removeItem(itemToRemove);\n this._triggerChange(itemToRemove.value);\n if (this._isSelectOneElement && this._store.placeholderChoice) {\n this._selectPlaceholderChoice(this._store.placeholderChoice);\n }\n };\n Choices.prototype._handleItemAction = function (activeItems, element, hasShiftKey) {\n var _this = this;\n if (hasShiftKey === void 0) {\n hasShiftKey = false;\n }\n if (!activeItems || !element || !this.config.removeItems || this._isSelectOneElement) {\n return;\n }\n var passedId = element.dataset.id;\n // We only want to select one item with a click\n // so we deselect any items that aren't the target\n // unless shift is being pressed\n activeItems.forEach(function (item) {\n if (item.id === parseInt(\"\".concat(passedId), 10) && !item.highlighted) {\n _this.highlightItem(item);\n } else if (!hasShiftKey && item.highlighted) {\n _this.unhighlightItem(item);\n }\n });\n // Focus input as without focus, a user cannot do anything with a\n // highlighted item\n this.input.focus();\n };\n Choices.prototype._handleChoiceAction = function (activeItems, element) {\n if (!activeItems || !element) {\n return;\n }\n // If we are clicking on an option\n var id = element.dataset.id;\n var choice = id && this._store.getChoiceById(id);\n if (!choice) {\n return;\n }\n var passedKeyCode = activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : undefined;\n var hasActiveDropdown = this.dropdown.isActive;\n // Update choice keyCode\n choice.keyCode = passedKeyCode;\n this.passedElement.triggerEvent(constants_1.EVENTS.choice, {\n choice: choice\n });\n if (!choice.selected && !choice.disabled) {\n var canAddItem = this._canAddItem(activeItems, choice.value);\n if (canAddItem.response) {\n this._addItem({\n value: choice.value,\n label: choice.label,\n choiceId: choice.id,\n groupId: choice.groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder,\n keyCode: choice.keyCode\n });\n this._triggerChange(choice.value);\n }\n }\n this.clearInput();\n // We want to close the dropdown if we are dealing with a single select box\n if (hasActiveDropdown && this._isSelectOneElement) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n Choices.prototype._handleBackspace = function (activeItems) {\n if (!this.config.removeItems || !activeItems) {\n return;\n }\n var lastItem = activeItems[activeItems.length - 1];\n var hasHighlightedItems = activeItems.some(function (item) {\n return item.highlighted;\n });\n // If editing the last item is allowed and there are not other selected items,\n // we can edit the item value. Otherwise if we can remove items, remove all selected items\n if (this.config.editItems && !hasHighlightedItems && lastItem) {\n this.input.value = lastItem.value;\n this.input.setWidth();\n this._removeItem(lastItem);\n this._triggerChange(lastItem.value);\n } else {\n if (!hasHighlightedItems) {\n // Highlight last item if none already highlighted\n this.highlightItem(lastItem, false);\n }\n this.removeHighlightedItems(true);\n }\n };\n Choices.prototype._startLoading = function () {\n this._store.dispatch((0, misc_1.setIsLoading)(true));\n };\n Choices.prototype._stopLoading = function () {\n this._store.dispatch((0, misc_1.setIsLoading)(false));\n };\n Choices.prototype._handleLoadingState = function (setLoading) {\n if (setLoading === void 0) {\n setLoading = true;\n }\n var placeholderItem = this.itemList.getChild(\".\".concat(this.config.classNames.placeholder));\n if (setLoading) {\n this.disable();\n this.containerOuter.addLoadingState();\n if (this._isSelectOneElement) {\n if (!placeholderItem) {\n placeholderItem = this._getTemplate('placeholder', this.config.loadingText);\n if (placeholderItem) {\n this.itemList.append(placeholderItem);\n }\n } else {\n placeholderItem.innerHTML = this.config.loadingText;\n }\n } else {\n this.input.placeholder = this.config.loadingText;\n }\n } else {\n this.enable();\n this.containerOuter.removeLoadingState();\n if (this._isSelectOneElement) {\n if (placeholderItem) {\n placeholderItem.innerHTML = this._placeholderValue || '';\n }\n } else {\n this.input.placeholder = this._placeholderValue || '';\n }\n }\n };\n Choices.prototype._handleSearch = function (value) {\n if (!this.input.isFocussed) {\n return;\n }\n var choices = this._store.choices;\n var _a = this.config,\n searchFloor = _a.searchFloor,\n searchChoices = _a.searchChoices;\n var hasUnactiveChoices = choices.some(function (option) {\n return !option.active;\n });\n // Check that we have a value to search and the input was an alphanumeric character\n if (value !== null && typeof value !== 'undefined' && value.length >= searchFloor) {\n var resultCount = searchChoices ? this._searchChoices(value) : 0;\n // Trigger search event\n this.passedElement.triggerEvent(constants_1.EVENTS.search, {\n value: value,\n resultCount: resultCount\n });\n } else if (hasUnactiveChoices) {\n // Otherwise reset choices to active\n this._isSearching = false;\n this._store.dispatch((0, choices_1.activateChoices)(true));\n }\n };\n Choices.prototype._canAddItem = function (activeItems, value) {\n var canAddItem = true;\n var notice = typeof this.config.addItemText === 'function' ? this.config.addItemText(value) : this.config.addItemText;\n if (!this._isSelectOneElement) {\n var isDuplicateValue = (0, utils_1.existsInArray)(activeItems, value);\n if (this.config.maxItemCount > 0 && this.config.maxItemCount <= activeItems.length) {\n // If there is a max entry limit and we have reached that limit\n // don't update\n canAddItem = false;\n notice = typeof this.config.maxItemText === 'function' ? this.config.maxItemText(this.config.maxItemCount) : this.config.maxItemText;\n }\n if (!this.config.duplicateItemsAllowed && isDuplicateValue && canAddItem) {\n canAddItem = false;\n notice = typeof this.config.uniqueItemText === 'function' ? this.config.uniqueItemText(value) : this.config.uniqueItemText;\n }\n if (this._isTextElement && this.config.addItems && canAddItem && typeof this.config.addItemFilter === 'function' && !this.config.addItemFilter(value)) {\n canAddItem = false;\n notice = typeof this.config.customAddItemText === 'function' ? this.config.customAddItemText(value) : this.config.customAddItemText;\n }\n }\n return {\n response: canAddItem,\n notice: notice\n };\n };\n Choices.prototype._searchChoices = function (value) {\n var newValue = typeof value === 'string' ? value.trim() : value;\n var currentValue = typeof this._currentValue === 'string' ? this._currentValue.trim() : this._currentValue;\n if (newValue.length < 1 && newValue === \"\".concat(currentValue, \" \")) {\n return 0;\n }\n // If new value matches the desired length and is not the same as the current value with a space\n var haystack = this._store.searchableChoices;\n var needle = newValue;\n var options = Object.assign(this.config.fuseOptions, {\n keys: __spreadArray([], this.config.searchFields, true),\n includeMatches: true\n });\n var fuse = new fuse_js_1.default(haystack, options);\n var results = fuse.search(needle); // see https://github.com/krisk/Fuse/issues/303\n this._currentValue = newValue;\n this._highlightPosition = 0;\n this._isSearching = true;\n this._store.dispatch((0, choices_1.filterChoices)(results));\n return results.length;\n };\n Choices.prototype._addEventListeners = function () {\n var documentElement = document.documentElement;\n // capture events - can cancel event processing or propagation\n documentElement.addEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.addEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.addEventListener('mousedown', this._onMouseDown, true);\n // passive events - doesn't call `preventDefault` or `stopPropagation`\n documentElement.addEventListener('click', this._onClick, {\n passive: true\n });\n documentElement.addEventListener('touchmove', this._onTouchMove, {\n passive: true\n });\n this.dropdown.element.addEventListener('mouseover', this._onMouseOver, {\n passive: true\n });\n if (this._isSelectOneElement) {\n this.containerOuter.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.containerOuter.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n }\n this.input.element.addEventListener('keyup', this._onKeyUp, {\n passive: true\n });\n this.input.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.input.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n if (this.input.element.form) {\n this.input.element.form.addEventListener('reset', this._onFormReset, {\n passive: true\n });\n }\n this.input.addEventListeners();\n };\n Choices.prototype._removeEventListeners = function () {\n var documentElement = document.documentElement;\n documentElement.removeEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.removeEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.removeEventListener('mousedown', this._onMouseDown, true);\n documentElement.removeEventListener('click', this._onClick);\n documentElement.removeEventListener('touchmove', this._onTouchMove);\n this.dropdown.element.removeEventListener('mouseover', this._onMouseOver);\n if (this._isSelectOneElement) {\n this.containerOuter.element.removeEventListener('focus', this._onFocus);\n this.containerOuter.element.removeEventListener('blur', this._onBlur);\n }\n this.input.element.removeEventListener('keyup', this._onKeyUp);\n this.input.element.removeEventListener('focus', this._onFocus);\n this.input.element.removeEventListener('blur', this._onBlur);\n if (this.input.element.form) {\n this.input.element.form.removeEventListener('reset', this._onFormReset);\n }\n this.input.removeEventListeners();\n };\n Choices.prototype._onKeyDown = function (event) {\n var keyCode = event.keyCode;\n var activeItems = this._store.activeItems;\n var hasFocusedInput = this.input.isFocussed;\n var hasActiveDropdown = this.dropdown.isActive;\n var hasItems = this.itemList.hasChildren();\n var keyString = String.fromCharCode(keyCode);\n // eslint-disable-next-line no-control-regex\n var wasPrintableChar = /[^\\x00-\\x1F]/.test(keyString);\n var BACK_KEY = constants_1.KEY_CODES.BACK_KEY,\n DELETE_KEY = constants_1.KEY_CODES.DELETE_KEY,\n ENTER_KEY = constants_1.KEY_CODES.ENTER_KEY,\n A_KEY = constants_1.KEY_CODES.A_KEY,\n ESC_KEY = constants_1.KEY_CODES.ESC_KEY,\n UP_KEY = constants_1.KEY_CODES.UP_KEY,\n DOWN_KEY = constants_1.KEY_CODES.DOWN_KEY,\n PAGE_UP_KEY = constants_1.KEY_CODES.PAGE_UP_KEY,\n PAGE_DOWN_KEY = constants_1.KEY_CODES.PAGE_DOWN_KEY;\n if (!this._isTextElement && !hasActiveDropdown && wasPrintableChar) {\n this.showDropdown();\n if (!this.input.isFocussed) {\n /*\n We update the input value with the pressed key as\n the input was not focussed at the time of key press\n therefore does not have the value of the key.\n */\n this.input.value += event.key.toLowerCase();\n }\n }\n switch (keyCode) {\n case A_KEY:\n return this._onSelectKey(event, hasItems);\n case ENTER_KEY:\n return this._onEnterKey(event, activeItems, hasActiveDropdown);\n case ESC_KEY:\n return this._onEscapeKey(hasActiveDropdown);\n case UP_KEY:\n case PAGE_UP_KEY:\n case DOWN_KEY:\n case PAGE_DOWN_KEY:\n return this._onDirectionKey(event, hasActiveDropdown);\n case DELETE_KEY:\n case BACK_KEY:\n return this._onDeleteKey(event, activeItems, hasFocusedInput);\n default:\n }\n };\n Choices.prototype._onKeyUp = function (_a) {\n var target = _a.target,\n keyCode = _a.keyCode;\n var value = this.input.value;\n var activeItems = this._store.activeItems;\n var canAddItem = this._canAddItem(activeItems, value);\n var backKey = constants_1.KEY_CODES.BACK_KEY,\n deleteKey = constants_1.KEY_CODES.DELETE_KEY;\n // We are typing into a text input and have a value, we want to show a dropdown\n // notice. Otherwise hide the dropdown\n if (this._isTextElement) {\n var canShowDropdownNotice = canAddItem.notice && value;\n if (canShowDropdownNotice) {\n var dropdownItem = this._getTemplate('notice', canAddItem.notice);\n this.dropdown.element.innerHTML = dropdownItem.outerHTML;\n this.showDropdown(true);\n } else {\n this.hideDropdown(true);\n }\n } else {\n var wasRemovalKeyCode = keyCode === backKey || keyCode === deleteKey;\n var userHasRemovedValue = wasRemovalKeyCode && target && !target.value;\n var canReactivateChoices = !this._isTextElement && this._isSearching;\n var canSearch = this._canSearch && canAddItem.response;\n if (userHasRemovedValue && canReactivateChoices) {\n this._isSearching = false;\n this._store.dispatch((0, choices_1.activateChoices)(true));\n } else if (canSearch) {\n this._handleSearch(this.input.rawValue);\n }\n }\n this._canSearch = this.config.searchEnabled;\n };\n Choices.prototype._onSelectKey = function (event, hasItems) {\n var ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n var hasCtrlDownKeyPressed = ctrlKey || metaKey;\n // If CTRL + A or CMD + A have been pressed and there are items to select\n if (hasCtrlDownKeyPressed && hasItems) {\n this._canSearch = false;\n var shouldHightlightAll = this.config.removeItems && !this.input.value && this.input.element === document.activeElement;\n if (shouldHightlightAll) {\n this.highlightAll();\n }\n }\n };\n Choices.prototype._onEnterKey = function (event, activeItems, hasActiveDropdown) {\n var target = event.target;\n var enterKey = constants_1.KEY_CODES.ENTER_KEY;\n var targetWasButton = target && target.hasAttribute('data-button');\n if (this._isTextElement && target && target.value) {\n var value = this.input.value;\n var canAddItem = this._canAddItem(activeItems, value);\n if (canAddItem.response) {\n this.hideDropdown(true);\n this._addItem({\n value: value\n });\n this._triggerChange(value);\n this.clearInput();\n }\n }\n if (targetWasButton) {\n this._handleButtonAction(activeItems, target);\n event.preventDefault();\n }\n if (hasActiveDropdown) {\n var highlightedChoice = this.dropdown.getChild(\".\".concat(this.config.classNames.highlightedState));\n if (highlightedChoice) {\n // add enter keyCode value\n if (activeItems[0]) {\n activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign\n }\n\n this._handleChoiceAction(activeItems, highlightedChoice);\n }\n event.preventDefault();\n } else if (this._isSelectOneElement) {\n this.showDropdown();\n event.preventDefault();\n }\n };\n Choices.prototype._onEscapeKey = function (hasActiveDropdown) {\n if (hasActiveDropdown) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n };\n Choices.prototype._onDirectionKey = function (event, hasActiveDropdown) {\n var keyCode = event.keyCode,\n metaKey = event.metaKey;\n var downKey = constants_1.KEY_CODES.DOWN_KEY,\n pageUpKey = constants_1.KEY_CODES.PAGE_UP_KEY,\n pageDownKey = constants_1.KEY_CODES.PAGE_DOWN_KEY;\n // If up or down key is pressed, traverse through options\n if (hasActiveDropdown || this._isSelectOneElement) {\n this.showDropdown();\n this._canSearch = false;\n var directionInt = keyCode === downKey || keyCode === pageDownKey ? 1 : -1;\n var skipKey = metaKey || keyCode === pageDownKey || keyCode === pageUpKey;\n var selectableChoiceIdentifier = '[data-choice-selectable]';\n var nextEl = void 0;\n if (skipKey) {\n if (directionInt > 0) {\n nextEl = this.dropdown.element.querySelector(\"\".concat(selectableChoiceIdentifier, \":last-of-type\"));\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n } else {\n var currentEl = this.dropdown.element.querySelector(\".\".concat(this.config.classNames.highlightedState));\n if (currentEl) {\n nextEl = (0, utils_1.getAdjacentEl)(currentEl, selectableChoiceIdentifier, directionInt);\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n }\n if (nextEl) {\n // We prevent default to stop the cursor moving\n // when pressing the arrow\n if (!(0, utils_1.isScrolledIntoView)(nextEl, this.choiceList.element, directionInt)) {\n this.choiceList.scrollToChildElement(nextEl, directionInt);\n }\n this._highlightChoice(nextEl);\n }\n // Prevent default to maintain cursor position whilst\n // traversing dropdown options\n event.preventDefault();\n }\n };\n Choices.prototype._onDeleteKey = function (event, activeItems, hasFocusedInput) {\n var target = event.target;\n // If backspace or delete key is pressed and the input has no value\n if (!this._isSelectOneElement && !target.value && hasFocusedInput) {\n this._handleBackspace(activeItems);\n event.preventDefault();\n }\n };\n Choices.prototype._onTouchMove = function () {\n if (this._wasTap) {\n this._wasTap = false;\n }\n };\n Choices.prototype._onTouchEnd = function (event) {\n var target = (event || event.touches[0]).target;\n var touchWasWithinContainer = this._wasTap && this.containerOuter.element.contains(target);\n if (touchWasWithinContainer) {\n var containerWasExactTarget = target === this.containerOuter.element || target === this.containerInner.element;\n if (containerWasExactTarget) {\n if (this._isTextElement) {\n this.input.focus();\n } else if (this._isSelectMultipleElement) {\n this.showDropdown();\n }\n }\n // Prevents focus event firing\n event.stopPropagation();\n }\n this._wasTap = true;\n };\n /**\n * Handles mousedown event in capture mode for containetOuter.element\n */\n Choices.prototype._onMouseDown = function (event) {\n var target = event.target;\n if (!(target instanceof HTMLElement)) {\n return;\n }\n // If we have our mouse down on the scrollbar and are on IE11...\n if (IS_IE11 && this.choiceList.element.contains(target)) {\n // check if click was on a scrollbar area\n var firstChoice = this.choiceList.element.firstElementChild;\n var isOnScrollbar = this._direction === 'ltr' ? event.offsetX >= firstChoice.offsetWidth : event.offsetX < firstChoice.offsetLeft;\n this._isScrollingOnIe = isOnScrollbar;\n }\n if (target === this.input.element) {\n return;\n }\n var item = target.closest('[data-button],[data-item],[data-choice]');\n if (item instanceof HTMLElement) {\n var hasShiftKey = event.shiftKey;\n var activeItems = this._store.activeItems;\n var dataset = item.dataset;\n if ('button' in dataset) {\n this._handleButtonAction(activeItems, item);\n } else if ('item' in dataset) {\n this._handleItemAction(activeItems, item, hasShiftKey);\n } else if ('choice' in dataset) {\n this._handleChoiceAction(activeItems, item);\n }\n }\n event.preventDefault();\n };\n /**\n * Handles mouseover event over this.dropdown\n * @param {MouseEvent} event\n */\n Choices.prototype._onMouseOver = function (_a) {\n var target = _a.target;\n if (target instanceof HTMLElement && 'choice' in target.dataset) {\n this._highlightChoice(target);\n }\n };\n Choices.prototype._onClick = function (_a) {\n var target = _a.target;\n var clickWasWithinContainer = this.containerOuter.element.contains(target);\n if (clickWasWithinContainer) {\n if (!this.dropdown.isActive && !this.containerOuter.isDisabled) {\n if (this._isTextElement) {\n if (document.activeElement !== this.input.element) {\n this.input.focus();\n }\n } else {\n this.showDropdown();\n this.containerOuter.focus();\n }\n } else if (this._isSelectOneElement && target !== this.input.element && !this.dropdown.element.contains(target)) {\n this.hideDropdown();\n }\n } else {\n var hasHighlightedItems = this._store.highlightedActiveItems.length > 0;\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n this.containerOuter.removeFocusState();\n this.hideDropdown(true);\n }\n };\n Choices.prototype._onFocus = function (_a) {\n var _b;\n var _this = this;\n var target = _a.target;\n var focusWasWithinContainer = target && this.containerOuter.element.contains(target);\n if (!focusWasWithinContainer) {\n return;\n }\n var focusActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.addFocusState();\n }\n }, _b[constants_1.SELECT_ONE_TYPE] = function () {\n _this.containerOuter.addFocusState();\n if (target === _this.input.element) {\n _this.showDropdown(true);\n }\n }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this.input.element) {\n _this.showDropdown(true);\n // If element is a select box, the focused element is the container and the dropdown\n // isn't already open, focus and show dropdown\n _this.containerOuter.addFocusState();\n }\n }, _b);\n focusActions[this.passedElement.element.type]();\n };\n Choices.prototype._onBlur = function (_a) {\n var _b;\n var _this = this;\n var target = _a.target;\n var blurWasWithinContainer = target && this.containerOuter.element.contains(target);\n if (blurWasWithinContainer && !this._isScrollingOnIe) {\n var activeItems = this._store.activeItems;\n var hasHighlightedItems_1 = activeItems.some(function (item) {\n return item.highlighted;\n });\n var blurActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.removeFocusState();\n if (hasHighlightedItems_1) {\n _this.unhighlightAll();\n }\n _this.hideDropdown(true);\n }\n }, _b[constants_1.SELECT_ONE_TYPE] = function () {\n _this.containerOuter.removeFocusState();\n if (target === _this.input.element || target === _this.containerOuter.element && !_this._canSearch) {\n _this.hideDropdown(true);\n }\n }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () {\n if (target === _this.input.element) {\n _this.containerOuter.removeFocusState();\n _this.hideDropdown(true);\n if (hasHighlightedItems_1) {\n _this.unhighlightAll();\n }\n }\n }, _b);\n blurActions[this.passedElement.element.type]();\n } else {\n // On IE11, clicking the scollbar blurs our input and thus\n // closes the dropdown. To stop this, we refocus our input\n // if we know we are on IE *and* are scrolling.\n this._isScrollingOnIe = false;\n this.input.element.focus();\n }\n };\n Choices.prototype._onFormReset = function () {\n this._store.dispatch((0, misc_1.resetTo)(this._initialState));\n };\n Choices.prototype._highlightChoice = function (el) {\n var _this = this;\n if (el === void 0) {\n el = null;\n }\n var choices = Array.from(this.dropdown.element.querySelectorAll('[data-choice-selectable]'));\n if (!choices.length) {\n return;\n }\n var passedEl = el;\n var highlightedChoices = Array.from(this.dropdown.element.querySelectorAll(\".\".concat(this.config.classNames.highlightedState)));\n // Remove any highlighted choices\n highlightedChoices.forEach(function (choice) {\n choice.classList.remove(_this.config.classNames.highlightedState);\n choice.setAttribute('aria-selected', 'false');\n });\n if (passedEl) {\n this._highlightPosition = choices.indexOf(passedEl);\n } else {\n // Highlight choice based on last known highlight location\n if (choices.length > this._highlightPosition) {\n // If we have an option to highlight\n passedEl = choices[this._highlightPosition];\n } else {\n // Otherwise highlight the option before\n passedEl = choices[choices.length - 1];\n }\n if (!passedEl) {\n passedEl = choices[0];\n }\n }\n passedEl.classList.add(this.config.classNames.highlightedState);\n passedEl.setAttribute('aria-selected', 'true');\n this.passedElement.triggerEvent(constants_1.EVENTS.highlightChoice, {\n el: passedEl\n });\n if (this.dropdown.isActive) {\n // IE11 ignores aria-label and blocks virtual keyboard\n // if aria-activedescendant is set without a dropdown\n this.input.setActiveDescendant(passedEl.id);\n this.containerOuter.setActiveDescendant(passedEl.id);\n }\n };\n Choices.prototype._addItem = function (_a) {\n var value = _a.value,\n _b = _a.label,\n label = _b === void 0 ? null : _b,\n _c = _a.choiceId,\n choiceId = _c === void 0 ? -1 : _c,\n _d = _a.groupId,\n groupId = _d === void 0 ? -1 : _d,\n _e = _a.customProperties,\n customProperties = _e === void 0 ? {} : _e,\n _f = _a.placeholder,\n placeholder = _f === void 0 ? false : _f,\n _g = _a.keyCode,\n keyCode = _g === void 0 ? -1 : _g;\n var passedValue = typeof value === 'string' ? value.trim() : value;\n var items = this._store.items;\n var passedLabel = label || passedValue;\n var passedOptionId = choiceId || -1;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n var id = items ? items.length + 1 : 1;\n // If a prepended value has been passed, prepend it\n if (this.config.prependValue) {\n passedValue = this.config.prependValue + passedValue.toString();\n }\n // If an appended value has been passed, append it\n if (this.config.appendValue) {\n passedValue += this.config.appendValue.toString();\n }\n this._store.dispatch((0, items_1.addItem)({\n value: passedValue,\n label: passedLabel,\n id: id,\n choiceId: passedOptionId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n if (this._isSelectOneElement) {\n this.removeActiveItems(id);\n }\n // Trigger change event\n this.passedElement.triggerEvent(constants_1.EVENTS.addItem, {\n id: id,\n value: passedValue,\n label: passedLabel,\n customProperties: customProperties,\n groupValue: group && group.value ? group.value : null,\n keyCode: keyCode\n });\n };\n Choices.prototype._removeItem = function (item) {\n var id = item.id,\n value = item.value,\n label = item.label,\n customProperties = item.customProperties,\n choiceId = item.choiceId,\n groupId = item.groupId;\n var group = groupId && groupId >= 0 ? this._store.getGroupById(groupId) : null;\n if (!id || !choiceId) {\n return;\n }\n this._store.dispatch((0, items_1.removeItem)(id, choiceId));\n this.passedElement.triggerEvent(constants_1.EVENTS.removeItem, {\n id: id,\n value: value,\n label: label,\n customProperties: customProperties,\n groupValue: group && group.value ? group.value : null\n });\n };\n Choices.prototype._addChoice = function (_a) {\n var value = _a.value,\n _b = _a.label,\n label = _b === void 0 ? null : _b,\n _c = _a.isSelected,\n isSelected = _c === void 0 ? false : _c,\n _d = _a.isDisabled,\n isDisabled = _d === void 0 ? false : _d,\n _e = _a.groupId,\n groupId = _e === void 0 ? -1 : _e,\n _f = _a.customProperties,\n customProperties = _f === void 0 ? {} : _f,\n _g = _a.placeholder,\n placeholder = _g === void 0 ? false : _g,\n _h = _a.keyCode,\n keyCode = _h === void 0 ? -1 : _h;\n if (typeof value === 'undefined' || value === null) {\n return;\n }\n // Generate unique id\n var choices = this._store.choices;\n var choiceLabel = label || value;\n var choiceId = choices ? choices.length + 1 : 1;\n var choiceElementId = \"\".concat(this._baseId, \"-\").concat(this._idNames.itemChoice, \"-\").concat(choiceId);\n this._store.dispatch((0, choices_1.addChoice)({\n id: choiceId,\n groupId: groupId,\n elementId: choiceElementId,\n value: value,\n label: choiceLabel,\n disabled: isDisabled,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n if (isSelected) {\n this._addItem({\n value: value,\n label: choiceLabel,\n choiceId: choiceId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n });\n }\n };\n Choices.prototype._addGroup = function (_a) {\n var _this = this;\n var group = _a.group,\n id = _a.id,\n _b = _a.valueKey,\n valueKey = _b === void 0 ? 'value' : _b,\n _c = _a.labelKey,\n labelKey = _c === void 0 ? 'label' : _c;\n var groupChoices = (0, utils_1.isType)('Object', group) ? group.choices : Array.from(group.getElementsByTagName('OPTION'));\n var groupId = id || Math.floor(new Date().valueOf() * Math.random());\n var isDisabled = group.disabled ? group.disabled : false;\n if (groupChoices) {\n this._store.dispatch((0, groups_1.addGroup)({\n value: group.label,\n id: groupId,\n active: true,\n disabled: isDisabled\n }));\n var addGroupChoices = function (choice) {\n var isOptDisabled = choice.disabled || choice.parentNode && choice.parentNode.disabled;\n _this._addChoice({\n value: choice[valueKey],\n label: (0, utils_1.isType)('Object', choice) ? choice[labelKey] : choice.innerHTML,\n isSelected: choice.selected,\n isDisabled: isOptDisabled,\n groupId: groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder\n });\n };\n groupChoices.forEach(addGroupChoices);\n } else {\n this._store.dispatch((0, groups_1.addGroup)({\n value: group.label,\n id: group.id,\n active: false,\n disabled: group.disabled\n }));\n }\n };\n Choices.prototype._getTemplate = function (template) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return (_a = this._templates[template]).call.apply(_a, __spreadArray([this, this.config], args, false));\n };\n Choices.prototype._createTemplates = function () {\n var callbackOnCreateTemplates = this.config.callbackOnCreateTemplates;\n var userTemplates = {};\n if (callbackOnCreateTemplates && typeof callbackOnCreateTemplates === 'function') {\n userTemplates = callbackOnCreateTemplates.call(this, utils_1.strToEl);\n }\n this._templates = (0, deepmerge_1.default)(templates_1.default, userTemplates);\n };\n Choices.prototype._createElements = function () {\n this.containerOuter = new components_1.Container({\n element: this._getTemplate('containerOuter', this._direction, this._isSelectElement, this._isSelectOneElement, this.config.searchEnabled, this.passedElement.element.type, this.config.labelId),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.containerInner = new components_1.Container({\n element: this._getTemplate('containerInner'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.input = new components_1.Input({\n element: this._getTemplate('input', this._placeholderValue),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n preventPaste: !this.config.paste\n });\n this.choiceList = new components_1.List({\n element: this._getTemplate('choiceList', this._isSelectOneElement)\n });\n this.itemList = new components_1.List({\n element: this._getTemplate('itemList', this._isSelectOneElement)\n });\n this.dropdown = new components_1.Dropdown({\n element: this._getTemplate('dropdown'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type\n });\n };\n Choices.prototype._createStructure = function () {\n // Hide original element\n this.passedElement.conceal();\n // Wrap input in container preserving DOM ordering\n this.containerInner.wrap(this.passedElement.element);\n // Wrapper inner container with outer container\n this.containerOuter.wrap(this.containerInner.element);\n if (this._isSelectOneElement) {\n this.input.placeholder = this.config.searchPlaceholderValue || '';\n } else if (this._placeholderValue) {\n this.input.placeholder = this._placeholderValue;\n this.input.setWidth();\n }\n this.containerOuter.element.appendChild(this.containerInner.element);\n this.containerOuter.element.appendChild(this.dropdown.element);\n this.containerInner.element.appendChild(this.itemList.element);\n if (!this._isTextElement) {\n this.dropdown.element.appendChild(this.choiceList.element);\n }\n if (!this._isSelectOneElement) {\n this.containerInner.element.appendChild(this.input.element);\n } else if (this.config.searchEnabled) {\n this.dropdown.element.insertBefore(this.input.element, this.dropdown.element.firstChild);\n }\n if (this._isSelectElement) {\n this._highlightPosition = 0;\n this._isSearching = false;\n this._startLoading();\n if (this._presetGroups.length) {\n this._addPredefinedGroups(this._presetGroups);\n } else {\n this._addPredefinedChoices(this._presetChoices);\n }\n this._stopLoading();\n }\n if (this._isTextElement) {\n this._addPredefinedItems(this._presetItems);\n }\n };\n Choices.prototype._addPredefinedGroups = function (groups) {\n var _this = this;\n // If we have a placeholder option\n var placeholderChoice = this.passedElement.placeholderOption;\n if (placeholderChoice && placeholderChoice.parentNode && placeholderChoice.parentNode.tagName === 'SELECT') {\n this._addChoice({\n value: placeholderChoice.value,\n label: placeholderChoice.innerHTML,\n isSelected: placeholderChoice.selected,\n isDisabled: placeholderChoice.disabled,\n placeholder: true\n });\n }\n groups.forEach(function (group) {\n return _this._addGroup({\n group: group,\n id: group.id || null\n });\n });\n };\n Choices.prototype._addPredefinedChoices = function (choices) {\n var _this = this;\n // If sorting is enabled or the user is searching, filter choices\n if (this.config.shouldSort) {\n choices.sort(this.config.sorter);\n }\n var hasSelectedChoice = choices.some(function (choice) {\n return choice.selected;\n });\n var firstEnabledChoiceIndex = choices.findIndex(function (choice) {\n return choice.disabled === undefined || !choice.disabled;\n });\n choices.forEach(function (choice, index) {\n var _a = choice.value,\n value = _a === void 0 ? '' : _a,\n label = choice.label,\n customProperties = choice.customProperties,\n placeholder = choice.placeholder;\n if (_this._isSelectElement) {\n // If the choice is actually a group\n if (choice.choices) {\n _this._addGroup({\n group: choice,\n id: choice.id || null\n });\n } else {\n /**\n * If there is a selected choice already or the choice is not the first in\n * the array, add each choice normally.\n *\n * Otherwise we pre-select the first enabled choice in the array (\"select-one\" only)\n */\n var shouldPreselect = _this._isSelectOneElement && !hasSelectedChoice && index === firstEnabledChoiceIndex;\n var isSelected = shouldPreselect ? true : choice.selected;\n var isDisabled = choice.disabled;\n _this._addChoice({\n value: value,\n label: label,\n isSelected: !!isSelected,\n isDisabled: !!isDisabled,\n placeholder: !!placeholder,\n customProperties: customProperties\n });\n }\n } else {\n _this._addChoice({\n value: value,\n label: label,\n isSelected: !!choice.selected,\n isDisabled: !!choice.disabled,\n placeholder: !!choice.placeholder,\n customProperties: customProperties\n });\n }\n });\n };\n Choices.prototype._addPredefinedItems = function (items) {\n var _this = this;\n items.forEach(function (item) {\n if (typeof item === 'object' && item.value) {\n _this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n if (typeof item === 'string') {\n _this._addItem({\n value: item\n });\n }\n });\n };\n Choices.prototype._setChoiceOrItem = function (item) {\n var _this = this;\n var itemType = (0, utils_1.getType)(item).toLowerCase();\n var handleType = {\n object: function () {\n if (!item.value) {\n return;\n }\n // If we are dealing with a select input, we need to create an option first\n // that is then selected. For text inputs we can just add items normally.\n if (!_this._isTextElement) {\n _this._addChoice({\n value: item.value,\n label: item.label,\n isSelected: true,\n isDisabled: false,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n } else {\n _this._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n },\n string: function () {\n if (!_this._isTextElement) {\n _this._addChoice({\n value: item,\n label: item,\n isSelected: true,\n isDisabled: false\n });\n } else {\n _this._addItem({\n value: item\n });\n }\n }\n };\n handleType[itemType]();\n };\n Choices.prototype._findAndSelectChoiceByValue = function (value) {\n var _this = this;\n var choices = this._store.choices;\n // Check 'value' property exists and the choice isn't already selected\n var foundChoice = choices.find(function (choice) {\n return _this.config.valueComparer(choice.value, value);\n });\n if (foundChoice && !foundChoice.selected) {\n this._addItem({\n value: foundChoice.value,\n label: foundChoice.label,\n choiceId: foundChoice.id,\n groupId: foundChoice.groupId,\n customProperties: foundChoice.customProperties,\n placeholder: foundChoice.placeholder,\n keyCode: foundChoice.keyCode\n });\n }\n };\n Choices.prototype._generatePlaceholderValue = function () {\n if (this._isSelectElement && this.passedElement.placeholderOption) {\n var placeholderOption = this.passedElement.placeholderOption;\n return placeholderOption ? placeholderOption.text : null;\n }\n var _a = this.config,\n placeholder = _a.placeholder,\n placeholderValue = _a.placeholderValue;\n var dataset = this.passedElement.element.dataset;\n if (placeholder) {\n if (placeholderValue) {\n return placeholderValue;\n }\n if (dataset.placeholder) {\n return dataset.placeholder;\n }\n }\n return null;\n };\n return Choices;\n}();\nexports[\"default\"] = Choices;\n\n/***/ }),\n\n/***/ 613:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar utils_1 = __webpack_require__(799);\nvar constants_1 = __webpack_require__(883);\nvar Container = /** @class */function () {\n function Container(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames,\n position = _a.position;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.position = position;\n this.isOpen = false;\n this.isFlipped = false;\n this.isFocussed = false;\n this.isDisabled = false;\n this.isLoading = false;\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n Container.prototype.addEventListeners = function () {\n this.element.addEventListener('focus', this._onFocus);\n this.element.addEventListener('blur', this._onBlur);\n };\n Container.prototype.removeEventListeners = function () {\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n };\n /**\n * Determine whether container should be flipped based on passed\n * dropdown position\n */\n Container.prototype.shouldFlip = function (dropdownPos) {\n if (typeof dropdownPos !== 'number') {\n return false;\n }\n // If flip is enabled and the dropdown bottom position is\n // greater than the window height flip the dropdown.\n var shouldFlip = false;\n if (this.position === 'auto') {\n shouldFlip = !window.matchMedia(\"(min-height: \".concat(dropdownPos + 1, \"px)\")).matches;\n } else if (this.position === 'top') {\n shouldFlip = true;\n }\n return shouldFlip;\n };\n Container.prototype.setActiveDescendant = function (activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n Container.prototype.removeActiveDescendant = function () {\n this.element.removeAttribute('aria-activedescendant');\n };\n Container.prototype.open = function (dropdownPos) {\n this.element.classList.add(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isOpen = true;\n if (this.shouldFlip(dropdownPos)) {\n this.element.classList.add(this.classNames.flippedState);\n this.isFlipped = true;\n }\n };\n Container.prototype.close = function () {\n this.element.classList.remove(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'false');\n this.removeActiveDescendant();\n this.isOpen = false;\n // A dropdown flips if it does not have space within the page\n if (this.isFlipped) {\n this.element.classList.remove(this.classNames.flippedState);\n this.isFlipped = false;\n }\n };\n Container.prototype.focus = function () {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n Container.prototype.addFocusState = function () {\n this.element.classList.add(this.classNames.focusState);\n };\n Container.prototype.removeFocusState = function () {\n this.element.classList.remove(this.classNames.focusState);\n };\n Container.prototype.enable = function () {\n this.element.classList.remove(this.classNames.disabledState);\n this.element.removeAttribute('aria-disabled');\n if (this.type === constants_1.SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '0');\n }\n this.isDisabled = false;\n };\n Container.prototype.disable = function () {\n this.element.classList.add(this.classNames.disabledState);\n this.element.setAttribute('aria-disabled', 'true');\n if (this.type === constants_1.SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '-1');\n }\n this.isDisabled = true;\n };\n Container.prototype.wrap = function (element) {\n (0, utils_1.wrap)(element, this.element);\n };\n Container.prototype.unwrap = function (element) {\n if (this.element.parentNode) {\n // Move passed element outside this element\n this.element.parentNode.insertBefore(element, this.element);\n // Remove this element\n this.element.parentNode.removeChild(this.element);\n }\n };\n Container.prototype.addLoadingState = function () {\n this.element.classList.add(this.classNames.loadingState);\n this.element.setAttribute('aria-busy', 'true');\n this.isLoading = true;\n };\n Container.prototype.removeLoadingState = function () {\n this.element.classList.remove(this.classNames.loadingState);\n this.element.removeAttribute('aria-busy');\n this.isLoading = false;\n };\n Container.prototype._onFocus = function () {\n this.isFocussed = true;\n };\n Container.prototype._onBlur = function () {\n this.isFocussed = false;\n };\n return Container;\n}();\nexports[\"default\"] = Container;\n\n/***/ }),\n\n/***/ 217:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar Dropdown = /** @class */function () {\n function Dropdown(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames;\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.isActive = false;\n }\n Object.defineProperty(Dropdown.prototype, \"distanceFromTopWindow\", {\n /**\n * Bottom position of dropdown in viewport coordinates\n */\n get: function () {\n return this.element.getBoundingClientRect().bottom;\n },\n enumerable: false,\n configurable: true\n });\n Dropdown.prototype.getChild = function (selector) {\n return this.element.querySelector(selector);\n };\n /**\n * Show dropdown to user by adding active state class\n */\n Dropdown.prototype.show = function () {\n this.element.classList.add(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isActive = true;\n return this;\n };\n /**\n * Hide dropdown from user\n */\n Dropdown.prototype.hide = function () {\n this.element.classList.remove(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'false');\n this.isActive = false;\n return this;\n };\n return Dropdown;\n}();\nexports[\"default\"] = Dropdown;\n\n/***/ }),\n\n/***/ 520:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.WrappedSelect = exports.WrappedInput = exports.List = exports.Input = exports.Container = exports.Dropdown = void 0;\nvar dropdown_1 = __importDefault(__webpack_require__(217));\nexports.Dropdown = dropdown_1.default;\nvar container_1 = __importDefault(__webpack_require__(613));\nexports.Container = container_1.default;\nvar input_1 = __importDefault(__webpack_require__(11));\nexports.Input = input_1.default;\nvar list_1 = __importDefault(__webpack_require__(624));\nexports.List = list_1.default;\nvar wrapped_input_1 = __importDefault(__webpack_require__(541));\nexports.WrappedInput = wrapped_input_1.default;\nvar wrapped_select_1 = __importDefault(__webpack_require__(982));\nexports.WrappedSelect = wrapped_select_1.default;\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar utils_1 = __webpack_require__(799);\nvar constants_1 = __webpack_require__(883);\nvar Input = /** @class */function () {\n function Input(_a) {\n var element = _a.element,\n type = _a.type,\n classNames = _a.classNames,\n preventPaste = _a.preventPaste;\n this.element = element;\n this.type = type;\n this.classNames = classNames;\n this.preventPaste = preventPaste;\n this.isFocussed = this.element.isEqualNode(document.activeElement);\n this.isDisabled = element.disabled;\n this._onPaste = this._onPaste.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n Object.defineProperty(Input.prototype, \"placeholder\", {\n set: function (placeholder) {\n this.element.placeholder = placeholder;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"value\", {\n get: function () {\n return (0, utils_1.sanitise)(this.element.value);\n },\n set: function (value) {\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"rawValue\", {\n get: function () {\n return this.element.value;\n },\n enumerable: false,\n configurable: true\n });\n Input.prototype.addEventListeners = function () {\n this.element.addEventListener('paste', this._onPaste);\n this.element.addEventListener('input', this._onInput, {\n passive: true\n });\n this.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n };\n Input.prototype.removeEventListeners = function () {\n this.element.removeEventListener('input', this._onInput);\n this.element.removeEventListener('paste', this._onPaste);\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n };\n Input.prototype.enable = function () {\n this.element.removeAttribute('disabled');\n this.isDisabled = false;\n };\n Input.prototype.disable = function () {\n this.element.setAttribute('disabled', '');\n this.isDisabled = true;\n };\n Input.prototype.focus = function () {\n if (!this.isFocussed) {\n this.element.focus();\n }\n };\n Input.prototype.blur = function () {\n if (this.isFocussed) {\n this.element.blur();\n }\n };\n Input.prototype.clear = function (setWidth) {\n if (setWidth === void 0) {\n setWidth = true;\n }\n if (this.element.value) {\n this.element.value = '';\n }\n if (setWidth) {\n this.setWidth();\n }\n return this;\n };\n /**\n * Set the correct input width based on placeholder\n * value or input value\n */\n Input.prototype.setWidth = function () {\n // Resize input to contents or placeholder\n var _a = this.element,\n style = _a.style,\n value = _a.value,\n placeholder = _a.placeholder;\n style.minWidth = \"\".concat(placeholder.length + 1, \"ch\");\n style.width = \"\".concat(value.length + 1, \"ch\");\n };\n Input.prototype.setActiveDescendant = function (activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n };\n Input.prototype.removeActiveDescendant = function () {\n this.element.removeAttribute('aria-activedescendant');\n };\n Input.prototype._onInput = function () {\n if (this.type !== constants_1.SELECT_ONE_TYPE) {\n this.setWidth();\n }\n };\n Input.prototype._onPaste = function (event) {\n if (this.preventPaste) {\n event.preventDefault();\n }\n };\n Input.prototype._onFocus = function () {\n this.isFocussed = true;\n };\n Input.prototype._onBlur = function () {\n this.isFocussed = false;\n };\n return Input;\n}();\nexports[\"default\"] = Input;\n\n/***/ }),\n\n/***/ 624:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar constants_1 = __webpack_require__(883);\nvar List = /** @class */function () {\n function List(_a) {\n var element = _a.element;\n this.element = element;\n this.scrollPos = this.element.scrollTop;\n this.height = this.element.offsetHeight;\n }\n List.prototype.clear = function () {\n this.element.innerHTML = '';\n };\n List.prototype.append = function (node) {\n this.element.appendChild(node);\n };\n List.prototype.getChild = function (selector) {\n return this.element.querySelector(selector);\n };\n List.prototype.hasChildren = function () {\n return this.element.hasChildNodes();\n };\n List.prototype.scrollToTop = function () {\n this.element.scrollTop = 0;\n };\n List.prototype.scrollToChildElement = function (element, direction) {\n var _this = this;\n if (!element) {\n return;\n }\n var listHeight = this.element.offsetHeight;\n // Scroll position of dropdown\n var listScrollPosition = this.element.scrollTop + listHeight;\n var elementHeight = element.offsetHeight;\n // Distance from bottom of element to top of parent\n var elementPos = element.offsetTop + elementHeight;\n // Difference between the element and scroll position\n var destination = direction > 0 ? this.element.scrollTop + elementPos - listScrollPosition : element.offsetTop;\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n };\n List.prototype._scrollDown = function (scrollPos, strength, destination) {\n var easing = (destination - scrollPos) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos + distance;\n };\n List.prototype._scrollUp = function (scrollPos, strength, destination) {\n var easing = (scrollPos - destination) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos - distance;\n };\n List.prototype._animateScroll = function (destination, direction) {\n var _this = this;\n var strength = constants_1.SCROLLING_SPEED;\n var choiceListScrollTop = this.element.scrollTop;\n var continueAnimation = false;\n if (direction > 0) {\n this._scrollDown(choiceListScrollTop, strength, destination);\n if (choiceListScrollTop < destination) {\n continueAnimation = true;\n }\n } else {\n this._scrollUp(choiceListScrollTop, strength, destination);\n if (choiceListScrollTop > destination) {\n continueAnimation = true;\n }\n }\n if (continueAnimation) {\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n }\n };\n return List;\n}();\nexports[\"default\"] = List;\n\n/***/ }),\n\n/***/ 730:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar utils_1 = __webpack_require__(799);\nvar WrappedElement = /** @class */function () {\n function WrappedElement(_a) {\n var element = _a.element,\n classNames = _a.classNames;\n this.element = element;\n this.classNames = classNames;\n if (!(element instanceof HTMLInputElement) && !(element instanceof HTMLSelectElement)) {\n throw new TypeError('Invalid element passed');\n }\n this.isDisabled = false;\n }\n Object.defineProperty(WrappedElement.prototype, \"isActive\", {\n get: function () {\n return this.element.dataset.choice === 'active';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedElement.prototype, \"dir\", {\n get: function () {\n return this.element.dir;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedElement.prototype, \"value\", {\n get: function () {\n return this.element.value;\n },\n set: function (value) {\n // you must define setter here otherwise it will be readonly property\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n WrappedElement.prototype.conceal = function () {\n // Hide passed input\n this.element.classList.add(this.classNames.input);\n this.element.hidden = true;\n // Remove element from tab index\n this.element.tabIndex = -1;\n // Backup original styles if any\n var origStyle = this.element.getAttribute('style');\n if (origStyle) {\n this.element.setAttribute('data-choice-orig-style', origStyle);\n }\n this.element.setAttribute('data-choice', 'active');\n };\n WrappedElement.prototype.reveal = function () {\n // Reinstate passed element\n this.element.classList.remove(this.classNames.input);\n this.element.hidden = false;\n this.element.removeAttribute('tabindex');\n // Recover original styles if any\n var origStyle = this.element.getAttribute('data-choice-orig-style');\n if (origStyle) {\n this.element.removeAttribute('data-choice-orig-style');\n this.element.setAttribute('style', origStyle);\n } else {\n this.element.removeAttribute('style');\n }\n this.element.removeAttribute('data-choice');\n // Re-assign values - this is weird, I know\n // @todo Figure out why we need to do this\n this.element.value = this.element.value; // eslint-disable-line no-self-assign\n };\n\n WrappedElement.prototype.enable = function () {\n this.element.removeAttribute('disabled');\n this.element.disabled = false;\n this.isDisabled = false;\n };\n WrappedElement.prototype.disable = function () {\n this.element.setAttribute('disabled', '');\n this.element.disabled = true;\n this.isDisabled = true;\n };\n WrappedElement.prototype.triggerEvent = function (eventType, data) {\n (0, utils_1.dispatchEvent)(this.element, eventType, data);\n };\n return WrappedElement;\n}();\nexports[\"default\"] = WrappedElement;\n\n/***/ }),\n\n/***/ 541:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar wrapped_element_1 = __importDefault(__webpack_require__(730));\nvar WrappedInput = /** @class */function (_super) {\n __extends(WrappedInput, _super);\n function WrappedInput(_a) {\n var element = _a.element,\n classNames = _a.classNames,\n delimiter = _a.delimiter;\n var _this = _super.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n _this.delimiter = delimiter;\n return _this;\n }\n Object.defineProperty(WrappedInput.prototype, \"value\", {\n get: function () {\n return this.element.value;\n },\n set: function (value) {\n this.element.setAttribute('value', value);\n this.element.value = value;\n },\n enumerable: false,\n configurable: true\n });\n return WrappedInput;\n}(wrapped_element_1.default);\nexports[\"default\"] = WrappedInput;\n\n/***/ }),\n\n/***/ 982:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar wrapped_element_1 = __importDefault(__webpack_require__(730));\nvar WrappedSelect = /** @class */function (_super) {\n __extends(WrappedSelect, _super);\n function WrappedSelect(_a) {\n var element = _a.element,\n classNames = _a.classNames,\n template = _a.template;\n var _this = _super.call(this, {\n element: element,\n classNames: classNames\n }) || this;\n _this.template = template;\n return _this;\n }\n Object.defineProperty(WrappedSelect.prototype, \"placeholderOption\", {\n get: function () {\n return this.element.querySelector('option[value=\"\"]') ||\n // Backward compatibility layer for the non-standard placeholder attribute supported in older versions.\n this.element.querySelector('option[placeholder]');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedSelect.prototype, \"optionGroups\", {\n get: function () {\n return Array.from(this.element.getElementsByTagName('OPTGROUP'));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WrappedSelect.prototype, \"options\", {\n get: function () {\n return Array.from(this.element.options);\n },\n set: function (options) {\n var _this = this;\n var fragment = document.createDocumentFragment();\n var addOptionToFragment = function (data) {\n // Create a standard select option\n var option = _this.template(data);\n // Append it to fragment\n fragment.appendChild(option);\n };\n // Add each list item to list\n options.forEach(function (optionData) {\n return addOptionToFragment(optionData);\n });\n this.appendDocFragment(fragment);\n },\n enumerable: false,\n configurable: true\n });\n WrappedSelect.prototype.appendDocFragment = function (fragment) {\n this.element.innerHTML = '';\n this.element.appendChild(fragment);\n };\n return WrappedSelect;\n}(wrapped_element_1.default);\nexports[\"default\"] = WrappedSelect;\n\n/***/ }),\n\n/***/ 883:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SCROLLING_SPEED = exports.SELECT_MULTIPLE_TYPE = exports.SELECT_ONE_TYPE = exports.TEXT_TYPE = exports.KEY_CODES = exports.ACTION_TYPES = exports.EVENTS = void 0;\nexports.EVENTS = {\n showDropdown: 'showDropdown',\n hideDropdown: 'hideDropdown',\n change: 'change',\n choice: 'choice',\n search: 'search',\n addItem: 'addItem',\n removeItem: 'removeItem',\n highlightItem: 'highlightItem',\n highlightChoice: 'highlightChoice',\n unhighlightItem: 'unhighlightItem'\n};\nexports.ACTION_TYPES = {\n ADD_CHOICE: 'ADD_CHOICE',\n FILTER_CHOICES: 'FILTER_CHOICES',\n ACTIVATE_CHOICES: 'ACTIVATE_CHOICES',\n CLEAR_CHOICES: 'CLEAR_CHOICES',\n ADD_GROUP: 'ADD_GROUP',\n ADD_ITEM: 'ADD_ITEM',\n REMOVE_ITEM: 'REMOVE_ITEM',\n HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM',\n CLEAR_ALL: 'CLEAR_ALL',\n RESET_TO: 'RESET_TO',\n SET_IS_LOADING: 'SET_IS_LOADING'\n};\nexports.KEY_CODES = {\n BACK_KEY: 46,\n DELETE_KEY: 8,\n ENTER_KEY: 13,\n A_KEY: 65,\n ESC_KEY: 27,\n UP_KEY: 38,\n DOWN_KEY: 40,\n PAGE_UP_KEY: 33,\n PAGE_DOWN_KEY: 34\n};\nexports.TEXT_TYPE = 'text';\nexports.SELECT_ONE_TYPE = 'select-one';\nexports.SELECT_MULTIPLE_TYPE = 'select-multiple';\nexports.SCROLLING_SPEED = 4;\n\n/***/ }),\n\n/***/ 789:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.DEFAULT_CONFIG = exports.DEFAULT_CLASSNAMES = void 0;\nvar utils_1 = __webpack_require__(799);\nexports.DEFAULT_CLASSNAMES = {\n containerOuter: 'choices',\n containerInner: 'choices__inner',\n input: 'choices__input',\n inputCloned: 'choices__input--cloned',\n list: 'choices__list',\n listItems: 'choices__list--multiple',\n listSingle: 'choices__list--single',\n listDropdown: 'choices__list--dropdown',\n item: 'choices__item',\n itemSelectable: 'choices__item--selectable',\n itemDisabled: 'choices__item--disabled',\n itemChoice: 'choices__item--choice',\n placeholder: 'choices__placeholder',\n group: 'choices__group',\n groupHeading: 'choices__heading',\n button: 'choices__button',\n activeState: 'is-active',\n focusState: 'is-focused',\n openState: 'is-open',\n disabledState: 'is-disabled',\n highlightedState: 'is-highlighted',\n selectedState: 'is-selected',\n flippedState: 'is-flipped',\n loadingState: 'is-loading',\n noResults: 'has-no-results',\n noChoices: 'has-no-choices'\n};\nexports.DEFAULT_CONFIG = {\n items: [],\n choices: [],\n silent: false,\n renderChoiceLimit: -1,\n maxItemCount: -1,\n addItems: true,\n addItemFilter: null,\n removeItems: true,\n removeItemButton: false,\n editItems: false,\n allowHTML: true,\n duplicateItemsAllowed: true,\n delimiter: ',',\n paste: true,\n searchEnabled: true,\n searchChoices: true,\n searchFloor: 1,\n searchResultLimit: 4,\n searchFields: ['label', 'value'],\n position: 'auto',\n resetScrollPosition: true,\n shouldSort: true,\n shouldSortItems: false,\n sorter: utils_1.sortByAlpha,\n placeholder: true,\n placeholderValue: null,\n searchPlaceholderValue: null,\n prependValue: null,\n appendValue: null,\n renderSelectedChoices: 'auto',\n loadingText: 'Loading...',\n noResultsText: 'No results found',\n noChoicesText: 'No choices to choose from',\n itemSelectText: 'Press to select',\n uniqueItemText: 'Only unique values can be added',\n customAddItemText: 'Only values matching specific conditions can be added',\n addItemText: function (value) {\n return \"Press Enter to add <b>\\\"\".concat((0, utils_1.sanitise)(value), \"\\\"</b>\");\n },\n maxItemText: function (maxItemCount) {\n return \"Only \".concat(maxItemCount, \" values can be added\");\n },\n valueComparer: function (value1, value2) {\n return value1 === value2;\n },\n fuseOptions: {\n includeScore: true\n },\n labelId: '',\n callbackOnInit: null,\n callbackOnCreateTemplates: null,\n classNames: exports.DEFAULT_CLASSNAMES\n};\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 978:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 948:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 359:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 285:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 533:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 187:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar __exportStar = this && this.__exportStar || function (m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n__exportStar(__webpack_require__(18), exports);\n__exportStar(__webpack_require__(978), exports);\n__exportStar(__webpack_require__(948), exports);\n__exportStar(__webpack_require__(359), exports);\n__exportStar(__webpack_require__(285), exports);\n__exportStar(__webpack_require__(533), exports);\n__exportStar(__webpack_require__(287), exports);\n__exportStar(__webpack_require__(132), exports);\n__exportStar(__webpack_require__(837), exports);\n__exportStar(__webpack_require__(598), exports);\n__exportStar(__webpack_require__(369), exports);\n__exportStar(__webpack_require__(37), exports);\n__exportStar(__webpack_require__(47), exports);\n__exportStar(__webpack_require__(923), exports);\n__exportStar(__webpack_require__(876), exports);\n\n/***/ }),\n\n/***/ 287:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 132:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 837:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 598:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 369:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 47:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 923:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 876:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\n/***/ }),\n\n/***/ 799:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.parseCustomProperties = exports.diff = exports.cloneObject = exports.existsInArray = exports.dispatchEvent = exports.sortByScore = exports.sortByAlpha = exports.strToEl = exports.sanitise = exports.isScrolledIntoView = exports.getAdjacentEl = exports.wrap = exports.isType = exports.getType = exports.generateId = exports.generateChars = exports.getRandomNumber = void 0;\nvar getRandomNumber = function (min, max) {\n return Math.floor(Math.random() * (max - min) + min);\n};\nexports.getRandomNumber = getRandomNumber;\nvar generateChars = function (length) {\n return Array.from({\n length: length\n }, function () {\n return (0, exports.getRandomNumber)(0, 36).toString(36);\n }).join('');\n};\nexports.generateChars = generateChars;\nvar generateId = function (element, prefix) {\n var id = element.id || element.name && \"\".concat(element.name, \"-\").concat((0, exports.generateChars)(2)) || (0, exports.generateChars)(4);\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = \"\".concat(prefix, \"-\").concat(id);\n return id;\n};\nexports.generateId = generateId;\nvar getType = function (obj) {\n return Object.prototype.toString.call(obj).slice(8, -1);\n};\nexports.getType = getType;\nvar isType = function (type, obj) {\n return obj !== undefined && obj !== null && (0, exports.getType)(obj) === type;\n};\nexports.isType = isType;\nvar wrap = function (element, wrapper) {\n if (wrapper === void 0) {\n wrapper = document.createElement('div');\n }\n if (element.parentNode) {\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n }\n return wrapper.appendChild(element);\n};\nexports.wrap = wrap;\nvar getAdjacentEl = function (startEl, selector, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n var prop = \"\".concat(direction > 0 ? 'next' : 'previous', \"ElementSibling\");\n var sibling = startEl[prop];\n while (sibling) {\n if (sibling.matches(selector)) {\n return sibling;\n }\n sibling = sibling[prop];\n }\n return sibling;\n};\nexports.getAdjacentEl = getAdjacentEl;\nvar isScrolledIntoView = function (element, parent, direction) {\n if (direction === void 0) {\n direction = 1;\n }\n if (!element) {\n return false;\n }\n var isVisible;\n if (direction > 0) {\n // In view from bottom\n isVisible = parent.scrollTop + parent.offsetHeight >= element.offsetTop + element.offsetHeight;\n } else {\n // In view from top\n isVisible = element.offsetTop >= parent.scrollTop;\n }\n return isVisible;\n};\nexports.isScrolledIntoView = isScrolledIntoView;\nvar sanitise = function (value) {\n if (typeof value !== 'string') {\n return value;\n }\n return value.replace(/&/g, '&amp;').replace(/>/g, '&gt;').replace(/</g, '&lt;').replace(/\"/g, '&quot;');\n};\nexports.sanitise = sanitise;\nexports.strToEl = function () {\n var tmpEl = document.createElement('div');\n return function (str) {\n var cleanedInput = str.trim();\n tmpEl.innerHTML = cleanedInput;\n var firldChild = tmpEl.children[0];\n while (tmpEl.firstChild) {\n tmpEl.removeChild(tmpEl.firstChild);\n }\n return firldChild;\n };\n}();\nvar sortByAlpha = function (_a, _b) {\n var value = _a.value,\n _c = _a.label,\n label = _c === void 0 ? value : _c;\n var value2 = _b.value,\n _d = _b.label,\n label2 = _d === void 0 ? value2 : _d;\n return label.localeCompare(label2, [], {\n sensitivity: 'base',\n ignorePunctuation: true,\n numeric: true\n });\n};\nexports.sortByAlpha = sortByAlpha;\nvar sortByScore = function (a, b) {\n var _a = a.score,\n scoreA = _a === void 0 ? 0 : _a;\n var _b = b.score,\n scoreB = _b === void 0 ? 0 : _b;\n return scoreA - scoreB;\n};\nexports.sortByScore = sortByScore;\nvar dispatchEvent = function (element, type, customArgs) {\n if (customArgs === void 0) {\n customArgs = null;\n }\n var event = new CustomEvent(type, {\n detail: customArgs,\n bubbles: true,\n cancelable: true\n });\n return element.dispatchEvent(event);\n};\nexports.dispatchEvent = dispatchEvent;\nvar existsInArray = function (array, value, key) {\n if (key === void 0) {\n key = 'value';\n }\n return array.some(function (item) {\n if (typeof value === 'string') {\n return item[key] === value.trim();\n }\n return item[key] === value;\n });\n};\nexports.existsInArray = existsInArray;\nvar cloneObject = function (obj) {\n return JSON.parse(JSON.stringify(obj));\n};\nexports.cloneObject = cloneObject;\n/**\n * Returns an array of keys present on the first but missing on the second object\n */\nvar diff = function (a, b) {\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n return aKeys.filter(function (i) {\n return bKeys.indexOf(i) < 0;\n });\n};\nexports.diff = diff;\nvar parseCustomProperties = function (customProperties) {\n if (typeof customProperties !== 'undefined') {\n try {\n return JSON.parse(customProperties);\n } catch (e) {\n return customProperties;\n }\n }\n return {};\n};\nexports.parseCustomProperties = parseCustomProperties;\n\n/***/ }),\n\n/***/ 273:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\nfunction choices(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n if (action === void 0) {\n action = {};\n }\n switch (action.type) {\n case 'ADD_CHOICE':\n {\n var addChoiceAction = action;\n var choice = {\n id: addChoiceAction.id,\n elementId: addChoiceAction.elementId,\n groupId: addChoiceAction.groupId,\n value: addChoiceAction.value,\n label: addChoiceAction.label || addChoiceAction.value,\n disabled: addChoiceAction.disabled || false,\n selected: false,\n active: true,\n score: 9999,\n customProperties: addChoiceAction.customProperties,\n placeholder: addChoiceAction.placeholder || false\n };\n /*\n A disabled choice appears in the choice dropdown but cannot be selected\n A selected choice has been added to the passed input's value (added as an item)\n An active choice appears within the choice dropdown\n */\n return __spreadArray(__spreadArray([], state, true), [choice], false);\n }\n case 'ADD_ITEM':\n {\n var addItemAction_1 = action;\n // When an item is added and it has an associated choice,\n // we want to disable it so it can't be chosen again\n if (addItemAction_1.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n if (choice.id === parseInt(\"\".concat(addItemAction_1.choiceId), 10)) {\n choice.selected = true;\n }\n return choice;\n });\n }\n return state;\n }\n case 'REMOVE_ITEM':\n {\n var removeItemAction_1 = action;\n // When an item is removed and it has an associated choice,\n // we want to re-enable it so it can be chosen again\n if (removeItemAction_1.choiceId && removeItemAction_1.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n if (choice.id === parseInt(\"\".concat(removeItemAction_1.choiceId), 10)) {\n choice.selected = false;\n }\n return choice;\n });\n }\n return state;\n }\n case 'FILTER_CHOICES':\n {\n var filterChoicesAction_1 = action;\n return state.map(function (obj) {\n var choice = obj;\n // Set active state based on whether choice is\n // within filtered results\n choice.active = filterChoicesAction_1.results.some(function (_a) {\n var item = _a.item,\n score = _a.score;\n if (item.id === choice.id) {\n choice.score = score;\n return true;\n }\n return false;\n });\n return choice;\n });\n }\n case 'ACTIVATE_CHOICES':\n {\n var activateChoicesAction_1 = action;\n return state.map(function (obj) {\n var choice = obj;\n choice.active = activateChoicesAction_1.active;\n return choice;\n });\n }\n case 'CLEAR_CHOICES':\n {\n return exports.defaultState;\n }\n default:\n {\n return state;\n }\n }\n}\nexports[\"default\"] = choices;\n\n/***/ }),\n\n/***/ 871:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\nfunction groups(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n if (action === void 0) {\n action = {};\n }\n switch (action.type) {\n case 'ADD_GROUP':\n {\n var addGroupAction = action;\n return __spreadArray(__spreadArray([], state, true), [{\n id: addGroupAction.id,\n value: addGroupAction.value,\n active: addGroupAction.active,\n disabled: addGroupAction.disabled\n }], false);\n }\n case 'CLEAR_CHOICES':\n {\n return [];\n }\n default:\n {\n return state;\n }\n }\n}\nexports[\"default\"] = groups;\n\n/***/ }),\n\n/***/ 655:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nvar redux_1 = __webpack_require__(791);\nvar items_1 = __importDefault(__webpack_require__(52));\nvar groups_1 = __importDefault(__webpack_require__(871));\nvar choices_1 = __importDefault(__webpack_require__(273));\nvar loading_1 = __importDefault(__webpack_require__(502));\nvar utils_1 = __webpack_require__(799);\nexports.defaultState = {\n groups: [],\n items: [],\n choices: [],\n loading: false\n};\nvar appReducer = (0, redux_1.combineReducers)({\n items: items_1.default,\n groups: groups_1.default,\n choices: choices_1.default,\n loading: loading_1.default\n});\nvar rootReducer = function (passedState, action) {\n var state = passedState;\n // If we are clearing all items, groups and options we reassign\n // state and then pass that state to our proper reducer. This isn't\n // mutating our actual state\n // See: http://stackoverflow.com/a/35641992\n if (action.type === 'CLEAR_ALL') {\n state = exports.defaultState;\n } else if (action.type === 'RESET_TO') {\n return (0, utils_1.cloneObject)(action.state);\n }\n return appReducer(state, action);\n};\nexports[\"default\"] = rootReducer;\n\n/***/ }),\n\n/***/ 52:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = [];\nfunction items(state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n if (action === void 0) {\n action = {};\n }\n switch (action.type) {\n case 'ADD_ITEM':\n {\n var addItemAction = action;\n // Add object to items array\n var newState = __spreadArray(__spreadArray([], state, true), [{\n id: addItemAction.id,\n choiceId: addItemAction.choiceId,\n groupId: addItemAction.groupId,\n value: addItemAction.value,\n label: addItemAction.label,\n active: true,\n highlighted: false,\n customProperties: addItemAction.customProperties,\n placeholder: addItemAction.placeholder || false,\n keyCode: null\n }], false);\n return newState.map(function (obj) {\n var item = obj;\n item.highlighted = false;\n return item;\n });\n }\n case 'REMOVE_ITEM':\n {\n // Set item to inactive\n return state.map(function (obj) {\n var item = obj;\n if (item.id === action.id) {\n item.active = false;\n }\n return item;\n });\n }\n case 'HIGHLIGHT_ITEM':\n {\n var highlightItemAction_1 = action;\n return state.map(function (obj) {\n var item = obj;\n if (item.id === highlightItemAction_1.id) {\n item.highlighted = highlightItemAction_1.highlighted;\n }\n return item;\n });\n }\n default:\n {\n return state;\n }\n }\n}\nexports[\"default\"] = items;\n\n/***/ }),\n\n/***/ 502:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultState = void 0;\nexports.defaultState = false;\nvar general = function (state, action) {\n if (state === void 0) {\n state = exports.defaultState;\n }\n if (action === void 0) {\n action = {};\n }\n switch (action.type) {\n case 'SET_IS_LOADING':\n {\n return action.isLoading;\n }\n default:\n {\n return state;\n }\n }\n};\nexports[\"default\"] = general;\n\n/***/ }),\n\n/***/ 744:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar redux_1 = __webpack_require__(791);\nvar index_1 = __importDefault(__webpack_require__(655));\nvar Store = /** @class */function () {\n function Store() {\n this._store = (0, redux_1.createStore)(index_1.default, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n }\n /**\n * Subscribe store to function call (wrapped Redux method)\n */\n Store.prototype.subscribe = function (onChange) {\n this._store.subscribe(onChange);\n };\n /**\n * Dispatch event to store (wrapped Redux method)\n */\n Store.prototype.dispatch = function (action) {\n this._store.dispatch(action);\n };\n Object.defineProperty(Store.prototype, \"state\", {\n /**\n * Get store object (wrapping Redux method)\n */\n get: function () {\n return this._store.getState();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"items\", {\n /**\n * Get items from store\n */\n get: function () {\n return this.state.items;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeItems\", {\n /**\n * Get active items from store\n */\n get: function () {\n return this.items.filter(function (item) {\n return item.active === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"highlightedActiveItems\", {\n /**\n * Get highlighted items from store\n */\n get: function () {\n return this.items.filter(function (item) {\n return item.active && item.highlighted;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"choices\", {\n /**\n * Get choices from store\n */\n get: function () {\n return this.state.choices;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeChoices\", {\n /**\n * Get active choices from store\n */\n get: function () {\n return this.choices.filter(function (choice) {\n return choice.active === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"selectableChoices\", {\n /**\n * Get selectable choices from store\n */\n get: function () {\n return this.choices.filter(function (choice) {\n return choice.disabled !== true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"searchableChoices\", {\n /**\n * Get choices that can be searched (excluding placeholders)\n */\n get: function () {\n return this.selectableChoices.filter(function (choice) {\n return choice.placeholder !== true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"placeholderChoice\", {\n /**\n * Get placeholder choice from store\n */\n get: function () {\n return __spreadArray([], this.choices, true).reverse().find(function (choice) {\n return choice.placeholder === true;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"groups\", {\n /**\n * Get groups from store\n */\n get: function () {\n return this.state.groups;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Store.prototype, \"activeGroups\", {\n /**\n * Get active groups from store\n */\n get: function () {\n var _a = this,\n groups = _a.groups,\n choices = _a.choices;\n return groups.filter(function (group) {\n var isActive = group.active === true && group.disabled === false;\n var hasActiveOptions = choices.some(function (choice) {\n return choice.active === true && choice.disabled === false;\n });\n return isActive && hasActiveOptions;\n }, []);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Get loading state from store\n */\n Store.prototype.isLoading = function () {\n return this.state.loading;\n };\n /**\n * Get single choice by it's ID\n */\n Store.prototype.getChoiceById = function (id) {\n return this.activeChoices.find(function (choice) {\n return choice.id === parseInt(id, 10);\n });\n };\n /**\n * Get group by group id\n */\n Store.prototype.getGroupById = function (id) {\n return this.groups.find(function (group) {\n return group.id === id;\n });\n };\n return Store;\n}();\nexports[\"default\"] = Store;\n\n/***/ }),\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n\n/**\n * Helpers to create HTML elements used by Choices\n * Can be overridden by providing `callbackOnCreateTemplates` option\n */\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar templates = {\n containerOuter: function (_a, dir, isSelectElement, isSelectOneElement, searchEnabled, passedElementType, labelId) {\n var containerOuter = _a.classNames.containerOuter;\n var div = Object.assign(document.createElement('div'), {\n className: containerOuter\n });\n div.dataset.type = passedElementType;\n if (dir) {\n div.dir = dir;\n }\n if (isSelectOneElement) {\n div.tabIndex = 0;\n }\n if (isSelectElement) {\n div.setAttribute('role', searchEnabled ? 'combobox' : 'listbox');\n if (searchEnabled) {\n div.setAttribute('aria-autocomplete', 'list');\n }\n }\n div.setAttribute('aria-haspopup', 'true');\n div.setAttribute('aria-expanded', 'false');\n if (labelId) {\n div.setAttribute('aria-labelledby', labelId);\n }\n return div;\n },\n containerInner: function (_a) {\n var containerInner = _a.classNames.containerInner;\n return Object.assign(document.createElement('div'), {\n className: containerInner\n });\n },\n itemList: function (_a, isSelectOneElement) {\n var _b = _a.classNames,\n list = _b.list,\n listSingle = _b.listSingle,\n listItems = _b.listItems;\n return Object.assign(document.createElement('div'), {\n className: \"\".concat(list, \" \").concat(isSelectOneElement ? listSingle : listItems)\n });\n },\n placeholder: function (_a, value) {\n var _b;\n var allowHTML = _a.allowHTML,\n placeholder = _a.classNames.placeholder;\n return Object.assign(document.createElement('div'), (_b = {\n className: placeholder\n }, _b[allowHTML ? 'innerHTML' : 'innerText'] = value, _b));\n },\n item: function (_a, _b, removeItemButton) {\n var _c, _d;\n var allowHTML = _a.allowHTML,\n _e = _a.classNames,\n item = _e.item,\n button = _e.button,\n highlightedState = _e.highlightedState,\n itemSelectable = _e.itemSelectable,\n placeholder = _e.placeholder;\n var id = _b.id,\n value = _b.value,\n label = _b.label,\n customProperties = _b.customProperties,\n active = _b.active,\n disabled = _b.disabled,\n highlighted = _b.highlighted,\n isPlaceholder = _b.placeholder;\n var div = Object.assign(document.createElement('div'), (_c = {\n className: item\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c));\n Object.assign(div.dataset, {\n item: '',\n id: id,\n value: value,\n customProperties: customProperties\n });\n if (active) {\n div.setAttribute('aria-selected', 'true');\n }\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n div.classList.add(highlighted ? highlightedState : itemSelectable);\n if (removeItemButton) {\n if (disabled) {\n div.classList.remove(itemSelectable);\n }\n div.dataset.deletable = '';\n /** @todo This MUST be localizable, not hardcoded! */\n var REMOVE_ITEM_TEXT = 'Remove item';\n var removeButton = Object.assign(document.createElement('button'), (_d = {\n type: 'button',\n className: button\n }, _d[allowHTML ? 'innerHTML' : 'innerText'] = REMOVE_ITEM_TEXT, _d));\n removeButton.setAttribute('aria-label', \"\".concat(REMOVE_ITEM_TEXT, \": '\").concat(value, \"'\"));\n removeButton.dataset.button = '';\n div.appendChild(removeButton);\n }\n return div;\n },\n choiceList: function (_a, isSelectOneElement) {\n var list = _a.classNames.list;\n var div = Object.assign(document.createElement('div'), {\n className: list\n });\n if (!isSelectOneElement) {\n div.setAttribute('aria-multiselectable', 'true');\n }\n div.setAttribute('role', 'listbox');\n return div;\n },\n choiceGroup: function (_a, _b) {\n var _c;\n var allowHTML = _a.allowHTML,\n _d = _a.classNames,\n group = _d.group,\n groupHeading = _d.groupHeading,\n itemDisabled = _d.itemDisabled;\n var id = _b.id,\n value = _b.value,\n disabled = _b.disabled;\n var div = Object.assign(document.createElement('div'), {\n className: \"\".concat(group, \" \").concat(disabled ? itemDisabled : '')\n });\n div.setAttribute('role', 'group');\n Object.assign(div.dataset, {\n group: '',\n id: id,\n value: value\n });\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n div.appendChild(Object.assign(document.createElement('div'), (_c = {\n className: groupHeading\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = value, _c)));\n return div;\n },\n choice: function (_a, _b, selectText) {\n var _c;\n var allowHTML = _a.allowHTML,\n _d = _a.classNames,\n item = _d.item,\n itemChoice = _d.itemChoice,\n itemSelectable = _d.itemSelectable,\n selectedState = _d.selectedState,\n itemDisabled = _d.itemDisabled,\n placeholder = _d.placeholder;\n var id = _b.id,\n value = _b.value,\n label = _b.label,\n groupId = _b.groupId,\n elementId = _b.elementId,\n isDisabled = _b.disabled,\n isSelected = _b.selected,\n isPlaceholder = _b.placeholder;\n var div = Object.assign(document.createElement('div'), (_c = {\n id: elementId\n }, _c[allowHTML ? 'innerHTML' : 'innerText'] = label, _c.className = \"\".concat(item, \" \").concat(itemChoice), _c));\n if (isSelected) {\n div.classList.add(selectedState);\n }\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n div.setAttribute('role', groupId && groupId > 0 ? 'treeitem' : 'option');\n Object.assign(div.dataset, {\n choice: '',\n id: id,\n value: value,\n selectText: selectText\n });\n if (isDisabled) {\n div.classList.add(itemDisabled);\n div.dataset.choiceDisabled = '';\n div.setAttribute('aria-disabled', 'true');\n } else {\n div.classList.add(itemSelectable);\n div.dataset.choiceSelectable = '';\n }\n return div;\n },\n input: function (_a, placeholderValue) {\n var _b = _a.classNames,\n input = _b.input,\n inputCloned = _b.inputCloned;\n var inp = Object.assign(document.createElement('input'), {\n type: 'search',\n name: 'search_terms',\n className: \"\".concat(input, \" \").concat(inputCloned),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: false\n });\n inp.setAttribute('role', 'textbox');\n inp.setAttribute('aria-autocomplete', 'list');\n inp.setAttribute('aria-label', placeholderValue);\n return inp;\n },\n dropdown: function (_a) {\n var _b = _a.classNames,\n list = _b.list,\n listDropdown = _b.listDropdown;\n var div = document.createElement('div');\n div.classList.add(list, listDropdown);\n div.setAttribute('aria-expanded', 'false');\n return div;\n },\n notice: function (_a, innerText, type) {\n var _b;\n var allowHTML = _a.allowHTML,\n _c = _a.classNames,\n item = _c.item,\n itemChoice = _c.itemChoice,\n noResults = _c.noResults,\n noChoices = _c.noChoices;\n if (type === void 0) {\n type = '';\n }\n var classes = [item, itemChoice];\n if (type === 'no-choices') {\n classes.push(noChoices);\n } else if (type === 'no-results') {\n classes.push(noResults);\n }\n return Object.assign(document.createElement('div'), (_b = {}, _b[allowHTML ? 'innerHTML' : 'innerText'] = innerText, _b.className = classes.join(' '), _b));\n },\n option: function (_a) {\n var label = _a.label,\n value = _a.value,\n customProperties = _a.customProperties,\n active = _a.active,\n disabled = _a.disabled;\n var opt = new Option(label, value, false, active);\n if (customProperties) {\n opt.dataset.customProperties = \"\".concat(customProperties);\n }\n opt.disabled = !!disabled;\n return opt;\n }\n};\nexports[\"default\"] = templates;\n\n/***/ }),\n\n/***/ 996:\n/***/ (function(module) {\n\n\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n\n\n/***/ }),\n\n/***/ 221:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Fuse; }\n/* harmony export */ });\n/**\n * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2022 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n return !Array.isArray\n ? getTag(value) === '[object Array]'\n : Array.isArray(value)\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\nconst INFINITY = 1 / 0;\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value\n }\n let result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result\n}\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value)\n}\n\nfunction isString(value) {\n return typeof value === 'string'\n}\n\nfunction isNumber(value) {\n return typeof value === 'number'\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n return (\n value === true ||\n value === false ||\n (isObjectLike(value) && getTag(value) == '[object Boolean]')\n )\n}\n\nfunction isObject(value) {\n return typeof value === 'object'\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n return isObject(value) && value !== null\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null\n}\n\nfunction isBlank(value) {\n return !value.trim().length\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n return value == null\n ? value === undefined\n ? '[object Undefined]'\n : '[object Null]'\n : Object.prototype.toString.call(value)\n}\n\nconst EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>\n `Invalid value for key ${key}`;\n\nconst PATTERN_LENGTH_TOO_LARGE = (max) =>\n `Pattern length exceeds max of ${max}.`;\n\nconst MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;\n\nconst INVALID_KEY_WEIGHT_VALUE = (key) =>\n `Property 'weight' in key '${key}' must be a positive integer`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nclass KeyStore {\n constructor(keys) {\n this._keys = [];\n this._keyMap = {};\n\n let totalWeight = 0;\n\n keys.forEach((key) => {\n let obj = createKey(key);\n\n totalWeight += obj.weight;\n\n this._keys.push(obj);\n this._keyMap[obj.id] = obj;\n\n totalWeight += obj.weight;\n });\n\n // Normalize weights so that their sum is equal to 1\n this._keys.forEach((key) => {\n key.weight /= totalWeight;\n });\n }\n get(keyId) {\n return this._keyMap[keyId]\n }\n keys() {\n return this._keys\n }\n toJSON() {\n return JSON.stringify(this._keys)\n }\n}\n\nfunction createKey(key) {\n let path = null;\n let id = null;\n let src = null;\n let weight = 1;\n let getFn = null;\n\n if (isString(key) || isArray(key)) {\n src = key;\n path = createKeyPath(key);\n id = createKeyId(key);\n } else {\n if (!hasOwn.call(key, 'name')) {\n throw new Error(MISSING_KEY_PROPERTY('name'))\n }\n\n const name = key.name;\n src = name;\n\n if (hasOwn.call(key, 'weight')) {\n weight = key.weight;\n\n if (weight <= 0) {\n throw new Error(INVALID_KEY_WEIGHT_VALUE(name))\n }\n }\n\n path = createKeyPath(name);\n id = createKeyId(name);\n getFn = key.getFn;\n }\n\n return { path, id, weight, src, getFn }\n}\n\nfunction createKeyPath(key) {\n return isArray(key) ? key : key.split('.')\n}\n\nfunction createKeyId(key) {\n return isArray(key) ? key.join('.') : key\n}\n\nfunction get(obj, path) {\n let list = [];\n let arr = false;\n\n const deepGet = (obj, path, index) => {\n if (!isDefined(obj)) {\n return\n }\n if (!path[index]) {\n // If there's no path left, we've arrived at the object we care about.\n list.push(obj);\n } else {\n let key = path[index];\n\n const value = obj[key];\n\n if (!isDefined(value)) {\n return\n }\n\n // If we're at the last value in the path, and if it's a string/number/bool,\n // add it to the list\n if (\n index === path.length - 1 &&\n (isString(value) || isNumber(value) || isBoolean(value))\n ) {\n list.push(toString(value));\n } else if (isArray(value)) {\n arr = true;\n // Search each item in the array.\n for (let i = 0, len = value.length; i < len; i += 1) {\n deepGet(value[i], path, index + 1);\n }\n } else if (path.length) {\n // An object. Recurse further.\n deepGet(value, path, index + 1);\n }\n }\n };\n\n // Backwards compatibility (since path used to be a string)\n deepGet(obj, isString(path) ? path.split('.') : path, 0);\n\n return arr ? list : list[0]\n}\n\nconst MatchOptions = {\n // Whether the matches should be included in the result set. When `true`, each record in the result\n // set will include the indices of the matched characters.\n // These can consequently be used for highlighting purposes.\n includeMatches: false,\n // When `true`, the matching function will continue to the end of a search pattern even if\n // a perfect match has already been located in the string.\n findAllMatches: false,\n // Minimum number of characters that must be matched before a result is considered a match\n minMatchCharLength: 1\n};\n\nconst BasicOptions = {\n // When `true`, the algorithm continues searching to the end of the input even if a perfect\n // match is found before the end of the same input.\n isCaseSensitive: false,\n // When true, the matching function will continue to the end of a search pattern even if\n includeScore: false,\n // List of properties that will be searched. This also supports nested properties.\n keys: [],\n // Whether to sort the result list, by score\n shouldSort: true,\n // Default sort function: sort by ascending score, ascending index\n sortFn: (a, b) =>\n a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1\n};\n\nconst FuzzyOptions = {\n // Approximately where in the text is the pattern expected to be found?\n location: 0,\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n // (of both letters and location), a threshold of '1.0' would match anything.\n threshold: 0.6,\n // Determines how close the match must be to the fuzzy location (specified above).\n // An exact letter match which is 'distance' characters away from the fuzzy location\n // would score as a complete mismatch. A distance of '0' requires the match be at\n // the exact location specified, a threshold of '1000' would require a perfect match\n // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n distance: 100\n};\n\nconst AdvancedOptions = {\n // When `true`, it enables the use of unix-like search commands\n useExtendedSearch: false,\n // The get function to use when fetching an object's properties.\n // The default will search nested paths *ie foo.bar.baz*\n getFn: get,\n // When `true`, search will ignore `location` and `distance`, so it won't matter\n // where in the string the pattern appears.\n // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n ignoreLocation: false,\n // When `true`, the calculation for the relevance score (used for sorting) will\n // ignore the field-length norm.\n // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n ignoreFieldNorm: false,\n // The weight to determine how much field length norm effects scoring.\n fieldNormWeight: 1\n};\n\nvar Config = {\n ...BasicOptions,\n ...MatchOptions,\n ...FuzzyOptions,\n ...AdvancedOptions\n};\n\nconst SPACE = /[^ ]+/g;\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n const cache = new Map();\n const m = Math.pow(10, mantissa);\n\n return {\n get(value) {\n const numTokens = value.match(SPACE).length;\n\n if (cache.has(numTokens)) {\n return cache.get(numTokens)\n }\n\n // Default function is 1/sqrt(x), weight makes that variable\n const norm = 1 / Math.pow(numTokens, 0.5 * weight);\n\n // In place of `toFixed(mantissa)`, for faster computation\n const n = parseFloat(Math.round(norm * m) / m);\n\n cache.set(numTokens, n);\n\n return n\n },\n clear() {\n cache.clear();\n }\n }\n}\n\nclass FuseIndex {\n constructor({\n getFn = Config.getFn,\n fieldNormWeight = Config.fieldNormWeight\n } = {}) {\n this.norm = norm(fieldNormWeight, 3);\n this.getFn = getFn;\n this.isCreated = false;\n\n this.setIndexRecords();\n }\n setSources(docs = []) {\n this.docs = docs;\n }\n setIndexRecords(records = []) {\n this.records = records;\n }\n setKeys(keys = []) {\n this.keys = keys;\n this._keysMap = {};\n keys.forEach((key, idx) => {\n this._keysMap[key.id] = idx;\n });\n }\n create() {\n if (this.isCreated || !this.docs.length) {\n return\n }\n\n this.isCreated = true;\n\n // List is Array<String>\n if (isString(this.docs[0])) {\n this.docs.forEach((doc, docIndex) => {\n this._addString(doc, docIndex);\n });\n } else {\n // List is Array<Object>\n this.docs.forEach((doc, docIndex) => {\n this._addObject(doc, docIndex);\n });\n }\n\n this.norm.clear();\n }\n // Adds a doc to the end of the index\n add(doc) {\n const idx = this.size();\n\n if (isString(doc)) {\n this._addString(doc, idx);\n } else {\n this._addObject(doc, idx);\n }\n }\n // Removes the doc at the specified index of the index\n removeAt(idx) {\n this.records.splice(idx, 1);\n\n // Change ref index of every subsquent doc\n for (let i = idx, len = this.size(); i < len; i += 1) {\n this.records[i].i -= 1;\n }\n }\n getValueForItemAtKeyId(item, keyId) {\n return item[this._keysMap[keyId]]\n }\n size() {\n return this.records.length\n }\n _addString(doc, docIndex) {\n if (!isDefined(doc) || isBlank(doc)) {\n return\n }\n\n let record = {\n v: doc,\n i: docIndex,\n n: this.norm.get(doc)\n };\n\n this.records.push(record);\n }\n _addObject(doc, docIndex) {\n let record = { i: docIndex, $: {} };\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n this.keys.forEach((key, keyIndex) => {\n let value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);\n\n if (!isDefined(value)) {\n return\n }\n\n if (isArray(value)) {\n let subRecords = [];\n const stack = [{ nestedArrIndex: -1, value }];\n\n while (stack.length) {\n const { nestedArrIndex, value } = stack.pop();\n\n if (!isDefined(value)) {\n continue\n }\n\n if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n i: nestedArrIndex,\n n: this.norm.get(value)\n };\n\n subRecords.push(subRecord);\n } else if (isArray(value)) {\n value.forEach((item, k) => {\n stack.push({\n nestedArrIndex: k,\n value: item\n });\n });\n } else ;\n }\n record.$[keyIndex] = subRecords;\n } else if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n n: this.norm.get(value)\n };\n\n record.$[keyIndex] = subRecord;\n }\n });\n\n this.records.push(record);\n }\n toJSON() {\n return {\n keys: this.keys,\n records: this.records\n }\n }\n}\n\nfunction createIndex(\n keys,\n docs,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys.map(createKey));\n myIndex.setSources(docs);\n myIndex.create();\n return myIndex\n}\n\nfunction parseIndex(\n data,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const { keys, records } = data;\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys);\n myIndex.setIndexRecords(records);\n return myIndex\n}\n\nfunction computeScore$1(\n pattern,\n {\n errors = 0,\n currentLocation = 0,\n expectedLocation = 0,\n distance = Config.distance,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n const accuracy = errors / pattern.length;\n\n if (ignoreLocation) {\n return accuracy\n }\n\n const proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy\n }\n\n return accuracy + proximity / distance\n}\n\nfunction convertMaskToIndices(\n matchmask = [],\n minMatchCharLength = Config.minMatchCharLength\n) {\n let indices = [];\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (let len = matchmask.length; i < len; i += 1) {\n let match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n indices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n indices.push([start, i - 1]);\n }\n\n return indices\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(\n text,\n pattern,\n patternAlphabet,\n {\n location = Config.location,\n distance = Config.distance,\n threshold = Config.threshold,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n includeMatches = Config.includeMatches,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n if (pattern.length > MAX_BITS) {\n throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))\n }\n\n const patternLen = pattern.length;\n // Set starting location at beginning text and initialize the alphabet.\n const textLen = text.length;\n // Handle the case when location > text.length\n const expectedLocation = Math.max(0, Math.min(location, textLen));\n // Highest score beyond which we give up.\n let currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n let bestLocation = expectedLocation;\n\n // Performance: only computer matches when the minMatchCharLength > 1\n // OR if `includeMatches` is true.\n const computeMatches = minMatchCharLength > 1 || includeMatches;\n // A mask of the matches, used for building the indices\n const matchMask = computeMatches ? Array(textLen) : [];\n\n let index;\n\n // Get all exact matches, here for speed up\n while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n let score = computeScore$1(pattern, {\n currentLocation: index,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n currentThreshold = Math.min(score, currentThreshold);\n bestLocation = index + patternLen;\n\n if (computeMatches) {\n let i = 0;\n while (i < patternLen) {\n matchMask[index + i] = 1;\n i += 1;\n }\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n let lastBitArr = [];\n let finalScore = 1;\n let binMax = patternLen + textLen;\n\n const mask = 1 << (patternLen - 1);\n\n for (let i = 0; i < patternLen; i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n let binMin = 0;\n let binMid = binMax;\n\n while (binMin < binMid) {\n const score = computeScore$1(pattern, {\n errors: i,\n currentLocation: expectedLocation + binMid,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n let start = Math.max(1, expectedLocation - binMid + 1);\n let finish = findAllMatches\n ? textLen\n : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n let bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << i) - 1;\n\n for (let j = finish; j >= start; j -= 1) {\n let currentLocation = j - 1;\n let charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (computeMatches) {\n // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n matchMask[currentLocation] = +!!charMatch;\n }\n\n // First pass: exact match\n bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (i) {\n bitArr[j] |=\n ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = computeScore$1(pattern, {\n errors: i,\n currentLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n const score = computeScore$1(pattern, {\n errors: i + 1,\n currentLocation: expectedLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score > currentThreshold) {\n break\n }\n\n lastBitArr = bitArr;\n }\n\n const result = {\n isMatch: bestLocation >= 0,\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n score: Math.max(0.001, finalScore)\n };\n\n if (computeMatches) {\n const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n if (!indices.length) {\n result.isMatch = false;\n } else if (includeMatches) {\n result.indices = indices;\n }\n }\n\n return result\n}\n\nfunction createPatternAlphabet(pattern) {\n let mask = {};\n\n for (let i = 0, len = pattern.length; i < len; i += 1) {\n const char = pattern.charAt(i);\n mask[char] = (mask[char] || 0) | (1 << (len - i - 1));\n }\n\n return mask\n}\n\nclass BitapSearch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n this.options = {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n\n this.chunks = [];\n\n if (!this.pattern.length) {\n return\n }\n\n const addChunk = (pattern, startIndex) => {\n this.chunks.push({\n pattern,\n alphabet: createPatternAlphabet(pattern),\n startIndex\n });\n };\n\n const len = this.pattern.length;\n\n if (len > MAX_BITS) {\n let i = 0;\n const remainder = len % MAX_BITS;\n const end = len - remainder;\n\n while (i < end) {\n addChunk(this.pattern.substr(i, MAX_BITS), i);\n i += MAX_BITS;\n }\n\n if (remainder) {\n const startIndex = len - MAX_BITS;\n addChunk(this.pattern.substr(startIndex), startIndex);\n }\n } else {\n addChunk(this.pattern, 0);\n }\n }\n\n searchIn(text) {\n const { isCaseSensitive, includeMatches } = this.options;\n\n if (!isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n let result = {\n isMatch: true,\n score: 0\n };\n\n if (includeMatches) {\n result.indices = [[0, text.length - 1]];\n }\n\n return result\n }\n\n // Otherwise, use Bitap algorithm\n const {\n location,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n ignoreLocation\n } = this.options;\n\n let allIndices = [];\n let totalScore = 0;\n let hasMatches = false;\n\n this.chunks.forEach(({ pattern, alphabet, startIndex }) => {\n const { isMatch, score, indices } = search(text, pattern, alphabet, {\n location: location + startIndex,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n includeMatches,\n ignoreLocation\n });\n\n if (isMatch) {\n hasMatches = true;\n }\n\n totalScore += score;\n\n if (isMatch && indices) {\n allIndices = [...allIndices, ...indices];\n }\n });\n\n let result = {\n isMatch: hasMatches,\n score: hasMatches ? totalScore / this.chunks.length : 1\n };\n\n if (hasMatches && includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n}\n\nclass BaseMatch {\n constructor(pattern) {\n this.pattern = pattern;\n }\n static isMultiMatch(pattern) {\n return getMatch(pattern, this.multiRegex)\n }\n static isSingleMatch(pattern) {\n return getMatch(pattern, this.singleRegex)\n }\n search(/*text*/) {}\n}\n\nfunction getMatch(pattern, exp) {\n const matches = pattern.match(exp);\n return matches ? matches[1] : null\n}\n\n// Token: 'file\n\nclass ExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'exact'\n }\n static get multiRegex() {\n return /^=\"(.*)\"$/\n }\n static get singleRegex() {\n return /^=(.*)$/\n }\n search(text) {\n const isMatch = text === this.pattern;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !fire\n\nclass InverseExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!(.*)$/\n }\n search(text) {\n const index = text.indexOf(this.pattern);\n const isMatch = index === -1;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: ^file\n\nclass PrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'prefix-exact'\n }\n static get multiRegex() {\n return /^\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^\\^(.*)$/\n }\n search(text) {\n const isMatch = text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !^fire\n\nclass InversePrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-prefix-exact'\n }\n static get multiRegex() {\n return /^!\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!\\^(.*)$/\n }\n search(text) {\n const isMatch = !text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: .file$\n\nclass SuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'suffix-exact'\n }\n static get multiRegex() {\n return /^\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^(.*)\\$$/\n }\n search(text) {\n const isMatch = text.endsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [text.length - this.pattern.length, text.length - 1]\n }\n }\n}\n\n// Token: !.file$\n\nclass InverseSuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-suffix-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^!(.*)\\$$/\n }\n search(text) {\n const isMatch = !text.endsWith(this.pattern);\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\nclass FuzzyMatch extends BaseMatch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n super(pattern);\n this._bitapSearch = new BitapSearch(pattern, {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n });\n }\n static get type() {\n return 'fuzzy'\n }\n static get multiRegex() {\n return /^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^(.*)$/\n }\n search(text) {\n return this._bitapSearch.searchIn(text)\n }\n}\n\n// Token: 'file\n\nclass IncludeMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'include'\n }\n static get multiRegex() {\n return /^'\"(.*)\"$/\n }\n static get singleRegex() {\n return /^'(.*)$/\n }\n search(text) {\n let location = 0;\n let index;\n\n const indices = [];\n const patternLen = this.pattern.length;\n\n // Get all exact matches\n while ((index = text.indexOf(this.pattern, location)) > -1) {\n location = index + patternLen;\n indices.push([index, location - 1]);\n }\n\n const isMatch = !!indices.length;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices\n }\n }\n}\n\n// ❗Order is important. DO NOT CHANGE.\nconst searchers = [\n ExactMatch,\n IncludeMatch,\n PrefixExactMatch,\n InversePrefixExactMatch,\n InverseSuffixExactMatch,\n SuffixExactMatch,\n InverseExactMatch,\n FuzzyMatch\n];\n\nconst searchersLen = searchers.length;\n\n// Regex to split by spaces, but keep anything in quotes together\nconst SPACE_RE = / +(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nconst OR_TOKEN = '|';\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n return pattern.split(OR_TOKEN).map((item) => {\n let query = item\n .trim()\n .split(SPACE_RE)\n .filter((item) => item && !!item.trim());\n\n let results = [];\n for (let i = 0, len = query.length; i < len; i += 1) {\n const queryItem = query[i];\n\n // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n let found = false;\n let idx = -1;\n while (!found && ++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isMultiMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n found = true;\n }\n }\n\n if (found) {\n continue\n }\n\n // 2. Handle single query matches (i.e, once that are *not* quoted)\n idx = -1;\n while (++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isSingleMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n break\n }\n }\n }\n\n return results\n })\n}\n\n// These extended matchers can return an array of matches, as opposed\n// to a singl match\nconst MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token | Match type | Description |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |\n * | `=scheme` | exact-match | Items that are `scheme` |\n * | `'python` | include-match | Items that include `python` |\n * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |\n * | `^java` | prefix-exact-match | Items that start with `java` |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$` | suffix-exact-match | Items that end with `.js` |\n * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\nclass ExtendedSearch {\n constructor(\n pattern,\n {\n isCaseSensitive = Config.isCaseSensitive,\n includeMatches = Config.includeMatches,\n minMatchCharLength = Config.minMatchCharLength,\n ignoreLocation = Config.ignoreLocation,\n findAllMatches = Config.findAllMatches,\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance\n } = {}\n ) {\n this.query = null;\n this.options = {\n isCaseSensitive,\n includeMatches,\n minMatchCharLength,\n findAllMatches,\n ignoreLocation,\n location,\n threshold,\n distance\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.query = parseQuery(this.pattern, this.options);\n }\n\n static condition(_, options) {\n return options.useExtendedSearch\n }\n\n searchIn(text) {\n const query = this.query;\n\n if (!query) {\n return {\n isMatch: false,\n score: 1\n }\n }\n\n const { includeMatches, isCaseSensitive } = this.options;\n\n text = isCaseSensitive ? text : text.toLowerCase();\n\n let numMatches = 0;\n let allIndices = [];\n let totalScore = 0;\n\n // ORs\n for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n const searchers = query[i];\n\n // Reset indices\n allIndices.length = 0;\n numMatches = 0;\n\n // ANDs\n for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n const searcher = searchers[j];\n const { isMatch, indices, score } = searcher.search(text);\n\n if (isMatch) {\n numMatches += 1;\n totalScore += score;\n if (includeMatches) {\n const type = searcher.constructor.type;\n if (MultiMatchSet.has(type)) {\n allIndices = [...allIndices, ...indices];\n } else {\n allIndices.push(indices);\n }\n }\n } else {\n totalScore = 0;\n numMatches = 0;\n allIndices.length = 0;\n break\n }\n }\n\n // OR condition, so if TRUE, return\n if (numMatches) {\n let result = {\n isMatch: true,\n score: totalScore / numMatches\n };\n\n if (includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n }\n\n // Nothing was matched\n return {\n isMatch: false,\n score: 1\n }\n }\n}\n\nconst registeredSearchers = [];\n\nfunction register(...args) {\n registeredSearchers.push(...args);\n}\n\nfunction createSearcher(pattern, options) {\n for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n let searcherClass = registeredSearchers[i];\n if (searcherClass.condition(pattern, options)) {\n return new searcherClass(pattern, options)\n }\n }\n\n return new BitapSearch(pattern, options)\n}\n\nconst LogicalOperator = {\n AND: '$and',\n OR: '$or'\n};\n\nconst KeyType = {\n PATH: '$path',\n PATTERN: '$val'\n};\n\nconst isExpression = (query) =>\n !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n\nconst isPath = (query) => !!query[KeyType.PATH];\n\nconst isLeaf = (query) =>\n !isArray(query) && isObject(query) && !isExpression(query);\n\nconst convertToExplicit = (query) => ({\n [LogicalOperator.AND]: Object.keys(query).map((key) => ({\n [key]: query[key]\n }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, { auto = true } = {}) {\n const next = (query) => {\n let keys = Object.keys(query);\n\n const isQueryPath = isPath(query);\n\n if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n return next(convertToExplicit(query))\n }\n\n if (isLeaf(query)) {\n const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n\n const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n if (!isString(pattern)) {\n throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))\n }\n\n const obj = {\n keyId: createKeyId(key),\n pattern\n };\n\n if (auto) {\n obj.searcher = createSearcher(pattern, options);\n }\n\n return obj\n }\n\n let node = {\n children: [],\n operator: keys[0]\n };\n\n keys.forEach((key) => {\n const value = query[key];\n\n if (isArray(value)) {\n value.forEach((item) => {\n node.children.push(next(item));\n });\n }\n });\n\n return node\n };\n\n if (!isExpression(query)) {\n query = convertToExplicit(query);\n }\n\n return next(query)\n}\n\n// Practical scoring function\nfunction computeScore(\n results,\n { ignoreFieldNorm = Config.ignoreFieldNorm }\n) {\n results.forEach((result) => {\n let totalScore = 1;\n\n result.matches.forEach(({ key, norm, score }) => {\n const weight = key ? key.weight : null;\n\n totalScore *= Math.pow(\n score === 0 && weight ? Number.EPSILON : score,\n (weight || 1) * (ignoreFieldNorm ? 1 : norm)\n );\n });\n\n result.score = totalScore;\n });\n}\n\nfunction transformMatches(result, data) {\n const matches = result.matches;\n data.matches = [];\n\n if (!isDefined(matches)) {\n return\n }\n\n matches.forEach((match) => {\n if (!isDefined(match.indices) || !match.indices.length) {\n return\n }\n\n const { indices, value } = match;\n\n let obj = {\n indices,\n value\n };\n\n if (match.key) {\n obj.key = match.key.src;\n }\n\n if (match.idx > -1) {\n obj.refIndex = match.idx;\n }\n\n data.matches.push(obj);\n });\n}\n\nfunction transformScore(result, data) {\n data.score = result.score;\n}\n\nfunction format(\n results,\n docs,\n {\n includeMatches = Config.includeMatches,\n includeScore = Config.includeScore\n } = {}\n) {\n const transformers = [];\n\n if (includeMatches) transformers.push(transformMatches);\n if (includeScore) transformers.push(transformScore);\n\n return results.map((result) => {\n const { idx } = result;\n\n const data = {\n item: docs[idx],\n refIndex: idx\n };\n\n if (transformers.length) {\n transformers.forEach((transformer) => {\n transformer(result, data);\n });\n }\n\n return data\n })\n}\n\nclass Fuse {\n constructor(docs, options = {}, index) {\n this.options = { ...Config, ...options };\n\n if (\n this.options.useExtendedSearch &&\n !true\n ) {}\n\n this._keyStore = new KeyStore(this.options.keys);\n\n this.setCollection(docs, index);\n }\n\n setCollection(docs, index) {\n this._docs = docs;\n\n if (index && !(index instanceof FuseIndex)) {\n throw new Error(INCORRECT_INDEX_TYPE)\n }\n\n this._myIndex =\n index ||\n createIndex(this.options.keys, this._docs, {\n getFn: this.options.getFn,\n fieldNormWeight: this.options.fieldNormWeight\n });\n }\n\n add(doc) {\n if (!isDefined(doc)) {\n return\n }\n\n this._docs.push(doc);\n this._myIndex.add(doc);\n }\n\n remove(predicate = (/* doc, idx */) => false) {\n const results = [];\n\n for (let i = 0, len = this._docs.length; i < len; i += 1) {\n const doc = this._docs[i];\n if (predicate(doc, i)) {\n this.removeAt(i);\n i -= 1;\n len -= 1;\n\n results.push(doc);\n }\n }\n\n return results\n }\n\n removeAt(idx) {\n this._docs.splice(idx, 1);\n this._myIndex.removeAt(idx);\n }\n\n getIndex() {\n return this._myIndex\n }\n\n search(query, { limit = -1 } = {}) {\n const {\n includeMatches,\n includeScore,\n shouldSort,\n sortFn,\n ignoreFieldNorm\n } = this.options;\n\n let results = isString(query)\n ? isString(this._docs[0])\n ? this._searchStringList(query)\n : this._searchObjectList(query)\n : this._searchLogical(query);\n\n computeScore(results, { ignoreFieldNorm });\n\n if (shouldSort) {\n results.sort(sortFn);\n }\n\n if (isNumber(limit) && limit > -1) {\n results = results.slice(0, limit);\n }\n\n return format(results, this._docs, {\n includeMatches,\n includeScore\n })\n }\n\n _searchStringList(query) {\n const searcher = createSearcher(query, this.options);\n const { records } = this._myIndex;\n const results = [];\n\n // Iterate over every string in the index\n records.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n results.push({\n item: text,\n idx,\n matches: [{ score, value: text, norm, indices }]\n });\n }\n });\n\n return results\n }\n\n _searchLogical(query) {\n\n const expression = parse(query, this.options);\n\n const evaluate = (node, item, idx) => {\n if (!node.children) {\n const { keyId, searcher } = node;\n\n const matches = this._findMatches({\n key: this._keyStore.get(keyId),\n value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n searcher\n });\n\n if (matches && matches.length) {\n return [\n {\n idx,\n item,\n matches\n }\n ]\n }\n\n return []\n }\n\n const res = [];\n for (let i = 0, len = node.children.length; i < len; i += 1) {\n const child = node.children[i];\n const result = evaluate(child, item, idx);\n if (result.length) {\n res.push(...result);\n } else if (node.operator === LogicalOperator.AND) {\n return []\n }\n }\n return res\n };\n\n const records = this._myIndex.records;\n const resultMap = {};\n const results = [];\n\n records.forEach(({ $: item, i: idx }) => {\n if (isDefined(item)) {\n let expResults = evaluate(expression, item, idx);\n\n if (expResults.length) {\n // Dedupe when adding\n if (!resultMap[idx]) {\n resultMap[idx] = { idx, item, matches: [] };\n results.push(resultMap[idx]);\n }\n expResults.forEach(({ matches }) => {\n resultMap[idx].matches.push(...matches);\n });\n }\n }\n });\n\n return results\n }\n\n _searchObjectList(query) {\n const searcher = createSearcher(query, this.options);\n const { keys, records } = this._myIndex;\n const results = [];\n\n // List is Array<Object>\n records.forEach(({ $: item, i: idx }) => {\n if (!isDefined(item)) {\n return\n }\n\n let matches = [];\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n keys.forEach((key, keyIndex) => {\n matches.push(\n ...this._findMatches({\n key,\n value: item[keyIndex],\n searcher\n })\n );\n });\n\n if (matches.length) {\n results.push({\n idx,\n item,\n matches\n });\n }\n });\n\n return results\n }\n _findMatches({ key, value, searcher }) {\n if (!isDefined(value)) {\n return []\n }\n\n let matches = [];\n\n if (isArray(value)) {\n value.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({\n score,\n key,\n value: text,\n idx,\n norm,\n indices\n });\n }\n });\n } else {\n const { v: text, n: norm } = value;\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({ score, key, value: text, norm, indices });\n }\n }\n\n return matches\n }\n}\n\nFuse.version = '6.6.2';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n\n{\n Fuse.parseQuery = parse;\n}\n\n{\n register(ExtendedSearch);\n}\n\n\n\n\n/***/ }),\n\n/***/ 791:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"__DO_NOT_USE__ActionTypes\": function() { return /* binding */ ActionTypes; },\n \"applyMiddleware\": function() { return /* binding */ applyMiddleware; },\n \"bindActionCreators\": function() { return /* binding */ bindActionCreators; },\n \"combineReducers\": function() { return /* binding */ combineReducers; },\n \"compose\": function() { return /* binding */ compose; },\n \"createStore\": function() { return /* binding */ createStore; },\n \"legacy_createStore\": function() { return /* binding */ legacy_createStore; }\n});\n\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js\n\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js\n\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\n\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\n;// CONCATENATED MODULE: ./node_modules/redux/es/redux.js\n\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (false) {}\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error( true ? formatProdErrorMessage(0) : 0);\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(1) : 0);\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(2) : 0);\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(3) : 0);\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error( true ? formatProdErrorMessage(4) : 0);\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(5) : 0);\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(6) : 0);\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error( true ? formatProdErrorMessage(7) : 0);\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(8) : 0);\n }\n\n if (isDispatching) {\n throw new Error( true ? formatProdErrorMessage(9) : 0);\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error( true ? formatProdErrorMessage(10) : 0);\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error( true ? formatProdErrorMessage(11) : 0);\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(12) : 0);\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error( true ? formatProdErrorMessage(13) : 0);\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (false) {}\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (false) {}\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (false) { var warningMessage; }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error( true ? formatProdErrorMessage(14) : 0);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error( true ? formatProdErrorMessage(16) : 0);\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error( true ? formatProdErrorMessage(15) : 0);\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2(_objectSpread2({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (false) {}\n\n\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n!function() {\n/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(373);\n/* harmony import */ var _scripts_choices__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_scripts_choices__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187);\n/* harmony import */ var _scripts_interfaces__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_scripts_interfaces__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _scripts_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(883);\n/* harmony import */ var _scripts_defaults__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(789);\n/* harmony import */ var _scripts_templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(686);\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((_scripts_choices__WEBPACK_IMPORTED_MODULE_0___default()));\n\n}();\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","export type FilterObjectFn = (value: any, key: string | number, obj: object) => boolean;\n\n/**\n * Filter out entries from an object.\n *\n * @param obj - object to filter.\n * @param fn - filter function.\n * @returns a new object without the entries satisfying the filter function.\n */\nexport function filterObject(obj: object, fn: FilterObjectFn): object {\n return Object.keys(obj).reduce((accum, property) => {\n const value = obj[property];\n\n if (fn(value, property, obj)) {\n accum[property] = value;\n }\n\n return accum;\n }, {});\n}\n\n/**\n * Check if given parameter is not undefined.\n *\n * @param value - value to check.\n * @returns whether the value is defined.\n */\nexport function isDefined(value: any): boolean {\n return typeof value !== 'undefined';\n}\n\n/**\n * Returns the list of values.\n *\n * @param value - Value or list of values.\n * @returns List of values.\n */\nexport function getValues(value: string | Array<string>): Array<string> {\n return typeof value !== 'undefined'\n ? [].concat(typeof value === 'string' ? value.split(',') : value)\n : [];\n}\n\n/**\n * Determines whether a string is valid JSON and can be parsed.\n * \n * @param str - The input string.\n * @returns - Whether the string can be parsed.\n */\nexport function isJSONParseable(str: string): boolean {\n try {\n JSON.parse(str);\n return true;\n } catch (e) {\n return false;\n }\n}\n","// @import '~choices.js/public/assets/styles/choices.css';\n@use '~@infineon/design-system-tokens/dist/tokens';\n@use '../../../global/font.scss';\n\n/*===============================\n= Choices =\n===============================*/\n\n.ifx-select-container {\n box-sizing: border-box;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n &.small-select {\n height: 36px;\n }\n\n &.medium-select {\n height: 40px;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n .ifx-label-wrapper {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n overflow: hidden;\n\n &.disabled { \n color: tokens.$ifxColorEngineering300;\n }\n\n & .required {\n margin-left: 4px;\n\n &.error {\n color: #cd002f;\n }\n }\n }\n\n .single__select-caption {\n font-style: normal;\n font-weight: tokens.$ifxFontWeightRegular;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 1;\n align-self: stretch;\n flex-grow: 0;\n\n &.error {\n color: tokens.$ifxColorRed500;\n }\n\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n }\n }\n\n .ifx-choices__wrapper {\n background-color: tokens.$ifxColorBaseWhite;\n box-sizing: border-box;\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadius12;\n font-weight: 400;\n font-style: normal;\n width: 100%;\n\n & .choices {\n flex-grow: 1;\n overflow: hidden;\n }\n\n & .single__select-icon-container {\n display: flex;\n align-items: center;\n margin-left: auto;\n }\n\n &.small-select {\n height: 36px;\n line-height: 20px;\n padding: 8px 12px;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n height: 40px;\n line-height: 24px;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n border-color: tokens.$ifxColorEngineering300;\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n & .choices { \n & .choices__inner { \n & .choices__list { \n & .choices__item { \n color: white;\n }\n }\n }\n }\n\n .ifx-choices__icon-wrapper-down {\n color: tokens.$ifxColorBaseWhite;\n &:hover {\n cursor: default;\n }\n }\n }\n\n &.error {\n border-color: #cd002f;\n }\n\n &:not(.disabled):hover:not(.focus, :focus) {\n border-color: tokens.$ifxColorEngineering500;\n }\n\n &.active {\n border-color: tokens.$ifxColorOcean500 !important; // Active border color\n\n & .ifx-choices__icon-wrapper-up {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n & .ifx-choices__icon-wrapper-down {\n display: none;\n }\n }\n\n &:focus-visible:not(.active):not(:active) {\n outline: none;\n\n &::before {\n content: '';\n position: absolute;\n width: calc(100% + 4px);\n height: calc(100% + 4px);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border: 2px solid #0a8276;\n border-radius: 2px;\n }\n }\n\n &:focus:not(.active, :active) {\n &:not(.disabled)::before {\n content: '';\n position: absolute;\n width: calc(100% + 4px);\n height: calc(100% + 4px);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n }\n\n & .ifx-choices__icon-wrapper-up {\n display: none;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n & .ifx-choices__icon-wrapper-down {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n & .ifx-choices__icon-wrapper-delete {\n display: flex;\n align-items: center;\n justify-content: center;\n\n &.hide {\n display: none;\n }\n\n &:focus{\n outline: none;\n border: 2px solid tokens.$ifxColorOcean600;\n border-radius: 50%;\n box-sizing: border-box;\n }\n }\n }\n\n /*\nSTART Select options: item alignment\n*/\n // .choice-container {\n // display: flex;\n // justify-content: space-between;\n // align-items: center;\n // }\n\n // .choice-label {\n // /* Additional styles for label if necessary */\n // }\n\n // .choice-icon {\n // /* Additional styles for icon if necessary */\n // }\n\n /*\nEND Select options: item alignment\n*/\n\n .choices {\n width: 100%;\n }\n\n .choices:focus {\n outline: none;\n }\n\n .choices &.is-focused {\n outline: none;\n }\n\n .choices:last-child {\n margin-bottom: 0;\n }\n\n .choices.is-disabled .choices__inner,\n .choices.is-disabled .choices__input {\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n .choices.is-disabled .choices__item {\n cursor: default;\n color: tokens.$ifxColorEngineering300;\n }\n\n .choices [hidden] {\n display: none !important;\n }\n\n .choices[data-type*='select-one'] {\n cursor: pointer;\n }\n\n .choices[data-type*='select-one'] .choices__input {\n display: block;\n width: 100%;\n padding: 8px 16px;\n border-bottom: 1px solid tokens.$ifxColorEngineering400;\n background-color: tokens.$ifxColorBaseWhite;\n margin: 0;\n font-style: normal;\n font-weight: 400;\n\n &.small-select {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n }\n\n .choices[data-type*='select-one'] .choices__single-button {\n background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);\n padding: 0;\n background-size: 8px;\n position: absolute;\n top: 50%;\n right: 0;\n margin-top: -10px;\n margin-right: 25px;\n height: 20px;\n width: 20px;\n border-radius: 10em;\n opacity: 0.5;\n }\n\n .choices[data-type*='select-one'] .choices__single-button:hover,\n .choices[data-type*='select-one'] .choices__single-button:focus {\n opacity: 1;\n }\n\n .choices[data-type*='select-one'] .choices__single-button:focus {\n box-shadow: 0px 0px 0px 2px tokens.$ifxColorOcean500;\n }\n\n .choices[data-type*='select-one'] .choices__item[data-value=''] .choices__single-button {\n display: none;\n }\n\n .choices[data-type*='select-one'].is-open:after {\n // border-color: transparent transparent #333333 transparent;\n margin-top: -7.5px;\n }\n\n .choices[data-type*='select-one'][dir='rtl']:after {\n left: 11.5px;\n right: auto;\n }\n\n .choices[data-type*='select-one'][dir='rtl'] .choices__single-button {\n right: auto;\n left: 0;\n margin-left: 25px;\n margin-right: 0;\n }\n\n .choices[data-type*='select-multiple'] {\n cursor: pointer;\n }\n\n .choices[data-type*='select-multiple'] .choices__input {\n display: block;\n width: 100%;\n margin: 0;\n }\n\n .choices[data-type*='select-multiple'] .choices__inner,\n .choices[data-type*='text'] .choices__inner {\n cursor: text;\n }\n\n .choices[data-type*='select-multiple'] .choices__button,\n .choices[data-type*='text'] .choices__button {\n position: relative;\n display: inline-block;\n margin-top: 0;\n margin-right: -4px;\n margin-bottom: 0;\n margin-left: 8px;\n padding-left: 16px;\n border-left: 1px solid tokens.$ifxColorOcean500;\n background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);\n background-size: 8px;\n width: 8px;\n line-height: 1;\n opacity: 0.75;\n border-radius: 0;\n }\n\n .choices[data-type*='select-multiple'] .choices__button:hover,\n .choices[data-type*='select-multiple'] .choices__button:focus,\n .choices[data-type*='text'] .choices__button:hover,\n .choices[data-type*='text'] .choices__button:focus {\n opacity: 1;\n }\n\n .choices__inner {\n overflow: hidden;\n\n & .choices__list {\n & .choices__item {\n & span {\n flex-grow: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n .is-focused .choices__inner,\n .is-open .choices__inner {\n border-color: #b7b7b7;\n }\n\n .is-open .choices__inner {\n border-radius: 2.5px 2.5px 0 0;\n }\n\n .is-flipped.is-open .choices__inner {\n border-radius: 0 0 2.5px 2.5px;\n }\n\n .choices__list {\n margin: 0;\n padding-left: 0;\n list-style: none;\n }\n\n .choices__list--single .choices__item {\n width: 100%;\n display: flex;\n justify-content: space-between;\n }\n\n .disabled > .choices__list--single .choices__item[data-value=''] {\n color: #8d8786;\n /* Placeholder font color */\n }\n\n .choices__list--multiple .choices__item {\n display: inline-block;\n vertical-align: middle;\n border-radius: 20px;\n padding: 4px 10px;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n font-weight: 500;\n margin-right: 3.75px;\n margin-bottom: 3.75px;\n background-color: tokens.$ifxColorOcean500;\n border: 1px solid tokens.$ifxColorOcean500;\n color: tokens.$ifxColorBaseWhite;\n word-break: break-all;\n box-sizing: border-box;\n }\n\n .choices__list--multiple .choices__item[data-deletable] {\n padding-right: 5px;\n }\n\n [dir='rtl'] .choices__list--multiple .choices__item {\n margin-right: 0;\n margin-left: 3.75px;\n }\n\n .choices__list--multiple .choices__item.is-highlighted {\n background-color: tokens.$ifxColorEngineering200;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n .choices__list--dropdown {\n display: none;\n visibility: hidden;\n box-sizing: border-box;\n position: absolute;\n width: 100%;\n background-color: tokens.$ifxColorBaseWhite;\n top: 100%;\n margin-top: -1px;\n\n overflow: hidden;\n word-break: break-all;\n will-change: visibility;\n box-shadow: 0px 0px 16px rgba(29, 29, 29, 0.12);\n border-radius: 1px;\n margin-top: 8px;\n z-index: 1000;\n left: 0;\n }\n\n .choices__list--dropdown.is-active {\n display: block;\n visibility: visible;\n }\n\n .is-open .choices__list--dropdown {\n border-color: #b7b7b7;\n }\n\n .is-flipped .choices__list--dropdown {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: -1px;\n border-radius: 0.25rem 0.25rem 0 0;\n }\n\n .choices__list--dropdown .choices__list {\n position: relative;\n max-height: 300px;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n will-change: scroll-position;\n }\n\n .choices__list--dropdown .choices__item {\n position: relative;\n padding: 8px 16px;\n gap: 8px;\n align-items: center;\n display: flex;\n justify-content: space-between;\n font-style: normal;\n font-weight: 400;\n\n &.small-select {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &.selected {\n color: #0a8276;\n }\n }\n\n [dir='rtl'] .choices__list--dropdown .choices__item {\n text-align: right;\n }\n\n @media (min-width: 640px) {\n .choices__list--dropdown .choices__item--selectable:after {\n // content: attr(data-select-text); #press to select text next to select option\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n opacity: 0;\n position: absolute;\n right: 10px;\n top: 50%;\n transform: translateY(-50%);\n }\n\n [dir='rtl'] .choices__list--dropdown .choices__item--selectable {\n text-align: right;\n padding-left: 100px;\n padding-right: 10px;\n }\n\n [dir='rtl'] .choices__list--dropdown .choices__item--selectable:after {\n right: auto;\n left: 10px;\n }\n }\n\n .choices__list--dropdown .choices__item--selectable.is-highlighted {\n background-color: #eeeded;\n\n &.selected {\n color: #0a8276;\n }\n }\n\n .choices__list--dropdown .choices__item--selectable:hover {\n background-color: #eeeded;\n\n &.selected {\n color: #0a8276;\n }\n }\n\n .choices__list--dropdown .choices__item--selectable.is-highlighted:after {\n opacity: 0.5;\n }\n\n .choices__item {\n cursor: default;\n }\n\n .choices__item--selectable {\n cursor: pointer;\n }\n\n .choices__item--disabled {\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n opacity: 0.5;\n }\n\n .choices__heading {\n font-weight: 600;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n padding: 10px;\n border-bottom: 1px solid #f7f7f7;\n color: tokens.$ifxColorBaseBlack;\n }\n\n .choices__button {\n //default button for removing items\n text-indent: -9999px;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: 0;\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n cursor: pointer;\n // visibility: hidden; //hide remove button on select menu\n }\n\n .choices__button:focus {\n outline: none;\n }\n\n .choices__single-button {\n text-indent: -9999px;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: 0;\n background-color: transparent;\n background-repeat: no-repeat;\n background-position: center;\n cursor: pointer;\n visibility: hidden; //hide remove button on select menu\n }\n\n .choices__single-button:focus {\n outline: none;\n }\n\n .choices__input {\n display: inline-block;\n vertical-align: baseline;\n background-color: #f9f9f9;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n margin-bottom: 5px;\n border: 0;\n border-radius: 0;\n max-width: 100%;\n }\n\n .choices__input--cloned {\n background-color: transparent;\n }\n\n /* clears the 'X' for the input type=search from Internet Explorer */\n .choices__input::-ms-clear {\n display: none;\n width: 0;\n height: 0;\n }\n\n .choices__input::-ms-reveal {\n display: none;\n width: 0;\n height: 0;\n }\n\n /* clears the 'X' for the input type=search from Chrome */\n .choices__input::-webkit-search-decoration,\n .choices__input::-webkit-search-cancel-button,\n .choices__input::-webkit-search-results-button,\n .choices__input::-webkit-search-results-decoration {\n display: none;\n }\n\n .choices__input:focus {\n outline: 0;\n }\n\n [dir='rtl'] .choices__input {\n padding-right: 2px;\n padding-left: 0;\n }\n\n .ifx-choices__wrapper:not(.disabled) .choices__placeholder {\n opacity: 0.5;\n }\n\n /*===== End of Choices ======*/\n}\n","import { h, Component, Element, Method, Prop, Event, EventEmitter, State } from '@stencil/core';\nimport { trackComponent } from '../../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../../global/utils/dom-utils';\nimport { detectFramework } from '../../../global/utils/framework-detection';\nimport { HTMLStencilElement, Listen, Watch } from '@stencil/core/internal';\nimport ChoicesJs from 'choices.js';\n\nimport {\n AjaxFn,\n ClassNames,\n FuseOptions,\n IChoicesProps,\n IChoicesMethods,\n ItemFilterFn,\n NoResultsTextFn,\n NoChoicesTextFn,\n AddItemTextFn,\n MaxItemTextFn,\n SortFn,\n OnInit,\n OnCreateTemplates,\n UniqueItemText,\n ValueCompareFunction,\n CustomAddItemText,\n} from './interfaces';\n\nimport { filterObject, isDefined, isJSONParseable } from './utils';\n\n@Component({\n tag: 'ifx-select',\n styleUrl: 'select.scss',\n // shadow: true, //with shadow dom enabled, styles to the external choicesJs library cant be applied.\n})\nexport class Choices implements IChoicesProps, IChoicesMethods {\n @Prop() public value: string;\n @Prop() public name: string;\n @Prop() public items: Array<any>;\n @Prop() public choices: Array<any> | string = undefined;\n @Prop() public renderChoiceLimit: number;\n @Prop() public maxItemCount: number;\n @Prop() public addItems: boolean;\n @Prop() public removeItems: boolean;\n @Prop() public removeItemButton: boolean;\n @Prop() public editItems: boolean;\n @Prop() public duplicateItemsAllowed: boolean;\n @Prop() public delimiter: string;\n @Prop() public paste: boolean;\n @Prop() public showSearch: boolean;\n @Prop() public searchChoices: boolean;\n @Prop() public searchFields: Array<string> | string;\n @Prop() public searchFloor: number;\n @Prop() public searchResultLimit: number;\n @Prop() public position: 'auto' | 'top' | 'bottom';\n @Prop() public resetScrollPosition: boolean;\n @Prop() public shouldSort: boolean;\n @Prop() public shouldSortItems: boolean;\n @Prop() public sorter: SortFn;\n @Prop() public placeholder: boolean | string;\n @Prop() public searchPlaceholderValue: string;\n @Prop() public prependValue: string;\n @Prop() public appendValue: string;\n @Prop() public renderSelectedChoices: 'always' | 'auto';\n @Prop() public loadingText: string;\n @Prop() public noResultsText: string | NoResultsTextFn;\n @Prop() public noChoicesText: string | NoChoicesTextFn;\n @Prop() public itemSelectText: '';\n @Prop() public addItemText: string | AddItemTextFn;\n @Prop() public maxItemText: string | MaxItemTextFn;\n @Prop() public uniqueItemText: UniqueItemText;\n @Prop() public classNames: ClassNames;\n @Prop() public fuseOptions: FuseOptions;\n @Prop() public addItemFilter: string | RegExp | ItemFilterFn;\n @Prop() public customAddItemText: CustomAddItemText;\n @Prop() public callbackOnInit: OnInit;\n @Prop() public callbackOnCreateTemplates: OnCreateTemplates;\n @Prop() public valueComparer: ValueCompareFunction;\n //custom ifx props\n @Prop() error: boolean = false;\n @Prop() label: string = '';\n @Prop() caption: string = '';\n @Prop() disabled: boolean = false;\n @Prop() required: boolean = false;\n @Prop() placeholderValue: string = 'Placeholder';\n @Event() ifxSelect: EventEmitter<CustomEvent>;\n @Event() ifxInput: EventEmitter<CustomEvent>;\n @Prop({ mutable: true }) options: any[] | string;\n @Prop() size: string = 'medium (40px)';\n @State() selectedOption: any | null = null;\n @State() optionIsSelected: boolean = false;\n @Prop() showClearButton: boolean = true;\n\n private resizeObserver: ResizeObserver;\n private previousOptions: any[] = [];\n\n @Element() private readonly root: HTMLElement;\n private choice;\n private element;\n\n @Watch('disabled')\n watchDisabled(newValue: boolean) {\n if (newValue && !this.error) {\n this.choice.disable();\n } else {\n this.choice.enable();\n }\n }\n\n @Method()\n async clearSelection() {\n if(!this.disabled) { \n this.clearInput();\n this.clearSelectField();\n this.setPreSelected(null);\n this.closeDropdown();\n this.optionIsSelected = false;\n }\n }\n\n clearSelectField() {\n this.selectedOption = null;\n this.ifxSelect.emit(null);\n }\n\n @Method()\n async handleChange() {\n this.ifxSelect.emit(this.choice.getValue());\n this.selectedOption = this.choice.getValue(); //store the selected option to reflect it in the template function\n this.setPreSelected(this.selectedOption.value); //set previously selected items from the input array to false and the new selection to true\n this.closeDropdown();\n }\n\n @Method()\n public async highlightItem(item: HTMLElement, runEvent?: boolean) {\n this.choice.highlightItem(item, runEvent);\n\n return this;\n }\n\n @Method()\n public async unhighlightItem(item: HTMLElement) {\n this.choice.unhighlightItem(item);\n\n return this;\n }\n\n @Method()\n public async highlightAll() {\n this.choice.highlightAll();\n\n return this;\n }\n\n @Method()\n public async unhighlightAll() {\n this.choice.unhighlightAll();\n\n return this;\n }\n\n @Method()\n public async removeActiveItemsByValue(value: string) {\n this.choice.removeActiveItemsByValue(value);\n return this;\n }\n\n @Method()\n public async removeActiveItems(excludedId?: number) {\n this.choice.removeActiveItems(excludedId);\n\n return this;\n }\n\n @Method()\n public async removeHighlightedItems(runEvent?: boolean) {\n this.choice.removeHighlightedItems(runEvent);\n\n return this;\n }\n\n @Method()\n public async showDropdown(focusInput?: boolean) {\n this.choice.showDropdown(focusInput);\n return this;\n }\n\n @Method()\n public async hideDropdown(blurInput?: boolean) {\n this.choice.hideDropdown(blurInput);\n\n return this;\n }\n\n @Method()\n public async getValue(valueOnly?: boolean): Promise<string | Array<string>> {\n return this.choice.getValue(valueOnly);\n }\n\n @Method()\n public async setValue(args: Array<any>) {\n this.choice.setValue(args);\n\n return this;\n }\n\n @Method()\n public async setChoiceByValue(value: string | Array<string>) {\n this.choice.setChoiceByValue(value);\n\n return this;\n }\n\n @Method()\n public async setChoices(choices: any[] | string, value: string, label: string, replaceChoices?: boolean) {\n let listOfChoices;\n if (typeof choices === 'string') {\n try {\n if (!isJSONParseable(choices)) {\n //meaning the input string comes from storybook as a non valid json string to be displayed in a beautified version on storybook\n choices = choices\n .replace(/'/g, '\"')\n .replace(/\"false\"/g, 'false')\n .replace(/\"true\"/g, 'true');\n }\n listOfChoices = [...JSON.parse(choices)];\n } catch (err) {\n console.error('Failed to parse choices:', err);\n }\n } else if (Array.isArray(choices) || typeof choices === 'object') {\n listOfChoices = [...choices];\n } else {\n console.error('Unexpected value for choices:', this.options);\n }\n\n this.choice.setChoices(listOfChoices, value, label, replaceChoices);\n return this;\n }\n\n @Method()\n public async clearChoices() {\n this.choice.clearChoices();\n\n return this;\n }\n\n @Method()\n public async clearStore() {\n this.choice.clearStore();\n\n return this;\n }\n\n @Method()\n public async clearInput() {\n this.choice.clearInput();\n\n return this;\n }\n\n @Method()\n public async ajax(fn: AjaxFn) {\n this.choice.ajax(fn);\n\n return this;\n }\n\n @Method()\n async handleDeleteIcon() {\n const width = this.root.offsetWidth;\n const deleteIconWrapper = this.root.querySelector('.ifx-choices__icon-wrapper-delete');\n if (deleteIconWrapper) {\n if (width <= 180) {\n deleteIconWrapper.classList.add('hide');\n } else if (this.showClearButton) {\n deleteIconWrapper.classList.remove('hide');\n }\n }\n }\n\n handleCloseButton() {\n if (typeof this.options === 'string') {\n const optionsToArray = JSON.parse(this.options);\n const optionIsSelected = optionsToArray.find(option => option.selected === true);\n if (optionIsSelected) {\n this.optionIsSelected = true;\n } else {\n this.optionIsSelected = false;\n }\n } else if (this.options && Array.isArray(this.options)) {\n const optionIsSelected = this.options.find(option => option.selected === true);\n if (optionIsSelected) {\n this.optionIsSelected = true;\n } else {\n this.optionIsSelected = false;\n }\n }\n }\n\n protected componentWillLoad() {\n this.handleCloseButton();\n }\n\n protected componentWillUpdate() {\n this.handleCloseButton();\n this.previousOptions = [...this.options];\n const optionsAreEqual = this.isEqual(this.options, this.previousOptions);\n if (this.options && !optionsAreEqual) {\n this.clearSelectField();\n }\n }\n\n isEqual(a: any, b: any[]) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n addResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => {\n this.handleDeleteIcon();\n });\n\n const componentWrapper = this.root.querySelector('.ifx-choices__wrapper');\n this.resizeObserver.observe(componentWrapper);\n }\n\n protected async componentDidLoad() {\n this.init();\n if (!isNestedInIfxComponent(this.root)) {\n const framework = detectFramework();\n trackComponent('ifx-select', await framework);\n }\n this.addEventListenersToHandleCustomFocusAndActiveState();\n this.handleDeleteIcon();\n this.addResizeObserver();\n }\n\n protected componentDidUpdate() {\n this.init();\n this.handleDeleteIcon();\n }\n\n protected disconnectedCallback() {\n this.destroy();\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n private handleWrapperClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const isSearchInput = target.classList.contains('choices__input') || target.closest('.choices__input');\n const isDropdownItem = target.closest('.choices__list--dropdown .choices__item');\n\n // Only toggle dropdown if clicking on wrapper itself\n if (!isSearchInput && !isDropdownItem) {\n this.toggleDropdown();\n }\n }\n\n protected render(): any {\n const attributes = {\n 'data-selector': 'root',\n 'name': this.name || null,\n // 'remove-item-button': false,\n };\n const choicesWrapperClass = `ifx-choices__wrapper ${this.getSizeClass()}`;\n\n // destroy choices element to restore previous dom structure\n // so vdom can replace the element correctly\n this.destroy();\n\n return (\n <div class={`ifx-select-container`}>\n {this.label ? (\n <div class={`ifx-label-wrapper ${this.disabled && !this.error ? 'disabled' : \"\"}`}>\n <span>{this.label}</span>\n {this.required && <span class={`required ${this.error ? 'error' : ''}`}>*</span>}\n </div>\n ) : null}\n <div\n class={`${choicesWrapperClass} \n ${this.disabled && !this.error ? 'disabled' : ''} \n ${this.error ? 'error' : ''}`}\n onClick={this.disabled && !this.error ? undefined : e => this.handleWrapperClick(e)}\n onKeyDown={event => this.handleKeyDown(event)}\n >\n <select class=\"single__select-input-field\" disabled={this.disabled && !this.error} {...attributes} data-trigger onChange={() => this.handleChange()}>\n {this.createSelectOptions(this.options)}\n </select>\n\n <div class=\"single__select-icon-container\">\n {this.optionIsSelected && (\n <div class={`ifx-choices__icon-wrapper-delete ${!this.showClearButton ? 'hide' : ''}`}>\n <ifx-icon icon=\"cRemove16\" onClick={() => this.clearSelection()}></ifx-icon>\n </div>\n )}\n <div class=\"ifx-choices__icon-wrapper-up\">\n <ifx-icon key=\"icon-up\" icon=\"chevron-up-16\"></ifx-icon>\n </div>\n <div class=\"ifx-choices__icon-wrapper-down\">\n <ifx-icon key=\"icon-down\" icon=\"chevron-down-16\"></ifx-icon>\n </div>\n </div>\n </div>\n {this.caption && <div class={`single__select-caption ${this.error ? 'error' : ''} ${this.disabled && !this.error ? 'disabled' : ''}`}>{this.caption}</div>}\n </div>\n );\n }\n\n toggleDropdown() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n if (div.classList.contains('active') || this.choice.dropdown.isActive) {\n this.closeDropdown();\n } else {\n this.choice.showDropdown();\n div.classList.add('active');\n }\n const choicesElement = this.root.querySelector('.choices');\n choicesElement.classList.add('is-focused'); // Add the 'is-focused' class, cause a click on the wrapper (and not the embedded select element) doesnt add this automatically to the choices instance\n }\n\n closeDropdown() {\n this.hideDropdown();\n const wrapper = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n wrapper.focus();\n wrapper.classList.remove('active');\n }\n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n const ifxChoicesContainer = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!path.includes(this.root)) {\n ifxChoicesContainer.classList.remove('active');\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) {\n return;\n }\n\n const isSearchInput = (event.target as HTMLElement).classList.contains('choices__input');\n const isClearButton = (event.target as HTMLElement).classList.contains('ifx-choices__icon-wrapper-delete');\n\n switch (event.code) {\n case 'Enter': {\n if (isClearButton) {\n this.clearSelection();\n } else {\n this.toggleDropdown();\n }\n break;\n }\n case 'Space': {\n if (!isSearchInput) {\n this.toggleDropdown();\n }\n break;\n }\n case 'Tab': {\n if (isSearchInput) {\n event.preventDefault();\n this.closeDropdown();\n }\n break;\n }\n }\n }\n\n getSizeClass() {\n return `${this.size}` === 's' ? 'small-select' : 'medium-select';\n }\n\n private init() {\n const props = {\n allowHTML: true,\n items: this.items,\n choices: this.choices,\n renderChoiceLimit: this.renderChoiceLimit,\n maxItemCount: this.maxItemCount,\n addItems: this.addItems,\n removeItems: this.removeItems,\n removeItemButton: this.removeItemButton,\n editItems: this.editItems,\n duplicateItemsAllowed: this.duplicateItemsAllowed,\n delimiter: this.delimiter,\n paste: this.paste,\n searchEnabled: this.showSearch,\n searchChoices: this.searchChoices,\n searchFields: this.searchFields,\n searchFloor: this.searchFloor,\n searchResultLimit: this.searchResultLimit,\n position: this.position,\n resetScrollPosition: this.resetScrollPosition,\n shouldSort: false, // choices/groups will appear in the order they were given.\n shouldSortItems: this.shouldSortItems,\n sorter: this.sorter,\n placeholder: this.placeholder,\n searchPlaceholderValue: this.searchPlaceholderValue,\n prependValue: this.prependValue,\n appendValue: this.appendValue,\n renderSelectedChoices: this.renderSelectedChoices,\n loadingText: this.loadingText,\n noResultsText: this.noResultsText,\n noChoicesText: this.noChoicesText,\n itemSelectText: this.itemSelectText,\n addItemText: this.addItemText,\n maxItemText: this.maxItemText,\n uniqueItemText: this.uniqueItemText,\n classNames: this.classNames,\n fuseOptions: this.fuseOptions,\n callbackOnInit: this.callbackOnInit,\n callbackOnCreateTemplates: this.callbackOnCreateTemplates,\n valueComparer: this.valueComparer,\n addItemFilter: this.addItemFilter,\n customAddItemText: this.customAddItemText,\n };\n\n const settings = filterObject(props, isDefined);\n\n //type check\n const element = this.root.querySelector('[data-selector=\"root\"]');\n if (element instanceof HTMLInputElement || element instanceof HTMLSelectElement) {\n // this.choice = new ChoicesJs(element, settings); //standard, without using custom templates\n const self = this; // save the context of this in a variable outside of the function to access it in the following\n\n this.choice = new ChoicesJs(\n element,\n Object.assign({}, settings, {\n callbackOnCreateTemplates: function (template) {\n return {\n //modifying the selected item template\n item: ({ classNames }, data) => {\n let removeButtonHTML = '';\n\n if (data.placeholder && !self.selectedOption?.value) {\n // For placeholders, use data-id=\"placeholder\"\n return template(`\n <div class=\"choices__placeholder\" data-item data-id=\"${data.id}\" data-value=\"${data.value}\" ${data.disabled && !this.error ? 'aria-disabled=\"true\"' : ''}>\n ${data.label === undefined ? this.placeholderValue : data.label}\n ${removeButtonHTML}\n </div>\n `);\n } else {\n // For non-placeholder items, use the actual data ID\n return template(`\n <div class=\"${classNames.item} ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}\" \n data-item \n data-id=\"${self.selectedOption?.id !== undefined ? self.selectedOption?.id : self.choice.getValue().id}\" \n data-value=\"${self.selectedOption?.value !== undefined ? self.selectedOption?.value : self.choice.getValue().value}\" \n ${data.disabled && !this.error ? 'aria-disabled=\"true\"' : ''}>\n <span>${self.selectedOption?.label !== undefined ? self.selectedOption?.label : self.choice.getValue().label}</span>\n <!-- Add your remove button here if needed -->\n </div>\n `);\n }\n },\n input: ({ classNames }) => {\n return template(`\n <input \n type=\"search\"\n class=\"${classNames.input} ${classNames.inputCloned} ${self.getSizeClass()}\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n role=\"textbox\"\n aria-autocomplete=\"list\"\n aria-label=\"${this.showSearch ? this.searchPlaceholderValue : ''}\">`);\n },\n\n //modifying the template of each item in the options list\n choice: ({ classNames }, data) => {\n return template(`\n <div class=\"${classNames.item} ${classNames.itemChoice} ${self.getSizeClass()} \n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? 'selected' : ''} \n ${data.placeholder ? classNames.placeholder : ''} \n ${data.disabled && !this.error ? classNames.itemDisabled : classNames.itemSelectable} \n role=\"${data.groupId && data.groupId > 0 ? 'treeitem' : 'option'}\"\n data-choice ${data.disabled && !this.error ? 'data-choice-disabled aria-disabled=\"true\"' : 'data-choice-selectable'} data-id=\"${data.id}\"\n data-value=\"${data.value}\"\n data-select-text=\"${this.config.itemSelectText}\">\n <span>${data.label}</span>\n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? '<ifx-icon icon=\"check16\"></ifx-icon>' : ''}\n </div>\n `);\n },\n };\n },\n }),\n );\n\n //set select options\n this.setChoices(this.options, 'value', 'label', true);\n //set custom event listener to listen for search input\n self.addSearchEventListener(self, this.choice);\n } else {\n // handle the case when the element is neither an HTMLInputElement nor an HTMLSelectElement\n }\n }\n\n private addEventListenersToHandleCustomFocusAndActiveState() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!div) {\n console.error('.ifx-choices__wrapper not found');\n return;\n }\n\n div.tabIndex = 0;\n\n div.addEventListener('focus', function () {\n if (!this.classList.contains('disabled')) {\n this.classList.add('focus');\n }\n });\n\n div.addEventListener('blur', function () {\n this.classList.remove('focus');\n });\n }\n\n private addSearchEventListener(self, choiceElement: ChoicesJs) {\n choiceElement.passedElement.element.addEventListener(\n 'search',\n function (event: CustomEvent) {\n self.ifxInput.emit(event.detail.value);\n },\n false,\n );\n return choiceElement;\n }\n\n private destroy() {\n if (this.element) {\n this.element = null;\n }\n\n if (this.choice) {\n this.choice.destroy();\n this.choice = null;\n }\n }\n\n //get selected values from input array\n private getPreSelected(self) {\n const optionsArray: any[] = Array.isArray(self.options) ? self.options : JSON.parse(self.options);\n return optionsArray.find(option => option.selected === true) || null;\n }\n\n //set previously marked as selected items in the input array to unselected and select new ones\n private setPreSelected(newValue) {\n const optionsArray: any[] = Array.isArray(this.options) ? this.options : JSON.parse(this.options);\n\n this.options = optionsArray.map(obj => {\n return {\n ...obj,\n selected: obj.value === newValue,\n };\n });\n }\n\n //setting the value that gets displayed in the select at component start (either the value prop or a placeholder)\n private createSelectOptions(ifxOptions): Array<HTMLStencilElement> {\n if (this.value !== 'undefined' || this.selectedOption?.value !== '') {\n let options;\n if (isJSONParseable(ifxOptions)) {\n options = [...JSON.parse(ifxOptions)];\n } else if (Array.isArray(ifxOptions) || typeof ifxOptions === 'object') {\n options = [...ifxOptions];\n }\n const optionValueBasedOnAvailableOptions = options?.find(option => option.value === this.value || this.selectedOption?.value);\n\n if (optionValueBasedOnAvailableOptions) {\n return [<option value={optionValueBasedOnAvailableOptions.value}>{optionValueBasedOnAvailableOptions.label}</option>];\n }\n }\n\n // Assign a unique id for the placeholder\n return this.placeholder !== 'false' ? [<option value=\"\">{this.placeholderValue}</option>] : [<option value=\"\"></option>];\n }\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { ButtonInterface } from './interfaces';\n\nexport class ButtonCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eButton!: HTMLElement; // Change to a generic HTMLElement to accommodate custom elements\n eventListener!: (event: Event) => void;\n\n init(params: ICellRendererParams) {\n this.createButton(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateButton(params);\n return true;\n }\n\n private createButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n this.eGui = document.createElement('div');\n this.eButton = document.createElement('ifx-button') as HTMLElement;\n \n if (this.hasRequiredKeys(config)) {\n this.setButtonAttributes(config);\n this.eGui.appendChild(this.eButton);\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private updateButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n if (this.hasRequiredKeys(config)) {\n this.setButtonAttributes(config);\n this.detachEventListener();\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setButtonAttributes(config: ButtonInterface) {\n this.eButton.setAttribute('disabled', config.disabled.toString());\n this.eButton.setAttribute('variant', config.variant);\n this.eButton.setAttribute('theme', config.theme);\n this.eButton.setAttribute('type', config.type);\n this.eButton.setAttribute('size', config.size);\n this.eButton.setAttribute('full-width', config.fullWidth.toString());\n this.eButton.setAttribute('target', config.target);\n this.eButton.setAttribute('href', config.href);\n this.eButton.textContent = config.text;\n }\n\n private attachEventListener(options: any, params: ICellRendererParams) {\n this.eventListener = (event: Event) => {\n if (options.onButtonClick) {\n options.onButtonClick(params, event);\n }\n };\n this.eButton.addEventListener('click', this.eventListener);\n }\n\n private detachEventListener() {\n if (this.eventListener) {\n this.eButton.removeEventListener('click', this.eventListener);\n }\n }\n\n private hasRequiredKeys(config: ButtonInterface): boolean {\n return config && config.text !== '' && config.variant !== '' && config.size !== '' && config.type !== '';\n }\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { CheckboxInterface } from './interfaces';\n\nexport class CheckboxCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eCheckbox!: HTMLElement;\n eventListener!: (event: Event) => void;\n\n init(params: ICellRendererParams) {\n this.createCheckbox(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateCheckbox(params);\n return true;\n }\n\n private createCheckbox(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n this.eGui = document.createElement('div');\n this.eGui.style.display = 'flex';\n this.eGui.style.alignItems = 'center';\n this.eGui.style.justifyContent = 'center';\n this.eCheckbox = document.createElement('ifx-checkbox') as HTMLElement;\n\n if (this.hasRequiredKeys(config)) {\n this.setCheckboxAttributes(config);\n this.eGui.appendChild(this.eCheckbox);\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : 'No checkbox data';\n }\n }\n\n private updateCheckbox(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n\n if (this.hasRequiredKeys(config)) {\n this.setCheckboxAttributes(config);\n this.detachEventListener();\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setCheckboxAttributes(config: CheckboxInterface) {\n this.eCheckbox.setAttribute('disabled', config.disabled.toString());\n this.eCheckbox.setAttribute('error', config.error.toString());\n this.eCheckbox.setAttribute('size', config.size);\n this.eCheckbox.setAttribute('checked', config.checked.toString());\n this.eCheckbox.setAttribute('indeterminate', config.indeterminate.toString());\n }\n\n private attachEventListener(options: any, params: ICellRendererParams) {\n this.eventListener = (event: Event) => {\n if (options.onCheckboxClick) {\n options.onCheckboxClick(params, event);\n }\n };\n this.eCheckbox.addEventListener('click', this.eventListener);\n }\n\n private detachEventListener() {\n if (this.eventListener) {\n this.eCheckbox.removeEventListener('click', this.eventListener);\n }\n }\n\n private hasRequiredKeys(config: CheckboxInterface): boolean {\n return config && config.size !== '';\n }\n}\n","import { IHeaderComp, IHeaderParams } from 'ag-grid-community';\n\nexport class CheckboxHeaderRenderer implements IHeaderComp {\n eGui!: HTMLDivElement;\n eCheckbox!: HTMLElement;\n params!: IHeaderParams & { onSelectAll?: (checked: boolean) => void };\n\n init(params: IHeaderParams & { onSelectAll?: (checked: boolean) => void }) {\n this.params = params;\n this.createHeader();\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: IHeaderParams): boolean {\n this.params = { ...this.params, ...params };\n return true;\n }\n\n private createHeader() {\n this.eGui = document.createElement('div');\n this.eGui.style.display = 'flex';\n this.eGui.style.alignItems = 'center';\n this.eGui.style.justifyContent = 'center';\n\n this.eCheckbox = document.createElement('ifx-checkbox');\n this.eCheckbox.setAttribute('size', 's');\n this.eCheckbox.setAttribute('checked', 'false');\n\n this.eCheckbox.addEventListener('ifxChange', (event: any) => {\n const checked = event.detail;\n if (this.params.onSelectAll) {\n this.params.onSelectAll(checked);\n }\n });\n\n this.eGui.appendChild(this.eCheckbox);\n }\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { IconButtonInterface } from './interfaces';\n\nexport class IconButtonCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eIconButton!: HTMLElement; \n eventListener!: (event: Event) => void;\n\n init(params: ICellRendererParams) {\n this.createIconButton(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateIconButton(params);\n return true;\n }\n\n private createIconButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n this.eGui = document.createElement('div');\n this.eIconButton = document.createElement('ifx-icon-button') as HTMLElement;\n \n if (this.hasRequiredKeys(config)) {\n this.setIconButtonAttributes(config);\n this.eGui.appendChild(this.eIconButton);\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private updateIconButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n if (this.hasRequiredKeys(config)) {\n this.setIconButtonAttributes(config);\n this.detachEventListener();\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setIconButtonAttributes(config: IconButtonInterface) {\n this.eIconButton.setAttribute('disabled', config.disabled.toString());\n this.eIconButton.setAttribute('variant', config.variant);\n this.eIconButton.setAttribute('shape', config.shape);\n this.eIconButton.setAttribute('size', config.size);\n this.eIconButton.setAttribute('target', config.target);\n this.eIconButton.setAttribute('href', config.href);\n this.eIconButton.setAttribute('icon', config.icon);\n }\n\n private attachEventListener(options: any, params: ICellRendererParams) {\n this.eventListener = (event: Event) => {\n if (options.onIconButtonClick) {\n options.onIconButtonClick(params, event);\n }\n };\n this.eIconButton.addEventListener('click', this.eventListener);\n }\n\n private detachEventListener() {\n if (this.eventListener) {\n this.eIconButton.removeEventListener('click', this.eventListener);\n }\n }\n\n private hasRequiredKeys(config: IconButtonInterface): boolean {\n return config && config.variant !== '' && config.size !== '' && config.shape !== '';\n }\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { LinkInterface } from './interfaces';\n\nexport class LinkCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eLink!: HTMLElement;\n\n init(params: ICellRendererParams) {\n this.createLink(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateLink(params);\n return true;\n }\n\n private createLink(params: ICellRendererParams) {\n const field = params.colDef?.field as string | undefined;\n const config = (params.value ?? params.data?.[field]) as any;\n\n this.eGui = document.createElement('div');\n this.eLink = document.createElement('ifx-link') as HTMLElement;\n\n if (this.hasRequiredKeys(config)) {\n this.setLinkAttributes(config);\n this.eGui.appendChild(this.eLink);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private updateLink(params: ICellRendererParams) {\n const field = params.colDef?.field as string | undefined;\n const config = (params.value ?? params.data?.[field]) as any;\n\n if (this.hasRequiredKeys(config)) {\n this.setLinkAttributes(config);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setLinkAttributes(config: LinkInterface) {\n this.eLink.setAttribute('disabled', config.disabled?.toString());\n this.eLink.setAttribute('variant', config.variant);\n this.eLink.setAttribute('size', config.size);\n this.eLink.setAttribute('target', config.target);\n this.eLink.setAttribute('href', config.href);\n if (config.download) this.eLink.setAttribute('download', config.download);\n this.eLink.textContent = config.text || '';\n }\n\n private hasRequiredKeys(config: LinkInterface): boolean {\n return !!(\n config &&\n config.text &&\n config.variant &&\n config.size\n );\n }\n}\n","// statusCellRenderer.ts\nimport { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\n\ntype StatusConfig = {\n label: string;\n color?: string;\n border?: boolean;\n};\n\nexport class StatusCellRenderer implements ICellRendererComp {\n private eGui!: HTMLDivElement;\n\n init(params: ICellRendererParams) {\n this.eGui = document.createElement('div');\n this.render(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.render(params);\n return true;\n }\n\nprivate render(params: ICellRendererParams) {\n const field = params.colDef?.field as string | undefined;\n const cfg = (params.value ?? params.data?.[field]) as StatusConfig | string | undefined;\n\n this.eGui.textContent = '';\n\n if (cfg && typeof cfg === 'object' && 'label' in cfg) {\n const el = document.createElement('ifx-status') as any;\n el.label = cfg.label;\n if (cfg.color != null) el.color = cfg.color;\n el.border = !!(cfg as StatusConfig).border;\n this.eGui.appendChild(el);\n } else if (cfg != null) {\n this.eGui.textContent = String(cfg);\n }\n}\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\n\nexport class CustomNoRowsOverlay implements ICellRendererComp {\n eGui!: HTMLElement;\n\n init(params: ICellRendererParams & { noRowsMessageFunc: () => string }) {\n this.eGui = document.createElement('div');\n this.eGui.innerHTML = `\n <div role=\"presentation\" class=\"ag-overlay-loading-center\" >\n ${params.noRowsMessageFunc()}\n </div>\n `;\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(_params: ICellRendererParams): boolean {\n return false;\n }\n}","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\n\nexport class CustomLoadingOverlay implements ICellRendererComp {\n eGui!: HTMLElement;\n\n init(_params: ICellRendererParams & { loadingMessage: string }) {\n this.eGui = document.createElement('div');\n this.eGui.innerHTML = `<div class=\"ag-overlay-loading-center\" role=\"presentation\">\n<ifx-spinner></ifx-spinner>\n </div>`;\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(_params: ICellRendererParams): boolean {\n return false;\n }\n}","@use '~@infineon/design-system-tokens/dist/tokens';\n@use '../../global/font.scss';\n\n@import '~ag-grid-community/styles/ag-grid.css';\n\n.zebra {\n & .ag-row-odd {\n background-color: tokens.$ifxColorEngineering100 !important;\n }\n\n & .ag-row {\n border-bottom: none !important;\n }\n}\n\n.ag-header-viewport {\n background-color: tokens.$ifxColorEngineering200 !important;\n}\n\n.table-container {\n display: block;\n}\n\n.sidebar-btn {\n margin-bottom: 24px;\n}\n\n.sidebar-container {\n margin-right: 24px;\n}\n\n.sidebar-layout {\n display: flex;\n flex-direction: row;\n}\n\n.topbar-layout {\n display: flex;\n flex-direction: column;\n}\n\n.table-pagination-wrapper {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n width: 100%;\n\n & .pagination-wrapper {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n }\n}\n\n#table-wrapper {\n flex: 1;\n padding-bottom: tokens.$ifxSpace100;\n overflow-x: auto;\n width: 100%;\n}\n\n.table-wrapper {\n overflow-x: auto;\n width: 100%;\n}\n\n.ag-horizontal-left-spacer {\n display: none;\n}\n\n.table-wrapper .ag-root-wrapper-body {\n height: auto !important;\n min-height: 100px !important;\n min-width: 100px;\n}\n\n.filter-chips {\n display: flex;\n flex-wrap: wrap;\n gap: tokens.$ifxSpace100;\n margin-bottom: 12px;\n}\n\n.filter-chips > ifx-button {\n margin-left: -8px;\n}\n\n.set-filter-wrapper-sidebar {\n display: flex;\n flex-direction: column;\n margin-bottom: tokens.$ifxSpace100;\n}\n\n.set-filter-wrapper-topbar {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n margin-bottom: tokens.$ifxSpace100;\n background: tokens.$ifxColorEngineering100;\n padding-top: 32px;\n padding-bottom: 32px;\n gap: 24px;\n}\n\n.headline-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px 0px;\n}\n\n.inner-buttons-wrapper {\n flex: 1;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 5px;\n}\n\n.ifx-ag-grid {\n display: grid;\n height: 100%;\n width: 100%;\n min-width: 100px;\n overflow-x: auto;\n}\n\n.ifx-ag-grid .ag-header-cell::after {\n outline: none !important;\n border: none !important;\n box-shadow: none !important;\n}\n\n.ifx-ag-grid .ag-header-cell:focus {\n outline: none !important;\n}\n\n.ifx-ag-grid *:not(.ag-header-cell):focus {\n outline: none;\n}\n\n.ifx-ag-grid .ag-header-cell:not(:last-child)::before {\n content: '';\n position: absolute;\n right: 0;\n top: calc(50% - 12px);\n height: 24px;\n width: 1px;\n background-color: tokens.$ifxColorEngineering300;\n}\n\n.ag-pinned-left-header {\n background-color: tokens.$ifxColorEngineering200;\n min-width: 50px !important;\n max-width: 50px !important;\n width: 50px !important;\n &::before {\n content: '';\n position: absolute;\n right: 0;\n top: calc(50% - 12px);\n height: 24px;\n width: 1px;\n background-color: tokens.$ifxColorEngineering300;\n }\n}\n\n.ag-header-row {\n width: 50px !important;\n}\n\n.ag-pinned-left-cols-container {\n width: 50px !important;\n max-width: 50px !important;\n min-width: 50px !important;\n}\n\n.ag-overlay-loading-center {\n border: none;\n background: none;\n border-radius: none;\n box-shadow: none;\n}\n\n.ag-root-wrapper {\n border: 1px solid tokens.$ifxColorEngineering200;\n}\n\n.ag-header {\n background-color: tokens.$ifxColorEngineering100;\n border-bottom: none;\n\n &.ag-header-active {\n outline: none !important;\n border-color: #0a8276 !important;\n }\n}\n\n.ag-header-cell {\n padding-left: 16px;\n padding-right: 16px;\n gap: 4px;\n}\n\n.ag-header-cell-focus {\n border: none !important;\n outline: none !important;\n}\n\n.ag-header-cell-text {\n font-size: 13px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n color: tokens.$ifxColorBaseBlack;\n font-family: var(--ifx-font-family);\n}\n\n.ag-row-focus {\n background-color: inherit !important;\n}\n\n.ag-row-hover {\n background-color: tokens.$ifxColorBaseWhite !important;\n}\n\n.ag-cell-focus {\n border: none !important;\n outline: none !important;\n background-color: inherit !important;\n}\n\n.ag-row {\n background-color: tokens.$ifxColorBaseWhite;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n z-index: 1;\n}\n\n.ag-row-odd {\n background-color: tokens.$ifxColorBaseWhite;\n}\n\n.ag-cell {\n display: flex;\n padding-left: 16px;\n padding-right: 16px;\n white-space: pre-line;\n min-height: 40px;\n height: auto;\n}\n\n.ag-ltr .ag-sort-indicator-icon {\n padding-left: 0px;\n vertical-align: bottom;\n line-height: 12px;\n}\n\n.ag-sort-indicator-container .ag-sort-order {\n display: none;\n}\n\n.unsort-icon-custom-color {\n color: tokens.$ifxColorEngineering400;\n}\n\n.filters-title {\n font-size: 24px;\n font-weight: 600;\n}\n\n.matching-results-container {\n flex: 1;\n font-family: 'Source Sans 3';\n display: flex;\n gap: 4px;\n font-size: 24px;\n font-weight: 600;\n line-height: 32px;\n letter-spacing: -1px;\n padding-right: 56px;\n}\n\n.matching-results-count {\n font-weight: 600;\n}\n\n.matching-results-text {\n font-weight: 400;\n}\n\n.ag-body-horizontal-scroll {\n display: none;\n}\n\n@media (max-width: tokens.$ifxBreakpointM) {\n .table-wrapper,\n #table-wrapper {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n\n .ag-root-wrapper {\n min-width: 100%;\n }\n\n .ag-body-horizontal-scroll {\n display: block;\n }\n\n .ag-header-cell,\n .ag-cell {\n min-width: 100px;\n white-space: nowrap;\n }\n\n .sidebar-layout {\n flex-direction: column;\n }\n\n .sidebar-container {\n margin-right: 0;\n margin-bottom: 24px;\n }\n\n .set-filter-wrapper-topbar {\n padding-left: 16px;\n padding-right: 16px;\n }\n\n .table-pagination-wrapper {\n gap: tokens.$ifxSpace200;\n }\n}\n","import { Component, h, Host, Method, Element, Prop, State, Listen, Watch } from '@stencil/core';\nimport classNames from 'classnames';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport { CellPosition, createGrid, FirstDataRenderedEvent, GridApi, GridOptions } from 'ag-grid-community';\nimport { ButtonCellRenderer } from './buttonCellRenderer';\nimport { CheckboxCellRenderer } from './checkboxCellRenderer';\nimport { CheckboxHeaderRenderer } from './checkboxHeaderRenderer';\nimport { IconButtonCellRenderer } from './iconButtonCellRenderer';\nimport { LinkCellRenderer } from './linkCellRenderer';\nimport { StatusCellRenderer } from './statusCellRenderer';\nimport { CustomNoRowsOverlay } from './customNoRowsOverlay';\nimport { CustomLoadingOverlay } from './customLoadingOverlay';\n\n@Component({\n tag: 'ifx-table',\n styleUrl: 'table.scss',\n shadow: true,\n})\nexport class Table {\n gridOptions: GridOptions;\n gridApi: GridApi;\n @State() currentPage: number = 1;\n @Prop() cols: any;\n @Prop() rows: any;\n @Prop() buttonRendererOptions?: { onButtonClick?: (params: any, event: Event) => void };\n @Prop() iconButtonRendererOptions?: { onIconButtonClick?: (params: any, event: Event) => void };\n @Prop() checkboxRendererOptions?: { onCheckboxClick?: (params: any, event: Event) => void };\n @State() rowData: any[] = [];\n @State() colData: any[] = [];\n @State() filterOptions: { [key: string]: string[] } = {};\n @State() currentFilters = {};\n @State() uniqueKey: string;\n allRowData: any[] = [];\n @Prop() rowHeight: string = 'default';\n @Prop() tableHeight: string = 'auto';\n @Prop() pagination: boolean = true;\n @Prop() paginationItemsPerPage: string;\n @State() paginationPageSize: number = 10;\n @Prop() filterOrientation: string = 'sidebar';\n @Prop() headline: string = '';\n @State() showSidebarFilters: boolean = true;\n @State() matchingResultsCount: number = 0;\n @Prop() variant: string = 'default';\n @Prop() serverSidePagination: boolean = false;\n @Prop() serverPageChangeHandler?: (params: { page: number; pageSize: number }) => Promise<{ rows: any[]; total: number }>;\n @Prop() enableSelection: boolean = false;\n @State() selectedRows: Set<string> = new Set();\n @State() selectAll: boolean = false;\n @State() selectedRowsData: Map<string, any> = new Map();\n @Prop() showLoading: boolean = false;\n private container: HTMLDivElement;\n @Element() host: HTMLElement;\n originalRowData: any[] = [];\n\n private internalItemsPerPage = JSON.stringify([\n { value: 10, label: '10', selected: true },\n { value: 20, label: '20', selected: false },\n { value: 30, label: '30', selected: false },\n ]);\n\n @Watch('rows')\n rowsChanged(_newVal: any) {\n const parsed = this.parseArrayInput<any>(this.rows);\n\n parsed.forEach((row, index) => {\n if (!row.__rowId) {\n row.__rowId = `row_${index}_${Date.now()}_${Math.random()}`;\n }\n });\n\n if (this.enableSelection) {\n parsed.forEach(row => {\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(row.__rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n });\n }\n this.currentFilters = {};\n this.currentPage = 1;\n this.originalRowData = [...parsed];\n this.allRowData = [...parsed];\n this.matchingResultsCount = this.allRowData.length;\n this.updateTableView();\n this.updateFilterOptions();\n }\n\n @Watch('cols')\n colsChanged(_newVal: any) {\n this.colData = this.getColData();\n\n if (this.gridApi) {\n this.gridApi.setGridOption('columnDefs', this.colData);\n this.gridApi.sizeColumnsToFit({\n defaultMinWidth: 100,\n });\n }\n\n this.updateFilterOptions();\n }\n\n @Listen('ifxItemsPerPageChange')\n handleResultsPerPageChange(e: CustomEvent<string>) {\n this.paginationPageSize = Number(e.detail);\n this.currentPage = 1;\n this.updateTableView();\n }\n\n @Listen('ifxChange')\n handleChipChange(event: CustomEvent<{ previousSelection: Array<any>; currentSelection: Array<any>; name: string }>) {\n const { name, currentSelection, previousSelection } = event.detail;\n if (currentSelection && previousSelection) {\n // Clone the current filters state\n const updatedFilters = { ...this.currentFilters };\n\n if (currentSelection.length === 0) {\n // If there are no selections for this filter, delete the filter\n delete updatedFilters[name];\n\n // Emit event with specific filter name\n const customEvent = new CustomEvent('ifxUpdateSidebarFilter', { detail: { filterName: name }, bubbles: true, composed: true });\n this.host.dispatchEvent(customEvent);\n } else {\n // Otherwise, update the filter values with the current selection\n updatedFilters[name].filterValues = currentSelection.map(selection => selection.value);\n }\n\n // Update the component's filters\n this.currentFilters = updatedFilters;\n // Ensure table data is updated\n this.allRowData = this.applyAllFilters(this.originalRowData, this.currentFilters);\n this.updateTableView();\n }\n }\n\n @Watch('buttonRendererOptions')\n onButtonRendererOptionsChanged() {\n this.colData = this.getColData();\n if (this.gridApi) {\n this.gridApi.setColumnDefs(this.colData);\n }\n }\n\n @Watch('iconButtonRendererOptions')\n onIconButtonRendererOptionsChanged() {\n this.colData = this.getColData();\n if (this.gridApi) {\n this.gridApi.setColumnDefs(this.colData);\n }\n }\n\n @Watch('checkboxRendererOptions')\n onCheckboxRendererOptionsChanged() {\n this.colData = this.getColData();\n if (this.gridApi) {\n this.gridApi.setColumnDefs(this.colData);\n }\n }\n\n private parseArrayInput<T>(input: any): T[] {\n if (typeof input === 'string') {\n try {\n const parsed = JSON.parse(input);\n return Array.isArray(parsed) ? parsed : [];\n } catch {\n console.error('Failed to parse input:', input);\n return [];\n }\n }\n if (Array.isArray(input)) return input;\n if (typeof input === 'object' && input !== null) return [input as T];\n return [];\n }\n\n toggleSidebarFilters() {\n this.showSidebarFilters = !this.showSidebarFilters;\n }\n\n updateFilterOptions() {\n const options = {};\n for (let col of this.colData) {\n options[col.field] = [...new Set(this.rowData.map(row => row[col.field]))];\n }\n this.filterOptions = options;\n }\n\n private updateHeaderCheckboxState() {\n if (this.gridApi && this.enableSelection) {\n setTimeout(() => {\n const headerCheckbox = this.container?.querySelector('.ag-header-cell[col-id=\"__checkbox\"] ifx-checkbox') as any;\n if (headerCheckbox) {\n if (this.serverSidePagination) {\n // For server-side: only reflect current page selection\n const currentPageSelectedCount = this.rowData.filter(row => this.selectedRows?.has(row.__rowId)).length;\n const allOnPageSelected = currentPageSelectedCount === this.rowData.length && this.rowData.length > 0;\n const someOnPageSelected = currentPageSelectedCount > 0 && currentPageSelectedCount < this.rowData.length;\n\n headerCheckbox.checked = allOnPageSelected;\n headerCheckbox.indeterminate = someOnPageSelected;\n } else {\n // For client-side: reflect entire dataset selection\n const allSelected = this.selectedRows.size === this.allRowData.length && this.allRowData.length > 0;\n const someSelected = this.selectedRows.size > 0 && this.selectedRows.size < this.allRowData.length;\n\n headerCheckbox.checked = allSelected;\n headerCheckbox.indeterminate = someSelected;\n }\n }\n }, 0);\n }\n }\n\n handleSidebarFilterChange(event: CustomEvent) {\n const filterGroups = event.detail;\n const updatedFilters = {};\n\n filterGroups.forEach(filterGroup => {\n const filterName = filterGroup.filterGroupName;\n let filterValues;\n let type;\n\n if (filterGroup.selectedItems && filterGroup.selectedItems.length > 0) {\n filterValues = filterGroup.selectedItems.map(item => item.label);\n type = 'multi-select';\n } else if (filterGroup.value) {\n filterValues = [filterGroup.value];\n type = 'text';\n } else {\n filterValues = [];\n }\n\n if (!(filterValues.length === 0 || (filterValues.length === 1 && type === 'text' && filterValues[0] === ''))) {\n updatedFilters[filterName] = { filterValues, type };\n }\n });\n\n this.allRowData = this.applyAllFilters(this.originalRowData, updatedFilters);\n this.updateTableView();\n this.currentFilters = updatedFilters;\n }\n\n handleTopbarFilterChange(event: CustomEvent) {\n const filters = event.detail;\n\n // Start by resetting the filter conditions to a blank object\n this.currentFilters = {};\n\n // Loop through each filter group provided in the event detail\n filters.forEach(filter => {\n const filterName = filter.filterName;\n let filterValues;\n\n let type = filter.type;\n\n if (type === 'text') {\n // Search/Text filter\n filterValues = filter.filterValues;\n } else {\n // Multi-select/Single-Select\n filterValues = filter.filterValues.map(item => item.label);\n }\n\n // If there are no filter values, or the filter is a text filter with an empty value, remove the filter\n if (!(filterValues.length === 0 || (filterValues.length === 1 && type === 'text' && filterValues[0] === ''))) {\n // Add or update the filter in the currentFilters object\n this.currentFilters[filterName] = { filterValues, type };\n }\n });\n\n // Now that the currentFilters object has been updated, apply all filters to the data\n this.allRowData = this.applyAllFilters(this.originalRowData, this.currentFilters);\n\n // After filtering, update the table view with the new filtered data\n this.updateTableView();\n }\n\n applyAllFilters(data, filters) {\n return data.filter(row => {\n for (const filterName in filters) {\n const filterInfo = filters[filterName];\n let selectedValues = (filterInfo.filterValues || []).map(value => {\n if (typeof value === 'string') {\n return value.toLowerCase();\n } else if (typeof value === 'number' || typeof value === 'boolean') {\n return value.toString();\n }\n return '';\n });\n\n // For text filters, check if row values start with any of the selectedValues\n if (filterInfo.type === 'text') {\n let textFilterMatched = false;\n for (let property in row) {\n if (row.hasOwnProperty(property)) {\n let rowValue = row[property] != null ? String(row[property]).toLowerCase() : '';\n if (selectedValues.some(filterValue => rowValue.startsWith(filterValue))) {\n textFilterMatched = true;\n break;\n }\n }\n }\n if (!textFilterMatched) return false;\n }\n // For multi-select filters, this remains unchanged\n else if (filterInfo.type === 'multi-select') {\n let rowValue = row[filterName] != null ? String(row[filterName]).toLowerCase() : '';\n // Check if 'undefined' is a selected value and include rows with empty values in that case\n let includesUndefined = selectedValues.includes('undefined');\n if (!selectedValues.includes(rowValue) && !(includesUndefined && rowValue === '')) {\n return false;\n }\n }\n }\n return true;\n });\n }\n\n async updateTableView() {\n // Reset select-all when loading new data in server-side mode\n if (this.serverSidePagination) {\n this.selectAll = false;\n }\n\n if (this.serverSidePagination && this.serverPageChangeHandler) {\n const { rows, total } = await this.serverPageChangeHandler({\n page: this.currentPage,\n pageSize: this.paginationPageSize,\n });\n\n rows.forEach((row, index) => {\n const rowId = row.sampleNumber || `row_${(this.currentPage - 1) * this.paginationPageSize + index}`;\n row.__rowId = rowId;\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n });\n\n this.rowData = rows;\n this.matchingResultsCount = total;\n\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', rows);\n // Update header checkbox state\n this.updateHeaderCheckboxState();\n }\n\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.setAttribute('total', total.toString());\n }\n } else {\n const startIndex = (this.currentPage - 1) * this.paginationPageSize;\n const endIndex = startIndex + this.paginationPageSize;\n const visibleRowData = this.allRowData.slice(startIndex, endIndex);\n\n if (this.enableSelection) {\n visibleRowData.forEach(row => {\n if (!row.__checkbox) {\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(row.__rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n } else {\n row.__checkbox.checked = this.selectedRows?.has(row.__rowId) || false;\n }\n });\n }\n\n this.rowData = visibleRowData;\n this.matchingResultsCount = this.allRowData.length;\n\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', this.rowData);\n }\n // Update header checkbox state for client-side\n this.updateHeaderCheckboxState();\n }\n }\n\n clearAllFilters() {\n this.currentFilters = {};\n this.allRowData = [...this.originalRowData];\n }\n\n @Method()\n async onBtShowLoading() {\n this.gridApi.showLoadingOverlay();\n }\n\n setPaginationItemsPerPage() {\n const newItemsPerPage = this.paginationItemsPerPage;\n if (newItemsPerPage) {\n this.internalItemsPerPage = this.paginationItemsPerPage;\n const itemsPerPageArray = JSON.parse(this.internalItemsPerPage);\n\n const selectedOption = itemsPerPageArray.find(option => option.selected);\n if (selectedOption) {\n this.paginationPageSize = Number(selectedOption.value);\n } else if (itemsPerPageArray.length > 0) {\n this.paginationPageSize = Number(itemsPerPageArray[0].value);\n }\n }\n }\n\n componentWillLoad() {\n this.setPaginationItemsPerPage();\n\n this.uniqueKey = `unique-${Math.floor(Math.random() * 1000000)}`;\n this.rowData = this.getRowData();\n this.colData = this.getColData();\n this.updateFilterOptions();\n\n this.gridOptions = {\n suppressCellFocus: true,\n rowHeight: this.rowHeight === 'default' ? 40 : 32,\n headerHeight: 40,\n components: {\n checkboxCellRenderer: CheckboxCellRenderer,\n checkboxHeaderRenderer: CheckboxHeaderRenderer,\n customLoadingOverlay: CustomLoadingOverlay,\n customNoRowsOverlay: CustomNoRowsOverlay,\n },\n defaultColDef: {\n resizable: true,\n autoHeight: true,\n },\n suppressDragLeaveHidesColumns: true,\n enableCellTextSelection: true,\n onFirstDataRendered: this.onFirstDataRendered.bind(this),\n columnDefs: this.colData,\n rowData: this.rowData,\n loadingOverlayComponent: CustomLoadingOverlay,\n noRowsOverlayComponent: CustomNoRowsOverlay,\n noRowsOverlayComponentParams: {\n noRowsMessageFunc: () => 'No rows found', //at: ' + new Date().toLocaleTimeString(),\n },\n icons: {\n sortAscending: '<ifx-icon icon=\"arrow-triangle-up-16\"></ifx-icon>',\n sortDescending: '<ifx-icon icon=\"arrow-triangle-down-16\"></ifx-icon>',\n sortUnSort: '<a class=\"unsort-icon-custom-color\"><ifx-icon icon=\"arrow-triangle-vertikal-16\"></ifx-icon></a>',\n },\n rowDragManaged: this.colData.some(col => col.dndSource === true) ? true : false,\n animateRows: this.colData.some(col => col.dndSource === true) ? true : false,\n navigateToNextCell: params => {\n return this.focusCellIfContainingButton(params.api, params.nextCellPosition);\n },\n tabToNextCell: params => {\n // Returning null is deprecated so we return false if the result is null (browser handles tab behavior).\n return this.focusCellIfContainingButton(params.api, params.nextCellPosition) ?? false;\n },\n };\n }\n\n focusCellIfContainingButton<T>(api: GridApi<T>, cellPosition: CellPosition): CellPosition | null {\n if (!cellPosition) {\n return null;\n }\n\n if (cellPosition.column.getColDef().field === 'button') {\n const rowNode = api.getDisplayedRowAtIndex(cellPosition.rowIndex);\n\n if (!rowNode) {\n // Row not yet rendered due to virtualization.\n return null;\n }\n\n const cellRenderers = api.getCellRendererInstances({\n rowNodes: [rowNode],\n columns: [cellPosition.column],\n });\n\n if (cellRenderers.length > 0) {\n const renderedContent = (cellRenderers[0] as ButtonCellRenderer)?.getGui();\n\n if (renderedContent) {\n const button = renderedContent.querySelector('ifx-button');\n\n if (button) {\n setTimeout(() => {\n // Just calling button.focus() will not work because the focus of <ifx-button> will not be\n // forwared to its child <a>-element (containing the tabindex attribute) due to shadow root.\n // We must therefore grab the <a>-element manually first and then call focus() on it.\n const focusableChild = button.shadowRoot?.querySelector<HTMLElement>('a[tabindex]');\n focusableChild?.focus();\n }, 0);\n }\n }\n }\n }\n\n return cellPosition;\n }\n\n async componentDidLoad() {\n if (this.container) {\n if (!isNestedInIfxComponent(this.host)) {\n const framework = detectFramework();\n trackComponent('ifx-table', await framework);\n }\n this.gridApi = createGrid(this.container, this.gridOptions);\n if (this.gridApi) {\n this.gridApi.sizeColumnsToFit({\n defaultMinWidth: 100,\n });\n this.gridApi.setGridOption('columnDefs', this.colData);\n this.gridApi.setGridOption('rowData', this.rowData);\n\n if (this.pagination) {\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.addEventListener('ifxPageChange', this.handlePageChange.bind(this));\n }\n }\n const sidebarFilterElements = this.host.querySelectorAll('ifx-filter-type-group');\n // Add an event listener to each SetFilter component\n sidebarFilterElements.forEach(sidebarFilterElement => {\n sidebarFilterElement.addEventListener('ifxSidebarFilterChange', this.handleSidebarFilterChange.bind(this));\n });\n const topbarFilterElements = this.host.querySelectorAll('ifx-filter-bar');\n // Add an event listener to each SetFilter component\n topbarFilterElements.forEach(topbarFilterElement => {\n topbarFilterElement.addEventListener('ifxTopbarFilterChange', this.handleTopbarFilterChange.bind(this));\n });\n }\n }\n this.updateTableView();\n }\n\n componentWillUnmount() {\n if (this.pagination) {\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.removeEventListener('ifxPageChange', this.handlePageChange.bind(this));\n }\n }\n const sidebarFilters = this.host.shadowRoot.querySelectorAll('ifx-filter-type-group');\n // Remove the event listener from each SetFilter component\n sidebarFilters.forEach(sidebarFilter => {\n sidebarFilter.removeEventListener('ifxSidebarFilterChange', this.handleSidebarFilterChange.bind(this));\n });\n const topbarFilters = this.host.shadowRoot.querySelectorAll('ifx-filter-type-group');\n // Remove the event listener from each SetFilter component\n topbarFilters.forEach(topbarFilter => {\n topbarFilter.removeEventListener('ifxTopbarFilterChange', this.handleTopbarFilterChange.bind(this));\n });\n }\n\n async handlePageChange(event) {\n this.currentPage = event.detail.currentPage;\n\n // Reset the select-all checkbox state when changing pages in server-side mode\n if (this.serverSidePagination) {\n this.selectAll = false;\n }\n\n if (this.serverSidePagination && this.serverPageChangeHandler) {\n const { rows, total } = await this.serverPageChangeHandler({\n page: this.currentPage,\n pageSize: this.paginationPageSize,\n });\n\n // Add checkbox properties to rows\n rows.forEach((row, index) => {\n const rowId = row.sampleNumber || `row_${(this.currentPage - 1) * this.paginationPageSize + index}`;\n row.__rowId = rowId;\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n });\n\n this.rowData = rows;\n this.matchingResultsCount = total;\n\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', this.rowData);\n // Update header checkbox state\n this.updateHeaderCheckboxState();\n }\n\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.setAttribute('total', total.toString());\n }\n } else {\n const startIndex = (this.currentPage - 1) * this.paginationPageSize;\n const endIndex = startIndex + this.paginationPageSize;\n const visibleRowData = this.allRowData.slice(startIndex, endIndex);\n\n // Update checkbox state for visible rows\n if (this.enableSelection) {\n visibleRowData.forEach(row => {\n if (!row.__checkbox) {\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(row.__rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n } else {\n row.__checkbox.checked = this.selectedRows?.has(row.__rowId) || false;\n }\n });\n }\n\n this.rowData = visibleRowData;\n\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', visibleRowData);\n // Update header checkbox state for client-side too\n this.updateHeaderCheckboxState();\n }\n }\n }\n\n isJSONParseable(str) {\n try {\n JSON.parse(str);\n return true;\n } catch (e) {\n return false;\n }\n }\n\n handleSelectAll = (checked: boolean) => {\n this.selectAll = checked;\n\n const newSelectedRows = new Set(this.selectedRows);\n const newSelectedRowsData = new Map(this.selectedRowsData);\n\n if (checked) {\n if (this.serverSidePagination) {\n // Server-side: select only current page rows\n this.rowData.forEach(row => {\n const rowId = row.__rowId;\n newSelectedRows.add(rowId);\n const { __checkbox, __rowId, ...cleanRow } = row;\n newSelectedRowsData.set(rowId, cleanRow);\n });\n } else {\n // Client-side: select ALL rows across ALL pages\n this.allRowData.forEach(row => {\n const rowId = row.__rowId;\n newSelectedRows.add(rowId);\n const { __checkbox, __rowId, ...cleanRow } = row;\n newSelectedRowsData.set(rowId, cleanRow);\n });\n }\n } else {\n if (this.serverSidePagination) {\n // Server-side: remove only current page rows\n this.rowData.forEach(row => {\n const rowId = row.__rowId;\n newSelectedRows.delete(rowId);\n newSelectedRowsData.delete(rowId);\n });\n } else {\n // Client-side: remove ALL rows (clear entire selection)\n newSelectedRows.clear();\n newSelectedRowsData.clear();\n }\n }\n\n this.selectedRows = newSelectedRows;\n this.selectedRowsData = newSelectedRowsData;\n\n this.updateCheckboxStates();\n this.updateHeaderCheckboxState();\n this.emitSelectionChange();\n };\n\n getRowData() {\n let rows: any[] = [];\n if (this.rows === undefined || this.rows === null) {\n return rows;\n }\n if (this.isJSONParseable(this.rows)) {\n rows = [...JSON.parse(this.rows)];\n } else if (Array.isArray(this.rows) || typeof this.rows === 'object') {\n rows = [...this.rows];\n } else {\n console.error('Unexpected value for rows: ', this.rows);\n }\n\n rows.forEach((row, index) => {\n if (!row.__rowId) {\n row.__rowId = `row_${index}_${Date.now()}_${Math.random()}`;\n }\n });\n\n if (this.enableSelection) {\n rows.forEach(row => {\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(row.__rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n });\n }\n this.allRowData = rows;\n this.originalRowData = [...rows];\n this.matchingResultsCount = this.allRowData.length;\n return rows.slice(0, this.paginationPageSize);\n }\n\n handleRowCheckboxClick = (params: any) => {\n const clickedRowData = params.data;\n const rowId = clickedRowData.__rowId;\n const newSelectedRows = new Set(this.selectedRows);\n const newSelectedRowsData = new Map(this.selectedRowsData);\n\n if (newSelectedRows.has(rowId)) {\n newSelectedRows.delete(rowId);\n newSelectedRowsData.delete(rowId);\n } else {\n newSelectedRows.add(rowId);\n const { __checkbox, __rowId, ...cleanRow } = clickedRowData;\n newSelectedRowsData.set(rowId, cleanRow);\n }\n\n this.selectedRows = newSelectedRows;\n this.selectedRowsData = newSelectedRowsData;\n this.selectAll = newSelectedRows.size === this.rowData.length && this.rowData.length > 0;\n\n this.updateCheckboxStates();\n this.updateHeaderCheckboxState();\n this.emitSelectionChange();\n };\n\n private updateCheckboxStates() {\n // Update checkboxes in the current view\n const dataToUpdate = this.rowData; // Always update current page\n\n dataToUpdate.forEach(row => {\n if (row.__checkbox) {\n row.__checkbox.checked = this.selectedRows.has(row.__rowId);\n }\n });\n\n if (this.gridApi) {\n this.gridApi.refreshCells({\n columns: ['__checkbox'],\n force: true,\n });\n }\n }\n\n private emitSelectionChange() {\n const selectedRowsArray = Array.from(this.selectedRowsData.values());\n\n let isSelectAll;\n if (this.serverSidePagination) {\n // Server-side: select-all only applies to current page\n isSelectAll = this.selectedRows.size === this.rowData.length && this.rowData.length > 0;\n } else {\n // Client-side: select-all applies to ALL data across all pages\n isSelectAll = this.selectedRows.size === this.allRowData.length && this.allRowData.length > 0;\n }\n\n this.host.dispatchEvent(\n new CustomEvent('ifxSelectionChange', {\n detail: {\n selectedRows: selectedRowsArray,\n selectedCount: selectedRowsArray.length,\n isSelectAll: isSelectAll,\n },\n bubbles: true,\n }),\n );\n }\n\n getColData() {\n let cols: any[] = [];\n if (this.cols === undefined || this.cols === null) return cols;\n if (this.isJSONParseable(this.cols)) {\n cols = [...JSON.parse(this.cols)];\n } else if (Array.isArray(this.cols) || typeof this.cols === 'object') {\n cols = [...this.cols];\n } else {\n console.error('Unexpected value for cols: ', this.cols);\n }\n\n if (this.enableSelection) {\n const checkboxColumn = {\n headerName: '',\n field: '__checkbox',\n width: 50,\n pinned: 'left',\n cellRenderer: 'checkboxCellRenderer',\n cellRendererParams: {\n onCheckboxClick: this.handleRowCheckboxClick?.bind(this),\n },\n headerComponent: 'checkboxHeaderRenderer',\n headerComponentParams: {\n onSelectAll: this.handleSelectAll?.bind(this),\n },\n sortable: false,\n filter: false,\n resizable: false,\n valueFormatter: undefined,\n cellDataType: false,\n };\n cols.unshift(checkboxColumn);\n }\n\n cols.forEach(column => {\n const field = column.field?.toLowerCase() || '';\n // --- Button columns ---\n if (field.startsWith('button')) {\n column.cellRenderer = ButtonCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n if (this.buttonRendererOptions?.onButtonClick) {\n column.cellRendererParams = {\n onButtonClick: this.buttonRendererOptions.onButtonClick,\n };\n }\n }\n // --- Checkbox columns ---\n else if (field.startsWith('checkbox')) {\n column.cellRenderer = CheckboxCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n if (this.checkboxRendererOptions?.onCheckboxClick) {\n column.cellRendererParams = {\n onCheckboxClick: this.checkboxRendererOptions.onCheckboxClick,\n };\n }\n }\n // --- Icon Button columns ---\n else if (field.startsWith('iconbutton') || field === 'iconButton') {\n column.cellRenderer = IconButtonCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n if (this.iconButtonRendererOptions?.onIconButtonClick) {\n column.cellRendererParams = {\n onIconButtonClick: this.iconButtonRendererOptions.onIconButtonClick,\n };\n }\n }\n // --- Status columns ---\n else if (field.startsWith('status')) {\n column.cellRenderer = StatusCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n }\n // --- Link columns ---\n else if (field.startsWith('link')) {\n column.cellRenderer = LinkCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n }\n });\n return cols;\n }\n\n onFirstDataRendered(params: FirstDataRenderedEvent) {\n params.api.sizeColumnsToFit();\n }\n\n handleResetButtonClick() {\n const resetEvent = new CustomEvent('ifxResetFiltersEvent', { bubbles: true, composed: true });\n window.dispatchEvent(resetEvent);\n\n this.clearAllFilters();\n this.updateTableView();\n }\n\n disconnectedCallback() {\n if (this.pagination) {\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.removeEventListener('ifxPageChange', this.handlePageChange);\n }\n }\n\n const resetButton = this.host.shadowRoot.querySelector('#reset-filters-button');\n if (resetButton) {\n resetButton.removeEventListener('click', this.handleResetButtonClick.bind(this));\n }\n }\n\n getTableClassNames() {\n return classNames(this.tableHeight === 'auto' && 'table-wrapper ag-root-wrapper-body', 'table-wrapper');\n }\n\n render() {\n let style = {};\n if (this.tableHeight !== 'auto') {\n style = {\n height: this.tableHeight,\n };\n }\n\n const filterClass = this.filterOrientation === 'topbar' ? 'topbar-layout' : this.filterOrientation === 'none' ? '' : 'sidebar-layout';\n\n return (\n <Host>\n <div class=\"table-container\">\n {this.filterOrientation === 'sidebar' && (\n <div class=\"sidebar-btn\">\n <ifx-button\n type=\"button\"\n disabled={false}\n variant=\"secondary\"\n size=\"m\"\n target=\"_blank\"\n theme=\"default\"\n full-width=\"false\"\n onClick={() => this.toggleSidebarFilters()}\n >\n <ifx-icon icon=\"cross-16\"></ifx-icon>\n {this.showSidebarFilters ? 'Hide Filters' : 'Show Filters'}\n </ifx-button>\n </div>\n )}\n\n <div class={filterClass}>\n {this.filterOrientation === 'sidebar' && this.showSidebarFilters && (\n <div class=\"sidebar-container\">\n <div class=\"filters-title-container\">\n <span class=\"filters-title\">Filters</span>\n </div>\n <div class=\"set-filter-wrapper-sidebar\">{(this.filterOrientation !== 'sidebar' || this.showSidebarFilters) && <slot name=\"sidebar-filter\"></slot>}</div>\n </div>\n )}\n\n {this.filterOrientation !== 'none' && this.filterOrientation !== 'sidebar' && (\n <div class=\"set-filter-wrapper-topbar\">{(this.filterOrientation !== 'sidebar' || this.showSidebarFilters) && <slot name=\"topbar-filter\"></slot>}</div>\n )}\n\n <div class=\"table-pagination-wrapper\">\n {this.filterOrientation !== 'none' && this.filterOrientation !== 'topbar' && this.showSidebarFilters && (\n <div class=\"filter-chips\">\n {Object.keys(this.currentFilters).map(name => {\n const filter = this.currentFilters[name];\n const filterValues = filter.filterValues;\n const isMultiSelect = filter.type !== 'text';\n\n return filterValues.length > 0 ? (\n <ifx-chip placeholder={name} size=\"large\" variant={isMultiSelect ? 'multi' : 'single'} readOnly={true} value={filterValues} key={name}>\n {filterValues.map(filterValue => (\n <ifx-chip-item value={filterValue} selected={true} key={filterValue}>\n {filterValue}\n </ifx-chip-item>\n ))}\n </ifx-chip>\n ) : null;\n })}\n </div>\n )}\n\n <div class=\"headline-wrapper\">\n {this.filterOrientation !== 'none' && this.headline && (\n <div class=\"matching-results-container\">\n <span class=\"matching-results-count\">({this.matchingResultsCount})</span>\n <span class=\"matching-results-text\">{this.headline}</span>\n </div>\n )}\n\n <div class=\"inner-buttons-wrapper\">\n <slot name=\"inner-button\" />\n </div>\n </div>\n\n <div id=\"table-wrapper\" class={this.getTableClassNames()}>\n <div id={`ifxTable-${this.uniqueKey}`} class={`ifx-ag-grid ${this.variant === 'zebra' ? 'zebra' : ''}`} style={style} ref={el => (this.container = el)}></div>\n </div>\n <div class=\"pagination-wrapper\">\n {this.pagination ? (\n <ifx-pagination\n total={this.serverSidePagination ? this.matchingResultsCount : this.allRowData.length}\n current-page={this.currentPage}\n items-per-page={this.internalItemsPerPage}\n ></ifx-pagination>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n hasButtonCol(): boolean {\n return this.getColData().some(column => column.field === 'button');\n }\n\n onDragOver(event) {\n var dragSupported = event.dataTransfer.length;\n\n if (dragSupported) {\n event.dataTransfer.dropEffect = 'move';\n }\n\n event.preventDefault();\n }\n\n onDrop(event) {\n var jsonData = event.dataTransfer.getData('application/json');\n\n var eJsonRow = document.createElement('div');\n eJsonRow.classList.add('json-row');\n eJsonRow.innerText = jsonData;\n\n var eJsonDisplay = document.querySelector('#eJsonDisplay');\n\n eJsonDisplay.appendChild(eJsonRow);\n event.preventDefault();\n }\n}\n"],"version":3}