@ukic/canary-web-components 2.0.0-canary.25 → 2.0.0-canary.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  3. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-data-table.cjs.entry.js +5 -3
  7. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-empty-state_2.cjs.entry.js +15 -9
  9. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-pagination_4.cjs.entry.js +6 -6
  11. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-popover-menu.cjs.entry.js +18 -12
  13. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-search-bar.cjs.entry.js +14 -27
  15. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-tab-context.cjs.entry.js +68 -145
  17. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-tab-panel.cjs.entry.js +5 -13
  19. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-tab.cjs.entry.js +9 -10
  21. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-toast-region.cjs.entry.js +6 -0
  23. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-typography.cjs.entry.js +3 -1
  25. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  26. package/dist/cjs/loader.cjs.js +1 -1
  27. package/dist/collection/components/ic-data-table/ic-data-table.css +5 -1
  28. package/dist/collection/components/ic-data-table/ic-data-table.js +4 -2
  29. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  30. package/dist/collection/components/ic-data-table/story-data.js +46 -5
  31. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  32. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +46 -14
  33. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  34. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js +2 -0
  35. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js.map +1 -0
  36. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js +20 -2
  37. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js.map +1 -1
  38. package/dist/components/ic-accordion.js +1 -1
  39. package/dist/components/ic-accordion.js.map +1 -1
  40. package/dist/components/ic-alert2.js +1 -1
  41. package/dist/components/ic-alert2.js.map +1 -1
  42. package/dist/components/ic-data-table.js +5 -3
  43. package/dist/components/ic-data-table.js.map +1 -1
  44. package/dist/components/ic-pagination-bar2.js +18 -10
  45. package/dist/components/ic-pagination-bar2.js.map +1 -1
  46. package/dist/components/ic-popover-menu.js +20 -13
  47. package/dist/components/ic-popover-menu.js.map +1 -1
  48. package/dist/components/ic-search-bar.js +14 -27
  49. package/dist/components/ic-search-bar.js.map +1 -1
  50. package/dist/components/ic-select2.js +5 -5
  51. package/dist/components/ic-select2.js.map +1 -1
  52. package/dist/components/ic-tab-context.js +68 -145
  53. package/dist/components/ic-tab-context.js.map +1 -1
  54. package/dist/components/ic-tab-panel.js +6 -17
  55. package/dist/components/ic-tab-panel.js.map +1 -1
  56. package/dist/components/ic-tab.js +9 -10
  57. package/dist/components/ic-tab.js.map +1 -1
  58. package/dist/components/ic-text-field2.js +1 -1
  59. package/dist/components/ic-text-field2.js.map +1 -1
  60. package/dist/components/ic-toast-region.js +6 -0
  61. package/dist/components/ic-toast-region.js.map +1 -1
  62. package/dist/components/ic-typography2.js +3 -1
  63. package/dist/components/ic-typography2.js.map +1 -1
  64. package/dist/core/core.esm.js +1 -1
  65. package/dist/core/core.esm.js.map +1 -1
  66. package/dist/core/{p-13993bf3.entry.js → p-01bc462e.entry.js} +2 -2
  67. package/dist/core/p-01bc462e.entry.js.map +1 -0
  68. package/dist/core/p-05ae9a59.entry.js +2 -0
  69. package/dist/core/p-05ae9a59.entry.js.map +1 -0
  70. package/dist/core/{p-989310a8.entry.js → p-0cf856e4.entry.js} +2 -2
  71. package/dist/core/p-0cf856e4.entry.js.map +1 -0
  72. package/dist/core/{p-2ee5d3fb.entry.js → p-34b333de.entry.js} +2 -2
  73. package/dist/core/p-34b333de.entry.js.map +1 -0
  74. package/dist/core/{p-6b1fcf87.entry.js → p-383ba7e8.entry.js} +2 -2
  75. package/dist/core/p-383ba7e8.entry.js.map +1 -0
  76. package/dist/core/p-6ca98c5d.entry.js +2 -0
  77. package/dist/core/p-6ca98c5d.entry.js.map +1 -0
  78. package/dist/core/{p-0ec04c16.entry.js → p-a7331e7c.entry.js} +2 -2
  79. package/dist/core/p-a7331e7c.entry.js.map +1 -0
  80. package/dist/core/p-b535c802.entry.js +2 -0
  81. package/dist/core/p-b535c802.entry.js.map +1 -0
  82. package/dist/core/{p-fa77211d.entry.js → p-cb156309.entry.js} +2 -2
  83. package/dist/core/p-cb156309.entry.js.map +1 -0
  84. package/dist/core/p-e50af3df.entry.js +2 -0
  85. package/dist/core/p-e50af3df.entry.js.map +1 -0
  86. package/dist/core/p-f5fbfbc9.entry.js +2 -0
  87. package/dist/core/p-f5fbfbc9.entry.js.map +1 -0
  88. package/dist/core/p-fc007ce4.entry.js +2 -0
  89. package/dist/core/p-fc007ce4.entry.js.map +1 -0
  90. package/dist/esm/core.js +1 -1
  91. package/dist/esm/ic-accordion.entry.js +1 -1
  92. package/dist/esm/ic-accordion.entry.js.map +1 -1
  93. package/dist/esm/ic-alert.entry.js +1 -1
  94. package/dist/esm/ic-alert.entry.js.map +1 -1
  95. package/dist/esm/ic-data-table.entry.js +5 -3
  96. package/dist/esm/ic-data-table.entry.js.map +1 -1
  97. package/dist/esm/ic-empty-state_2.entry.js +15 -9
  98. package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
  99. package/dist/esm/ic-pagination_4.entry.js +6 -6
  100. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  101. package/dist/esm/ic-popover-menu.entry.js +18 -12
  102. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  103. package/dist/esm/ic-search-bar.entry.js +14 -27
  104. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  105. package/dist/esm/ic-tab-context.entry.js +68 -145
  106. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  107. package/dist/esm/ic-tab-panel.entry.js +5 -13
  108. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  109. package/dist/esm/ic-tab.entry.js +9 -10
  110. package/dist/esm/ic-tab.entry.js.map +1 -1
  111. package/dist/esm/ic-toast-region.entry.js +6 -0
  112. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  113. package/dist/esm/ic-typography.entry.js +3 -1
  114. package/dist/esm/ic-typography.entry.js.map +1 -1
  115. package/dist/esm/loader.js +1 -1
  116. package/dist/types/components/ic-data-table/story-data.d.ts +15 -0
  117. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +9 -4
  118. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.types.d.ts +4 -0
  119. package/dist/types/components.d.ts +13 -3
  120. package/hydrate/index.js +157 -234
  121. package/package.json +6 -6
  122. package/dist/collection/components/ic-select-with-multi/test/a11y/ic-select.test.a11y.js +0 -146
  123. package/dist/collection/components/ic-select-with-multi/test/a11y/ic-select.test.a11y.js.map +0 -1
  124. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.e2e.js +0 -2040
  125. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.e2e.js.map +0 -1
  126. package/dist/core/p-0ec04c16.entry.js.map +0 -1
  127. package/dist/core/p-13993bf3.entry.js.map +0 -1
  128. package/dist/core/p-216fbd5e.entry.js +0 -2
  129. package/dist/core/p-216fbd5e.entry.js.map +0 -1
  130. package/dist/core/p-2ee5d3fb.entry.js.map +0 -1
  131. package/dist/core/p-3ba4335c.entry.js +0 -2
  132. package/dist/core/p-3ba4335c.entry.js.map +0 -1
  133. package/dist/core/p-40e5fa80.entry.js +0 -2
  134. package/dist/core/p-40e5fa80.entry.js.map +0 -1
  135. package/dist/core/p-6af080d3.entry.js +0 -2
  136. package/dist/core/p-6af080d3.entry.js.map +0 -1
  137. package/dist/core/p-6b1fcf87.entry.js.map +0 -1
  138. package/dist/core/p-9777ebb1.entry.js +0 -2
  139. package/dist/core/p-9777ebb1.entry.js.map +0 -1
  140. package/dist/core/p-989310a8.entry.js.map +0 -1
  141. package/dist/core/p-c98ce508.entry.js +0 -2
  142. package/dist/core/p-c98ce508.entry.js.map +0 -1
  143. package/dist/core/p-fa77211d.entry.js.map +0 -1
  144. package/dist/types/components/ic-select-with-multi/test/a11y/ic-select.test.a11y.d.ts +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"names":["icPaginationCss","Pagination","constructor","hostRef","this","handleClickFirst","currentPage","icPageChange","emit","value","handleClickPrevious","handleClickNext","handleClickLast","pages","firstButton","h","id","appearance","onClick","class","disabled","variant","innerHTML","paginationFirstLast","previousButton","paginationNextPrevious","nextButton","lastButton","renderStartEllipsis","type","renderEndEllipsis","renderStartItems","startItems","map","page","selected","renderEndItems","endItems","renderMiddleItems","midItems","endEllipsis","startEllipsis","adjacentCount","boundaryCount","defaultPage","hideCurrentPage","hideFirstAndLastPageButton","label","undefined","watchAdjacentCountHandler","watchBoundaryCountHandler","watchNumberPagesHandler","watchPageChangeHandler","watchTypeHandler","startItemCount","endStart","midStart","midEnd","i","push","numItems","componentWillLoad","removeDisabledFalse","el","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","paginationItemClickHandler","ev","detail","setCurrentPage","console","error","render","Host","role","icPaginationItemCss","PaginationItem","handleClick","paginationItemClick","capitalizedLabel","watchLabelHandler","capitalize","tabindex","icSelectCss","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","Select","hasSetDefaultValue","inheritedAttributes","initialOptionsEmpty","inputId","menuId","searchableMenuItemSelected","ungroupedOptions","hostMutationObserver","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","addedNodes","removedNodes","includes","getAttribute","checkSlotInChildMutations","forceUpdate","handleRetry","_a","keyPressed","searchableSelectElement","focus","blurredBecauseButtonPressed","retryButtonClick","icRetryLoad","hiddenInputValue","emitIcChange","searchable","clearTimeout","debounceIcChange","window","setTimeout","icChange","currDebounce","emitImmediateIcChange","deduplicateOptions","options","uniqueValues","dedupedOptions","dedupedChildren","option","children","child","warn","modifiedParent","Object","assign","setOptionsValuesFromLabels","length","setUngroupedOptions","event","setTextColor","nativeSelectElement","selectedIndex","className","setMenuChange","open","getLabelFromValue","uniqueOptions","getFilteredChildMenuOptions","getFilteredMenuOptions","includeDescriptionsInSearch","searchableSelectInputValue","searchMatchPosition","pressedCharacters","newOption","handleNativeSelectChange","icOptionSelect","handleCustomSelectChange","emptyOptionListText","currValue","inputValueToFilter","getValueFromLabel","ariaActiveDescendant","optionId","handleMenuChange","handleFocusIndicatorDisplay","handleMenuKeyPress","cancelBubble","handleCharacterKeyDown","key","handleMenuValueChange","focusIndicator","shadowRoot","querySelector","classList","add","remove","handleMouseDown","preventDefault","isExternalFiltering","disableFilter","menu","filteredOptions","hasTimedOut","loading","noOptions","handleClickOpen","handleExpandIconMouseDown","handleClear","stopPropagation","timeoutTimer","icClear","customSelectElement","characterKeyPressTimer","handleFilter","handleNativeSelectKeyDown","handleKeyDown","isArrowKey","handleKeyboardOpen","handleClearButtonFocus","clearButtonFocused","handleClearButtonBlur","retryButton","relatedTarget","isGrouped","newFilteredOptions","menuOptionsFiltered","includeGroupTitlesInSearch","indexOf","noChildOptionsWhenFiltered","triggerLoading","loadingLabel","timeout","loadingErrorLabel","timedOut","find","handleSearchableSelectInput","target","icInput","debounceAriaLiveUpdate","updateSearchableSelectResultAriaLive","searchableSelectResultsStatusEl","innerText","getDefaultValue","onFocus","icFocus","onBlur","tagName","isSearchableAndNoFocusedInternalElements","Array","from","querySelectorAll","clearButton","icBlur","onTimeoutBlur","handleFormReset","initialValue","charactersUntilSuggestions","form","formaction","formenctype","formmethod","formnovalidate","formtarget","fullWidth","helperText","hideLabel","name","placeholder","readonly","required","selectOnEnter","showClearButton","size","small","validationStatus","validationText","debounce","loadingHandler","newValue","watchOptionsHandler","setDefaultValue","debounceChangedHandler","updateOnChangeDebounce","valueChangedHandler","openChangedHandler","icOpen","icClose","disconnectedCallback","removeFormResetListener","disconnect","inheritAttributes","addFormResetListener","MutationObserver","observe","attributes","childList","componentDidRender","setFocus","debounceAria","renderHiddenInput","invalid","IcInformationStatus","Error","describedBy","getInputDescribedByText","hasValidationStatus","trim","showLeftIcon","for","ref","anchorEl","slot","isMobileOrTablet","onChange","onKeyDown","autocomplete","onInput","Clear","IcThemeForegroundEnum","Light","Dark","onMouseDown","Expand","inputEl","inputLabel","onMenuStateChange","onMenuOptionSelect","onMenuKeyPress","onMenuValueChange","onUngroupedOptionsSet","onRetryButtonClicked","parentEl","activationType","ariaLiveMode","status","message","delegatesFocus","icTextFieldCss","TextField","getMaxLengthExceeded","numChars","minValueUnattained","Number","min","maxValueExceeded","max","maxLength","maxLengthExceeded","getMaxCharactersReached","maxCharactersReached","maxCharacters","maxCharactersError","minCharactersUnattained","minCharacters","hasStatus","ariaAutocomplete","ariaExpanded","ariaOwns","autocapitalize","autocorrect","autoFocus","hiddenInput","inputmode","maxLengthMessage","resize","rows","spellcheck","truncateValue","validationInline","validationInlineInternal","debounceChanged","debounceEvent","watchValueHandler","connectedCallback","getValidationText","icKeydown","disabledMode","currentStatus","Warning","currentValidationText","maxNumChars","messageAriaLive","showStatusText","Success","multiline","hiddenCharCountDescId","disabledText","multiLine","maxlength","minlength","isSlotUsed","isEmptyString","hidden"],"sources":["../web-components/dist/collection/components/ic-pagination/ic-pagination.css?tag=ic-pagination&encapsulation=shadow","../web-components/dist/collection/components/ic-pagination/ic-pagination.js","../web-components/dist/collection/components/ic-pagination-item/ic-pagination-item.css?tag=ic-pagination-item&encapsulation=shadow","../web-components/dist/collection/components/ic-pagination-item/ic-pagination-item.js","../web-components/dist/collection/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","../web-components/dist/collection/components/ic-select/ic-select.js","../web-components/dist/collection/components/ic-text-field/ic-text-field.css?tag=ic-text-field&encapsulation=shadow","../web-components/dist/collection/components/ic-text-field/ic-text-field.js"],"sourcesContent":["/*! 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:host {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\nnav {\n width: 100%;\n display: flex;\n flex-flow: row wrap;\n justify-content: flex-start;\n align-items: center;\n}\n\nic-button {\n cursor: pointer;\n}\n\nic-button.next-previous {\n --icon-width: var(--ic-space-xs);\n --icon-height: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n\n padding: 0 var(--ic-space-xxs) 0 var(--ic-space-xxxs);\n}\n\nic-button.first-last {\n --icon-width: calc(var(--ic-space-sm) + var(--ic-space-xxxs));\n --icon-height: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n}\n\n.disabled {\n color: var(--ic-architectural-200);\n pointer-events: none;\n cursor: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n\n.hide-current-page {\n display: none;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n","import { Host, h, } from \"@stencil/core\";\nimport paginationNextPrevious from \"../../assets/pagination-next-previous.svg\";\nimport paginationFirstLast from \"../../assets/pagination-first-last.svg\";\nimport { onComponentRequiredPropUndefined, removeDisabledFalse, } from \"../../utils/helpers\";\nexport class Pagination {\n constructor() {\n this.handleClickFirst = () => {\n this.currentPage = 1;\n this.icPageChange.emit({ value: this.currentPage });\n };\n this.handleClickPrevious = () => {\n this.currentPage--;\n this.icPageChange.emit({ value: this.currentPage });\n };\n this.handleClickNext = () => {\n this.currentPage++;\n this.icPageChange.emit({ value: this.currentPage });\n };\n this.handleClickLast = () => {\n this.currentPage = this.pages;\n this.icPageChange.emit({ value: this.currentPage });\n };\n // button rendering abstracted from component render methods for clarity\n this.firstButton = () => {\n return (h(\"ic-button\", { id: \"first-page-button\", \"aria-label\": \"Go to first page\", appearance: this.appearance, onClick: this.handleClickFirst, class: \"page-button first-last\", disabled: this.currentPage === 1 || this.disabled, variant: \"icon\", innerHTML: paginationFirstLast }));\n };\n this.previousButton = () => {\n return (h(\"ic-button\", { id: \"previous-page-button\", \"aria-label\": \"Go to previous page\", appearance: this.appearance, onClick: this.handleClickPrevious, class: \"page-button next-previous flip\", disabled: this.currentPage === 1 || this.disabled, variant: \"icon\", innerHTML: paginationNextPrevious }));\n };\n this.nextButton = () => {\n return (h(\"ic-button\", { id: \"next-page-button\", \"aria-label\": \"Go to next page\", appearance: this.appearance, onClick: this.handleClickNext, class: \"page-button next-previous\", disabled: this.currentPage === this.pages || this.disabled, variant: \"icon\", innerHTML: paginationNextPrevious }));\n };\n this.lastButton = () => {\n return (h(\"ic-button\", { id: \"last-page-button\", \"aria-label\": \"Go to last page\", appearance: this.appearance, onClick: this.handleClickLast, class: \"page-button first-last flip\", disabled: this.currentPage === this.pages || this.disabled, variant: \"icon\", innerHTML: paginationFirstLast }));\n };\n this.renderStartEllipsis = () => {\n return (h(\"ic-pagination-item\", { appearance: this.appearance, type: \"ellipsis\", id: \"start-ellipsis\", disabled: this.disabled }));\n };\n this.renderEndEllipsis = () => {\n return (h(\"ic-pagination-item\", { appearance: this.appearance, type: \"ellipsis\", id: \"end-ellipsis\", disabled: this.disabled }));\n };\n this.renderStartItems = () => {\n return this.startItems.map((page) => {\n return (h(\"ic-pagination-item\", { appearance: this.appearance, selected: page === this.currentPage, id: `pagination-item-${page}`, type: \"page\", page: page, disabled: this.disabled }));\n });\n };\n this.renderEndItems = () => {\n return this.endItems.map((page) => {\n return (h(\"ic-pagination-item\", { appearance: this.appearance, selected: page === this.currentPage, id: `pagination-item-${page}`, type: \"page\", page: page, disabled: this.disabled }));\n });\n };\n this.renderMiddleItems = () => {\n return this.midItems.map((page) => {\n return (h(\"ic-pagination-item\", { appearance: this.appearance, selected: page === this.currentPage, id: `pagination-item-${page}`, type: \"page\", page: page, disabled: this.disabled }));\n });\n };\n this.endEllipsis = false;\n this.endItems = [];\n this.midItems = [];\n this.startEllipsis = false;\n this.startItems = [];\n this.adjacentCount = 1;\n this.appearance = \"default\";\n this.boundaryCount = 1;\n this.defaultPage = 1;\n this.disabled = false;\n this.hideCurrentPage = false;\n this.hideFirstAndLastPageButton = false;\n this.label = \"Page\";\n this.pages = undefined;\n this.type = \"simple\";\n this.currentPage = this.defaultPage;\n }\n watchAdjacentCountHandler() {\n if (this.adjacentCount > 2) {\n this.adjacentCount = 2;\n }\n }\n watchBoundaryCountHandler() {\n if (this.boundaryCount > 2) {\n this.boundaryCount = 2;\n }\n }\n watchNumberPagesHandler() {\n this.watchPageChangeHandler();\n }\n watchTypeHandler() {\n this.watchPageChangeHandler();\n }\n watchPageChangeHandler() {\n if (this.type === \"simple\") {\n return;\n }\n this.startEllipsis = false;\n this.endEllipsis = false;\n this.startItems = [];\n this.endItems = [];\n this.midItems = [];\n const startItems = [];\n let startItemCount = 0;\n const endItems = [];\n let endStart = this.pages;\n const midItems = [];\n let midStart;\n let midEnd;\n let startEllipsis = false;\n let endEllipsis = false;\n if (this.pages <= this.boundaryCount * 2 + this.adjacentCount * 2 + 3) {\n this.startEllipsis = false;\n this.endEllipsis = false;\n for (let i = 1; i <= this.pages; i++) {\n startItems.push(i);\n }\n this.startItems = startItems;\n return;\n }\n startItemCount = this.boundaryCount === 0 ? 1 : this.boundaryCount;\n endStart =\n this.boundaryCount === 0\n ? this.pages\n : this.pages - this.boundaryCount + 1;\n if (this.currentPage <= this.adjacentCount + this.boundaryCount + 2) {\n startEllipsis = false;\n endEllipsis = true;\n let numItems = 2 * this.adjacentCount + 1;\n if (this.boundaryCount === 0) {\n numItems--;\n }\n midStart = startItemCount + 1;\n midEnd = midStart + numItems;\n }\n else {\n startEllipsis = true;\n if (this.currentPage >\n this.pages - (this.adjacentCount + this.boundaryCount + 2)) {\n let numItems = 2 * this.adjacentCount + 1;\n if (this.boundaryCount === 0) {\n numItems--;\n }\n midEnd =\n this.boundaryCount === 0\n ? this.pages - 1\n : this.pages - this.boundaryCount;\n midStart = midEnd - numItems;\n }\n else {\n endEllipsis = true;\n midStart = this.currentPage - this.adjacentCount;\n midEnd = this.currentPage + this.adjacentCount;\n }\n }\n //create array of start items\n if (this.boundaryCount > 0 ||\n (this.boundaryCount === 0 && startEllipsis === false)) {\n for (let i = 1; i <= startItemCount; i++) {\n startItems.push(i);\n }\n }\n //create array of end items\n if (this.boundaryCount > 0 ||\n (this.boundaryCount === 0 && endEllipsis === false)) {\n for (let i = endStart; i <= this.pages; i++) {\n endItems.push(i);\n }\n }\n //create array of mid items\n for (let i = midStart; i <= midEnd; i++) {\n midItems.push(i);\n }\n this.startEllipsis = startEllipsis;\n this.endEllipsis = endEllipsis;\n this.startItems = startItems;\n this.endItems = endItems;\n this.midItems = midItems;\n }\n componentWillLoad() {\n this.watchPageChangeHandler();\n this.watchBoundaryCountHandler();\n this.watchAdjacentCountHandler();\n removeDisabledFalse(this.disabled, this.el);\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.pages, propName: \"pages\" }], \"Pagination\");\n }\n paginationItemClickHandler(ev) {\n const page = ev.detail.page;\n this.currentPage = page;\n this.icPageChange.emit({ value: this.currentPage });\n }\n /**\n * Sets the currently displayed page.\n * @param {number} page The page number to set as the current page\n */\n async setCurrentPage(page) {\n if (typeof page === \"number\" && page > 0 && page <= this.pages) {\n this.currentPage = page;\n }\n else {\n console.error(\"Current page must be a number greater than zero but less than or equal to the total number of pages\");\n }\n }\n render() {\n const { type, currentPage, hideCurrentPage, disabled, hideFirstAndLastPageButton, label, } = this;\n return (h(Host, null, type === \"simple\" && (h(\"nav\", { class: {\n [\"disabled\"]: disabled,\n }, role: \"navigation\", \"aria-label\": \"Pagination Navigation\" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), h(\"ic-pagination-item\", { appearance: this.appearance, type: \"simple-current\", page: currentPage, label: label, class: { [\"hide-current-page\"]: hideCurrentPage }, disabled: disabled }), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === \"complex\" && (h(\"nav\", { class: {\n [\"disabled\"]: disabled,\n }, role: \"navigation\", \"aria-label\": \"Pagination Navigation\" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), this.renderStartItems(), this.startEllipsis && this.renderStartEllipsis(), this.renderMiddleItems(), this.endEllipsis && this.renderEndEllipsis(), this.renderEndItems(), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === \"complex\" && (h(\"span\", { class: \"sr-only\", \"aria-live\": \"polite\" }, \"Page \", this.currentPage))));\n }\n static get is() { return \"ic-pagination\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-pagination.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-pagination.css\"]\n };\n }\n static get properties() {\n return {\n \"adjacentCount\": {\n \"type\": \"number\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The number of pages displayed adjacent to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.\"\n },\n \"attribute\": \"adjacent-count\",\n \"reflect\": false,\n \"defaultValue\": \"1\"\n },\n \"appearance\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeForeground\",\n \"resolved\": \"\\\"dark\\\" | \\\"default\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeForeground\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeForeground\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The appearance of the pagination, e.g. dark, light or the default.\"\n },\n \"attribute\": \"appearance\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"boundaryCount\": {\n \"type\": \"number\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The number of pages displayed as boundary items to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.\"\n },\n \"attribute\": \"boundary-count\",\n \"reflect\": false,\n \"defaultValue\": \"1\"\n },\n \"defaultPage\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The default page to display.\"\n },\n \"attribute\": \"default-page\",\n \"reflect\": false,\n \"defaultValue\": \"1\"\n },\n \"disabled\": {\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 pagination will not allow interaction.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hideCurrentPage\": {\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 current page of the simple pagination will not be displayed.\"\n },\n \"attribute\": \"hide-current-page\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hideFirstAndLastPageButton\": {\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 first and last page buttons will not be displayed.\"\n },\n \"attribute\": \"hide-first-and-last-page-button\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\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 label for the pagination item (applicable when simple pagination is being used).\"\n },\n \"attribute\": \"label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Page\\\"\"\n },\n \"pages\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The total number of pages.\"\n },\n \"attribute\": \"pages\",\n \"reflect\": false\n },\n \"type\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcPaginationTypes\",\n \"resolved\": \"\\\"complex\\\" | \\\"simple\\\"\",\n \"references\": {\n \"IcPaginationTypes\": {\n \"location\": \"import\",\n \"path\": \"./ic-pagination.types\",\n \"id\": \"src/components/ic-pagination/ic-pagination.types.ts::IcPaginationTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The type of pagination to be used.\"\n },\n \"attribute\": \"type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"simple\\\"\"\n },\n \"currentPage\": {\n \"type\": \"number\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The current page displayed by the pagination.\"\n },\n \"attribute\": \"current-page\",\n \"reflect\": false,\n \"defaultValue\": \"this.defaultPage\"\n }\n };\n }\n static get states() {\n return {\n \"endEllipsis\": {},\n \"endItems\": {},\n \"midItems\": {},\n \"startEllipsis\": {},\n \"startItems\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icPageChange\",\n \"name\": \"icPageChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a page is selected.\"\n },\n \"complexType\": {\n \"original\": \"IcChangeEventDetail\",\n \"resolved\": \"IcChangeEventDetail\",\n \"references\": {\n \"IcChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-pagination.types\",\n \"id\": \"src/components/ic-pagination/ic-pagination.types.ts::IcChangeEventDetail\"\n }\n }\n }\n }];\n }\n static get methods() {\n return {\n \"setCurrentPage\": {\n \"complexType\": {\n \"signature\": \"(page: number) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"page\",\n \"type\": \"number\",\n \"docs\": \"The page number to set as the current page\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets the currently displayed page.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"page The page number to set as the current page\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"adjacentCount\",\n \"methodName\": \"watchAdjacentCountHandler\"\n }, {\n \"propName\": \"boundaryCount\",\n \"methodName\": \"watchBoundaryCountHandler\"\n }, {\n \"propName\": \"pages\",\n \"methodName\": \"watchNumberPagesHandler\"\n }, {\n \"propName\": \"type\",\n \"methodName\": \"watchTypeHandler\"\n }, {\n \"propName\": \"currentPage\",\n \"methodName\": \"watchPageChangeHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"paginationItemClick\",\n \"method\": \"paginationItemClickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-pagination.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\na {\n text-align: center;\n}\n\n.item-container {\n display: flex;\n justify-content: center;\n align-items: center;\n width: calc(var(--ic-space-xl) + var(--ic-space-sm));\n height: var(--ic-space-xl);\n margin: var(--ic-space-xxs) var(--ic-space-xxxs);\n cursor: pointer;\n text-decoration: none;\n}\n\nbutton {\n background: none;\n border: none;\n outline: inherit;\n position: relative;\n}\n\n.ellipsis {\n pointer-events: none;\n color: var(--ic-color-secondary-text);\n}\n\n.item-container:focus {\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-fast);\n}\n\n.page {\n color: var(--ic-action-default);\n}\n\n.simple-current {\n min-width: calc(var(--ic-space-xxl) + var(--ic-space-md));\n height: var(--ic-space-lg);\n cursor: default;\n}\n\n/** DEFAULT STATES **/\n.item-container.page:hover:not(.selected):not(:focus) {\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-action-default-bg-hover);\n}\n\n.item-container.page:active:not(.selected):not(:focus) {\n background-color: var(--ic-action-default-bg-active);\n}\n\n.selected {\n pointer-events: none;\n outline: none;\n}\n\n.selected::after {\n content: \"\";\n height: var(--ic-space-xxs);\n width: 100%;\n position: absolute;\n bottom: 0;\n background-color: var(--ic-action-default);\n}\n\n.page-selected {\n color: var(--ic-color-primary-text);\n}\n\n/** LIGHT STATES **/\n.item-container.page.light:hover:not(.selected):not(:focus) {\n background-color: var(--ic-action-light-bg-hover);\n}\n\n.item-container.page.light:active:not(.selected):not(:focus) {\n background-color: var(--ic-action-light-bg-active);\n}\n\nic-typography.light {\n color: var(--ic-color-white-text);\n}\n\n.selected.light::after {\n content: \"\";\n height: var(--ic-space-xxs);\n width: 100%;\n position: absolute;\n bottom: 0;\n background-color: var(--ic-action-light);\n}\n\n/** DARK STATES **/\n.item-container.page.dark:hover:not(.selected):not(:focus) {\n background-color: var(--ic-action-dark-bg-hover);\n}\n\n.item-container.page.dark:active:not(.selected):not(:focus) {\n background-color: var(--ic-action-dark-bg-active);\n}\n\nic-typography.dark {\n color: var(--ic-color-primary-text);\n}\n\n.selected.dark::after {\n content: \"\";\n height: var(--ic-space-xxs);\n width: 100%;\n position: absolute;\n bottom: 0;\n background-color: var(--ic-action-dark);\n}\n\n.disabled {\n color: var(--ic-architectural-200);\n pointer-events: none;\n cursor: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n\n@media (forced-colors: active) {\n .selected::after {\n background-color: Highlight;\n }\n\n .selected.light::after {\n background-color: Highlight;\n }\n\n .selected.dark::after {\n background-color: Highlight;\n }\n\n .disabled {\n color: GrayText;\n }\n}\n","import { h, } from \"@stencil/core\";\nimport { removeDisabledFalse, capitalize } from \"../../utils/helpers\";\nexport class PaginationItem {\n constructor() {\n this.handleClick = () => {\n this.paginationItemClick.emit({ page: this.page });\n };\n this.capitalizedLabel = undefined;\n this.appearance = \"default\";\n this.disabled = false;\n this.label = \"Page\";\n this.page = undefined;\n this.selected = false;\n this.type = undefined;\n }\n watchLabelHandler() {\n this.capitalizedLabel = capitalize(this.label);\n }\n componentWillLoad() {\n this.watchLabelHandler();\n removeDisabledFalse(this.disabled, this.el);\n }\n render() {\n const { page, selected, type, disabled, appearance, label, capitalizedLabel, } = this;\n return (h(\"a\", null, type === \"ellipsis\" ? (h(\"div\", { class: {\n [\"item-container\"]: true,\n [\"ellipsis\"]: true,\n [\"disabled\"]: disabled,\n } }, h(\"ic-typography\", { class: {\n [`${appearance}`]: true,\n }, variant: \"label\" }, \"...\"))) : type === \"page\" ? (h(\"button\", { disabled: disabled, onClick: this.handleClick, tabindex: selected ? \"-1\" : \"0\", role: \"button\", \"aria-current\": selected && \"page\", \"aria-label\": selected ? `${label}: ${page}` : `Go to ${label} ${page}`, class: {\n [\"selected\"]: !disabled && selected,\n [\"disabled\"]: disabled,\n [\"item-container\"]: true,\n [`${appearance}`]: true,\n [\"page\"]: type === \"page\",\n } }, h(\"ic-typography\", { variant: \"label\", class: {\n [\"page-selected\"]: selected,\n [\"disabled\"]: disabled,\n [`${appearance}`]: true,\n } }, page))) : (h(\"ic-typography\", { \"aria-live\": \"polite\", class: {\n [`simple-current ${appearance}`]: true,\n [\"disabled\"]: disabled,\n }, variant: \"label\" }, capitalizedLabel, \" \", page))));\n }\n static get is() { return \"ic-pagination-item\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-pagination-item.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-pagination-item.css\"]\n };\n }\n static get properties() {\n return {\n \"appearance\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeForeground\",\n \"resolved\": \"\\\"dark\\\" | \\\"default\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeForeground\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeForeground\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The appearance of the pagination, e.g. dark, light or the default.\"\n },\n \"attribute\": \"appearance\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"disabled\": {\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 pagination item will be disabled.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\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 label for the pagination item (applicable when simple pagination is being used).\"\n },\n \"attribute\": \"label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Page\\\"\"\n },\n \"page\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number | null\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The current page number.\"\n },\n \"attribute\": \"page\",\n \"reflect\": false\n },\n \"selected\": {\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 pagination item will be selected.\"\n },\n \"attribute\": \"selected\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"type\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcPaginationItemType\",\n \"resolved\": \"\\\"ellipsis\\\" | \\\"page\\\" | \\\"simple-current\\\"\",\n \"references\": {\n \"IcPaginationItemType\": {\n \"location\": \"import\",\n \"path\": \"./ic-pagination-item.types\",\n \"id\": \"src/components/ic-pagination-item/ic-pagination-item.types.ts::IcPaginationItemType\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The type of pagination item - 'page' or 'ellipsis'.\"\n },\n \"attribute\": \"type\",\n \"reflect\": false\n }\n };\n }\n static get states() {\n return {\n \"capitalizedLabel\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"paginationItemClick\",\n \"name\": \"paginationItemClick\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"- Emitted when a pagination item is clicked.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"{ page: number }\",\n \"resolved\": \"{ page: number; }\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"label\",\n \"methodName\": \"watchLabelHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-pagination-item.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 --input-width: Width of the input field\n * @prop --ic-z-index-menu: z-index of select menu\n */\n\n:host {\n display: block;\n position: relative;\n}\n\n:host(.full-width) {\n width: 100%;\n}\n\nic-input-component-container:hover {\n --border-color: var(--ic-action-dark-hover);\n}\n\nic-input-component-container:active {\n --border-color: var(--ic-action-dark-active);\n\n color: var(--ic-action-dark-active);\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-architectural-400);\n\n color: var(--ic-action-dark);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nic-input-label {\n margin-bottom: var(--ic-space-xs) !important;\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n color: var(--ic-color-primary-text);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n height: 100%;\n padding-left: 0.375rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-repeat: no-repeat;\n background-position: right 0.375rem center;\n background-image: url(\"data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-color-primary-text);\n}\n\nselect:disabled {\n color: var(--ic-architectural-200);\n background-image: url(\"data:image/svg+xml;utf8,<svg fill='grey' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>\");\n}\n\nselect:focus {\n border: 0;\n outline: 0;\n}\n\nselect:not([disabled]) {\n cursor: pointer;\n}\n\n.select-container {\n width: 100%;\n display: flex;\n align-items: center;\n position: relative;\n}\n\n.select-input {\n width: 100%;\n height: 100%;\n padding: 0 0.375rem;\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: space-between;\n background: none;\n border: none;\n}\n\n.select-input:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(:not(.disabled)) ic-input-component-container:hover .select-input {\n background-color: var(--ic-architectural-white);\n}\n\n.select-input[disabled] {\n pointer-events: none;\n}\n\n:host(.searchable) .select-input {\n cursor: auto;\n}\n\n.searchable-select-container {\n align-items: center;\n display: flex;\n width: 100%;\n position: relative;\n}\n\n.expand-icon {\n height: var(--ic-space-lg);\n padding-left: var(--ic-space-xs);\n color: var(--ic-action-dark);\n}\n\n.expand-icon > svg {\n display: inline-block;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.disabled) .expand-icon,\n:host(.disabled) .expand-icon > svg > path {\n color: var(--ic-architectural-200);\n}\n\n:host(.searchable) .expand-icon {\n padding-left: var(--ic-space-xxs);\n height: 2.25rem;\n}\n\n:host(.searchable) .expand-icon > svg {\n height: 2.25rem;\n padding: 0 0.375rem;\n}\n\n:host(.searchable:not(.disabled)) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-action-dark);\n}\n\n.expand-icon-filled {\n color: var(--ic-action-dark);\n}\n\n.expand-icon-open,\n:host(.searchable) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n:host(.disabled) .value-text,\n.placeholder {\n color: var(--ic-color-tertiary-text);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n gap: var(--ic-space-xxs);\n padding-left: 2.375rem;\n align-items: center;\n}\n\n:host(.small) .clear-button-container {\n padding-left: 1.875rem;\n}\n\n.divider {\n width: var(--ic-border-width);\n background-color: var(--ic-architectural-400);\n margin: var(--ic-space-xxs) 0;\n border-radius: var(--ic-space-1px);\n height: var(--ic-space-lg);\n}\n\n:host(.small) .divider {\n height: var(--ic-space-md);\n}\n\n.clear-button {\n position: absolute;\n right: 2.75rem;\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n}\n\n.clear-button:focus {\n background-color: var(--ic-focus-blue);\n box-shadow: inset 0 0 0 0.125rem var(--ic-focus-glow);\n border-radius: 0.25rem;\n}\n\n.clear-button:focus * {\n fill: white;\n}\n\n.searchable-select-results-status {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: var(--ic-space-1px);\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-color-tertiary-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-color-primary-text);\n}\n\n.readonly ::slotted([slot=\"icon\"]) {\n padding: 0.375rem;\n margin-bottom: 0.75rem;\n}\n\n@media (forced-colors: active) {\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import { Host, h, forceUpdate, } from \"@stencil/core\";\nimport { getInputDescribedByText, getLabelFromValue, hasValidationStatus, inheritAttributes, onComponentRequiredPropUndefined, renderHiddenInput, isMobileOrTablet, getFilteredMenuOptions, addFormResetListener, removeFormResetListener, removeDisabledFalse, checkSlotInChildMutations, } from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport { IcInformationStatus, IcThemeForegroundEnum, } from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"tabindex\", \"title\"];\n/**\n * @slot icon - Content will be placed to the left of the select text input.\n */\nexport class Select {\n constructor() {\n this.hasSetDefaultValue = false;\n this.inheritedAttributes = {};\n this.initialOptionsEmpty = false;\n this.inputId = `ic-select-input-${inputIds++}`;\n this.menuId = `${this.inputId}-menu`;\n this.searchableMenuItemSelected = false;\n this.ungroupedOptions = [];\n this.hostMutationObserver = null;\n // triggered when attributes of host element change\n this.hostMutationCallback = (mutationList) => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName, type, addedNodes, removedNodes }) => {\n if (MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] =\n this.el.getAttribute(attributeName);\n forceComponentUpdate = true;\n }\n else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(addedNodes, removedNodes, \"icon\");\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n this.handleRetry = (ev) => {\n var _a;\n if (ev.detail.keyPressed)\n (_a = this.searchableSelectElement) === null || _a === void 0 ? void 0 : _a.focus();\n this.blurredBecauseButtonPressed = true;\n this.retryButtonClick = true;\n this.hasSetDefaultValue = true;\n this.icRetryLoad.emit({ value: this.hiddenInputValue });\n };\n this.emitIcChange = (value) => {\n if (!this.searchable) {\n this.value = value;\n }\n clearTimeout(this.debounceIcChange);\n this.debounceIcChange = window.setTimeout(() => {\n this.icChange.emit({ value: value });\n }, this.currDebounce);\n };\n this.emitImmediateIcChange = (value) => {\n this.value = value;\n clearTimeout(this.debounceIcChange);\n this.icChange.emit({ value: value });\n };\n /**\n * Processes the provided array of IcMenuOptions, removing duplicates and reporting them with a console.warn\n * @param options array of IcMenuOptions\n * @returns a new options object, with all entries possessing a duplicate 'value' field removed\n */\n this.deduplicateOptions = (options) => {\n const uniqueValues = [];\n const dedupedOptions = [];\n let dedupedChildren;\n options.forEach((option) => {\n if (option.children) {\n //If an option has children, we will loop through them\n dedupedChildren = [];\n option.children.forEach((child) => {\n if (uniqueValues.includes(child.value)) {\n console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${child.value}) which has been removed.`);\n }\n else {\n uniqueValues.push(child.value);\n dedupedChildren.push(child);\n }\n });\n // construct a modified option, inserting the deduplicated children alongside the original information\n const modifiedParent = Object.assign(Object.assign({}, option), { children: dedupedChildren });\n dedupedOptions.push(modifiedParent);\n }\n else {\n // If an option does not have children, assess to see if it's value has been included already\n if (uniqueValues.includes(option.value)) {\n console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${option.value}) which has been removed.`);\n }\n else {\n uniqueValues.push(option.value);\n dedupedOptions.push(option);\n }\n }\n });\n return dedupedOptions;\n };\n /**\n * Loop through options array and for all options with no value, infer it from the label\n */\n this.setOptionsValuesFromLabels = () => {\n var _a;\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) > 0 && this.options.map) {\n this.options.map((option) => {\n if (!option.value) {\n option.value = option.label;\n }\n });\n }\n };\n this.setUngroupedOptions = (event) => {\n this.ungroupedOptions = event.detail.options;\n };\n this.setTextColor = () => {\n if (this.nativeSelectElement.selectedIndex === 0) {\n this.nativeSelectElement.className = \"placeholder\";\n }\n else {\n this.nativeSelectElement.className = \"select-option-selected\";\n }\n };\n this.setMenuChange = (open) => {\n if (this.open !== open) {\n this.open = open;\n }\n };\n this.getLabelFromValue = (value) => {\n return getLabelFromValue(value, this.uniqueOptions);\n };\n this.getFilteredChildMenuOptions = (option) => {\n let children = option.children;\n if (this.searchable) {\n children = getFilteredMenuOptions(option.children, this.includeDescriptionsInSearch, this.searchableSelectInputValue, this.searchMatchPosition);\n }\n else {\n children = getFilteredMenuOptions(option.children, false, this.pressedCharacters, \"start\");\n }\n const newOption = Object.assign({}, option);\n newOption.children = children;\n return newOption;\n };\n this.handleNativeSelectChange = () => {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.emitImmediateIcChange(this.nativeSelectElement.value);\n this.setTextColor();\n };\n this.handleCustomSelectChange = (event) => {\n if (this.searchable && event.detail.label === this.emptyOptionListText) {\n this.searchableSelectElement.focus();\n return;\n }\n if (this.searchable) {\n this.value = event.detail.value;\n this.searchableMenuItemSelected = true;\n // After editing the input, if selecting the same option as before, set the input value to label again\n if (this.value === this.currValue) {\n this.searchableSelectInputValue = this.getLabelFromValue(this.value);\n }\n this.inputValueToFilter = null;\n this.hiddenInputValue = this.getValueFromLabel(this.searchableSelectInputValue);\n }\n this.ariaActiveDescendant = event.detail.optionId;\n this.icOptionSelect.emit({ value: event.detail.value });\n this.emitIcChange(event.detail.value);\n };\n this.handleMenuChange = (event) => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n this.searchable && this.handleFocusIndicatorDisplay();\n };\n // clears the debounce delay when navigating the menu with arrow keys etc\n // to prevent delay in change event, which should only occur when typing in input\n this.handleMenuKeyPress = (ev) => {\n ev.cancelBubble = true;\n this.handleCharacterKeyDown(ev.detail.key);\n };\n this.handleMenuValueChange = (ev) => {\n this.value = ev.detail.value;\n };\n this.handleFocusIndicatorDisplay = () => {\n const focusIndicator = this.el.shadowRoot.querySelector(\".focus-indicator\");\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n }\n else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n };\n this.handleMouseDown = (event) => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n this.isExternalFiltering = () => this.searchable && this.disableFilter;\n this.handleClick = (event) => {\n var _a;\n if (!this.open) {\n if (this.isExternalFiltering()) {\n this.menu.options = this.filteredOptions;\n }\n else if (!this.hasTimedOut &&\n !this.loading &&\n !((_a = this.noOptions) === null || _a === void 0 ? void 0 : _a.length) &&\n (!this.searchable || this.searchableMenuItemSelected)) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n if (event.detail !== 0) {\n this.menu.handleClickOpen();\n }\n };\n this.handleExpandIconMouseDown = (event) => {\n if (!this.disabled) {\n event.preventDefault();\n this.searchableSelectElement.focus();\n this.handleClick(event);\n }\n };\n this.handleClear = (event) => {\n event.stopPropagation();\n this.hasTimedOut = false;\n clearTimeout(this.timeoutTimer);\n this.noOptions = null;\n this.emitImmediateIcChange(null);\n this.icClear.emit();\n if (this.searchable) {\n this.searchableSelectElement.value = null;\n this.searchableSelectInputValue = null;\n this.filteredOptions = this.uniqueOptions;\n this.hiddenInputValue = null;\n this.searchableSelectElement.focus();\n }\n else {\n this.customSelectElement.focus();\n }\n };\n this.handleCharacterKeyDown = (key) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (this.open &&\n key === \" \" &&\n this.pressedCharacters.length === 0 &&\n !this.hasTimedOut &&\n !this.loading) {\n this.setMenuChange(false);\n }\n if (key.length === 1 && !this.searchable) {\n window.clearTimeout(this.characterKeyPressTimer);\n this.characterKeyPressTimer = window.setTimeout(() => (this.pressedCharacters = \"\"), 1000);\n this.pressedCharacters += key;\n this.handleFilter();\n if (!this.noOptions) {\n this.emitImmediateIcChange(this.filteredOptions[0].value);\n }\n }\n else {\n this.pressedCharacters = \"\";\n }\n };\n this.handleNativeSelectKeyDown = (event) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n this.handleCharacterKeyDown(event.key);\n };\n this.handleKeyDown = (event) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n const isArrowKey = event.key === \"ArrowDown\" || event.key === \"ArrowUp\";\n if (!this.open) {\n if (this.isExternalFiltering() && (event.key === \"Enter\" || isArrowKey)) {\n this.menu.options = this.filteredOptions;\n }\n else {\n if (!this.hasTimedOut) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n }\n if (this.open && event.key === \"Enter\") {\n this.setMenuChange(false);\n }\n else {\n if (!(isArrowKey && this.noOptions !== null)) {\n if (!(event.key === \" \" && this.pressedCharacters.length > 0)) {\n // Keyboard events get passed onto ic-menu\n this.menu.handleKeyboardOpen(event);\n }\n this.handleCharacterKeyDown(event.key);\n }\n }\n };\n this.handleClearButtonFocus = () => {\n this.clearButtonFocused = true;\n };\n this.handleClearButtonBlur = (ev) => {\n var _a;\n const retryButton = (_a = this.menu) === null || _a === void 0 ? void 0 : _a.querySelector(\"#retry-button\");\n if (!(this.searchableSelectElement &&\n ev.relatedTarget === this.searchableSelectElement) &&\n !(retryButton && ev.relatedTarget === retryButton)) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n }\n this.clearButtonFocused = false;\n };\n this.handleFilter = () => {\n var _a;\n const options = this.deduplicateOptions(this.searchable ? [...this.uniqueOptions] : this.ungroupedOptions);\n let isGrouped = false;\n let newFilteredOptions = [];\n options.map((option) => {\n if (option.children)\n isGrouped = true;\n });\n let menuOptionsFiltered;\n if (this.searchable) {\n menuOptionsFiltered = getFilteredMenuOptions(options, this.includeDescriptionsInSearch, this.inputValueToFilter, this.searchMatchPosition);\n this.searchableMenuItemSelected = false;\n }\n else {\n menuOptionsFiltered = getFilteredMenuOptions(options, false, this.pressedCharacters, \"start\");\n }\n if (!isGrouped &&\n ((_a = menuOptionsFiltered[0]) === null || _a === void 0 ? void 0 : _a.label) !== this.emptyOptionListText) {\n newFilteredOptions = menuOptionsFiltered;\n }\n else if (isGrouped) {\n options.map((option) => {\n if (this.includeGroupTitlesInSearch) {\n if (menuOptionsFiltered.indexOf(option) !== -1) {\n newFilteredOptions.push(option);\n }\n else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n }\n else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n });\n }\n let noChildOptionsWhenFiltered = false;\n if (isGrouped) {\n noChildOptionsWhenFiltered = true;\n newFilteredOptions.map((option) => {\n if (option.children.length > 0) {\n noChildOptionsWhenFiltered = false;\n }\n });\n }\n if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {\n this.noOptions = null;\n this.filteredOptions = newFilteredOptions;\n }\n else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.filteredOptions = this.noOptions;\n }\n };\n /**\n * Put the select component into loading state.\n * Replace options with the loading message. If timeout is enabled, set the timeout and once passed, replace options with the loading error message\n */\n this.triggerLoading = () => {\n this.hasTimedOut = false;\n this.noOptions = [{ label: this.loadingLabel, value: \"\", loading: true }];\n if (this.filteredOptions !== this.noOptions && this.searchable) {\n this.filteredOptions = this.noOptions;\n }\n else if (this.uniqueOptions !== this.noOptions && !this.searchable) {\n this.uniqueOptions = this.noOptions;\n }\n if (this.timeout) {\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n this.noOptions = [\n { label: this.loadingErrorLabel, value: \"\", timedOut: true },\n ];\n this.filteredOptions = this.noOptions;\n if (!this.searchable)\n this.uniqueOptions = this.noOptions;\n }, this.timeout);\n }\n };\n this.getValueFromLabel = (label) => {\n var _a;\n return (_a = this.uniqueOptions.find((option) => option.label === label)) === null || _a === void 0 ? void 0 : _a.value;\n };\n this.handleSearchableSelectInput = (event) => {\n this.searchableSelectInputValue = event.target.value;\n this.icInput.emit({ value: this.searchableSelectInputValue });\n this.emitIcChange(this.searchableSelectInputValue);\n this.hiddenInputValue = this.searchableSelectInputValue;\n this.inputValueToFilter = this.searchableSelectInputValue;\n this.setMenuChange(true);\n if (!this.disableFilter) {\n this.handleFilter();\n this.debounceAriaLiveUpdate();\n }\n };\n this.updateSearchableSelectResultAriaLive = () => {\n const searchableSelectResultsStatusEl = this.el.shadowRoot.querySelector(\".searchable-select-results-status\");\n if (searchableSelectResultsStatusEl) {\n if (this.noOptions !== null) {\n searchableSelectResultsStatusEl.innerText = this.emptyOptionListText;\n }\n else {\n searchableSelectResultsStatusEl.innerText = \"\";\n }\n }\n };\n this.getDefaultValue = (value) => this.getLabelFromValue(value) || value || null;\n this.onFocus = () => {\n this.icFocus.emit();\n };\n this.onBlur = ({ relatedTarget }) => {\n var _a;\n const target = relatedTarget;\n if (target !== null &&\n ((target.tagName === \"UL\" && target.className.includes(\"menu\")) ||\n (target.tagName === \"LI\" && target.className.includes(\"option\")))) {\n return;\n }\n const retryButton = (_a = this.menu) === null || _a === void 0 ? void 0 : _a.querySelector(\"#retry-button\");\n const isSearchableAndNoFocusedInternalElements = this.searchable &&\n !!this.menu &&\n target !== this.menu &&\n !Array.from(this.menu.querySelectorAll(\"[role='option']\")).includes(target) &&\n !(this.clearButton && target === this.clearButton) &&\n !(retryButton && target === retryButton);\n if (isSearchableAndNoFocusedInternalElements) {\n if (!this.retryButtonClick) {\n this.setMenuChange(false);\n }\n this.handleFocusIndicatorDisplay();\n }\n this.retryButtonClick = false;\n this.icBlur.emit();\n };\n this.onTimeoutBlur = (ev) => {\n if (ev.detail.ev.relatedTarget !==\n this.searchableSelectElement &&\n !this.blurredBecauseButtonPressed) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n this.icBlur.emit();\n }\n this.blurredBecauseButtonPressed = false;\n };\n this.handleFormReset = () => {\n this.value = this.initialValue;\n if (this.searchable) {\n this.searchableSelectInputValue = this.getDefaultValue(this.value);\n this.hiddenInputValue = this.value;\n }\n };\n this.ariaActiveDescendant = undefined;\n this.clearButtonFocused = false;\n this.debounceIcChange = undefined;\n this.hiddenInputValue = undefined;\n this.noOptions = null;\n this.open = false;\n this.pressedCharacters = \"\";\n this.searchableSelectInputValue = null;\n this.charactersUntilSuggestions = 0;\n this.disabled = false;\n this.disableFilter = false;\n this.emptyOptionListText = \"No results found\";\n this.form = undefined;\n this.formaction = undefined;\n this.formenctype = undefined;\n this.formmethod = undefined;\n this.formnovalidate = undefined;\n this.formtarget = undefined;\n this.fullWidth = false;\n this.helperText = \"\";\n this.hideLabel = false;\n this.includeDescriptionsInSearch = false;\n this.includeGroupTitlesInSearch = false;\n this.label = undefined;\n this.loadingErrorLabel = \"Loading Error\";\n this.loadingLabel = \"Loading...\";\n this.name = this.inputId;\n this.placeholder = \"Select an option\";\n this.readonly = false;\n this.required = false;\n this.searchable = false;\n this.searchMatchPosition = \"anywhere\";\n this.selectOnEnter = false;\n this.showClearButton = false;\n this.size = \"default\";\n this.small = false;\n this.timeout = undefined;\n this.validationStatus = \"\";\n this.validationText = \"\";\n this.loading = false;\n this.options = [];\n this.filteredOptions = this.options;\n this.uniqueOptions = this.options;\n this.debounce = 0;\n this.currDebounce = this.debounce;\n this.value = undefined;\n this.initialValue = this.value;\n this.inputValueToFilter = this.value;\n this.currValue = this.value;\n }\n loadingHandler(newValue) {\n newValue && this.triggerLoading();\n }\n watchOptionsHandler() {\n var _a;\n if (!this.hasTimedOut) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n if (this.isExternalFiltering()) {\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n this.setOptionsValuesFromLabels();\n this.noOptions = null;\n this.uniqueOptions = this.deduplicateOptions(this.options);\n this.filteredOptions = this.uniqueOptions;\n }\n else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n }\n this.updateSearchableSelectResultAriaLive();\n this.setDefaultValue();\n }\n else {\n this.setOptionsValuesFromLabels();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n this.filteredOptions = this.uniqueOptions;\n if (this.initialOptionsEmpty) {\n this.setDefaultValue();\n this.initialOptionsEmpty = false;\n }\n }\n }\n else {\n if (!this.searchable) {\n this.options = this.noOptions;\n }\n }\n }\n debounceChangedHandler(newValue) {\n this.updateOnChangeDebounce(newValue);\n }\n valueChangedHandler() {\n if (this.value !== this.currValue) {\n this.currValue = this.value;\n }\n if (this.searchable) {\n this.searchableSelectInputValue =\n this.getLabelFromValue(this.currValue) || this.currValue;\n }\n }\n openChangedHandler() {\n this.open ? this.icOpen.emit() : this.icClose.emit();\n }\n disconnectedCallback() {\n var _a;\n removeFormResetListener(this.el, this.handleFormReset);\n (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n componentWillLoad() {\n var _a;\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n removeDisabledFalse(this.disabled, this.el);\n this.setOptionsValuesFromLabels();\n addFormResetListener(this.el, this.handleFormReset);\n if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.length)) {\n this.initialOptionsEmpty = true;\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n }\n else {\n this.setDefaultValue();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n }\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.label, propName: \"label\" }], \"Select\");\n if (this.loading) {\n this.triggerLoading();\n }\n this.hiddenInputValue = this.searchable && this.currValue;\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n componentDidRender() {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n }\n /**\n * Sets focus on the input box.\n */\n async setFocus() {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n }\n else if (this.customSelectElement) {\n this.customSelectElement.focus();\n }\n else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n updateOnChangeDebounce(newValue) {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\n }\n debounceAriaLiveUpdate() {\n clearTimeout(this.debounceAria);\n window.setTimeout(() => {\n this.updateSearchableSelectResultAriaLive();\n }, 800);\n }\n setDefaultValue() {\n if (!this.hasSetDefaultValue && this.currValue) {\n this.searchableSelectInputValue = this.getDefaultValue(this.currValue);\n this.initialValue = this.currValue;\n this.hasSetDefaultValue = true;\n }\n }\n render() {\n const { small, size, disabled, fullWidth, helperText, hideLabel, label, menuId, name, options, placeholder, readonly, required, searchable, showClearButton, validationStatus, validationText, currValue, } = this;\n renderHiddenInput(true, this.el, name, this.searchable ? this.hiddenInputValue : currValue, disabled);\n const invalid = validationStatus === IcInformationStatus.Error ? \"true\" : \"false\";\n const describedBy = getInputDescribedByText(this.inputId, helperText !== \"\", hasValidationStatus(this.validationStatus, this.disabled)).trim();\n let showLeftIcon = !!this.el.querySelector(`[slot=\"icon\"]`);\n if (showLeftIcon && (disabled || (readonly && !this.value))) {\n showLeftIcon = false;\n }\n return (h(Host, { class: {\n disabled: disabled,\n searchable: searchable,\n small: small,\n [size]: size !== \"default\",\n \"full-width\": fullWidth,\n }, onBlur: this.onBlur }, h(\"ic-input-container\", { readonly: readonly }, !hideLabel && (h(\"ic-input-label\", { for: this.inputId, label: label, helperText: helperText, required: required, disabled: disabled, readonly: readonly })), h(\"ic-input-component-container\", { ref: (el) => (this.anchorEl = el), class: { \"menu-open\": this.open }, small: small, size: size, fullWidth: fullWidth, disabled: disabled, readonly: readonly, validationStatus: validationStatus }, showLeftIcon && (h(\"span\", { slot: \"left-icon\", class: {\n [\"readonly\"]: readonly,\n [\"has-value\"]: !!this.value,\n } }, h(\"slot\", { name: \"icon\" }))), readonly ? (h(\"ic-typography\", null, h(\"p\", null, this.getLabelFromValue(currValue)))) : isMobileOrTablet() ? (h(\"select\", Object.assign({ ref: (el) => (this.nativeSelectElement = el), disabled: disabled, onChange: this.handleNativeSelectChange, required: required, id: this.inputId, \"aria-label\": label, \"aria-describedby\": describedBy, \"aria-invalid\": invalid, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.handleNativeSelectKeyDown, form: this.form }, this.inheritedAttributes), h(\"option\", { value: \"\", selected: true, disabled: !showClearButton }, placeholder), options.map((option) => {\n if (option.children) {\n return (h(\"optgroup\", { label: option.label }, option.children.map((option) => (h(\"option\", { value: option.value, disabled: option.disabled, selected: option.value === currValue }, option.label)))));\n }\n else {\n return (h(\"option\", { value: option.value, disabled: option.disabled, selected: option.value === currValue }, option.label));\n }\n }))) : searchable ? (h(\"div\", { class: \"searchable-select-container\" }, h(\"input\", { class: \"select-input\", role: \"combobox\", autocomplete: \"off\", \"aria-label\": label, \"aria-describedby\": describedBy, \"aria-activedescendant\": this.ariaActiveDescendant, \"aria-autocomplete\": \"list\", \"aria-expanded\": this.open ? \"true\" : \"false\", \"aria-invalid\": invalid, \"aria-required\": required ? \"true\" : \"false\", \"aria-controls\": menuId, ref: (el) => (this.searchableSelectElement = el), id: this.inputId, value: this.searchableSelectInputValue, placeholder: placeholder, disabled: disabled, onInput: this.handleSearchableSelectInput, onClick: this.handleClick, onKeyDown: this.handleKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, form: this.form, formaction: this.formaction, formenctype: this.formenctype, formmethod: this.formmethod, formnovalidate: this.formnovalidate, formtarget: this.formtarget }), this.searchableSelectInputValue &&\n (showClearButton || searchable) && (h(\"div\", { class: \"clear-button-container\" }, h(\"ic-button\", { id: \"clear-button\", ref: (el) => (this.clearButton = el), \"aria-label\": this.searchableSelectInputValue && currValue === null\n ? \"Clear input\"\n : \"Clear selection\", class: \"clear-button\", innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: size, variant: \"icon\", appearance: this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark }), h(\"div\", { class: \"divider\" }))), h(\"span\", { onMouseDown: this.handleExpandIconMouseDown, class: {\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n \"expand-icon-filled\": !(currValue == null || currValue === \"\"),\n }, innerHTML: Expand, \"aria-hidden\": \"true\" }), h(\"div\", { \"aria-live\": \"polite\", role: \"status\", class: \"searchable-select-results-status\" }))) : (h(\"div\", { class: \"select-container\" }, h(\"button\", { class: \"select-input\", ref: (el) => (this.customSelectElement = el), id: this.inputId, \"aria-label\": `${label}, ${this.getLabelFromValue(currValue) || placeholder}${required ? \", required\" : \"\"}`, \"aria-describedby\": describedBy, \"aria-invalid\": invalid, \"aria-haspopup\": \"listbox\", \"aria-expanded\": this.open ? \"true\" : \"false\", \"aria-owns\": menuId, \"aria-controls\": menuId, disabled: disabled, onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.handleClick, onMouseDown: this.handleMouseDown, onKeyDown: this.handleKeyDown }, h(\"ic-typography\", { variant: \"body\", class: {\n \"value-text\": true,\n placeholder: this.getLabelFromValue(currValue) === undefined,\n } }, this.getLabelFromValue(currValue) || placeholder), h(\"div\", { class: \"select-input-end\" }, currValue && showClearButton && (h(\"div\", { class: \"divider\" })), h(\"span\", { class: {\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n \"expand-icon-filled\": !(currValue == null || currValue === \"\"),\n }, innerHTML: Expand, \"aria-hidden\": \"true\" }))), currValue && showClearButton && (h(\"ic-button\", { id: \"clear-button\", \"aria-label\": \"Clear selection\", class: \"clear-button\", innerHTML: Clear, onClick: this.handleClear, onFocus: this.handleClearButtonFocus, onBlur: this.handleClearButtonBlur, size: size, variant: \"icon\", appearance: this.clearButtonFocused\n ? IcThemeForegroundEnum.Light\n : IcThemeForegroundEnum.Dark }))))), !isMobileOrTablet() && (h(\"ic-menu\", { class: {\n \"no-results\": this.loading ||\n this.hasTimedOut ||\n (this.noOptions !== null &&\n this.noOptions[0] &&\n this.noOptions[0].label === this.emptyOptionListText),\n }, ref: (el) => (this.menu = el), inputEl: searchable\n ? this.searchableSelectElement\n : this.customSelectElement, inputLabel: label, anchorEl: this.anchorEl, small: small, size: size, menuId: menuId, open: this.open, options: searchable ? this.filteredOptions : this.uniqueOptions, value: currValue, fullWidth: fullWidth, selectOnEnter: this.selectOnEnter, onMenuStateChange: this.handleMenuChange, onMenuOptionSelect: this.handleCustomSelectChange, onMenuKeyPress: this.handleMenuKeyPress, onMenuValueChange: this.handleMenuValueChange, onUngroupedOptionsSet: this.setUngroupedOptions, onRetryButtonClicked: this.handleRetry, parentEl: this.el, onTimeoutBlur: this.onTimeoutBlur, activationType: this.searchable || this.selectOnEnter ? \"manual\" : \"automatic\" })), hasValidationStatus(this.validationStatus, this.disabled) && (h(\"ic-input-validation\", { class: { \"menu-open\": this.open }, ariaLiveMode: \"polite\", status: validationStatus, message: validationText, for: this.inputId })))));\n }\n static get is() { return \"ic-select\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-select.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-select.css\"]\n };\n }\n static get properties() {\n return {\n \"charactersUntilSuggestions\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"characters-until-suggestions\",\n \"reflect\": false,\n \"defaultValue\": \"0\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\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 \"attribute\": \"disabled\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"disableFilter\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the built in filtering will be disabled for a searchable variant. For example, if options will already be filtered from external source.\"\n },\n \"attribute\": \"disable-filter\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"emptyOptionListText\": {\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 text displayed when there are no options in the option list.\"\n },\n \"attribute\": \"empty-option-list-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"No results found\\\"\"\n },\n \"form\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The <form> element to associate the select with.\"\n },\n \"attribute\": \"form\",\n \"reflect\": false\n },\n \"formaction\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The URL that processes the information submitted by the select. It overrides the action attribute of the select's form owner. Does nothing if there is no form owner.\\nThis prop should only be used with searchable select and will only be applied if searchable is true.\"\n },\n \"attribute\": \"formaction\",\n \"reflect\": false\n },\n \"formenctype\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The way the submitted form data is encoded. This prop should only be used with searchable select and will only be applied if searchable is true.\"\n },\n \"attribute\": \"formenctype\",\n \"reflect\": false\n },\n \"formmethod\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The HTTP method used to submit the form. This prop should only be used with searchable select and will only be applied if searchable is true.\"\n },\n \"attribute\": \"formmethod\",\n \"reflect\": false\n },\n \"formnovalidate\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the form will not be validated when submitted. This prop should only be used with searchable select and will only be applied if searchable is true.\"\n },\n \"attribute\": \"formnovalidate\",\n \"reflect\": false\n },\n \"formtarget\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The place to display the response from submitting the form. It overrides the target attribute of the select's form owner.\\nThis prop should only be used with searchable select and will only be applied if searchable is true.\"\n },\n \"attribute\": \"formtarget\",\n \"reflect\": false\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 select element will fill the width of the container. This prop should only be used with searchable select and will only be applied if searchable is true.\"\n },\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"helperText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The helper text that will be displayed for additional field guidance.\"\n },\n \"attribute\": \"helper-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"hideLabel\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the label will be hidden and the required label value will be applied as an aria-label.\"\n },\n \"attribute\": \"hide-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"includeDescriptionsInSearch\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, descriptions of options will be included when filtering options in a searchable select. Only applies to built in filtering.\"\n },\n \"attribute\": \"include-descriptions-in-search\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"includeGroupTitlesInSearch\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, group titles of grouped options will be included when filtering options in a searchable select. Only applies to built in filtering.\"\n },\n \"attribute\": \"include-group-titles-in-search\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\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 select.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"loadingErrorLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The message displayed when external loading times out.\"\n },\n \"attribute\": \"loading-error-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Loading Error\\\"\"\n },\n \"loadingLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The message displayed whilst the options are being loaded externally.\"\n },\n \"attribute\": \"loading-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Loading...\\\"\"\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The name of the control, which is submitted with the form data.\"\n },\n \"attribute\": \"name\",\n \"reflect\": false,\n \"defaultValue\": \"this.inputId\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The placeholder value to be displayed.\"\n },\n \"attribute\": \"placeholder\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Select an option\\\"\"\n },\n \"readonly\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\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 \"attribute\": \"readonly\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the select will require a value.\"\n },\n \"attribute\": \"required\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"searchable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, a searchable variant of the select will be displayed which can be typed in to filter options.\"\n },\n \"attribute\": \"searchable\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"searchMatchPosition\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSearchMatchPositions\",\n \"resolved\": \"\\\"anywhere\\\" | \\\"start\\\"\",\n \"references\": {\n \"IcSearchMatchPositions\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSearchMatchPositions\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Whether the search string of the searchable select should match the start of or anywhere in the options. Only applies to built in filtering.\"\n },\n \"attribute\": \"search-match-position\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"anywhere\\\"\"\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\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown.\"\n },\n \"attribute\": \"select-on-enter\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"showClearButton\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, a button which clears the select input when clicked will be displayed. The button will always appear on the searchable select.\"\n },\n \"attribute\": \"show-clear-button\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"default\\\" | \\\"large\\\" | \\\"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\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the select component.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"small\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Set prop `size` to \\\"small\\\" instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"small\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"timeout\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If using external filtering, set a timeout for when loading takes too long.\"\n },\n \"attribute\": \"timeout\",\n \"reflect\": false\n },\n \"validationStatus\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcInformationStatusOrEmpty\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\" | \\\"success\\\" | \\\"warning\\\"\",\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 - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"attribute\": \"validation-status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"validationText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text to display as the validation message.\"\n },\n \"attribute\": \"validation-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"loading\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the loading state will be triggered when fetching options asynchronously.\"\n },\n \"attribute\": \"loading\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\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\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The possible selection options.\"\n },\n \"defaultValue\": \"[]\"\n },\n \"debounce\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\"\n },\n \"attribute\": \"debounce\",\n \"reflect\": false,\n \"defaultValue\": \"0\"\n },\n \"value\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The value of the select, reflected by the value of the currently selected option. For the searchable variant, the value is also reflected by the user input.\"\n },\n \"attribute\": \"value\",\n \"reflect\": false\n }\n };\n }\n static get states() {\n return {\n \"ariaActiveDescendant\": {},\n \"clearButtonFocused\": {},\n \"debounceIcChange\": {},\n \"hiddenInputValue\": {},\n \"noOptions\": {},\n \"open\": {},\n \"pressedCharacters\": {},\n \"searchableSelectInputValue\": {},\n \"filteredOptions\": {},\n \"uniqueOptions\": {},\n \"currDebounce\": {},\n \"initialValue\": {},\n \"inputValueToFilter\": {},\n \"currValue\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icBlur\",\n \"name\": \"icBlur\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the select loses focus.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icChange\",\n \"name\": \"icChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the value changes.\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }, {\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 button is clicked.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icClose\",\n \"name\": \"icClose\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the select options menu is closed.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icFocus\",\n \"name\": \"icFocus\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the select gains focus.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icInput\",\n \"name\": \"icInput\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a keyboard input occurred.\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"icOpen\",\n \"name\": \"icOpen\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the select options menu is opened.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icOptionSelect\",\n \"name\": \"icOptionSelect\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when an option is highlighted within the menu.\\nHighlighting a menu item will also trigger an `icChange/onIcChange` due to the value being updated.\"\n },\n \"complexType\": {\n \"original\": \"IcOptionSelectEventDetail\",\n \"resolved\": \"IcOptionSelectEventDetail\",\n \"references\": {\n \"IcOptionSelectEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../ic-menu/ic-menu.types\",\n \"id\": \"src/components/ic-menu/ic-menu.types.ts::IcOptionSelectEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"icRetryLoad\",\n \"name\": \"icRetryLoad\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the 'retry loading' button is clicked for a searchable variant.\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }];\n }\n static get methods() {\n return {\n \"setFocus\": {\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\": \"Sets focus on the input box.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"loading\",\n \"methodName\": \"loadingHandler\"\n }, {\n \"propName\": \"options\",\n \"methodName\": \"watchOptionsHandler\"\n }, {\n \"propName\": \"debounce\",\n \"methodName\": \"debounceChangedHandler\"\n }, {\n \"propName\": \"value\",\n \"methodName\": \"valueChangedHandler\"\n }, {\n \"propName\": \"open\",\n \"methodName\": \"openChangedHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-select.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:host {\n /**\n * @prop --input-width: Width of the input field\n */\n display: block;\n}\n\n:host(.fullwidth) {\n width: 100%;\n}\n\n::-moz-placeholder {\n color: var(--ic-color-tertiary-text);\n opacity: 1;\n}\n\n::placeholder {\n color: var(--ic-color-tertiary-text);\n opacity: 1;\n}\n\ninput,\ntextarea {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n padding-right: var(--ic-space-xs);\n padding-left: var(--ic-space-xs);\n}\n\ntextarea {\n min-height: var(--ic-space-lg);\n resize: vertical;\n padding-top: 0.375rem;\n}\n\ninput:focus,\ntextarea:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ntextarea:disabled {\n color: var(--ic-architectural-200);\n}\n\ninput.readonly,\ntextarea.readonly {\n color: var(--ic-color-primary-text);\n}\n\n/* Chrome, Safari, Edge */\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n/* Firefox */\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\ntextarea.no-resize {\n resize: none;\n}\n\n.maxlengthtext {\n color: var(--ic-color-secondary-text);\n padding-right: var(--ic-space-xxxs);\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-color-tertiary-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-color-primary-text);\n}\n\n.charcount {\n margin-right: calc(-1 * var(--ic-space-xxxs));\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n}\n\ninput[type=\"search\"].truncate-value {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@media (forced-colors: active) {\n input.readonly,\n textarea.readonly {\n color: canvastext;\n }\n\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import { Host, h, forceUpdate, } from \"@stencil/core\";\nimport { IcInformationStatus, } from \"../../utils/types\";\nimport { inheritAttributes, debounceEvent, getInputDescribedByText, renderHiddenInput, isEmptyString, onComponentRequiredPropUndefined, addFormResetListener, removeFormResetListener, isSlotUsed, removeDisabledFalse, checkSlotInChildMutations, } from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n/**\n * @slot icon - Content will be placed to the left of the text input.\n */\nexport class TextField {\n constructor() {\n this.inheritedAttributes = {};\n this.hostMutationObserver = null;\n this.getMaxLengthExceeded = (value) => {\n this.numChars = value.length;\n if (this.type === \"number\") {\n this.minValueUnattained = value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n if (this.maxLength > 0) {\n this.maxLengthExceeded = this.numChars > this.maxLength;\n }\n };\n this.getMaxCharactersReached = (value) => {\n this.numChars = value.length;\n this.maxCharactersReached =\n this.maxCharacters > 0 ? this.numChars >= this.maxCharacters : false;\n if (this.maxCharactersError && !this.maxCharactersReached) {\n this.maxCharactersError = false;\n }\n };\n this.onInput = (ev) => {\n this.value = ev.target.value;\n this.icInput.emit({ value: this.value });\n };\n this.onBlur = (ev) => {\n const value = ev.target.value;\n this.numChars = value.length;\n this.minCharactersUnattained =\n this.minCharacters > 0 ? this.numChars < this.minCharacters : false;\n this.icBlur.emit({ value: value });\n };\n this.onFocus = (ev) => {\n this.icFocus.emit({ value: ev.target.value });\n };\n this.hasStatus = (status) => status !== \"\" && !this.disabled;\n this.handleFormReset = () => {\n this.value = this.initialValue;\n };\n // triggered when attributes of host element change\n this.hostMutationCallback = (mutationList) => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName, type, addedNodes, removedNodes }) => {\n if (MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] =\n this.el.getAttribute(attributeName);\n forceComponentUpdate = true;\n }\n else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(addedNodes, removedNodes, \"icon\");\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n this.numChars = 0;\n this.maxCharactersReached = false;\n this.maxCharactersError = false;\n this.minCharactersUnattained = false;\n this.maxLengthExceeded = false;\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n this.ariaActiveDescendant = undefined;\n this.ariaAutocomplete = undefined;\n this.ariaExpanded = undefined;\n this.ariaOwns = undefined;\n this.autocapitalize = \"off\";\n this.autocomplete = \"off\";\n this.autocorrect = \"off\";\n this.autoFocus = false;\n this.disabled = false;\n this.fullWidth = false;\n this.helperText = \"\";\n this.hideLabel = false;\n this.hiddenInput = true;\n this.inputId = `ic-text-field-input-${inputIds++}`;\n this.inputmode = \"text\";\n this.label = undefined;\n this.max = undefined;\n this.maxCharacters = 0;\n this.maxLength = 0;\n this.maxLengthMessage = \"Maximum length exceeded\";\n this.min = undefined;\n this.minCharacters = 0;\n this.name = this.inputId;\n this.placeholder = \"\";\n this.readonly = false;\n this.required = false;\n this.resize = false;\n this.role = undefined;\n this.rows = 1;\n this.size = \"default\";\n this.small = false;\n this.spellcheck = false;\n this.truncateValue = undefined;\n this.type = \"text\";\n this.validationInline = false;\n this.validationInlineInternal = false;\n this.validationStatus = \"\";\n this.validationText = \"\";\n this.debounce = 0;\n this.value = \"\";\n this.initialValue = this.value;\n }\n debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n watchValueHandler(newValue) {\n if (this.inputEl && this.inputEl.value !== newValue) {\n this.inputEl.value = newValue;\n }\n this.getMaxLengthExceeded(newValue);\n this.getMaxCharactersReached(newValue);\n this.icChange.emit({ value: newValue });\n }\n connectedCallback() {\n this.debounceChanged();\n }\n disconnectedCallback() {\n var _a;\n removeFormResetListener(this.el, this.handleFormReset);\n (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n componentWillLoad() {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n }\n this.getMaxLengthExceeded(this.value);\n this.getMaxCharactersReached(this.value);\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n if (this.readonly) {\n this.maxLengthExceeded = false;\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.label, propName: \"label\" }], \"Text Field\");\n if (this.validationInlineInternal) {\n this.getValidationText.emit({ value: this.validationText });\n }\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n handleKeyDown(ev) {\n this.icKeydown.emit({ event: ev });\n this.maxCharactersError = this.maxCharactersReached;\n }\n /**\n * Sets focus on the native `input`.\n */\n async setFocus() {\n var _a;\n (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();\n }\n render() {\n const { inputId, name, label, required, size, small, placeholder, helperText, rows, resize, disabled, value, min, max, maxLength, numChars, readonly, maxLengthExceeded, maxCharacters, maxCharactersError, maxCharactersReached, minCharacters, minCharactersUnattained, minValueUnattained, maxValueExceeded, validationStatus, validationText, validationInline, validationInlineInternal, spellcheck, inputmode, fullWidth, truncateValue, hiddenInput, } = this;\n const disabledMode = readonly ? true : disabled;\n const currentStatus = maxLengthExceeded ||\n maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersError\n ? maxCharactersError\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n const currentValidationText = maxLengthExceeded\n ? this.maxLengthMessage\n : maxCharactersError\n ? `Maximum input is ${maxCharacters} characters`\n : maxValueExceeded\n ? `Maximum value of ${max} exceeded`\n : minValueUnattained\n ? `Minimum value of ${min} not met`\n : minCharactersUnattained\n ? `Minimum input is ${minCharacters} characters`\n : validationText;\n const maxNumChars = readonly ? 0 : maxLength;\n const messageAriaLive = maxLengthExceeded ||\n maxCharactersError ||\n maxValueExceeded ||\n minValueUnattained ||\n (maxLength === 0 && currentStatus === IcInformationStatus.Error)\n ? \"assertive\"\n : \"polite\";\n const showStatusText = this.hasStatus(currentStatus) &&\n !(currentStatus == IcInformationStatus.Success && validationInline) &&\n !validationInlineInternal;\n const multiline = rows > 1;\n const hiddenCharCountDescId = maxLength > 0 ? `${inputId}-charcount-desc` : \"\";\n const describedBy = `${hiddenCharCountDescId} ${getInputDescribedByText(inputId, helperText !== \"\", showStatusText)}`.trim();\n const disabledText = disabledMode && !readonly;\n const showLeftIcon = !!this.el.querySelector(`[slot=\"icon\"]`) && !disabledText;\n const invalid = `${currentStatus === IcInformationStatus.Error}`;\n if (hiddenInput) {\n renderHiddenInput(true, this.el, name, value, disabledMode);\n }\n return (h(Host, { class: { [\"fullwidth\"]: fullWidth } }, h(\"ic-input-container\", { readonly: readonly, disabled: disabledMode }, !this.hideLabel && (h(\"ic-input-label\", { for: inputId, label: label, helperText: helperText, required: required, disabled: disabledText, readonly: readonly })), h(\"ic-input-component-container\", { size: small ? \"small\" : size, validationStatus: currentStatus, multiLine: multiline, disabled: disabledMode, readonly: readonly, validationInline: validationInline, fullWidth: fullWidth }, showLeftIcon && (h(\"span\", { class: {\n [\"readonly\"]: readonly,\n [\"has-value\"]: value.length > 0,\n }, slot: \"left-icon\" }, h(\"slot\", { name: \"icon\" }))), !multiline ? (h(\"input\", Object.assign({ id: inputId, name: name, ref: (el) => (this.inputEl = el), type: this.type, min: min, max: max, value: value, class: {\n [\"no-left-pad\"]: !showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n [\"truncate-value\"]: truncateValue,\n }, placeholder: placeholder ? placeholder : \"\", required: required, disabled: disabledMode, readonly: readonly, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, \"aria-label\": label, \"aria-describedby\": describedBy, \"aria-invalid\": invalid, \"aria-activedescendant\": this.ariaActiveDescendant, \"aria-expanded\": this.ariaExpanded, \"aria-owns\": this.ariaOwns, autocomplete: this.autocomplete, autocapitalize: this.autocapitalize, autoFocus: this.autoFocus, spellcheck: spellcheck, inputmode: inputmode, role: this.role, maxlength: maxCharactersReached ? maxCharacters : null, minlength: minCharactersUnattained ? minCharacters : null }, this.inheritedAttributes))) : (h(\"textarea\", Object.assign({ id: inputId, class: {\n [\"no-resize\"]: resize === false || readonly,\n [\"no-left-pad\"]: !showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n }, name: name, ref: (el) => (this.inputEl = el), value: value, rows: rows, required: required, disabled: disabledMode, placeholder: placeholder ? placeholder : \"\", readonly: readonly, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, \"aria-label\": label, \"aria-describedby\": describedBy, \"aria-invalid\": invalid, autocapitalize: this.autocapitalize, autoFocus: this.autoFocus, spellcheck: spellcheck, inputmode: inputmode, maxlength: maxCharactersReached ? maxCharacters : null, minlength: minCharactersUnattained ? minCharacters : null }, this.inheritedAttributes))), isSlotUsed(this.el, \"clear-button\") && (h(\"slot\", { name: \"clear-button\" })), isSlotUsed(this.el, \"search-submit-button\") && (h(\"slot\", { name: \"search-submit-button\" }))), isSlotUsed(this.el, \"menu\") && h(\"slot\", { name: \"menu\" }), (!isEmptyString(validationStatus) ||\n !isEmptyString(validationText) ||\n maxNumChars > 0 ||\n maxValueExceeded ||\n maxCharactersError ||\n minCharactersUnattained ||\n minValueUnattained) &&\n !validationInlineInternal && (h(\"ic-input-validation\", { status: this.hasStatus(currentStatus) === false ||\n (currentStatus === IcInformationStatus.Success &&\n validationInline) ||\n validationInlineInternal\n ? \"\"\n : currentStatus, message: showStatusText ? currentValidationText : \"\", ariaLiveMode: messageAriaLive, for: inputId, fullWidth: fullWidth }, !readonly && maxNumChars > 0 && (h(\"div\", { slot: \"validation-message-adornment\" }, h(\"ic-typography\", { variant: \"caption\", class: {\n [\"maxlengthtext\"]: true,\n [\"error\"]: maxLengthExceeded,\n [\"disabled\"]: disabledText,\n } }, h(\"span\", { \"aria-live\": \"polite\", id: `${inputId}-charcount`, class: \"charcount\" }, numChars, \"/\", maxNumChars), h(\"span\", { hidden: true, id: hiddenCharCountDescId }, \"Field can contain a maximum of \", maxNumChars, \" characters.\")))))))));\n }\n static get is() { return \"ic-text-field\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-text-field.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-text-field.css\"]\n };\n }\n static get properties() {\n return {\n \"ariaActiveDescendant\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"The active element when focus is on the ic-menu items.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"aria-active-descendant\",\n \"reflect\": false\n },\n \"ariaAutocomplete\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcAriaAutocompleteTypes\",\n \"resolved\": \"\\\"inline\\\" | \\\"list\\\"\",\n \"references\": {\n \"IcAriaAutocompleteTypes\": {\n \"location\": \"import\",\n \"path\": \"./ic-text-field.types\",\n \"id\": \"src/components/ic-text-field/ic-text-field.types.ts::IcAriaAutocompleteTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Used to identify whether inputting any text triggers more predictions\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"aria-autocomplete\",\n \"reflect\": false,\n \"defaultValue\": \"undefined\"\n },\n \"ariaExpanded\": {\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 \"name\": \"internal\",\n \"text\": \"Used to identify if the slotted menu is rendered\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"aria-expanded\",\n \"reflect\": false\n },\n \"ariaOwns\": {\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 \"name\": \"internal\",\n \"text\": \"Used to identify any related child component\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"aria-owns\",\n \"reflect\": false\n },\n \"autocapitalize\": {\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 automatic capitalisation of the text value as it is entered/edited by the user.\\nAvailable options: \\\"off\\\", \\\"none\\\", \\\"on\\\", \\\"sentences\\\", \\\"words\\\", \\\"characters\\\".\"\n },\n \"attribute\": \"autocapitalize\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"off\\\"\"\n },\n \"autocomplete\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcAutocompleteTypes\",\n \"resolved\": \"\\\"name\\\" | \\\"on\\\" | \\\"off\\\" | \\\"honorific-prefix\\\" | \\\"given-name\\\" | \\\"additional-name\\\" | \\\"family-name\\\" | \\\"honorific-suffix\\\" | \\\"nickname\\\" | \\\"email\\\" | \\\"username\\\" | \\\"new-password\\\" | \\\"current-password\\\" | \\\"one-time-code\\\" | \\\"organization-title\\\" | \\\"organization\\\" | \\\"street-address\\\" | \\\"address-line1\\\" | \\\"address-line2\\\" | \\\"address-line3\\\" | \\\"address-level4\\\" | \\\"address-level3\\\" | \\\"address-level2\\\" | \\\"address-level1\\\" | \\\"country\\\" | \\\"country-name\\\" | \\\"postal-code\\\" | \\\"cc-name\\\" | \\\"cc-given-name\\\" | \\\"cc-additional-name\\\" | \\\"cc-family-name\\\" | \\\"cc-number\\\" | \\\"cc-exp\\\" | \\\"cc-exp-month\\\" | \\\"cc-exp-year\\\" | \\\"cc-csc\\\" | \\\"cc-type\\\" | \\\"transaction-currency\\\" | \\\"transaction-amount\\\" | \\\"language\\\" | \\\"bday\\\" | \\\"bday-day\\\" | \\\"bday-month\\\" | \\\"bday-year\\\" | \\\"sex\\\" | \\\"tel\\\" | \\\"tel-country-code\\\" | \\\"tel-national\\\" | \\\"tel-area-code\\\" | \\\"tel-local\\\" | \\\"tel-extension\\\" | \\\"impp\\\" | \\\"url\\\" | \\\"photo\\\"\",\n \"references\": {\n \"IcAutocompleteTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcAutocompleteTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The state of autocompletion the browser can apply on the text value.\"\n },\n \"attribute\": \"autocomplete\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"off\\\"\"\n },\n \"autocorrect\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcAutocorrectStates\",\n \"resolved\": \"\\\"off\\\" | \\\"on\\\"\",\n \"references\": {\n \"IcAutocorrectStates\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcAutocorrectStates\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The state of autocorrection the browser can apply when the user is entering/editing the text value.\"\n },\n \"attribute\": \"autocorrect\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"off\\\"\"\n },\n \"autoFocus\": {\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 form control will have input focus when the page loads.\"\n },\n \"attribute\": \"auto-focus\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\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 disabled state will be set.\"\n },\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\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specify whether the text field fills the full width of the container.\\nIf `true`, this overrides the --input-width CSS variable.\"\n },\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"helperText\": {\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 helper text that will be displayed for additional field guidance.\"\n },\n \"attribute\": \"helper-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"hideLabel\": {\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 label will be hidden and the required label value will be applied as an aria-label.\"\n },\n \"attribute\": \"hide-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hiddenInput\": {\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 hidden form input will stop rendering for form submission.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"hidden-input\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"inputId\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID for the input.\"\n },\n \"attribute\": \"input-id\",\n \"reflect\": false,\n \"defaultValue\": \"`ic-text-field-input-${inputIds++}`\"\n },\n \"inputmode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcTextFieldInputModes\",\n \"resolved\": \"\\\"decimal\\\" | \\\"email\\\" | \\\"none\\\" | \\\"numeric\\\" | \\\"search\\\" | \\\"tel\\\" | \\\"text\\\" | \\\"url\\\"\",\n \"references\": {\n \"IcTextFieldInputModes\": {\n \"location\": \"import\",\n \"path\": \"./ic-text-field.types\",\n \"id\": \"src/components/ic-text-field/ic-text-field.types.ts::IcTextFieldInputModes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A hint to the browser for which keyboard to display.\\nPossible values: `\\\"none\\\"`, `\\\"text\\\"`, `\\\"tel\\\"`, `\\\"url\\\"`,\\n`\\\"email\\\"`, `\\\"numeric\\\"`, `\\\"decimal\\\"`, and `\\\"search\\\"`.\"\n },\n \"attribute\": \"inputmode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"text\\\"\"\n },\n \"label\": {\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.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"max\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | number\",\n \"resolved\": \"number | string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\"\n },\n \"attribute\": \"max\",\n \"reflect\": false,\n \"defaultValue\": \"undefined\"\n },\n \"maxCharacters\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The maximum number of characters that can be entered in the field. Will display an error if too many characters are entered.\"\n },\n \"attribute\": \"max-characters\",\n \"reflect\": false,\n \"defaultValue\": \"0\"\n },\n \"maxLength\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The count of characters in the field. Will display a warning if the bound is reached.\"\n },\n \"attribute\": \"max-length\",\n \"reflect\": false,\n \"defaultValue\": \"0\"\n },\n \"maxLengthMessage\": {\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 text to display as the validation message when the maximum length is exceeded.\"\n },\n \"attribute\": \"max-length-message\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Maximum length exceeded\\\"\"\n },\n \"min\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | number\",\n \"resolved\": \"number | string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\"\n },\n \"attribute\": \"min\",\n \"reflect\": false,\n \"defaultValue\": \"undefined\"\n },\n \"minCharacters\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The minimum number of characters that can be entered in the field.\"\n },\n \"attribute\": \"min-characters\",\n \"reflect\": false,\n \"defaultValue\": \"0\"\n },\n \"name\": {\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 name of the control, which is submitted with the form data.\"\n },\n \"attribute\": \"name\",\n \"reflect\": false,\n \"defaultValue\": \"this.inputId\"\n },\n \"placeholder\": {\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 placeholder value to be displayed.\"\n },\n \"attribute\": \"placeholder\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"readonly\": {\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 read only state will be set.\"\n },\n \"attribute\": \"readonly\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"required\": {\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 input will require a value.\"\n },\n \"attribute\": \"required\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"resize\": {\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 multiline text area will be resizeable.\"\n },\n \"attribute\": \"resize\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"role\": {\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 \"name\": \"internal\",\n \"text\": \"Used to set the role if not default textbox;\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"role\",\n \"reflect\": false\n },\n \"rows\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The number of rows to transform the text field into a text area with a specific height.\"\n },\n \"attribute\": \"rows\",\n \"reflect\": false,\n \"defaultValue\": \"1\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizesNoLarge\",\n \"resolved\": \"\\\"default\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizesNoLarge\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizesNoLarge\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the text field component.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"small\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Set prop `size` to \\\"small\\\" instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"small\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"spellcheck\": {\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 value of the text field will have its spelling and grammar checked.\"\n },\n \"attribute\": \"spellcheck\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"truncateValue\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"truncate-value\",\n \"reflect\": false\n },\n \"type\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcTextFieldTypes\",\n \"resolved\": \"\\\"email\\\" | \\\"number\\\" | \\\"password\\\" | \\\"search\\\" | \\\"tel\\\" | \\\"text\\\" | \\\"url\\\"\",\n \"references\": {\n \"IcTextFieldTypes\": {\n \"location\": \"import\",\n \"path\": \"./ic-text-field.types\",\n \"id\": \"src/components/ic-text-field/ic-text-field.types.ts::IcTextFieldTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The type of control to display. The default type is text.\"\n },\n \"attribute\": \"type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"text\\\"\"\n },\n \"validationInline\": {\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 icon in input control will be displayed - only applies when validationStatus ='success'.\"\n },\n \"attribute\": \"validation-inline\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"validationInlineInternal\": {\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 validation will display inline.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"validation-inline-internal\",\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\\\"\",\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\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation state - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"attribute\": \"validation-status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"validationText\": {\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 validation state - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"attribute\": \"validation-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"debounce\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\"\n },\n \"attribute\": \"debounce\",\n \"reflect\": false,\n \"defaultValue\": \"0\"\n },\n \"value\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The value of the text field.\"\n },\n \"attribute\": \"value\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"numChars\": {},\n \"maxCharactersReached\": {},\n \"maxCharactersError\": {},\n \"minCharactersUnattained\": {},\n \"maxLengthExceeded\": {},\n \"maxValueExceeded\": {},\n \"minValueUnattained\": {},\n \"initialValue\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"getValidationText\",\n \"name\": \"getValidationText\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the validationInlineInternal is `true`\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"icBlur\",\n \"name\": \"icBlur\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when input loses focus.\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"icChange\",\n \"name\": \"icChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the value has changed.\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"icFocus\",\n \"name\": \"icFocus\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when input gains focus.\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"icInput\",\n \"name\": \"icInput\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a keyboard input occurred.\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"icKeydown\",\n \"name\": \"icKeydown\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a keydown event occurred.\"\n },\n \"complexType\": {\n \"original\": \"{ event: KeyboardEvent }\",\n \"resolved\": \"{ event: KeyboardEvent; }\",\n \"references\": {\n \"KeyboardEvent\": {\n \"location\": \"global\",\n \"id\": \"global::KeyboardEvent\"\n }\n }\n }\n }];\n }\n static get methods() {\n return {\n \"setFocus\": {\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\": \"Sets focus on the native `input`.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"debounce\",\n \"methodName\": \"debounceChanged\"\n }, {\n \"propName\": \"value\",\n \"methodName\": \"watchValueHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"keydown\",\n \"method\": \"handleKeyDown\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-text-field.js.map\n"],"mappings":"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"}