@ukic/canary-web-components 3.0.0-canary.13 → 3.0.0-canary.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-0e4c4fdd.js → helpers-32016c21.js} +21 -3
  3. package/dist/cjs/helpers-32016c21.js.map +1 -0
  4. package/dist/cjs/ic-button_3.cjs.entry.js +59 -1
  5. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-data-table.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-date-input.cjs.entry.js +52 -19
  11. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-date-picker.cjs.entry.js +15 -10
  13. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-empty-state_2.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-navigation-group.cjs.entry.js +6 -3
  18. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-navigation-menu.cjs.entry.js +36 -22
  20. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-pagination_4.cjs.entry.js +13 -10
  22. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -4
  24. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-side-navigation.cjs.entry.js +7 -4
  26. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-skip-link.cjs.entry.js +10 -9
  28. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-step.cjs.entry.js +13 -12
  32. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-toast.cjs.entry.js +3 -3
  34. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-tree-item.cjs.entry.js +29 -8
  36. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-tree-view.cjs.entry.js +113 -12
  38. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  39. package/dist/cjs/loader.cjs.js +1 -1
  40. package/dist/collection/components/ic-data-table/ic-data-table.css +3 -2
  41. package/dist/collection/components/ic-date-input/ic-date-input.js +83 -24
  42. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  43. package/dist/collection/components/ic-date-input/ic-date-input.stories.js +18 -0
  44. package/dist/collection/components/ic-date-input/ic-date-input.stories.js.map +1 -1
  45. package/dist/collection/components/ic-date-picker/ic-date-picker.js +34 -9
  46. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  47. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js +9 -1
  48. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js.map +1 -1
  49. package/dist/collection/components/ic-date-picker/story-data.js +16 -1
  50. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -1
  51. package/dist/collection/components/ic-tree-item/ic-tree-item.js +50 -7
  52. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  53. package/dist/collection/components/ic-tree-view/ic-tree-view.js +146 -16
  54. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  55. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js +384 -12
  56. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js.map +1 -1
  57. package/dist/collection/components/ic-tree-view/ic-tree-view.types.js +2 -0
  58. package/dist/collection/components/ic-tree-view/ic-tree-view.types.js.map +1 -0
  59. package/dist/collection/utils/helpers.js.map +1 -1
  60. package/dist/components/helpers.js +1 -1
  61. package/dist/components/helpers2.js +19 -3
  62. package/dist/components/helpers2.js.map +1 -1
  63. package/dist/components/ic-button2.js +59 -1
  64. package/dist/components/ic-button2.js.map +1 -1
  65. package/dist/components/ic-data-table.js +1 -1
  66. package/dist/components/ic-data-table.js.map +1 -1
  67. package/dist/components/ic-date-input2.js +58 -21
  68. package/dist/components/ic-date-input2.js.map +1 -1
  69. package/dist/components/ic-date-picker.js +15 -9
  70. package/dist/components/ic-date-picker.js.map +1 -1
  71. package/dist/components/ic-menu-item2.js +1 -1
  72. package/dist/components/ic-menu-item2.js.map +1 -1
  73. package/dist/components/ic-navigation-group.js +6 -3
  74. package/dist/components/ic-navigation-group.js.map +1 -1
  75. package/dist/components/ic-navigation-menu2.js +37 -23
  76. package/dist/components/ic-navigation-menu2.js.map +1 -1
  77. package/dist/components/ic-popover-menu.js +5 -4
  78. package/dist/components/ic-popover-menu.js.map +1 -1
  79. package/dist/components/ic-select2.js +13 -10
  80. package/dist/components/ic-select2.js.map +1 -1
  81. package/dist/components/ic-side-navigation.js +7 -4
  82. package/dist/components/ic-side-navigation.js.map +1 -1
  83. package/dist/components/ic-skip-link.js +10 -9
  84. package/dist/components/ic-skip-link.js.map +1 -1
  85. package/dist/components/ic-status-tag.js +1 -1
  86. package/dist/components/ic-status-tag.js.map +1 -1
  87. package/dist/components/ic-step.js +13 -12
  88. package/dist/components/ic-step.js.map +1 -1
  89. package/dist/components/ic-toast.js +4 -4
  90. package/dist/components/ic-toast.js.map +1 -1
  91. package/dist/components/ic-top-navigation.js +1 -1
  92. package/dist/components/ic-tree-item.js +29 -7
  93. package/dist/components/ic-tree-item.js.map +1 -1
  94. package/dist/components/ic-tree-view.js +119 -14
  95. package/dist/components/ic-tree-view.js.map +1 -1
  96. package/dist/core/core.css +35 -29
  97. package/dist/core/core.esm.js +1 -1
  98. package/dist/core/core.esm.js.map +1 -1
  99. package/dist/core/p-0ad472d0.entry.js +2 -0
  100. package/dist/core/p-0ad472d0.entry.js.map +1 -0
  101. package/dist/core/{p-fde3bbb2.entry.js → p-0c97a53d.entry.js} +2 -2
  102. package/dist/core/p-250bf568.entry.js +2 -0
  103. package/dist/core/p-250bf568.entry.js.map +1 -0
  104. package/dist/core/{p-c6f1e205.entry.js → p-48163a2a.entry.js} +2 -2
  105. package/dist/core/p-48163a2a.entry.js.map +1 -0
  106. package/dist/core/{p-95f2c59a.entry.js → p-4f00aa91.entry.js} +2 -2
  107. package/dist/core/{p-95f2c59a.entry.js.map → p-4f00aa91.entry.js.map} +1 -1
  108. package/dist/core/p-54e01fad.entry.js +2 -0
  109. package/dist/core/p-54e01fad.entry.js.map +1 -0
  110. package/dist/core/p-5d85bd73.entry.js +2 -0
  111. package/dist/core/p-5d85bd73.entry.js.map +1 -0
  112. package/dist/core/p-6040a025.entry.js +2 -0
  113. package/dist/core/p-6040a025.entry.js.map +1 -0
  114. package/dist/core/p-62f7f2bd.entry.js +2 -0
  115. package/dist/core/p-62f7f2bd.entry.js.map +1 -0
  116. package/dist/core/p-72310da8.js +2 -0
  117. package/dist/core/p-72310da8.js.map +1 -0
  118. package/dist/core/p-762a4d7c.entry.js +2 -0
  119. package/dist/core/p-762a4d7c.entry.js.map +1 -0
  120. package/dist/core/p-836d302a.entry.js +2 -0
  121. package/dist/core/p-836d302a.entry.js.map +1 -0
  122. package/dist/core/p-881bb783.entry.js +2 -0
  123. package/dist/core/p-881bb783.entry.js.map +1 -0
  124. package/dist/core/{p-3dc4e128.entry.js → p-895a3eb1.entry.js} +2 -2
  125. package/dist/core/p-9a46b1e5.entry.js +2 -0
  126. package/dist/core/p-9a46b1e5.entry.js.map +1 -0
  127. package/dist/core/{p-67f3bf1a.entry.js → p-a13dc5ba.entry.js} +2 -2
  128. package/dist/core/{p-e86c1c95.entry.js → p-c0687222.entry.js} +2 -2
  129. package/dist/core/p-c0687222.entry.js.map +1 -0
  130. package/dist/core/p-c4f7e479.entry.js +2 -0
  131. package/dist/core/p-c4f7e479.entry.js.map +1 -0
  132. package/dist/core/{p-f6013934.entry.js → p-ef25bb6d.entry.js} +2 -2
  133. package/dist/core/p-ef25bb6d.entry.js.map +1 -0
  134. package/dist/core/p-fb11ce9b.entry.js +2 -0
  135. package/dist/core/p-fb11ce9b.entry.js.map +1 -0
  136. package/dist/esm/core.js +1 -1
  137. package/dist/esm/{helpers-4e38ba2b.js → helpers-5479985d.js} +20 -4
  138. package/dist/esm/helpers-5479985d.js.map +1 -0
  139. package/dist/esm/ic-button_3.entry.js +59 -1
  140. package/dist/esm/ic-button_3.entry.js.map +1 -1
  141. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  142. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  143. package/dist/esm/ic-data-table.entry.js +2 -2
  144. package/dist/esm/ic-data-table.entry.js.map +1 -1
  145. package/dist/esm/ic-date-input.entry.js +52 -19
  146. package/dist/esm/ic-date-input.entry.js.map +1 -1
  147. package/dist/esm/ic-date-picker.entry.js +15 -10
  148. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  149. package/dist/esm/ic-empty-state_2.entry.js +1 -1
  150. package/dist/esm/ic-menu-item.entry.js +1 -1
  151. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  152. package/dist/esm/ic-navigation-group.entry.js +6 -3
  153. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  154. package/dist/esm/ic-navigation-menu.entry.js +37 -23
  155. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  156. package/dist/esm/ic-pagination_4.entry.js +13 -10
  157. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  158. package/dist/esm/ic-popover-menu.entry.js +5 -4
  159. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  160. package/dist/esm/ic-side-navigation.entry.js +7 -4
  161. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  162. package/dist/esm/ic-skip-link.entry.js +10 -9
  163. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  164. package/dist/esm/ic-status-tag.entry.js +1 -1
  165. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  166. package/dist/esm/ic-step.entry.js +13 -12
  167. package/dist/esm/ic-step.entry.js.map +1 -1
  168. package/dist/esm/ic-toast.entry.js +3 -3
  169. package/dist/esm/ic-toast.entry.js.map +1 -1
  170. package/dist/esm/ic-tree-item.entry.js +29 -8
  171. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  172. package/dist/esm/ic-tree-view.entry.js +113 -12
  173. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  174. package/dist/esm/loader.js +1 -1
  175. package/dist/types/components/ic-date-input/ic-date-input.d.ts +15 -4
  176. package/dist/types/components/ic-date-input/ic-date-input.stories.d.ts +6 -0
  177. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +4 -0
  178. package/dist/types/components/ic-date-picker/ic-date-picker.stories.d.ts +8 -0
  179. package/dist/types/components/ic-date-picker/story-data.d.ts +1 -0
  180. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +6 -0
  181. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +17 -0
  182. package/dist/types/components/ic-tree-view/ic-tree-view.stories.d.ts +91 -13
  183. package/dist/types/components/ic-tree-view/ic-tree-view.types.d.ts +12 -0
  184. package/dist/types/components.d.ts +39 -6
  185. package/dist/types/utils/helpers.d.ts +2 -2
  186. package/hydrate/index.js +449 -184
  187. package/hydrate/index.mjs +449 -184
  188. package/package.json +3 -3
  189. package/dist/cjs/helpers-0e4c4fdd.js.map +0 -1
  190. package/dist/core/p-44ffa951.entry.js +0 -2
  191. package/dist/core/p-44ffa951.entry.js.map +0 -1
  192. package/dist/core/p-47962514.entry.js +0 -2
  193. package/dist/core/p-47962514.entry.js.map +0 -1
  194. package/dist/core/p-5329e478.entry.js +0 -2
  195. package/dist/core/p-5329e478.entry.js.map +0 -1
  196. package/dist/core/p-5b2a7c1a.entry.js +0 -2
  197. package/dist/core/p-5b2a7c1a.entry.js.map +0 -1
  198. package/dist/core/p-8c4f212a.entry.js +0 -2
  199. package/dist/core/p-8c4f212a.entry.js.map +0 -1
  200. package/dist/core/p-9265efef.entry.js +0 -2
  201. package/dist/core/p-9265efef.entry.js.map +0 -1
  202. package/dist/core/p-a35cdfc3.entry.js +0 -2
  203. package/dist/core/p-a35cdfc3.entry.js.map +0 -1
  204. package/dist/core/p-ac74cdac.entry.js +0 -2
  205. package/dist/core/p-ac74cdac.entry.js.map +0 -1
  206. package/dist/core/p-ad3e543e.entry.js +0 -2
  207. package/dist/core/p-ad3e543e.entry.js.map +0 -1
  208. package/dist/core/p-ae2bae87.entry.js +0 -2
  209. package/dist/core/p-ae2bae87.entry.js.map +0 -1
  210. package/dist/core/p-afde50b8.js +0 -2
  211. package/dist/core/p-afde50b8.js.map +0 -1
  212. package/dist/core/p-b84213d1.entry.js +0 -2
  213. package/dist/core/p-b84213d1.entry.js.map +0 -1
  214. package/dist/core/p-c6f1e205.entry.js.map +0 -1
  215. package/dist/core/p-cd59dc16.entry.js +0 -2
  216. package/dist/core/p-cd59dc16.entry.js.map +0 -1
  217. package/dist/core/p-e86c1c95.entry.js.map +0 -1
  218. package/dist/core/p-f6013934.entry.js.map +0 -1
  219. package/dist/esm/helpers-4e38ba2b.js.map +0 -1
  220. /package/dist/core/{p-fde3bbb2.entry.js.map → p-0c97a53d.entry.js.map} +0 -0
  221. /package/dist/core/{p-3dc4e128.entry.js.map → p-895a3eb1.entry.js.map} +0 -0
  222. /package/dist/core/{p-67f3bf1a.entry.js.map → p-a13dc5ba.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["icPaginationCss","IcPaginationStyle0","Pagination","constructor","hostRef","this","endEllipsis","endItems","midItems","startEllipsis","startItems","adjacentPageCount","boundaryPageCount","defaultPage","disabled","hideCurrentPage","hideFirstAndLastPageButton","label","monochrome","theme","type","currentPage","handleClickFirst","icPageChange","emit","value","handleClickPrevious","handleClickNext","handleClickLast","pages","firstButton","h","id","onClick","class","variant","innerHTML","paginationFirstLast","previousButton","paginationNextPrevious","nextButton","lastButton","renderStartEllipsis","renderEndEllipsis","renderStartItems","map","page","selected","renderEndItems","renderMiddleItems","watchAdjacentPageCountHandler","watchBoundaryPageCountHandler","watchDisabledHandler","removeDisabledFalse","el","watchNumberPagesHandler","watchPageChangeHandler","watchTypeHandler","startItemCount","endStart","midStart","midEnd","i","push","numItems","componentWillLoad","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","paginationItemClickHandler","ev","detail","setCurrentPage","console","error","render","Host","key","role","icPaginationItemCss","IcPaginationItemStyle0","PaginationItem","handleClick","paginationItemClick","watchLabelHandler","capitalizedLabel","capitalize","tabindex","icSelectCss","IcSelectStyle0","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","Select","hasSetDefaultValue","inheritedAttributes","initialOptionsEmpty","inputId","menuId","searchableMenuItemSelected","ungroupedOptions","hostMutationObserver","clearButtonFocused","noOptions","open","pressedCharacters","searchableSelectInputValue","disableAutoFiltering","emptyOptionListText","fullWidth","helperText","hideLabel","includeDescriptionsInSearch","includeGroupTitlesInSearch","loadingErrorLabel","loadingLabel","multiple","name","placeholder","readonly","required","searchable","searchMatchPosition","selectOnEnter","showClearButton","size","validationStatus","validationText","loading","options","filteredOptions","uniqueOptions","debounce","currDebounce","initialValue","inputValueToFilter","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","addedNodes","removedNodes","attribute","getAttribute","includes","checkSlotInChildMutations","forceUpdate","handleRetry","_a","keyPressed","searchableSelectElement","focus","blurredBecauseButtonPressed","retryButtonClick","icRetryLoad","hiddenInputValue","emitIcChange","Array","isArray","handleMultipleSelectChange","String","valueToEmit","icChange","emitIcInput","clearTimeout","debounceIcInput","window","setTimeout","icInput","deduplicateOptions","uniqueValues","dedupedOptions","dedupedChildren","option","children","child","warn","modifiedParent","Object","assign","setOptionsValuesFromLabels","length","setUngroupedOptions","event","setTextColor","nativeSelectElement","selectedIndex","className","setMenuChange","getLabelFromValue","getMultipleOptionsString","selectedValues","selectedLabels","filter","join","getFilteredChildMenuOptions","getFilteredMenuOptions","newOption","getValueSortedByOptions","valueArray","valuesFromAllOptions","sort","a","b","indexOf","handleNativeSelectChange","icOptionSelect","handleCustomSelectChange","_b","currValue","getValueFromLabel","icOptionDeselect","ariaActiveDescendant","optionId","slice","valueIndex","splice","handleSelectAllChange","selectAllOptions","select","allEnabledOptions","allValues","newValue","unselectedValues","handleMenuChange","handleFocusIndicatorDisplay","handleMenuKeyPress","cancelBubble","handleCharacterKeyDown","focusIndicator","shadowRoot","querySelector","classList","add","remove","handleMouseDown","preventDefault","isExternalFiltering","menu","hasTimedOut","handleClickOpen","handleExpandIconMouseDown","handleClear","stopPropagation","timeoutTimer","clearInput","icClear","customSelectElement","characterKeyPressTimer","handleFilter","handleNativeSelectKeyDown","handleKeyDown","isArrowKey","handleKeyboardOpen","handleClearButtonFocus","handleClearButtonBlur","retryButton","relatedTarget","isGrouped","newFilteredOptions","menuOptionsFiltered","noChildOptionsWhenFiltered","triggerLoading","timeout","timedOut","find","handleSearchableSelectInput","target","debounceAriaLiveUpdate","updateSearchableSelectResultAriaLive","searchableSelectResultsStatusEl","innerText","updateMultiSelectedCountAriaLive","multiSelectSelectedCountEl","selectedCount","getOptionsWithoutGroupTitlesCount","getDefaultValue","setDefaultValue","onFocus","icFocus","onBlur","tagName","isSearchableAndNoFocusedInternalElements","from","querySelectorAll","clearButton","icBlur","onTimeoutBlur","handleFormReset","setAttribute","loadingHandler","watchOptionsHandler","debounceChangedHandler","updateOnChangeDebounce","valueChangedHandler","openChangedHandler","icOpen","icClose","disconnectedCallback","removeFormResetListener","disconnect","valueInOptions","inheritAttributes","addFormResetListener","MutationObserver","observe","attributes","childList","componentDidRender","setFocus","debounceAria","renderHiddenInput","invalid","IcInformationStatus","Error","describedBy","getInputDescribedByText","hasValidationStatus","trim","showLeftIcon","optionsSelectedCount","valueLabelString","isClearable","for","ref","anchorEl","slot","isMobileOrTablet","onChange","onKeyDown","form","autocomplete","undefined","onInput","Clear","onMouseDown","Expand","inputEl","inputLabel","onMenuStateChange","onMenuOptionSelect","onMenuOptionSelectAll","onMenuKeyPress","onUngroupedOptionsSet","onRetryButtonClicked","parentEl","activationType","closeOnSelect","ariaLiveMode","status","message","delegatesFocus","icTextFieldCss","IcTextFieldStyle0","TextField","numChars","maxCharactersReached","maxCharactersWarning","minCharactersUnattained","maxValueExceeded","minValueUnattained","ariaAutocomplete","autocapitalize","autocorrect","autofocus","hideCharCount","hiddenInput","inputmode","maxCharacters","minCharacters","resize","rows","spellcheck","validationInline","validationInlineInternal","checkChildHydration","contains","clearInterval","interval","getNumberOfCharacters","getMaxValueExceeded","Number","min","max","getMaxCharactersReached","removeEventListener","onWheel","addEventListener","blur","hasStatus","debounceChanged","debounceEvent","watchValueHandler","substring","connectedCallback","getValidationText","setInterval","icKeydown","truncateValue","disabledMode","currentStatus","Warning","currentValidationText","maxNumChars","messageAriaLive","showStatusText","Success","multiline","charsRemaining","hiddenRemainingCharCountDesc","hiddenCharCountDescId","disabledText","removeHiddenInput","multiLine","ariaExpanded","ariaOwns","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\nic-button.first-last::part(button),\nic-button.next-previous::part(button) {\n color: var(--ic-pagination-chevron);\n}\n\n:host(.ic-pagination-monochrome) ic-button.first-last::part(button),\n:host(.ic-pagination-monochrome) ic-button.next-previous::part(button) {\n color: var(--ic-pagination-chevron-monochrome);\n}\n\nic-button.ic-button-disabled.first-last::part(button),\nic-button.ic-button-disabled.next-previous::part(button) {\n color: var(--ic-pagination-chevron-disabled);\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.endEllipsis = false;\n this.endItems = [];\n this.midItems = [];\n this.startEllipsis = false;\n this.startItems = [];\n /**\n * The number of pages displayed adjacent to the current page when using 'complex' type pagination. Accepted values are 0, 1 & 2.\n */\n this.adjacentPageCount = 1;\n /**\n * 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 this.boundaryPageCount = 1;\n /**\n * The default page to display.\n */\n this.defaultPage = 1;\n /**\n * If `true`, the pagination will not allow interaction.\n */\n this.disabled = false;\n /**\n * If `true`, the current page of the simple pagination will not be displayed.\n */\n this.hideCurrentPage = false;\n /**\n * If `true`, the first and last page buttons will not be displayed.\n */\n this.hideFirstAndLastPageButton = false;\n /**\n * The label for the pagination item (applicable when simple pagination is being used).\n */\n this.label = \"Page\";\n /**\n * If `true`, the pagination will display as black in the light theme, and white in dark theme.\n */\n this.monochrome = false;\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n /**\n * The type of pagination to be used.\n */\n this.type = \"simple\";\n /**\n * The current page displayed by the pagination.\n */\n this.currentPage = this.defaultPage;\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\", theme: this.theme, onClick: this.handleClickFirst, class: \"page-button first-last\", disabled: this.currentPage === 1 || this.disabled, variant: \"icon-tertiary\", monochrome: this.theme == \"light\" || this.theme == \"dark\", innerHTML: paginationFirstLast }));\n };\n this.previousButton = () => {\n return (h(\"ic-button\", { id: \"previous-page-button\", \"aria-label\": \"Go to previous page\", theme: this.theme, onClick: this.handleClickPrevious, class: \"page-button next-previous flip\", disabled: this.currentPage === 1 || this.disabled, variant: \"icon-tertiary\", monochrome: this.theme == \"light\" || this.theme == \"dark\", innerHTML: paginationNextPrevious }));\n };\n this.nextButton = () => {\n return (h(\"ic-button\", { id: \"next-page-button\", \"aria-label\": \"Go to next page\", theme: this.theme, onClick: this.handleClickNext, class: \"page-button next-previous\", disabled: this.currentPage === this.pages || this.disabled, variant: \"icon-tertiary\", monochrome: this.theme == \"light\" || this.theme == \"dark\", innerHTML: paginationNextPrevious }));\n };\n this.lastButton = () => {\n return (h(\"ic-button\", { id: \"last-page-button\", \"aria-label\": \"Go to last page\", theme: this.theme, onClick: this.handleClickLast, class: \"page-button first-last flip\", disabled: this.currentPage === this.pages || this.disabled, variant: \"icon-tertiary\", monochrome: this.theme == \"light\" || this.theme == \"dark\", innerHTML: paginationFirstLast }));\n };\n this.renderStartEllipsis = () => {\n return (h(\"ic-pagination-item\", { theme: this.theme, monochrome: this.monochrome, type: \"ellipsis\", id: \"start-ellipsis\", disabled: this.disabled }));\n };\n this.renderEndEllipsis = () => {\n return (h(\"ic-pagination-item\", { theme: this.theme, monochrome: this.monochrome, type: \"ellipsis\", id: \"end-ellipsis\", disabled: this.disabled }));\n };\n this.renderStartItems = () => {\n return this.startItems.map((page) => {\n return (h(\"ic-pagination-item\", { theme: this.theme, monochrome: this.monochrome, 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\", { theme: this.theme, monochrome: this.monochrome, 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\", { theme: this.theme, monochrome: this.monochrome, selected: page === this.currentPage, id: `pagination-item-${page}`, type: \"page\", page: page, disabled: this.disabled }));\n });\n };\n }\n watchAdjacentPageCountHandler() {\n if (this.adjacentPageCount > 2) {\n this.adjacentPageCount = 2;\n }\n }\n watchBoundaryPageCountHandler() {\n if (this.boundaryPageCount > 2) {\n this.boundaryPageCount = 2;\n }\n }\n watchDisabledHandler() {\n removeDisabledFalse(this.disabled, this.el);\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 <=\n this.boundaryPageCount * 2 + this.adjacentPageCount * 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.boundaryPageCount === 0 ? 1 : this.boundaryPageCount;\n endStart =\n this.boundaryPageCount === 0\n ? this.pages\n : this.pages - this.boundaryPageCount + 1;\n if (this.currentPage <=\n this.adjacentPageCount + this.boundaryPageCount + 2) {\n startEllipsis = false;\n endEllipsis = true;\n let numItems = 2 * this.adjacentPageCount + 1;\n if (this.boundaryPageCount === 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.adjacentPageCount + this.boundaryPageCount + 2)) {\n let numItems = 2 * this.adjacentPageCount + 1;\n if (this.boundaryPageCount === 0) {\n numItems--;\n }\n midEnd =\n this.boundaryPageCount === 0\n ? this.pages - 1\n : this.pages - this.boundaryPageCount;\n midStart = midEnd - numItems;\n }\n else {\n endEllipsis = true;\n midStart = this.currentPage - this.adjacentPageCount;\n midEnd = this.currentPage + this.adjacentPageCount;\n }\n }\n //create array of start items\n if (this.boundaryPageCount > 0 ||\n (this.boundaryPageCount === 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.boundaryPageCount > 0 ||\n (this.boundaryPageCount === 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.watchBoundaryPageCountHandler();\n this.watchAdjacentPageCountHandler();\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, theme, monochrome, } = this;\n return (h(Host, { key: 'd2d60e613bb2c0830b8cb4e234bad974c7a5e617', class: {\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-pagination-monochrome\"]: !!monochrome,\n } }, type === \"simple\" && (h(\"nav\", { key: 'bc523b8c06315458efbf1a8971fa6cf59c43ed11', class: {\n [\"disabled\"]: !!disabled,\n }, role: \"navigation\", \"aria-label\": \"Pagination Navigation\" }, hideFirstAndLastPageButton ? null : this.firstButton(), this.previousButton(), h(\"ic-pagination-item\", { key: '6e9edfdc7bc5ab49ae37d06837dbc8b9906bd622', theme: this.theme, monochrome: this.monochrome, type: \"simple-current\", page: currentPage, label: label, class: { [\"hide-current-page\"]: !!hideCurrentPage }, disabled: disabled }), this.nextButton(), hideFirstAndLastPageButton ? null : this.lastButton())), type === \"complex\" && (h(\"nav\", { key: 'fca0b1e64a1b2eb2ae66fc0049bb514aec75a3a0', 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\", { key: '06da4ca938338c231dd7004db877bc6b8b5a278f', 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 \"adjacentPageCount\": {\n \"type\": \"number\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"adjacent-page-count\",\n \"reflect\": false,\n \"defaultValue\": \"1\"\n },\n \"boundaryPageCount\": {\n \"type\": \"number\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"boundary-page-count\",\n \"reflect\": false,\n \"defaultValue\": \"1\"\n },\n \"defaultPage\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The default page to display.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the pagination will not allow interaction.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the current page of the simple pagination will not be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the first and last page buttons will not be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label for the pagination item (applicable when simple pagination is being used).\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Page\\\"\"\n },\n \"monochrome\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the pagination will display as black in the light theme, and white in dark theme.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"monochrome\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"pages\",\n \"reflect\": false\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\" | undefined\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n },\n \"type\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcPaginationTypes\",\n \"resolved\": \"\\\"complex\\\" | \\\"simple\\\" | undefined\",\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\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The type of pagination to be used.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The current page displayed by the pagination.\"\n },\n \"getter\": false,\n \"setter\": false,\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\": \"adjacentPageCount\",\n \"methodName\": \"watchAdjacentPageCountHandler\"\n }, {\n \"propName\": \"boundaryPageCount\",\n \"methodName\": \"watchBoundaryPageCountHandler\"\n }, {\n \"propName\": \"disabled\",\n \"methodName\": \"watchDisabledHandler\"\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\n --ic-typography-color: var(--ic-pagination-ellipsis);\n}\n\n.monochrome .ellipsis {\n --ic-typography-color: var(--ic-pagination-ellipsis-monochrome);\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 --ic-typography-color: var(--ic-pagination-page-number);\n}\n\n.monochrome .page {\n --ic-typography-color: var(--ic-pagination-page-number-monochrome);\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-pagination-hover);\n}\n\n.item-container.page:active:not(.selected):not(:focus) {\n background-color: var(--ic-pagination-pressed);\n}\n\n.monochrome .item-container.page:hover:not(.selected):not(:focus) {\n background-color: var(--ic-pagination-hover-monochrome);\n}\n\n.monochrome .item-container.page:active:not(.selected):not(:focus) {\n background-color: var(--ic-pagination-pressed-monochrome);\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-pagination-selected-banner);\n}\n\n.monochrome .selected::after {\n background-color: var(--ic-pagination-selected-banner-monochrome);\n}\n\n.page-selected {\n --ic-typography-color: var(--ic-pagination-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-pressed);\n}\n\nic-typography.light,\nic-typography.page-selected.light {\n --ic-typography-color: var(--ic-architectural-white);\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-pressed);\n}\n\nic-typography.dark {\n --ic-typography-color: var(--ic-color-text-primary);\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 --ic-typography-color: var(--ic-architectural-200);\n\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 --ic-typography-color: GrayText;\n }\n}\n","import { h, } from \"@stencil/core\";\nimport { removeDisabledFalse, capitalize } from \"../../utils/helpers\";\nexport class PaginationItem {\n constructor() {\n /**\n * If `true`, the pagination item will be disabled.\n */\n this.disabled = false;\n /**\n * The label for the pagination item (applicable when simple pagination is being used).\n */\n this.label = \"Page\";\n /**\n * If `true`, the pagination item will display as black in the light theme, and white in dark theme.\n */\n this.monochrome = false;\n /**\n * If `true`, the pagination item will be selected.\n */\n this.selected = false;\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n this.handleClick = () => {\n this.paginationItemClick.emit({ page: this.page || null });\n };\n }\n watchDisabledHandler() {\n removeDisabledFalse(this.disabled, this.el);\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, label, capitalizedLabel, monochrome, } = this;\n return (h(\"a\", { key: '5e8aa2f75823a830e87d8f9badde5028284ea387', class: { [\"monochrome\"]: !!monochrome } }, type === \"ellipsis\" ? (h(\"div\", { class: {\n [\"item-container\"]: true,\n [\"ellipsis\"]: true,\n [\"disabled\"]: !!disabled,\n } }, h(\"ic-typography\", { 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 [\"page\"]: type === \"page\",\n } }, h(\"ic-typography\", { variant: \"label\", class: {\n [\"page-selected\"]: selected,\n [\"disabled\"]: !!disabled,\n } }, page))) : (h(\"ic-typography\", { \"aria-live\": \"polite\", class: {\n [`simple-current`]: 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 \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the pagination item will be disabled.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label for the pagination item (applicable when simple pagination is being used).\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Page\\\"\"\n },\n \"monochrome\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the pagination item will display as black in the light theme, and white in dark theme.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"monochrome\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"page\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The current page number.\"\n },\n \"getter\": false,\n \"setter\": false,\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"selected\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\" | undefined\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\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 \"getter\": false,\n \"setter\": false,\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 | null }\",\n \"resolved\": \"{ page: number | null; }\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"disabled\",\n \"methodName\": \"watchDisabledHandler\"\n }, {\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 --menu-width: Width of the dropdown menu\n * @prop --ic-z-index-menu: z-index of select menu\n */\n\n:host {\n display: block;\n position: relative;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xxs);\n --menu-max-height: 100px;\n --border-color: var(--ic-select-field-border);\n --border-color-hover: var(--ic-select-field-border-hover);\n --border-color-pressed: var(--ic-select-field-border-pressed);\n --border-color-disabled: var(--ic-select-field-border-disabled);\n --border-color-error: var(--ic-select-field-border-error);\n --border-color-error-hover: var(--ic-select-field-border-error-hover);\n --border-color-error-pressed: var(--ic-select-field-border-error-pressed);\n --border-color-success: var(--ic-select-field-border-success);\n --border-color-success-hover: var(--ic-select-field-border-success-hover);\n --border-color-success-pressed: var(--ic-select-field-border-success-pressed);\n --border-color-warning: var(--ic-select-field-border-warning);\n --border-color-warning-hover: var(--ic-select-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-select-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-select-field-labe);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle\n );\n --ic-input-validation-status-text-color: var(--ic-select-state-text);\n --ic-input-validation-error: var(--ic-select-state-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-select-state-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-select-state-icon-success);\n --menu-item-text-color: var(--ic-select-list-option-text);\n --menu-bg-color: var(--ic-select-list-option-background);\n --menu-border-color: var(--ic-select-dropdown-list-border);\n}\n\n:host(.ic-select-disabled) {\n --ic-input-label-text-color: var(--ic-select-field-label-disabled);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle-disabled\n );\n}\n\n:host(.ic-select-full-width) {\n width: 100%;\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-select-field-border-pressed);\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-select-field-background);\n color: var(--ic-select-content-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: var(--ic-select-mobile-dropdown-icon);\n caret-color: var(--ic-select-input-field-text-cursor);\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-select-list-option-text);\n}\n\nselect:disabled {\n color: var(--ic-select-content-text-disabled);\n background-image: var(--ic-select-mobile-dropdown-icon-disabled);\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 background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n}\n\n.select-input:focus {\n outline: none;\n}\n\n.select-input[disabled] {\n pointer-events: none;\n}\n\n:host(.ic-select-searchable) .select-input {\n cursor: auto;\n}\n\n.select-input.with-clear-button {\n padding-right: 0;\n}\n\n.value-text {\n max-width: calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));\n box-sizing: border-box;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin-bottom: 0 !important;\n}\n\n.value-text.with-clear-button {\n padding-right: calc(var(--ic-space-xl) + var(--ic-space-xs));\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-xxs);\n color: var(--ic-select-expand-icon-color);\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(.ic-select-disabled) .expand-icon,\n:host(.ic-select-disabled) .expand-icon > svg > path {\n color: var(--ic-select-disabled-expand-icon-color);\n}\n\n:host(.ic-select-searchable) .expand-icon {\n padding-left: 0;\n height: 2.25rem;\n}\n\n:host(.ic-select-searchable) .expand-icon > svg {\n height: 2.25rem;\n padding: 0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs);\n}\n\n:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon-open,\n:host(.ic-select-searchable) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n:host(.ic-select-disabled) .value-text,\n:host(.ic-select-disabled) .select-input,\n.placeholder {\n color: var(--ic-select-content-placeholder-text);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n align-items: center;\n}\n\n.divider {\n width: var(--ic-space-1px);\n background-color: var(--ic-select-content-divider);\n margin: var(--ic-space-xxs) 0;\n border-radius: var(--ic-space-1px);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-small) .divider {\n height: var(--ic-space-md);\n}\n\n:host(.ic-select-large) .divider {\n height: var(--ic-space-xl);\n}\n\n.clear-button {\n color: var(--ic-select-clear-button);\n position: absolute;\n right: calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));\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.clear-button:active {\n background-color: var(--ic-color-focus-inner);\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer);\n border-radius: 0.25rem;\n}\n\n.clear-button:focus,\n.clear-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button.searchable {\n position: static;\n}\n\n.searchable-select-results-status,\n.multi-select-selected-count {\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-select-content-placeholder-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-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, getOptionsWithoutGroupTitlesCount, addFormResetListener, removeFormResetListener, removeDisabledFalse, checkSlotInChildMutations, } from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport { IcInformationStatus, } 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 this.clearButtonFocused = false;\n this.noOptions = null;\n this.open = false;\n this.pressedCharacters = \"\";\n this.searchableSelectInputValue = null;\n /**\n * If `true`, the disabled state will be set.\n */\n this.disabled = false;\n /**\n * 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 this.disableAutoFiltering = false;\n /**\n * The text displayed when there are no options in the option list.\n */\n this.emptyOptionListText = \"No results found\";\n /**\n * If `true`, the select will fill the width of the container.\n */\n this.fullWidth = false;\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n this.helperText = \"\";\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n this.hideLabel = false;\n /**\n * If `true`, descriptions of options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n this.includeDescriptionsInSearch = false;\n /**\n * 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 this.includeGroupTitlesInSearch = false;\n /**\n * The message displayed when external loading times out.\n */\n this.loadingErrorLabel = \"Loading Error\";\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n this.loadingLabel = \"Loading...\";\n /**\n * If `true`, multiple options can be selected.\n */\n this.multiple = false;\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.inputId;\n /**\n * The placeholder value to be displayed.\n */\n this.placeholder = \"Select an option\";\n /**\n * If `true`, the readonly state will be set.\n */\n this.readonly = false;\n /**\n * If `true`, the select will require a value.\n */\n this.required = false;\n /**\n * If `true`, a searchable variant of the select will be displayed which can be typed in to filter options. This functionality is only available on the single-select variant of the select component.\n */\n this.searchable = false;\n /**\n * 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 this.searchMatchPosition = \"anywhere\";\n /**\n * If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown on the single select.\n */\n this.selectOnEnter = false;\n /**\n * 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 this.showClearButton = false;\n /**\n * The size of the select.\n */\n this.size = \"medium\";\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n this.validationStatus = \"\";\n /**\n * The text to display as the validation message.\n */\n this.validationText = \"\";\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n this.loading = false;\n /**\n * The possible selection options.\n */\n this.options = [];\n this.filteredOptions = this.options;\n this.uniqueOptions = this.options;\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icInput` event after each keystroke.\n */\n this.debounce = 0;\n this.currDebounce = this.debounce;\n this.initialValue = this.value;\n this.inputValueToFilter = this.value;\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 (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\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({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n };\n this.emitIcChange = (value) => {\n // If \"Select all\" button clicked, replace value with new value (array of all option values)\n if (this.multiple && !Array.isArray(value) && value !== null) {\n this.handleMultipleSelectChange(String(value));\n }\n else {\n this.value = value;\n }\n const valueToEmit = this.multiple ? this.value : value;\n this.icChange.emit({ value: valueToEmit || null });\n };\n this.emitIcInput = (value) => {\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(() => this.icInput.emit({ value }), this.currDebounce);\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 if (this.options.length > 0) {\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) {\n if (this.nativeSelectElement.selectedIndex === 0) {\n this.nativeSelectElement.className = \"placeholder\";\n }\n else {\n this.nativeSelectElement.className = \"select-option-selected\";\n }\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.getMultipleOptionsString = (selectedValues) => {\n const selectedLabels = selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.map((value) => this.getLabelFromValue(value)).filter((label) => !!label);\n return selectedLabels === null || selectedLabels === void 0 ? void 0 : selectedLabels.join(\", \");\n };\n this.getFilteredChildMenuOptions = (option) => {\n let children = option.children;\n if (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 }\n const newOption = Object.assign({}, option);\n newOption.children = children;\n return newOption;\n };\n // (For multi-select) get value array, i.e. selected option values, in order they appear in option list\n this.getValueSortedByOptions = (value) => {\n const valueArray = value;\n const valuesFromAllOptions = this.ungroupedOptions.map((option) => option.value);\n valueArray.sort((a, b) => valuesFromAllOptions.indexOf(a) - valuesFromAllOptions.indexOf(b));\n return valueArray;\n };\n this.handleNativeSelectChange = () => {\n if (this.nativeSelectElement) {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.emitIcChange(this.nativeSelectElement.value);\n }\n this.setTextColor();\n };\n // Handle option select for when a custom input box and menu is rendered\n // (rather than native <select> - rendered when viewed on a mobile / tablet screen)\n this.handleCustomSelectChange = (event) => {\n var _a, _b;\n const value = event.detail.value;\n if (event.detail.label === this.emptyOptionListText) {\n (_a = this.searchableSelectElement) === null || _a === void 0 ? void 0 : _a.focus();\n return;\n }\n if (this.searchable) {\n this.value = 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 =\n this.getLabelFromValue(this.value) || null;\n }\n this.inputValueToFilter = null;\n this.hiddenInputValue =\n this.getValueFromLabel(this.searchableSelectInputValue) || null;\n }\n if (this.multiple && ((_b = this.value) === null || _b === void 0 ? void 0 : _b.includes(value))) {\n this.icOptionDeselect.emit({ value });\n }\n else {\n this.icOptionSelect.emit({ value });\n }\n this.ariaActiveDescendant = event.detail.optionId;\n this.emitIcChange(value);\n };\n // Update selected options - adds / removes them, in order of option list\n // Create new array if value prop is undefined\n this.handleMultipleSelectChange = (value) => {\n if (this.value) {\n let valueArray = this.value.slice();\n if (this.value.includes(value)) {\n const valueIndex = valueArray.indexOf(value);\n valueArray.splice(valueIndex, 1);\n }\n else {\n valueArray.push(value);\n valueArray = this.getValueSortedByOptions(valueArray);\n }\n this.value = valueArray.length === 0 ? null : valueArray;\n }\n else {\n const valueArray = [];\n valueArray.push(value);\n this.value = valueArray;\n }\n };\n this.handleSelectAllChange = (event) => {\n const selectAllOptions = event.detail.select;\n const allEnabledOptions = this.ungroupedOptions.filter((option) => !option.disabled);\n const allValues = allEnabledOptions.map((option) => option.value);\n let newValue;\n if (selectAllOptions) {\n let unselectedValues;\n // Only emit icOptionSelect for all values that are newly selected\n if (this.value) {\n unselectedValues = allValues.filter((value) => this.value && !this.value.includes(value));\n }\n else {\n unselectedValues = allValues;\n }\n unselectedValues.forEach((value) => this.icOptionSelect.emit({ value }));\n newValue = allValues;\n }\n else {\n // Only emit icOptionDeselect for values that were selected\n this.value.forEach((value) => this.icOptionDeselect.emit({ value }));\n newValue = null;\n }\n this.emitIcChange(newValue);\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 if (!this.multiple) {\n this.handleCharacterKeyDown(ev.detail.key);\n }\n };\n this.handleFocusIndicatorDisplay = () => {\n var _a;\n const focusIndicator = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\".focus-indicator\");\n if (focusIndicator) {\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n }\n else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n }\n };\n this.handleMouseDown = (event) => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n this.isExternalFiltering = () => this.searchable && !!this.disableAutoFiltering;\n this.handleClick = (event) => {\n var _a, _b;\n if (!this.open && this.menu) {\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 (_b = this.menu) === null || _b === void 0 ? void 0 : _b.handleClickOpen();\n }\n };\n this.handleExpandIconMouseDown = (event) => {\n var _a;\n if (!this.disabled) {\n event.preventDefault();\n (_a = this.searchableSelectElement) === null || _a === void 0 ? void 0 : _a.focus();\n this.handleClick(event);\n }\n };\n this.handleClear = (event) => {\n var _a, _b;\n event.stopPropagation();\n this.hasTimedOut = false;\n clearTimeout(this.timeoutTimer);\n this.clearInput();\n this.emitIcChange(null);\n this.icClear.emit();\n if (this.searchable) {\n this.hiddenInputValue = null;\n (_a = this.searchableSelectElement) === null || _a === void 0 ? void 0 : _a.focus();\n }\n else {\n (_b = this.customSelectElement) === null || _b === void 0 ? void 0 : _b.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 if (!(key === \" \" && !this.pressedCharacters)) {\n this.pressedCharacters += key;\n this.handleFilter();\n if (!this.noOptions) {\n this.emitIcChange(this.filteredOptions[0].value);\n }\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 var _a;\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.menu && !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 (_a = this.menu) === null || _a === void 0 ? void 0 : _a.handleKeyboardOpen(event);\n }\n if (!this.multiple) {\n this.handleCharacterKeyDown(event.key);\n }\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 && 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 (label &&\n ((_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.emitIcInput(this.searchableSelectInputValue);\n // De-select previous selection when input is edited\n // Only emit icChange once when editing input\n if (this.value != null) {\n this.emitIcChange(null);\n }\n this.hiddenInputValue = null;\n this.inputValueToFilter = this.searchableSelectInputValue;\n this.setMenuChange(true);\n if (!this.disableAutoFiltering) {\n this.handleFilter();\n this.debounceAriaLiveUpdate();\n }\n };\n this.updateSearchableSelectResultAriaLive = () => {\n var _a;\n const searchableSelectResultsStatusEl = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.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.updateMultiSelectedCountAriaLive = () => {\n var _a, _b;\n const multiSelectSelectedCountEl = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\".multi-select-selected-count\");\n const selectedCount = `${(_b = this.currValue) === null || _b === void 0 ? void 0 : _b.length} of ${getOptionsWithoutGroupTitlesCount(this.options)} selected`;\n if (multiSelectSelectedCountEl &&\n multiSelectSelectedCountEl.innerText !== selectedCount) {\n multiSelectSelectedCountEl.innerText = selectedCount;\n }\n };\n this.getDefaultValue = (value) => this.getLabelFromValue(value) || null;\n this.setDefaultValue = () => {\n if (!this.hasSetDefaultValue && this.currValue) {\n this.searchableSelectInputValue = this.searchable\n ? this.getDefaultValue(this.currValue)\n : null;\n this.initialValue = this.currValue;\n this.hasSetDefaultValue = true;\n }\n };\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 // Clear input field on blur when searchable if no option is selected\n if (!this.value) {\n this.clearInput();\n }\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.clearInput = () => {\n var _a;\n this.noOptions = null;\n if (this.searchable) {\n (_a = this.searchableSelectElement) === null || _a === void 0 ? void 0 : _a.setAttribute(\"value\", \"\");\n this.searchableSelectInputValue = null;\n this.filteredOptions = this.uniqueOptions;\n }\n };\n }\n watchDisabledHandler() {\n removeDisabledFalse(this.disabled, this.el);\n }\n loadingHandler(newValue) {\n newValue && this.triggerLoading();\n }\n watchOptionsHandler() {\n if (!this.hasTimedOut && this.options !== this.noOptions) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n if (this.isExternalFiltering()) {\n // When searchable select\n if (this.options.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 if (this.value && this.multiple) {\n this.currValue = this.getMultipleOptionsString(this.value)\n ? this.getValueSortedByOptions(this.value)\n : null;\n this.updateMultiSelectedCountAriaLive();\n }\n else {\n this.currValue = this.getLabelFromValue(this.value)\n ? this.value\n : null;\n }\n }\n if (this.searchable && this.value) {\n // Only set if value not null - prevents whole input value being cleared when edited\n this.searchableSelectInputValue =\n this.getLabelFromValue(String(this.currValue)) || null;\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 const valueInOptions = this.multiple\n ? this.getMultipleOptionsString(this.value)\n : this.getLabelFromValue(this.value);\n this.currValue = valueInOptions ? this.value : null;\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 (!this.options.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 if (this.searchable) {\n this.hiddenInputValue = this.currValue;\n }\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 render() {\n const { size, disabled, fullWidth, helperText, hideLabel, label, menuId, multiple, name, options, placeholder, readonly, required, searchable, showClearButton, validationStatus, validationText, currValue, theme, } = this;\n // HTML inputs only accept 'string' for their value\n // Does not cause errors when it is a multi-select - sets value correctly, to a comma-separated string\n renderHiddenInput(true, this.el, name || this.inputId, this.searchable ? this.hiddenInputValue : currValue, disabled);\n const invalid = `${validationStatus === IcInformationStatus.Error}`;\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 const optionsSelectedCount = `${currValue === null || currValue === void 0 ? void 0 : currValue.length} of ${getOptionsWithoutGroupTitlesCount(this.options)} selected`;\n const valueLabelString = multiple\n ? this.getMultipleOptionsString(currValue)\n : this.getLabelFromValue(currValue);\n const isClearable = !disabled &&\n (searchable\n ? this.searchableSelectInputValue\n : currValue && showClearButton);\n return (h(Host, { key: 'b648c4ce0e6857a7d3cb8ee576227a76502238c2', class: {\n \"ic-select-disabled\": !!disabled,\n \"ic-select-searchable\": !!searchable,\n [`ic-select-${size}`]: size !== \"medium\",\n \"ic-select-full-width\": !!fullWidth,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }, onBlur: this.onBlur }, h(\"ic-input-container\", { key: '2297242b13d87560ea0b3cdcd3dcef6d0fc82d8a', readonly: readonly }, !hideLabel && (h(\"ic-input-label\", { key: '65dc301bdd942344c0926f902add9da46dea58b9', for: this.inputId, label: label, helperText: helperText, required: required, disabled: disabled, readonly: readonly })), h(\"ic-input-component-container\", { key: 'b05b9bea3da1eec103e0a192f71123b5c4ecab4e', ref: (el) => (this.anchorEl = el), class: { \"menu-open\": this.open }, size: size, fullWidth: fullWidth, disabled: disabled, readonly: readonly, validationStatus: validationStatus }, showLeftIcon && (h(\"span\", { key: 'a5c509b3c5ae8d0b4e7aadcbbe1dd24a1a35e6d2', slot: \"left-icon\", class: {\n [\"readonly\"]: !!readonly,\n [\"has-value\"]: !!this.value,\n } }, h(\"slot\", { key: '0fb4fdcb39c9d5d8bd7b53011132d30060ea4f69', name: \"icon\" }))), readonly ? (h(\"ic-typography\", null, h(\"p\", null, valueLabelString))) : isMobileOrTablet() && !multiple ? (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: {\n \"select-input\": true,\n \"with-clear-button\": !!this.searchableSelectInputValue,\n }, role: \"combobox\", autocomplete: \"off\", \"aria-label\": label, \"aria-describedby\": describedBy, \"aria-activedescendant\": this.ariaActiveDescendant, \"aria-autocomplete\": \"list\", \"aria-expanded\": `${this.open}`, \"aria-invalid\": invalid, \"aria-required\": `${required}`, \"aria-controls\": menuId, ref: (el) => (this.searchableSelectElement = el), id: this.inputId, value: this.searchableSelectInputValue || undefined, placeholder: placeholder, disabled: disabled, onInput: this.handleSearchableSelectInput, onClick: this.handleClick, onKeyDown: this.handleKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, form: this.form }), isClearable && (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\", theme: this.clearButtonFocused ? \"light\" : \"dark\" }), h(\"div\", { class: \"divider\" }))), h(\"span\", { onMouseDown: this.handleExpandIconMouseDown, class: {\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\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}, ${(multiple && currValue\n ? `${optionsSelectedCount}, ${valueLabelString}`\n : valueLabelString) || 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 \"with-clear-button\": !!isClearable,\n placeholder: multiple\n ? !this.value || this.value.length < 1\n : !this.getLabelFromValue(currValue),\n } }, valueLabelString || placeholder), h(\"div\", { class: \"select-input-end\" }, isClearable && h(\"div\", { class: \"divider\" }), h(\"span\", { class: {\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n }, innerHTML: Expand, \"aria-hidden\": \"true\" }))), isClearable && (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\", theme: this.clearButtonFocused ? \"light\" : \"dark\" }))))), (!isMobileOrTablet() || multiple) && (h(\"ic-menu\", { key: 'b44ead58c89e05ff0bfcdeda827b4b436dd05f1c', 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, size: size, menuId: menuId, open: this.open, options: searchable ? this.filteredOptions : this.uniqueOptions, value: multiple ? currValue : currValue, fullWidth: fullWidth, selectOnEnter: this.selectOnEnter, onMenuStateChange: this.handleMenuChange, onMenuOptionSelect: this.handleCustomSelectChange, onMenuOptionSelectAll: this.handleSelectAllChange, onMenuKeyPress: this.handleMenuKeyPress, onUngroupedOptionsSet: this.setUngroupedOptions, onRetryButtonClicked: this.handleRetry, parentEl: this.el, onTimeoutBlur: this.onTimeoutBlur, activationType: this.searchable || multiple || this.selectOnEnter\n ? \"manual\"\n : \"automatic\", closeOnSelect: !multiple })), this.multiple && (h(\"div\", { key: '178feb2274a4942b173858f35b98f2e64031d419', \"aria-live\": \"polite\", role: \"status\", class: \"multi-select-selected-count\" })), hasValidationStatus(this.validationStatus, !!this.disabled) && (h(\"ic-input-validation\", { key: '65c7647103b74749c240af0cfdee7c5e2afdeca0', 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 \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disabled\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"disableAutoFiltering\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the built in filtering will be disabled for a searchable variant. For example, if options will already be filtered from external source.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disable-auto-filtering\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"emptyOptionListText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text displayed when there are no options in the option list.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"form\",\n \"reflect\": false\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the select will fill the width of the container.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"helperText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\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 \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"loadingErrorLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\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 \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"loading-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Loading...\\\"\"\n },\n \"multiple\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, multiple options can be selected.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"multiple\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\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 \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The placeholder value to be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the readonly state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"readonly\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"required\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the select will require a value.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\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. This functionality is only available on the single-select variant of the select component.\"\n },\n \"getter\": false,\n \"setter\": false,\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\\\" | undefined\",\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 \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 on the single select.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\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\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\" | undefined\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the select.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"medium\\\"\"\n },\n \"timeout\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"timeout\",\n \"reflect\": false\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\" | undefined\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n },\n \"validationStatus\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcInformationStatusOrEmpty\",\n \"resolved\": \"\\\"\\\" | \\\"error\\\" | \\\"success\\\" | \\\"warning\\\" | undefined\",\n \"references\": {\n \"IcInformationStatusOrEmpty\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcInformationStatusOrEmpty\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation status - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\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[] | undefined\",\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 \"getter\": false,\n \"setter\": false,\n \"defaultValue\": \"[]\"\n },\n \"debounce\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\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 `icInput` event after each keystroke.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"debounce\",\n \"reflect\": false,\n \"defaultValue\": \"0\"\n },\n \"value\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"string | string[] | null\",\n \"resolved\": \"null | string | string[] | undefined\",\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.\\nFor the searchable variant, the value is also reflected by the user input.\\nFor the multi-select variant, the value must be an array of option values.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"value\",\n \"reflect\": false\n }\n };\n }\n static get states() {\n return {\n \"ariaActiveDescendant\": {},\n \"clearButtonFocused\": {},\n \"debounceIcInput\": {},\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\": \"IcMultiValueEventDetail\",\n \"resolved\": \"IcMultiValueEventDetail\",\n \"references\": {\n \"IcMultiValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcMultiValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"icClear\",\n \"name\": \"icClear\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the clear or clear all 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\": \"IcMultiValueEventDetail\",\n \"resolved\": \"IcMultiValueEventDetail\",\n \"references\": {\n \"IcMultiValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcMultiValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"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 selected.\\nSelecting an option 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\": \"icOptionDeselect\",\n \"name\": \"icOptionDeselect\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when `multiple` is `true` and an option is deselected.\"\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\": \"IcMultiValueEventDetail\",\n \"resolved\": \"IcMultiValueEventDetail\",\n \"references\": {\n \"IcMultiValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcMultiValueEventDetail\"\n }\n }\n }\n }];\n }\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\": \"disabled\",\n \"methodName\": \"watchDisabledHandler\"\n }, {\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 --ic-input-label-helpertext-padding: var(--ic-space-xxs);\n --border-color: var(--ic-text-field-border-neutral);\n --border-color-hover: var(--ic-text-field-border-neutral-hover);\n --border-color-pressed: var(--ic-text-field-border-neutral-pressed);\n --border-color-disabled: var(--ic-text-field-border-disabled);\n --border-color-error: var(--ic-text-field-border-error);\n --border-color-error-hover: var(--ic-text-field-border-error-hover);\n --border-color-error-pressed: var(--ic-text-field-border-error-pressed);\n --border-color-success: var(--ic-text-field-border-success);\n --border-color-success-hover: var(--ic-text-field-border-success-hover);\n --border-color-success-pressed: var(--ic-text-field-border-success-pressed);\n --border-color-warning: var(--ic-text-field-border-warning);\n --border-color-warning-hover: var(--ic-text-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-text-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-text-field-label);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle);\n --ic-input-validation-status-text-color: var(--ic-text-field-state-text);\n --ic-input-validation-error: var(--ic-text-field-state-icon-error);\n --ic-input-validation-warning-icon-color: var(\n --ic-text-field-state-icon-warning\n );\n --ic-input-validation-success-icon-color: var(\n --ic-text-field-state-icon-success\n );\n --ic-input-component-container-success-icon-inline-color: var(\n --ic-text-field-state-icon-success\n );\n}\n\n:host(.ic-text-field-disabled) {\n --ic-input-label-text-color: var(--ic-text-field-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-text-field-subtitle-disabled);\n --text-field-placeholder-color: var(\n --ic-text-field-text-area-placeholder-text-disabled\n );\n}\n\n:host(.ic-text-field-full-width) {\n width: 100%;\n}\n\n::-moz-placeholder {\n color: var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );\n opacity: 1;\n}\n\n::placeholder {\n color: var(\n --text-field-placeholder-color,\n var(--ic-text-field-placeholder-text)\n );\n opacity: 1;\n}\n\ninput,\ntextarea {\n border: 0;\n border-radius: var(--ic-border-radius);\n color: var(--text-field-text-color, var(--ic-text-field-text));\n background-color: var(--input-bg-color, var(--ic-text-field-background));\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 caret-color: var(\n --text-field-typing-cursor,\n var(--ic-text-field-typing-cursor)\n );\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(\n --text-field-disabled-text-color,\n var(--ic-text-field-text-disabled)\n );\n}\n\ninput.readonly,\ntextarea.readonly {\n color: var(--ic-text-field-read-only-input-text-internal);\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.char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit);\n\n padding-right: var(--ic-space-xxxs);\n}\n\n:host(.ic-text-field-disabled) .char-count-text {\n --ic-typography-color: var(--ic-text-field-character-limit-disabled);\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-text-disabled);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-text-field-input-internal-icon);\n}\n\n.char-count {\n margin-right: calc(-1 * var(--ic-space-xxxs));\n}\n\n.remaining-char-count-desc {\n position: absolute;\n left: -9999px;\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, removeHiddenInput, } 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.numChars = 0;\n this.maxCharactersReached = false;\n this.maxCharactersWarning = false;\n this.minCharactersUnattained = false;\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n this.ariaAutocomplete = undefined;\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n this.autocapitalize = \"off\";\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n this.autocomplete = \"off\";\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n this.autocorrect = \"off\";\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n this.autofocus = false;\n /**\n * If `true`, the disabled state will be set.\n */\n this.disabled = false;\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n this.fullWidth = false;\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n this.helperText = \"\";\n /**\n * If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden.\n */\n this.hideCharCount = false;\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n this.hideLabel = false;\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n this.hiddenInput = true;\n /**\n * The ID for the input.\n */\n this.inputId = `ic-text-field-input-${inputIds++}`;\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n this.inputmode = \"text\";\n /**\n * The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)\n */\n this.maxCharacters = 0;\n /**\n * The minimum number of characters that can be entered in the field.\n */\n this.minCharacters = 0;\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.inputId;\n /**\n * The placeholder value to be displayed.\n */\n this.placeholder = \"\";\n /**\n * If `true`, the read only state will be set.\n */\n this.readonly = false;\n /**\n * If `true`, the input will require a value.\n */\n this.required = false;\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n this.resize = false;\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n this.rows = 1;\n /**\n * The size of the text field component.\n */\n this.size = \"medium\";\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n this.spellcheck = false;\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n this.theme = \"inherit\";\n /**\n * The type of control to display. The default type is text.\n */\n this.type = \"text\";\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n this.validationInline = false;\n /**\n * @internal If `true`, the validation will display inline.\n */\n this.validationInlineInternal = false;\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n this.validationStatus = \"\";\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n this.validationText = \"\";\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n this.debounce = 0;\n /**\n * The value of the text field.\n */\n this.value = \"\";\n this.initialValue = this.value;\n this.checkChildHydration = () => {\n var _a;\n const el = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\"ic-typography\");\n if (this.hideLabel || (el && el.classList.contains(\"hydrated\"))) {\n this.setFocus();\n clearInterval(this.interval);\n }\n };\n this.getNumberOfCharacters = (value) => value !== null && value !== undefined ? value.length : 0;\n this.getMaxValueExceeded = (value) => {\n this.numChars = this.getNumberOfCharacters(value);\n if (this.type === \"number\") {\n this.minValueUnattained = !!value && Number(value) < Number(this.min);\n this.maxValueExceeded = Number(value) > Number(this.max);\n }\n };\n this.getMaxCharactersReached = (value) => {\n this.numChars = this.getNumberOfCharacters(value);\n this.maxCharactersReached =\n this.maxCharacters > 0 ? this.numChars >= this.maxCharacters : false;\n if (this.maxCharactersWarning && !this.maxCharactersReached) {\n this.maxCharactersWarning = 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 target = ev.target;\n target.removeEventListener(\"wheel\", this.onWheel);\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 const target = ev.target;\n target.addEventListener(\"wheel\", this.onWheel);\n this.icFocus.emit({ value: ev.target.value });\n };\n this.onWheel = (ev) => {\n const target = ev.target;\n if (target.type === \"number\") {\n target.blur();\n setTimeout(() => {\n target.focus();\n }, 0);\n }\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 (attributeName && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n this.inheritedAttributes[attributeName] = attribute;\n }\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 }\n watchDisabledHandler() {\n removeDisabledFalse(this.disabled, this.el);\n }\n debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n watchValueHandler(newValue) {\n let value;\n if (this.maxCharacters > 0) {\n value = newValue.substring(0, this.maxCharacters);\n this.value = value;\n }\n else {\n value = newValue;\n }\n if (this.inputEl && this.inputEl.value !== value) {\n this.inputEl.value = value;\n }\n this.getMaxValueExceeded(value);\n this.getMaxCharactersReached(value);\n this.icChange.emit({ value });\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 else if (this.maxCharacters > 0) {\n this.value = this.value.substring(0, this.maxCharacters);\n }\n this.getMaxValueExceeded(this.value);\n this.getMaxCharactersReached(this.value);\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n if (this.readonly) {\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 if (this.autofocus && !this.disabled && !this.readonly) {\n this.interval = setInterval(this.checkChildHydration, 50);\n }\n }\n handleKeyDown(ev) {\n this.icKeydown.emit({ event: ev });\n this.maxCharactersWarning = 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, placeholder, helperText, hideCharCount, rows, resize, disabled, value, min, max, numChars, readonly, maxCharacters, maxCharactersWarning, maxCharactersReached, minCharacters, minCharactersUnattained, minValueUnattained, maxValueExceeded, validationStatus, validationText, validationInline, validationInlineInternal, spellcheck, inputmode, fullWidth, truncateValue, hiddenInput, theme, } = this;\n const el = this.el;\n const disabledMode = readonly || disabled;\n const currentStatus = maxValueExceeded ||\n minValueUnattained ||\n minCharactersUnattained ||\n maxCharactersWarning\n ? maxCharactersWarning\n ? IcInformationStatus.Warning\n : IcInformationStatus.Error\n : validationStatus;\n const currentValidationText = maxCharactersWarning\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 : maxCharacters;\n const messageAriaLive = maxCharactersWarning ||\n maxValueExceeded ||\n minValueUnattained ||\n 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 charsRemaining = maxNumChars - numChars;\n const hiddenRemainingCharCountDesc = `${charsRemaining} character${charsRemaining === 1 ? \"\" : \"s\"} remaining.`;\n const hiddenCharCountDescId = maxCharacters > 0 ? `${inputId}-char-count-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 hiddenInput\n ? renderHiddenInput(true, this.el, name, value, disabledMode)\n : removeHiddenInput(this.el);\n return (h(Host, { key: '9175054afc7f5ab0f44c2c02d73a209676690f26', class: {\n \"ic-text-field-full-width\": !!fullWidth,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n \"ic-text-field-disabled\": !!disabledMode,\n } }, h(\"ic-input-container\", { key: '2cf32636f95f8ec80f25424483fcdf2afe262534', readonly: readonly, disabled: disabledMode }, !this.hideLabel && (h(\"ic-input-label\", { key: '3ee4d01a7e1705d1bdd1e88dc734a16f990c35c9', for: inputId, label: label, helperText: helperText, required: required, disabled: disabledText, readonly: readonly })), h(\"ic-input-component-container\", { key: 'd6300116fc334d565681cedb6c2e4b637dd8fe5f', size: size, validationStatus: currentStatus, multiLine: multiline, disabled: disabledMode, readonly: readonly, validationInline: validationInline, fullWidth: fullWidth }, showLeftIcon && (h(\"span\", { key: '2dae55d8265539a3c1b1975ebb63015fb2b66ceb', class: {\n readonly: !!readonly,\n \"has-value\": this.getNumberOfCharacters(value) > 0,\n }, slot: \"left-icon\" }, h(\"slot\", { key: 'c363bc9c876a3be7db91dd1afd8eac8013f176a2', 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, spellcheck: spellcheck, inputmode: inputmode, role: this.role, maxlength: maxCharactersReached ? maxCharacters : undefined, minlength: minCharactersUnattained ? minCharacters : undefined }, 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, spellcheck: spellcheck, inputmode: inputmode, maxlength: maxCharactersReached ? maxCharacters : undefined, minlength: minCharactersUnattained ? minCharacters : undefined }, this.inheritedAttributes))), isSlotUsed(el, \"clear-button\") && (h(\"slot\", { key: 'f08406702167a6155246e26df7fe64ef06b82976', name: \"clear-button\" })), isSlotUsed(el, \"search-submit-button\") && (h(\"slot\", { key: '58c8ed7ed396953f0d4dff0aba462b10e58bd78b', name: \"search-submit-button\" }))), isSlotUsed(el, \"menu\") && h(\"slot\", { key: '15496f93b502c8b0d55b0a2da6622e8ab425ef49', name: \"menu\" }), (!isEmptyString(validationStatus) ||\n !isEmptyString(validationText) ||\n maxNumChars > 0 ||\n maxValueExceeded ||\n maxCharactersWarning ||\n minCharactersUnattained ||\n minValueUnattained) &&\n !validationInlineInternal && (h(\"ic-input-validation\", { key: '675805dbde2426192861938a009728af5d0ea56f', 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\", { key: '92b805a2b9b4d87347f767c750c7d9ce8be6c909', slot: \"validation-message-adornment\" }, !hideCharCount && (h(\"ic-typography\", { key: '2a24743dc253ab95c360c2ae78e559c0437202dc', variant: \"caption\", class: \"char-count-text\" }, h(\"span\", { key: 'a71f41c5313d828123d275a41ae694ec2c0b2f5e', class: \"char-count\" }, numChars, \"/\", maxNumChars))), h(\"span\", { key: '9c6d7a87b3d4a0f2baf9b1f732f0940d5e0fbe7b', class: \"remaining-char-count-desc\", \"aria-live\": \"polite\" }, hiddenRemainingCharCountDesc), h(\"span\", { key: '3aba077c149ce80fa5732245829e6e02c4bf52c8', 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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\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\\\" | undefined\",\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\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Used to identify whether inputting any text triggers more predictions\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"aria-autocomplete\",\n \"reflect\": false,\n \"defaultValue\": \"undefined\"\n },\n \"ariaExpanded\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | undefined\",\n \"resolved\": \"string | undefined\",\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"aria-expanded\",\n \"reflect\": false\n },\n \"ariaOwns\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Used to identify any related child component\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"aria-owns\",\n \"reflect\": false\n },\n \"autocapitalize\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | undefined\",\n \"resolved\": \"string | undefined\",\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 \"getter\": false,\n \"setter\": false,\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\": \"IcAutocompleteTypes | undefined\",\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\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The state of autocompletion the browser can apply on the text value.\"\n },\n \"getter\": false,\n \"setter\": false,\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\\\" | undefined\",\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\": true,\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"autocorrect\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"off\\\"\"\n },\n \"autofocus\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean | undefined\",\n \"resolved\": \"boolean | undefined\",\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"autofocus\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specify whether the text field fills the full width of the container.\\nIf `true`, this overrides the --input-width CSS variable.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"helper-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"hideCharCount\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the character count which is displayed when `maxCharacters` is set will be visually hidden.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hide-char-count\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hideLabel\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the label will be hidden and the required label value will be applied as an aria-label.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\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 \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID for the input.\"\n },\n \"getter\": false,\n \"setter\": false,\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\\\" | undefined\",\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\": true,\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 \"getter\": false,\n \"setter\": false,\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 \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"max\",\n \"reflect\": false\n },\n \"maxCharacters\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The count of characters in the field. Will display a warning if the bound is reached. (NOTE: If the value of the text field has been set using the `value` prop, it will be truncated to this number of characters)\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"max-characters\",\n \"reflect\": false,\n \"defaultValue\": \"0\"\n },\n \"min\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | number\",\n \"resolved\": \"number | string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"min\",\n \"reflect\": false\n },\n \"minCharacters\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The minimum number of characters that can be entered in the field.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The placeholder value to be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the read only state will be set.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the input will require a value.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the multiline text area will be resizeable.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"resize\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"role\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | undefined\",\n \"resolved\": \"string | undefined\",\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"role\",\n \"reflect\": false\n },\n \"rows\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\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 \"getter\": false,\n \"setter\": false,\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\": \"\\\"medium\\\" | \\\"small\\\" | undefined\",\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"medium\\\"\"\n },\n \"spellcheck\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean | undefined\",\n \"resolved\": \"boolean | undefined\",\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"spellcheck\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\" | undefined\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n },\n \"truncateValue\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"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 \"getter\": false,\n \"setter\": false,\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\\\" | undefined\",\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\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The type of control to display. The default type is text.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, the validation will display inline.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\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\\\" | undefined\",\n \"references\": {\n \"IcInformationStatusOrEmpty\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcInformationStatusOrEmpty\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation state - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation state - e.g. 'error' | 'warning' | 'success'.\"\n },\n \"getter\": false,\n \"setter\": false,\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 | undefined\",\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 \"getter\": false,\n \"setter\": false,\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 \"getter\": false,\n \"setter\": false,\n \"attribute\": \"value\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"numChars\": {},\n \"maxCharactersReached\": {},\n \"maxCharactersWarning\": {},\n \"minCharactersUnattained\": {},\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\": \"disabled\",\n \"methodName\": \"watchDisabledHandler\"\n }, {\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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","ignoreList":[]}