@ukic/canary-web-components 3.0.0-canary.21 → 3.0.0-canary.22
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.
- package/README.md +2 -1
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-table.cjs.entry.js +29 -21
- package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-date-picker.cjs.entry.js +17 -10
- package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +39 -47
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -10
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-pagination_4.cjs.entry.js +2 -2
- package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +2 -2
- package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
- package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js +15 -4
- package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button.cjs.entry.js +13 -4
- package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tree-item.cjs.entry.js +14 -8
- package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tree-view.cjs.entry.js +23 -15
- package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/ic-data-table/ic-data-table.css +3 -2
- package/dist/collection/components/ic-data-table/ic-data-table.js +28 -20
- package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
- package/dist/collection/components/ic-data-table/ic-data-table.stories.js +2 -2
- package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -1
- package/dist/collection/components/ic-data-table/story-data.js +32 -73
- package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
- package/dist/collection/components/ic-date-picker/ic-date-picker.js +37 -10
- package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
- package/dist/collection/components/ic-tree-item/ic-tree-item.js +14 -8
- package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
- package/dist/collection/components/ic-tree-view/ic-tree-view.js +23 -15
- package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
- package/dist/components/ic-data-table.js +29 -21
- package/dist/components/ic-data-table.js.map +1 -1
- package/dist/components/ic-date-picker.js +18 -10
- package/dist/components/ic-date-picker.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +1 -1
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu2.js +42 -47
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-item.js +3 -10
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-search-bar.js +2 -2
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-select2.js +2 -2
- package/dist/components/ic-select2.js.map +1 -1
- package/dist/components/ic-side-navigation.js +2 -2
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-toggle-button-group.js +17 -4
- package/dist/components/ic-toggle-button-group.js.map +1 -1
- package/dist/components/ic-toggle-button.js +14 -4
- package/dist/components/ic-toggle-button.js.map +1 -1
- package/dist/components/ic-tree-item.js +15 -9
- package/dist/components/ic-tree-item.js.map +1 -1
- package/dist/components/ic-tree-view.js +24 -16
- package/dist/components/ic-tree-view.js.map +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/p-156fc5f1.entry.js +2 -0
- package/dist/core/p-156fc5f1.entry.js.map +1 -0
- package/dist/core/{p-b6c3cc1c.entry.js → p-15ec796a.entry.js} +2 -2
- package/dist/core/p-15ec796a.entry.js.map +1 -0
- package/dist/core/{p-145238fe.entry.js → p-1ffac8ae.entry.js} +2 -2
- package/dist/core/{p-145238fe.entry.js.map → p-1ffac8ae.entry.js.map} +1 -1
- package/dist/core/{p-b6d1988d.entry.js → p-6e7aaca5.entry.js} +2 -2
- package/dist/core/{p-b6d1988d.entry.js.map → p-6e7aaca5.entry.js.map} +1 -1
- package/dist/core/p-755bdc43.entry.js +2 -0
- package/dist/core/p-755bdc43.entry.js.map +1 -0
- package/dist/core/p-78635447.entry.js +2 -0
- package/dist/core/p-78635447.entry.js.map +1 -0
- package/dist/core/{p-1bcf49fa.entry.js → p-a220535c.entry.js} +2 -2
- package/dist/core/p-a220535c.entry.js.map +1 -0
- package/dist/core/{p-9fafa5fa.entry.js → p-b88585bf.entry.js} +2 -2
- package/dist/core/p-b88585bf.entry.js.map +1 -0
- package/dist/core/{p-b6b7c15c.entry.js → p-bc974a3e.entry.js} +2 -2
- package/dist/core/p-bc974a3e.entry.js.map +1 -0
- package/dist/core/p-c67381b1.entry.js +2 -0
- package/dist/core/p-c67381b1.entry.js.map +1 -0
- package/dist/core/p-d04b75cb.entry.js +2 -0
- package/dist/core/p-d04b75cb.entry.js.map +1 -0
- package/dist/core/p-e2103bcc.entry.js +2 -0
- package/dist/core/p-e2103bcc.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/ic-button_3.entry.js +1 -1
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-data-table.entry.js +29 -21
- package/dist/esm/ic-data-table.entry.js.map +1 -1
- package/dist/esm/ic-date-picker.entry.js +17 -10
- package/dist/esm/ic-date-picker.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +39 -47
- package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +3 -10
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-pagination_4.entry.js +2 -2
- package/dist/esm/ic-pagination_4.entry.js.map +1 -1
- package/dist/esm/ic-search-bar.entry.js +2 -2
- package/dist/esm/ic-search-bar.entry.js.map +1 -1
- package/dist/esm/ic-side-navigation.entry.js +2 -2
- package/dist/esm/ic-side-navigation.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button-group.entry.js +15 -4
- package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button.entry.js +13 -4
- package/dist/esm/ic-toggle-button.entry.js.map +1 -1
- package/dist/esm/ic-tree-item.entry.js +15 -9
- package/dist/esm/ic-tree-item.entry.js.map +1 -1
- package/dist/esm/ic-tree-view.entry.js +24 -16
- package/dist/esm/ic-tree-view.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-data-table/ic-data-table.d.ts +1 -1
- package/dist/types/components/ic-data-table/ic-data-table.stories.d.ts +1 -1
- package/dist/types/components/ic-data-table/story-data.d.ts +0 -64
- package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +4 -0
- package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +2 -0
- package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +2 -1
- package/dist/types/components.d.ts +8 -0
- package/hydrate/index.js +166 -126
- package/hydrate/index.mjs +166 -126
- package/package.json +3 -3
- package/dist/core/p-1b20ab19.entry.js +0 -2
- package/dist/core/p-1b20ab19.entry.js.map +0 -1
- package/dist/core/p-1bcf49fa.entry.js.map +0 -1
- package/dist/core/p-5f8b09e4.entry.js +0 -2
- package/dist/core/p-5f8b09e4.entry.js.map +0 -1
- package/dist/core/p-7001f1c1.entry.js +0 -2
- package/dist/core/p-7001f1c1.entry.js.map +0 -1
- package/dist/core/p-9fafa5fa.entry.js.map +0 -1
- package/dist/core/p-b6b7c15c.entry.js.map +0 -1
- package/dist/core/p-b6c3cc1c.entry.js.map +0 -1
- package/dist/core/p-b9369ce5.entry.js +0 -2
- package/dist/core/p-b9369ce5.entry.js.map +0 -1
- package/dist/core/p-cbbba154.entry.js +0 -2
- package/dist/core/p-cbbba154.entry.js.map +0 -1
- package/dist/core/p-dc3aba7c.entry.js +0 -2
- package/dist/core/p-dc3aba7c.entry.js.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["icInputComponentContainerCss","IcInputComponentContainerStyle0","InputComponentContainer","constructor","hostRef","this","disabled","fullWidth","multiLine","readonly","size","validationInline","validationStatus","watchDisabledHandler","removeDisabledFalse","el","componentWillLoad","componentDidLoad","hostMutationObserver","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","render","h","Host","key","class","slotHasContent","name","IcInformationStatus","Success","innerHTML","successIcon","icInputContainerCss","IcInputContainerStyle0","InputContainer","icMenuCss","IcMenuStyle0","Menu","ACTIVE_DESCENDANT","CLEAR_BUTTON_ID","SEARCH_BAR_TAG","disabledOptionSelected","hasPreviouslyBlurred","hasTimedOut","isLoading","isMultiSelect","isSearchBar","isSearchableSelect","lastOptionSelected","lastOptionFocused","multiOptionClicked","preventClickOpen","preventMenuFocus","shiftPressed","ungroupedOptions","focusFromSearchKeypress","initialOptionsListRender","keyboardNav","preventIncorrectTabOrder","popperProps","activationType","autofocusOnSelected","closeOnSelect","labelField","searchMode","selectOnEnter","valueField","handleClearListener","optionHighlighted","handleSubmitSearch","highlightedOptionIndex","options","findIndex","option","setInputValue","handleMenuChange","open","focusInput","_a","menuStateChange","emit","inputEl","focus","undefined","setNextOptionValue","selectedOptionIndex","menuOptionSelect","value","optionId","getOptionId","setPreviousOptionValue","length","getParentEl","parent","tagName","getAttribute","arrowBehaviour","event","preventDefault","getMenuOptions","setHighlightedOption","highlightedIndex","menuOptions","timedOut","autoSetInputValueKeyboardOpen","target","id","selectHighlightedOption","isOpen","isOptionSelected","index","includes","deselectSelectedOptions","optionsToKeepSelected","selectedOptionIndexes","map","forEach","manualSetInputValueKeyboardOpen","isKeyboardCombination","shiftKey","metaKey","ctrlKey","getOptionHighlightedIndex","clickedMultiOptionIndex","Array","from","host","querySelectorAll","handleOptionSelect","handleSingleShiftSelect","menuOptionId","startOptionIndex","handleMultipleShiftSelect","endOptionIndex","stopImmediatePropagation","isMacDevice","emitSelectAllEvents","selectAllButton","focusOnSearchOrSelectInput","parentEl","setFocus","handleOptionClick","label","dataset","handleRetry","retryButtonClicked","handleRetryKeyDown","ev","keyPressed","handleBlur","_b","_c","_d","relatedTarget","menu","removeAttribute","contains","handleMouseDown","handleMenuKeyDown","autoSetValueOnMenuKeyDown","handleMenuKeyUp","handleSelectAllClick","handleSelectAllBlur","classList","remove","handleSelectAllFocus","add","handleSelectAllMouseDown","optionToSelectIndex","lastOptionInSelection","useFocusForSelection","firstOptionSelected","firstOptionInSelection","getFirstOptionInSelection","optionsToSelect","i","push","optionIndex","menuOptionSelectAll","select","icClear","emitMenuKeyPress","isNavKey","menuKeyPress","cancelBubble","menuId","getOptionAriaLabel","parentOption","ariaLabel","description","element","getSortedOptions","sorted","sort","optionA","optionB","recommended","isManualMode","scrollToSelected","selectedOption","querySelector","elTop","offsetTop","offsetHeight","scrollTop","setAttribute","loadUngroupedOptions","children","ungroupedOptionsSet","setMenuScrollbar","optionsHeight","clientHeight","handleTimeoutBlur","timeoutBlur","optionContent","selected","showCheckIcon","Fragment","loading","icon","variant","component","Check","displayOption","timeout","role","tabindex","onClick","onBlur","onMouseDown","xmlns","viewBox","fill","d","onKeyDown","watchOpenHandler","popperInstance","destroy","watchOptionsHandler","newOptions","some","opt","connectedCallback","disconnectedCallback","removeEventListener","addEventListener","disableAutoFiltering","onComponentRequiredPropUndefined","prop","propName","inputLabel","componentDidUpdate","inputValueInOptions","highlightedEl","componentDidRender","anchorEl","initPopperJs","handleClickOpen","handleKeyboardOpen","handleSetFirstOption","anchor","createPopper","Object","assign","placement","modifiers","offset","fallbackPlacements","rootBoundary","setExternalPopperProps","props","selectAllButtonText","hasNoResults","ref","onKeyUp","childOption","getOptionsWithoutGroupTitlesCount","onFocus"],"sources":["../web-components/dist/collection/components/ic-input-component-container/ic-input-component-container.css?tag=ic-input-component-container","../web-components/dist/collection/components/ic-input-component-container/ic-input-component-container.js","../web-components/dist/collection/components/ic-input-container/ic-input-container.css?tag=ic-input-container","../web-components/dist/collection/components/ic-input-container/ic-input-container.js","../web-components/dist/collection/components/ic-menu/ic-menu.css?tag=ic-menu&encapsulation=scoped","../web-components/dist/collection/components/ic-menu/ic-menu.js"],"sourcesContent":["ic-input-component-container {\n /**\n * @prop --border-color: Border colour of the input component container\n * @prop --border-color-hover: Border colour of the input component container on hover\n * @prop --border-color-pressed: Border colour of the input component container when pressed\n * @prop --border-color-disabled: Border colour of the input component container when disabled\n * @prop --border-color-error: Border colour of the error variant for input component container\n * @prop --border-color-error-hover: Border colour of the error hover variant for input component container\n * @prop --border-color-error-pressed: Border colour of the error pressed variant for input component container\n * @prop --border-color-warning: Border colour of the warning variant for input component container\n * @prop --border-color-warning-hover: Border colour of the warning hover variant for input component container\n * @prop --border-color-warning-pressed: Border colour of the warning pressed variant for input component container\n * @prop --border-color-success: Border colour of the success variant for input component container\n * @prop --border-color-success-hover: Border colour of the success hover variant for input component container\n * @prop --border-color-success-pressed: Border colour of the success pressed variant for input component container\n */\n\n display: flex;\n border: var(--ic-border-width) solid\n var(--border-color, var(--ic-architectural-400));\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-slow);\n height: 2.5rem;\n min-height: 2.5rem;\n width: var(--input-width, 20rem);\n padding: var(--ic-space-1px);\n background-color: var(--input-bg-color, var(--ic-color-background-primary));\n box-sizing: border-box;\n fill: var(--ic-architectural-400);\n outline: none;\n}\n\nic-input-component-container.ic-input-component-container-full-width {\n width: 100%;\n}\n\nic-input-component-container.ic-input-component-container-disabled,\nic-input-component-container.ic-input-component-container-disabled:hover {\n border: var(--ic-border-width) dashed\n var(--border-color-disabled, var(--ic-color-border-neutral-disabled));\n}\n\nic-input-component-container.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-small.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-large.ic-input-component-container-readonly {\n height: auto;\n background: transparent;\n}\n\nic-input-component-container.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-readonly:hover {\n border: none;\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-error {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error, var(--ic-color-border-error));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-error:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error-hover, var(--ic-color-border-error-hover));\n}\n\nic-input-component-container.ic-input-component-container-error:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error-pressed, var(--ic-color-border-error-pressed));\n}\n\nic-input-component-container.ic-input-component-container-warning {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning, var(--ic-color-border-warning));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-warning:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning-hover, var(--ic-color-border-warning-hover));\n}\n\nic-input-component-container.ic-input-component-container-warning:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning-pressed, var(--ic-color-border-warning-pressed));\n}\n\nic-input-component-container.ic-input-component-container-success {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success, var(--ic-color-border-success));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-success:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success-hover, var(--ic-color-border-success-hover));\n}\n\nic-input-component-container.ic-input-component-container-success:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success-pressed, var(--ic-color-border-success-pressed));\n}\n\nic-input-component-container.ic-input-component-container-small {\n height: var(--ic-space-xl);\n min-height: var(--ic-space-xl);\n}\n\nic-input-component-container.ic-input-component-container-large {\n height: var(--ic-space-xxl);\n min-height: var(--ic-space-xxl);\n}\n\nic-input-component-container.ic-input-component-container-multiline {\n height: auto;\n}\n\nic-input-component-container .icon-container {\n margin-top: var(--ic-space-xxs);\n margin-left: 0.438rem;\n display: flex;\n align-items: center;\n}\n\nic-input-component-container.ic-input-component-container-multiline\n .icon-container,\nic-input-component-container.ic-input-component-container-multiline.ic-input-component-container-small\n .icon-container {\n margin-top: 0.375rem;\n display: block;\n}\n\nic-input-component-container.ic-input-component-container-readonly\n .icon-container {\n margin-left: -0.313rem;\n}\n\nic-input-component-container.ic-input-component-container-disabled\n ::-moz-placeholder {\n display: none;\n}\n\nic-input-component-container.ic-input-component-container-disabled\n ::placeholder {\n display: none;\n}\n\nic-input-component-container .inline-success {\n margin: var(--ic-space-xs) 0.375rem;\n display: flex;\n align-items: center;\n}\n\nic-input-component-container .inline-success > svg {\n fill: var(--ic-input-component-container-success-icon-inline-color);\n height: 1.25rem;\n width: 1.25rem;\n}\n\nic-input-component-container:hover {\n border: var(--ic-input-component-container-hover-border);\n border-color: var(--border-color-hover, var(--ic-color-border-neutral-hover));\n color: var(--ic-action-monochrome-hover-dark);\n}\n\nic-input-component-container:focus {\n border: var(--ic-border-pressed);\n border-color: var(\n --border-color-pressed,\n var(--ic-color-border-neutral-pressed)\n );\n}\n\n.focus-indicator {\n display: flex;\n width: 100%;\n margin: -0.125rem;\n padding: 0.125rem;\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-fast);\n}\n\n.focus-indicator:focus-within,\n.focus-indicator-enabled {\n box-shadow: var(--ic-border-focus);\n}\n\n.focus-indicator.ic-input-component-container-dark:focus-within {\n box-shadow: var(--ic-border-focus);\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n ic-input-component-container,\n .focus-indicator {\n transition: none;\n }\n\n ic-input-component-container:focus-within {\n border: var(--ic-border-width) solid Highlight;\n outline: 0.125rem solid Highlight;\n }\n\n ic-input-component-container.ic-input-component-container-disabled,\n ic-input-component-container.ic-input-component-container-disabled:hover {\n border: var(--ic-border-width) dashed GrayText;\n }\n}\n","import { Host, h } from \"@stencil/core\";\nimport { IcInformationStatus, } from \"../../utils/types\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport { removeDisabledFalse, renderDynamicChildSlots, slotHasContent, } from \"../../utils/helpers\";\n/**\n * @slot left-icon - Content will be placed to the left of the input.\n */\nexport class InputComponentContainer {\n constructor() {\n /**\n * If `true`, the disabled state will be set.\n */\n this.disabled = false;\n /**\n * If `true`, the input component container will fill the width of the container it is in.\n */\n this.fullWidth = false;\n /**\n * If `true`, the input component container will allow for multiple lines.\n */\n this.multiLine = false;\n /**\n * If `true`, the readonly state will be set.\n */\n this.readonly = false;\n /**\n * The size of the input component container component.\n */\n this.size = \"medium\";\n /**\n * If `true`, the validation will display inline.\n */\n this.validationInline = false;\n /**\n * The validation status of the input component container - e.g. 'error' | 'warning' | 'success'.\n */\n this.validationStatus = \"\";\n }\n watchDisabledHandler() {\n removeDisabledFalse(this.disabled, this.el);\n }\n componentWillLoad() {\n removeDisabledFalse(this.disabled, this.el);\n }\n componentDidLoad() {\n this.hostMutationObserver = new MutationObserver((mutationList) => renderDynamicChildSlots(mutationList, \"left-icon\", this));\n this.hostMutationObserver.observe(this.el, { childList: true });\n }\n render() {\n const { size, validationStatus, disabled, readonly, multiLine, fullWidth, validationInline, } = this;\n return (h(Host, { key: 'fc70461ae7d3922f07aa5a85209e376d42bfc451', class: {\n [`ic-input-component-container-${size}`]: true,\n [`ic-input-component-container-${validationStatus}`]: validationStatus !== \"\" && !disabled && !readonly,\n \"ic-input-component-container-disabled\": !!disabled,\n \"ic-input-component-container-readonly\": !!readonly,\n \"ic-input-component-container-multiline\": !!multiLine,\n \"ic-input-component-container-full-width\": !!fullWidth,\n }, \"aria-disabled\": disabled ? \"true\" : null }, h(\"div\", { key: '20934b81740e6c907bff86cc706d3aafe3a790df', class: \"focus-indicator\" }, slotHasContent(this.el, \"left-icon\") && (h(\"div\", { key: '3577416fc719a575372188c43a78ac945b1b1526', class: \"icon-container\" }, h(\"slot\", { key: '36ee3e5c85ec77c69f88c2b74d272bdb6ee42ca1', name: \"left-icon\" }))), h(\"slot\", { key: 'e0a79f50c8ba34c0d989e2402df8b00587c5878f' }), validationInline &&\n validationStatus === IcInformationStatus.Success && (h(\"span\", { key: 'b156fb5bb6fcfec8c6dec6febdeea6d2adc7e009', class: \"inline-success\", innerHTML: successIcon })))));\n }\n static get is() { return \"ic-input-component-container\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-input-component-container.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-component-container.css\"]\n };\n }\n static get properties() {\n return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input component container will fill the width of the container it is in.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"multiLine\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input component container will allow for multiple lines.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"multi-line\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"readonly\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the readonly state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"readonly\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\" | undefined\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the input component container component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"medium\\\"\"\n },\n \"validationInline\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the validation will display inline.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"validation-inline\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"validationStatus\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcInformationStatusOrEmpty\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\" | \\\"success\\\" | \\\"warning\\\" | undefined\",\n \"references\": {\n \"IcInformationStatusOrEmpty\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcInformationStatusOrEmpty\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation status of the input component container - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"validation-status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"disabled\",\n \"methodName\": \"watchDisabledHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-input-component-container.js.map\n","ic-input-container .component-container {\n display: flex;\n flex-direction: column;\n}\n","import { Host, h } from \"@stencil/core\";\nexport class InputContainer {\n constructor() {\n /**\n * If `true`, the disabled state will be set.\n */\n this.disabled = false;\n /**\n * If `true`, the readonly state will be set.\n */\n this.readonly = false;\n }\n render() {\n return (h(Host, { key: '49cd31d8dca09cc4b2f49e0b2e7829bb1771a5d6' }, h(\"div\", { key: 'bb0e3a80161a86b40e0dc424264e71cf6c95c88a', class: {\n [\"component-container\"]: true,\n [\"disabled\"]: !!this.disabled,\n [\"readonly\"]: !!this.readonly,\n } }, h(\"slot\", { key: '4916ff0aebd6632d6e6f5daaa3c318e1e696ff2f' }))));\n }\n static get is() { return \"ic-input-container\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-input-container.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-input-container.css\"]\n };\n }\n static get properties() {\n return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"readonly\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the readonly state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"readonly\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n }\n };\n }\n}\n//# sourceMappingURL=ic-input-container.js.map\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/**\n * @prop --ic-z-index-menu: z-index of menu\n */\n\n@media (prefers-reduced-motion: no-preference) {\n :host(.ic-menu-open) .menu {\n transition: max-height var(--ic-transition-duration-slow);\n }\n}\n\n:host {\n max-height: 0;\n width: var(--menu-width, var(--input-width, 20rem));\n color: var(--menu-item-text-color, var(--ic-menu-list-option-text-color));\n\n --ic-typography-color: var(\n --menu-item-text-color,\n var(--ic-menu-list-option-text-color)\n );\n\n background-color: var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );\n position: relative;\n z-index: var(--ic-z-index-menu);\n box-sizing: border-box;\n box-shadow: var(--ic-elevation-overlay);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.ic-menu-open:not(.ic-menu-no-focus):focus-within) {\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.ic-select-select-all-focused) {\n box-shadow: var(--ic-elevation-overlay) !important;\n}\n\n#retry-button::part(button) {\n height: var(--ic-space-lg);\n}\n\n.small #retry-button::part(button) {\n height: var(--ic-space-md);\n}\n\n:host(.on-dialog) {\n inset: auto !important;\n}\n\n.menu {\n text-decoration: none;\n list-style-type: none;\n border-radius: 1px;\n background-color: var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );\n visibility: hidden;\n max-height: 0;\n overflow-y: hidden;\n}\n\n.menu:has(+ .option-bar) {\n border-radius: 0 0 1px 1px;\n}\n\n.menu-scroll {\n overflow-y: auto;\n}\n\n.menu:focus-visible {\n outline: none;\n}\n\n:host(.ic-menu-open) {\n max-height: none;\n display: flex;\n flex-direction: column-reverse;\n border: var(--ic-border-width) solid\n var(--menu-border-color, var(--ic-menu-border-color));\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.ic-menu-open) .menu {\n visibility: visible;\n max-height: calc(var(--ic-space-xl) * 10 + var(--ic-space-xxxs));\n}\n\n:host(.ic-menu-open) .option-bar {\n visibility: visible;\n}\n\n:host(.ic-menu-open) .select-all-button {\n display: block;\n}\n\n:host(.ic-menu-full-width) {\n width: 100%;\n}\n\n.option {\n padding: var(--ic-space-xs) calc(var(--ic-space-xs) - var(--ic-space-1px));\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n\n.loading-option p {\n margin-bottom: 0 !important;\n}\n\n.option:not(.loading-option) {\n justify-content: space-between;\n}\n\n:host(.ic-menu-small) .option {\n padding: var(--ic-space-xxs) calc(var(--ic-space-xs) - var(--ic-space-1px));\n}\n\n:host(.ic-menu-large) .option {\n padding: var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px));\n}\n\n.option:last-child {\n border-radius: 0 0 1px 1px;\n}\n\n:not(.menu:has(+ .option-bar)) .option:first-child {\n border-radius: 1px 1px 0 0;\n}\n\n.option:not(.disabled-option):hover {\n background-color: var(--ic-menu-list-option-hover-background-color);\n}\n\n.option:not(.disabled-option):active {\n background-color: var(--ic-menu-list-option-pressed-background-color);\n}\n\n.option:focus-visible {\n outline: var(--ic-hc-focus-outline);\n}\n\n.option:not(.disabled-option) .option-description {\n --ic-typography-color: var(\n --menu-item-desc-text-color,\n var(--ic-menu-list-option-description-text-color)\n );\n}\n\n.option .option-label {\n display: flex;\n flex-direction: row;\n align-items: top;\n}\n\n.option .option-label ic-typography {\n max-width: 100%;\n word-wrap: break-word;\n}\n\n.option .option-element {\n margin-top: var(--ic-space-xxs);\n}\n\n.option .option-icon {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n margin-top: var(--ic-space-xxs);\n margin-right: var(--ic-space-xxxs);\n}\n\n.option-text-container {\n pointer-events: none;\n width: 100%;\n}\n\n.option-text-container.show-check-icon {\n width: calc(var(--ic-space-lg) * 10 + var(--ic-space-xl));\n}\n\n.option.loading-option .option-text-container {\n margin-left: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n color: var(--ic-menu-loading-list-option-text-color);\n\n --ic-typography-color: var(--ic-menu-loading-list-option-text-color);\n}\n\n.error-icon-svg {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n fill: var(--ic-atoms-status-icon-error);\n align-self: center;\n display: flex;\n margin-right: calc(var(--ic-space-xxs) * 1.2);\n}\n\n.loading-error-info {\n display: flex;\n}\n\n.check-icon {\n height: var(--ic-space-lg);\n min-width: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-xs);\n pointer-events: none;\n}\n\n.focused-option .check-icon * {\n fill: currentcolor;\n}\n\n.option-group-title {\n padding: var(--ic-space-lg) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xs);\n\n --ic-typography-color: var(--ic-menu-option-group-label-text-color);\n}\n\n:host(.ic-menu-small) .option-group-title {\n padding: var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xxs);\n}\n\n.last-recommended-option {\n border-bottom: var(--ic-menu-last-recommended-option-border);\n}\n\n.disabled-option {\n color: var(--ic-atoms-list-option-text-disabled-light);\n\n --ic-typography-color: var(--ic-atoms-list-option-text-disabled-light);\n\n cursor: default;\n pointer-events: none;\n}\n\n.focused-option,\n.focused-option .option-description {\n background-color: var(--ic-color-focus-inner) !important;\n color: var(--ic-atoms-list-option-text-focused-light) !important;\n\n --ic-typography-color: var(\n --ic-atoms-list-option-text-focused-light\n ) !important;\n}\n\n:host(.no-results) li {\n cursor: no-drop;\n}\n\n:host(.no-results) li:hover {\n background-color: transparent;\n}\n\n.option-bar {\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: var(--ic-menu-option-bar-background-color);\n visibility: hidden;\n border-bottom: var(--ic-border-width) solid\n var(--ic-menu-option-bar-divider-color);\n border-radius: 1px 1px 0 0;\n}\n\n.option-bar p {\n margin-bottom: 0 !important;\n}\n\n:host(.ic-menu-large) .option-bar {\n padding: var(--ic-space-xs);\n}\n\n.select-all-button {\n display: none;\n}\n\n.select-all-button:focus {\n z-index: calc(var(--ic-z-index-menu) + 1);\n}\n\n@media (forced-colors: active) {\n .focused-option:focus {\n outline: none;\n border: 0.125rem solid transparent;\n }\n\n .disabled-option {\n color: GrayText;\n\n --ic-typography-color: GrayText;\n }\n}\n","import { h, Host, Fragment, } from \"@stencil/core\";\nimport { createPopper, } from \"@popperjs/core\";\nimport Check from \"../../assets/check-icon.svg\";\nimport { getOptionsWithoutGroupTitlesCount, isMacDevice, onComponentRequiredPropUndefined, } from \"../../utils/helpers\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Menu {\n constructor() {\n this.ACTIVE_DESCENDANT = \"aria-activedescendant\";\n this.CLEAR_BUTTON_ID = \"clear-button\";\n this.SEARCH_BAR_TAG = \"IC-SEARCH-BAR\";\n this.disabledOptionSelected = false;\n this.hasPreviouslyBlurred = false;\n this.hasTimedOut = false;\n this.isLoading = false;\n this.isMultiSelect = false;\n this.isSearchBar = false;\n this.isSearchableSelect = false;\n this.lastOptionSelected = null; // Index of last option selected\n this.lastOptionFocused = null; // Index of last option focused\n this.multiOptionClicked = null;\n this.preventClickOpen = false; // Prevents menu re-opening immediately after it is closed on blur when clicking input.\n this.preventMenuFocus = false; // (When multiple) ensures focus moves straight to select all button from menu.\n this.shiftPressed = false;\n this.ungroupedOptions = [];\n this.focusFromSearchKeypress = false;\n this.initialOptionsListRender = false;\n this.keyboardNav = false;\n this.preventIncorrectTabOrder = false;\n this.popperProps = {};\n /**\n * Determines whether options manually set as values (by pressing 'Enter') when they receive focus using keyboard navigation.\n */\n this.activationType = \"automatic\";\n /**\n * @internal If `true`, autofocus will be applied on selected item when menu is open.\n */\n this.autofocusOnSelected = true;\n /**\n * If `true`, the menu will close when an option is selected.\n */\n this.closeOnSelect = true;\n /**\n * If `true`, the menu will fill the width of the container.\n */\n this.fullWidth = false;\n /**\n * The custom name for the label field for IcMenuOption.\n */\n this.labelField = \"label\";\n /**\n * Specify the mode search bar uses to search. `navigation` allows for quick lookups of a set of values, `query` allows for more general searches.\n */\n this.searchMode = \"navigation\";\n /**\n * @internal If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown.\n */\n this.selectOnEnter = false;\n /**\n * The size of the menu.\n */\n this.size = \"medium\";\n /**\n * The custom name for the value field for IcMenuOption.\n */\n this.valueField = \"value\";\n this.handleClearListener = () => {\n this.optionHighlighted = \"\";\n };\n this.handleSubmitSearch = () => {\n const highlightedOptionIndex = this.options.findIndex((option) => option[this.valueField] === this.optionHighlighted);\n this.setInputValue(highlightedOptionIndex);\n };\n this.handleMenuChange = (open, focusInput) => {\n var _a;\n this.menuStateChange.emit({ open, focusInput });\n if (!open) {\n if (focusInput !== false) {\n (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();\n this.preventClickOpen = false;\n }\n // Reset optionHighlighted so previously highlighted option doesn't get reselected when Enter pressed\n if (this.isMultiSelect) {\n this.optionHighlighted = undefined;\n this.multiOptionClicked = null;\n }\n }\n };\n this.setNextOptionValue = (selectedOptionIndex) => {\n if (this.ungroupedOptions[selectedOptionIndex + 1]) {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[selectedOptionIndex + 1][this.valueField],\n optionId: this.getOptionId(this.ungroupedOptions[selectedOptionIndex + 1][this.valueField]),\n });\n }\n else {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[0][this.valueField],\n optionId: this.getOptionId(this.ungroupedOptions[0][this.valueField]),\n });\n }\n };\n this.setPreviousOptionValue = (selectedOptionIndex) => {\n if (this.ungroupedOptions[selectedOptionIndex - 1]) {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[selectedOptionIndex - 1][this.valueField],\n optionId: this.getOptionId(this.ungroupedOptions[selectedOptionIndex - 1][this.valueField]),\n });\n }\n else {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[this.ungroupedOptions.length - 1][this.valueField],\n optionId: this.getOptionId(this.ungroupedOptions[this.ungroupedOptions.length - 1][this.valueField]),\n });\n }\n };\n this.getParentEl = (parent) => {\n if (parent.tagName === this.SEARCH_BAR_TAG) {\n this.isSearchBar = true;\n }\n else if (parent.tagName === \"IC-SELECT\") {\n if (parent.getAttribute(\"searchable\") !== null &&\n parent.getAttribute(\"searchable\") !== undefined) {\n this.isSearchableSelect = true;\n }\n else if (parent.getAttribute(\"multiple\") !== null &&\n parent.getAttribute(\"multiple\") !== undefined) {\n this.isMultiSelect = true;\n }\n }\n };\n // Open menu when up or down arrow keys are pressed\n this.arrowBehaviour = (event) => {\n event.preventDefault();\n this.handleMenuChange(true);\n };\n this.getMenuOptions = () => this.isSearchBar ? this.options : this.ungroupedOptions;\n // Set option that is focused and so should show focus state\n this.setHighlightedOption = (highlightedIndex) => {\n const menuOptions = this.getMenuOptions();\n menuOptions[highlightedIndex] &&\n !menuOptions[highlightedIndex].timedOut &&\n (this.optionHighlighted =\n menuOptions[highlightedIndex][this.valueField] || undefined);\n };\n // Determines keyboard behaviour when selection is automatic\n // (i.e. you don't have to press Enter select an option - just focus on it)\n // and menu is closed\n this.autoSetInputValueKeyboardOpen = (event) => {\n const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);\n this.keyboardNav = false;\n switch (event.key) {\n case \"ArrowDown\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n this.setNextOptionValue(selectedOptionIndex);\n break;\n case \"ArrowUp\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n this.setPreviousOptionValue(selectedOptionIndex);\n break;\n case \" \":\n case \"Enter\":\n if (event.target.id !== this.CLEAR_BUTTON_ID) {\n this.handleMenuChange(true);\n }\n break;\n }\n };\n this.selectHighlightedOption = (options, highlightedOptionIndex) => {\n if (!this.isLoading && !this.hasTimedOut) {\n this.keyboardNav = true;\n }\n const isOpen = this.isSearchBar || this.isSearchableSelect || this.open;\n if (isOpen) {\n if (highlightedOptionIndex >= 0) {\n if (options[highlightedOptionIndex] !== undefined) {\n if (this.isSearchBar &&\n options[highlightedOptionIndex].disabled === true) {\n this.disabledOptionSelected = true;\n }\n else {\n this.setInputValue(highlightedOptionIndex);\n }\n }\n }\n else {\n this.setInputValue(highlightedOptionIndex);\n }\n }\n else {\n this.handleMenuChange(true);\n }\n };\n // Check if option is selected based on the index of the option\n this.isOptionSelected = (index) => {\n const menuOptions = this.getMenuOptions();\n return this.value\n ? this.value.includes(menuOptions[index][this.valueField])\n : false;\n };\n // Deselect currently selected options when shift pressed, but keep certain options selected\n this.deselectSelectedOptions = (optionsToKeepSelected) => {\n const menuOptions = this.getMenuOptions();\n if (this.value) {\n const selectedOptionIndexes = this.value.map((value) => {\n return menuOptions.findIndex((option) => option[this.valueField] === value);\n });\n // Call setInputValue (which toggles the selected state) on options that need to be deselected\n selectedOptionIndexes.forEach((index) => !optionsToKeepSelected.includes(index) && this.setInputValue(index));\n }\n };\n // Determines keyboard behaviour when selection is manual (i.e. when you have to press Enter to select an option)\n this.manualSetInputValueKeyboardOpen = (event) => {\n const menuOptions = this.getMenuOptions();\n // For preventing focus disappearing on currently focused option when Shift / Cmd / Ctrl pressed\n // (i.e. when user is likely in the middle of executing a keyboard combination to select options)\n const isKeyboardCombination = event.shiftKey || event.metaKey || event.ctrlKey;\n const highlightedOptionIndex = this.getOptionHighlightedIndex();\n const clickedMultiOptionIndex = menuOptions.findIndex((option) => option[this.valueField] === this.multiOptionClicked);\n const getOptionId = (index) => { var _a; return (_a = Array.from(this.host.querySelectorAll(\"li\"))[index]) === null || _a === void 0 ? void 0 : _a.id; };\n // Space press should be equivalent to Enter when multi-select\n if (event.key === \" \" && this.isMultiSelect) {\n this.handleOptionSelect(event, highlightedOptionIndex);\n }\n else {\n switch (event.key) {\n case \"ArrowDown\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n if (this.multiOptionClicked) {\n // Set focus to option last clicked\n // Prevents it resetting to the top of the menu when user switches to using keyboard\n this.setHighlightedOption(clickedMultiOptionIndex);\n this.multiOptionClicked = null;\n }\n else {\n this.handleSingleShiftSelect(event, highlightedOptionIndex, menuOptions);\n if (highlightedOptionIndex < menuOptions.length - 1) {\n this.setHighlightedOption(highlightedOptionIndex + 1);\n this.menuOptionId.emit({\n optionId: getOptionId(highlightedOptionIndex + 1),\n });\n this.handleSingleShiftSelect(event, highlightedOptionIndex + 1, menuOptions);\n }\n else {\n this.setHighlightedOption(0);\n this.menuOptionId.emit({\n optionId: getOptionId(0),\n });\n this.handleSingleShiftSelect(event, 0, menuOptions);\n }\n // Deselect currently selected options if arrow was pressed for first time after shift is held\n if (this.isMultiSelect && this.shiftPressed) {\n this.deselectSelectedOptions([\n highlightedOptionIndex,\n this.getOptionHighlightedIndex(),\n ]);\n this.shiftPressed = false;\n }\n }\n this.lastOptionFocused = this.getOptionHighlightedIndex();\n this.preventIncorrectTabOrder = false;\n this.focusFromSearchKeypress = false;\n break;\n case \"ArrowUp\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n if (this.multiOptionClicked) {\n // Set focus to option last clicked\n // Prevents it resetting to the bottom of the menu when user switches to using keyboard\n this.setHighlightedOption(clickedMultiOptionIndex);\n this.multiOptionClicked = null;\n }\n else {\n this.handleSingleShiftSelect(event, highlightedOptionIndex, menuOptions);\n if (highlightedOptionIndex <= 0 ||\n highlightedOptionIndex > menuOptions.length + 1) {\n this.setHighlightedOption(menuOptions.length - 1);\n this.menuOptionId.emit({\n optionId: getOptionId(menuOptions.length - 1),\n });\n this.handleSingleShiftSelect(event, menuOptions.length - 1, menuOptions);\n }\n else {\n this.setHighlightedOption(highlightedOptionIndex - 1);\n this.menuOptionId.emit({\n optionId: getOptionId(highlightedOptionIndex - 1),\n });\n this.handleSingleShiftSelect(event, highlightedOptionIndex - 1, menuOptions);\n }\n // Deselect currently selected options if arrow was pressed for first time after shift is held\n if (this.isMultiSelect && this.shiftPressed) {\n this.deselectSelectedOptions([\n highlightedOptionIndex,\n this.getOptionHighlightedIndex(),\n ]);\n this.shiftPressed = false;\n }\n }\n this.lastOptionFocused = this.getOptionHighlightedIndex();\n this.preventIncorrectTabOrder = false;\n this.focusFromSearchKeypress = false;\n break;\n case \"Home\": {\n const startOptionIndex = 0;\n this.keyboardNav = true;\n event.preventDefault();\n this.arrowBehaviour(event);\n this.setHighlightedOption(startOptionIndex);\n this.menuOptionId.emit({\n optionId: getOptionId(startOptionIndex),\n });\n if (event.shiftKey && event.ctrlKey) {\n this.handleMultipleShiftSelect(startOptionIndex);\n }\n this.lastOptionFocused = startOptionIndex;\n this.lastOptionSelected = startOptionIndex;\n break;\n }\n case \"End\": {\n const endOptionIndex = menuOptions.length - 1;\n this.keyboardNav = true;\n event.preventDefault();\n this.arrowBehaviour(event);\n this.setHighlightedOption(endOptionIndex);\n this.menuOptionId.emit({\n optionId: getOptionId(endOptionIndex),\n });\n if (event.shiftKey && event.ctrlKey) {\n this.handleMultipleShiftSelect(endOptionIndex);\n }\n this.lastOptionFocused = endOptionIndex;\n this.lastOptionSelected = endOptionIndex;\n break;\n }\n case \" \":\n if (!isKeyboardCombination) {\n this.keyboardNav = false;\n }\n if (this.isSearchBar || this.isSearchableSelect) {\n break;\n }\n else {\n if (event.target.id !== this.CLEAR_BUTTON_ID) {\n this.handleMenuChange(true);\n }\n }\n break;\n case \"Enter\":\n event.preventDefault();\n if (!isKeyboardCombination) {\n this.keyboardNav = false;\n }\n this.handleOptionSelect(event, highlightedOptionIndex);\n break;\n case \"Escape\":\n if (this.open) {\n event.stopImmediatePropagation();\n }\n this.handleMenuChange(false);\n this.menuOptionId.emit({ optionId: undefined });\n break;\n case \"a\":\n // Checks if Cmd (meta) key is pressed if Mac device (while excluding meta key on Windows)\n // Otherwise, if a different OS, checks Ctrl key\n if ((isMacDevice() && event.metaKey) ||\n (!isMacDevice() && event.ctrlKey)) {\n this.emitSelectAllEvents();\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n }\n break;\n case \"Shift\":\n case \"Tab\":\n if (event.key === \"Shift\") {\n this.shiftPressed = true;\n }\n if (this.isSearchBar) {\n this.keyboardNav = true;\n }\n if (this.isMultiSelect) {\n if (this.open && !event.shiftKey && this.selectAllButton) {\n event.preventDefault();\n this.selectAllButton.focus(); // Move focus to select all button instead of focused option\n this.preventMenuFocus = true;\n this.preventClickOpen = true;\n this.optionHighlighted = undefined; // Stop any option focus states showing when focus moved to select all button\n }\n }\n else {\n this.preventIncorrectTabOrder = true;\n }\n break;\n default:\n if (!isKeyboardCombination) {\n this.keyboardNav = false;\n }\n this.focusOnSearchOrSelectInput(menuOptions, highlightedOptionIndex);\n }\n }\n };\n this.setInputValue = (highlightedOptionIndex) => {\n const menuOptions = this.getMenuOptions();\n if (menuOptions[highlightedOptionIndex] !== undefined) {\n this.menuOptionSelect.emit({\n value: menuOptions[highlightedOptionIndex][this.valueField],\n });\n if (this.closeOnSelect) {\n this.optionHighlighted = undefined;\n this.menuOptionId.emit({ optionId: undefined });\n }\n }\n if (this.closeOnSelect) {\n if (!this.hasTimedOut) {\n this.handleMenuChange(false);\n }\n else {\n this.parentEl.setFocus();\n }\n }\n };\n this.handleOptionClick = (event) => {\n const { value, label } = event.target.dataset;\n if (this.isMultiSelect) {\n const menuOptions = this.getMenuOptions();\n const selectedOptionIndex = menuOptions.findIndex((option) => option.value === value);\n this.handleOptionSelect(event, selectedOptionIndex, true);\n this.multiOptionClicked = value || null;\n }\n else {\n this.menuOptionSelect.emit({ value, label });\n this.handleMenuChange(false);\n }\n this.optionHighlighted = undefined;\n };\n this.handleRetry = () => {\n this.retryButtonClicked.emit({ value: this.value });\n };\n this.handleRetryKeyDown = (ev) => {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n ev.preventDefault();\n this.retryButtonClicked.emit({ value: this.value, keyPressed: ev.key });\n }\n };\n this.handleBlur = (event) => {\n var _a, _b, _c, _d;\n if (event.relatedTarget !== this.inputEl) {\n if (event.relatedTarget === this.selectAllButton) {\n (_a = this.menu) === null || _a === void 0 ? void 0 : _a.removeAttribute(this.ACTIVE_DESCENDANT);\n }\n if (!(((_b = this.menu) === null || _b === void 0 ? void 0 : _b.contains(event.relatedTarget)) ||\n event.relatedTarget === this.selectAllButton)) {\n this.handleMenuChange(false, this.hasPreviouslyBlurred);\n (_c = this.menu) === null || _c === void 0 ? void 0 : _c.removeAttribute(this.ACTIVE_DESCENDANT);\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n }\n }\n else {\n this.handleMenuChange(false);\n this.preventClickOpen = true;\n (_d = this.menu) === null || _d === void 0 ? void 0 : _d.removeAttribute(this.ACTIVE_DESCENDANT);\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n }\n if (!this.isSearchBar)\n this.hasPreviouslyBlurred = !!event.relatedTarget;\n };\n this.handleMouseDown = (event) => {\n event.preventDefault();\n };\n this.handleMenuKeyDown = (event) => {\n if (this.activationType === \"automatic\") {\n this.autoSetValueOnMenuKeyDown(event);\n }\n else if (this.activationType === \"manual\" && !this.isSearchBar) {\n this.manualSetInputValueKeyboardOpen(event);\n }\n };\n this.handleMenuKeyUp = (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n this.preventClickOpen = false;\n }\n if (event.key === \"Enter\" && this.disabledOptionSelected) {\n this.disabledOptionSelected = false;\n event.stopImmediatePropagation();\n }\n if (event.key === \"Shift\") {\n this.shiftPressed = false;\n }\n };\n this.handleSelectAllClick = () => {\n var _a;\n this.keyboardNav = false;\n (_a = this.menu) === null || _a === void 0 ? void 0 : _a.focus();\n this.emitSelectAllEvents();\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n };\n this.handleSelectAllBlur = (event) => {\n var _a;\n this.host.classList.remove(\"ic-select-select-all-focused\");\n if (!((_a = this.menu) === null || _a === void 0 ? void 0 : _a.contains(event.relatedTarget))) {\n this.handleMenuChange(false, false);\n }\n };\n this.handleSelectAllFocus = () => {\n this.host.classList.add(\"ic-select-select-all-focused\");\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n };\n // Fix for Safari - select all button click was causing menu to close\n this.handleSelectAllMouseDown = (event) => {\n event.preventDefault();\n };\n // When shift key is being used to select contiguous options one by one on a multi-select\n // I.e. holding shift and pressing up and down arrow keys\n this.handleSingleShiftSelect = (event, optionToSelectIndex, options) => {\n if (this.isMultiSelect &&\n event.shiftKey &&\n !this.isOptionSelected(optionToSelectIndex)) {\n this.selectHighlightedOption(options, optionToSelectIndex);\n this.lastOptionSelected = optionToSelectIndex;\n }\n };\n // When shift key is being used to select multiple options at once on a multi-select\n // I.e. holding shift when selecting another option\n this.handleMultipleShiftSelect = (lastOptionInSelection, useFocusForSelection = false, firstOptionSelected = null) => {\n this.shiftPressed = false;\n const firstOptionInSelection = firstOptionSelected === null\n ? this.getFirstOptionInSelection(useFocusForSelection)\n : firstOptionSelected;\n if (firstOptionInSelection !== null) {\n const optionsToSelect = [];\n if (firstOptionInSelection < lastOptionInSelection) {\n for (let i = firstOptionInSelection; i < lastOptionInSelection + 1; i++) {\n optionsToSelect.push(i);\n }\n }\n else {\n for (let i = firstOptionInSelection; i > lastOptionInSelection - 1; i--) {\n optionsToSelect.push(i);\n }\n }\n optionsToSelect.forEach((optionIndex) => !this.isOptionSelected(optionIndex) && this.setInputValue(optionIndex));\n this.deselectSelectedOptions(optionsToSelect);\n }\n };\n this.handleOptionSelect = (event, optionIndex, useFocusForSelection = false) => {\n const menuOptions = this.getMenuOptions();\n const firstOptionInSelection = this.getFirstOptionInSelection(useFocusForSelection);\n if (event.shiftKey && firstOptionInSelection !== null) {\n this.handleMultipleShiftSelect(optionIndex, useFocusForSelection, firstOptionInSelection);\n }\n else {\n this.selectHighlightedOption(menuOptions, optionIndex);\n }\n this.lastOptionFocused = optionIndex;\n this.lastOptionSelected = optionIndex;\n };\n this.getFirstOptionInSelection = (useFocusForSelection) => {\n return useFocusForSelection && this.lastOptionFocused !== null\n ? this.lastOptionFocused\n : this.lastOptionSelected !== null\n ? this.lastOptionSelected\n : null;\n };\n this.emitSelectAllEvents = () => {\n var _a, _b;\n // Select all if there is either no value or not all options are selected\n // 'true' means select all, 'false' means clear all\n this.menuOptionSelectAll.emit({\n select: !this.value || !(((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) === this.ungroupedOptions.length),\n });\n // Emit clear event if all options are selected\n if (((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) === this.ungroupedOptions.length) {\n this.icClear.emit();\n }\n };\n this.emitMenuKeyPress = (isNavKey, key) => {\n this.menuKeyPress.emit({ isNavKey: isNavKey, key: key });\n };\n // Determines keyboard behaviour when selection is automatic\n // (i.e. you don't have to press Enter select an option - just focus on it)\n // and menu is focused\n this.autoSetValueOnMenuKeyDown = (event) => {\n var _a, _b;\n event.cancelBubble = true;\n const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);\n const isSearchableSelect = !!this.inputEl && this.inputEl.tagName === \"INPUT\";\n this.keyboardNav = false;\n switch (event.key) {\n case \" \":\n event.preventDefault();\n break;\n case \"ArrowUp\":\n if (!this.hasTimedOut) {\n event.preventDefault();\n this.setPreviousOptionValue(selectedOptionIndex);\n this.keyboardNav = true;\n }\n break;\n case \"ArrowDown\":\n if (!this.hasTimedOut) {\n event.preventDefault();\n this.setNextOptionValue(selectedOptionIndex);\n this.keyboardNav = true;\n }\n break;\n case \"Home\":\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[0][this.valueField],\n });\n this.keyboardNav = true;\n break;\n case \"End\":\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[this.ungroupedOptions.length - 1][this.valueField],\n });\n this.keyboardNav = true;\n break;\n case \"Enter\":\n !this.hasTimedOut && this.handleMenuChange(false);\n break;\n case \"Escape\":\n this.handleMenuChange(false);\n break;\n case \"Backspace\":\n if (isSearchableSelect) {\n (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();\n }\n break;\n case \"Shift\":\n break;\n default:\n if (isSearchableSelect && event.key !== \"Tab\" && !this.hasTimedOut) {\n (_b = this.inputEl) === null || _b === void 0 ? void 0 : _b.focus();\n }\n if (event.key.length === 1) {\n this.keyboardNav = true;\n }\n break;\n }\n this.emitMenuKeyPress(this.keyboardNav, event.key);\n };\n this.getOptionId = (value) => {\n return `${this.menuId}-${value}`;\n };\n this.getOptionAriaLabel = (option, parentOption) => {\n let ariaLabel = option[this.labelField];\n if (option.description) {\n ariaLabel = `${ariaLabel}, ${option.description}`;\n }\n if (option.element) {\n ariaLabel = `${ariaLabel}, ${option.element.ariaLabel}`;\n }\n if (parentOption) {\n return `${ariaLabel}, ${parentOption[this.labelField]} group`;\n }\n else {\n return ariaLabel;\n }\n };\n this.getSortedOptions = (options) => {\n let sorted = [];\n if (options.sort) {\n sorted = options.sort((optionA, optionB) => optionA.recommended && !optionB.recommended ? -1 : 0);\n }\n return sorted;\n };\n this.getOptionHighlightedIndex = () => {\n const menuOptions = this.getMenuOptions();\n return menuOptions.findIndex((option) => option[this.valueField] === this.optionHighlighted);\n };\n this.isManualMode = this.activationType === \"manual\";\n this.scrollToSelected = (menu) => {\n var _a;\n const selectedOption = this.selectOnEnter\n ? this.host.querySelector(`li[data-value=\"${this.optionHighlighted}\"]`)\n : menu.querySelector(\".option[aria-selected='true']\");\n if (selectedOption) {\n const elTop = selectedOption.offsetTop + selectedOption.offsetHeight;\n if (elTop > menu.scrollTop + menu.offsetHeight ||\n elTop < menu.scrollTop + menu.offsetHeight) {\n menu.scrollTop = selectedOption.offsetTop;\n }\n // 'aria-activedescendant' affects screen reader focus\n // https://www.w3.org/TR/2017/WD-wai-aria-practices-1.1-20170628/#kbd_focus_activedescendant\n (_a = this.menu) === null || _a === void 0 ? void 0 : _a.setAttribute(this.ACTIVE_DESCENDANT, selectedOption.id);\n selectedOption.focus();\n }\n };\n // Set 'ungroupedOptions' variable and emit its value\n // - this is all the options with disabled options and group titles removed\n this.loadUngroupedOptions = () => {\n if (this.options.length > 0 && this.options.map) {\n this.options.map((option) => {\n if (option.children) {\n option.children.map((option) => !option.disabled && this.ungroupedOptions.push(option));\n }\n else if (!option.disabled) {\n this.ungroupedOptions.push(option);\n }\n });\n }\n this.ungroupedOptions = this.getSortedOptions(this.ungroupedOptions);\n this.ungroupedOptionsSet.emit({ options: this.ungroupedOptions });\n };\n this.setMenuScrollbar = () => {\n var _a;\n let optionsHeight = 0;\n this.host\n .querySelectorAll(\".option, .option-group-title\")\n .forEach((option) => (optionsHeight += option.clientHeight));\n if (optionsHeight >= 320) {\n (_a = this.menu) === null || _a === void 0 ? void 0 : _a.classList.add(\"menu-scroll\");\n }\n };\n this.handleTimeoutBlur = (ev) => {\n this.timeoutBlur.emit({ ev });\n };\n this.optionContent = (option, selected) => {\n var _a;\n const showCheckIcon = !!option[this.valueField] &&\n !!this.value &&\n selected &&\n ((_a = this.parentEl) === null || _a === void 0 ? void 0 : _a.tagName) !== this.SEARCH_BAR_TAG;\n return (h(Fragment, null, option.loading && h(\"ic-loading-indicator\", { size: \"icon\" }), h(\"div\", { class: {\n \"option-text-container\": true,\n \"show-check-icon\": showCheckIcon,\n } }, h(\"div\", { class: \"option-label\" }, option.icon && (h(\"div\", { class: \"option-icon\", innerHTML: option.icon, \"aria-hidden\": \"true\" })), h(\"ic-typography\", { variant: \"body\", \"aria-hidden\": \"true\" }, option[this.labelField])), option.description && (h(\"ic-typography\", { id: `${this.getOptionId(option[this.valueField])}-description`, class: \"option-description\", variant: \"caption\", \"aria-hidden\": \"true\" }, h(\"p\", null, option.description))), option.element && (h(\"div\", { class: \"option-element\", innerHTML: option.element.component, \"aria-hidden\": \"true\" }))), showCheckIcon && h(\"span\", { class: \"check-icon\", innerHTML: Check })));\n };\n this.displayOption = (option, selected, index, parentOption) => {\n const { open, keyboardNav, isManualMode, initialOptionsListRender, optionHighlighted, options, } = this;\n return (h(\"li\", { id: this.getOptionId(option[this.valueField]), class: {\n option: true,\n \"focused-option\": isManualMode\n ? (keyboardNav || initialOptionsListRender) &&\n option[this.valueField] === optionHighlighted\n : keyboardNav && selected,\n \"last-recommended-option\": !!(option.recommended &&\n options[index + 1] &&\n !options[index + 1].recommended),\n \"disabled-option\": !!option.disabled,\n \"loading-option\": !!option.loading,\n timeout: !!option.timedOut,\n }, role: \"option\", tabindex: open &&\n (selected || option[this.valueField] === optionHighlighted) &&\n keyboardNav\n ? \"0\"\n : \"-1\", \"aria-label\": this.getOptionAriaLabel(option, parentOption), \"aria-selected\": selected ? \"true\" : \"false\", \"aria-disabled\": option.disabled ? \"true\" : \"false\", onClick: !option.timedOut && !option.loading\n ? this.handleOptionClick\n : undefined, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, \"data-value\": option[this.valueField], \"data-label\": option[this.labelField] }, option.timedOut ? (h(Fragment, null, h(\"div\", { class: \"loading-error-info\" }, h(\"svg\", { class: \"error-icon-svg\", \"aria-labelledby\": \"error-title\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\", fill: \"#000000\" }, h(\"title\", { id: \"error-title\" }, \"Error\"), h(\"g\", { id: \"close-octagon\" }, h(\"path\", { id: \"Vector\", d: \"M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41\" }))), h(\"ic-typography\", { variant: \"label\" }, option[this.labelField])), h(\"ic-button\", { size: \"small\", variant: \"tertiary\", onClick: this.handleRetry, onKeyDown: this.handleRetryKeyDown, onBlur: this.handleTimeoutBlur, id: \"retry-button\" }, \"Retry\"))) : (this.optionContent(option, selected))));\n };\n }\n watchOpenHandler() {\n if (!this.open && this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n watchOptionsHandler(newOptions) {\n this.hasTimedOut = newOptions.some((opt) => opt.timedOut);\n this.isLoading = newOptions.some((opt) => opt.loading);\n this.ungroupedOptions = [];\n this.loadUngroupedOptions();\n }\n connectedCallback() {\n if (this.parentEl)\n this.getParentEl(this.parentEl);\n if (this.isSearchBar) {\n if (this.searchMode === \"navigation\")\n this.setHighlightedOption(0);\n this.initialOptionsListRender = true;\n }\n }\n disconnectedCallback() {\n var _a, _b, _c;\n (_a = this.popperInstance) === null || _a === void 0 ? void 0 : _a.destroy();\n (_b = this.parentEl) === null || _b === void 0 ? void 0 : _b.removeEventListener(\"icClear\", this.handleClearListener);\n (_c = this.parentEl) === null || _c === void 0 ? void 0 : _c.removeEventListener(\"icSubmitSearch\", this.handleSubmitSearch);\n }\n componentWillLoad() {\n var _a, _b, _c, _d;\n this.loadUngroupedOptions();\n (_a = this.parentEl) === null || _a === void 0 ? void 0 : _a.addEventListener(\"icClear\", this.handleClearListener);\n (_b = this.parentEl) === null || _b === void 0 ? void 0 : _b.addEventListener(\"icSubmitSearch\", this.handleSubmitSearch);\n this.hasTimedOut = (_c = this.options) === null || _c === void 0 ? void 0 : _c.some((opt) => opt.timedOut);\n this.isLoading = (_d = this.options) === null || _d === void 0 ? void 0 : _d.some((opt) => opt.loading);\n }\n componentDidLoad() {\n if (this.isSearchBar &&\n this.parentEl.disableAutoFiltering) {\n this.focusFromSearchKeypress = true;\n }\n onComponentRequiredPropUndefined([\n { prop: this.open, propName: \"open\" },\n { prop: this.options, propName: \"options\" },\n { prop: this.menuId, propName: \"menu-id\" },\n { prop: this.inputLabel, propName: \"input-label\" },\n //NOTE: no check for value, input-el or anchor-el as otherwise get console errors on first load of select component\n ], \"Menu\");\n }\n componentDidUpdate() {\n const inputValueInOptions = this.options.some((option) => option[this.valueField] === this.value);\n if (this.menu &&\n this.open &&\n this.options.length !== 0 &&\n !this.preventMenuFocus) {\n if (this.value &&\n this.keyboardNav &&\n inputValueInOptions &&\n this.autofocusOnSelected &&\n !this.isSearchableSelect) {\n this.scrollToSelected(this.menu);\n }\n else if (this.selectOnEnter) {\n this.menu.focus();\n }\n else if (!!this.optionHighlighted &&\n !this.focusFromSearchKeypress &&\n !this.preventIncorrectTabOrder) {\n const highlightedEl = this.host.querySelector(`li[data-value=\"${this.optionHighlighted}\"]`);\n if (highlightedEl) {\n this.menu.setAttribute(this.ACTIVE_DESCENDANT, highlightedEl.id);\n highlightedEl.focus();\n }\n }\n else if (this.inputEl && this.inputEl.tagName !== \"INPUT\") {\n this.menu.focus();\n }\n }\n if (this.menu && this.open && !this.value && this.selectOnEnter) {\n this.scrollToSelected(this.menu);\n }\n this.preventMenuFocus = false;\n }\n componentDidRender() {\n if (this.open && !this.popperInstance && this.anchorEl) {\n this.initPopperJs(this.anchorEl);\n }\n if (this.open && !!this.options.length) {\n this.setMenuScrollbar();\n }\n }\n /**\n * @internal If menu is opened with the mouse, emit menuStateChange custom event.\n */\n async handleClickOpen() {\n if (!this.preventClickOpen) {\n this.menuStateChange.emit({ open: !this.open });\n this.keyboardNav = false;\n }\n this.preventClickOpen = false;\n }\n /**\n * Used alongside activationType\n * If menu is opened via keyboard navigation (i.e. Enter, ArrowUp or ArrowDown), emit optionSelect custom event.\n * @param {KeyboardEvent} event The keyboard event which is available when handleKeyboardOpen is invoked.\n */\n async handleKeyboardOpen(event) {\n if (this.activationType === \"automatic\") {\n this.autoSetInputValueKeyboardOpen(event);\n }\n else {\n this.manualSetInputValueKeyboardOpen(event);\n }\n }\n /**\n * @internal Used to highlight the first option in the menu.\n */\n async handleSetFirstOption() {\n this.setHighlightedOption(0);\n }\n /**\n * @internal Used to initialize popperJS with an anchor element.\n * 5/12/2023: Tested with Floating UI, however, discovered inconsistent\n * boundary behaviour so sticking with PopperJS.\n */\n async initPopperJs(anchor) {\n // Placements set to \"-start\" to accommodate for custom menu width - menu should always be aligned to the left\n this.popperInstance = createPopper(anchor, this.host, Object.assign({ placement: \"bottom-start\", modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 7],\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top-start\"],\n rootBoundary: \"viewport\",\n },\n },\n ] }, this.popperProps));\n }\n /**\n * @internal This method allows props to be added to the PopperJS createPopper instance outside of the menu\n * @param props object - createPopper props set externally\n */\n async setExternalPopperProps(props) {\n this.popperProps = props;\n }\n focusOnSearchOrSelectInput(menuOptions, highlightedOptionIndex) {\n if (!menuOptions[highlightedOptionIndex])\n return;\n if (this.isSearchBar) {\n this.parentEl.setFocus();\n if (this.searchMode === \"navigation\")\n this.setHighlightedOption(0);\n }\n if (this.isSearchableSelect) {\n this.parentEl.setFocus();\n }\n this.focusFromSearchKeypress = true;\n }\n render() {\n const { inputLabel, options, menuId, value, fullWidth, hasTimedOut, isLoading, size, open, inputEl, keyboardNav, parentEl, SEARCH_BAR_TAG, } = this;\n const selectAllButtonText = `${(value === null || value === void 0 ? void 0 : value.length) === this.ungroupedOptions.length ? \"Clear\" : \"Select\"} all`;\n const hasNoResults = this.host.classList.contains(\"no-results\");\n return (h(Host, { key: '6c3e0c39d138c8622c3748c16294f0e21e202909', class: {\n \"ic-menu-full-width\": !!fullWidth,\n \"ic-menu-no-focus\": ((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) === \"INPUT\" &&\n (parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) !== SEARCH_BAR_TAG) ||\n hasTimedOut ||\n isLoading,\n [`ic-menu-${size}`]: true,\n \"ic-menu-open\": open && options.length !== 0,\n \"ic-menu-multiple\": this.isMultiSelect,\n } }, options.length !== 0 && (h(\"ul\", { key: '69ea4424544b03896b65f0b30221872e131a04f6', id: menuId, class: \"menu\", role: \"listbox\", \"aria-label\": `${inputLabel} pop-up`, \"aria-multiselectable\": this.isMultiSelect ? \"true\" : \"false\", tabindex: open &&\n !keyboardNav &&\n ((inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) !== \"INPUT\" ||\n (parentEl === null || parentEl === void 0 ? void 0 : parentEl.tagName) === SEARCH_BAR_TAG)\n ? \"0\"\n : \"-1\", ref: (el) => (this.menu = el), onKeyDown: this.handleMenuKeyDown, onKeyUp: this.handleMenuKeyUp, onBlur: this.handleBlur }, this.getSortedOptions(options).map((option, index) => {\n if (option.children) {\n if (option.children.length > 0) {\n return (h(\"div\", null, h(\"ic-typography\", { class: \"option-group-title\", role: \"presentation\", variant: \"subtitle-small\" }, h(\"p\", null, option[this.labelField])), option.children.map((childOption) => childOption.label &&\n this.displayOption(childOption, this.isMultiSelect\n ? value === null || value === void 0 ? void 0 : value.includes(childOption[this.valueField])\n : childOption[this.valueField] === value, index, option))));\n }\n else {\n return null;\n }\n }\n else {\n // Display option only if it has a label (rather than displaying an empty space)\n return (option.label &&\n this.displayOption(option, this.isMultiSelect\n ? value === null || value === void 0 ? void 0 : value.includes(option[this.valueField])\n : option[this.valueField] === value, index));\n }\n }))), options.length !== 0 &&\n this.isMultiSelect &&\n !isLoading &&\n !hasTimedOut &&\n !hasNoResults && (h(\"div\", { key: '17553f6e5ecd81b892894244b3a3a143b998c23c', class: \"option-bar\" }, h(\"ic-typography\", { key: '7f4ce460524beb936e4d4ef2bbbcedd03cacec5c' }, h(\"p\", { key: 'aae0e564a9caf83b09d4ee8daa3d9409b7d69501' }, `${value ? value.length : 0}/${getOptionsWithoutGroupTitlesCount(this.options)} selected`)), h(\"ic-button\", { key: '692b840395eafd8c4c5dd0f21bab2082debb44bf', class: \"select-all-button\", \"aria-label\": `${selectAllButtonText} options for ${inputLabel}`, ref: (el) => (this.selectAllButton = el), variant: \"tertiary\", onClick: this.handleSelectAllClick, onMouseDown: this.handleSelectAllMouseDown, onBlur: this.handleSelectAllBlur, onFocus: this.handleSelectAllFocus, size: size === \"small\" ? \"small\" : \"medium\" }, selectAllButtonText)))));\n }\n static get is() { return \"ic-menu\"; }\n static get encapsulation() { return \"scoped\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-menu.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-menu.css\"]\n };\n }\n static get properties() {\n return {\n \"activationType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcActivationTypes\",\n \"resolved\": \"\\\"automatic\\\" | \\\"manual\\\"\",\n \"references\": {\n \"IcActivationTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcActivationTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Determines whether options manually set as values (by pressing 'Enter') when they receive focus using keyboard navigation.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"activation-type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"automatic\\\"\"\n },\n \"anchorEl\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLElement\",\n \"resolved\": \"HTMLElement | undefined\",\n \"references\": {\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The reference to an anchor element the menu will position itself from when rendered.\"\n },\n \"getter\": false,\n \"setter\": false\n },\n \"autofocusOnSelected\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, autofocus will be applied on selected item when menu is open.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"autofocus-on-selected\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"closeOnSelect\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the menu will close when an option is selected.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"close-on-select\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the menu will fill the width of the container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"inputEl\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLElement\",\n \"resolved\": \"HTMLElement | undefined\",\n \"references\": {\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The reference to the input element.\"\n },\n \"getter\": false,\n \"setter\": false\n },\n \"inputLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label for the input element.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"input-label\",\n \"reflect\": false\n },\n \"labelField\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The custom name for the label field for IcMenuOption.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label-field\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"label\\\"\"\n },\n \"menuId\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID of the menu.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"menu-id\",\n \"reflect\": false\n },\n \"open\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the menu will be displayed open.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"open\",\n \"reflect\": true\n },\n \"parentEl\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLElement\",\n \"resolved\": \"HTMLElement | undefined\",\n \"references\": {\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"- The parent element if ic-menu is nested inside another component.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false\n },\n \"searchMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSearchBarSearchModes\",\n \"resolved\": \"\\\"navigation\\\" | \\\"query\\\"\",\n \"references\": {\n \"IcSearchBarSearchModes\": {\n \"location\": \"import\",\n \"path\": \"../ic-search-bar/ic-search-bar.types\",\n \"id\": \"src/components/ic-search-bar/ic-search-bar.types.ts::IcSearchBarSearchModes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specify the mode search bar uses to search. `navigation` allows for quick lookups of a set of values, `query` allows for more general searches.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"search-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"navigation\\\"\"\n },\n \"selectOnEnter\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"select-on-enter\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the menu.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"medium\\\"\"\n },\n \"options\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcMenuOption[]\",\n \"resolved\": \"IcMenuOption[]\",\n \"references\": {\n \"IcMenuOption\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcMenuOption\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The possible menu selection options.\"\n },\n \"getter\": false,\n \"setter\": false\n },\n \"value\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | string[]\",\n \"resolved\": \"string | string[]\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The value of the currently selected option - or array of values (if multiple options allowed).\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"value\",\n \"reflect\": false\n },\n \"valueField\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The custom name for the value field for IcMenuOption.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"value-field\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"value\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"focusFromSearchKeypress\": {},\n \"initialOptionsListRender\": {},\n \"keyboardNav\": {},\n \"optionHighlighted\": {},\n \"preventIncorrectTabOrder\": {},\n \"menuOptions\": {},\n \"popperProps\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icClear\",\n \"name\": \"icClear\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the clear all button is clicked.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"menuKeyPress\",\n \"name\": \"menuKeyPress\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when key is pressed while menu is open.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"{ isNavKey: boolean; key: string }\",\n \"resolved\": \"{ isNavKey: boolean; key: string; }\",\n \"references\": {}\n }\n }, {\n \"method\": \"menuOptionId\",\n \"name\": \"menuOptionId\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when an option has been highlighted.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcMenuOptionIdEventDetail\",\n \"resolved\": \"IcMenuOptionIdEventDetail\",\n \"references\": {\n \"IcMenuOptionIdEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-menu.types\",\n \"id\": \"src/components/ic-menu/ic-menu.types.ts::IcMenuOptionIdEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"menuOptionSelect\",\n \"name\": \"menuOptionSelect\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when an option is selected.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcOptionSelectEventDetail\",\n \"resolved\": \"IcOptionSelectEventDetail\",\n \"references\": {\n \"IcOptionSelectEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-menu.types\",\n \"id\": \"src/components/ic-menu/ic-menu.types.ts::IcOptionSelectEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"menuOptionSelectAll\",\n \"name\": \"menuOptionSelectAll\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when all options are selected or deselected.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"{ select: boolean }\",\n \"resolved\": \"{ select: boolean; }\",\n \"references\": {}\n }\n }, {\n \"method\": \"menuStateChange\",\n \"name\": \"menuStateChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when state of menu changes (i.e. open or closed).\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcMenuChangeEventDetail\",\n \"resolved\": \"IcMenuChangeEventDetail\",\n \"references\": {\n \"IcMenuChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-menu.types\",\n \"id\": \"src/components/ic-menu/ic-menu.types.ts::IcMenuChangeEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"retryButtonClicked\",\n \"name\": \"retryButtonClicked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the retry button is clicked.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcMultiValueEventDetail\",\n \"resolved\": \"IcMultiValueEventDetail\",\n \"references\": {\n \"IcMultiValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcMultiValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"timeoutBlur\",\n \"name\": \"timeoutBlur\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the timeout menu loses focus.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"{ ev: FocusEvent }\",\n \"resolved\": \"{ ev: FocusEvent; }\",\n \"references\": {\n \"FocusEvent\": {\n \"location\": \"global\",\n \"id\": \"global::FocusEvent\"\n }\n }\n }\n }, {\n \"method\": \"ungroupedOptionsSet\",\n \"name\": \"ungroupedOptionsSet\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the ungrouped options have been set.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"{ options: IcMenuOption[] }\",\n \"resolved\": \"{ options: IcMenuOption[]; }\",\n \"references\": {\n \"IcMenuOption\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcMenuOption\"\n }\n }\n }\n }];\n }\n static get methods() {\n return {\n \"handleClickOpen\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If menu is opened with the mouse, emit menuStateChange custom event.\"\n }]\n }\n },\n \"handleKeyboardOpen\": {\n \"complexType\": {\n \"signature\": \"(event: KeyboardEvent) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"event\",\n \"type\": \"KeyboardEvent\",\n \"docs\": \"The keyboard event which is available when handleKeyboardOpen is invoked.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n },\n \"KeyboardEvent\": {\n \"location\": \"global\",\n \"id\": \"global::KeyboardEvent\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Used alongside activationType\\nIf menu is opened via keyboard navigation (i.e. Enter, ArrowUp or ArrowDown), emit optionSelect custom event.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"event The keyboard event which is available when handleKeyboardOpen is invoked.\"\n }]\n }\n },\n \"handleSetFirstOption\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Used to highlight the first option in the menu.\"\n }]\n }\n },\n \"initPopperJs\": {\n \"complexType\": {\n \"signature\": \"(anchor: HTMLElement) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"anchor\",\n \"type\": \"HTMLElement\",\n \"docs\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n },\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Used to initialize popperJS with an anchor element.\\n5/12/2023: Tested with Floating UI, however, discovered inconsistent\\nboundary behaviour so sticking with PopperJS.\"\n }]\n }\n },\n \"setExternalPopperProps\": {\n \"complexType\": {\n \"signature\": \"<T extends Partial<Options>>(props: T) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"props\",\n \"type\": \"T\",\n \"docs\": \"object - createPopper props set externally\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n },\n \"Partial\": {\n \"location\": \"global\",\n \"id\": \"global::Partial\"\n },\n \"Options\": {\n \"location\": \"import\",\n \"path\": \"@popperjs/core\",\n \"id\": \"node_modules::Options\"\n },\n \"T\": {\n \"location\": \"global\",\n \"id\": \"global::T\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"This method allows props to be added to the PopperJS createPopper instance outside of the menu\"\n }, {\n \"name\": \"param\",\n \"text\": \"props object - createPopper props set externally\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"host\"; }\n static get watchers() {\n return [{\n \"propName\": \"open\",\n \"methodName\": \"watchOpenHandler\"\n }, {\n \"propName\": \"options\",\n \"methodName\": \"watchOptionsHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-menu.js.map\n"],"mappings":"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","ignoreList":[]}
|