@ukic/canary-web-components 3.0.0-canary.27 → 3.0.0-canary.28

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 (167) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/helpers-da852478.js.map +1 -1
  3. package/dist/cjs/ic-alert.cjs.entry.js +3 -3
  4. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ic-checkbox-group.cjs.entry.js +8 -4
  6. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-checkbox_3.cjs.entry.js +6 -7
  8. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-date-input.cjs.entry.js +8 -4
  10. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-date-picker.cjs.entry.js +15 -10
  12. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-dialog.cjs.entry.js +35 -10
  14. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-menu.cjs.entry.js +12 -9
  16. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-step.cjs.entry.js +14 -13
  24. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-stepper.cjs.entry.js +3 -2
  26. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-time-input.cjs.entry.js +9 -5
  28. package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  31. package/dist/cjs/loader.cjs.js +1 -1
  32. package/dist/collection/components/ic-date-input/ic-date-input.js +34 -4
  33. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  34. package/dist/collection/components/ic-date-input/ic-date-input.stories.js +81 -0
  35. package/dist/collection/components/ic-date-input/ic-date-input.stories.js.map +1 -1
  36. package/dist/collection/components/ic-date-picker/ic-date-picker.js +41 -10
  37. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  38. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +6 -7
  39. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  40. package/dist/collection/components/ic-time-input/ic-time-input.js +35 -5
  41. package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
  42. package/dist/collection/components/ic-time-input/ic-time-input.stories.js +82 -1
  43. package/dist/collection/components/ic-time-input/ic-time-input.stories.js.map +1 -1
  44. package/dist/collection/utils/types.js.map +1 -1
  45. package/dist/components/helpers2.js.map +1 -1
  46. package/dist/components/ic-alert.js +3 -3
  47. package/dist/components/ic-alert.js.map +1 -1
  48. package/dist/components/ic-checkbox-group.js +9 -4
  49. package/dist/components/ic-checkbox-group.js.map +1 -1
  50. package/dist/components/ic-date-input2.js +9 -4
  51. package/dist/components/ic-date-input2.js.map +1 -1
  52. package/dist/components/ic-date-picker.js +16 -10
  53. package/dist/components/ic-date-picker.js.map +1 -1
  54. package/dist/components/ic-dialog.js +35 -10
  55. package/dist/components/ic-dialog.js.map +1 -1
  56. package/dist/components/ic-menu2.js +12 -9
  57. package/dist/components/ic-menu2.js.map +1 -1
  58. package/dist/components/ic-navigation-item.js +1 -1
  59. package/dist/components/ic-navigation-item.js.map +1 -1
  60. package/dist/components/ic-page-header.js +1 -1
  61. package/dist/components/ic-page-header.js.map +1 -1
  62. package/dist/components/ic-pagination-bar2.js +6 -7
  63. package/dist/components/ic-pagination-bar2.js.map +1 -1
  64. package/dist/components/ic-status-tag.js +1 -1
  65. package/dist/components/ic-status-tag.js.map +1 -1
  66. package/dist/components/ic-step.js +14 -13
  67. package/dist/components/ic-step.js.map +1 -1
  68. package/dist/components/ic-stepper.js +3 -2
  69. package/dist/components/ic-stepper.js.map +1 -1
  70. package/dist/components/ic-time-input.js +10 -5
  71. package/dist/components/ic-time-input.js.map +1 -1
  72. package/dist/components/ic-top-navigation.js +1 -1
  73. package/dist/components/ic-top-navigation.js.map +1 -1
  74. package/dist/core/core.css +6 -6
  75. package/dist/core/core.esm.js +1 -1
  76. package/dist/core/core.esm.js.map +1 -1
  77. package/dist/core/p-0f22f41e.js.map +1 -1
  78. package/dist/core/p-1131db25.entry.js +2 -0
  79. package/dist/core/p-1131db25.entry.js.map +1 -0
  80. package/dist/core/{p-f7b1d6bf.entry.js → p-154bb0fb.entry.js} +2 -2
  81. package/dist/core/{p-f7b1d6bf.entry.js.map → p-154bb0fb.entry.js.map} +1 -1
  82. package/dist/core/p-4c5af5f7.entry.js +2 -0
  83. package/dist/core/p-4c5af5f7.entry.js.map +1 -0
  84. package/dist/core/p-5bc54721.entry.js +2 -0
  85. package/dist/core/p-5bc54721.entry.js.map +1 -0
  86. package/dist/core/p-62ad6ce5.entry.js +2 -0
  87. package/dist/core/p-62ad6ce5.entry.js.map +1 -0
  88. package/dist/core/{p-5d6290bb.entry.js → p-66f45822.entry.js} +2 -2
  89. package/dist/core/p-66f45822.entry.js.map +1 -0
  90. package/dist/core/{p-c9953122.entry.js → p-74439163.entry.js} +2 -2
  91. package/dist/core/p-74439163.entry.js.map +1 -0
  92. package/dist/core/p-760a57e7.entry.js +2 -0
  93. package/dist/core/p-760a57e7.entry.js.map +1 -0
  94. package/dist/core/p-76ab72ef.entry.js +2 -0
  95. package/dist/core/p-76ab72ef.entry.js.map +1 -0
  96. package/dist/core/p-8b0abe0f.entry.js +2 -0
  97. package/dist/core/p-8b0abe0f.entry.js.map +1 -0
  98. package/dist/core/p-8b8df1da.entry.js +2 -0
  99. package/dist/core/p-8b8df1da.entry.js.map +1 -0
  100. package/dist/core/{p-e0abd214.entry.js → p-a4184f39.entry.js} +2 -2
  101. package/dist/core/p-a4184f39.entry.js.map +1 -0
  102. package/dist/core/p-bc58e37e.entry.js +2 -0
  103. package/dist/core/p-bc58e37e.entry.js.map +1 -0
  104. package/dist/core/{p-0ec0be8d.entry.js → p-c5d03c65.entry.js} +2 -2
  105. package/dist/core/{p-0ec0be8d.entry.js.map → p-c5d03c65.entry.js.map} +1 -1
  106. package/dist/esm/core.js +1 -1
  107. package/dist/esm/helpers-89cb996d.js.map +1 -1
  108. package/dist/esm/ic-alert.entry.js +3 -3
  109. package/dist/esm/ic-alert.entry.js.map +1 -1
  110. package/dist/esm/ic-checkbox-group.entry.js +8 -4
  111. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  112. package/dist/esm/ic-checkbox_3.entry.js +6 -7
  113. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  114. package/dist/esm/ic-date-input.entry.js +8 -4
  115. package/dist/esm/ic-date-input.entry.js.map +1 -1
  116. package/dist/esm/ic-date-picker.entry.js +15 -10
  117. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  118. package/dist/esm/ic-dialog.entry.js +35 -10
  119. package/dist/esm/ic-dialog.entry.js.map +1 -1
  120. package/dist/esm/ic-menu.entry.js +12 -9
  121. package/dist/esm/ic-menu.entry.js.map +1 -1
  122. package/dist/esm/ic-navigation-item.entry.js +1 -1
  123. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  124. package/dist/esm/ic-page-header.entry.js +1 -1
  125. package/dist/esm/ic-page-header.entry.js.map +1 -1
  126. package/dist/esm/ic-status-tag.entry.js +1 -1
  127. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  128. package/dist/esm/ic-step.entry.js +14 -13
  129. package/dist/esm/ic-step.entry.js.map +1 -1
  130. package/dist/esm/ic-stepper.entry.js +3 -2
  131. package/dist/esm/ic-stepper.entry.js.map +1 -1
  132. package/dist/esm/ic-time-input.entry.js +9 -5
  133. package/dist/esm/ic-time-input.entry.js.map +1 -1
  134. package/dist/esm/ic-top-navigation.entry.js +1 -1
  135. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  136. package/dist/esm/loader.js +1 -1
  137. package/dist/types/components/ic-date-input/ic-date-input.d.ts +5 -1
  138. package/dist/types/components/ic-date-input/ic-date-input.stories.d.ts +15 -9
  139. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +5 -1
  140. package/dist/types/components/ic-time-input/ic-time-input.d.ts +5 -1
  141. package/dist/types/components/ic-time-input/ic-time-input.stories.d.ts +14 -8
  142. package/dist/types/components.d.ts +26 -2
  143. package/dist/types/utils/types.d.ts +6 -2
  144. package/hydrate/index.js +121 -71
  145. package/hydrate/index.mjs +121 -71
  146. package/package.json +3 -3
  147. package/dist/core/p-0e882f70.entry.js +0 -2
  148. package/dist/core/p-0e882f70.entry.js.map +0 -1
  149. package/dist/core/p-182883cb.entry.js +0 -2
  150. package/dist/core/p-182883cb.entry.js.map +0 -1
  151. package/dist/core/p-35bff926.entry.js +0 -2
  152. package/dist/core/p-35bff926.entry.js.map +0 -1
  153. package/dist/core/p-5d6290bb.entry.js.map +0 -1
  154. package/dist/core/p-7bb3531c.entry.js +0 -2
  155. package/dist/core/p-7bb3531c.entry.js.map +0 -1
  156. package/dist/core/p-816aae93.entry.js +0 -2
  157. package/dist/core/p-816aae93.entry.js.map +0 -1
  158. package/dist/core/p-8a5ae4ab.entry.js +0 -2
  159. package/dist/core/p-8a5ae4ab.entry.js.map +0 -1
  160. package/dist/core/p-ac2f8cc8.entry.js +0 -2
  161. package/dist/core/p-ac2f8cc8.entry.js.map +0 -1
  162. package/dist/core/p-b10f5992.entry.js +0 -2
  163. package/dist/core/p-b10f5992.entry.js.map +0 -1
  164. package/dist/core/p-b2b5d4fa.entry.js +0 -2
  165. package/dist/core/p-b2b5d4fa.entry.js.map +0 -1
  166. package/dist/core/p-c9953122.entry.js.map +0 -1
  167. package/dist/core/p-e0abd214.entry.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["icDateInputCss","IcDateInputStyle0","inputIds","DateInput","constructor","hostRef","this","DEFAULT_DATE_FORMAT","ARIA_INVALID","ARIA_LABEL","ARIA_LABELLED_BY","EVENT_OBJECT_STRING","FIT_TO_VALUE","initialValue","value","INPUT_EVENT_OBJECT_STRING","inputsInOrder","isAfterMax","isBeforeMin","preventInputsUpdating","isDisabledDate","isValidDay","isValidMonth","isValidDate","isZuluTime","KEYBOARD_EVENT_OBJECT_STRING","MAX_DAY","MAX_MONTH","previousSelectedDate","selectedDate","externalSetDate","clearInput","calendarIsOpen","calendarFocused","clearButtonFocused","removeLabelledBy","day","month","year","dateFormat","emitDatePartChange","disabled","disableDays","disableDaysMessage","disableFuture","disableFutureMessage","disablePast","disablePastMessage","hideHelperText","hideLabel","inputId","invalidDateMessage","max","min","name","required","showCalendarButton","showClearButton","size","theme","validationAriaLive","validationStatus","validationText","setInputPasteValue","input","pastedValue","inputEl","classList","add","checkSingleCopiedValueIsValid","isValid","Number","dayInputEl","monthInputEl","yearInputEl","isKeyboardOrEvent","event","Object","prototype","toString","call","setDateValidity","isEmptyString","handleInput","inputEvent","target","inputType","preventAutoFormatting","length","setInputValue","notifyScreenReader","moveToNextInput","setPreventInput","setFitToValueStyling","setValidationMessage","handleKeyDown","isInputPrevented","eventKey","_a","key","toLowerCase","regex","test","ctrlKey","metaKey","preventDefault","setPasteInvalidText","handleLeftRightArrowKeyPress","handleUpDownArrowKeyPress","moveToPreviousInput","preventInput","handleFocus","select","handleBlur","autocompleteInput","notifyScreenReaderSelectedDate","selectedDateInfoEl","dayNames","stringEnumToArray","IcDayNames","months","IcDateInputMonths","textContent","getDay","getDate","getMonth","getFullYear","minValue","maxValue","Date","handleDateChange","force","dateMatches","forEach","invalidDateText","setValueAndEmitChange","updateInputValues","slicePastedDate","valueLength","datePart","slice","isPastedStringDateValid","handlePaste","clipboardData","getData","setPastedValueAndValidation","setDate","date","undefined","remove","isDateOrEpoch","newDate","convertToDoubleDigits","defaultDateArray","splitStringDate","formatMinMax","formattedDate","clear","newValue","convertToDate","isSelectedDateDisabled","setAttribute","removeAttribute","minDate","maxDate","setInputsInOrder","el","shadowRoot","querySelectorAll","push","setAriaLabelledBy","inputCompContainerEl","getAttribute","removeAriaLabelledBy","labelEl","_b","querySelector","labelId","id","hasValidation","labelledBy","_c","screenReaderInfoId","getInputDescribedByText","helperText","defaultHelperText","selectedDateInfoId","assistiveHintId","isPrevented","preventDayInput","preventMonthInput","preventYearInput","getInputFromDatePart","dayInput","h","class","ref","placeholder","onPaste","inputmode","pattern","onKeyDown","monthInput","yearInput","maxLength","getInputsInOrder","dateParts","split","part","substring","getDescOfInputsOrder","description","getScreenReaderInfo","inputDescriptors","IcInformationStatus","Error","selectedString","selectionStart","selectionEnd","currentDate","isNotToday","toDateString","includes","currentInput","findIndex","focus","inputValue","yearNumbers","autocompletedInput","number","index","handleHostBlur","icBlur","emit","handleHostFocus","activeElement","match","icFocus","handleFormReset","getAriaLabel","notifyScreenReaderArrowKeys","liveRegion","ariaLabel","announcement","notifyScreenReaderInput","monthValue","setAriaInvalid","validDay","validMonth","validDate","disabledDate","handleClear","handleCalendarOpen","ev","stopImmediatePropagation","calendarButtonEl","displayTooltip","calendarButtonClicked","_f","_e","_d","emitIcChange","handleCalendarFocus","handleCalendarBlur","handleClearFocus","handleClearBlur","relatedTarget","d","UTCDate","UTC","icChange","dateObject","utcValue","watchInputHandler","watchDisabledHandler","removeDisabledFalse","watchDisableFutureHandler","watchMaxHandler","watchDisablePastHandler","watchMinHandler","createDate","watchRequiredHandler","asteriskSpan","document","createElement","appendChild","disconnectedCallback","removeFormResetListener","componentWillLoad","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","addEventListener","componentWillUpdate","componentDidRender","setCalendarFocus","setDisableDays","days","triggerIcChange","nextParsedValue","extractDateFromZuluDateTime","pasteZuluDateTime","dateValue","isNumeric","displayPastedValidation","previousInvalidDateTest","isPasteValidationDisplayed","render","hasCustomValidation","assistiveHint","renderHiddenInput","Host","onBlur","onFocus","for","slot","role","innerHTML","Clear","onClick","variant","divider","Calendar","status","message","ariaLiveMode"],"sources":["src/components/ic-date-input/ic-date-input.css?tag=ic-date-input&encapsulation=shadow","src/components/ic-date-input/ic-date-input.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --input-bg-color: var(--ic-date-input-bg);\n --ic-input-label-text-color: var(--ic-date-input-label);\n --ic-input-label-helper-text-color: var(--ic-date-input-subtitle);\n --border-color: var(--ic-date-input-border);\n --border-color-disabled: var(--ic-date-input-border-disabled);\n --border-color-hover: var(--ic-date-input-border-default-hover);\n --border-color-pressed: var(--ic-date-input-border-default-pressed);\n --border-error-color: var(--ic-date-input-border-error);\n --border-error-color-hover: var(--ic-date-input-border-error-hover);\n --border-error-color-pressed: var(--ic-date-input-border-error-pressed);\n --border-success-color: var(--ic-date-input-border-success);\n --border-success-color-hover: var(--ic-date-input-border-success-hover);\n --border-success-color-pressed: var(--ic-date-input-border-success-pressed);\n --border-warning-color: var(--ic-date-input-border-warning);\n --border-warning-color-hover: var(--ic-date-input-border-warning-hover);\n --border-warning-color-pressed: var(--ic-date-input-border-warning-pressed);\n}\n\n:host(.ic-date-input-disabled) {\n --ic-input-label-text-color: var(--ic-date-input-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-date-input-subtitle-disabled);\n}\n\ninput {\n border: 0;\n height: 100%;\n padding: 0;\n outline: none;\n background: none;\n -moz-appearance: textfield;\n appearance: textfield;\n color: var(--ic-date-input-text-filled);\n caret-color: var(--ic-date-input-typing-cursor);\n}\n\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n}\n\ninput:-webkit-autofill {\n box-shadow: 0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;\n -webkit-text-fill-color: var(--ic-date-input-text-filled) !important;\n}\n\ninput::placeholder {\n color: var(--ic-date-input-text-placeholder);\n}\n\nic-input-component-container {\n cursor: text;\n}\n\nic-input-component-container .focus-indicator {\n padding: var(--ic-space-xxxs) var(--ic-space-xs);\n align-items: center;\n}\n\n.date-inputs {\n color: var(--ic-date-input-text-placeholder);\n}\n\n.day-input {\n width: 1.438rem;\n}\n\n.month-input {\n width: 1.813rem;\n}\n\n.year-input,\n.year-input.fit-to-value {\n width: 2.313rem;\n}\n\n.fit-to-value {\n width: 1.25rem;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n.input-container {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n}\n\n.action-buttons {\n display: flex;\n align-items: center;\n}\n\n.show-calendar-button-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.clear-button,\n.calendar-button {\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n margin: 0;\n}\n\n.clear-button.hidden {\n display: none;\n}\n\n.clear-button:focus,\n.calendar-button:focus,\n.clear-button:active,\n.calendar-button:active {\n background-color: var(--ic-color-focus-inner) !important;\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;\n border-radius: 0.25rem;\n}\n\n.calendar-button:focus,\n.calendar-button:active {\n --ic-button-tertiary-text-active: var(--ic-atoms-input-clear-button-focus);\n --ic-button-tertiary-text-hover-active: var(\n --ic-atoms-input-clear-button-focus\n );\n --ic-button-tertiary-text-pressed-active: var(\n --ic-atoms-input-clear-button-focus\n );\n}\n\n.clear-button:focus,\n.calendar-button:focus,\n.clear-button:active *,\n.calendar-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button svg {\n color: var(--ic-date-input-clear-icon);\n}\n\n.clear-button:focus svg {\n color: var(--ic-atoms-input-clear-button-focus);\n}\n\n.divider {\n margin: 0 var(--ic-space-xxs);\n width: var(--ic-space-1px);\n background-color: var(--ic-atoms-input-divider);\n border-radius: var(--ic-space-1px);\n}\n\n.divider.small {\n height: var(--ic-space-md);\n}\n\n.divider.medium {\n height: calc(var(--ic-space-sm) + var(--ic-space-xs));\n}\n\n.divider.large {\n height: var(--ic-space-lg);\n}\n\nic-input-validation {\n --ic-input-validation-status-text-color: var(--ic-date-input-status-text);\n --ic-input-validation-error: var(--ic-date-input-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-date-input-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-date-input-icon-success);\n}\n\n@media (forced-colors: active) {\n .clear-button svg {\n color: currentcolor;\n }\n}\n","/* eslint-disable react/jsx-no-bind */\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Host,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAriaLive,\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n IcDateFormat,\n IcDateInputMonths,\n IcDayNames,\n IcWeekDays,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n convertToDoubleDigits,\n createDate,\n dateMatches,\n extractDateFromZuluDateTime,\n isDateOrEpoch,\n splitStringDate,\n} from \"../../utils/date-helpers\";\nimport {\n addFormResetListener,\n getInputDescribedByText,\n isEmptyString,\n isNumeric,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n stringEnumToArray,\n} from \"../../utils/helpers\";\nimport Clear from \"../../assets/clear-icon.svg\";\nimport Calendar from \"../../assets/calendar.svg\";\n\nlet inputIds = 0;\n\n/**\n * @slot helper-text - Content is set as the helper text for the date input.\n */\n@Component({\n tag: \"ic-date-input\",\n styleUrl: \"ic-date-input.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class DateInput {\n private DEFAULT_DATE_FORMAT: IcDateFormat = \"DD/MM/YYYY\";\n private ARIA_INVALID = \"aria-invalid\";\n private ARIA_LABEL = \"aria-label\";\n private ARIA_LABELLED_BY = \"aria-labelledby\";\n private assistiveHintId: string;\n private calendarButtonEl: HTMLIcButtonElement;\n private dayInputEl?: HTMLInputElement;\n private defaultHelperText: string;\n private EVENT_OBJECT_STRING = \"[object Event]\";\n private FIT_TO_VALUE = \"fit-to-value\";\n\n private initialValue = this.value;\n private inputCompContainerEl: HTMLIcInputComponentContainerElement;\n private INPUT_EVENT_OBJECT_STRING = \"[object InputEvent]\";\n private inputsInOrder: HTMLInputElement[] = [];\n\n private isAfterMax: boolean = false;\n private isBeforeMin: boolean = false;\n private preventInputsUpdating: boolean = false;\n private isDisabledDate: boolean = false;\n private isPasteValidationDisplayed: boolean;\n private isValidDay: boolean = true;\n private isValidMonth: boolean = true;\n private isValidDate: boolean = true;\n private isZuluTime: boolean = false;\n\n private KEYBOARD_EVENT_OBJECT_STRING = \"[object KeyboardEvent]\";\n private MAX_DAY = 31;\n private MAX_MONTH = 12;\n private monthInputEl?: HTMLInputElement;\n\n private preventAutoFormatting: boolean;\n private preventDayInput: boolean;\n private preventMonthInput: boolean;\n private preventYearInput: boolean;\n\n private previousInvalidDateTest: string;\n private previousSelectedDate: Date | null = null;\n\n private selectedDate: Date | null = null;\n private selectedDateInfoEl?: HTMLSpanElement;\n private screenReaderInfoId: string;\n private selectedDateInfoId: string;\n\n private yearInputEl?: HTMLInputElement;\n\n private externalSetDate: boolean = false;\n private clearInput: boolean = false;\n\n private calendarIsOpen: boolean = false;\n\n @Element() el: HTMLIcDateInputElement;\n\n @State() invalidDateText: string;\n @State() maxDate: Date;\n @State() minDate: Date;\n @State() calendarFocused: boolean = false;\n @State() clearButtonFocused: boolean = false;\n @State() removeLabelledBy: boolean = false;\n\n @State() day: string = \"\";\n @State() month: string = \"\";\n @State() year: string = \"\";\n\n @Watch(\"day\")\n @Watch(\"month\")\n @Watch(\"year\")\n watchInputHandler(): void {\n if (\n this.emitDatePartChange &&\n !this.externalSetDate &&\n !this.clearInput &&\n !(this.day && this.month && this.year) &&\n this.selectedDate === null\n ) {\n this.emitIcChange(this.selectedDate);\n }\n }\n\n /**\n * The format in which the date will be displayed.\n */\n @Prop() dateFormat: IcDateFormat = this.DEFAULT_DATE_FORMAT;\n /**\n * If `true`, every individual input field completed will emit an icChange event.\n */\n @Prop() emitDatePartChange?: boolean = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The days of the week to disable.\n */\n @Prop({ mutable: true }) disableDays: IcWeekDays[] = [];\n\n /**\n * The text to display as the validation message when `disableDays` is set and a disabled date is entered.\n */\n @Prop() disableDaysMessage: string =\n \"The date you have selected is on a day of the week that is not allowed. Please select another date.\";\n\n /**\n * If `true`, dates in the future are not allowed. A validation message will appear if a date in the future is entered.\n */\n @Prop() disableFuture?: boolean = false;\n\n @Watch(\"disableFuture\")\n watchDisableFutureHandler(): void {\n this.watchMaxHandler();\n }\n\n /**\n * The text to display as the validation message when `disableFuture` is true and a date in the future is entered.\n */\n @Prop() disableFutureMessage: string =\n \"Dates in the future are not allowed. Please select a date in the past.\";\n\n /**\n * If `true`, dates in the past are not allowed. A validation message will appear if a date in the past is entered.\n */\n @Prop() disablePast?: boolean = false;\n\n @Watch(\"disablePast\")\n watchDisablePastHandler(): void {\n this.watchMinHandler();\n }\n\n /**\n * The text to display as the validation message when `disablePast` is true and a date in the past is entered.\n */\n @Prop() disablePastMessage: string =\n \"Dates in the past are not allowed. Please select a date in the future.\";\n\n /**\n * The helper text that will be displayed for additional field guidance. This will default to the text \"Use format\" along with the `dateFormat` value.\n */\n @Prop({ mutable: true }) helperText: string | null;\n\n /**\n * If `true`, the helper text will be visually hidden, but still read out by screenreaders.\n */\n @Prop() hideHelperText: boolean = false;\n\n /**\n * If `true`, the label will be visually hidden, but will still be read out by screen readers.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId: string = `ic-date-input-${inputIds++}`;\n\n /**\n * The text to display as the validation message when an invalid date is entered.\n */\n @Prop() invalidDateMessage: string = \"Please enter a valid date.\";\n\n /**\n * The label for the date input.\n */\n @Prop() label!: string;\n\n /**\n * The latest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disableFuture` is set to `true`.\n */\n @Prop() max: string | Date = \"\";\n\n @Watch(\"max\")\n watchMaxHandler(): void {\n if (this.disableFuture) {\n this.maxDate = new Date();\n } else {\n this.maxDate = createDate(this.max, this.dateFormat);\n }\n }\n\n /**\n * The earliest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disablePast` is set to `true`.\n */\n @Prop() min: string | Date = \"\";\n\n @Watch(\"min\")\n watchMinHandler(): void {\n if (this.disablePast) {\n this.minDate = new Date();\n } else {\n this.minDate = createDate(this.min, this.dateFormat);\n }\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required: boolean = false;\n\n @Watch(\"required\")\n watchRequiredHandler(): void {\n // Prevent asterisk being read out after the label by screen reader (by applying aria-hidden)\n // Needed because label is included in 'aria-labelledby' instead of using 'aria-label'\n const labelEl = this.el.shadowRoot?.querySelector(\"label\");\n if (this.required) {\n const asteriskSpan = document.createElement(\"span\");\n asteriskSpan.setAttribute(\"id\", \"asterisk-span\");\n asteriskSpan.setAttribute(\"aria-hidden\", \"true\");\n asteriskSpan.textContent = \" *\";\n labelEl?.appendChild(asteriskSpan);\n } else {\n const asteriskSpan = this.el.shadowRoot?.querySelector(\"#asterisk-span\");\n if (asteriskSpan) {\n asteriskSpan.remove();\n }\n }\n }\n\n /**\n * @internal If `true`, a button which displays the calendar view when clicked will be displayed.\n */\n @Prop() showCalendarButton?: boolean = false;\n\n /**\n * If `true`, a button which clears the date input when clicked will be displayed.\n */\n @Prop() showClearButton?: boolean = true;\n\n /**\n * The size of the date input to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * Sets the date picker to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value of the date input. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n */\n @Prop({ mutable: true }) value?: string | Date | null | undefined = \"\";\n\n /**\n * The value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in date validation.\n */\n @Prop({ mutable: true }) validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message. This will override the built-in date validation.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * @internal Emitted when the calendar is opened.\n */\n @Event() calendarButtonClicked: EventEmitter<{ value: Date | null }>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() icBlur: EventEmitter<{ value: Date | null }>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{\n value: Date | null;\n dateObject: {\n day: string | null;\n month: string | null;\n year: string | null;\n };\n utcValue: Date | null;\n }>;\n\n /**\n * Emitted when the input gains focus.\n */\n @Event() icFocus: EventEmitter<{ value: Date | null }>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.defaultHelperText = `Use format ${this.dateFormat}`;\n\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n\n this.watchMinHandler();\n this.watchMaxHandler();\n\n if (this.value) {\n this.externalSetDate = true;\n this.setDate(this.value);\n }\n\n this.screenReaderInfoId = `${this.inputId}-screen-reader-info`;\n this.assistiveHintId = `${this.inputId}-assistive-hint`;\n this.selectedDateInfoId = `${this.inputId}-selected-date-info`;\n\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n this.setInputsInOrder();\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Date Input\"\n );\n\n if (this.value) {\n this.updateInputValues(this.day, this.month, this.year);\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n\n this.setAriaInvalid(\n this.isValidDay,\n this.isValidMonth,\n this.isValidDate,\n this.isDisabledDate\n );\n\n if (this.value) {\n this.notifyScreenReaderSelectedDate();\n }\n\n this.inputsInOrder.forEach((input) => {\n input.addEventListener(\"input\", this.handleInput);\n input.addEventListener(\"focus\", this.handleFocus);\n input.addEventListener(\"blur\", this.handleBlur);\n });\n\n this.watchRequiredHandler();\n }\n\n componentWillUpdate(): void {\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n\n if (!this.preventInputsUpdating) this.setDate(this.value);\n\n this.setAriaInvalid(\n this.isValidDay,\n this.isValidMonth,\n this.isValidDate,\n this.isDisabledDate\n );\n this.handleDateChange(false);\n this.preventInputsUpdating = false;\n }\n\n componentDidRender(): void {\n if (this.removeLabelledBy) {\n this.removeAriaLabelledBy();\n return;\n }\n\n this.setAriaLabelledBy();\n }\n\n /**\n * Returns the value as a Date object\n * @returns Date\n */\n @Method()\n async getDate(): Promise<Date | null> {\n return this.selectedDate;\n }\n\n /**\n * @internal Sets focus on the calendar button.\n */\n @Method()\n async setCalendarFocus(): Promise<void> {\n if (this.calendarButtonEl) {\n this.calendarButtonEl.focus();\n }\n }\n\n /**\n * @internal Used to pass disabledDays from parent component.\n */\n @Method()\n async setDisableDays(days: IcWeekDays[]): Promise<void> {\n this.disableDays = days;\n }\n\n /**\n * @internal Used to enable other components to invoke an IcChange event from the input.\n */\n @Method()\n async triggerIcChange(d: Date | null): Promise<void> {\n this.externalSetDate = true;\n this.setDate(d);\n this.emitIcChange(d);\n this.externalSetDate = false;\n }\n\n private setInputPasteValue = (\n input: EventTarget | null,\n pastedValue: string\n ) => {\n if (input) {\n const inputEl = input as HTMLInputElement;\n\n inputEl.value = pastedValue;\n inputEl.classList.add(this.FIT_TO_VALUE);\n }\n };\n\n private checkSingleCopiedValueIsValid = (\n input: EventTarget | null,\n pastedValue: string\n ) => {\n let isValid = false;\n const value = Number(pastedValue);\n\n switch (input) {\n case this.dayInputEl:\n isValid = value >= 1 && value <= this.MAX_DAY;\n break;\n case this.monthInputEl:\n isValid = value >= 1 && value <= this.MAX_MONTH;\n break;\n case this.yearInputEl:\n isValid = true;\n break;\n }\n\n return isValid;\n };\n\n /**\n * Using Object.prototype.string to determine type if event from user\n * @param event - event object used to differentiate keyboard, generic or input event\n * @returns boolean\n */\n private isKeyboardOrEvent = (event: Event) => {\n return (\n Object.prototype.toString.call(event) === this.EVENT_OBJECT_STRING ||\n Object.prototype.toString.call(event) ===\n this.KEYBOARD_EVENT_OBJECT_STRING\n );\n };\n\n private setDateValidity = () => {\n if (!isEmptyString(this.day)) {\n this.isValidDay = +this.day > this.MAX_DAY ? false : true;\n } else {\n this.isValidDay = true;\n }\n\n if (!isEmptyString(this.month)) {\n this.isValidMonth = +this.month > this.MAX_MONTH ? false : true;\n } else {\n this.isValidMonth = true;\n }\n };\n\n private handleInput = (event: Event) => {\n const inputEvent = event as InputEvent;\n const input = event.target as HTMLInputElement;\n\n if (input !== this.yearInputEl) {\n // Only auto-format if input event is not a character being deleted\n // and not as user is changing value using up / down keys\n if (\n inputEvent.inputType !== \"deleteContentBackward\" &&\n !this.preventAutoFormatting\n ) {\n if (\n input.value.length === 1 &&\n ((input === this.dayInputEl && +input.value >= 4) ||\n (input === this.monthInputEl && +input.value >= 2)) &&\n +input.value <= 9\n ) {\n this.setInputValue(input);\n this.notifyScreenReader(input, event);\n this.moveToNextInput(input);\n }\n\n if (input.value.length === 2) {\n if (+input.value === 0) {\n input.value = \"01\";\n }\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.notifyScreenReader(input, event);\n this.moveToNextInput(input);\n } else {\n this.setPreventInput(input, false);\n }\n } else if (this.preventAutoFormatting) {\n /**\n * Using arrow keys prevents auto formatting so need to deal with\n * switching from arrow keys to inputting numbers\n **/\n if (input.value.length === 2 && !this.isKeyboardOrEvent(event)) {\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.moveToNextInput(input);\n } else {\n this.setInputValue(input);\n }\n }\n\n if (input.value.length !== 2) {\n this.setPreventInput(input, false);\n }\n } else {\n if (input.value.length === 4) {\n this.setInputValue(input);\n if (\n Object.prototype.toString.call(event) !== this.EVENT_OBJECT_STRING\n ) {\n this.moveToNextInput(input);\n }\n this.setPreventInput(input, true);\n } else {\n this.setPreventInput(input, false);\n }\n }\n\n // Add / remove class to make input width match size of value i.e. 2 digits' width for day / month, 4 for year\n this.setFitToValueStyling(input);\n\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n\n this.notifyScreenReader(input, event);\n };\n\n private handleKeyDown = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const input = event.target as HTMLInputElement;\n\n const eventKey = event.key?.toLowerCase();\n // Regex required due to FF allowing all characters as values for number text field.\n const regex =\n /-?\\d*\\.?\\d+(e[-+]?\\d+)?|[/-]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;\n if (\n !regex.test(eventKey) &&\n !(\n (event.ctrlKey || event.metaKey) &&\n (eventKey === \"v\" || eventKey === \"c\")\n )\n ) {\n event.preventDefault();\n }\n\n switch (eventKey) {\n case \"/\":\n case \"-\":\n case \".\":\n event.preventDefault();\n this.setPasteInvalidText();\n this.moveToNextInput(input);\n break;\n case \"arrowright\":\n case \"arrowleft\":\n event.preventDefault();\n this.handleLeftRightArrowKeyPress(input, eventKey);\n break;\n case \"arrowup\":\n case \"arrowdown\":\n this.preventAutoFormatting = true;\n this.handleUpDownArrowKeyPress(input, event);\n break;\n case \"backspace\":\n if (input.value.length === 0) {\n event.preventDefault();\n this.moveToPreviousInput(input);\n }\n break;\n default:\n break;\n }\n\n this.preventInput(event, isInputPrevented);\n this.preventInputsUpdating = true;\n };\n\n private handleFocus = (event: FocusEvent) => {\n // Highlight / select all characters in input for easy replacement\n const input = event.target as HTMLInputElement;\n\n input.select();\n };\n\n private handleBlur = (event: FocusEvent) => {\n const input = event.target;\n if (input) {\n this.setPasteInvalidText();\n this.autocompleteInput(input as HTMLInputElement);\n }\n };\n\n private handleLeftRightArrowKeyPress = (\n input: HTMLInputElement,\n key: string\n ) => {\n if (key === \"arrowright\") {\n this.moveToNextInput(input);\n } else {\n this.moveToPreviousInput(input);\n }\n\n this.setPasteInvalidText();\n };\n\n private notifyScreenReaderSelectedDate = () => {\n if (this.selectedDate && this.selectedDateInfoEl) {\n const dayNames = stringEnumToArray(IcDayNames);\n const months = stringEnumToArray(IcDateInputMonths);\n\n this.selectedDateInfoEl.textContent = `Selected date: ${\n dayNames[this.selectedDate.getDay()]\n }, ${this.selectedDate.getDate()} ${\n months[this.selectedDate.getMonth()]\n } ${this.selectedDate.getFullYear()}`;\n }\n };\n\n private handleUpDownArrowKeyPress = (\n input: HTMLInputElement,\n event: KeyboardEvent\n ) => {\n const minValue = input === this.yearInputEl ? 0 : 1;\n\n let maxValue = 9999;\n\n switch (input) {\n case this.dayInputEl:\n maxValue = this.MAX_DAY;\n break;\n case this.monthInputEl:\n maxValue = this.MAX_MONTH;\n break;\n case this.yearInputEl:\n maxValue = 9999;\n }\n\n // Make value loop round when min / max reached\n if (input?.value) {\n if (event.key === \"ArrowUp\") {\n if (+input.value === maxValue) {\n event.preventDefault();\n input.value = `0${minValue}`;\n } else {\n input.value =\n +input.value + 1 < 10\n ? `0${+input.value + 1}`\n : (+input.value + 1).toString();\n }\n this.notifyScreenReader(input, event);\n }\n\n if (event.key === \"ArrowDown\") {\n if (+input.value === minValue) {\n event.preventDefault();\n input.value = maxValue.toString();\n } else {\n input.value =\n +input.value - 1 < 10\n ? `0${+input.value - 1}`\n : (+input.value - 1).toString();\n }\n this.notifyScreenReader(input, event);\n }\n } else {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n input.value =\n input === this.yearInputEl\n ? new Date().getFullYear().toString()\n : maxValue.toString();\n this.notifyScreenReader(input, event);\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n input.value =\n input === this.yearInputEl\n ? new Date().getFullYear().toString()\n : `0${minValue}`;\n this.notifyScreenReader(input, event);\n }\n }\n\n this.setInputValue(input);\n this.setFitToValueStyling(input);\n };\n\n private handleDateChange = (force: boolean) => {\n // Prevent icChange being emitted when each individual input is changed\n // This method is used within componentWillUpdate instead of using @Watch('value');\n if (force || !dateMatches(this.selectedDate, this.previousSelectedDate)) {\n if (this.value) {\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n if (this.day && this.month && this.year && this.invalidDateText === \"\") {\n this.setValueAndEmitChange(this.selectedDate);\n this.notifyScreenReaderSelectedDate();\n } else if (\n !(this.selectedDate === null && this.previousSelectedDate === null) &&\n this.selectedDateInfoEl\n ) {\n this.setValueAndEmitChange(null);\n this.selectedDateInfoEl.textContent = \"\";\n }\n this.previousSelectedDate = this.selectedDate;\n\n if (!this.preventInputsUpdating) {\n this.updateInputValues(this.day, this.month, this.year);\n }\n }\n };\n\n private slicePastedDate = (valueLength: number, datePart: string): string => {\n return datePart.length > valueLength\n ? datePart.slice(0, valueLength)\n : datePart;\n };\n\n private isPastedStringDateValid = (value: string) => {\n if (\n /\\d+-\\d+-\\d+$/.test(value) ||\n /\\d+\\/\\d+\\/\\d+/.test(value) ||\n /\\d+\\.\\d+\\.\\d+/.test(value)\n ) {\n return true;\n }\n\n if (\n /[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(?::[0-9]{2}(?:\\.\\d+)?)?Z/.test(\n value\n )\n ) {\n this.isZuluTime = true;\n return true;\n }\n\n return false;\n };\n\n // Set value of each input to value of pasted date part\n // Allows formats separated by '-' or '/'\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n\n const pastedValue = event.clipboardData?.getData(\"Text\") || \"\";\n const isValidDate = this.isPastedStringDateValid(pastedValue);\n\n this.setPastedValueAndValidation(isValidDate, pastedValue, event);\n };\n\n private setDate = (date?: string | Date | null) => {\n if (date === null || date === \"\" || date === undefined) {\n if (this.day) this.day = \"\";\n if (this.month) this.month = \"\";\n if (this.year) this.year = \"\";\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.handleDateChange(true);\n } else {\n if (isDateOrEpoch(date)) {\n let newDate;\n if (typeof date === \"string\") {\n // Checking if epoch date time\n newDate = new Date(+date);\n } else {\n newDate = date;\n }\n\n this.day = convertToDoubleDigits(newDate.getDate());\n this.month = convertToDoubleDigits(newDate.getMonth() + 1);\n this.year = newDate.getFullYear().toString();\n } else if (typeof date === \"string\") {\n const defaultDateArray = splitStringDate(date, this.dateFormat);\n this.selectedDate = new Date(\n Number(defaultDateArray[0]),\n Number(defaultDateArray[1]) - 1,\n Number(defaultDateArray[2])\n );\n this.year = defaultDateArray[0];\n this.month = defaultDateArray[1];\n this.day = defaultDateArray[2];\n this.setValueAndEmitChange(this.selectedDate);\n }\n }\n\n this.setValidationMessage();\n };\n\n private formatMinMax = (date: Date) => {\n let formattedDate;\n\n const day = convertToDoubleDigits(date.getDate());\n const month = convertToDoubleDigits(date.getMonth() + 1);\n const year = date.getFullYear();\n\n switch (this.dateFormat) {\n case this.DEFAULT_DATE_FORMAT:\n formattedDate = `${day}/${month}/${year}`;\n break;\n case \"MM/DD/YYYY\":\n formattedDate = `${month}/${day}/${year}`;\n break;\n case \"YYYY/MM/DD\":\n formattedDate = `${year}/${month}/${day}`;\n break;\n default:\n break;\n }\n return formattedDate;\n };\n private updateInputValues = (day: string, month: string, year: string) => {\n if (this.dayInputEl && this.monthInputEl && this.yearInputEl) {\n this.dayInputEl.value = day;\n this.monthInputEl.value = month;\n this.yearInputEl.value = year;\n }\n };\n\n // Set value in state based on input\n private setInputValue = (input: HTMLInputElement, clear = false) => {\n const newValue = clear ? \"\" : input.value;\n\n switch (input) {\n case this.dayInputEl:\n this.day = newValue;\n break;\n case this.monthInputEl:\n this.month = newValue;\n break;\n case this.yearInputEl:\n if (this.year !== newValue) {\n this.year = newValue;\n }\n }\n\n this.setValidationMessage();\n };\n\n private setValidationMessage = () => {\n this.setDateValidity();\n\n if (\n !isEmptyString(this.day) &&\n !isEmptyString(this.month) &&\n !isEmptyString(this.year)\n ) {\n // Check whether date actually exists\n // (used https://www.hectane.com/blog/javascript-date-validation-with-leap-year)\n this.selectedDate = this.convertToDate(this.year, this.month, this.day);\n this.isValidDate =\n !!this.selectedDate && this.selectedDate.getDate() == +this.day;\n this.isDisabledDate = this.isSelectedDateDisabled();\n\n if (!this.isValidDate || this.isDisabledDate) {\n this.inputsInOrder.forEach((input) =>\n input.setAttribute(this.ARIA_INVALID, \"true\")\n );\n } else {\n this.inputsInOrder.forEach((input) =>\n input.removeAttribute(this.ARIA_INVALID)\n );\n }\n } else {\n this.selectedDate = null;\n }\n\n if (!(this.isValidDay && this.isValidMonth && this.isValidDate)) {\n this.invalidDateText = this.invalidDateMessage;\n } else if (this.isDisabledDate && this.selectedDate !== null) {\n if (this.isBeforeMin) {\n if (this.disablePast) {\n this.invalidDateText = this.disablePastMessage;\n } else {\n this.invalidDateText = `Please enter a date after ${this.formatMinMax(\n this.minDate\n )}.`;\n }\n } else if (this.isAfterMax) {\n if (this.disableFuture) {\n this.invalidDateText = this.disableFutureMessage;\n } else {\n this.invalidDateText = `Please enter a date before ${this.formatMinMax(\n this.maxDate\n )}.`;\n }\n } else if (this.disableDays.length !== 0) {\n this.invalidDateText = this.disableDaysMessage;\n } else {\n if (this.disablePast) {\n this.invalidDateText = this.disablePastMessage;\n }\n if (this.disableFuture) {\n this.invalidDateText = this.disableFutureMessage;\n }\n }\n } else {\n this.invalidDateText = \"\";\n }\n };\n\n // Set refs to the input elements in the order they are displayed (based on the dateFormat)\n private setInputsInOrder = () => {\n this.el.shadowRoot\n ?.querySelectorAll(\"input\")\n .forEach((input) => this.inputsInOrder.push(input));\n };\n\n // Includes text usually added using aria-describedby\n // (which doesn't work on input component container)\n private setAriaLabelledBy = () => {\n if (\n this.disabled &&\n !isEmptyString(\n this.inputCompContainerEl?.getAttribute(this.ARIA_LABELLED_BY)\n )\n ) {\n this.removeAriaLabelledBy();\n return;\n }\n\n if (this.disabled) {\n return;\n }\n\n const labelEl = this.el.shadowRoot?.querySelector(\"label\");\n const labelId = `${this.inputId}-label`;\n\n if (labelEl !== null && labelEl !== undefined) {\n labelEl.id = labelId;\n }\n\n const hasValidation =\n !isEmptyString(this.validationStatus) ||\n !isEmptyString(this.invalidDateText);\n\n const labelledBy = `${labelEl?.id ?? \"\"} ${\n this.screenReaderInfoId\n } ${getInputDescribedByText(\n this.el,\n this.inputId,\n this.helperText !== \"\" && this.helperText !== this.defaultHelperText,\n hasValidation\n )} ${this.selectedDate ? this.selectedDateInfoId : \"\"} ${\n this.assistiveHintId\n }`;\n\n this.inputCompContainerEl.setAttribute(this.ARIA_LABELLED_BY, labelledBy);\n };\n\n // Sets boolean for each input, used to limit the number of characters within each field (2 for day / month, 4 for year)\n private setPreventInput = (input: HTMLInputElement, isPrevented: boolean) => {\n switch (input) {\n case this.dayInputEl:\n this.preventDayInput = isPrevented;\n break;\n case this.monthInputEl:\n this.preventMonthInput = isPrevented;\n break;\n case this.yearInputEl:\n this.preventYearInput = isPrevented;\n }\n };\n\n // Get input based on letter representing each date part (\"D\", \"M\" or \"Y\")\n // (retrieved from dateFormat)\n private getInputFromDatePart = (datePart: string) => {\n const dayInput = (\n <input\n class=\"day-input\"\n id=\"day-input\"\n ref={(el) => (this.dayInputEl = el)}\n aria-label=\"day\"\n placeholder=\"DD\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventDayInput)}\n ></input>\n );\n\n const monthInput = (\n <input\n id=\"month-input\"\n class=\"month-input\"\n ref={(el) => (this.monthInputEl = el)}\n aria-label=\"month\"\n placeholder=\"MM\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventMonthInput)}\n ></input>\n );\n\n const yearInput = (\n <input\n id=\"year-input\"\n class=\"year-input\"\n ref={(el) => (this.yearInputEl = el)}\n aria-label=\"year\"\n placeholder=\"YYYY\"\n maxLength={4}\n disabled={this.disabled}\n aria-required={`${this.required}`}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventYearInput)}\n ></input>\n );\n\n let input;\n\n switch (datePart) {\n case \"D\":\n input = dayInput;\n break;\n case \"M\":\n input = monthInput;\n break;\n case \"Y\":\n input = yearInput;\n }\n\n return input;\n };\n\n // Get input elements in order of chosen date format\n private getInputsInOrder = () => {\n const dateParts = this.dateFormat.split(\"/\");\n\n const inputsInOrder: HTMLInputElement[] = [];\n\n dateParts.forEach((part: string) => {\n inputsInOrder.push(this.getInputFromDatePart(part.substring(0, 1)));\n });\n\n return inputsInOrder;\n };\n\n // To add to the end of assistive hint to make it clearer that each date part has its own input\n // that can be changed individually\n private getDescOfInputsOrder = () => {\n let description;\n\n switch (this.dateFormat) {\n case this.DEFAULT_DATE_FORMAT:\n description = \"day, month, and year\";\n break;\n case \"MM/DD/YYYY\":\n description = \"month, day, and year\";\n break;\n case \"YYYY/MM/DD\":\n description = \"year, month, and day\";\n }\n\n return description;\n };\n\n // Add 'required' or 'invalid data' to span used in aria-labelledby\n // Many ARIA attributes aren't read out by screen reader when on the input component container\n private getScreenReaderInfo = (validationStatus: string) => {\n let inputDescriptors = \"\";\n\n if (this.required) {\n inputDescriptors += \"required\";\n }\n\n if (validationStatus === IcInformationStatus.Error) {\n inputDescriptors += \" invalid data\";\n }\n\n return inputDescriptors === \"\" ? \"\" : inputDescriptors + \", \";\n };\n\n // Prevent non-number characters being entered\n // ('e' or '.' - which are usually allowed in <input type=\"number\">)\n // And limit the number of characters within each field (2 for day / month, 4 for year)\n // (because 'maxlength' doesn't work on <input type=\"number\">)\n private preventInput = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const key = event.key;\n const input = event.target as HTMLInputElement;\n let selectedString;\n\n if (input) {\n selectedString = input.value.substring(\n input.selectionStart || 0,\n input.selectionEnd || undefined\n );\n }\n\n if (\n key === \"e\" ||\n key === \".\" ||\n key === \"-\" ||\n (event.key >= \"0\" &&\n event.key <= \"9\" &&\n isInputPrevented &&\n !selectedString)\n ) {\n event.preventDefault();\n }\n };\n\n /**\n * Get whether date has been disabled using disableFuture or disablePast prop, but always allow current day\n * Consider using dateClamp and inDateRange\n * @returns `boolean`\n */\n private isSelectedDateDisabled = () => {\n if (!this.selectedDate) return false;\n\n const currentDate = new Date();\n const isNotToday =\n this.selectedDate.toDateString() !== currentDate.toDateString();\n\n this.isAfterMax =\n this.maxDate && this.selectedDate > this.maxDate && isNotToday;\n this.isBeforeMin =\n this.minDate && this.selectedDate < this.minDate && isNotToday;\n\n return (\n this.isAfterMax ||\n this.isBeforeMin ||\n this.disableDays.includes(this.selectedDate.getDay()) ||\n (((!!this.disablePast && this.selectedDate < currentDate) ||\n (!!this.disableFuture && this.selectedDate > currentDate)) &&\n isNotToday)\n );\n };\n\n private moveToNextInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) + 1\n ]?.focus();\n };\n\n private moveToPreviousInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) - 1\n ]?.focus();\n };\n\n private autocompleteInput = (input: HTMLInputElement) => {\n const inputValue = input.value;\n if (this.yearInputEl && input === this.yearInputEl) {\n // Autocomplete year as current millennium when fewer than 4 characters entered\n const yearNumbers = [\"2\", \"0\", \"0\"];\n\n let autocompletedInput = \"\";\n\n if (inputValue) {\n yearNumbers.forEach((number, index) => {\n if (inputValue.length + index <= 3) {\n autocompletedInput += number;\n }\n });\n\n this.yearInputEl.value = `${autocompletedInput}${inputValue}`;\n }\n } else if (inputValue.length === 1) {\n // Autocomplete input as 2 characters (leading zero) when only 1 character entered (for day and month)\n input.value = +inputValue === 0 ? \"01\" : `0${inputValue}`;\n }\n\n if (input.value) {\n this.setInputValue(input);\n }\n };\n\n private convertToDate = (\n year: string,\n month: string,\n day: string\n ): Date | null => {\n if (!isEmptyString(year) && !isEmptyString(month) && !isEmptyString(day)) {\n return new Date(+year, +month - 1, +day);\n } else {\n return null;\n }\n };\n\n private handleHostBlur = () => {\n this.removeLabelledBy = false;\n this.icBlur.emit({ value: this.selectedDate });\n };\n\n private handleHostFocus = () => {\n if (\n this.el.shadowRoot?.activeElement?.id.match(/(day|month|year)-input$/)\n ) {\n this.removeLabelledBy = false;\n } else {\n this.removeLabelledBy = true;\n }\n this.icFocus.emit({ value: this.selectedDate });\n };\n\n private handleFormReset = () => {\n // Get the initial value and populate day, month and year again.\n this.setDate(this.initialValue);\n this.setValidationMessage();\n this.handleDateChange(false);\n };\n\n private getAriaLabel = (input: HTMLInputElement) =>\n input.getAttribute(this.ARIA_LABEL);\n\n private notifyScreenReaderArrowKeys = (input: HTMLInputElement) => {\n const liveRegion = this.el.shadowRoot?.querySelector(\"#live-region\");\n const ariaLabel = this.getAriaLabel(input);\n\n if (liveRegion && input.value && ariaLabel) {\n let announcement = \"\";\n\n if (\n input === this.monthInputEl &&\n !!IcDateInputMonths[+input.value - 1]\n ) {\n announcement = `${input.value} - ${\n IcDateInputMonths[+input.value - 1]\n }, ${ariaLabel}`;\n }\n\n if (input === this.dayInputEl || input === this.yearInputEl) {\n announcement = `${input.value}, ${ariaLabel}`;\n }\n\n liveRegion.textContent = announcement;\n }\n };\n\n private removeAriaLabelledBy() {\n this.inputCompContainerEl.removeAttribute(this.ARIA_LABELLED_BY);\n }\n\n private setPastedValueAndValidation(\n isValidDate: boolean,\n pastedValue: string,\n event: ClipboardEvent\n ) {\n switch (true) {\n case isValidDate: {\n const nextParsedValue = this.isZuluTime\n ? extractDateFromZuluDateTime(pastedValue)\n : pastedValue;\n const dateParts = nextParsedValue.split(/-|\\/|\\./);\n this.inputsInOrder.forEach((input, index) => {\n input.classList.add(this.FIT_TO_VALUE);\n\n if (this.isZuluTime) {\n this.pasteZuluDateTime(dateParts, index);\n } else {\n let dateValue;\n\n if (input === this.dayInputEl || input === this.monthInputEl) {\n dateValue = this.slicePastedDate(2, dateParts[index]);\n } else {\n dateValue = this.slicePastedDate(4, dateParts[index]);\n }\n\n input.value = dateValue;\n\n this.setInputValue(input);\n this.autocompleteInput(input);\n }\n });\n this.isZuluTime = false;\n break;\n }\n\n case (pastedValue.length === 1 ||\n pastedValue.length === 2 ||\n pastedValue.length === 4) &&\n isNumeric(pastedValue):\n if (this.checkSingleCopiedValueIsValid(event.target, pastedValue)) {\n // Check if copied value can be pasted into input\n this.setInputPasteValue(event.target, pastedValue);\n this.setInputValue(event.target as HTMLInputElement);\n } else {\n this.displayPastedValidation(event);\n }\n break;\n\n case pastedValue.length === 3 && isNumeric(pastedValue):\n if (event.target !== this.yearInputEl) {\n this.displayPastedValidation(event);\n } else {\n this.setInputPasteValue(event.target, pastedValue);\n this.setInputValue(event.target as HTMLInputElement);\n }\n break;\n\n case pastedValue.length >= 5 && isNumeric(pastedValue):\n this.displayPastedValidation(event);\n }\n }\n\n private pasteZuluDateTime(dateParts: string[], index: number) {\n // ['YYYY', 'MM', 'DD']\n if (index === 0 && this.yearInputEl) {\n const dateValue = this.slicePastedDate(4, dateParts[index]);\n this.yearInputEl.value = dateValue;\n this.setInputValue(this.yearInputEl);\n } else if (index === 1 && this.monthInputEl) {\n // The month value is the second item in the array\n const dateValue = this.slicePastedDate(2, dateParts[index]);\n this.monthInputEl.value = dateValue;\n this.setInputValue(this.monthInputEl);\n } else if (this.dayInputEl) {\n const dateValue = this.slicePastedDate(2, dateParts[index]);\n this.dayInputEl.value = dateValue;\n this.setInputValue(this.dayInputEl);\n }\n }\n\n private displayPastedValidation(event: ClipboardEvent) {\n if (this.invalidDateText?.length > 0) {\n this.previousInvalidDateTest = this.invalidDateText;\n }\n\n this.invalidDateText = `Please paste a valid ${this.getAriaLabel(\n event.target as HTMLInputElement\n )}`;\n\n this.validationStatus = IcInformationStatus.Error;\n this.isPasteValidationDisplayed = true;\n }\n\n private setPasteInvalidText() {\n if (this.isPasteValidationDisplayed) {\n this.invalidDateText = this.previousInvalidDateTest ?? \"\";\n this.isPasteValidationDisplayed = false;\n\n // This is to prevent setDate from triggering within componentWillUpdate\n this.preventInputsUpdating = true;\n }\n }\n\n private notifyScreenReader(input: HTMLInputElement, event: Event) {\n const liveRegion = this.el.shadowRoot?.querySelector(\"#live-region\");\n\n if (liveRegion) {\n if (this.isKeyboardOrEvent(event)) {\n this.notifyScreenReaderArrowKeys(input);\n } else if (\n Object.prototype.toString.call(event) === this.INPUT_EVENT_OBJECT_STRING\n ) {\n this.notifyScreenReaderInput(input, liveRegion as HTMLElement);\n }\n }\n }\n\n private notifyScreenReaderInput = (\n input: HTMLInputElement,\n liveRegion: HTMLElement\n ) => {\n const ariaLabel = this.getAriaLabel(input);\n const value = input.value;\n\n if (ariaLabel && value) {\n let announcement = \"\";\n\n const monthValue = IcDateInputMonths[+value - 1];\n if (\n input === this.monthInputEl &&\n !!monthValue &&\n this.isValidMonth &&\n value.length === 2\n ) {\n announcement = `${value} - ${monthValue}`;\n } else if (\n (input === this.dayInputEl && this.isValidDay && value.length === 2) ||\n (input === this.yearInputEl && value.length === 4)\n ) {\n announcement = value;\n }\n\n liveRegion.textContent = `${announcement}, ${ariaLabel}`;\n }\n };\n\n private setFitToValueStyling = (input: HTMLInputElement) => {\n if (input.value) {\n input.classList.add(this.FIT_TO_VALUE);\n } else {\n input.classList.remove(this.FIT_TO_VALUE);\n }\n };\n\n private setAriaInvalid = (\n validDay: boolean,\n validMonth: boolean,\n validDate: boolean,\n disabledDate: boolean\n ) => {\n if (this.inputsInOrder.length) {\n this.inputsInOrder.forEach((input) => {\n input.removeAttribute(this.ARIA_INVALID);\n });\n\n if (!validDay) {\n this.dayInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n\n if (!validMonth) {\n this.monthInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n\n if (!validDate || disabledDate) {\n this.inputsInOrder.forEach((input) => {\n input.setAttribute(this.ARIA_INVALID, \"true\");\n });\n }\n }\n };\n\n private handleClear = () => {\n this.clearInput = true;\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setInputValue(input, true);\n this.setPreventInput(input, false);\n });\n this.clearInput = false;\n this.preventInputsUpdating = false;\n this.setValidationMessage();\n this.handleDateChange(true);\n\n this.inputsInOrder[0].focus();\n };\n\n private handleCalendarOpen = (ev: MouseEvent) => {\n ev.stopImmediatePropagation();\n this.calendarButtonEl?.shadowRoot\n ?.querySelector(\"ic-tooltip\")\n ?.displayTooltip(false);\n this.calendarButtonClicked.emit({ value: this.selectedDate });\n this.calendarButtonEl?.shadowRoot\n ?.querySelector(\"ic-tooltip\")\n ?.displayTooltip(false);\n this.preventInputsUpdating = false;\n this.calendarIsOpen = true;\n };\n\n private setValueAndEmitChange = (value: Date | null) => {\n if (!dateMatches(this.value ? new Date(this.value) : null, value)) {\n this.emitIcChange(value);\n this.value = value;\n }\n };\n\n private handleCalendarFocus = () => {\n this.calendarFocused = true;\n if (this.calendarIsOpen) {\n // focus event triggered by closing calendar dialog so inputs should update\n this.preventInputsUpdating = false;\n this.calendarIsOpen = false;\n } else {\n this.preventInputsUpdating = true;\n }\n };\n\n private handleCalendarBlur = () => {\n this.calendarFocused = false;\n this.preventInputsUpdating = true;\n };\n\n private handleClearFocus = () => {\n this.removeLabelledBy = true;\n this.preventInputsUpdating = true;\n this.clearButtonFocused = true;\n };\n\n private handleClearBlur = (ev: FocusEvent) => {\n this.clearButtonFocused = false;\n this.preventInputsUpdating = true;\n if ((ev.relatedTarget as HTMLElement)?.id.match(/(day|year)-input$/)) {\n this.removeLabelledBy = false;\n return;\n }\n\n this.removeLabelledBy = true;\n };\n\n private emitIcChange = (d: Date | null) => {\n this.selectedDate = d;\n if (\n !dateMatches(this.selectedDate, d) ||\n this.day !== null ||\n this.month !== null ||\n this.year !== null\n ) {\n let UTCDate = null;\n if (d !== null) {\n UTCDate = new Date(\n Date.UTC(d.getFullYear(), d.getMonth(), d.getDate())\n );\n }\n this.icChange.emit({\n value: d,\n dateObject: {\n day: this.day === \"\" ? null : this.day,\n month: this.month === \"\" ? null : this.month,\n year: this.year === \"\" ? null : this.year,\n },\n utcValue: UTCDate,\n });\n }\n };\n\n render() {\n const {\n inputId,\n label,\n disabled,\n helperText,\n hideHelperText,\n hideLabel,\n showClearButton,\n showCalendarButton,\n size,\n theme,\n validationAriaLive,\n } = this;\n\n const hasCustomValidation = !isEmptyString(this.validationStatus);\n\n const validationStatus = hasCustomValidation\n ? this.validationStatus\n : !isEmptyString(this.invalidDateText)\n ? IcInformationStatus.Error\n : \"\";\n\n const assistiveHint = `Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;\n\n renderHiddenInput(\n true,\n this.el,\n this.name,\n this.convertToDate(this.year, this.month, this.day),\n this.disabled\n );\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-date-input-disabled`]: disabled,\n }}\n onBlur={this.handleHostBlur}\n onFocus={this.handleHostFocus}\n >\n <ic-input-container disabled={disabled}>\n {!(hideLabel && hideHelperText) && (\n <ic-input-label\n for={inputId}\n label={label}\n hideLabel={hideLabel}\n helperText={!hideHelperText ? helperText : \"\"}\n disabled={disabled}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n <span id={this.screenReaderInfoId} class=\"sr-only\" aria-hidden=\"true\">\n {this.getScreenReaderInfo(validationStatus)}\n {hideLabel && `${label}\\n`}\n {hideHelperText && `${helperText}\\n`}\n {`${this.defaultHelperText}.`}\n </span>\n <span id={this.assistiveHintId} class=\"sr-only\" aria-hidden=\"true\">\n {assistiveHint}\n </span>\n <span id=\"live-region\" aria-live=\"assertive\" class=\"sr-only\"></span>\n <ic-input-component-container\n id={inputId}\n ref={(el: HTMLIcInputComponentContainerElement) =>\n (this.inputCompContainerEl = el)\n }\n disabled={disabled}\n validationStatus={validationStatus}\n size={size}\n role=\"group\"\n class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}\n >\n <div class=\"input-container\">\n <div class=\"date-inputs\">\n {this.getInputsInOrder()[0]}/{this.getInputsInOrder()[1]}/\n {this.getInputsInOrder()[2]}\n </div>\n <div class=\"action-buttons\">\n {showClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear input\"\n class={{\n [\"clear-button\"]: true,\n [\"hidden\"]:\n isEmptyString(this.day) &&\n isEmptyString(this.month) &&\n isEmptyString(this.year),\n }}\n disabled={this.disabled}\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearFocus}\n onBlur={this.handleClearBlur}\n variant=\"icon-tertiary\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n size={size}\n ></ic-button>\n )}\n {showCalendarButton && (\n <div class=\"show-calendar-button-wrapper\">\n <div class={{ divider: true, [size]: true }}></div>\n <ic-button\n id=\"calendar-button\"\n ref={(el: HTMLIcButtonElement) =>\n (this.calendarButtonEl = el)\n }\n aria-label=\"Display calendar\"\n aria-haspopup=\"dialog\"\n class=\"calendar-button\"\n disabled={this.disabled}\n innerHTML={Calendar}\n onClick={this.handleCalendarOpen}\n variant=\"icon-tertiary\"\n size={size}\n onFocus={this.handleCalendarFocus}\n onBlur={this.handleCalendarBlur}\n theme={this.calendarFocused ? \"light\" : \"dark\"}\n ></ic-button>\n </div>\n )}\n </div>\n </div>\n </ic-input-component-container>\n <span id={this.selectedDateInfoId} class=\"sr-only\" aria-live=\"polite\">\n <span\n ref={(el) => (this.selectedDateInfoEl = el)}\n role=\"status\"\n ></span>\n </span>\n <ic-input-validation\n status={validationStatus}\n message={\n hasCustomValidation ? this.validationText : this.invalidDateText\n }\n for={inputId}\n ariaLiveMode={validationAriaLive}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as i,c as t,h as a,f as e,H as o,g as n}from"./p-8e4e97b4.js";import{x as s,D as r,g as d,f as l,w as c}from"./p-542ac498.js";import{C as v}from"./p-170ddfc2.js";import{O as h}from"./p-ea1ea1b9.js";const g='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--navigation-link-colour:var(--ic-brand-text-color)}:host(:focus-within){z-index:var(--ic-z-index-navigation-item)}svg{width:var(--ic-space-xl);fill:var(--ic-brand-text-color)}.svg{margin-left:auto}.chevron-container svg,.chevron-container .svg{width:var(--ic-space-lg);height:var(--ic-space-lg)}.chevron-container{flex-grow:1}:host(.expandable.navigation-item) .link,:host(.expandable.navigation-item) ::slotted(a){padding-right:0}:host(.navigation-item) .link,:host(.navigation-item) ::slotted(a){height:calc(100% - var(--ic-space-xxs));width:-moz-fit-content;width:fit-content;color:var(--navigation-link-colour);display:flex;align-items:center;justify-content:center;padding:0 var(--ic-space-md) var(--ic-space-xxs);text-decoration:none;transition:var(--ic-easing-transition-fast);position:relative;white-space:nowrap;--ic-typography-color:var(--navigation-link-colour)}:host(.navigation-item) ::slotted(a){height:100%;font:var(--ic-font-label) !important;letter-spacing:var(--ic-font-letter-spacing-0pt025) !important;padding:0 var(--ic-space-md) !important}:host(.navigation-item-selected) .link::after,:host(.navigation-item-selected) ::slotted(a.active)::after,:host(.navigation-item-top-nav) ::slotted(a.active)::after{content:"";height:0.25rem;width:100%;position:absolute;bottom:0;background-color:var(--ic-top-navigation-theme)}:host(.navigation-item-selected.navigation-item-page-header) ::slotted(a.active)::after,:host(.navigation-item-selected.navigation-item-page-header) .link::after,:host(.navigation-item.navigation-item-page-header) ::slotted(a.active)::after,:host(.navigation-item-top-nav-child) ::slotted(a.active)::after{content:none}:host(.navigation-item-side-menu-selected) .link,:host(.navigation-item-side-menu) ::slotted(a.active),:host(.navigation-item-top-nav-child) ::slotted(a.active){box-shadow:none}:host(.navigation-item) .link:hover:not(:focus){background-color:var(--ic-brand-hover);cursor:pointer}:host(.navigation-item:not(.navigation-item-page-header,.navigation-item-side-menu,.navigation-item-top-nav-child)) ::slotted(a:hover:not(:focus)),:host(.navigation-item-side-nav.navigation-item) .link:hover:not(:focus){background-color:var(--ic-brand-hover) !important}:host(.navigation-item:not(.navigation-item-top-nav-child,.navigation-item-side-menu,.navigation-item-top-nav-child-selected .navigation-item-side-menu-selected)) .focus-indicator:focus-within{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius)}:host(.navigation-item) .link:focus,:host(.navigation-item) ::slotted(a:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);outline:var(--ic-hc-focus-outline);outline-offset:calc(-1 * (var(--ic-space-xxxs) + var(--ic-space-1px) / 2))}:host(.navigation-item-selected) .link:focus,:host(.navigation-item) ::slotted(a.active:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);outline:var(--ic-hc-focus-outline);outline-offset:calc(-1 * (var(--ic-space-xxxs) + var(--ic-space-1px) / 2))}:host(.navigation-item) .link:active:not(:focus),:host(.navigation-item) ::slotted(a:active:not(:focus)){background-color:var(--ic-brand-active)}:host(.navigation-item-side-menu) .link,:host(.navigation-item-side-menu) ::slotted(a){min-height:2.5rem;height:auto;width:100%;box-sizing:border-box;color:var(--ic-top-navigation-nav-item);--ic-typography-color:var(--ic-top-navigation-nav-item);display:flex;align-items:center;justify-content:flex-start;text-decoration:none;text-wrap:wrap;white-space:normal;transition:box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-fast)}:host(.navigation-item-top-nav-child) ::slotted(svg),:host(.navigation-item-side-menu) ::slotted(svg),:host(.navigation-item-page-header) ::slotted(svg){fill:var(--ic-color-text-primary)}:host(.navigation-item-top-nav-child) .link,:host(.navigation-item-top-nav-child) ::slotted(a){color:var(--ic-color-text-primary);--ic-typography-color:var(--ic-color-text-primary)}:host(.navigation-item-side-menu) ::slotted(a){font:var(--ic-font-body) !important;letter-spacing:var(--ic-font-letter-spacing-0pt005) !important;transition:box-shadow var(--ic-easing-transition-fast),\n background-color var(--ic-easing-transition-fast)}:host(.navigation-item-side-menu) .link:hover:not(:focus){background-color:var(--ic-top-navigation-nav-item-hover)}:host(.navigation-item-side-menu) ::slotted(a:hover:not(:focus)){background-color:var(--ic-top-navigation-nav-item-hover) !important}:host(.navigation-item-side-menu) .focus-indicator:focus-within{box-shadow:none}:host(.navigation-item-side-menu) .link:focus,:host(.navigation-item-side-menu) ::slotted(a:focus){box-shadow:var(--ic-border-focus-inset) !important;width:auto;border-radius:var(--ic-border-radius-inset) !important}:host(.navigation-item-side-menu-selected) .link,:host(.navigation-item-side-menu-selected) ::slotted(a){transition:box-shadow var(--ic-easing-transition-slow),\n background-color var(--ic-easing-transition-slow)}:host(.navigation-item-side-menu-selected) .link:focus,:host(.navigation-item-side-menu) ::slotted(a.active:focus),:host(.navigation-item-top-nav-child) ::slotted(a.active:focus){margin-left:var(--ic-space-xs) !important;padding-left:var(--ic-space-xs) !important}:host(.navigation-item-top-nav-child) .link,:host(.navigation-item-top-nav-child) ::slotted(a){height:2.5rem;width:calc(100% - var(--ic-space-xl));min-width:9.063rem;color:var(--ic-top-navigation-nav-item);display:flex;align-items:center;justify-content:flex-start;padding:0 var(--ic-space-md) !important;text-decoration:none;position:relative;transition:box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-slow)}:host(.navigation-item-top-nav-child) ::slotted(a){font:var(--ic-font-body) !important;letter-spacing:var(--ic-font-letter-spacing-0pt005) !important}:host(.navigation-item-top-nav-child) .link:hover:not(:focus),:host(.navigation-item-top-nav-child) ::slotted(a:hover:not(:focus)){background-color:var(--ic-top-navigation-nav-item-hover) !important}:host(.navigation-item-top-nav-child) .link:focus,:host(.navigation-item-top-nav-child) ::slotted(a:focus){z-index:1;outline:var(--ic-hc-focus-outline);border-radius:var(--ic-border-radius-inset);box-shadow:var(--ic-border-focus-inset);transition:border-radius 0s, box-shadow var(--ic-transition-duration-fast)}:host(.navigation-item-top-nav-child) ::slotted(a.active:focus){box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset)}:host(.navigation-item-side-menu) .link:active:not(:focus){background-color:var(--ic-top-navigation-nav-item-pressed)}:host(.navigation-item-top-nav-child) .link:active:not(:focus),:host(.navigation-item-top-nav-child) ::slotted(a:active:not(:focus)){outline:var(--ic-hc-focus-outline);background-color:var(--ic-top-navigation-nav-item-pressed)}:host(.navigation-item-top-nav-child) ::slotted(a:active:not(:focus)),:host(.navigation-item-side-menu) ::slotted(a:active:not(:focus)){background-color:var(--ic-top-navigation-nav-item-pressed) !important}:host(.navigation-item-side-menu-selected) *,:host(.navigation-item-top-nav-child-selected) *,:host(.navigation-item-side-menu) ::slotted(a.active),:host(.navigation-item-top-nav-child) ::slotted(a.active){font-weight:700 !important}:host(.navigation-item-top-nav-child) ::slotted(a.active)::before,:host(.navigation-item-top-nav-child-selected) .link::before,:host(.navigation-item-side-menu-selected) .link::before,:host(.navigation-item-side-menu) ::slotted(a.active)::before,:host(.navigation-item-side-menu-selected) .link:focus::before,:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before{content:"";position:absolute;left:0;width:var(--ic-space-xs);height:inherit;min-height:2.5rem;background-color:var(--ic-top-navigation-nav-item-banner);transition:left 0s}:host(.navigation-item-side-menu-selected) .link::before,:host(.navigation-item-side-menu-selected) .link:focus::before{margin-top:var(--ic-space-xxs)}:host(.navigation-item-top-nav-child-selected) .link:focus{margin-left:var(--ic-space-xs);margin-right:calc(-1 * var(--ic-space-xs));padding-left:var(--ic-space-xs) !important}:host(.navigation-item-top-nav-child-selected) .link:focus::before{left:calc(-1 * var(--ic-space-xs));z-index:1}:host(.navigation-item-side-menu-selected) .link::before,:host(.navigation-item-side-menu) ::slotted(a.active)::before,:host(.navigation-item-side-menu-selected) .link:focus::before,:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before{z-index:1}:host(.navigation-item-side-menu-selected) .link:focus::before,:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before,:host(.navigation-item-top-nav-child) ::slotted(a.active:focus)::before{left:calc(-1 * var(--ic-space-xs))}:host(.navigation-item-side-menu-selected) .link::after{display:none}:host(.navigation-item-side-nav-collapsed) .link{height:100%}:host(.navigation-item-side-nav-collapsed) ::slotted(svg),:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(svg){margin:auto;pointer-events:none}:host(.navigation-item-side-nav-collapsed) .icon,:host(.navigation-item-side-nav-collapsed-with-label) .icon,:host(.navigation-item-side-nav-collapsed-with-label) ic-typography{align-items:center;padding:0;margin:auto 0;width:-moz-fit-content;width:fit-content;pointer-events:none}:host(.navigation-item-side-nav-collapsed-with-label) ic-typography{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-align:center}:host(.navigation-item-side-nav-collapsed-with-label) .link,:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(a){display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content;padding:var(--ic-space-xs) !important;gap:var(--ic-space-xxs)}:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) .link,:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) ::slotted(a){height:auto !important;gap:0;width:auto;padding:var(--ic-space-xs) !important}:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) ::slotted(a){display:block;text-align:center}:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) .link ic-typography{opacity:1;min-width:-moz-min-content;min-width:min-content}:host(.navigation-item-side-nav-collapsed) svg,:host(.navigation-item-side-nav-collapsed-with-label) svg{display:none}::slotted(svg){fill:var(--ic-brand-text-color);height:var(--ic-space-lg);width:var(--ic-space-lg);margin-left:var(--ic-space-md)}.icon{height:1.5rem;width:var(--ic-space-xxl);margin-left:calc(-1 * var(--ic-space-md));flex:0 1 0%;position:relative}.icon>::slotted(*){margin-left:var(--ic-space-md) !important;margin-right:var(--ic-space-xs)}.inline-badge{margin-left:var(--ic-space-xs)}.badge{margin-left:0}:host(.navigation-item-side-nav-collapsed) .icon>::slotted(*){margin:auto !important}:host(.navigation-item-side-nav) .icon>::slotted(*){margin-right:0}:host(.navigation-item-side-nav) .link,:host(.navigation-item-side-nav) ::slotted(a){height:var(--navigation-item-height, 4rem);min-height:var(--navigation-item-min-height);width:var(--navigation-item-width, auto);justify-content:var(--navigation-item-justify-content);display:flex;gap:var(--ic-space-xs);box-sizing:border-box;color:var(--navigation-item-child-color) !important;text-decoration:none !important;white-space:nowrap;padding:0 var(--ic-space-md);text-wrap:wrap}:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link,:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a){height:var(--navigation-item-child-height);width:var(--navigation-group-width);color:var(--navigation-item-child-color) !important;display:flex;gap:0.625rem;box-sizing:border-box;min-width:0;transition:box-shadow var(--ic-easing-transition-fast);text-decoration:none !important;white-space:nowrap}:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:focus,:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a:focus){box-shadow:var(--ic-border-focus-dark)}:host(.navigation-item-side-nav.navigation-item-side-menu) .link:active{background-color:var(--navigation-item-child-active)}:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:active,:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a:active){background-color:var(--navigation-item-child-active)}:host(.navigation-item-side-nav) a.link ic-typography,:host(.navigation-item-side-nav.navigation-item-top-nav-child) a.link ic-typography,:host(.navigation-item-side-nav) div.link ic-typography,:host(.navigation-item-side-nav.navigation-item-top-nav-child) div.link ic-typography,.navigation-item-side-nav-slotted-text{opacity:var(--navigation-item-label-opacity);transition:opacity var(--ic-easing-transition-slow);white-space:wrap;text-overflow:ellipsis;overflow:hidden}:host(.navigation-item-side-nav.navigation-item-selected) .link,:host(.navigation-item-side-nav.navigation-item) ::slotted(a.active){box-shadow:inset 0.313rem 0 0 var(--ic-brand-text-color)}:host(.navigation-item-side-nav.navigation-item-selected) .link::before,:host(.navigation-item-side-nav) ::slotted(a.active)::before{content:"";display:block;position:absolute;inset:0 0 0 0.313rem;border-radius:0.688rem !important;transition:var(--ic-easing-transition-slow)}:host(.navigation-item-side-nav.navigation-item-selected) .link:focus::before,:host(.navigation-item-side-nav) ::slotted(a.active:focus)::before{box-shadow:var(--ic-border-focus-inset)}:host(:not(.navigation-item-side-nav-collapsed).navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label) .link{opacity:var(--navigation-item-label-opacity);height:auto}:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label) .link,:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label) ::slotted(a){min-width:var(--navigation-group-item-min-width);padding:var(--ic-space-xs) !important;height:auto;gap:0}:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label) ::slotted(a){display:block}:host(.navigation-item-side-nav.navigation-item-selected) .link::after,:host(.navigation-item-side-nav) ::slotted(a.active)::after{display:none}:host(.navigation-item-side-nav.navigation-item) .link:focus,:host(.navigation-item-side-nav.navigation-item) ::slotted(a:focus){box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);background-color:transparent}:host(.navigation-item-side-nav.navigation-item-selected) .link:focus,:host(.navigation-item-side-nav) ::slotted(a.active:focus){margin:0 auto;box-shadow:inset 0.313rem 0 0 var(--ic-brand-text-color);border-radius:0}:host(.navigation-item-page-header).link,:host(.navigation-item-page-header) a,:host(.navigation-item-page-header) ::slotted(a){height:2.5rem !important;color:var(--ic-color-text-primary) !important;transition:all var(--ic-easing-transition-fast) !important;box-shadow:rgba(23 89 188 / 0%) !important}:host(.navigation-item-page-header.navigation-item-selected) .link::after,:host(.navigation-item-page-header) ::slotted(a.active)::after{content:" " !important;position:absolute;bottom:0;left:0;right:0;height:var(--ic-space-xxs);background-color:var(--ic-action-default) !important}:host(.navigation-item-page-header) .link:hover,:host(.navigation-item-page-header) ::slotted(.link:hover),:host(.navigation-item-page-header) ::slotted(a:hover),:host(.navigation-item-page-header) .link:hover:not(:focus){background-color:var(--ic-action-default-bg-hover) !important;cursor:pointer}:host(.navigation-item-page-header) .link:focus,:host(.navigation-item-page-header) ::slotted(a:focus){box-shadow:var(--ic-border-focus)}:host(.navigation-item-page-header) .link:active,:host(.navigation-item-page-header) ::slotted(a:active){background-color:var(--ic-action-default-bg-pressed) !important}:host(.navigation-item-page-header.navigation-item-selected) .link:focus::after,:host(.navigation-item-page-header) ::slotted(a.active:focus)::after{border-bottom-left-radius:var(--ic-border-radius);border-bottom-right-radius:var(--ic-border-radius)}:host(.navigation-item-page-header.navigation-item-selected.with-transition) .link,:host(.navigation-item-page-header.navigation-item-selected.with-transition) ::slotted(a.active){transition:all var(--ic-easing-transition-fast),\n border-color var(--ic-transition-duration-fast)}:host(.navigation-item-page-header) ::slotted(a.active)::before,:host(.navigation-item-page-header) ::slotted(a.active:focus)::before,:host(.navigation-item-page-header.navigation-item-selected) .link:focus::before{display:none}.open-in-new-icon{flex:1}.open-in-new-icon svg{margin-top:var(--ic-space-xxs);padding-left:var(--ic-space-xs)}:host(.navigation-item-side-nav) .open-in-new-icon{margin-left:calc(-1 * var(--ic-space-xs))}:host(.navigation-item-top-nav) .open-in-new-icon svg,:host(.navigation-item-page-header) .open-in-new-icon svg,:host(.navigation-item-side-nav) .open-in-new-icon svg{height:0.875rem;width:0.875rem}:host(.navigation-item-side-menu) .open-in-new-icon svg,:host(.navigation-item-top-nav-child) .open-in-new-icon svg{height:var(--ic-space-md);width:var(--ic-space-md)}:host(.navigation-item-page-header) .open-in-new-icon svg,:host(.navigation-item-top-nav-child) .open-in-new-icon svg,:host(.navigation-item-side-menu) .open-in-new-icon svg{fill:var(--ic-color-text-primary)}@media (forced-colors: active){.open-in-new-icon svg{fill:currentcolor}}';const m=g;const p=class{constructor(o){i(this,o);this.childBlur=t(this,"childBlur",7);this.navItemClicked=t(this,"navItemClicked",7);this.isInitialRender=true;this.hostMutationObserver=null;this.ANIMATION_DURATION=parseInt(s("--ic-transition-duration-slow"))||0;this.ARIA_LABEL_STRING="aria-label";this.isInSideNav=false;this.deviceSize=r.XL;this.focusStyle=d();this.inTopNavSideMenu=false;this.isSideNavMobile=false;this.isTopNavChild=false;this.sideNavExpanded=false;this.ariaLabel="";this.collapsedIconLabel=false;this.displayNavigationTooltip=false;this.download=false;this.expandable=false;this.href="";this.selected=false;this.theme="inherit";this.displayDefaultNavigationItem=(i,t,e,o,n,s,r)=>{const d=this.isTopNavChild||this.inTopNavSideMenu?"body":"label";const l=this.expandable&&a("div",{class:{svg:true},innerHTML:v});const c=this.el.querySelector('[slot="badge"]');const g=c&&a("div",{class:"inline-badge"},a("slot",{name:"badge"}));const m=this.el.querySelector('[slot="icon"]')&&a("div",{class:"icon"},a("slot",{name:"icon"}),this.isInSideNav&&g);return i!==""?a("a",{href:i,target:o,rel:n,hreflang:e,referrerPolicy:s,download:r!==false?r:null,class:"link",ref:i=>this.itemEl=i,part:"link","aria-label":this.ariaLabel?this.ariaLabel:null},m,a("ic-typography",{variant:d},t),o==="_blank"&&a("span",{class:"open-in-new-icon",innerHTML:h}),g,a("div",{class:"chevron-container"},l)):a("div",{tabindex:"0",class:"link",ref:i=>this.itemEl=i},m,a("ic-typography",{variant:d},t),l,g)};this.topNavResizedHandler=({detail:i})=>{var t;const{size:a}=i;if(a!==this.deviceSize){this.deviceSize=a;this.inTopNavSideMenu=a<=(((t=this.parentEl)===null||t===void 0?void 0:t.customMobileBreakpoint)||r.L)}};this.sideNavExpandHandler=({detail:i})=>{const{sideNavExpanded:t,sideNavMobile:a}=i;this.sideNavExpanded=t;this.isSideNavMobile=a;this.sideNavToggleTooltip(!t&&!a)};this.handleBlur=({relatedTarget:i})=>{if(i===null||i.tagName!=="IC-NAVIGATION-ITEM"){this.childBlur.emit()}};this.handleClick=()=>this.navItemClicked.emit();this.hostMutationCallback=i=>{let t=false;i.forEach((({attributeName:i})=>{if(i){const a=this.el.getAttribute(i);if(a&&i===this.ARIA_LABEL_STRING){this.ariaLabel=a;t=true}}}));if(t){e(this)}};this.generateTooltipLabel=()=>{var i;if(this.label){return this.label}if(this.navigationSlot){return this.navigationSlot.textContent||""}return((i=this.el.children[0])===null||i===void 0?void 0:i.textContent)||""};this.renderNavigationItemContent=()=>{if(!this.label&&!this.navigationSlot)return a("slot",null);return this.label?this.displayDefaultNavigationItem(this.href,this.label,this.hreflang,this.target,this.rel,this.referrerpolicy,this.download):a("slot",{name:"navigation-item"})};this.sideNavToggleTooltip=i=>{var t;const a=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("ic-tooltip");const e="tooltip-navigation-item-side-nav-collapsed";let o;if(!a)return;if(i){a.displayTooltip(false);o=setTimeout((()=>{a.classList.add(e)}),this.ANIMATION_DURATION)}else{clearTimeout(o);a.classList.remove(e)}}}navigationTypeChangeHandler(){this.isInSideNav=this.navigationType==="side"}disconnectedCallback(){var i,t,a;if(this.isInSideNav){(i=this.parentEl)===null||i===void 0?void 0:i.removeEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){(t=this.parentEl)===null||t===void 0?void 0:t.removeEventListener("icTopNavResized",this.topNavResizedHandler)}(a=this.hostMutationObserver)===null||a===void 0?void 0:a.disconnect()}componentWillLoad(){var i,t,a,e,o,n;const{navType:s,parent:r}=c(this.el);this.navigationType=s;this.isInSideNav=this.navigationType==="side";this.parentEl=r;this.deviceSize=l();this.sideNavExpanded=((i=this.parentEl)===null||i===void 0?void 0:i.classList.contains("sm-expanded"))||((t=this.parentEl)===null||t===void 0?void 0:t.classList.contains("xs-menu-open"))||false;if(this.isInSideNav){(a=this.parentEl)===null||a===void 0?void 0:a.addEventListener("icSideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){(e=this.parentEl)===null||e===void 0?void 0:e.addEventListener("icTopNavResized",this.topNavResizedHandler);if(((o=this.el.parentElement)===null||o===void 0?void 0:o.tagName)==="IC-NAVIGATION-GROUP")this.isTopNavChild=true;if(this.deviceSize<=this.parentEl.customMobileBreakpoint)this.inTopNavSideMenu=true}this.navigationSlot=this.el.querySelector('[slot="navigation-item"]');if(this.navigationSlot){this.navigationSlot.ariaLabel=((n=this.navigationSlot.textContent)===null||n===void 0?void 0:n.trim())||null}if(this.el.hasAttribute(this.ARIA_LABEL_STRING)){this.ariaLabel=this.el.getAttribute(this.ARIA_LABEL_STRING)||""}}componentDidLoad(){this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true})}componentDidUpdate(){this.isInitialRender=false}brandChangeHandler({detail:i}){this.focusStyle=i.mode}async setFocus(){var i;this.itemEl?this.itemEl.focus():(i=this.el.querySelector("a"))===null||i===void 0?void 0:i.focus()}render(){const{inTopNavSideMenu:i,isTopNavChild:t,selected:e,navigationType:n,focusStyle:s,isInitialRender:r,sideNavExpanded:d,displayNavigationTooltip:l,collapsedIconLabel:c,isSideNavMobile:v,expandable:h,isInSideNav:g,theme:m}=this;const p=t&&!i;return a(o,{key:"6d3d330011cb09ae9fd95b59f98a9d18ffc25ba0",class:{"navigation-item":true,"navigation-item-selected":!t&&e,"navigation-item-top-nav":!i&&n==="top","navigation-item-top-nav-child":p,"navigation-item-top-nav-child-selected":p&&e,"navigation-item-side-menu":i,"navigation-item-side-menu-selected":i&&e,"navigation-item-page-header":n==="page-header","navigation-item-side-nav":g,"navigation-item-side-nav-collapsed":(!d||l)&&g,"navigation-item-side-nav-collapsed-with-label":!d&&g&&c&&!v,"with-transition":!r,expandable:h,[s]:t?g:!i,[`ic-theme-${m}`]:m!=="inherit"},onBlur:p?this.handleBlur:null,onClick:this.handleClick,"aria-current":e?"page":null,role:"listitem"},a("ic-tooltip",{key:"af3a3de698b102182ff030ffcfb66b419d7ac857",label:this.generateTooltipLabel(),target:"navigation-item",placement:"right",class:{"tooltip-navigation-item":true,"tooltip-navigation-item-side-nav-collapsed":l&&g,"tooltip-long-label-navigation-item-side-nav-expanded":this.el.hasAttribute("[display-navigation-tooltip = 'true']")}},this.renderNavigationItemContent()))}static get delegatesFocus(){return true}get el(){return n(this)}static get watchers(){return{navigationType:["navigationTypeChangeHandler"]}}};p.style=m;export{p as ic_navigation_item};
2
+ //# sourceMappingURL=p-5bc54721.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["icNavigationItemCss","IcNavigationItemStyle0","NavigationItem","constructor","hostRef","this","isInitialRender","hostMutationObserver","ANIMATION_DURATION","parseInt","getCssProperty","ARIA_LABEL_STRING","isInSideNav","deviceSize","DEVICE_SIZES","XL","focusStyle","getBrandForegroundAppearance","inTopNavSideMenu","isSideNavMobile","isTopNavChild","sideNavExpanded","ariaLabel","collapsedIconLabel","displayNavigationTooltip","download","expandable","href","selected","theme","displayDefaultNavigationItem","label","hreflang","target","rel","referrerpolicy","variant","ChevronIconComponent","h","class","svg","innerHTML","chevronIcon","slottedBadgeEl","el","querySelector","BadgeComponent","name","IconComponent","referrerPolicy","ref","itemEl","part","OpenInNew","tabindex","topNavResizedHandler","detail","_a","size","parentEl","customMobileBreakpoint","L","sideNavExpandHandler","sideNavMobile","sideNavToggleTooltip","handleBlur","relatedTarget","tagName","childBlur","emit","handleClick","navItemClicked","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","attribute","getAttribute","forceUpdate","generateTooltipLabel","navigationSlot","textContent","children","renderNavigationItemContent","showTooltip","tooltip","shadowRoot","collapsedClass","timer","displayTooltip","setTimeout","classList","add","clearTimeout","remove","navigationTypeChangeHandler","navigationType","disconnectedCallback","_b","_c","removeEventListener","disconnect","componentWillLoad","_d","_e","_f","navType","parent","getNavItemParentDetails","getCurrentDeviceSize","contains","addEventListener","parentElement","trim","hasAttribute","componentDidLoad","MutationObserver","observe","attributes","componentDidUpdate","brandChangeHandler","mode","setFocus","focus","render","isTopNavChildDesktop","Host","key","onBlur","onClick","role","placement","delegatesFocus"],"sources":["../web-components/dist/collection/components/ic-navigation-item/ic-navigation-item.css?tag=ic-navigation-item&encapsulation=shadow","../web-components/dist/collection/components/ic-navigation-item/ic-navigation-item.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/**\n * @prop --ic-z-index-navigation-item: z-index of navigation item\n */\n\n:host {\n display: block;\n\n --navigation-link-colour: var(--ic-brand-text-color);\n}\n\n:host(:focus-within) {\n z-index: var(--ic-z-index-navigation-item);\n}\n\n/* chevron */\nsvg {\n width: var(--ic-space-xl);\n fill: var(--ic-brand-text-color);\n}\n\n.svg {\n margin-left: auto;\n}\n\n.chevron-container svg,\n.chevron-container .svg {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n.chevron-container {\n flex-grow: 1;\n}\n\n:host(.expandable.navigation-item) .link,\n:host(.expandable.navigation-item) ::slotted(a) {\n padding-right: 0;\n}\n\n:host(.navigation-item) .link,\n:host(.navigation-item) ::slotted(a) {\n height: calc(100% - var(--ic-space-xxs));\n width: -moz-fit-content;\n width: fit-content;\n color: var(--navigation-link-colour);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md) var(--ic-space-xxs);\n text-decoration: none;\n transition: var(--ic-easing-transition-fast);\n position: relative;\n white-space: nowrap;\n\n --ic-typography-color: var(--navigation-link-colour);\n}\n\n:host(.navigation-item) ::slotted(a) {\n height: 100%;\n font: var(--ic-font-label) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt025) !important;\n padding: 0 var(--ic-space-md) !important;\n}\n\n:host(.navigation-item-selected) .link::after,\n:host(.navigation-item-selected) ::slotted(a.active)::after,\n:host(.navigation-item-top-nav) ::slotted(a.active)::after {\n content: \"\";\n height: 0.25rem;\n width: 100%;\n position: absolute;\n bottom: 0;\n background-color: var(--ic-top-navigation-theme);\n}\n\n:host(.navigation-item-selected.navigation-item-page-header)\n ::slotted(a.active)::after,\n:host(.navigation-item-selected.navigation-item-page-header) .link::after,\n:host(.navigation-item.navigation-item-page-header) ::slotted(a.active)::after,\n:host(.navigation-item-top-nav-child) ::slotted(a.active)::after {\n content: none;\n}\n\n:host(.navigation-item-side-menu-selected) .link,\n:host(.navigation-item-side-menu) ::slotted(a.active),\n:host(.navigation-item-top-nav-child) ::slotted(a.active) {\n box-shadow: none;\n}\n\n:host(.navigation-item) .link:hover:not(:focus) {\n background-color: var(--ic-brand-hover);\n cursor: pointer;\n}\n\n:host(.navigation-item:not(.navigation-item-page-header, .navigation-item-side-menu, .navigation-item-top-nav-child))\n ::slotted(a:hover:not(:focus)),\n:host(.navigation-item-side-nav.navigation-item) .link:hover:not(:focus) {\n background-color: var(--ic-brand-hover) !important;\n}\n\n:host(.navigation-item:not(.navigation-item-top-nav-child, .navigation-item-side-menu, .navigation-item-top-nav-child-selected\n .navigation-item-side-menu-selected))\n .focus-indicator:focus-within {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.navigation-item) .link:focus,\n:host(.navigation-item) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n outline-offset: calc(-1 * (var(--ic-space-xxxs) + var(--ic-space-1px) / 2));\n}\n\n:host(.navigation-item-selected) .link:focus,\n:host(.navigation-item) ::slotted(a.active:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n outline-offset: calc(-1 * (var(--ic-space-xxxs) + var(--ic-space-1px) / 2));\n}\n\n:host(.navigation-item) .link:active:not(:focus),\n:host(.navigation-item) ::slotted(a:active:not(:focus)) {\n background-color: var(--ic-brand-active);\n}\n\n:host(.navigation-item-side-menu) .link,\n:host(.navigation-item-side-menu) ::slotted(a) {\n min-height: 2.5rem;\n height: auto;\n width: 100%;\n box-sizing: border-box;\n color: var(--ic-top-navigation-nav-item);\n\n --ic-typography-color: var(--ic-top-navigation-nav-item);\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n text-decoration: none;\n text-wrap: wrap;\n white-space: normal;\n transition: box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(svg),\n:host(.navigation-item-side-menu) ::slotted(svg),\n:host(.navigation-item-page-header) ::slotted(svg) {\n fill: var(--ic-color-text-primary);\n}\n\n:host(.navigation-item-top-nav-child) .link,\n:host(.navigation-item-top-nav-child) ::slotted(a) {\n color: var(--ic-color-text-primary);\n\n --ic-typography-color: var(--ic-color-text-primary);\n}\n\n:host(.navigation-item-side-menu) ::slotted(a) {\n font: var(--ic-font-body) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt005) !important;\n transition: box-shadow var(--ic-easing-transition-fast),\n background-color var(--ic-easing-transition-fast);\n}\n\n:host(.navigation-item-side-menu) .link:hover:not(:focus) {\n background-color: var(--ic-top-navigation-nav-item-hover);\n}\n\n:host(.navigation-item-side-menu) ::slotted(a:hover:not(:focus)) {\n background-color: var(--ic-top-navigation-nav-item-hover) !important;\n}\n\n:host(.navigation-item-side-menu) .focus-indicator:focus-within {\n box-shadow: none;\n}\n\n:host(.navigation-item-side-menu) .link:focus,\n:host(.navigation-item-side-menu) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-inset) !important;\n width: auto;\n border-radius: var(--ic-border-radius-inset) !important;\n}\n\n:host(.navigation-item-side-menu-selected) .link,\n:host(.navigation-item-side-menu-selected) ::slotted(a) {\n transition: box-shadow var(--ic-easing-transition-slow),\n background-color var(--ic-easing-transition-slow);\n}\n\n:host(.navigation-item-side-menu-selected) .link:focus,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus),\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus) {\n margin-left: var(--ic-space-xs) !important;\n padding-left: var(--ic-space-xs) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link,\n:host(.navigation-item-top-nav-child) ::slotted(a) {\n height: 2.5rem;\n width: calc(100% - var(--ic-space-xl));\n min-width: 9.063rem;\n color: var(--ic-top-navigation-nav-item);\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 0 var(--ic-space-md) !important;\n text-decoration: none;\n position: relative;\n transition: box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-slow);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a) {\n font: var(--ic-font-body) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt005) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link:hover:not(:focus),\n:host(.navigation-item-top-nav-child) ::slotted(a:hover:not(:focus)) {\n background-color: var(--ic-top-navigation-nav-item-hover) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link:focus,\n:host(.navigation-item-top-nav-child) ::slotted(a:focus) {\n z-index: 1;\n outline: var(--ic-hc-focus-outline);\n border-radius: var(--ic-border-radius-inset);\n box-shadow: var(--ic-border-focus-inset);\n transition: border-radius 0s, box-shadow var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus) {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n}\n\n:host(.navigation-item-side-menu) .link:active:not(:focus) {\n background-color: var(--ic-top-navigation-nav-item-pressed);\n}\n\n:host(.navigation-item-top-nav-child) .link:active:not(:focus),\n:host(.navigation-item-top-nav-child) ::slotted(a:active:not(:focus)) {\n outline: var(--ic-hc-focus-outline);\n background-color: var(--ic-top-navigation-nav-item-pressed);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a:active:not(:focus)),\n:host(.navigation-item-side-menu) ::slotted(a:active:not(:focus)) {\n background-color: var(--ic-top-navigation-nav-item-pressed) !important;\n}\n\n:host(.navigation-item-side-menu-selected) *,\n:host(.navigation-item-top-nav-child-selected) *,\n:host(.navigation-item-side-menu) ::slotted(a.active),\n:host(.navigation-item-top-nav-child) ::slotted(a.active) {\n font-weight: 700 !important;\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a.active)::before,\n:host(.navigation-item-top-nav-child-selected) .link::before,\n:host(.navigation-item-side-menu-selected) .link::before,\n:host(.navigation-item-side-menu) ::slotted(a.active)::before,\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before {\n content: \"\";\n position: absolute;\n left: 0;\n width: var(--ic-space-xs);\n height: inherit;\n min-height: 2.5rem;\n background-color: var(--ic-top-navigation-nav-item-banner);\n transition: left 0s;\n}\n\n:host(.navigation-item-side-menu-selected) .link::before,\n:host(.navigation-item-side-menu-selected) .link:focus::before {\n margin-top: var(--ic-space-xxs);\n}\n\n:host(.navigation-item-top-nav-child-selected) .link:focus {\n margin-left: var(--ic-space-xs);\n margin-right: calc(-1 * var(--ic-space-xs));\n padding-left: var(--ic-space-xs) !important;\n}\n\n:host(.navigation-item-top-nav-child-selected) .link:focus::before {\n left: calc(-1 * var(--ic-space-xs));\n z-index: 1;\n}\n\n:host(.navigation-item-side-menu-selected) .link::before,\n:host(.navigation-item-side-menu) ::slotted(a.active)::before,\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before {\n z-index: 1;\n}\n\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before,\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus)::before {\n left: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.navigation-item-side-menu-selected) .link::after {\n display: none;\n}\n\n:host(.navigation-item-side-nav-collapsed) .link {\n height: 100%;\n}\n\n:host(.navigation-item-side-nav-collapsed) ::slotted(svg),\n:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(svg) {\n margin: auto;\n pointer-events: none;\n}\n\n:host(.navigation-item-side-nav-collapsed) .icon,\n:host(.navigation-item-side-nav-collapsed-with-label) .icon,\n:host(.navigation-item-side-nav-collapsed-with-label) ic-typography {\n align-items: center;\n padding: 0;\n margin: auto 0;\n width: -moz-fit-content;\n width: fit-content;\n pointer-events: none;\n}\n\n:host(.navigation-item-side-nav-collapsed-with-label) ic-typography {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 100%;\n text-align: center;\n}\n\n:host(.navigation-item-side-nav-collapsed-with-label) .link,\n:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(a) {\n display: flex;\n flex-direction: column;\n height: -moz-fit-content;\n height: fit-content;\n padding: var(--ic-space-xs) !important;\n gap: var(--ic-space-xxs);\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link,\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n height: auto !important;\n gap: 0;\n width: auto;\n padding: var(--ic-space-xs) !important;\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n display: block;\n text-align: center;\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link\n ic-typography {\n opacity: 1;\n min-width: -moz-min-content;\n min-width: min-content;\n}\n\n:host(.navigation-item-side-nav-collapsed) svg,\n:host(.navigation-item-side-nav-collapsed-with-label) svg {\n display: none;\n}\n\n::slotted(svg) {\n fill: var(--ic-brand-text-color);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-md);\n}\n\n.icon {\n height: 1.5rem;\n width: var(--ic-space-xxl);\n margin-left: calc(-1 * var(--ic-space-md));\n flex: 0 1 0%;\n position: relative;\n}\n\n.icon > ::slotted(*) {\n margin-left: var(--ic-space-md) !important;\n margin-right: var(--ic-space-xs);\n}\n\n.inline-badge {\n margin-left: var(--ic-space-xs);\n}\n\n.badge {\n margin-left: 0;\n}\n\n:host(.navigation-item-side-nav-collapsed) .icon > ::slotted(*) {\n margin: auto !important;\n}\n\n:host(.navigation-item-side-nav) .icon > ::slotted(*) {\n margin-right: 0;\n}\n\n:host(.navigation-item-side-nav) .link,\n:host(.navigation-item-side-nav) ::slotted(a) {\n height: var(--navigation-item-height, 4rem);\n min-height: var(--navigation-item-min-height);\n width: var(--navigation-item-width, auto);\n justify-content: var(--navigation-item-justify-content);\n display: flex;\n gap: var(--ic-space-xs);\n box-sizing: border-box;\n color: var(--navigation-item-child-color) !important;\n text-decoration: none !important;\n white-space: nowrap;\n padding: 0 var(--ic-space-md);\n text-wrap: wrap;\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a) {\n height: var(--navigation-item-child-height);\n width: var(--navigation-group-width);\n color: var(--navigation-item-child-color) !important;\n display: flex;\n gap: 0.625rem;\n box-sizing: border-box;\n min-width: 0;\n transition: box-shadow var(--ic-easing-transition-fast);\n text-decoration: none !important;\n white-space: nowrap;\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:focus,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-dark);\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-menu) .link:active {\n background-color: var(--navigation-item-child-active);\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:active,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n ::slotted(a:active) {\n background-color: var(--navigation-item-child-active);\n}\n\n:host(.navigation-item-side-nav) a.link ic-typography,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n a.link\n ic-typography,\n:host(.navigation-item-side-nav) div.link ic-typography,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n div.link\n ic-typography,\n.navigation-item-side-nav-slotted-text {\n opacity: var(--navigation-item-label-opacity);\n transition: opacity var(--ic-easing-transition-slow);\n white-space: wrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link,\n:host(.navigation-item-side-nav.navigation-item) ::slotted(a.active) {\n box-shadow: inset 0.313rem 0 0 var(--ic-brand-text-color);\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link::before,\n:host(.navigation-item-side-nav) ::slotted(a.active)::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0 0 0 0.313rem;\n border-radius: 0.688rem !important;\n transition: var(--ic-easing-transition-slow);\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link:focus::before,\n:host(.navigation-item-side-nav) ::slotted(a.active:focus)::before {\n box-shadow: var(--ic-border-focus-inset);\n}\n\n:host(:not(.navigation-item-side-nav-collapsed).navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link {\n opacity: var(--navigation-item-label-opacity);\n height: auto;\n}\n\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n .link,\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n min-width: var(--navigation-group-item-min-width);\n padding: var(--ic-space-xs) !important;\n height: auto;\n gap: 0;\n}\n\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n display: block;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link::after,\n:host(.navigation-item-side-nav) ::slotted(a.active)::after {\n display: none;\n}\n\n:host(.navigation-item-side-nav.navigation-item) .link:focus,\n:host(.navigation-item-side-nav.navigation-item) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background-color: transparent;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link:focus,\n:host(.navigation-item-side-nav) ::slotted(a.active:focus) {\n margin: 0 auto;\n box-shadow: inset 0.313rem 0 0 var(--ic-brand-text-color);\n border-radius: 0;\n}\n\n:host(.navigation-item-page-header).link,\n:host(.navigation-item-page-header) a,\n:host(.navigation-item-page-header) ::slotted(a) {\n height: 2.5rem !important;\n color: var(--ic-color-text-primary) !important;\n transition: all var(--ic-easing-transition-fast) !important;\n box-shadow: rgba(23 89 188 / 0%) !important;\n}\n\n:host(.navigation-item-page-header.navigation-item-selected) .link::after,\n:host(.navigation-item-page-header) ::slotted(a.active)::after {\n content: \" \" !important;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: var(--ic-space-xxs);\n background-color: var(--ic-action-default) !important;\n}\n\n:host(.navigation-item-page-header) .link:hover,\n:host(.navigation-item-page-header) ::slotted(.link:hover),\n:host(.navigation-item-page-header) ::slotted(a:hover),\n:host(.navigation-item-page-header) .link:hover:not(:focus) {\n background-color: var(--ic-action-default-bg-hover) !important;\n cursor: pointer;\n}\n\n:host(.navigation-item-page-header) .link:focus,\n:host(.navigation-item-page-header) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n}\n\n:host(.navigation-item-page-header) .link:active,\n:host(.navigation-item-page-header) ::slotted(a:active) {\n background-color: var(--ic-action-default-bg-pressed) !important;\n}\n\n:host(.navigation-item-page-header.navigation-item-selected) .link:focus::after,\n:host(.navigation-item-page-header) ::slotted(a.active:focus)::after {\n border-bottom-left-radius: var(--ic-border-radius);\n border-bottom-right-radius: var(--ic-border-radius);\n}\n\n:host(.navigation-item-page-header.navigation-item-selected.with-transition)\n .link,\n:host(.navigation-item-page-header.navigation-item-selected.with-transition)\n ::slotted(a.active) {\n transition: all var(--ic-easing-transition-fast),\n border-color var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-page-header) ::slotted(a.active)::before,\n:host(.navigation-item-page-header) ::slotted(a.active:focus)::before,\n:host(.navigation-item-page-header.navigation-item-selected)\n .link:focus::before {\n display: none;\n}\n\n.open-in-new-icon {\n flex: 1;\n}\n\n.open-in-new-icon svg {\n margin-top: var(--ic-space-xxs);\n padding-left: var(--ic-space-xs);\n}\n\n:host(.navigation-item-side-nav) .open-in-new-icon {\n margin-left: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.navigation-item-top-nav) .open-in-new-icon svg,\n:host(.navigation-item-page-header) .open-in-new-icon svg,\n:host(.navigation-item-side-nav) .open-in-new-icon svg {\n height: 0.875rem;\n width: 0.875rem;\n}\n\n:host(.navigation-item-side-menu) .open-in-new-icon svg,\n:host(.navigation-item-top-nav-child) .open-in-new-icon svg {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n}\n\n:host(.navigation-item-page-header) .open-in-new-icon svg,\n:host(.navigation-item-top-nav-child) .open-in-new-icon svg,\n:host(.navigation-item-side-menu) .open-in-new-icon svg {\n fill: var(--ic-color-text-primary);\n}\n\n@media (forced-colors: active) {\n .open-in-new-icon svg {\n fill: currentcolor;\n }\n}\n","import { forceUpdate, h, Host, } from \"@stencil/core\";\nimport { DEVICE_SIZES, getCssProperty, getCurrentDeviceSize, getBrandForegroundAppearance, getNavItemParentDetails, } from \"../../utils/helpers\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\n/**\n * @part link - The `<a>` within ic-navigation-item\n * @slot badge - Badge component overlaying the top right of the icon.\n * @slot icon - Content will be displayed to the left of the label for expanded navigation items, and in replacement of the label for collapsed navigation items.\n */\nexport class NavigationItem {\n constructor() {\n this.isInitialRender = true;\n this.hostMutationObserver = null;\n this.ANIMATION_DURATION = parseInt(getCssProperty(\"--ic-transition-duration-slow\")) || 0;\n this.ARIA_LABEL_STRING = \"aria-label\";\n this.isInSideNav = false;\n this.deviceSize = DEVICE_SIZES.XL;\n this.focusStyle = getBrandForegroundAppearance();\n this.inTopNavSideMenu = false;\n this.isSideNavMobile = false;\n this.isTopNavChild = false;\n this.sideNavExpanded = false;\n this.ariaLabel = \"\";\n /**\n * @internal If `true`, the icon and label will be displayed when side navigation is collapsed.\n */\n this.collapsedIconLabel = false;\n /**\n * @internal If `true`, the navigation item will be displayed within a tooltip.\n */\n this.displayNavigationTooltip = false;\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n this.download = false;\n /**\n * @internal If `true`, the navigation item will be expandable.\n */\n this.expandable = false;\n /**\n * The destination of the navigation item.\n */\n this.href = \"\";\n /**\n * If `true`, the navigation item will be set in a selected state.\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.displayDefaultNavigationItem = (href, label, hreflang, target, rel, referrerpolicy, download) => {\n const variant = this.isTopNavChild || this.inTopNavSideMenu ? \"body\" : \"label\";\n const ChevronIconComponent = this.expandable && (h(\"div\", { class: { svg: true }, innerHTML: chevronIcon }));\n const slottedBadgeEl = this.el.querySelector('[slot=\"badge\"]');\n const BadgeComponent = slottedBadgeEl && (h(\"div\", { class: \"inline-badge\" }, h(\"slot\", { name: \"badge\" })));\n const IconComponent = this.el.querySelector('[slot=\"icon\"]') && (h(\"div\", { class: \"icon\" }, h(\"slot\", { name: \"icon\" }), this.isInSideNav && BadgeComponent));\n return href !== \"\" ? (h(\"a\", { href: href, target: target, rel: rel, hreflang: hreflang, referrerPolicy: referrerpolicy, download: download !== false ? download : null, class: \"link\", ref: (el) => (this.itemEl = el), part: \"link\", \"aria-label\": this.ariaLabel ? this.ariaLabel : null }, IconComponent, h(\"ic-typography\", { variant: variant }, label), target === \"_blank\" && (h(\"span\", { class: \"open-in-new-icon\", innerHTML: OpenInNew })), BadgeComponent, h(\"div\", { class: \"chevron-container\" }, ChevronIconComponent))) : (h(\"div\", { tabindex: \"0\", class: \"link\", ref: (el) => (this.itemEl = el) }, IconComponent, h(\"ic-typography\", { variant: variant }, label), ChevronIconComponent, BadgeComponent));\n };\n this.topNavResizedHandler = ({ detail, }) => {\n var _a;\n const { size } = detail;\n if (size !== this.deviceSize) {\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n (((_a = this.parentEl) === null || _a === void 0 ? void 0 : _a.customMobileBreakpoint) || DEVICE_SIZES.L);\n }\n };\n this.sideNavExpandHandler = ({ detail, }) => {\n const { sideNavExpanded, sideNavMobile } = detail;\n this.sideNavExpanded = sideNavExpanded;\n this.isSideNavMobile = sideNavMobile;\n this.sideNavToggleTooltip(!sideNavExpanded && !sideNavMobile);\n };\n this.handleBlur = ({ relatedTarget }) => {\n if (relatedTarget === null ||\n relatedTarget.tagName !== \"IC-NAVIGATION-ITEM\") {\n this.childBlur.emit();\n }\n };\n this.handleClick = () => this.navItemClicked.emit();\n // triggered when attributes of host element change\n this.hostMutationCallback = (mutationList) => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && attributeName === this.ARIA_LABEL_STRING) {\n this.ariaLabel = attribute;\n forceComponentUpdate = true;\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n this.generateTooltipLabel = () => {\n var _a;\n if (this.label) {\n return this.label;\n }\n if (this.navigationSlot) {\n return this.navigationSlot.textContent || \"\";\n }\n return ((_a = this.el.children[0]) === null || _a === void 0 ? void 0 : _a.textContent) || \"\";\n };\n this.renderNavigationItemContent = () => {\n if (!this.label && !this.navigationSlot)\n return h(\"slot\", null);\n return this.label ? (this.displayDefaultNavigationItem(this.href, this.label, this.hreflang, this.target, this.rel, this.referrerpolicy, this.download)) : (h(\"slot\", { name: \"navigation-item\" }));\n };\n // Displays tooltip only once the collapsing animation is finished\n this.sideNavToggleTooltip = (showTooltip) => {\n var _a;\n const tooltip = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\"ic-tooltip\");\n const collapsedClass = \"tooltip-navigation-item-side-nav-collapsed\";\n let timer;\n if (!tooltip)\n return;\n if (showTooltip) {\n tooltip.displayTooltip(false); // Hides tooltip for when mouse is hovering over icon\n timer = setTimeout(() => {\n tooltip.classList.add(collapsedClass);\n }, this.ANIMATION_DURATION);\n }\n else {\n clearTimeout(timer);\n tooltip.classList.remove(collapsedClass);\n }\n };\n }\n navigationTypeChangeHandler() {\n this.isInSideNav = this.navigationType === \"side\";\n }\n disconnectedCallback() {\n var _a, _b, _c;\n if (this.isInSideNav) {\n (_a = this.parentEl) === null || _a === void 0 ? void 0 : _a.removeEventListener(\"icSideNavExpanded\", this.sideNavExpandHandler);\n }\n else if (this.navigationType === \"top\") {\n (_b = this.parentEl) === null || _b === void 0 ? void 0 : _b.removeEventListener(\"icTopNavResized\", this.topNavResizedHandler);\n }\n (_c = this.hostMutationObserver) === null || _c === void 0 ? void 0 : _c.disconnect();\n }\n componentWillLoad() {\n var _a, _b, _c, _d, _e, _f;\n const { navType, parent } = getNavItemParentDetails(this.el);\n this.navigationType = navType;\n this.isInSideNav = this.navigationType === \"side\";\n this.parentEl = parent;\n this.deviceSize = getCurrentDeviceSize();\n this.sideNavExpanded =\n ((_a = this.parentEl) === null || _a === void 0 ? void 0 : _a.classList.contains(\"sm-expanded\")) ||\n ((_b = this.parentEl) === null || _b === void 0 ? void 0 : _b.classList.contains(\"xs-menu-open\")) ||\n false;\n if (this.isInSideNav) {\n (_c = this.parentEl) === null || _c === void 0 ? void 0 : _c.addEventListener(\"icSideNavExpanded\", this.sideNavExpandHandler);\n }\n else if (this.navigationType === \"top\") {\n (_d = this.parentEl) === null || _d === void 0 ? void 0 : _d.addEventListener(\"icTopNavResized\", this.topNavResizedHandler);\n if (((_e = this.el.parentElement) === null || _e === void 0 ? void 0 : _e.tagName) === \"IC-NAVIGATION-GROUP\")\n this.isTopNavChild = true;\n if (this.deviceSize <=\n this.parentEl.customMobileBreakpoint)\n this.inTopNavSideMenu = true;\n }\n this.navigationSlot = this.el.querySelector('[slot=\"navigation-item\"]');\n if (this.navigationSlot) {\n this.navigationSlot.ariaLabel =\n ((_f = this.navigationSlot.textContent) === null || _f === void 0 ? void 0 : _f.trim()) || null;\n }\n if (this.el.hasAttribute(this.ARIA_LABEL_STRING)) {\n this.ariaLabel = this.el.getAttribute(this.ARIA_LABEL_STRING) || \"\";\n }\n }\n componentDidLoad() {\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n componentDidUpdate() {\n this.isInitialRender = false;\n }\n brandChangeHandler({ detail }) {\n this.focusStyle = detail.mode;\n }\n /**\n * Sets focus on the nav item.\n */\n async setFocus() {\n var _a;\n this.itemEl ? this.itemEl.focus() : (_a = this.el.querySelector(\"a\")) === null || _a === void 0 ? void 0 : _a.focus();\n }\n render() {\n const { inTopNavSideMenu, isTopNavChild, selected, navigationType, focusStyle, isInitialRender, sideNavExpanded, displayNavigationTooltip, collapsedIconLabel, isSideNavMobile, expandable, isInSideNav, theme, } = this;\n const isTopNavChildDesktop = isTopNavChild && !inTopNavSideMenu;\n return (h(Host, { key: '6d3d330011cb09ae9fd95b59f98a9d18ffc25ba0', class: {\n \"navigation-item\": true,\n \"navigation-item-selected\": !isTopNavChild && selected,\n \"navigation-item-top-nav\": !inTopNavSideMenu && navigationType === \"top\",\n \"navigation-item-top-nav-child\": isTopNavChildDesktop,\n \"navigation-item-top-nav-child-selected\": isTopNavChildDesktop && selected,\n \"navigation-item-side-menu\": inTopNavSideMenu,\n \"navigation-item-side-menu-selected\": inTopNavSideMenu && selected,\n \"navigation-item-page-header\": navigationType === \"page-header\",\n \"navigation-item-side-nav\": isInSideNav,\n \"navigation-item-side-nav-collapsed\": (!sideNavExpanded || displayNavigationTooltip) && isInSideNav,\n \"navigation-item-side-nav-collapsed-with-label\": !sideNavExpanded &&\n isInSideNav &&\n collapsedIconLabel &&\n !isSideNavMobile,\n \"with-transition\": !isInitialRender,\n expandable,\n [focusStyle]: isTopNavChild ? isInSideNav : !inTopNavSideMenu,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }, onBlur: isTopNavChildDesktop ? this.handleBlur : null, onClick: this.handleClick, \"aria-current\": selected ? \"page\" : null, role: \"listitem\" }, h(\"ic-tooltip\", { key: 'af3a3de698b102182ff030ffcfb66b419d7ac857', label: this.generateTooltipLabel(), target: \"navigation-item\", placement: \"right\", class: {\n \"tooltip-navigation-item\": true,\n \"tooltip-navigation-item-side-nav-collapsed\": displayNavigationTooltip && isInSideNav,\n \"tooltip-long-label-navigation-item-side-nav-expanded\": this.el.hasAttribute(\"[display-navigation-tooltip = 'true']\"),\n } }, this.renderNavigationItemContent())));\n }\n static get is() { return \"ic-navigation-item\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-navigation-item.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-navigation-item.css\"]\n };\n }\n static get properties() {\n return {\n \"collapsedIconLabel\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, the icon and label will be displayed when side navigation is collapsed.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"collapsed-icon-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"displayNavigationTooltip\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, the navigation item will be displayed within a tooltip.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"display-navigation-tooltip\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"download\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | boolean\",\n \"resolved\": \"boolean | string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the user can save the linked URL instead of navigating to it.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"download\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"expandable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, the navigation item will be expandable.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"expandable\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"href\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The destination of the navigation item.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"href\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"hreflang\": {\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 human language of the linked URL.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"hreflang\",\n \"reflect\": 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 of the navigation item.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"rel\": {\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 relationship of the linked URL as space-separated link types.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"rel\",\n \"reflect\": false\n },\n \"referrerpolicy\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"ReferrerPolicy\",\n \"resolved\": \"\\\"\\\" | \\\"no-referrer\\\" | \\\"no-referrer-when-downgrade\\\" | \\\"origin\\\" | \\\"origin-when-cross-origin\\\" | \\\"same-origin\\\" | \\\"strict-origin\\\" | \\\"strict-origin-when-cross-origin\\\" | \\\"unsafe-url\\\" | undefined\",\n \"references\": {\n \"ReferrerPolicy\": {\n \"location\": \"global\",\n \"id\": \"global::ReferrerPolicy\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"How much of the referrer to send when following the link.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"referrerpolicy\",\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 navigation item will be set in a selected state.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"selected\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"target\": {\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 place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"target\",\n \"reflect\": false\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\"\",\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\": false,\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 };\n }\n static get states() {\n return {\n \"deviceSize\": {},\n \"focusStyle\": {},\n \"inTopNavSideMenu\": {},\n \"isSideNavMobile\": {},\n \"isTopNavChild\": {},\n \"navigationType\": {},\n \"parentEl\": {},\n \"sideNavExpanded\": {},\n \"ariaLabel\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"childBlur\",\n \"name\": \"childBlur\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"- Emitted when item loses focus.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"navItemClicked\",\n \"name\": \"navItemClicked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"- Emitted when navigation item clicked.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\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 nav item.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"navigationType\",\n \"methodName\": \"navigationTypeChangeHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"brandChange\",\n \"method\": \"brandChangeHandler\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-navigation-item.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as e,c as i,h as t,H as r,g as a}from"./p-8e4e97b4.js";import{c as s}from"./p-e081702e.js";import{a as o,i as n,p as c,V as l}from"./p-542ac498.js";const d='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block}:host ::slotted(ic-typography){--ic-typography-color:var(--ic-alert-description)}.container{min-height:var(--ic-alert-min-height);border-radius:var(--ic-space-xxs) var(--ic-space-xxxs) var(--ic-space-xxxs)\n var(--ic-space-xxs);position:relative;display:flex;align-items:center}.container-neutral{background-color:var(--ic-alert-background-neutral);border:var(--ic-space-xxxs) solid var(--ic-alert-border-neutral)}.container-info{background-color:var(--ic-alert-background-info);border:var(--ic-space-xxxs) solid var(--ic-alert-border-info)}.container-warning{background-color:var(--ic-alert-background-warning);border:var(--ic-space-xxxs) solid var(--ic-alert-border-warning)}.container-error{background-color:var(--ic-alert-background-error);border:var(--ic-space-xxxs) solid var(--ic-alert-border-error)}.container-success{background-color:var(--ic-alert-background-success);border:var(--ic-space-xxxs) solid var(--ic-alert-border-success)}.container-ai{background-color:var(--ic-alert-background-ai);border:var(--ic-space-xxxs) solid var(--ic-alert-border-ai)}.divider{height:100%;width:var(--ic-space-xs);border-radius:var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs);position:absolute}.divider-neutral{background-color:var(--ic-alert-status-type-neutral)}.divider-info{background-color:var(--ic-alert-status-type-info)}.divider-warning{background-color:var(--ic-alert-status-type-warning)}.divider-error{background-color:var(--ic-alert-status-type-error)}.divider-success{background-color:var(--ic-alert-status-type-success)}.divider-ai{background-color:var(--ic-alert-status-type-ai)}.alert-icon{align-self:flex-start;margin-top:var(--ic-space-xs);margin-right:var(--ic-space-xs)}.alert-icon>svg{height:var(--ic-space-lg);width:var(--ic-space-lg);display:inline-block}:host([showdefaulticon="false"]) .icon-neutral{visibility:hidden;width:0;margin-left:0.625rem}.icon-neutral>svg,::slotted(svg){height:var(--ic-space-lg);width:var(--ic-space-lg);display:inline-block;fill:var(--ic-alert-icon-neutral)}:host([variant="info"]) .alert-icon svg{fill:var(--ic-alert-icon-info)}:host([variant="warning"]) .alert-icon svg{fill:var(--ic-alert-icon-warning)}:host([variant="error"]) .alert-icon svg{fill:var(--ic-alert-icon-error)}:host([variant="success"]) .alert-icon svg{fill:var(--ic-alert-icon-success)}:host([variant="ai"]) .alert-icon svg{fill:var(--ic-alert-icon-ai)}.alert-content{display:flex;align-items:center;margin-left:1.125rem;width:100%;flex-wrap:wrap}.alert-message{display:flex;align-items:center;padding:var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;flex:1;--ic-typography-color:var(--ic-alert-description)}.alert-message-title-above{display:inline}.alert-title{margin-right:var(--ic-space-xs);margin-top:0;margin-bottom:auto;--ic-typography-color:var(--ic-alert-title)}.alert-title-above{white-space:normal}.alert-action-container{margin-right:var(--ic-space-xs);display:flex;align-items:center}.dismiss-icon{margin-right:var(--ic-space-xxxs);margin-left:-0.375rem;padding:0.375rem;border:none;border-radius:50%;background-color:inherit;display:flex;align-items:center;justify-content:center}.dismiss-icon>svg{color:var(--ic-alert-icon-dismissible)}.dismiss-icon:hover{cursor:pointer}@media (max-width: 628px){.alert-message{display:inline}.alert-title{white-space:normal}.alert-action-container{margin-bottom:var(--ic-space-xs);flex-basis:100%}.alert-icon~.alert-action-container{margin-left:2rem}}@media (forced-colors: active){.container{border:var(--ic-border-hc)}.dismiss-icon>svg{color:var(--ic-architectural-white)}}';const h=d;const u=class{constructor(t){e(this,t);this.icDismiss=i(this,"icDismiss",7);this.hostMutationObserver=null;this.systemThemeObserver=null;this.darkMode=false;this.alertTitleWrap=false;this.visible=true;this.announced=true;this.dismissible=false;this.heading="";this.showDefaultIcon=true;this.theme="inherit";this.titleAbove=false;this.variant="neutral";this.dismissAction=()=>{this.icDismiss.emit()}}themeChangeHandler(){if(this.theme!=="inherit")this.darkMode=this.theme==="dark"}disconnectedCallback(){var e,i;(e=this.hostMutationObserver)===null||e===void 0?void 0:e.disconnect();(i=this.systemThemeObserver)===null||i===void 0?void 0:i.removeEventListener("change",this.darkModeChangeHandler)}componentWillLoad(){if(!this.el.closest("ic-theme")){this.systemThemeObserver=window.matchMedia("(prefers-color-scheme: dark)");this.systemThemeObserver.addEventListener("change",this.darkModeChangeHandler);this.darkMode=this.systemThemeObserver.matches}this.themeChangeHandler()}componentDidLoad(){var e;if(Number((e=this.titleEl)===null||e===void 0?void 0:e.clientHeight)>24)this.alertTitleWrap=true;this.hostMutationObserver=new MutationObserver((e=>o(e,"action",this)));this.hostMutationObserver.observe(this.el,{childList:true});this.calculateMinHeight()}componentDidUpdate(){this.calculateMinHeight()}handleClick(){this.visible=!this.visible}darkModeChangeHandler(e){this.darkMode="detail"in e?e.detail==="dark":e.matches;this.calculateMinHeight()}calculateMinHeight(){var e;const i=Number((e=this.messageEl)===null||e===void 0?void 0:e.clientHeight);const t=c(`${(i>40?i:52)+(this.darkMode?0:4)}`);if(this.el.style.getPropertyValue("--ic-alert-min-height")!==t)this.el.style.setProperty("--ic-alert-min-height",t)}render(){const{variant:e,heading:i,message:a,titleAbove:o,dismissible:c,announced:d,visible:h,showDefaultIcon:u,theme:p,alertTitleWrap:b,dismissAction:m}=this;const g=()=>{const i={"alert-icon":true,"svg-container":true,[`icon-${e}`]:true};if(e==="neutral"){if(n(this.el,"neutral-icon")){return t("div",{class:i},t("slot",{name:"neutral-icon"}))}else if(!u){return t("div",null)}}return t("span",{class:i,innerHTML:l[e].icon})};return h&&t(r,{role:d?"alert":null,class:{[`ic-theme-${p}`]:p!=="inherit"}},t("div",{class:{container:true,[`container-${e}`]:true}},t("div",{class:{divider:true,[`divider-${e}`]:true}}),t("div",{class:"alert-content"},t(g,null),t("div",{class:{"alert-message":true,"alert-message-title-above":o||b},ref:e=>this.messageEl=e},i&&t("ic-typography",{class:{"alert-title":true,"alert-title-above":o||b},variant:"subtitle-large",ref:e=>this.titleEl=e},t("p",null,i)),t("slot",{name:"message"},t("ic-typography",{variant:"body"},a))),n(this.el,"action")&&t("div",{class:"alert-action-container"},t("slot",{name:"action"}))),t("div",{class:"dismiss-icon-container"},c&&t("ic-button",{class:{"svg-container":true,"dismiss-icon":true},innerHTML:s,onClick:m,variant:"icon-tertiary",theme:"dark",title:"Dismiss"}))))}get el(){return a(this)}static get watchers(){return{theme:["themeChangeHandler"]}}};u.style=h;export{u as ic_alert};
2
+ //# sourceMappingURL=p-62ad6ce5.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["icAlertCss","IcAlertStyle0","Alert","constructor","hostRef","this","hostMutationObserver","systemThemeObserver","darkMode","alertTitleWrap","visible","announced","dismissible","heading","showDefaultIcon","theme","titleAbove","variant","dismissAction","icDismiss","emit","themeChangeHandler","disconnectedCallback","_a","_b","disconnect","removeEventListener","darkModeChangeHandler","componentWillLoad","el","closest","window","matchMedia","addEventListener","matches","componentDidLoad","Number","titleEl","clientHeight","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","calculateMinHeight","componentDidUpdate","handleClick","ev","detail","contentHeight","messageEl","minHeight","pxToRem","style","getPropertyValue","setProperty","render","message","Icon","iconClass","isSlotUsed","h","class","name","innerHTML","VARIANT_ICONS","icon","Host","role","container","divider","ref","closeIcon","onClick","title"],"sources":["../web-components/dist/collection/components/ic-alert/ic-alert.css?tag=ic-alert&encapsulation=shadow","../web-components/dist/collection/components/ic-alert/ic-alert.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 display: block;\n}\n\n:host ::slotted(ic-typography) {\n --ic-typography-color: var(--ic-alert-description);\n}\n\n.container {\n min-height: var(--ic-alert-min-height);\n border-radius: var(--ic-space-xxs) var(--ic-space-xxxs) var(--ic-space-xxxs)\n var(--ic-space-xxs);\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.container-neutral {\n background-color: var(--ic-alert-background-neutral);\n border: var(--ic-space-xxxs) solid var(--ic-alert-border-neutral);\n}\n\n.container-info {\n background-color: var(--ic-alert-background-info);\n border: var(--ic-space-xxxs) solid var(--ic-alert-border-info);\n}\n\n.container-warning {\n background-color: var(--ic-alert-background-warning);\n border: var(--ic-space-xxxs) solid var(--ic-alert-border-warning);\n}\n\n.container-error {\n background-color: var(--ic-alert-background-error);\n border: var(--ic-space-xxxs) solid var(--ic-alert-border-error);\n}\n\n.container-success {\n background-color: var(--ic-alert-background-success);\n border: var(--ic-space-xxxs) solid var(--ic-alert-border-success);\n}\n\n.container-ai {\n background-color: var(--ic-alert-background-ai);\n border: var(--ic-space-xxxs) solid var(--ic-alert-border-ai);\n}\n\n.divider {\n height: 100%;\n width: var(--ic-space-xs);\n border-radius: var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs);\n position: absolute;\n}\n\n.divider-neutral {\n background-color: var(--ic-alert-status-type-neutral);\n}\n\n.divider-info {\n background-color: var(--ic-alert-status-type-info);\n}\n\n.divider-warning {\n background-color: var(--ic-alert-status-type-warning);\n}\n\n.divider-error {\n background-color: var(--ic-alert-status-type-error);\n}\n\n.divider-success {\n background-color: var(--ic-alert-status-type-success);\n}\n\n.divider-ai {\n background-color: var(--ic-alert-status-type-ai);\n}\n\n.alert-icon {\n align-self: flex-start;\n margin-top: var(--ic-space-xs);\n margin-right: var(--ic-space-xs);\n}\n\n.alert-icon > svg {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n display: inline-block;\n}\n\n/* required for Gatsby as prop does not seem to work when set to false */\n:host([showdefaulticon=\"false\"]) .icon-neutral {\n visibility: hidden;\n width: 0;\n margin-left: 0.625rem;\n}\n\n.icon-neutral > svg,\n::slotted(svg) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n display: inline-block;\n fill: var(--ic-alert-icon-neutral);\n}\n\n:host([variant=\"info\"]) .alert-icon svg {\n fill: var(--ic-alert-icon-info);\n}\n\n:host([variant=\"warning\"]) .alert-icon svg {\n fill: var(--ic-alert-icon-warning);\n}\n\n:host([variant=\"error\"]) .alert-icon svg {\n fill: var(--ic-alert-icon-error);\n}\n\n:host([variant=\"success\"]) .alert-icon svg {\n fill: var(--ic-alert-icon-success);\n}\n\n:host([variant=\"ai\"]) .alert-icon svg {\n fill: var(--ic-alert-icon-ai);\n}\n\n.alert-content {\n display: flex;\n align-items: center;\n margin-left: 1.125rem;\n width: 100%;\n flex-wrap: wrap;\n}\n\n.alert-message {\n display: flex;\n align-items: center;\n padding: var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;\n flex: 1;\n\n --ic-typography-color: var(--ic-alert-description);\n}\n\n.alert-message-title-above {\n display: inline;\n}\n\n.alert-title {\n margin-right: var(--ic-space-xs);\n margin-top: 0;\n margin-bottom: auto;\n\n --ic-typography-color: var(--ic-alert-title);\n}\n\n.alert-title-above {\n white-space: normal;\n}\n\n.alert-action-container {\n margin-right: var(--ic-space-xs);\n display: flex;\n align-items: center;\n}\n\n.dismiss-icon {\n margin-right: var(--ic-space-xxxs);\n margin-left: -0.375rem;\n padding: 0.375rem;\n border: none;\n border-radius: 50%;\n background-color: inherit;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.dismiss-icon > svg {\n color: var(--ic-alert-icon-dismissible);\n}\n\n.dismiss-icon:hover {\n cursor: pointer;\n}\n\n@media (max-width: 628px) {\n .alert-message {\n display: inline;\n }\n\n .alert-title {\n white-space: normal;\n }\n\n .alert-action-container {\n margin-bottom: var(--ic-space-xs);\n flex-basis: 100%;\n }\n\n .alert-icon ~ .alert-action-container {\n margin-left: 2rem;\n }\n}\n\n@media (forced-colors: active) {\n .container {\n border: var(--ic-border-hc);\n }\n\n .dismiss-icon > svg {\n color: var(--ic-architectural-white);\n }\n}\n","import { Host, h, } from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { isSlotUsed, pxToRem, renderDynamicChildSlots, } from \"../../utils/helpers\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\n/**\n * @slot message - Content is placed to the right of the title.\n * @slot action - Content is placed to the right of the message.\n * @slot neutral-icon - A custom neutral icon is placed to the left of the title. This will override the default icon if used.\n */\nexport class Alert {\n constructor() {\n this.hostMutationObserver = null;\n this.systemThemeObserver = null;\n this.darkMode = false;\n this.alertTitleWrap = false;\n this.visible = true;\n /**\n * If `true`, the alert will have the 'alert' ARIA role and will be announced to screen readers.\n */\n this.announced = true;\n /**\n * If `true`, the alert will have a close icon at the end to dismiss it.\n */\n this.dismissible = false;\n /**\n * The optional title to display at the start of the alert.\n */\n this.heading = \"\";\n /**\n * If `true`, the default icon for the neutral variant will appear on the left of the alert.\n */\n this.showDefaultIcon = true;\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 * If `true`, the title and message will appear above and below instead of inline.\n */\n this.titleAbove = false;\n /**\n * The variant of the alert which will be rendered.\n */\n this.variant = \"neutral\";\n this.dismissAction = () => {\n this.icDismiss.emit();\n };\n }\n themeChangeHandler() {\n if (this.theme !== \"inherit\")\n this.darkMode = this.theme === \"dark\";\n }\n disconnectedCallback() {\n var _a, _b;\n (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n (_b = this.systemThemeObserver) === null || _b === void 0 ? void 0 : _b.removeEventListener(\"change\", this.darkModeChangeHandler);\n }\n componentWillLoad() {\n if (!this.el.closest(\"ic-theme\")) {\n this.systemThemeObserver = window.matchMedia(\"(prefers-color-scheme: dark)\");\n this.systemThemeObserver.addEventListener(\"change\", this.darkModeChangeHandler);\n this.darkMode = this.systemThemeObserver.matches;\n }\n this.themeChangeHandler();\n }\n componentDidLoad() {\n var _a;\n if (Number((_a = this.titleEl) === null || _a === void 0 ? void 0 : _a.clientHeight) > 24)\n this.alertTitleWrap = true;\n this.hostMutationObserver = new MutationObserver((mutationList) => renderDynamicChildSlots(mutationList, \"action\", this));\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n this.calculateMinHeight();\n }\n componentDidUpdate() {\n this.calculateMinHeight();\n }\n handleClick() {\n this.visible = !this.visible;\n }\n darkModeChangeHandler(ev) {\n this.darkMode = \"detail\" in ev ? ev.detail === \"dark\" : ev.matches;\n this.calculateMinHeight();\n }\n calculateMinHeight() {\n var _a;\n const contentHeight = Number((_a = this.messageEl) === null || _a === void 0 ? void 0 : _a.clientHeight);\n const minHeight = pxToRem(`${(contentHeight > 40 ? contentHeight : 52) + (this.darkMode ? 0 : 4)}`);\n if (this.el.style.getPropertyValue(\"--ic-alert-min-height\") !== minHeight)\n this.el.style.setProperty(\"--ic-alert-min-height\", minHeight);\n }\n render() {\n const { variant, heading, message, titleAbove, dismissible, announced, visible, showDefaultIcon, theme, alertTitleWrap, dismissAction, } = this;\n const Icon = () => {\n const iconClass = {\n \"alert-icon\": true,\n \"svg-container\": true,\n [`icon-${variant}`]: true,\n };\n if (variant === \"neutral\") {\n if (isSlotUsed(this.el, \"neutral-icon\")) {\n return (h(\"div\", { class: iconClass }, h(\"slot\", { name: \"neutral-icon\" })));\n }\n else if (!showDefaultIcon) {\n return h(\"div\", null);\n }\n }\n return (h(\"span\", { class: iconClass, innerHTML: VARIANT_ICONS[variant].icon }));\n };\n return (visible && (h(Host, { role: announced ? \"alert\" : null, class: {\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n } }, h(\"div\", { class: { container: true, [`container-${variant}`]: true } }, h(\"div\", { class: { divider: true, [`divider-${variant}`]: true } }), h(\"div\", { class: \"alert-content\" }, h(Icon, null), h(\"div\", { class: {\n \"alert-message\": true,\n \"alert-message-title-above\": titleAbove || alertTitleWrap,\n }, ref: (el) => (this.messageEl = el) }, heading && (h(\"ic-typography\", { class: {\n \"alert-title\": true,\n \"alert-title-above\": titleAbove || alertTitleWrap,\n }, variant: \"subtitle-large\", ref: (el) => (this.titleEl = el) }, h(\"p\", null, heading))), h(\"slot\", { name: \"message\" }, h(\"ic-typography\", { variant: \"body\" }, message))), isSlotUsed(this.el, \"action\") && (h(\"div\", { class: \"alert-action-container\" }, h(\"slot\", { name: \"action\" })))), h(\"div\", { class: \"dismiss-icon-container\" }, dismissible && (h(\"ic-button\", { class: { \"svg-container\": true, \"dismiss-icon\": true }, innerHTML: closeIcon, onClick: dismissAction, variant: \"icon-tertiary\", theme: \"dark\", title: \"Dismiss\" })))))));\n }\n static get is() { return \"ic-alert\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-alert.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-alert.css\"]\n };\n }\n static get properties() {\n return {\n \"announced\": {\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 alert will have the 'alert' ARIA role and will be announced to screen readers.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"announced\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"dismissible\": {\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 alert will have a close icon at the end to dismiss it.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"dismissible\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"heading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The optional title to display at the start of the alert.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"heading\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"message\": {\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 main body message of the alert.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"message\",\n \"reflect\": false\n },\n \"showDefaultIcon\": {\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 default icon for the neutral variant will appear on the left of the alert.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"show-default-icon\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\"\",\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\": false,\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 \"titleAbove\": {\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 title and message will appear above and below instead of inline.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"title-above\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"variant\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcStatusVariants\",\n \"resolved\": \"\\\"ai\\\" | \\\"error\\\" | \\\"info\\\" | \\\"neutral\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"IcStatusVariants\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcStatusVariants\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The variant of the alert which will be rendered.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"variant\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"neutral\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"alertTitleWrap\": {},\n \"visible\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icDismiss\",\n \"name\": \"icDismiss\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Is emitted when the user dismisses the alert.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"theme\",\n \"methodName\": \"themeChangeHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"icDismiss\",\n \"method\": \"handleClick\",\n \"target\": undefined,\n \"capture\": true,\n \"passive\": false\n }, {\n \"name\": \"icThemeChange\",\n \"method\": \"darkModeChangeHandler\",\n \"target\": \"document\",\n \"capture\": true,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-alert.js.map\n"],"mappings":"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","ignoreList":[]}