@ukic/canary-web-components 3.0.0-canary.33 → 3.0.0-canary.34

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 (200) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/helpers-f81fed28.js.map +1 -1
  3. package/dist/cjs/ic-alert.cjs.entry.js +6 -2
  4. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ic-button_3.cjs.entry.js +28 -16
  6. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-checkbox-group.cjs.entry.js +23 -2
  8. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +3 -4
  12. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-menu.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-skeleton.cjs.entry.js +20 -5
  16. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-step.cjs.entry.js +16 -14
  18. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-stepper.cjs.entry.js +24 -4
  20. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-switch.cjs.entry.js +4 -4
  22. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  26. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  28. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-time-input.cjs.entry.js +7 -7
  32. package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-time-selector.cjs.entry.js +50 -170
  34. package/dist/cjs/ic-time-selector.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-toast.cjs.entry.js +5 -5
  38. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-toggle-button_2.cjs.entry.js +4 -4
  40. package/dist/cjs/ic-toggle-button_2.cjs.entry.js.map +1 -1
  41. package/dist/cjs/loader.cjs.js +1 -1
  42. package/dist/collection/components/ic-time-input/ic-time-input.js +8 -8
  43. package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
  44. package/dist/collection/components/ic-time-input/ic-time-input.stories.js +4 -4
  45. package/dist/collection/components/ic-time-input/ic-time-input.stories.js.map +1 -1
  46. package/dist/collection/components/ic-time-selector/ic-time-selector.js +53 -200
  47. package/dist/collection/components/ic-time-selector/ic-time-selector.js.map +1 -1
  48. package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js +50 -24
  49. package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js.map +1 -1
  50. package/dist/collection/utils/types.js.map +1 -1
  51. package/dist/components/helpers2.js.map +1 -1
  52. package/dist/components/ic-alert.js +7 -2
  53. package/dist/components/ic-alert.js.map +1 -1
  54. package/dist/components/ic-button2.js +4 -4
  55. package/dist/components/ic-button2.js.map +1 -1
  56. package/dist/components/ic-checkbox-group.js +24 -2
  57. package/dist/components/ic-checkbox-group.js.map +1 -1
  58. package/dist/components/ic-data-row.js +1 -1
  59. package/dist/components/ic-data-row.js.map +1 -1
  60. package/dist/components/ic-input-validation2.js +4 -5
  61. package/dist/components/ic-input-validation2.js.map +1 -1
  62. package/dist/components/ic-loading-indicator2.js +27 -13
  63. package/dist/components/ic-loading-indicator2.js.map +1 -1
  64. package/dist/components/ic-menu2.js +1 -1
  65. package/dist/components/ic-menu2.js.map +1 -1
  66. package/dist/components/ic-skeleton.js +23 -6
  67. package/dist/components/ic-skeleton.js.map +1 -1
  68. package/dist/components/ic-step.js +17 -15
  69. package/dist/components/ic-step.js.map +1 -1
  70. package/dist/components/ic-stepper.js +24 -4
  71. package/dist/components/ic-stepper.js.map +1 -1
  72. package/dist/components/ic-switch.js +4 -4
  73. package/dist/components/ic-switch.js.map +1 -1
  74. package/dist/components/ic-tab-context.js +1 -1
  75. package/dist/components/ic-tab-context.js.map +1 -1
  76. package/dist/components/ic-tab-group.js +2 -2
  77. package/dist/components/ic-tab-group.js.map +1 -1
  78. package/dist/components/ic-tab-panel.js +2 -2
  79. package/dist/components/ic-tab-panel.js.map +1 -1
  80. package/dist/components/ic-theme.js +1 -1
  81. package/dist/components/ic-theme.js.map +1 -1
  82. package/dist/components/ic-time-input.js +7 -7
  83. package/dist/components/ic-time-input.js.map +1 -1
  84. package/dist/components/ic-time-selector.js +50 -172
  85. package/dist/components/ic-time-selector.js.map +1 -1
  86. package/dist/components/ic-toast-region.js +1 -1
  87. package/dist/components/ic-toast-region.js.map +1 -1
  88. package/dist/components/ic-toast.js +5 -5
  89. package/dist/components/ic-toast.js.map +1 -1
  90. package/dist/components/ic-toggle-button-group2.js +2 -2
  91. package/dist/components/ic-toggle-button-group2.js.map +1 -1
  92. package/dist/components/ic-toggle-button2.js +2 -2
  93. package/dist/components/ic-toggle-button2.js.map +1 -1
  94. package/dist/core/core.esm.js +1 -1
  95. package/dist/core/core.esm.js.map +1 -1
  96. package/dist/core/{p-802a4bd3.entry.js → p-0bca234b.entry.js} +2 -2
  97. package/dist/core/{p-802a4bd3.entry.js.map → p-0bca234b.entry.js.map} +1 -1
  98. package/dist/core/{p-5254a078.entry.js → p-1be17f22.entry.js} +2 -2
  99. package/dist/core/{p-5254a078.entry.js.map → p-1be17f22.entry.js.map} +1 -1
  100. package/dist/core/{p-d528d856.entry.js → p-1dbefb37.entry.js} +2 -2
  101. package/dist/core/p-1dbefb37.entry.js.map +1 -0
  102. package/dist/core/{p-c9525aac.entry.js → p-409d03b2.entry.js} +2 -2
  103. package/dist/core/{p-c9525aac.entry.js.map → p-409d03b2.entry.js.map} +1 -1
  104. package/dist/core/p-492991ad.entry.js +2 -0
  105. package/dist/core/p-492991ad.entry.js.map +1 -0
  106. package/dist/core/p-53dad961.entry.js +2 -0
  107. package/dist/core/p-53dad961.entry.js.map +1 -0
  108. package/dist/core/{p-ad551a0c.entry.js → p-7c4d6b13.entry.js} +2 -2
  109. package/dist/core/p-7c4d6b13.entry.js.map +1 -0
  110. package/dist/core/{p-a88e61b2.entry.js → p-7d878ad7.entry.js} +2 -2
  111. package/dist/core/{p-a88e61b2.entry.js.map → p-7d878ad7.entry.js.map} +1 -1
  112. package/dist/core/p-829b34f9.js.map +1 -1
  113. package/dist/core/p-8d42a6e5.entry.js +2 -0
  114. package/dist/core/{p-a94a7b71.entry.js.map → p-8d42a6e5.entry.js.map} +1 -1
  115. package/dist/core/{p-e2e556ec.entry.js → p-a58cf6fd.entry.js} +2 -2
  116. package/dist/core/p-a58cf6fd.entry.js.map +1 -0
  117. package/dist/core/{p-53740194.entry.js → p-a8310dfd.entry.js} +2 -2
  118. package/dist/core/p-a8310dfd.entry.js.map +1 -0
  119. package/dist/core/{p-c32f043e.entry.js → p-b76fdade.entry.js} +2 -2
  120. package/dist/core/{p-c32f043e.entry.js.map → p-b76fdade.entry.js.map} +1 -1
  121. package/dist/core/{p-04cb17d7.entry.js → p-b9459ba2.entry.js} +2 -2
  122. package/dist/core/{p-04cb17d7.entry.js.map → p-b9459ba2.entry.js.map} +1 -1
  123. package/dist/core/p-bb3db366.entry.js +2 -0
  124. package/dist/core/p-bb3db366.entry.js.map +1 -0
  125. package/dist/core/p-bc6e5d64.entry.js +2 -0
  126. package/dist/core/p-bc6e5d64.entry.js.map +1 -0
  127. package/dist/core/{p-adde6c66.entry.js → p-d376858f.entry.js} +2 -2
  128. package/dist/core/{p-adde6c66.entry.js.map → p-d376858f.entry.js.map} +1 -1
  129. package/dist/core/{p-6323da7a.entry.js → p-dbd9a403.entry.js} +2 -2
  130. package/dist/core/{p-6323da7a.entry.js.map → p-dbd9a403.entry.js.map} +1 -1
  131. package/dist/core/p-df064c8b.entry.js +2 -0
  132. package/dist/core/p-df064c8b.entry.js.map +1 -0
  133. package/dist/core/p-eac60693.entry.js +2 -0
  134. package/dist/core/p-eac60693.entry.js.map +1 -0
  135. package/dist/esm/core.js +1 -1
  136. package/dist/esm/helpers-a08b3f32.js.map +1 -1
  137. package/dist/esm/ic-alert.entry.js +6 -2
  138. package/dist/esm/ic-alert.entry.js.map +1 -1
  139. package/dist/esm/ic-button_3.entry.js +28 -16
  140. package/dist/esm/ic-button_3.entry.js.map +1 -1
  141. package/dist/esm/ic-checkbox-group.entry.js +23 -2
  142. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  143. package/dist/esm/ic-data-row.entry.js +1 -1
  144. package/dist/esm/ic-data-row.entry.js.map +1 -1
  145. package/dist/esm/ic-input-component-container_4.entry.js +3 -4
  146. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  147. package/dist/esm/ic-menu.entry.js +1 -1
  148. package/dist/esm/ic-menu.entry.js.map +1 -1
  149. package/dist/esm/ic-skeleton.entry.js +20 -5
  150. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  151. package/dist/esm/ic-step.entry.js +17 -15
  152. package/dist/esm/ic-step.entry.js.map +1 -1
  153. package/dist/esm/ic-stepper.entry.js +24 -4
  154. package/dist/esm/ic-stepper.entry.js.map +1 -1
  155. package/dist/esm/ic-switch.entry.js +4 -4
  156. package/dist/esm/ic-switch.entry.js.map +1 -1
  157. package/dist/esm/ic-tab-context.entry.js +1 -1
  158. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  159. package/dist/esm/ic-tab-group.entry.js +2 -2
  160. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  161. package/dist/esm/ic-tab-panel.entry.js +2 -2
  162. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  163. package/dist/esm/ic-theme.entry.js +1 -1
  164. package/dist/esm/ic-theme.entry.js.map +1 -1
  165. package/dist/esm/ic-time-input.entry.js +7 -7
  166. package/dist/esm/ic-time-input.entry.js.map +1 -1
  167. package/dist/esm/ic-time-selector.entry.js +50 -170
  168. package/dist/esm/ic-time-selector.entry.js.map +1 -1
  169. package/dist/esm/ic-toast-region.entry.js +1 -1
  170. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  171. package/dist/esm/ic-toast.entry.js +5 -5
  172. package/dist/esm/ic-toast.entry.js.map +1 -1
  173. package/dist/esm/ic-toggle-button_2.entry.js +4 -4
  174. package/dist/esm/ic-toggle-button_2.entry.js.map +1 -1
  175. package/dist/esm/loader.js +1 -1
  176. package/dist/types/components/ic-time-input/ic-time-input.d.ts +1 -1
  177. package/dist/types/components/ic-time-selector/ic-time-selector.d.ts +2 -10
  178. package/dist/types/components/ic-time-selector/ic-time-selector.stories.d.ts +48 -13
  179. package/dist/types/components.d.ts +6 -16
  180. package/dist/types/utils/types.d.ts +1 -2
  181. package/hydrate/index.js +208 -250
  182. package/hydrate/index.mjs +208 -250
  183. package/package.json +3 -3
  184. package/dist/core/p-53740194.entry.js.map +0 -1
  185. package/dist/core/p-71cc5909.entry.js +0 -2
  186. package/dist/core/p-71cc5909.entry.js.map +0 -1
  187. package/dist/core/p-8830011c.entry.js +0 -2
  188. package/dist/core/p-8830011c.entry.js.map +0 -1
  189. package/dist/core/p-939b168a.entry.js +0 -2
  190. package/dist/core/p-939b168a.entry.js.map +0 -1
  191. package/dist/core/p-a94a7b71.entry.js +0 -2
  192. package/dist/core/p-ad551a0c.entry.js.map +0 -1
  193. package/dist/core/p-b434bd7c.entry.js +0 -2
  194. package/dist/core/p-b434bd7c.entry.js.map +0 -1
  195. package/dist/core/p-d528d856.entry.js.map +0 -1
  196. package/dist/core/p-da1c2883.entry.js +0 -2
  197. package/dist/core/p-da1c2883.entry.js.map +0 -1
  198. package/dist/core/p-e2e556ec.entry.js.map +0 -1
  199. package/dist/core/p-eaeb473e.entry.js +0 -2
  200. package/dist/core/p-eaeb473e.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"file":"ic-time-selector.entry.cjs.js","mappings":"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","names":["parseTimeHelper","h","Host"],"sources":["src/components/ic-time-selector/ic-time-selector.css?tag=ic-time-selector&encapsulation=shadow","src/components/ic-time-selector/ic-time-selector.tsx"],"sourcesContent":[":host(.ic-time-selector-small) {\n --time-selector-padded-item-height: var(--ic-space-lg);\n}\n\n:host(.ic-time-selector-medium) {\n --time-selector-padded-item-height: calc(\n var(--ic-space-lg) + var(--ic-space-xxs)\n );\n}\n\n:host(.ic-time-selector-large) {\n --time-selector-padded-item-height: var(--ic-space-xl);\n}\n\n.ic-time-selector-dialog-container {\n background-color: var(--ic-time-picker-time-selector-bg);\n border: var(--ic-space-1px) solid var(--ic-time-picker-time-selector-border);\n border-radius: var(--ic-space-xxs);\n padding: var(--ic-space-xs);\n max-width: calc(\n 3 * var(--ic-space-xxl) + var(--ic-space-xl) + var(--ic-space-xxs)\n );\n width: fit-content;\n}\n\n:host(.ic-time-selector-small) .ic-time-selector-dialog-container {\n padding: var(--ic-space-xxs);\n max-width: calc(\n 3 * var(--ic-space-xxl) + var(--ic-space-lg) + var(--ic-space-xxs)\n );\n}\n\n:host(.ic-time-selector-large) .ic-time-selector-dialog-container {\n padding: var(--ic-space-md);\n max-width: calc(\n 3 * var(--ic-space-xxl) + var(--ic-space-xl) + var(--ic-space-xs) +\n var(--ic-space-xxs)\n );\n}\n\n.ic-time-selector-item {\n height: var(--ic-space-lg);\n padding: var(--ic-space-xxxs);\n text-align: center;\n cursor: pointer;\n scroll-snap-align: start;\n transition: background 0.2s, color 0.2s;\n}\n\n:host(.ic-time-selector-small) .ic-time-selector-item {\n padding: 0;\n}\n\n:host(.ic-time-selector-large) .ic-time-selector-item {\n padding: var(--ic-space-xxs);\n}\n\n.ic-time-selector-item:hover:not(.disabled):not(.selected) {\n background-color: var(--ic-time-picker-time-bg-hover);\n}\n\n.ic-time-selector-item:active:not(.disabled):not(.selected) {\n background-color: var(--ic-time-picker-time-bg-pressed);\n}\n\n.ic-time-selector-item.selected {\n background-color: var(--ic-time-picker-time-bg-selected);\n\n --ic-typography-color: var(--ic-time-picker-time-text-selected);\n\n position: relative;\n}\n\n.ic-time-selector-item.selected:hover {\n background-color: var(--ic-time-picker-time-active-bg-hover);\n}\n\n.ic-time-selector-item.selected:active {\n background-color: var(--ic-time-picker-time-active-bg-pressed);\n}\n\n.ic-time-selector-colon-selected {\n background-color: var(--ic-time-picker-colon-bg-selected);\n color: var(--ic-time-picker-colon-selected) !important;\n}\n\n.ic-time-selector-item.selected::before,\n.ic-time-selector-item.selected::after,\n.ic-time-selector-colon-selected::before,\n.ic-time-selector-colon-selected::after {\n content: \"\";\n position: absolute;\n left: 0;\n right: 0;\n height: var(--ic-space-1px);\n background: var(--ic-time-picker-time-selector-bg);\n}\n\n.ic-time-selector-item.selected::before,\n.ic-time-selector-colon-selected::before {\n top: 0;\n}\n\n.ic-time-selector-item.selected::after,\n.ic-time-selector-colon-selected::after {\n bottom: 0;\n}\n\n.ic-time-selector-item.disabled {\n --ic-typography-color: var(--ic-time-picker-time-text-disabled);\n\n cursor: not-allowed;\n}\n\n.ic-time-selector-column-wrapper {\n display: flex;\n flex-direction: column;\n}\n\n.ic-time-selector-scroll-row {\n height: var(--time-selector-padded-item-height) !important;\n background: transparent !important;\n pointer-events: none;\n user-select: none;\n cursor: default !important;\n box-sizing: border-box;\n}\n\n:host(.ic-time-selector-small) .ic-time-selector-scroll-row-last {\n height: calc(var(--ic-space-1px) + var(--ic-space-xxxs)) !important;\n}\n\n:host(.ic-time-selector-medium) .ic-time-selector-scroll-row-last,\n:host(.ic-time-selector-large) .ic-time-selector-scroll-row-last {\n height: calc(\n var(--ic-space-1px) + var(--ic-space-xxxs) + var(--ic-space-md)\n ) !important;\n}\n\n.ic-time-selector-scroll-row:hover,\n.ic-time-selector-scroll-row:active {\n background: transparent !important;\n}\n\n.ic-time-selector-header-row {\n color: var(--ic-time-picker-hh-label);\n\n --ic-typography-color: var(--ic-time-picker-hh-label) !important;\n\n background: transparent !important;\n text-align: center;\n height: var(--time-selector-padded-item-height);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.ic-time-selector-header-border {\n position: absolute;\n left: 0;\n right: 0;\n top: var(--time-selector-padded-item-height);\n height: var(--ic-space-1px);\n background: var(--ic-time-picker-header-border);\n pointer-events: none;\n}\n\n.ic-time-selector-colon {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--ic-time-picker-colon-default);\n height: var(--time-selector-padded-item-height);\n margin-top: calc(3 * var(--time-selector-padded-item-height));\n}\n\n.ic-time-selector-columns {\n display: flex;\n flex-direction: row;\n border-bottom: var(--ic-space-1px) solid var(--ic-time-picker-lower-border);\n margin: 0 var(--ic-space-xxs);\n position: relative;\n z-index: 1;\n}\n\n.ic-time-selector-highlight-lines {\n position: relative;\n width: 100%;\n}\n\n.ic-time-selector-highlight {\n position: absolute;\n left: 0;\n right: 0;\n width: 100%;\n height: var(--ic-space-1px);\n background: var(--ic-time-picker-selection-border);\n pointer-events: none;\n z-index: 1;\n}\n\n.ic-time-selector-highlight-top {\n top: calc(3 * var(--time-selector-padded-item-height) - var(--ic-space-1px));\n}\n\n.ic-time-selector-highlight-bottom {\n top: calc(4 * var(--time-selector-padded-item-height));\n}\n\n.ic-time-selector-column {\n height: calc((5 * var(--ic-space-xxl)) + (3 * var(--ic-space-1px)));\n overflow-y: auto;\n width: calc(var(--ic-space-xl) + var(--ic-space-xs));\n position: relative;\n scroll-snap-type: y mandatory;\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n:host(.ic-time-selector-small) .ic-time-selector-column {\n width: calc(var(--ic-space-xl) + var(--ic-space-xxs) + var(--ic-space-xxxs));\n}\n\n:host(.ic-time-selector-large) .ic-time-selector-column {\n width: calc(var(--ic-space-xl) + var(--ic-space-xs) + var(--ic-space-xxxs));\n}\n\n.ic-time-selector-column-period {\n margin-left: var(--ic-space-xxs);\n}\n\n.ic-time-selector-column::-webkit-scrollbar {\n display: none;\n}\n\n.ic-time-selector-column:focus-visible,\n.ic-time-selector-item:focus-visible {\n outline: none;\n background-color: transparent;\n}\n\n.ic-time-selector-column:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-fast);\n z-index: 3;\n}\n\n.ic-time-selector-list {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.ic-time-selector-actions {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n width: 100%;\n margin-top: var(--ic-space-xs);\n margin-left: auto;\n}\n\n.ic-time-selector-check-btn {\n margin-left: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n@media (forced-colors: active) {\n .ic-time-selector-item.selected {\n background-color: highlight !important;\n }\n\n .ic-time-selector-item.disabled {\n --ic-typography-color: GrayText !important;\n }\n\n .ic-time-selector-column:focus {\n border: var(--ic-border-hc);\n }\n\n .ic-time-selector-highlight {\n background: Highlight !important;\n }\n}\n","import {\n Component,\n h,\n Element,\n State,\n Prop,\n Event,\n EventEmitter,\n Host,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcDisableTimeSelection,\n IcSizes,\n IcThemeMode,\n IcTimeFormatSelector,\n} from \"../../utils/types\";\nimport { parseTimeHelper } from \"../../utils/helpers\";\nimport Check from \"../../assets/check-icon.svg\";\nimport Clear from \"../../assets/close-icon.svg\";\nimport { IcTimePeriods } from \"./ic-time-selector.types\";\n\nconst COLUMN_TYPES = [\"hour\", \"minute\", \"second\", \"period\"] as const;\nconst COLUMN_CLASS = \".ic-time-selector-column\";\nconst ITEM_CLASS = \".ic-time-selector-item\";\ntype ColumnType = typeof COLUMN_TYPES[number];\n\n@Component({\n tag: \"ic-time-selector\",\n styleUrl: \"ic-time-selector.css\",\n shadow: true,\n})\nexport class TimeSelector {\n private DEFAULT_TIME_FORMAT: IcTimeFormatSelector = \"HH:MM:SS\";\n private minutes: number[] = Array.from({ length: 60 }, (_, i) => i);\n private seconds: number[] = Array.from({ length: 60 }, (_, i) => i);\n private periods: IcTimePeriods[] = [\"AM\", \"PM\"];\n private minTime: Date | null = null;\n private maxTime: Date | null = null;\n private lastAnnouncedType?: ColumnType;\n private lastAnnouncedValue?: number | IcTimePeriods | null;\n\n @Element() el: HTMLIcTimeSelectorElement;\n\n @State() selectedHour?: number;\n @State() selectedMinute?: number;\n @State() selectedSecond?: number;\n @State() selectedPeriod?: IcTimePeriods;\n @State() ariaLiveMessage: string = \"\";\n\n /**\n * An array of times that will be disabled in the time selector. The times can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() disableTimes: IcDisableTimeSelection[] = [];\n\n /**\n * The earliest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() min: string | Date = \"\";\n @Watch(\"min\")\n watchMinHandler(): void {\n this.minTime = parseTimeHelper(this.min).date;\n }\n\n /**\n * The latest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() max: string | Date = \"\";\n @Watch(\"max\")\n watchMaxHandler(): void {\n this.maxTime = parseTimeHelper(this.max).date;\n }\n\n /**\n * The size of the time selector to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\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 @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The format in which the time will be displayed.\n */\n @Prop() timeFormat: IcTimeFormatSelector = this.DEFAULT_TIME_FORMAT;\n\n /**\n * The time period format: \"12\" for 12-hour, \"24\" for 24-hour. Defaults to \"24\".\n */\n @Prop() timePeriod: \"12\" | \"24\" = \"24\";\n\n /**\n * The value of the time selector. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop({ mutable: true }) value?: string | Date | null | undefined = \"\";\n @Watch(\"value\")\n watchValueHandler(): void {\n this.setTime(this.value);\n setTimeout(() => {\n this.scrollSelectedItem(\"hour\");\n this.scrollSelectedItem(\"minute\");\n if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n this.scrollSelectedItem(\"second\");\n }\n if (this.timePeriod === \"12\") {\n this.scrollSelectedItem(\"period\");\n }\n }, 0);\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{\n value: Date | null;\n timeString: string | null;\n timeObject: {\n hour: string | null;\n minute: string | null;\n second: string | null;\n period?: IcTimePeriods;\n };\n }>;\n\n componentWillLoad() {\n this.setTime(this.value);\n }\n\n componentDidLoad() {\n setTimeout(() => {\n if (this.selectedHour !== undefined && this.selectedHour !== null) {\n this.scrollSelectedItem(\"hour\");\n } else if (this.min) {\n this.scrollMinTime(\"hour\");\n }\n if (this.selectedMinute !== undefined && this.selectedMinute !== null) {\n this.scrollSelectedItem(\"minute\");\n } else if (this.min) {\n this.scrollMinTime(\"minute\");\n }\n if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n if (this.selectedSecond !== undefined && this.selectedSecond !== null) {\n this.scrollSelectedItem(\"second\");\n } else if (this.min) {\n this.scrollMinTime(\"second\");\n }\n }\n if (this.timePeriod === \"12\") {\n if (this.selectedPeriod !== undefined && this.selectedPeriod !== null) {\n this.scrollSelectedItem(\"period\");\n } else if (this.min) {\n this.scrollMinTime(\"period\");\n }\n }\n this.updateAriaLiveMessage();\n }, 0);\n }\n\n private getHeaderLabel(type: ColumnType): string {\n switch (type) {\n case \"hour\":\n return \"HH\";\n case \"minute\":\n return \"MM\";\n case \"second\":\n return \"SS\";\n default:\n return \"\";\n }\n }\n\n private setTimeParts = (hour: number, minute: number, second: number) => {\n let period: IcTimePeriods = \"AM\";\n if (this.timePeriod === \"12\") {\n if (hour === 0) {\n hour = 12;\n period = \"AM\";\n } else if (hour === 12) {\n period = \"PM\";\n } else if (hour > 12) {\n hour = hour - 12;\n period = \"PM\";\n } else {\n period = \"AM\";\n }\n this.selectedHour = hour;\n this.selectedPeriod = period;\n } else {\n this.selectedHour = hour;\n }\n this.selectedMinute = minute;\n this.selectedSecond = second;\n };\n\n private setTime(time?: string | Date | null) {\n if (time === null || time === undefined || time === \"\") {\n this.handleClear();\n return;\n }\n\n if (typeof time === \"string\") {\n const zuluMatch = time.match(\n /^([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\\.[0-9]{1,3})?Z?$/\n );\n if (zuluMatch) {\n this.setTimeParts(\n Number(zuluMatch[1]),\n Number(zuluMatch[2]),\n Number(zuluMatch[3])\n );\n } else {\n const parts = time.split(\":\");\n this.setTimeParts(\n Number(parts[0]) || 0,\n Number(parts[1]) || 0,\n Number(parts[2]) || 0\n );\n }\n } else {\n const { parts } = parseTimeHelper(time);\n if (parts) {\n this.setTimeParts(parts.hour, parts.minute, parts.second);\n }\n }\n }\n\n private renderScrollRows(count: number, keyPrefix = \"scroll-row\") {\n return Array.from({ length: count }).map((_, i) => {\n const isLast = keyPrefix.endsWith(\"bottom-spacer\")\n ? i === count - 1\n : false;\n return (\n <li\n class={{\n \"ic-time-selector-item\": true,\n \"ic-time-selector-scroll-row\": true,\n ...(isLast ? { \"ic-time-selector-scroll-row-last\": true } : {}),\n }}\n aria-hidden=\"true\"\n tabIndex={-1}\n key={`${keyPrefix}-${i}`}\n />\n );\n });\n }\n\n private scrollSelectedItem(colClass: ColumnType, clear?: boolean) {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n let colIdx = COLUMN_TYPES.indexOf(colClass);\n if (colClass === \"period\" && columns?.length) {\n colIdx = columns.length - 1;\n }\n const col = columns?.[colIdx];\n if (col) {\n const items = col.querySelectorAll(ITEM_CLASS);\n let selectedIdx = -1;\n items.forEach((item, idx) => {\n if (item.classList.contains(\"selected\")) selectedIdx = idx;\n });\n if (clear) {\n selectedIdx = 0;\n }\n if (selectedIdx > -1) {\n const scrollRow = col.querySelector(\n \".ic-time-selector-scroll-row\"\n ) as HTMLElement;\n let resolvedHeight = 0;\n if (scrollRow) {\n resolvedHeight = parseFloat(getComputedStyle(scrollRow).height);\n }\n const offset = resolvedHeight * 2;\n const scrollTop =\n (items[selectedIdx] as HTMLElement).offsetTop - offset;\n const prefersReducedMotion = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n ).matches;\n col.scrollTo({\n top: scrollTop,\n behavior: prefersReducedMotion ? \"instant\" : \"smooth\",\n });\n if (clear) {\n setTimeout(() => {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n if (columns && columns.length > 0) {\n this.checkIfScrollIsFinished(columns[0], scrollTop);\n }\n }, 300);\n }\n }\n }\n }\n\n private checkIfScrollIsFinished = (\n column: { scrollTop: number },\n scrollTop: number\n ) => {\n const isScrollFinished = setInterval(() => {\n if (column.scrollTop === scrollTop + 56) {\n (column as HTMLElement)?.focus();\n clearInterval(isScrollFinished);\n }\n }, 25);\n };\n\n private scrollMinTime(colClass: ColumnType) {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const colIdx = COLUMN_TYPES.indexOf(colClass);\n const col = columns?.[colIdx];\n if (!col) return;\n const items = col.querySelectorAll(ITEM_CLASS);\n let minHour = 0,\n minMinute = 0,\n minSecond = 0;\n if (this.minTime) {\n minHour = this.minTime.getHours() + 2;\n minMinute = this.minTime.getMinutes() + 2;\n minSecond = this.minTime.getSeconds();\n } else if (this.min) {\n const minDate = parseTimeHelper(this.min).date;\n if (minDate) {\n minHour = minDate.getHours();\n minMinute = minDate.getMinutes();\n minSecond = minDate.getSeconds();\n }\n }\n let targetIdx = -1;\n const values = this.getColumnValues(colClass);\n if (colClass === \"hour\") {\n targetIdx = values.findIndex((v) => v === minHour);\n } else if (colClass === \"minute\") {\n targetIdx = values.findIndex((v) => v === minMinute);\n } else if (colClass === \"second\") {\n targetIdx = values.findIndex((v) => v === minSecond);\n } else if (colClass === \"period\") {\n let period: IcTimePeriods = \"AM\";\n if (this.timePeriod === \"12\") {\n if (minHour === 0) {\n period = \"AM\";\n } else if (minHour === 12) {\n period = \"PM\";\n } else if (minHour > 12) {\n period = \"PM\";\n } else {\n period = \"AM\";\n }\n }\n targetIdx = values.findIndex((v) => v === period);\n }\n if (targetIdx > -1) {\n const scrollRow = col.querySelector(\n \".ic-time-selector-scroll-row\"\n ) as HTMLElement;\n let resolvedHeight = 0;\n if (scrollRow) {\n resolvedHeight = parseFloat(getComputedStyle(scrollRow).height);\n }\n const offset = resolvedHeight * 2;\n const scrollTop = (items[targetIdx] as HTMLElement).offsetTop - offset;\n const prefersReducedMotion = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n ).matches;\n col.scrollTo({\n top: scrollTop,\n behavior: prefersReducedMotion ? \"instant\" : \"smooth\",\n });\n }\n }\n\n private handleSelect = (type: ColumnType, value: number | IcTimePeriods) => {\n const prevValue = this.getSelectedValue(type);\n switch (type) {\n case \"hour\":\n this.selectedHour = Number(value);\n break;\n case \"minute\":\n this.selectedMinute = Number(value);\n break;\n case \"second\":\n this.selectedSecond = Number(value);\n break;\n case \"period\":\n this.selectedPeriod = value as IcTimePeriods;\n break;\n }\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const idx = COLUMN_TYPES.indexOf(type);\n if (columns && columns[idx]) {\n (columns[idx] as HTMLElement).focus();\n window.requestAnimationFrame(() => {\n this.scrollSelectedItem(type);\n });\n }\n if (prevValue === undefined || prevValue === null) {\n this.announceSelectedColumn(type);\n } else {\n this.lastAnnouncedType = type;\n this.lastAnnouncedValue = this.getSelectedValue(type);\n }\n };\n\n private isTimeDisabled = (\n hour: number,\n minute: number,\n second: number,\n type?: ColumnType\n ): boolean => {\n for (const t of this.disableTimes) {\n if (typeof t === \"string\" || t instanceof Date) {\n const parts = parseTimeHelper(t).parts;\n if (\n parts &&\n parts.hour === hour &&\n parts.minute === minute &&\n parts.second === second\n ) {\n return true;\n }\n } else if (t && typeof t === \"object\" && \"start\" in t && \"end\" in t) {\n const startParts = parseTimeHelper(t.start).parts;\n const endParts = parseTimeHelper(t.end).parts;\n if (startParts && endParts) {\n const timeVal = hour * 3600 + minute * 60 + second;\n const startVal =\n startParts.hour * 3600 + startParts.minute * 60 + startParts.second;\n const endVal =\n endParts.hour * 3600 + endParts.minute * 60 + endParts.second;\n if (timeVal >= startVal && timeVal <= endVal) {\n return true;\n }\n }\n }\n }\n if (this.min) {\n this.minTime = parseTimeHelper(this.min).date;\n if (this.minTime) {\n const minHour = this.minTime.getHours();\n const minMinute = this.minTime.getMinutes();\n const minSecond = this.minTime.getSeconds();\n if (type === \"hour\") {\n const highlightedMinute = this.selectedMinute ?? minMinute;\n const highlightedSecond = this.selectedSecond ?? minSecond;\n if (\n hour < minHour ||\n (hour === minHour && highlightedMinute < minMinute) ||\n (hour === minHour &&\n highlightedMinute === minMinute &&\n highlightedSecond < minSecond)\n ) {\n return true;\n }\n } else if (type === \"minute\") {\n if (hour === minHour && minute < minMinute) {\n return true;\n }\n } else if (type === \"second\") {\n if (hour === minHour && minute === minMinute && second < minSecond) {\n return true;\n }\n } else {\n if (\n hour < minHour ||\n (hour === minHour && minute < minMinute) ||\n (hour === minHour && minute === minMinute && second < minSecond)\n ) {\n return true;\n }\n }\n }\n }\n if (this.max) {\n this.maxTime = parseTimeHelper(this.max).date;\n if (this.maxTime) {\n const maxHour = this.maxTime.getHours();\n const maxMinute = this.maxTime.getMinutes();\n const maxSecond = this.maxTime.getSeconds();\n if (type === \"hour\") {\n const selectedMinute = this.selectedMinute ?? 59;\n const selectedSecond = this.selectedSecond ?? 59;\n if (\n hour > maxHour ||\n (hour === maxHour && selectedMinute > maxMinute) ||\n (hour === maxHour &&\n selectedMinute === maxMinute &&\n selectedSecond > maxSecond)\n ) {\n return true;\n }\n } else if (type === \"minute\") {\n if (hour === maxHour && minute > maxMinute) {\n return true;\n }\n } else if (type === \"second\") {\n if (hour === maxHour && minute === maxMinute && second > maxSecond) {\n return true;\n }\n } else {\n if (\n hour > maxHour ||\n (hour === maxHour && minute > maxMinute) ||\n (hour === maxHour && minute === maxMinute && second > maxSecond)\n ) {\n return true;\n }\n }\n }\n }\n return false;\n };\n\n private announceSelectedColumn(type: ColumnType) {\n const value = this.getSelectedValue(type);\n if (\n value !== null &&\n value !== undefined &&\n (type !== this.lastAnnouncedType || value !== this.lastAnnouncedValue)\n ) {\n this.ariaLiveMessage = `Selected ${type}: ${value}`;\n } else {\n this.ariaLiveMessage = \"\";\n }\n this.lastAnnouncedType = type;\n this.lastAnnouncedValue = value;\n }\n\n private getColumnValues(type: ColumnType): number[] | IcTimePeriods[] {\n if (type === \"hour\")\n return this.timePeriod === \"12\"\n ? Array.from({ length: 12 }, (_, i) => i + 1)\n : Array.from({ length: 24 }, (_, i) => i);\n if (type === \"minute\") return this.minutes;\n if (type === \"second\") return this.seconds;\n if (type === \"period\") return this.periods;\n return [];\n }\n\n private getSelectedValue(type: ColumnType): number | IcTimePeriods | null {\n if (type === \"hour\") return this.selectedHour ?? null;\n if (type === \"minute\") return this.selectedMinute ?? null;\n if (type === \"second\") return this.selectedSecond ?? null;\n if (type === \"period\") return this.selectedPeriod ?? null;\n return null;\n }\n\n private getHighlightedValue(\n type: ColumnType,\n col: HTMLElement\n ): number | IcTimePeriods | null {\n const items = Array.from(col.querySelectorAll(ITEM_CLASS));\n const realItems = items.filter(\n (item) => !item.classList.contains(\"ic-time-selector-scroll-row\")\n );\n if (realItems.length === 0) return null;\n const highlightTop = this.el.shadowRoot?.querySelector(\n \".ic-time-selector-highlight-top\"\n ) as HTMLElement;\n const highlightBottom = this.el.shadowRoot?.querySelector(\n \".ic-time-selector-highlight-bottom\"\n ) as HTMLElement;\n if (!highlightTop || !highlightBottom) return null;\n const topRect = highlightTop.getBoundingClientRect();\n const bottomRect = highlightBottom.getBoundingClientRect();\n const highlightStart = topRect.bottom;\n const highlightEnd = bottomRect.top;\n for (const item of realItems) {\n const itemRect = item.getBoundingClientRect();\n const itemCenter = itemRect.top + itemRect.height / 2;\n if (itemCenter >= highlightStart && itemCenter <= highlightEnd) {\n const key = item.getAttribute(\"key\");\n if (key) {\n const valStr = key.replace(`${type}-val-`, \"\");\n if (type === \"hour\" || type === \"minute\" || type === \"second\") {\n return Number(valStr);\n } else {\n return valStr as IcTimePeriods;\n }\n }\n const text = item.textContent?.trim();\n if (type === \"hour\" || type === \"minute\" || type === \"second\") {\n return text ? Number(text) : null;\n } else {\n return text as IcTimePeriods;\n }\n }\n }\n return null;\n }\n\n private handleColumnKeyDown = (type: ColumnType, event: KeyboardEvent) => {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const idx = COLUMN_TYPES.indexOf(type);\n if (!columns) return;\n\n const values = this.getColumnValues(type);\n const selected = this.getSelectedValue(type);\n const col = columns[idx] as HTMLElement;\n if (!col) return;\n\n const selectHighlighted = () => {\n const highlighted = this.getHighlightedValue(type, col);\n if (highlighted !== null) {\n this.handleSelect(type, highlighted);\n } else if (values.length > 0) {\n this.handleSelect(type, values[0]);\n }\n };\n\n switch (event.key) {\n case \"Enter\":\n case \" \":\n event.preventDefault();\n selectHighlighted();\n return;\n case \"ArrowRight\":\n event.preventDefault();\n selectHighlighted();\n if (idx < columns.length - 1) {\n (columns[idx + 1] as HTMLElement)?.focus();\n }\n return;\n case \"ArrowLeft\":\n event.preventDefault();\n if (idx > 0) (columns[idx - 1] as HTMLElement)?.focus();\n return;\n case \"Tab\":\n if (event.shiftKey) {\n if (idx === 0) {\n return;\n } else {\n event.preventDefault();\n (columns[idx - 1] as HTMLElement)?.focus();\n }\n } else {\n event.preventDefault();\n selectHighlighted();\n this.announceSelectedColumn(type);\n if (idx < columns.length - 1) {\n (columns[idx + 1] as HTMLElement)?.focus();\n } else {\n (\n this.el.shadowRoot?.querySelector(\n \".ic-time-selector-clear-btn\"\n ) as HTMLElement\n )?.focus();\n this.updateAriaLiveMessage();\n }\n }\n return;\n case \"ArrowUp\":\n case \"ArrowDown\": {\n let idxInValues = values.findIndex((v) => v === selected);\n if (idxInValues === -1) idxInValues = 0;\n let newIdx = idxInValues;\n const direction = event.key === \"ArrowUp\" ? -1 : 1;\n const maxIdx = values.length - 1;\n do {\n newIdx += direction;\n } while (\n newIdx >= 0 &&\n newIdx <= maxIdx &&\n (() => {\n if (type === \"hour\" || type === \"minute\" || type === \"second\") {\n const hour =\n type === \"hour\"\n ? (values[newIdx] as number)\n : this.selectedHour ?? 0;\n const minute =\n type === \"minute\"\n ? (values[newIdx] as number)\n : this.selectedMinute ?? 0;\n const second =\n type === \"second\"\n ? (values[newIdx] as number)\n : this.selectedSecond ?? 0;\n return this.isTimeDisabled(hour, minute, second);\n }\n return false;\n })()\n );\n this.ariaLiveMessage = `Selected ${type}: ${values[newIdx]}`;\n if (newIdx >= 0 && newIdx <= maxIdx && newIdx !== idxInValues) {\n this.handleSelect(type, values[newIdx]);\n }\n return;\n }\n default:\n return;\n }\n };\n\n private updateAriaLiveMessage() {\n const hourStr =\n this.selectedHour != null\n ? this.selectedHour.toString().padStart(2, \"0\")\n : null;\n const minuteStr =\n this.selectedMinute != null\n ? this.selectedMinute.toString().padStart(2, \"0\")\n : null;\n const secondStr =\n this.selectedSecond != null\n ? this.selectedSecond.toString().padStart(2, \"0\")\n : null;\n let timeString = \"\";\n let allSelected = false;\n if (this.timeFormat === \"HH:MM\") {\n allSelected = hourStr !== null && minuteStr !== null;\n if (allSelected) {\n timeString =\n hourStr +\n \":\" +\n minuteStr +\n (this.selectedPeriod ? \" \" + this.selectedPeriod : \"\");\n }\n } else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n allSelected =\n hourStr !== null && minuteStr !== null && secondStr !== null;\n if (allSelected) {\n timeString =\n hourStr +\n \":\" +\n minuteStr +\n \":\" +\n secondStr +\n (this.selectedPeriod ? \" \" + this.selectedPeriod : \"\");\n }\n }\n this.ariaLiveMessage =\n allSelected && timeString ? `Selected time: ${timeString}` : \"\";\n }\n\n private renderColumn = (\n type: ColumnType,\n values: number[] | IcTimePeriods[],\n selected: number | IcTimePeriods | null\n ) => {\n const isTimeColumn =\n type === \"hour\" || type === \"minute\" || type === \"second\";\n const isPeriodColumn = type === \"period\";\n const headerLabel = this.getHeaderLabel(type);\n const topSpacerCount = 2;\n let bottomSpacerCount = 6;\n if (this.size === \"large\") {\n bottomSpacerCount = 5;\n } else if (this.size === \"small\") {\n bottomSpacerCount = 8;\n }\n return (\n <div class=\"ic-time-selector-column-wrapper\">\n {isPeriodColumn ? (\n <div class=\"ic-time-selector-header-row\" />\n ) : (\n headerLabel && (\n <div class=\"ic-time-selector-header-row\">\n <ic-typography variant=\"subtitle-small\">\n {headerLabel}\n </ic-typography>\n </div>\n )\n )}\n <div\n class={{\n \"ic-time-selector-column\": true,\n \"ic-time-selector-column-period\": isPeriodColumn,\n }}\n tabIndex={0}\n onKeyDown={(e) => this.handleColumnKeyDown(type, e as KeyboardEvent)}\n >\n <ul class=\"ic-time-selector-list\" role=\"listbox\" aria-label={type}>\n {this.renderScrollRows(topSpacerCount, `${type}-top-spacer`)}\n {values.map((val) => {\n let disabled = false;\n if (isTimeColumn) {\n const hour =\n type === \"hour\" ? (val as number) : this.selectedHour ?? 0;\n const minute =\n type === \"minute\"\n ? (val as number)\n : this.selectedMinute ?? 0;\n const second =\n type === \"second\"\n ? (val as number)\n : this.selectedSecond ?? 0;\n disabled = this.isTimeDisabled(hour, minute, second, type);\n }\n return (\n <li\n class={{\n \"ic-time-selector-item\": true,\n selected: val === selected,\n disabled,\n }}\n role=\"option\"\n aria-selected={val === selected ? \"true\" : \"false\"}\n aria-disabled={disabled ? \"true\" : \"false\"}\n onClick={() =>\n !disabled && this.handleSelect(type, val as any)\n }\n tabIndex={-1}\n key={`${type}-val-${val}`}\n >\n <ic-typography variant=\"subtitle-small\">\n {typeof val === \"number\"\n ? val.toString().padStart(2, \"0\")\n : val}\n </ic-typography>\n </li>\n );\n })}\n {(isTimeColumn || isPeriodColumn) &&\n this.renderScrollRows(bottomSpacerCount, `${type}-bottom-spacer`)}\n </ul>\n </div>\n </div>\n );\n };\n\n private handleClear = () => {\n this.selectedHour = undefined;\n this.scrollSelectedItem(\"hour\", true);\n this.selectedMinute = undefined;\n this.scrollSelectedItem(\"minute\", true);\n this.selectedSecond = undefined;\n this.scrollSelectedItem(\"second\", true);\n this.selectedPeriod = undefined;\n this.scrollSelectedItem(\"period\", true);\n this.lastAnnouncedType = undefined;\n this.lastAnnouncedValue = undefined;\n this.icChange.emit({\n value: null,\n timeString: null,\n timeObject: {\n hour: null,\n minute: null,\n second: null,\n period: undefined,\n },\n });\n };\n\n private handleConfirmClick = () => {\n const hour = this.selectedHour != null ? this.selectedHour : null;\n const minute = this.selectedMinute != null ? this.selectedMinute : null;\n const second = this.selectedSecond != null ? this.selectedSecond : null;\n const period = this.selectedPeriod;\n\n const hourStr = hour != null ? hour.toString().padStart(2, \"0\") : null;\n const minuteStr =\n minute != null ? minute.toString().padStart(2, \"0\") : null;\n const secondStr =\n second != null ? second.toString().padStart(2, \"0\") : null;\n\n let allSelected = false;\n if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n allSelected = hour !== null && minute !== null && second !== null;\n } else {\n allSelected = hour !== null && minute !== null;\n }\n\n let value: Date | null = null;\n let timeString: string | null = null;\n if (allSelected) {\n let date24hours = hour;\n if (hour != null && period && this.timePeriod === \"12\") {\n if (period === \"PM\" && hour < 12) date24hours = hour + 12;\n if (period === \"AM\" && hour === 12) date24hours = 0;\n }\n value = new Date();\n value.setHours(date24hours ?? 0);\n value.setMinutes(minute ?? 0);\n value.setSeconds(second ?? 0);\n value.setMilliseconds(0);\n if (this.timeFormat === \"HH:MM\") {\n timeString = hourStr + \":\" + minuteStr + (period ? \" \" + period : \"\");\n } else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n timeString =\n hourStr +\n \":\" +\n minuteStr +\n \":\" +\n secondStr +\n (period ? \" \" + period : \"\");\n }\n this.value = value;\n }\n\n this.icChange.emit({\n value: allSelected ? value : null,\n timeString: allSelected ? timeString : null,\n timeObject: {\n hour: hourStr,\n minute: minuteStr,\n second: secondStr,\n ...(period ? { period } : {}),\n },\n });\n };\n\n render() {\n const hours =\n this.timePeriod === \"12\"\n ? Array.from({ length: 12 }, (_, i) => i + 1)\n : Array.from({ length: 24 }, (_, i) => i);\n const timeFormat = this.timeFormat || this.DEFAULT_TIME_FORMAT;\n const columns = [\n this.renderColumn(\"hour\", hours, this.selectedHour ?? null),\n this.renderColumn(\"minute\", this.minutes, this.selectedMinute ?? null),\n ];\n if (timeFormat === this.DEFAULT_TIME_FORMAT) {\n columns.push(\n this.renderColumn(\"second\", this.seconds, this.selectedSecond ?? null)\n );\n }\n\n let colonSelectedStates: boolean[] = [];\n if (timeFormat === this.DEFAULT_TIME_FORMAT) {\n colonSelectedStates = [\n this.selectedHour !== undefined && this.selectedMinute !== undefined,\n this.selectedMinute !== undefined && this.selectedSecond !== undefined,\n ];\n } else {\n colonSelectedStates = [\n this.selectedHour !== undefined && this.selectedMinute !== undefined,\n ];\n }\n\n const isInPicker = this.el.closest(\"ic-time-picker\") !== null;\n\n const { size, theme, timePeriod } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-time-selector-${size}`]: true,\n }}\n >\n <div\n role={isInPicker ? \"dialog\" : undefined}\n aria-modal={isInPicker ? true : undefined}\n aria-label=\"Select time. Use arrow keys to navigate and select the options and then tab to move onto the next selection.\"\n class={{\n \"ic-time-selector-dialog-container\": true,\n }}\n >\n <div class=\"ic-time-selector-highlight-lines\">\n <div class=\"ic-time-selector-header-border\" />\n <div\n class={{\n \"ic-time-selector-highlight\": true,\n \"ic-time-selector-highlight-top\": true,\n }}\n />\n <div class=\"ic-time-selector-columns\">\n {columns.map((col, idx) => [\n col,\n idx < columns.length - 1 ? (\n <ic-typography\n class={{\n \"ic-time-selector-colon\": true,\n \"ic-time-selector-colon-selected\":\n colonSelectedStates[idx],\n }}\n variant=\"subtitle-small\"\n aria-hidden=\"true\"\n key={`colon-${idx}`}\n >\n :\n </ic-typography>\n ) : null,\n ])}\n {timePeriod !== \"24\" &&\n this.renderColumn(\n \"period\",\n this.periods,\n this.selectedPeriod ?? null\n )}\n </div>\n <div\n class={{\n \"ic-time-selector-highlight\": true,\n \"ic-time-selector-highlight-bottom\": true,\n }}\n />\n </div>\n <div class=\"ic-time-selector-actions\">\n <ic-button\n variant=\"icon-tertiary\"\n aria-label=\"Clear time\"\n class={{\n \"ic-time-selector-clear-btn\": true,\n }}\n onClick={this.handleClear}\n disabled={\n this.selectedHour === undefined &&\n this.selectedMinute === undefined &&\n this.selectedSecond === undefined &&\n this.selectedPeriod === undefined\n }\n size={size}\n tabIndex={0}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === \"Tab\" && e.shiftKey) {\n e.preventDefault();\n const columns =\n this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n if (columns && columns.length > 0) {\n const lastCol = columns[columns.length - 1] as HTMLElement;\n lastCol?.focus();\n }\n }\n }}\n >\n <span aria-hidden=\"true\" innerHTML={Clear}></span>\n </ic-button>\n <ic-button\n variant=\"icon-tertiary\"\n aria-label=\"Select time\"\n class=\"ic-time-selector-check-btn\"\n onClick={this.handleConfirmClick}\n disabled={\n this.selectedHour === undefined &&\n this.selectedMinute === undefined &&\n this.selectedSecond === undefined &&\n this.selectedPeriod === undefined\n }\n size={size}\n tabIndex={0}\n >\n <span aria-hidden=\"true\" innerHTML={Check}></span>\n </ic-button>\n </div>\n </div>\n <div class=\"sr-only\" aria-live=\"polite\">\n {this.ariaLiveMessage}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"ic-time-selector.entry.cjs.js","mappings":"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","names":["parseTimeHelper","h","Host"],"sources":["src/components/ic-time-selector/ic-time-selector.css?tag=ic-time-selector&encapsulation=shadow","src/components/ic-time-selector/ic-time-selector.tsx"],"sourcesContent":[":host(.ic-time-selector-small) {\n --time-selector-padded-item-height: var(--ic-space-lg);\n}\n\n:host(.ic-time-selector-medium) {\n --time-selector-padded-item-height: calc(\n var(--ic-space-lg) + var(--ic-space-xxs)\n );\n}\n\n:host(.ic-time-selector-large) {\n --time-selector-padded-item-height: var(--ic-space-xl);\n}\n\n.ic-time-selector-dialog-container {\n background-color: var(--ic-time-picker-time-selector-bg);\n border: var(--ic-space-1px) solid var(--ic-time-picker-time-selector-border);\n border-radius: var(--ic-space-xxs);\n padding: var(--ic-space-xs);\n max-width: calc(\n 3 * var(--ic-space-xxl) + var(--ic-space-xl) + var(--ic-space-xxs)\n );\n width: fit-content;\n}\n\n:host(.ic-time-selector-small) .ic-time-selector-dialog-container {\n padding: var(--ic-space-xxs);\n max-width: calc(\n 3 * var(--ic-space-xxl) + var(--ic-space-lg) + var(--ic-space-xxs)\n );\n}\n\n:host(.ic-time-selector-large) .ic-time-selector-dialog-container {\n padding: var(--ic-space-md);\n max-width: calc(\n 3 * var(--ic-space-xxl) + var(--ic-space-xl) + var(--ic-space-xs) +\n var(--ic-space-xxs)\n );\n}\n\n.ic-time-selector-item {\n height: var(--ic-space-lg);\n padding: var(--ic-space-xxxs);\n text-align: center;\n cursor: pointer;\n scroll-snap-align: start;\n transition: background 0.2s, color 0.2s;\n}\n\n:host(.ic-time-selector-small) .ic-time-selector-item {\n padding: 0;\n}\n\n:host(.ic-time-selector-large) .ic-time-selector-item {\n padding: var(--ic-space-xxs);\n}\n\n.ic-time-selector-item:hover:not(.disabled):not(.selected) {\n background-color: var(--ic-time-picker-time-bg-hover);\n}\n\n.ic-time-selector-item:active:not(.disabled):not(.selected) {\n background-color: var(--ic-time-picker-time-bg-pressed);\n}\n\n.ic-time-selector-item.selected {\n background-color: var(--ic-time-picker-time-bg-selected);\n\n --ic-typography-color: var(--ic-time-picker-time-text-selected);\n\n position: relative;\n}\n\n.ic-time-selector-item.selected:hover {\n background-color: var(--ic-time-picker-time-active-bg-hover);\n}\n\n.ic-time-selector-item.selected:active {\n background-color: var(--ic-time-picker-time-active-bg-pressed);\n}\n\n.ic-time-selector-colon-selected {\n background-color: var(--ic-time-picker-colon-bg-selected);\n color: var(--ic-time-picker-colon-selected) !important;\n}\n\n.ic-time-selector-item.selected::before,\n.ic-time-selector-item.selected::after,\n.ic-time-selector-colon-selected::before,\n.ic-time-selector-colon-selected::after {\n content: \"\";\n position: absolute;\n left: 0;\n right: 0;\n height: var(--ic-space-1px);\n background: var(--ic-time-picker-time-selector-bg);\n}\n\n.ic-time-selector-item.selected::before,\n.ic-time-selector-colon-selected::before {\n top: 0;\n}\n\n.ic-time-selector-item.selected::after,\n.ic-time-selector-colon-selected::after {\n bottom: 0;\n}\n\n.ic-time-selector-item.disabled {\n --ic-typography-color: var(--ic-time-picker-time-text-disabled);\n\n cursor: not-allowed;\n}\n\n.ic-time-selector-column-wrapper {\n display: flex;\n flex-direction: column;\n}\n\n.ic-time-selector-scroll-row {\n height: var(--time-selector-padded-item-height) !important;\n background: transparent !important;\n pointer-events: none;\n user-select: none;\n cursor: default !important;\n box-sizing: border-box;\n}\n\n:host(.ic-time-selector-small) .ic-time-selector-scroll-row-last {\n height: calc(var(--ic-space-1px) + var(--ic-space-xxxs)) !important;\n}\n\n:host(.ic-time-selector-medium) .ic-time-selector-scroll-row-last,\n:host(.ic-time-selector-large) .ic-time-selector-scroll-row-last {\n height: calc(\n var(--ic-space-1px) + var(--ic-space-xxxs) + var(--ic-space-md)\n ) !important;\n}\n\n.ic-time-selector-scroll-row:hover,\n.ic-time-selector-scroll-row:active {\n background: transparent !important;\n}\n\n.ic-time-selector-header-row {\n color: var(--ic-time-picker-hh-label);\n\n --ic-typography-color: var(--ic-time-picker-hh-label) !important;\n\n background: transparent !important;\n text-align: center;\n height: var(--time-selector-padded-item-height);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.ic-time-selector-header-border {\n position: absolute;\n left: 0;\n right: 0;\n top: var(--time-selector-padded-item-height);\n height: var(--ic-space-1px);\n background: var(--ic-time-picker-header-border);\n pointer-events: none;\n}\n\n.ic-time-selector-colon {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--ic-time-picker-colon-default);\n height: var(--time-selector-padded-item-height);\n margin-top: calc(3 * var(--time-selector-padded-item-height));\n}\n\n.ic-time-selector-columns {\n display: flex;\n flex-direction: row;\n border-bottom: var(--ic-space-1px) solid var(--ic-time-picker-lower-border);\n margin: 0 var(--ic-space-xxs);\n position: relative;\n z-index: 1;\n}\n\n.ic-time-selector-highlight-lines {\n position: relative;\n width: 100%;\n}\n\n.ic-time-selector-highlight {\n position: absolute;\n left: 0;\n right: 0;\n width: 100%;\n height: var(--ic-space-1px);\n background: var(--ic-time-picker-selection-border);\n pointer-events: none;\n z-index: 1;\n}\n\n.ic-time-selector-highlight-top {\n top: calc(3 * var(--time-selector-padded-item-height) - var(--ic-space-1px));\n}\n\n.ic-time-selector-highlight-bottom {\n top: calc(4 * var(--time-selector-padded-item-height));\n}\n\n.ic-time-selector-column {\n height: calc((5 * var(--ic-space-xxl)) + (3 * var(--ic-space-1px)));\n overflow-y: auto;\n width: calc(var(--ic-space-xl) + var(--ic-space-xs));\n position: relative;\n scroll-snap-type: y mandatory;\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n:host(.ic-time-selector-small) .ic-time-selector-column {\n width: calc(var(--ic-space-xl) + var(--ic-space-xxs) + var(--ic-space-xxxs));\n}\n\n:host(.ic-time-selector-large) .ic-time-selector-column {\n width: calc(var(--ic-space-xl) + var(--ic-space-xs) + var(--ic-space-xxxs));\n}\n\n.ic-time-selector-column-period {\n margin-left: var(--ic-space-xxs);\n}\n\n.ic-time-selector-column::-webkit-scrollbar {\n display: none;\n}\n\n.ic-time-selector-column:focus-visible,\n.ic-time-selector-item:focus-visible {\n outline: none;\n background-color: transparent;\n}\n\n.ic-time-selector-column:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-fast);\n z-index: 3;\n}\n\n.ic-time-selector-list {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.ic-time-selector-actions {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n width: 100%;\n margin-top: var(--ic-space-xs);\n margin-left: auto;\n}\n\n.ic-time-selector-check-btn {\n margin-left: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n@media (forced-colors: active) {\n .ic-time-selector-item.selected {\n background-color: highlight !important;\n }\n\n .ic-time-selector-item.disabled {\n --ic-typography-color: GrayText !important;\n }\n\n .ic-time-selector-column:focus {\n border: var(--ic-border-hc);\n }\n\n .ic-time-selector-highlight {\n background: Highlight !important;\n }\n}\n","import {\n Component,\n h,\n Element,\n State,\n Prop,\n Event,\n EventEmitter,\n Host,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcDisableTimeSelection,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { parseTimeHelper } from \"../../utils/helpers\";\nimport Check from \"../../assets/check-icon.svg\";\nimport Clear from \"../../assets/close-icon.svg\";\nimport { IcTimePeriods } from \"./ic-time-selector.types\";\n\nconst COLUMN_TYPES = [\"hour\", \"minute\", \"period\"] as const;\nconst COLUMN_CLASS = \".ic-time-selector-column\";\nconst ITEM_CLASS = \".ic-time-selector-item\";\ntype ColumnType = typeof COLUMN_TYPES[number];\n\n@Component({\n tag: \"ic-time-selector\",\n styleUrl: \"ic-time-selector.css\",\n shadow: true,\n})\nexport class TimeSelector {\n private minutes: number[] = Array.from({ length: 60 }, (_, i) => i);\n private periods: IcTimePeriods[] = [\"AM\", \"PM\"];\n private minTime: Date | null = null;\n private maxTime: Date | null = null;\n private lastAnnouncedType?: ColumnType;\n private lastAnnouncedValue?: number | IcTimePeriods | null;\n\n @Element() el: HTMLIcTimeSelectorElement;\n\n @State() selectedHour?: number;\n @State() selectedMinute?: number;\n @State() selectedPeriod?: IcTimePeriods;\n @State() ariaLiveMessage: string = \"\";\n\n /**\n * An array of objects with start and end values that will be disabled in the time selector. The times can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() disableTimes: IcDisableTimeSelection[] = [];\n\n /**\n * The earliest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() min: string | Date = \"\";\n @Watch(\"min\")\n watchMinHandler(): void {\n this.minTime = parseTimeHelper(this.min).date;\n }\n\n /**\n * The latest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() max: string | Date = \"\";\n @Watch(\"max\")\n watchMaxHandler(): void {\n this.maxTime = parseTimeHelper(this.max).date;\n }\n\n /**\n * The size of the time selector to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\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 @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The time period format: \"12\" for 12-hour, \"24\" for 24-hour. Defaults to \"24\".\n */\n @Prop() timePeriod: \"12\" | \"24\" = \"24\";\n\n /**\n * The value of the time selector. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop({ mutable: true }) value?: string | Date | null | undefined = \"\";\n @Watch(\"value\")\n watchValueHandler(): void {\n this.setTime(this.value);\n setTimeout(() => {\n this.scrollSelectedItem(\"hour\");\n this.scrollSelectedItem(\"minute\");\n if (this.timePeriod === \"12\") {\n this.scrollSelectedItem(\"period\");\n }\n }, 0);\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{\n value: Date | null;\n timeString: string | null;\n timeObject: {\n hour: string | null;\n minute: string | null;\n period?: IcTimePeriods;\n };\n }>;\n\n componentWillLoad() {\n this.setTime(this.value);\n }\n\n componentDidLoad() {\n setTimeout(() => {\n if (this.selectedHour !== undefined && this.selectedHour !== null) {\n this.scrollSelectedItem(\"hour\");\n } else if (this.min) {\n this.scrollMinTime(\"hour\");\n }\n if (this.selectedMinute !== undefined && this.selectedMinute !== null) {\n this.scrollSelectedItem(\"minute\");\n } else if (this.min) {\n this.scrollMinTime(\"minute\");\n }\n if (this.timePeriod === \"12\") {\n if (this.selectedPeriod !== undefined && this.selectedPeriod !== null) {\n this.scrollSelectedItem(\"period\");\n } else if (this.min) {\n this.scrollMinTime(\"period\");\n }\n }\n this.updateAriaLiveMessage();\n }, 0);\n }\n\n private getHeaderLabel(type: ColumnType): string {\n switch (type) {\n case \"hour\":\n return \"HH\";\n case \"minute\":\n return \"MM\";\n default:\n return \"\";\n }\n }\n\n private setTimeParts = (hour: number, minute: number) => {\n let period: IcTimePeriods = \"AM\";\n if (this.timePeriod === \"12\") {\n if (hour === 0) {\n hour = 12;\n period = \"AM\";\n } else if (hour === 12) {\n period = \"PM\";\n } else if (hour > 12) {\n hour = hour - 12;\n period = \"PM\";\n } else {\n period = \"AM\";\n }\n this.selectedHour = hour;\n this.selectedPeriod = period;\n } else {\n this.selectedHour = hour;\n }\n this.selectedMinute = minute;\n };\n\n private setTime(time?: string | Date | null) {\n if (time === null || time === undefined || time === \"\") {\n this.handleClear();\n return;\n }\n\n if (typeof time === \"string\") {\n const zuluMatch = time.match(\n /^([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\\.[0-9]{1,3})?Z?$/\n );\n if (zuluMatch) {\n this.setTimeParts(Number(zuluMatch[1]), Number(zuluMatch[2]));\n } else {\n const parts = time.split(\":\");\n this.setTimeParts(Number(parts[0]) || 0, Number(parts[1]) || 0);\n }\n } else {\n const { parts } = parseTimeHelper(time);\n if (parts) {\n this.setTimeParts(parts.hour, parts.minute);\n }\n }\n }\n\n private renderScrollRows(count: number, keyPrefix = \"scroll-row\") {\n return Array.from({ length: count }).map((_, i) => {\n const isLast = keyPrefix.endsWith(\"bottom-spacer\")\n ? i === count - 1\n : false;\n return (\n <li\n class={{\n \"ic-time-selector-item\": true,\n \"ic-time-selector-scroll-row\": true,\n ...(isLast ? { \"ic-time-selector-scroll-row-last\": true } : {}),\n }}\n aria-hidden=\"true\"\n tabIndex={-1}\n key={`${keyPrefix}-${i}`}\n />\n );\n });\n }\n\n private scrollSelectedItem(colClass: ColumnType, clear?: boolean) {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n let colIdx = COLUMN_TYPES.indexOf(colClass);\n if (colClass === \"period\" && columns?.length) {\n colIdx = columns.length - 1;\n }\n const col = columns?.[colIdx];\n if (col) {\n const items = col.querySelectorAll(ITEM_CLASS);\n let selectedIdx = -1;\n items.forEach((item, idx) => {\n if (item.classList.contains(\"selected\")) selectedIdx = idx;\n });\n if (clear) {\n selectedIdx = 0;\n }\n if (selectedIdx > -1) {\n const scrollRow = col.querySelector(\n \".ic-time-selector-scroll-row\"\n ) as HTMLElement;\n let resolvedHeight = 0;\n if (scrollRow) {\n resolvedHeight = parseFloat(getComputedStyle(scrollRow).height);\n }\n const offset = resolvedHeight * 2;\n const scrollTop =\n (items[selectedIdx] as HTMLElement).offsetTop - offset;\n const prefersReducedMotion = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n ).matches;\n col.scrollTo({\n top: scrollTop,\n behavior: prefersReducedMotion ? \"instant\" : \"smooth\",\n });\n if (clear) {\n setTimeout(() => {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n if (columns && columns.length > 0) {\n this.checkIfScrollIsFinished(columns[0], scrollTop);\n }\n }, 300);\n }\n }\n }\n }\n\n private checkIfScrollIsFinished = (\n column: { scrollTop: number },\n scrollTop: number\n ) => {\n const isScrollFinished = setInterval(() => {\n if (column.scrollTop === scrollTop + 56) {\n (column as HTMLElement)?.focus();\n clearInterval(isScrollFinished);\n }\n }, 25);\n };\n\n private scrollMinTime(colClass: ColumnType) {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const colIdx = COLUMN_TYPES.indexOf(colClass);\n const col = columns?.[colIdx];\n if (!col) return;\n const items = col.querySelectorAll(ITEM_CLASS);\n let minHour = 0,\n minMinute = 0;\n if (this.minTime) {\n minHour = this.minTime.getHours() + 2;\n minMinute = this.minTime.getMinutes() + 2;\n } else if (this.min) {\n const minDate = parseTimeHelper(this.min).date;\n if (minDate) {\n minHour = minDate.getHours();\n minMinute = minDate.getMinutes();\n }\n }\n let targetIdx = -1;\n const values = this.getColumnValues(colClass);\n if (colClass === \"hour\") {\n targetIdx = values.findIndex((v) => v === minHour);\n } else if (colClass === \"minute\") {\n targetIdx = values.findIndex((v) => v === minMinute);\n } else if (colClass === \"period\") {\n let period: IcTimePeriods = \"AM\";\n if (this.timePeriod === \"12\") {\n if (minHour === 0) {\n period = \"AM\";\n } else if (minHour === 12) {\n period = \"PM\";\n } else if (minHour > 12) {\n period = \"PM\";\n } else {\n period = \"AM\";\n }\n }\n targetIdx = values.findIndex((v) => v === period);\n }\n if (targetIdx > -1) {\n const scrollRow = col.querySelector(\n \".ic-time-selector-scroll-row\"\n ) as HTMLElement;\n let resolvedHeight = 0;\n if (scrollRow) {\n resolvedHeight = parseFloat(getComputedStyle(scrollRow).height);\n }\n const offset = resolvedHeight * 2;\n const scrollTop = (items[targetIdx] as HTMLElement).offsetTop - offset;\n const prefersReducedMotion = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n ).matches;\n col.scrollTo({\n top: scrollTop,\n behavior: prefersReducedMotion ? \"instant\" : \"smooth\",\n });\n }\n }\n\n private handleSelect = (type: ColumnType, value: number | IcTimePeriods) => {\n const prevValue = this.getSelectedValue(type);\n switch (type) {\n case \"hour\":\n this.selectedHour = Number(value);\n break;\n case \"minute\":\n this.selectedMinute = Number(value);\n break;\n case \"period\":\n this.selectedPeriod = value as IcTimePeriods;\n break;\n }\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const idx = COLUMN_TYPES.indexOf(type);\n if (columns && columns[idx]) {\n (columns[idx] as HTMLElement).focus();\n window.requestAnimationFrame(() => {\n this.scrollSelectedItem(type);\n });\n }\n if (prevValue === undefined || prevValue === null) {\n this.announceSelectedColumn(type);\n } else {\n this.lastAnnouncedType = type;\n this.lastAnnouncedValue = this.getSelectedValue(type);\n }\n };\n\n private isTimeDisabled = (\n hour: number,\n minute: number,\n type?: ColumnType\n ): boolean => {\n for (const t of this.disableTimes) {\n if (t && typeof t === \"object\" && \"start\" in t && \"end\" in t) {\n const startParts = parseTimeHelper(t.start).parts;\n const endParts = parseTimeHelper(t.end).parts;\n if (startParts && endParts) {\n const timeVal = hour * 3600 + minute * 60;\n const startVal = startParts.hour * 3600 + startParts.minute * 60;\n const endVal = endParts.hour * 3600 + endParts.minute * 60;\n if (timeVal >= startVal && timeVal <= endVal) {\n return true;\n }\n }\n }\n }\n if (this.min) {\n this.minTime = parseTimeHelper(this.min).date;\n if (this.minTime) {\n const minHour = this.minTime.getHours();\n const minMinute = this.minTime.getMinutes();\n if (type === \"hour\") {\n const highlightedMinute = this.selectedMinute ?? minMinute;\n if (\n hour < minHour ||\n (hour === minHour && highlightedMinute < minMinute) ||\n (hour === minHour && highlightedMinute === minMinute)\n ) {\n return true;\n }\n } else if (type === \"minute\") {\n if (hour === minHour && minute < minMinute) {\n return true;\n }\n } else {\n if (\n hour < minHour ||\n (hour === minHour && minute < minMinute) ||\n (hour === minHour && minute === minMinute)\n ) {\n return true;\n }\n }\n }\n }\n if (this.max) {\n this.maxTime = parseTimeHelper(this.max).date;\n if (this.maxTime) {\n const maxHour = this.maxTime.getHours();\n const maxMinute = this.maxTime.getMinutes();\n if (type === \"hour\") {\n const selectedMinute = this.selectedMinute ?? 59;\n if (\n hour > maxHour ||\n (hour === maxHour && selectedMinute > maxMinute) ||\n (hour === maxHour && selectedMinute === maxMinute)\n ) {\n return true;\n }\n } else if (type === \"minute\") {\n if (hour === maxHour && minute > maxMinute) {\n return true;\n }\n } else {\n if (\n hour > maxHour ||\n (hour === maxHour && minute > maxMinute) ||\n (hour === maxHour && minute === maxMinute)\n ) {\n return true;\n }\n }\n }\n }\n return false;\n };\n\n private announceSelectedColumn(type: ColumnType) {\n const value = this.getSelectedValue(type);\n if (\n value !== null &&\n value !== undefined &&\n (type !== this.lastAnnouncedType || value !== this.lastAnnouncedValue)\n ) {\n this.ariaLiveMessage = `Selected ${type}: ${value}`;\n } else {\n this.ariaLiveMessage = \"\";\n }\n this.lastAnnouncedType = type;\n this.lastAnnouncedValue = value;\n }\n\n private getColumnValues(type: ColumnType): number[] | IcTimePeriods[] {\n if (type === \"hour\")\n return this.timePeriod === \"12\"\n ? Array.from({ length: 12 }, (_, i) => i + 1)\n : Array.from({ length: 24 }, (_, i) => i);\n if (type === \"minute\") return this.minutes;\n if (type === \"period\") return this.periods;\n return [];\n }\n\n private getSelectedValue(type: ColumnType): number | IcTimePeriods | null {\n if (type === \"hour\") return this.selectedHour ?? null;\n if (type === \"minute\") return this.selectedMinute ?? null;\n if (type === \"period\") return this.selectedPeriod ?? null;\n return null;\n }\n\n private getHighlightedValue(\n type: ColumnType,\n col: HTMLElement\n ): number | IcTimePeriods | null {\n const items = Array.from(col.querySelectorAll(ITEM_CLASS));\n const realItems = items.filter(\n (item) => !item.classList.contains(\"ic-time-selector-scroll-row\")\n );\n if (realItems.length === 0) return null;\n const highlightTop = this.el.shadowRoot?.querySelector(\n \".ic-time-selector-highlight-top\"\n ) as HTMLElement;\n const highlightBottom = this.el.shadowRoot?.querySelector(\n \".ic-time-selector-highlight-bottom\"\n ) as HTMLElement;\n if (!highlightTop || !highlightBottom) return null;\n const topRect = highlightTop.getBoundingClientRect();\n const bottomRect = highlightBottom.getBoundingClientRect();\n const highlightStart = topRect.bottom;\n const highlightEnd = bottomRect.top;\n for (const item of realItems) {\n const itemRect = item.getBoundingClientRect();\n const itemCenter = itemRect.top + itemRect.height / 2;\n if (itemCenter >= highlightStart && itemCenter <= highlightEnd) {\n const key = item.getAttribute(\"key\");\n if (key) {\n const valStr = key.replace(`${type}-val-`, \"\");\n if (type === \"hour\" || type === \"minute\") {\n return Number(valStr);\n } else {\n return valStr as IcTimePeriods;\n }\n }\n const text = item.textContent?.trim();\n if (type === \"hour\" || type === \"minute\") {\n return text ? Number(text) : null;\n } else {\n return text as IcTimePeriods;\n }\n }\n }\n return null;\n }\n\n private handleColumnKeyDown = (type: ColumnType, event: KeyboardEvent) => {\n const columns = this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n const idx = COLUMN_TYPES.indexOf(type);\n if (!columns) return;\n\n const values = this.getColumnValues(type);\n const selected = this.getSelectedValue(type);\n const col = columns[idx] as HTMLElement;\n if (!col) return;\n\n const selectHighlighted = () => {\n const highlighted = this.getHighlightedValue(type, col);\n if (highlighted !== null) {\n this.handleSelect(type, highlighted);\n } else if (values.length > 0) {\n this.handleSelect(type, values[0]);\n }\n };\n\n switch (event.key) {\n case \"Enter\":\n case \" \":\n event.preventDefault();\n selectHighlighted();\n return;\n case \"ArrowRight\":\n event.preventDefault();\n selectHighlighted();\n if (idx < columns.length - 1) {\n (columns[idx + 1] as HTMLElement)?.focus();\n }\n return;\n case \"ArrowLeft\":\n event.preventDefault();\n if (idx > 0) (columns[idx - 1] as HTMLElement)?.focus();\n return;\n case \"Tab\":\n if (event.shiftKey) {\n if (idx === 0) {\n return;\n } else {\n event.preventDefault();\n (columns[idx - 1] as HTMLElement)?.focus();\n }\n } else {\n event.preventDefault();\n selectHighlighted();\n this.announceSelectedColumn(type);\n if (idx < columns.length - 1) {\n (columns[idx + 1] as HTMLElement)?.focus();\n } else {\n (\n this.el.shadowRoot?.querySelector(\n \".ic-time-selector-clear-btn\"\n ) as HTMLElement\n )?.focus();\n this.updateAriaLiveMessage();\n }\n }\n return;\n case \"ArrowUp\":\n case \"ArrowDown\": {\n let idxInValues = values.findIndex((v) => v === selected);\n if (idxInValues === -1) idxInValues = 0;\n let newIdx = idxInValues;\n const direction = event.key === \"ArrowUp\" ? -1 : 1;\n const maxIdx = values.length - 1;\n do {\n newIdx += direction;\n } while (\n newIdx >= 0 &&\n newIdx <= maxIdx &&\n (() => {\n if (type === \"hour\" || type === \"minute\") {\n const hour =\n type === \"hour\"\n ? (values[newIdx] as number)\n : this.selectedHour ?? 0;\n const minute =\n type === \"minute\"\n ? (values[newIdx] as number)\n : this.selectedMinute ?? 0;\n return this.isTimeDisabled(hour, minute);\n }\n return false;\n })()\n );\n this.ariaLiveMessage = `Selected ${type}: ${values[newIdx]}`;\n if (newIdx >= 0 && newIdx <= maxIdx && newIdx !== idxInValues) {\n this.handleSelect(type, values[newIdx]);\n }\n return;\n }\n default:\n return;\n }\n };\n\n private updateAriaLiveMessage() {\n const hourStr =\n this.selectedHour != null\n ? this.selectedHour.toString().padStart(2, \"0\")\n : null;\n const minuteStr =\n this.selectedMinute != null\n ? this.selectedMinute.toString().padStart(2, \"0\")\n : null;\n let timeString = \"\";\n let allSelected = false;\n allSelected = hourStr !== null && minuteStr !== null;\n if (allSelected) {\n timeString =\n hourStr +\n \":\" +\n minuteStr +\n (this.selectedPeriod ? \" \" + this.selectedPeriod : \"\");\n }\n this.ariaLiveMessage =\n allSelected && timeString ? `Selected time: ${timeString}` : \"\";\n }\n\n private renderColumn = (\n type: ColumnType,\n values: number[] | IcTimePeriods[],\n selected: number | IcTimePeriods | null\n ) => {\n const isTimeColumn = type === \"hour\" || type === \"minute\";\n const isPeriodColumn = type === \"period\";\n const headerLabel = this.getHeaderLabel(type);\n const topSpacerCount = 2;\n let bottomSpacerCount = 6;\n if (this.size === \"large\") {\n bottomSpacerCount = 5;\n } else if (this.size === \"small\") {\n bottomSpacerCount = 8;\n }\n return (\n <div class=\"ic-time-selector-column-wrapper\">\n {isPeriodColumn ? (\n <div class=\"ic-time-selector-header-row\" />\n ) : (\n headerLabel && (\n <div class=\"ic-time-selector-header-row\">\n <ic-typography variant=\"subtitle-small\">\n {headerLabel}\n </ic-typography>\n </div>\n )\n )}\n <div\n class={{\n \"ic-time-selector-column\": true,\n \"ic-time-selector-column-period\": isPeriodColumn,\n }}\n tabIndex={0}\n onKeyDown={(e) => this.handleColumnKeyDown(type, e as KeyboardEvent)}\n >\n <ul class=\"ic-time-selector-list\" role=\"listbox\" aria-label={type}>\n {this.renderScrollRows(topSpacerCount, `${type}-top-spacer`)}\n {values.map((val) => {\n let disabled = false;\n if (isTimeColumn) {\n const hour =\n type === \"hour\" ? (val as number) : this.selectedHour ?? 0;\n const minute =\n type === \"minute\"\n ? (val as number)\n : this.selectedMinute ?? 0;\n disabled = this.isTimeDisabled(hour, minute, type);\n }\n return (\n <li\n class={{\n \"ic-time-selector-item\": true,\n selected: val === selected,\n disabled,\n }}\n role=\"option\"\n aria-selected={val === selected ? \"true\" : \"false\"}\n aria-disabled={disabled ? \"true\" : \"false\"}\n onClick={() =>\n !disabled && this.handleSelect(type, val as any)\n }\n tabIndex={-1}\n key={`${type}-val-${val}`}\n >\n <ic-typography variant=\"subtitle-small\">\n {typeof val === \"number\"\n ? val.toString().padStart(2, \"0\")\n : val}\n </ic-typography>\n </li>\n );\n })}\n {(isTimeColumn || isPeriodColumn) &&\n this.renderScrollRows(bottomSpacerCount, `${type}-bottom-spacer`)}\n </ul>\n </div>\n </div>\n );\n };\n\n private handleClear = () => {\n this.selectedHour = undefined;\n this.scrollSelectedItem(\"hour\", true);\n this.selectedMinute = undefined;\n this.scrollSelectedItem(\"minute\", true);\n this.selectedPeriod = undefined;\n this.scrollSelectedItem(\"period\", true);\n this.lastAnnouncedType = undefined;\n this.lastAnnouncedValue = undefined;\n this.icChange.emit({\n value: null,\n timeString: null,\n timeObject: {\n hour: null,\n minute: null,\n period: undefined,\n },\n });\n };\n\n private handleConfirmClick = () => {\n const hour = this.selectedHour != null ? this.selectedHour : null;\n const minute = this.selectedMinute != null ? this.selectedMinute : null;\n const period = this.selectedPeriod;\n\n const hourStr = hour != null ? hour.toString().padStart(2, \"0\") : null;\n const minuteStr =\n minute != null ? minute.toString().padStart(2, \"0\") : null;\n\n let allSelected = false;\n allSelected = hour !== null && minute !== null;\n\n let value: Date | null = null;\n let timeString: string | null = null;\n if (allSelected) {\n let date24hours = hour;\n if (hour != null && period && this.timePeriod === \"12\") {\n if (period === \"PM\" && hour < 12) date24hours = hour + 12;\n if (period === \"AM\" && hour === 12) date24hours = 0;\n }\n value = new Date();\n value.setHours(date24hours ?? 0);\n value.setMinutes(minute ?? 0);\n timeString = hourStr + \":\" + minuteStr + (period ? \" \" + period : \"\");\n this.value = value;\n }\n\n this.icChange.emit({\n value: allSelected ? value : null,\n timeString: allSelected ? timeString : null,\n timeObject: {\n hour: hourStr,\n minute: minuteStr,\n ...(period ? { period } : {}),\n },\n });\n };\n\n render() {\n const hours =\n this.timePeriod === \"12\"\n ? Array.from({ length: 12 }, (_, i) => i + 1)\n : Array.from({ length: 24 }, (_, i) => i);\n const columns = [\n this.renderColumn(\"hour\", hours, this.selectedHour ?? null),\n this.renderColumn(\"minute\", this.minutes, this.selectedMinute ?? null),\n ];\n\n let colonSelectedStates: boolean[] = [];\n colonSelectedStates = [\n this.selectedHour !== undefined && this.selectedMinute !== undefined,\n ];\n\n const isInPicker = this.el.closest(\"ic-time-picker\") !== null;\n\n const { size, theme, timePeriod } = this;\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-time-selector-${size}`]: true,\n }}\n >\n <div\n role={isInPicker ? \"dialog\" : undefined}\n aria-modal={isInPicker ? true : undefined}\n aria-label=\"Select time. Use arrow keys to navigate and select the options and then tab to move onto the next selection.\"\n class={{\n \"ic-time-selector-dialog-container\": true,\n }}\n >\n <div class=\"ic-time-selector-highlight-lines\">\n <div class=\"ic-time-selector-header-border\" />\n <div\n class={{\n \"ic-time-selector-highlight\": true,\n \"ic-time-selector-highlight-top\": true,\n }}\n />\n <div class=\"ic-time-selector-columns\">\n {columns.map((col, idx) => [\n col,\n idx < columns.length - 1 ? (\n <ic-typography\n class={{\n \"ic-time-selector-colon\": true,\n \"ic-time-selector-colon-selected\":\n colonSelectedStates[idx],\n }}\n variant=\"subtitle-small\"\n aria-hidden=\"true\"\n key={`colon-${idx}`}\n >\n :\n </ic-typography>\n ) : null,\n ])}\n {timePeriod !== \"24\" &&\n this.renderColumn(\n \"period\",\n this.periods,\n this.selectedPeriod ?? null\n )}\n </div>\n <div\n class={{\n \"ic-time-selector-highlight\": true,\n \"ic-time-selector-highlight-bottom\": true,\n }}\n />\n </div>\n <div class=\"ic-time-selector-actions\">\n <ic-button\n variant=\"icon-tertiary\"\n aria-label=\"Clear time\"\n class={{\n \"ic-time-selector-clear-btn\": true,\n }}\n onClick={this.handleClear}\n disabled={\n this.selectedHour === undefined &&\n this.selectedMinute === undefined &&\n this.selectedPeriod === undefined\n }\n size={size}\n tabIndex={0}\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === \"Tab\" && e.shiftKey) {\n e.preventDefault();\n const columns =\n this.el.shadowRoot?.querySelectorAll(COLUMN_CLASS);\n if (columns && columns.length > 0) {\n const lastCol = columns[columns.length - 1] as HTMLElement;\n lastCol?.focus();\n }\n }\n }}\n >\n <span aria-hidden=\"true\" innerHTML={Clear}></span>\n </ic-button>\n <ic-button\n variant=\"icon-tertiary\"\n aria-label=\"Select time\"\n class=\"ic-time-selector-check-btn\"\n onClick={this.handleConfirmClick}\n disabled={\n this.selectedHour === undefined &&\n this.selectedMinute === undefined &&\n this.selectedPeriod === undefined\n }\n size={size}\n tabIndex={0}\n >\n <span aria-hidden=\"true\" innerHTML={Check}></span>\n </ic-button>\n </div>\n </div>\n <div class=\"sr-only\" aria-live=\"polite\">\n {this.ariaLiveMessage}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -46,7 +46,7 @@ const ToastRegion = class {
46
46
  }
47
47
  }
48
48
  render() {
49
- return index.h("slot", { key: 'fbb8173202304d09e434a726e85fad986cb79a9f' });
49
+ return index.h("slot", { key: '8ba16a1a1aa173043f4a14af432e11a82fffda5a' });
50
50
  }
51
51
  get el() { return index.getElement(this); }
52
52
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"ic-toast-region.entry.cjs.js","mappings":";;;;;;MACa,WAAW;IACpB;;QACI,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK;YACnB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;YACvI,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;gBAClE,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC;aACpE;YACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;gBACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1C,CAAC;KACL;IACD,qBAAqB,CAAC,QAAQ;QAC1B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC9B;KACJ;IACD,gBAAgB;QACZ,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC9B;KACJ;IACD,oBAAoB;QAChB,IAAI,EAAE,CAAC;QACP,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;iBACpB,UAAU,EAAE;iBACZ,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;SAClC;aACI;YACD,IAAI,IAAI,CAAC,iBAAiB,IAAI,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAChE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;aACrC;;gBAEG,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;SACrF;KACJ;IACD,MAAM;QACF,OAAOA,OAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,0CAA0C,EAAE,CAAC,CAAC;KACzE;;;;;;;;;","names":["h"],"sources":["../web-components/dist/collection/components/ic-toast-region/ic-toast-region.js"],"sourcesContent":["import { h } from \"@stencil/core\";\nexport class ToastRegion {\n constructor() {\n this.pendingVisibility = [];\n this.showToast = (toast) => {\n const visibleToasts = Array.from(document.querySelectorAll(\"ic-toast\")).filter((el) => window.getComputedStyle(el).display !== \"none\");\n if (visibleToasts.indexOf(toast) === -1 && visibleToasts.length <= 0) {\n toast.setVisible().then((res) => (this.previouslyFocused = res));\n }\n if (visibleToasts.length > 0)\n this.pendingVisibility.push(toast);\n };\n }\n watchOpenToastHandler(newValue) {\n if (this.openToast !== undefined) {\n this.showToast(newValue);\n this.openToast = undefined;\n }\n }\n componentDidLoad() {\n if (this.openToast) {\n this.showToast(this.openToast);\n this.openToast = undefined;\n }\n }\n handleDismissedToast() {\n var _a;\n if (this.pendingVisibility.length > 0) {\n this.pendingVisibility[0]\n .setVisible()\n .then((res) => (this.previouslyFocused = res));\n this.pendingVisibility.shift();\n }\n else {\n if (this.previouslyFocused && \"setFocus\" in this.previouslyFocused) {\n this.previouslyFocused.setFocus();\n }\n else\n (_a = this.previouslyFocused) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }\n render() {\n return h(\"slot\", { key: 'fbb8173202304d09e434a726e85fad986cb79a9f' });\n }\n static get is() { return \"ic-toast-region\"; }\n static get properties() {\n return {\n \"openToast\": {\n \"type\": \"unknown\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"HTMLIcToastElement\",\n \"resolved\": \"HTMLIcToastElement | undefined\",\n \"references\": {\n \"HTMLIcToastElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLIcToastElement\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The toast element to be displayed.\"\n },\n \"getter\": false,\n \"setter\": false\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"openToast\",\n \"methodName\": \"watchOpenToastHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"icDismiss\",\n \"method\": \"handleDismissedToast\",\n \"target\": undefined,\n \"capture\": true,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-toast-region.js.map\n"],"version":3}
1
+ {"file":"ic-toast-region.entry.cjs.js","mappings":";;;;;;MACa,WAAW;IACpB;;QACI,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK;YACnB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;YACvI,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;gBAClE,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC;aACpE;YACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;gBACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1C,CAAC;KACL;IACD,qBAAqB,CAAC,QAAQ;QAC1B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC9B;KACJ;IACD,gBAAgB;QACZ,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC9B;KACJ;IACD,oBAAoB;QAChB,IAAI,EAAE,CAAC;QACP,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;iBACpB,UAAU,EAAE;iBACZ,IAAI,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;SAClC;aACI;YACD,IAAI,IAAI,CAAC,iBAAiB,IAAI,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAChE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;aACrC;;gBAEG,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;SACrF;KACJ;IACD,MAAM;QACF,OAAOA,OAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,0CAA0C,EAAE,CAAC,CAAC;KACzE;;;;;;;;;","names":["h"],"sources":["../web-components/dist/collection/components/ic-toast-region/ic-toast-region.js"],"sourcesContent":["import { h } from \"@stencil/core\";\nexport class ToastRegion {\n constructor() {\n this.pendingVisibility = [];\n this.showToast = (toast) => {\n const visibleToasts = Array.from(document.querySelectorAll(\"ic-toast\")).filter((el) => window.getComputedStyle(el).display !== \"none\");\n if (visibleToasts.indexOf(toast) === -1 && visibleToasts.length <= 0) {\n toast.setVisible().then((res) => (this.previouslyFocused = res));\n }\n if (visibleToasts.length > 0)\n this.pendingVisibility.push(toast);\n };\n }\n watchOpenToastHandler(newValue) {\n if (this.openToast !== undefined) {\n this.showToast(newValue);\n this.openToast = undefined;\n }\n }\n componentDidLoad() {\n if (this.openToast) {\n this.showToast(this.openToast);\n this.openToast = undefined;\n }\n }\n handleDismissedToast() {\n var _a;\n if (this.pendingVisibility.length > 0) {\n this.pendingVisibility[0]\n .setVisible()\n .then((res) => (this.previouslyFocused = res));\n this.pendingVisibility.shift();\n }\n else {\n if (this.previouslyFocused && \"setFocus\" in this.previouslyFocused) {\n this.previouslyFocused.setFocus();\n }\n else\n (_a = this.previouslyFocused) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }\n render() {\n return h(\"slot\", { key: '8ba16a1a1aa173043f4a14af432e11a82fffda5a' });\n }\n static get is() { return \"ic-toast-region\"; }\n static get properties() {\n return {\n \"openToast\": {\n \"type\": \"unknown\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"HTMLIcToastElement\",\n \"resolved\": \"HTMLIcToastElement | undefined\",\n \"references\": {\n \"HTMLIcToastElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLIcToastElement\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The toast element to be displayed.\"\n },\n \"getter\": false,\n \"setter\": false\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"openToast\",\n \"methodName\": \"watchOpenToastHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"icDismiss\",\n \"method\": \"handleDismissedToast\",\n \"target\": undefined,\n \"capture\": true,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-toast-region.js.map\n"],"version":3}
@@ -211,20 +211,20 @@ const Toast = class {
211
211
  }
212
212
  render() {
213
213
  const { variant, heading, message, visible, isManual, dismissButtonAriaLabel, theme, } = this;
214
- return (index.h(index.Host, { key: '9934a16e3f339bec971138aec7d46092216d5554', class: {
214
+ return (index.h(index.Host, { key: '2bac1c836e58af45a4471435aa0721bfd0aafcc4', class: {
215
215
  [`ic-theme-${theme}`]: theme !== "inherit",
216
216
  ["ic-toast-hidden"]: !visible,
217
217
  [`ic-toast-variant-${variant}`]: variant !== undefined,
218
- }, tabindex: "0", onFocus: this.onFocus, onBlur: this.onBlur, role: isManual ? "dialog" : "alert", "aria-live": isManual ? null : "polite" }, index.h("div", { key: '97a03d41017adf58f826e42291906b3225ab091c', class: {
218
+ }, tabindex: "0", onFocus: this.onFocus, onBlur: this.onBlur, role: isManual ? "dialog" : "alert", "aria-live": isManual ? null : "polite" }, index.h("div", { key: 'b4388f3cfba0cb1084e026dca2f97efd3ccafc2a', class: {
219
219
  ["container"]: true,
220
220
  [`container-${variant}`]: variant !== undefined,
221
- } }, variant && visible && (index.h("div", { key: '289b4544bee27fd02b20deae22b5bbb822844c9e', class: "toast-icon-container" }, index.h("div", { key: '03dae21944b95c1d96e2a6b2480b0c20e12ccbd7', class: {
221
+ } }, variant && visible && (index.h("div", { key: 'e587c5b11b4ddcd93e1eb8ee0a8b2f2e63154e48', class: "toast-icon-container" }, index.h("div", { key: '841cabdcbc6b499303599d3f521332877a626dc8', class: {
222
222
  ["divider"]: true,
223
223
  [`divider-${variant}`]: true,
224
- } }), variant === "neutral" ? (index.h("slot", { name: "neutral-icon" })) : (index.h("span", { class: "toast-icon", innerHTML: helpers.VARIANT_ICONS[variant].icon })))), index.h("div", { key: '6191a3f5c39adfa8c5ab4ca5c9e35fd214e00fa2', class: {
224
+ } }), variant === "neutral" ? (index.h("slot", { name: "neutral-icon" })) : (index.h("span", { class: "toast-icon", innerHTML: helpers.VARIANT_ICONS[variant].icon })))), index.h("div", { key: '0346511199e51296a49ceb78c3858e93f481ff9a', class: {
225
225
  ["toast-content"]: true,
226
226
  ["no-icon"]: variant === "neutral" && !helpers.isSlotUsed(this.el, "neutral-icon"),
227
- } }, index.h("div", { key: '1e08fbbfa2ba920c1b90f2eaf35aa801830d47b0', class: "toast-text" }, index.h("ic-typography", { key: 'ebc61cb12c3bdd05511ae567d09f5504ad010c47', variant: "subtitle-large", class: "toast-heading" }, visible && (isManual ? index.h("h5", null, heading) : index.h("p", null, heading))), message && (index.h("ic-typography", { key: '48ffe5377a09237ac490c8d4a62e962979ce6dc0', variant: "body", class: "toast-message" }, visible && index.h("p", { key: '7fbffa0f6e6d30389a9d0e5a3b5e1c279911ed9a' }, message)))), helpers.isSlotUsed(this.el, "action") && (index.h("div", { key: '83ba75d3d7aa54caf13cc7723defee623103dffc', class: "toast-action-container" }, index.h("slot", { key: '18367dd5f8acdc33129ead64728abc71a82f7e57', name: "action" })))), !isManual ? (index.h("ic-loading-indicator", { class: "toast-dismiss-timer", theme: "dark", monochrome: true, size: "icon", progress: this.timerProgress, description: "Dismiss timer" })) : (index.h("ic-button", { id: "dismiss-button", innerHTML: closeIcon.closeIcon, onClick: this.dismissAction, variant: "icon-tertiary", "aria-label": dismissButtonAriaLabel })))));
227
+ } }, index.h("div", { key: '455cef756a449a6a23dec8679f6a9e68ca19e761', class: "toast-text" }, index.h("ic-typography", { key: '33a1f0d5080f96a67fc9ef753d2b90806665f62e', variant: "subtitle-large", class: "toast-heading" }, visible && (isManual ? index.h("h5", null, heading) : index.h("p", null, heading))), message && (index.h("ic-typography", { key: '334748fcea7132f4c3f82f8e3f6267c532796289', variant: "body", class: "toast-message" }, visible && index.h("p", { key: '5178bc7cba60aa663105fa09fc31617c6a923f0d' }, message)))), helpers.isSlotUsed(this.el, "action") && (index.h("div", { key: '263401f6f52c6acd495a448fb21176a3af002234', class: "toast-action-container" }, index.h("slot", { key: '3f1cbc47a3a01254c7581ec4a0a1a6ef988cd417', name: "action" })))), !isManual ? (index.h("ic-loading-indicator", { class: "toast-dismiss-timer", theme: "dark", monochrome: true, size: "icon", progress: this.timerProgress, description: "Dismiss timer" })) : (index.h("ic-button", { id: "dismiss-button", innerHTML: closeIcon.closeIcon, onClick: this.dismissAction, variant: "icon-tertiary", "aria-label": dismissButtonAriaLabel })))));
228
228
  }
229
229
  get el() { return index.getElement(this); }
230
230
  static get watchers() { return {