@ukic/canary-web-components 3.0.0-canary.10 → 3.0.0-canary.11

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 (294) hide show
  1. package/dist/cjs/ic-breadcrumb.cjs.entry.js +4 -3
  2. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  3. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  4. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-data-table.cjs.entry.js +8 -11
  10. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-date-input.cjs.entry.js +6 -0
  12. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-dialog.cjs.entry.js +20 -5
  14. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-empty-state_2.cjs.entry.js +17 -7
  16. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-radio-group.cjs.entry.js +2 -1
  22. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-tree-item.cjs.entry.js +8 -3
  28. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-tree-view.cjs.entry.js +7 -9
  30. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  31. package/dist/collection/components/ic-data-table/ic-data-table.css +19 -5
  32. package/dist/collection/components/ic-data-table/ic-data-table.js +9 -12
  33. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  34. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  35. package/dist/collection/components/ic-data-table/story-data.js +35 -0
  36. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  37. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +0 -27
  38. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  39. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +6 -6
  40. package/dist/collection/components/ic-date-input/ic-date-input.js +6 -0
  41. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  42. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +17 -7
  43. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  44. package/dist/collection/components/ic-tree-item/ic-tree-item.js +8 -3
  45. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  46. package/dist/collection/components/ic-tree-view/ic-tree-view.js +7 -9
  47. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  48. package/dist/components/ic-breadcrumb2.js +4 -3
  49. package/dist/components/ic-breadcrumb2.js.map +1 -1
  50. package/dist/components/ic-card-vertical.js +1 -1
  51. package/dist/components/ic-card-vertical.js.map +1 -1
  52. package/dist/components/ic-checkbox.js +1 -1
  53. package/dist/components/ic-checkbox.js.map +1 -1
  54. package/dist/components/ic-data-table-title-bar.js +1 -1
  55. package/dist/components/ic-data-table-title-bar.js.map +1 -1
  56. package/dist/components/ic-data-table.js +8 -11
  57. package/dist/components/ic-data-table.js.map +1 -1
  58. package/dist/components/ic-date-input2.js +6 -0
  59. package/dist/components/ic-date-input2.js.map +1 -1
  60. package/dist/components/ic-dialog.js +21 -6
  61. package/dist/components/ic-dialog.js.map +1 -1
  62. package/dist/components/ic-footer-link.js +1 -1
  63. package/dist/components/ic-footer-link.js.map +1 -1
  64. package/dist/components/ic-link2.js +1 -1
  65. package/dist/components/ic-link2.js.map +1 -1
  66. package/dist/components/ic-pagination-bar2.js +17 -7
  67. package/dist/components/ic-pagination-bar2.js.map +1 -1
  68. package/dist/components/ic-radio-group.js +2 -1
  69. package/dist/components/ic-radio-group.js.map +1 -1
  70. package/dist/components/ic-toggle-button.js +1 -1
  71. package/dist/components/ic-toggle-button.js.map +1 -1
  72. package/dist/components/ic-top-navigation.js +1 -1
  73. package/dist/components/ic-top-navigation.js.map +1 -1
  74. package/dist/components/ic-tree-item.js +8 -3
  75. package/dist/components/ic-tree-item.js.map +1 -1
  76. package/dist/components/ic-tree-view.js +7 -9
  77. package/dist/components/ic-tree-view.js.map +1 -1
  78. package/dist/core/core.css +9 -3
  79. package/dist/core/core.esm.js +1 -1
  80. package/dist/core/{p-c035d7b9.entry.js → p-007293a4.entry.js} +2 -2
  81. package/dist/core/{p-fc155ae2.entry.js → p-01e4affd.entry.js} +2 -2
  82. package/dist/core/{p-fc155ae2.entry.js.map → p-01e4affd.entry.js.map} +1 -1
  83. package/dist/core/{p-2169e75b.entry.js → p-052a9f31.entry.js} +2 -2
  84. package/dist/core/{p-b85466a7.entry.js → p-059c08a0.entry.js} +2 -2
  85. package/dist/core/{p-88913402.entry.js → p-07784e04.entry.js} +2 -2
  86. package/dist/core/p-07784e04.entry.js.map +1 -0
  87. package/dist/core/p-0c225c1a.entry.js +2 -0
  88. package/dist/core/p-0c225c1a.entry.js.map +1 -0
  89. package/dist/core/{p-3963201d.entry.js → p-14a6e578.entry.js} +2 -2
  90. package/dist/core/p-14a6e578.entry.js.map +1 -0
  91. package/dist/core/{p-4347f05c.entry.js → p-1684a003.entry.js} +2 -2
  92. package/dist/core/{p-82b408ad.entry.js → p-1af4b9c1.entry.js} +2 -2
  93. package/dist/core/{p-6ac8e09b.entry.js → p-1bf881bb.entry.js} +2 -2
  94. package/dist/core/{p-8ebd64ae.entry.js → p-1eb21184.entry.js} +2 -2
  95. package/dist/core/{p-0054bdc2.entry.js → p-2039e996.entry.js} +2 -2
  96. package/dist/core/{p-01a23e24.entry.js → p-20c780cb.entry.js} +2 -2
  97. package/dist/core/{p-be1ec9aa.entry.js → p-21c90000.entry.js} +2 -2
  98. package/dist/core/p-21c90000.entry.js.map +1 -0
  99. package/dist/core/{p-4f96bec1.entry.js → p-2376e171.entry.js} +2 -2
  100. package/dist/core/p-23f62fca.entry.js +2 -0
  101. package/dist/core/p-23f62fca.entry.js.map +1 -0
  102. package/dist/core/{p-71496305.entry.js → p-28c8d6e3.entry.js} +2 -2
  103. package/dist/core/p-2c59f79e.entry.js +2 -0
  104. package/dist/core/p-2c59f79e.entry.js.map +1 -0
  105. package/dist/core/{p-0c5d45e1.entry.js → p-2e261288.entry.js} +2 -2
  106. package/dist/core/{p-9a392c41.entry.js → p-36242f26.entry.js} +2 -2
  107. package/dist/core/{p-f3d2af04.entry.js → p-37cced7a.entry.js} +2 -2
  108. package/dist/core/{p-ce923b92.entry.js → p-3c17ca15.entry.js} +2 -2
  109. package/dist/core/{p-47a1ce8d.entry.js → p-435d9ce2.entry.js} +2 -2
  110. package/dist/core/p-47e0072d.entry.js +2 -0
  111. package/dist/core/p-47e0072d.entry.js.map +1 -0
  112. package/dist/core/{p-ace8126b.entry.js → p-49fbe074.entry.js} +2 -2
  113. package/dist/core/{p-78ed3070.entry.js → p-4ba91306.entry.js} +2 -2
  114. package/dist/core/{p-32726b89.entry.js → p-50e24896.entry.js} +2 -2
  115. package/dist/core/{p-41bfa3e5.entry.js → p-51c6561f.entry.js} +2 -2
  116. package/dist/core/p-534f7f0d.entry.js +2 -0
  117. package/dist/core/p-534f7f0d.entry.js.map +1 -0
  118. package/dist/core/{p-bd4401d5.entry.js → p-542ffaf4.entry.js} +2 -2
  119. package/dist/core/{p-8e56516a.entry.js → p-555dd292.entry.js} +2 -2
  120. package/dist/core/p-5d03b04e.entry.js +2 -0
  121. package/dist/core/p-5d03b04e.entry.js.map +1 -0
  122. package/dist/core/{p-54dc696e.entry.js → p-5e616d85.entry.js} +2 -2
  123. package/dist/core/{p-abda7e21.entry.js → p-64101c64.entry.js} +2 -2
  124. package/dist/core/{p-897fac99.js → p-70616efa.js} +2 -2
  125. package/dist/core/{p-d2b2b7df.entry.js → p-76c94cee.entry.js} +2 -2
  126. package/dist/core/{p-794ff553.entry.js → p-7d1f7976.entry.js} +2 -2
  127. package/dist/core/{p-063911a8.entry.js → p-9158c34f.entry.js} +2 -2
  128. package/dist/core/{p-15a5cce5.entry.js → p-91c720bc.entry.js} +2 -2
  129. package/dist/core/p-9bf9da9b.entry.js +2 -0
  130. package/dist/core/p-9bf9da9b.entry.js.map +1 -0
  131. package/dist/core/{p-33110185.entry.js → p-a33bf749.entry.js} +2 -2
  132. package/dist/core/{p-157b47bc.entry.js → p-a707b036.entry.js} +2 -2
  133. package/dist/core/p-a707b036.entry.js.map +1 -0
  134. package/dist/core/{p-bd87bf33.entry.js → p-a74be80c.entry.js} +2 -2
  135. package/dist/core/{p-abdd8560.entry.js → p-af547c0a.entry.js} +2 -2
  136. package/dist/core/{p-abdd8560.entry.js.map → p-af547c0a.entry.js.map} +1 -1
  137. package/dist/core/{p-b5a5fe39.entry.js → p-b0170269.entry.js} +2 -2
  138. package/dist/core/p-b6e385ba.entry.js +2 -0
  139. package/dist/core/p-b6e385ba.entry.js.map +1 -0
  140. package/dist/core/{p-51058719.entry.js → p-bb418e1b.entry.js} +2 -2
  141. package/dist/core/{p-1658e577.entry.js → p-d2dbb1dc.entry.js} +2 -2
  142. package/dist/core/{p-26aff39e.entry.js → p-e3303bbe.entry.js} +2 -2
  143. package/dist/core/{p-6188f029.entry.js → p-e62e5ca3.entry.js} +2 -2
  144. package/dist/core/{p-9462f294.entry.js → p-ebd84a67.entry.js} +2 -2
  145. package/dist/core/{p-b717ae40.entry.js → p-f154d6e6.entry.js} +2 -2
  146. package/dist/core/{p-77157922.entry.js → p-f1d5bdbd.entry.js} +2 -2
  147. package/dist/core/{p-a1d5fff2.entry.js → p-f482ccb8.entry.js} +2 -2
  148. package/dist/core/p-f60c8a1b.entry.js +2 -0
  149. package/dist/core/p-f60c8a1b.entry.js.map +1 -0
  150. package/dist/core/{p-45177148.entry.js → p-fc71c920.entry.js} +2 -2
  151. package/dist/esm/{helpers-56c75bf4.js → helpers-b4561326.js} +2 -2
  152. package/dist/esm/{helpers-56c75bf4.js.map → helpers-b4561326.js.map} +1 -1
  153. package/dist/esm/ic-accordion-group.entry.js +1 -1
  154. package/dist/esm/ic-accordion.entry.js +1 -1
  155. package/dist/esm/ic-alert.entry.js +1 -1
  156. package/dist/esm/ic-back-to-top.entry.js +1 -1
  157. package/dist/esm/ic-badge.entry.js +1 -1
  158. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  159. package/dist/esm/ic-breadcrumb.entry.js +5 -4
  160. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  161. package/dist/esm/ic-button_3.entry.js +1 -1
  162. package/dist/esm/ic-card-vertical.entry.js +2 -2
  163. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  164. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  165. package/dist/esm/ic-checkbox.entry.js +2 -2
  166. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  167. package/dist/esm/ic-chip.entry.js +1 -1
  168. package/dist/esm/ic-data-row.entry.js +1 -1
  169. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  170. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -1
  171. package/dist/esm/ic-data-table.entry.js +8 -11
  172. package/dist/esm/ic-data-table.entry.js.map +1 -1
  173. package/dist/esm/ic-date-input.entry.js +6 -0
  174. package/dist/esm/ic-date-input.entry.js.map +1 -1
  175. package/dist/esm/ic-dialog.entry.js +21 -6
  176. package/dist/esm/ic-dialog.entry.js.map +1 -1
  177. package/dist/esm/ic-divider.entry.js +1 -1
  178. package/dist/esm/ic-empty-state_2.entry.js +18 -8
  179. package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
  180. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  181. package/dist/esm/ic-footer-link.entry.js +2 -2
  182. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  183. package/dist/esm/ic-footer.entry.js +1 -1
  184. package/dist/esm/ic-hero.entry.js +1 -1
  185. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  186. package/dist/esm/ic-input-component-container_3.entry.js +1 -1
  187. package/dist/esm/ic-input-label_2.entry.js +1 -1
  188. package/dist/esm/ic-link.entry.js +2 -2
  189. package/dist/esm/ic-link.entry.js.map +1 -1
  190. package/dist/esm/ic-menu-group.entry.js +1 -1
  191. package/dist/esm/ic-menu-item.entry.js +1 -1
  192. package/dist/esm/ic-navigation-button.entry.js +1 -1
  193. package/dist/esm/ic-navigation-group.entry.js +1 -1
  194. package/dist/esm/ic-navigation-item.entry.js +1 -1
  195. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  196. package/dist/esm/ic-page-header.entry.js +1 -1
  197. package/dist/esm/ic-pagination_4.entry.js +1 -1
  198. package/dist/esm/ic-popover-menu.entry.js +1 -1
  199. package/dist/esm/ic-radio-group.entry.js +3 -2
  200. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  201. package/dist/esm/ic-radio-option.entry.js +1 -1
  202. package/dist/esm/ic-search-bar.entry.js +1 -1
  203. package/dist/esm/ic-side-navigation.entry.js +1 -1
  204. package/dist/esm/ic-status-tag.entry.js +1 -1
  205. package/dist/esm/ic-step.entry.js +1 -1
  206. package/dist/esm/ic-stepper.entry.js +1 -1
  207. package/dist/esm/ic-switch.entry.js +1 -1
  208. package/dist/esm/ic-tab-group.entry.js +1 -1
  209. package/dist/esm/ic-tab-panel.entry.js +1 -1
  210. package/dist/esm/ic-tab.entry.js +1 -1
  211. package/dist/esm/ic-theme.entry.js +1 -1
  212. package/dist/esm/ic-toast.entry.js +1 -1
  213. package/dist/esm/ic-toggle-button-group.entry.js +1 -1
  214. package/dist/esm/ic-toggle-button.entry.js +2 -2
  215. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  216. package/dist/esm/ic-top-navigation.entry.js +2 -2
  217. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  218. package/dist/esm/ic-tree-item.entry.js +8 -3
  219. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  220. package/dist/esm/ic-tree-view.entry.js +7 -9
  221. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  222. package/dist/esm/ic-typography.entry.js +1 -1
  223. package/dist/types/components/ic-data-table/ic-data-table.d.ts +1 -2
  224. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +1 -1
  225. package/dist/types/components/ic-data-table/story-data.d.ts +2 -0
  226. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +1 -0
  227. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +1 -0
  228. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +2 -0
  229. package/dist/types/components.d.ts +0 -2
  230. package/hydrate/index.js +79 -46
  231. package/package.json +3 -3
  232. package/dist/core/p-0c9155f4.entry.js +0 -2
  233. package/dist/core/p-0c9155f4.entry.js.map +0 -1
  234. package/dist/core/p-14098257.entry.js +0 -2
  235. package/dist/core/p-14098257.entry.js.map +0 -1
  236. package/dist/core/p-157b47bc.entry.js.map +0 -1
  237. package/dist/core/p-27b1223d.entry.js +0 -2
  238. package/dist/core/p-27b1223d.entry.js.map +0 -1
  239. package/dist/core/p-3963201d.entry.js.map +0 -1
  240. package/dist/core/p-51faa4ba.entry.js +0 -2
  241. package/dist/core/p-51faa4ba.entry.js.map +0 -1
  242. package/dist/core/p-88913402.entry.js.map +0 -1
  243. package/dist/core/p-a1cf5884.entry.js +0 -2
  244. package/dist/core/p-a1cf5884.entry.js.map +0 -1
  245. package/dist/core/p-a69ef3eb.entry.js +0 -2
  246. package/dist/core/p-a69ef3eb.entry.js.map +0 -1
  247. package/dist/core/p-b2a6f0dd.entry.js +0 -2
  248. package/dist/core/p-b2a6f0dd.entry.js.map +0 -1
  249. package/dist/core/p-be1ec9aa.entry.js.map +0 -1
  250. package/dist/core/p-e1df1b9a.entry.js +0 -2
  251. package/dist/core/p-e1df1b9a.entry.js.map +0 -1
  252. package/dist/core/p-ffb11ad1.entry.js +0 -2
  253. package/dist/core/p-ffb11ad1.entry.js.map +0 -1
  254. /package/dist/core/{p-c035d7b9.entry.js.map → p-007293a4.entry.js.map} +0 -0
  255. /package/dist/core/{p-2169e75b.entry.js.map → p-052a9f31.entry.js.map} +0 -0
  256. /package/dist/core/{p-b85466a7.entry.js.map → p-059c08a0.entry.js.map} +0 -0
  257. /package/dist/core/{p-4347f05c.entry.js.map → p-1684a003.entry.js.map} +0 -0
  258. /package/dist/core/{p-82b408ad.entry.js.map → p-1af4b9c1.entry.js.map} +0 -0
  259. /package/dist/core/{p-6ac8e09b.entry.js.map → p-1bf881bb.entry.js.map} +0 -0
  260. /package/dist/core/{p-8ebd64ae.entry.js.map → p-1eb21184.entry.js.map} +0 -0
  261. /package/dist/core/{p-0054bdc2.entry.js.map → p-2039e996.entry.js.map} +0 -0
  262. /package/dist/core/{p-01a23e24.entry.js.map → p-20c780cb.entry.js.map} +0 -0
  263. /package/dist/core/{p-4f96bec1.entry.js.map → p-2376e171.entry.js.map} +0 -0
  264. /package/dist/core/{p-71496305.entry.js.map → p-28c8d6e3.entry.js.map} +0 -0
  265. /package/dist/core/{p-0c5d45e1.entry.js.map → p-2e261288.entry.js.map} +0 -0
  266. /package/dist/core/{p-9a392c41.entry.js.map → p-36242f26.entry.js.map} +0 -0
  267. /package/dist/core/{p-f3d2af04.entry.js.map → p-37cced7a.entry.js.map} +0 -0
  268. /package/dist/core/{p-ce923b92.entry.js.map → p-3c17ca15.entry.js.map} +0 -0
  269. /package/dist/core/{p-47a1ce8d.entry.js.map → p-435d9ce2.entry.js.map} +0 -0
  270. /package/dist/core/{p-ace8126b.entry.js.map → p-49fbe074.entry.js.map} +0 -0
  271. /package/dist/core/{p-78ed3070.entry.js.map → p-4ba91306.entry.js.map} +0 -0
  272. /package/dist/core/{p-32726b89.entry.js.map → p-50e24896.entry.js.map} +0 -0
  273. /package/dist/core/{p-41bfa3e5.entry.js.map → p-51c6561f.entry.js.map} +0 -0
  274. /package/dist/core/{p-bd4401d5.entry.js.map → p-542ffaf4.entry.js.map} +0 -0
  275. /package/dist/core/{p-8e56516a.entry.js.map → p-555dd292.entry.js.map} +0 -0
  276. /package/dist/core/{p-54dc696e.entry.js.map → p-5e616d85.entry.js.map} +0 -0
  277. /package/dist/core/{p-abda7e21.entry.js.map → p-64101c64.entry.js.map} +0 -0
  278. /package/dist/core/{p-897fac99.js.map → p-70616efa.js.map} +0 -0
  279. /package/dist/core/{p-d2b2b7df.entry.js.map → p-76c94cee.entry.js.map} +0 -0
  280. /package/dist/core/{p-794ff553.entry.js.map → p-7d1f7976.entry.js.map} +0 -0
  281. /package/dist/core/{p-063911a8.entry.js.map → p-9158c34f.entry.js.map} +0 -0
  282. /package/dist/core/{p-15a5cce5.entry.js.map → p-91c720bc.entry.js.map} +0 -0
  283. /package/dist/core/{p-33110185.entry.js.map → p-a33bf749.entry.js.map} +0 -0
  284. /package/dist/core/{p-bd87bf33.entry.js.map → p-a74be80c.entry.js.map} +0 -0
  285. /package/dist/core/{p-b5a5fe39.entry.js.map → p-b0170269.entry.js.map} +0 -0
  286. /package/dist/core/{p-51058719.entry.js.map → p-bb418e1b.entry.js.map} +0 -0
  287. /package/dist/core/{p-1658e577.entry.js.map → p-d2dbb1dc.entry.js.map} +0 -0
  288. /package/dist/core/{p-26aff39e.entry.js.map → p-e3303bbe.entry.js.map} +0 -0
  289. /package/dist/core/{p-6188f029.entry.js.map → p-e62e5ca3.entry.js.map} +0 -0
  290. /package/dist/core/{p-9462f294.entry.js.map → p-ebd84a67.entry.js.map} +0 -0
  291. /package/dist/core/{p-b717ae40.entry.js.map → p-f154d6e6.entry.js.map} +0 -0
  292. /package/dist/core/{p-77157922.entry.js.map → p-f1d5bdbd.entry.js.map} +0 -0
  293. /package/dist/core/{p-a1d5fff2.entry.js.map → p-f482ccb8.entry.js.map} +0 -0
  294. /package/dist/core/{p-45177148.entry.js.map → p-fc71c920.entry.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{r as i,c as t,h as e,H as s,g as a}from"./p-8455d1bb.js";import{c as o}from"./p-e081702e.js";import{f as n,i as r,b as l}from"./p-897fac99.js";const h='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;min-height:100% !important;background:rgb(0 0 0 / 60%);z-index:var(--ic-z-index-dialog);opacity:0}:host(.ic-dialog-fade-in){opacity:1}:host(.disable-height-constraint){background:none;justify-content:unset;align-items:unset}.dialog.disable-height-constraint{max-height:none;position:relative}.dialog.disable-height-constraint .content-area{overflow-y:visible}@media (prefers-reduced-motion: no-preference){:host{transition:opacity var(--ic-easing-transition-slow)}.dialog{transform:translateY(-3rem);transition:transform 1000s}:host(.ic-dialog-fade-in) .dialog{transform:translateY(0);transition:transform var(--ic-easing-transition-slow)}}:host(.ic-dialog-hidden){display:none}.dialog{background-color:var(--ic-dialog-background);color:var(--ic-dialog-text-primary);--ic-typography-color:var(--ic-dialog-text-primary);border:var(--ic-space-1px) solid var(--ic-dialog-border);border-radius:var(--ic-border-radius);padding:var(--ic-space-xs) 0 var(--ic-space-md);display:flex;flex-direction:column;box-sizing:border-box;overflow-x:visible}.small{width:50%;max-width:25rem;min-height:11rem;max-height:70vh}.medium{width:70vw;max-width:44rem;min-height:12.5rem;max-height:70vh}.large{width:90vw;max-width:62.5rem;min-height:12.5rem;max-height:90vh}.heading-area{display:flex;margin-bottom:var(--ic-space-xs);padding:0 var(--ic-space-md)}.heading{overflow-wrap:break-word}.close-icon{margin-left:auto}.close-icon>svg{color:var(--ic-dialog-clear-button)}.content-area{-ms-overflow-style:none;scrollbar-width:none;padding:0 var(--ic-space-md);margin:0;overflow-y:auto}.content-area::-webkit-scrollbar{display:none}#dialog-content{margin-bottom:var(--ic-space-sm)}#dialog-content ::slotted(ic-typography){overflow-wrap:break-word}#dialog-content ::slotted(*){position:relative}.dialog-controls{margin-top:auto;padding:var(--ic-space-xs) var(--ic-space-md) 0;display:flex;justify-content:flex-end;gap:var(--ic-space-md)}.dialog-control-button{width:-moz-fit-content;width:fit-content}.backdrop{overflow-y:auto;position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgb(0 0 0 / 60%);z-index:var(--ic-z-index-dialog);padding-top:16px;padding-bottom:16px}.heading ic-typography{--ic-typography-color:var(--ic-dialog-text-primary)}.label ic-typography{--ic-typography-color:var(--ic-dialog-label)}@media (min-width: 800px){:host([size="large"]) .dialog:not(.disable-width-constraint)>.content-area{width:75%}}@media (max-width: 576px){.dialog{width:100vw;height:100vh;transform:translateY(-5rem);max-width:none;max-height:none;box-sizing:border-box}.backdrop{padding:0}.dialog.disable-height-constraint{height:auto;min-height:100vh}}@media (max-width: 364px){.dialog-control-button{width:unset}}';const d=class{constructor(s){i(this,s);this.icDialogCancelled=t(this,"icDialogCancelled",7);this.icDialogClosed=t(this,"icDialogClosed",7);this.icDialogConfirmed=t(this,"icDialogConfirmed",7);this.icDialogOpened=t(this,"icDialogOpened",7);this.DATA_GETS_FOCUS="data-gets-focus";this.DATA_GETS_FOCUS_SELECTOR="[data-gets-focus]";this.DIALOG_CONTROLS="dialog-controls";this.dialogHeight=0;this.focusedElementIndex=0;this.IC_TEXT_FIELD="IC-TEXT-FIELD";this.IC_ACCORDION="IC-ACCORDION";this.IC_ACCORDION_GROUP="IC-ACCORDION-GROUP";this.resizeObserver=null;this.dialogOpened=()=>{var i;this.dialogRendered=true;if(this.disableHeightConstraint){this.dialogEl.show()}else{(i=this.dialogEl)===null||i===void 0?void 0:i.showModal()}setTimeout((()=>{this.fadeIn=true;if(this.disableHeightConstraint&&this.backdropEl.scrollTop!==0){this.backdropEl.scrollTop=0}}),10);setTimeout((()=>{this.setInitialFocus();n(this.runResizeObserver)}),75);setTimeout((()=>{this.getFocusedElementIndex();this.icDialogOpened.emit()}),80)};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{clearTimeout(this.resizeTimeout);this.resizeTimeout=window.setTimeout(this.resizeObserverCallback,80)}));this.resizeObserver.observe(this.dialogEl)};this.resizeObserverCallback=()=>{if(this.dialogEl.clientHeight!==this.dialogHeight){this.dialogHeight=this.dialogEl.clientHeight}};this.refreshInteractiveElementsOnSlotChange=()=>{this.contentArea=this.el.shadowRoot.querySelector("#dialog-content slot");this.contentArea.addEventListener("slotchange",this.getInteractiveElements)};this.removeSlotChangeListener=()=>{if(this.contentArea){this.contentArea.removeEventListener("slotchange",this.getInteractiveElements)}};this.setInitialFocus=()=>{this.sourceElement=document.activeElement;let i;if(this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR)!==null){i=this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR)}else{i=this.el.shadowRoot.querySelector(this.DATA_GETS_FOCUS_SELECTOR)}if(i.tagName===this.IC_TEXT_FIELD){i.setFocus()}else if(i.tagName===this.IC_ACCORDION_GROUP){i.setFocus()}else if(i.tagName===this.IC_ACCORDION){i.setFocus()}else{i.focus({preventScroll:this.disableHeightConstraint?true:false})}};this.getFocusedElementIndex=()=>{for(let i=0;i<this.interactiveElementList.length;i++){if(this.interactiveElementList[i]===(this.el.shadowRoot.activeElement||document.activeElement)){this.focusedElementIndex=i}}};this.closeIconClick=()=>{this.open=false};this.getInteractiveElements=()=>{this.interactiveElementList=Array.from(this.el.shadowRoot.querySelectorAll("ic-button"));const i=Array.from(this.el.querySelectorAll(`a[href], button, input:not(.ic-input), textarea, select, details, [tabindex]:not([tabindex="-1"]), \n ic-button, ic-checkbox, ic-select, ic-search-bar, ic-tab-group, ic-radio-group, \n ic-back-to-top, ic-breadcrumb, ic-chip[dismissible="true"], ic-footer-link, ic-link, ic-navigation-button, \n ic-navigation-item, ic-switch, ic-text-field, ic-accordion-group, ic-accordion, ic-date-input, ic-date-picker`));if(i.length>0){if(i[0].slot!==this.DIALOG_CONTROLS){i[0].setAttribute(this.DATA_GETS_FOCUS,"")}else if(!this.destructive){i[i.length-1].setAttribute(this.DATA_GETS_FOCUS,"")}}for(let t=0;t<i.length;t++){this.interactiveElementList.splice(1+t,0,i[t])}};this.getNextFocusEl=i=>this.interactiveElementList[i];this.focusNextInteractiveElement=i=>{this.getFocusedElementIndex();if(this.interactiveElementList[this.focusedElementIndex].tagName==="IC-SEARCH-BAR"){return false}this.setFocusIndexBasedOnShiftKey(i);this.loopNextFocusIndexIfLastElement();let t=this.getNextFocusEl(this.focusedElementIndex);const e=getComputedStyle(t).visibility==="hidden"||t.tagName===this.IC_ACCORDION_GROUP&&t.hasAttribute("single-expansion");if(t.tagName===this.IC_TEXT_FIELD){t.setFocus()}else{if(e){this.setFocusIndexBasedOnShiftKey(i);this.loopNextFocusIndexIfLastElement();t=this.getNextFocusEl(this.focusedElementIndex)}if(t.tagName===this.IC_ACCORDION_GROUP){t.setFocus()}else if(t.tagName===this.IC_ACCORDION){t.setFocus()}else{t.focus()}}return true};this.renderDialog=()=>{const{buttons:i,size:t,heading:s,label:a,destructive:n,dismissLabel:l,hideCloseButton:h}=this;return e("dialog",{class:{["dialog"]:true,[`${t}`]:true,["disable-height-constraint"]:this.disableHeightConstraint,["disable-width-constraint"]:this.disableWidthConstraint},"aria-labelledby":"dialog-label dialog-heading","aria-describedby":"dialog-alert dialog-content",ref:i=>this.dialogEl=i},e("div",{class:"heading-area"},e("div",{class:"heading-content"},e("div",{class:"label"},e("slot",{name:"label"},e("ic-typography",{variant:"label",id:"dialog-label"},a))),e("div",{class:"heading"},e("slot",{name:"heading"},e("ic-typography",{variant:"h4",id:"dialog-heading"},s)))),!h&&e("ic-button",{class:"close-icon",variant:"icon",innerHTML:o,"aria-label":l,onClick:this.closeIconClick,"data-gets-focus":n||!i?"":null})),e("div",{class:"content-area"},r(this.el,"alert")&&e("slot",{name:"alert"}),e("div",{id:"dialog-content"},e("slot",null))),i&&(r(this.el,this.DIALOG_CONTROLS)?e("div",{class:{[this.DIALOG_CONTROLS]:true}},e("slot",{name:this.DIALOG_CONTROLS})):e("div",{class:{[this.DIALOG_CONTROLS]:true}},e("ic-button",{variant:"tertiary",onClick:()=>this.cancelDialog(),class:"dialog-control-button","data-gets-focus":null},"Cancel"),e("ic-button",{variant:this.destructive?"destructive":"primary",onClick:()=>this.confirmDialog(),class:"dialog-control-button","data-gets-focus":""},"Confirm"))))};this.dialogRendered=false;this.fadeIn=false;this.buttons=true;this.closeOnBackdropClick=true;this.destructive=false;this.dismissLabel="Dismiss";this.disableHeightConstraint=false;this.disableWidthConstraint=false;this.hideCloseButton=false;this.heading=undefined;this.label=undefined;this.open=undefined;this.size="small";this.theme="inherit"}watchOpenHandler(){if(this.open){this.dialogOpened()}else{this.fadeIn=false;if(this.resizeObserver!==null){this.resizeObserver.disconnect()}setTimeout((()=>{var i;this.dialogRendered=false;this.dialogEl.close();(i=this.sourceElement)===null||i===void 0?void 0:i.focus();this.dialogHeight=0;this.icDialogClosed.emit()}),80)}}disconnectedCallback(){this.removeSlotChangeListener()}componentDidLoad(){this.getInteractiveElements();this.refreshInteractiveElementsOnSlotChange();if(this.open){this.dialogOpened()}!r(this.el,"heading")&&l([{prop:this.heading,propName:"heading"}],"Dialog")}componentDidRender(){if(getComputedStyle(this.el).display!=="none"&&this.disableHeightConstraint){document.body.style.overflow="hidden"}else{document.body.style.overflow="auto"}}handleKeyboard(i){if(this.dialogRendered){switch(i.key){case"Tab":if(this.focusNextInteractiveElement(i.shiftKey)){i.preventDefault()}break;case"Escape":if(!i.repeat){this.open=false}i.stopImmediatePropagation();break}}}handleClick(i){const t=this.el.shadowRoot.querySelector("dialog");if(this.closeOnBackdropClick&&i.composedPath().indexOf(t)<=0){const t=this.dialogEl.getBoundingClientRect();const e=t.top<=i.clientY&&i.clientY<=t.top+t.height&&t.left<=i.clientX&&i.clientX<=t.left+t.width;if(!e){this.open=false}}}async cancelDialog(){this.icDialogCancelled.emit();this.open=false}async confirmDialog(){this.icDialogConfirmed.emit()}loopNextFocusIndexIfLastElement(){if(this.focusedElementIndex>this.interactiveElementList.length-1)this.focusedElementIndex=0;else if(this.focusedElementIndex<0){this.focusedElementIndex=this.interactiveElementList.length-1}}setFocusIndexBasedOnShiftKey(i){if(i){this.focusedElementIndex-=1}else{this.focusedElementIndex+=1}}render(){return e(s,{class:{["ic-dialog-hidden"]:!this.dialogRendered,["ic-dialog-fade-in"]:this.fadeIn,["disable-height-constraint"]:this.disableHeightConstraint,[`ic-theme-${this.theme}`]:this.theme!=="inherit"}},this.disableHeightConstraint?e("div",{class:"backdrop",ref:i=>this.backdropEl=i},this.renderDialog()):this.renderDialog())}get el(){return a(this)}static get watchers(){return{open:["watchOpenHandler"]}}};d.style=h;export{d as ic_dialog};
2
- //# sourceMappingURL=p-51faa4ba.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icDialogCss","Dialog","constructor","hostRef","this","DATA_GETS_FOCUS","DATA_GETS_FOCUS_SELECTOR","DIALOG_CONTROLS","dialogHeight","focusedElementIndex","IC_TEXT_FIELD","IC_ACCORDION","IC_ACCORDION_GROUP","resizeObserver","dialogOpened","_a","dialogRendered","disableHeightConstraint","dialogEl","show","showModal","setTimeout","fadeIn","backdropEl","scrollTop","setInitialFocus","checkResizeObserver","runResizeObserver","getFocusedElementIndex","icDialogOpened","emit","ResizeObserver","clearTimeout","resizeTimeout","window","resizeObserverCallback","observe","clientHeight","refreshInteractiveElementsOnSlotChange","contentArea","el","shadowRoot","querySelector","addEventListener","getInteractiveElements","removeSlotChangeListener","removeEventListener","sourceElement","document","activeElement","focusedElement","tagName","setFocus","focus","preventScroll","i","interactiveElementList","length","closeIconClick","open","Array","from","querySelectorAll","slottedInteractiveElements","slot","setAttribute","destructive","splice","getNextFocusEl","focusNextInteractiveElement","shiftKey","setFocusIndexBasedOnShiftKey","loopNextFocusIndexIfLastElement","nextFocusEl","isHidden","getComputedStyle","visibility","hasAttribute","renderDialog","buttons","size","heading","label","dismissLabel","hideCloseButton","h","class","disableWidthConstraint","ref","name","variant","id","innerHTML","closeIcon","onClick","isSlotUsed","cancelDialog","confirmDialog","closeOnBackdropClick","undefined","theme","watchOpenHandler","disconnect","close","icDialogClosed","disconnectedCallback","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidRender","display","body","style","overflow","handleKeyboard","ev","key","preventDefault","repeat","stopImmediatePropagation","handleClick","dialogElement","composedPath","indexOf","rect","getBoundingClientRect","isInDialog","top","clientY","height","left","clientX","width","icDialogCancelled","icDialogConfirmed","render","Host"],"sources":["../web-components/dist/collection/components/ic-dialog/ic-dialog.css?tag=ic-dialog&encapsulation=shadow","../web-components/dist/collection/components/ic-dialog/ic-dialog.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/**\n * @prop --ic-z-index-dialog: z-index of dialog \n */\n\n:host {\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100% !important;\n background: rgb(0 0 0 / 60%);\n z-index: var(--ic-z-index-dialog);\n opacity: 0;\n}\n\n:host(.ic-dialog-fade-in) {\n opacity: 1;\n}\n\n:host(.disable-height-constraint) {\n background: none;\n justify-content: unset;\n align-items: unset;\n}\n\n.dialog.disable-height-constraint {\n max-height: none;\n position: relative;\n}\n\n.dialog.disable-height-constraint .content-area {\n overflow-y: visible;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :host {\n transition: opacity var(--ic-easing-transition-slow);\n }\n\n .dialog {\n transform: translateY(-3rem);\n transition: transform 1000s;\n }\n\n :host(.ic-dialog-fade-in) .dialog {\n transform: translateY(0);\n transition: transform var(--ic-easing-transition-slow);\n }\n}\n\n:host(.ic-dialog-hidden) {\n display: none;\n}\n\n.dialog {\n background-color: var(--ic-dialog-background);\n color: var(--ic-dialog-text-primary);\n --ic-typography-color: var(--ic-dialog-text-primary);\n border: var(--ic-space-1px) solid var(--ic-dialog-border);\n border-radius: var(--ic-border-radius);\n padding: var(--ic-space-xs) 0 var(--ic-space-md);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n overflow-x: visible;\n}\n\n.small {\n width: 50%;\n max-width: 25rem;\n min-height: 11rem;\n max-height: 70vh;\n}\n\n.medium {\n width: 70vw;\n max-width: 44rem;\n min-height: 12.5rem;\n max-height: 70vh;\n}\n\n.large {\n width: 90vw;\n max-width: 62.5rem;\n min-height: 12.5rem;\n max-height: 90vh;\n}\n\n.heading-area {\n display: flex;\n margin-bottom: var(--ic-space-xs);\n padding: 0 var(--ic-space-md);\n}\n\n.heading {\n overflow-wrap: break-word;\n}\n\n.close-icon {\n margin-left: auto;\n}\n\n.close-icon > svg {\n color: var(--ic-dialog-clear-button);\n}\n\n.content-area {\n -ms-overflow-style: none;\n scrollbar-width: none;\n padding: 0 var(--ic-space-md);\n margin: 0;\n overflow-y: auto;\n}\n\n.content-area::-webkit-scrollbar {\n display: none;\n}\n\n#dialog-content {\n margin-bottom: var(--ic-space-sm);\n}\n\n#dialog-content ::slotted(ic-typography) {\n overflow-wrap: break-word;\n}\n\n#dialog-content ::slotted(*) {\n position: relative;\n}\n\n.dialog-controls {\n margin-top: auto;\n padding: var(--ic-space-xs) var(--ic-space-md) 0;\n display: flex;\n justify-content: flex-end;\n gap: var(--ic-space-md);\n}\n\n.dialog-control-button {\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.backdrop {\n overflow-y: auto;\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgb(0 0 0 / 60%);\n z-index: var(--ic-z-index-dialog);\n padding-top: 16px;\n padding-bottom: 16px;\n}\n\n.heading ic-typography {\n --ic-typography-color: var(--ic-dialog-text-primary);\n}\n\n.label ic-typography {\n --ic-typography-color: var(--ic-dialog-label);\n}\n\n@media (min-width: 800px) {\n :host([size=\"large\"]) .dialog:not(.disable-width-constraint) > .content-area {\n width: 75%;\n }\n}\n\n@media (max-width: 576px) {\n .dialog {\n width: 100vw;\n height: 100vh;\n transform: translateY(-5rem);\n max-width: none;\n max-height: none;\n box-sizing: border-box;\n }\n\n .backdrop {\n padding: 0;\n }\n\n .dialog.disable-height-constraint {\n height: auto;\n min-height: 100vh;\n }\n}\n\n@media (max-width: 364px) {\n .dialog-control-button {\n width: unset;\n }\n}\n","import { Host, h, } from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { isSlotUsed, checkResizeObserver, onComponentRequiredPropUndefined, } from \"../../utils/helpers\";\n/**\n * @slot dialog-controls - Content will be place at the bottom of the dialog.\n * @slot heading - Content will be placed at the top of the dialog.\n * @slot label - Content will be placed above the dialog heading.\n * @slot alert - Content will be placed at the top of the content area of the dialog.\n */\nexport class Dialog {\n constructor() {\n this.DATA_GETS_FOCUS = \"data-gets-focus\";\n this.DATA_GETS_FOCUS_SELECTOR = \"[data-gets-focus]\";\n this.DIALOG_CONTROLS = \"dialog-controls\";\n this.dialogHeight = 0;\n this.focusedElementIndex = 0;\n this.IC_TEXT_FIELD = \"IC-TEXT-FIELD\";\n this.IC_ACCORDION = \"IC-ACCORDION\";\n this.IC_ACCORDION_GROUP = \"IC-ACCORDION-GROUP\";\n this.resizeObserver = null;\n this.dialogOpened = () => {\n var _a;\n this.dialogRendered = true;\n if (this.disableHeightConstraint) {\n this.dialogEl.show();\n }\n else {\n (_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.showModal();\n }\n setTimeout(() => {\n this.fadeIn = true;\n /**\n * This is required to set scroll back to top if:\n * - dialog content goes below the fold\n * - is closed using cancel or confirm and reopened.\n *\n * Without this, the scroll bar will start from the dialog's last scroll-x coordinate.\n */\n if (this.disableHeightConstraint && this.backdropEl.scrollTop !== 0) {\n this.backdropEl.scrollTop = 0;\n }\n }, 10);\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n setTimeout(() => {\n this.getFocusedElementIndex();\n this.icDialogOpened.emit();\n }, 80);\n };\n this.runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(this.resizeObserverCallback, 80);\n });\n this.resizeObserver.observe(this.dialogEl);\n };\n this.resizeObserverCallback = () => {\n if (this.dialogEl.clientHeight !== this.dialogHeight) {\n this.dialogHeight = this.dialogEl.clientHeight;\n }\n };\n this.refreshInteractiveElementsOnSlotChange = () => {\n this.contentArea = this.el.shadowRoot.querySelector(\"#dialog-content slot\");\n this.contentArea.addEventListener(\"slotchange\", this.getInteractiveElements);\n };\n this.removeSlotChangeListener = () => {\n if (this.contentArea) {\n this.contentArea.removeEventListener(\"slotchange\", this.getInteractiveElements);\n }\n };\n this.setInitialFocus = () => {\n this.sourceElement = document.activeElement;\n let focusedElement;\n if (this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR) !== null) {\n focusedElement = this.el.querySelector(this.DATA_GETS_FOCUS_SELECTOR);\n }\n else {\n focusedElement = this.el.shadowRoot.querySelector(this.DATA_GETS_FOCUS_SELECTOR);\n }\n if (focusedElement.tagName === this.IC_TEXT_FIELD) {\n focusedElement.setFocus();\n }\n else if (focusedElement.tagName === this.IC_ACCORDION_GROUP) {\n focusedElement.setFocus();\n }\n else if (focusedElement.tagName === this.IC_ACCORDION) {\n focusedElement.setFocus();\n }\n else {\n focusedElement.focus({\n preventScroll: this.disableHeightConstraint ? true : false,\n });\n }\n };\n this.getFocusedElementIndex = () => {\n for (let i = 0; i < this.interactiveElementList.length; i++) {\n if (this.interactiveElementList[i] ===\n (this.el.shadowRoot.activeElement || document.activeElement)) {\n this.focusedElementIndex = i;\n }\n }\n };\n this.closeIconClick = () => {\n this.open = false;\n };\n this.getInteractiveElements = () => {\n this.interactiveElementList = Array.from(this.el.shadowRoot.querySelectorAll(\"ic-button\"));\n const slottedInteractiveElements = Array.from(this.el.querySelectorAll(`a[href], button, input:not(.ic-input), textarea, select, details, [tabindex]:not([tabindex=\"-1\"]), \n ic-button, ic-checkbox, ic-select, ic-search-bar, ic-tab-group, ic-radio-group, \n ic-back-to-top, ic-breadcrumb, ic-chip[dismissible=\"true\"], ic-footer-link, ic-link, ic-navigation-button, \n ic-navigation-item, ic-switch, ic-text-field, ic-accordion-group, ic-accordion, ic-date-input, ic-date-picker`));\n if (slottedInteractiveElements.length > 0) {\n if (slottedInteractiveElements[0].slot !== this.DIALOG_CONTROLS) {\n slottedInteractiveElements[0].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n else if (!this.destructive) {\n slottedInteractiveElements[slottedInteractiveElements.length - 1].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n }\n for (let i = 0; i < slottedInteractiveElements.length; i++) {\n this.interactiveElementList.splice(1 + i, 0, slottedInteractiveElements[i]);\n }\n };\n this.getNextFocusEl = (focusedElementIndex) => this.interactiveElementList[focusedElementIndex];\n this.focusNextInteractiveElement = (shiftKey) => {\n this.getFocusedElementIndex();\n if (this.interactiveElementList[this.focusedElementIndex].tagName ===\n \"IC-SEARCH-BAR\") {\n return false;\n }\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n let nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n const isHidden = getComputedStyle(nextFocusEl).visibility === \"hidden\" ||\n (nextFocusEl.tagName === this.IC_ACCORDION_GROUP &&\n nextFocusEl.hasAttribute(\"single-expansion\"));\n if (nextFocusEl.tagName === this.IC_TEXT_FIELD) {\n nextFocusEl.setFocus();\n }\n else {\n if (isHidden) {\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n }\n if (nextFocusEl.tagName === this.IC_ACCORDION_GROUP) {\n nextFocusEl.setFocus();\n }\n else if (nextFocusEl.tagName === this.IC_ACCORDION) {\n nextFocusEl.setFocus();\n }\n else {\n nextFocusEl.focus();\n }\n }\n return true;\n };\n this.renderDialog = () => {\n const { buttons, size, heading, label, destructive, dismissLabel, hideCloseButton, } = this;\n return (h(\"dialog\", { class: {\n [\"dialog\"]: true,\n [`${size}`]: true,\n [\"disable-height-constraint\"]: this.disableHeightConstraint,\n [\"disable-width-constraint\"]: this.disableWidthConstraint,\n }, \"aria-labelledby\": \"dialog-label dialog-heading\", \"aria-describedby\": \"dialog-alert dialog-content\", ref: (el) => (this.dialogEl = el) }, h(\"div\", { class: \"heading-area\" }, h(\"div\", { class: \"heading-content\" }, h(\"div\", { class: \"label\" }, h(\"slot\", { name: \"label\" }, h(\"ic-typography\", { variant: \"label\", id: \"dialog-label\" }, label))), h(\"div\", { class: \"heading\" }, h(\"slot\", { name: \"heading\" }, h(\"ic-typography\", { variant: \"h4\", id: \"dialog-heading\" }, heading)))), !hideCloseButton && (h(\"ic-button\", { class: \"close-icon\", variant: \"icon\", innerHTML: closeIcon, \"aria-label\": dismissLabel, onClick: this.closeIconClick, \"data-gets-focus\": destructive || !buttons ? \"\" : null }))), h(\"div\", { class: \"content-area\" }, isSlotUsed(this.el, \"alert\") && h(\"slot\", { name: \"alert\" }), h(\"div\", { id: \"dialog-content\" }, h(\"slot\", null))), buttons &&\n (isSlotUsed(this.el, this.DIALOG_CONTROLS) ? (h(\"div\", { class: {\n [this.DIALOG_CONTROLS]: true,\n } }, h(\"slot\", { name: this.DIALOG_CONTROLS }))) : (h(\"div\", { class: {\n [this.DIALOG_CONTROLS]: true,\n } }, h(\"ic-button\", { variant: \"tertiary\", onClick: () => this.cancelDialog(), class: \"dialog-control-button\", \"data-gets-focus\": null }, \"Cancel\"), h(\"ic-button\", { variant: this.destructive ? \"destructive\" : \"primary\", onClick: () => this.confirmDialog(), class: \"dialog-control-button\", \"data-gets-focus\": \"\" }, \"Confirm\"))))));\n };\n this.dialogRendered = false;\n this.fadeIn = false;\n this.buttons = true;\n this.closeOnBackdropClick = true;\n this.destructive = false;\n this.dismissLabel = \"Dismiss\";\n this.disableHeightConstraint = false;\n this.disableWidthConstraint = false;\n this.hideCloseButton = false;\n this.heading = undefined;\n this.label = undefined;\n this.open = undefined;\n this.size = \"small\";\n this.theme = \"inherit\";\n }\n watchOpenHandler() {\n if (this.open) {\n this.dialogOpened();\n }\n else {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n var _a;\n this.dialogRendered = false;\n this.dialogEl.close();\n (_a = this.sourceElement) === null || _a === void 0 ? void 0 : _a.focus();\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\n }\n }\n disconnectedCallback() {\n this.removeSlotChangeListener();\n }\n componentDidLoad() {\n this.getInteractiveElements();\n this.refreshInteractiveElementsOnSlotChange();\n if (this.open) {\n this.dialogOpened();\n }\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined([{ prop: this.heading, propName: \"heading\" }], \"Dialog\");\n }\n componentDidRender() {\n if (getComputedStyle(this.el).display !== \"none\" &&\n this.disableHeightConstraint) {\n document.body.style.overflow = \"hidden\";\n }\n else {\n document.body.style.overflow = \"auto\";\n }\n }\n handleKeyboard(ev) {\n if (this.dialogRendered) {\n switch (ev.key) {\n case \"Tab\":\n if (this.focusNextInteractiveElement(ev.shiftKey)) {\n ev.preventDefault();\n }\n break;\n case \"Escape\":\n if (!ev.repeat) {\n this.open = false;\n }\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n handleClick(ev) {\n const dialogElement = this.el.shadowRoot.querySelector(\"dialog\");\n if (this.closeOnBackdropClick &&\n ev.composedPath().indexOf(dialogElement) <= 0) {\n const rect = this.dialogEl.getBoundingClientRect();\n const isInDialog = rect.top <= ev.clientY &&\n ev.clientY <= rect.top + rect.height &&\n rect.left <= ev.clientX &&\n ev.clientX <= rect.left + rect.width;\n if (!isInDialog) {\n this.open = false;\n }\n }\n }\n /**\n * Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\n */\n async cancelDialog() {\n this.icDialogCancelled.emit();\n this.open = false;\n }\n /**\n * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\n */\n async confirmDialog() {\n this.icDialogConfirmed.emit();\n }\n loopNextFocusIndexIfLastElement() {\n if (this.focusedElementIndex > this.interactiveElementList.length - 1)\n this.focusedElementIndex = 0;\n else if (this.focusedElementIndex < 0) {\n this.focusedElementIndex = this.interactiveElementList.length - 1;\n }\n }\n setFocusIndexBasedOnShiftKey(shiftKey) {\n if (shiftKey) {\n this.focusedElementIndex -= 1;\n }\n else {\n this.focusedElementIndex += 1;\n }\n }\n render() {\n return (h(Host, { class: {\n [\"ic-dialog-hidden\"]: !this.dialogRendered,\n [\"ic-dialog-fade-in\"]: this.fadeIn,\n [\"disable-height-constraint\"]: this.disableHeightConstraint,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n } }, this.disableHeightConstraint ? (h(\"div\", { class: \"backdrop\", ref: (el) => (this.backdropEl = el) }, this.renderDialog())) : (this.renderDialog())));\n }\n static get is() { return \"ic-dialog\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-dialog.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-dialog.css\"]\n };\n }\n static get properties() {\n return {\n \"buttons\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `false`, default buttons will not be shown, but slotted dialog controls will still be displayed.\"\n },\n \"attribute\": \"buttons\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"closeOnBackdropClick\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `false`, the dialog will not close when the backdrop is clicked.\"\n },\n \"attribute\": \"close-on-backdrop-click\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"destructive\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If 'true', sets the 'primary' or rightmost button to the destructive variant. Stops initial focus being set on the 'primary' or rightmost default or slotted button.\"\n },\n \"attribute\": \"destructive\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"dismissLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the dismiss label tooltip and aria label.\"\n },\n \"attribute\": \"dismiss-label\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Dismiss\\\"\"\n },\n \"disableHeightConstraint\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, the content area max height and overflow properties are removed allowing the dialog to stretch below the fold.\\nThis prop also prevents popover elements from being cut off within the content area.\"\n },\n \"attribute\": \"disable-height-constraint\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disableWidthConstraint\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If set to `true`, the content area width property is removed, allowing content to take the full width of the dialog when using the large variant.\"\n },\n \"attribute\": \"disable-width-constraint\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"hideCloseButton\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the close button will not be displayed.\"\n },\n \"attribute\": \"hide-close-button\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"heading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the heading for the dialog.\"\n },\n \"attribute\": \"heading\",\n \"reflect\": false\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the optional label for the dialog which appears above the heading.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"open\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the dialog will be displayed.\"\n },\n \"attribute\": \"open\",\n \"reflect\": true,\n \"defaultValue\": \"undefined\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"small\\\" | \\\"medium\\\" | \\\"large\\\"\",\n \"resolved\": \"\\\"large\\\" | \\\"medium\\\" | \\\"small\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the maximum and minimum height and width for the dialog.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"small\\\"\"\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"dialogRendered\": {},\n \"fadeIn\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icDialogCancelled\",\n \"name\": \"icDialogCancelled\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Cancelation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogClosed\",\n \"name\": \"icDialogClosed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when dialog has closed.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogConfirmed\",\n \"name\": \"icDialogConfirmed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Confirmation event emitted when default 'Confirm' primary button clicked or 'confirmDialog' method is called.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icDialogOpened\",\n \"name\": \"icDialogOpened\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when dialog has opened.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"cancelDialog\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\",\n \"tags\": []\n }\n },\n \"confirmDialog\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"open\",\n \"methodName\": \"watchOpenHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"keydown\",\n \"method\": \"handleKeyboard\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"click\",\n \"method\": \"handleClick\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-dialog.js.map\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icCardVerticalCss","CardVertical","constructor","hostRef","this","hostMutationObserver","parentFocussed","isFocussed","parentBlurred","toggleExpanded","areaExpanded","monochrome","parentEl","parentIsAnchorTag","clickable","disabled","expandable","fullWidth","heading","undefined","href","hreflang","message","referrerpolicy","rel","subheading","target","theme","watchDisabledHandler","removeDisabledFalse","el","disconnectedCallback","_a","removeEventListener","disconnect","componentWillLoad","parentElement","tagName","classList","add","addEventListener","componentDidLoad","isSlotUsed","onComponentRequiredPropUndefined","prop","propName","updateTheme","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","handleHostClick","event","stopImmediatePropagation","brandChangeHandler","ev","detail","mode","setFocus","shadowRoot","querySelector","focus","foregroundColor","getBrandFromContext","IcBrandForegroundEnum","Default","Light","Dark","render","Component","attrs","hrefLang","referrerPolicy","h","Host","class","Object","assign","card","fullwidth","focussed","tabindex","name","variant","id","label","silent","onClick","innerHTML","chevronIcon"],"sources":["../web-components/dist/collection/components/ic-card-vertical/ic-card-vertical.css?tag=ic-card-vertical&encapsulation=shadow","../web-components/dist/collection/components/ic-card-vertical/ic-card-vertical.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n:host {\n display: flex;\n}\n\na {\n text-decoration: none !important;\n color: var(--ic-card-text-primary) !important;\n}\n\na:visited {\n color: var(--ic-card-link-action-dark) !important;\n}\n\nbutton {\n border: none;\n background-color: transparent;\n outline: var(--ic-hc-focus-outline);\n}\n\n.card {\n display: flex;\n flex-direction: column;\n border: var(--ic-space-1px) solid var(--ic-card-border-primary);\n border-radius: var(--ic-border-radius);\n box-sizing: border-box;\n padding: var(--ic-space-md);\n text-align: left;\n color: var(--ic-card-text-primary);\n transition: var(--ic-easing-transition-fast);\n position: relative;\n width: inherit;\n min-width: -moz-fit-content;\n min-width: fit-content;\n height: -moz-fit-content;\n height: fit-content;\n min-height: 100%;\n\n ::slotted(svg) {\n fill: var(--ic-card-icon);\n }\n &.monochrome {\n border: var(--ic-border-width) solid var(--ic-card-border-monochrome);\n }\n &.fullwidth {\n width: 100%;\n }\n &.clickable {\n &:hover {\n background-color: var(--ic-card-background-hover);\n border: var(--ic-space-1px) solid var(--ic-card-hover-border-color);\n cursor: pointer;\n }\n &.focussed,\n &:focus {\n background-color: var(--ic-card-background-hover);\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n border: var(--ic-space-1px) solid var(--ic-card-pressed-border-color);\n }\n &:active {\n background-color: var(--ic-card-background-pressed);\n box-shadow: var(--ic-border-focus);\n\n .card-title {\n text-decoration: none;\n }\n }\n .card-title {\n --ic-typography-color: var(--ic-card-clickable-text);\n\n color: var(--ic-card-clickable-text);\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n }\n }\n &.disabled {\n border: var(--ic-space-1px) dashed var(--ic-card-disabled-border-color);\n\n .card-message,\n .subheading,\n .card-title {\n --ic-typography-color: var(--ic-card-disabled-text);\n }\n .card-title {\n text-decoration: underline;\n text-decoration-thickness: var(--ic-space-1px);\n text-decoration-color: var(--ic-card-disabled-text);\n color: var(--ic-card-disabled-text);\n }\n ::slotted(svg) {\n fill: var(--ic-card-disabled-text);\n }\n }\n}\n\n.card-header {\n display: flex;\n align-items: center;\n}\n\n.icon {\n display: flex;\n align-items: center;\n padding-right: var(--ic-space-xs);\n}\n\n.card.clickable:hover .card-title,\n.card.clickable:focus .card-title,\n.card.clickable.focussed .card-title {\n display: inline-block;\n border-bottom: 0.25rem solid !important;\n margin-bottom: -0.25rem !important;\n text-decoration: none;\n}\n\n@supports (text-underline-offset: 25%) {\n .card.clickable:hover .card-title,\n .card.clickable:focus .card-title,\n .card.clickable.focussed .card-title {\n text-decoration-line: underline;\n text-decoration-thickness: 25%;\n text-underline-offset: 25%;\n border-bottom: 0 !important;\n margin-bottom: 0 !important;\n }\n}\n\n.subheading {\n margin-top: var(--ic-space-xxs);\n}\n\n.adornment {\n margin-top: var(--ic-space-xxs);\n}\n\n.card-message {\n margin-top: var(--ic-space-md);\n align-items: left;\n}\n\n.interaction-button {\n margin-left: auto;\n}\n\n.image-top {\n margin-bottom: var(--ic-space-md);\n display: flex;\n justify-content: center;\n}\n\n.image-mid {\n margin-top: var(--ic-space-md);\n display: flex;\n justify-content: center;\n}\n\n.interaction-area {\n display: flex;\n flex-grow: 1;\n gap: var(--ic-space-md);\n margin-top: var(--ic-space-md);\n align-items: flex-end;\n}\n\n.interaction-controls {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--ic-space-sm);\n}\n\n.toggle-button {\n width: 2.5rem;\n height: 2.5rem;\n padding: var(--ic-space-xs);\n margin: var(--ic-space-1px) 0;\n min-width: 0;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n border-radius: var(--ic-border-radius);\n display: inline-flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n background: none;\n border: none;\n box-sizing: border-box;\n white-space: nowrap;\n vertical-align: middle;\n\n &:hover {\n background-color: var(--ic-card-background-hover);\n }\n &:focus {\n box-shadow: var(--ic-border-focus);\n }\n &:active:not(:focus) {\n background-color: var(--ic-card-background-pressed);\n }\n\n svg {\n pointer-events: none;\n width: 100% !important;\n height: 100% !important;\n fill: currentcolor !important;\n }\n}\n\n#ic-tooltip-expand-button {\n margin-left: auto;\n position: relative;\n}\n\n.toggle-button-closed svg {\n transform: rotate(90deg);\n}\n\n.toggle-button-expanded svg {\n transform: rotate(-90deg);\n}\n\n.expanded-content {\n margin-top: var(--ic-space-md);\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .card {\n ::slotted(svg) {\n fill: currentcolor;\n }\n &.disabled {\n border-color: GrayText !important;\n\n ::slotted(svg) {\n fill: GrayText !important;\n }\n .card-message,\n .subheading,\n .card-title {\n color: GrayText;\n\n --ic-typography-color: GrayText;\n }\n }\n }\n}\n","import { h, Host, } from \"@stencil/core\";\nimport { onComponentRequiredPropUndefined, isSlotUsed, getBrandFromContext, removeDisabledFalse, renderDynamicChildSlots, } from \"../../utils/helpers\";\nimport { IcBrandForegroundEnum, } from \"../../utils/types\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n/**\n * @slot heading - Content will be placed at the top of the card to the right of the icon.\n * @slot message - Content will be placed in the main body of the card.\n * @slot subheading - Content will be placed below the card heading.\n * @slot adornment - Content will be placed below the card subheading.\n * @slot image-top - Content will be placed at the top of the card above all other content.\n * @slot image-mid - Content will be placed below the card heading section.\n * @slot icon - Content will be placed to the left of the card heading.\n * @slot interaction-button - Content will be placed in the top right corner of the heading section.\n * @slot interaction-controls - Content will be placed below the card message.\n * @slot expanded-content - Content will be placed below the interaction controls but will not initially be rendered.\n * @slot badge - Badge component overlaying the top right of the card.\n */\nexport class CardVertical {\n constructor() {\n this.hostMutationObserver = null;\n this.parentFocussed = () => {\n this.isFocussed = true;\n };\n this.parentBlurred = () => {\n this.isFocussed = false;\n };\n this.toggleExpanded = () => {\n this.areaExpanded = !this.areaExpanded;\n };\n this.areaExpanded = false;\n this.isFocussed = false;\n this.monochrome = false;\n this.parentEl = null;\n this.parentIsAnchorTag = false;\n this.clickable = false;\n this.disabled = false;\n this.expandable = false;\n this.fullWidth = false;\n this.heading = undefined;\n this.href = undefined;\n this.hreflang = \"\";\n this.message = \"\";\n this.referrerpolicy = undefined;\n this.rel = undefined;\n this.subheading = undefined;\n this.target = undefined;\n this.theme = \"inherit\";\n }\n watchDisabledHandler() {\n removeDisabledFalse(this.disabled, this.el);\n }\n disconnectedCallback() {\n var _a;\n if (this.parentIsAnchorTag) {\n this.parentEl.removeEventListener(\"focus\", this.parentFocussed);\n this.parentEl.removeEventListener(\"blur\", this.parentBlurred);\n }\n (_a = this.hostMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n componentWillLoad() {\n this.parentEl = this.el.parentElement;\n if (this.parentEl.tagName === \"A\") {\n this.clickable = true;\n this.parentIsAnchorTag = true;\n this.parentEl.classList.add(\"ic-card-wrapper-link\");\n this.parentEl.addEventListener(\"focus\", this.parentFocussed);\n this.parentEl.addEventListener(\"blur\", this.parentBlurred);\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n componentDidLoad() {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined([{ prop: this.heading, propName: \"heading\" }], \"Card\");\n this.updateTheme();\n this.hostMutationObserver = new MutationObserver((mutationList) => renderDynamicChildSlots(mutationList, [\n \"message\",\n \"adornment\",\n \"expanded-content\",\n \"image-top\",\n \"image-mid\",\n \"icon\",\n \"interaction-button\",\n \"badge\",\n \"interaction-controls\",\n ], this));\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n handleHostClick(event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n brandChangeHandler(ev) {\n this.updateTheme(ev.detail.mode);\n }\n /**\n * Sets focus on the card.\n */\n async setFocus() {\n if (this.el.shadowRoot.querySelector(\"a\")) {\n this.el.shadowRoot.querySelector(\"a\").focus();\n }\n else if (this.el.shadowRoot.querySelector(\"button\")) {\n this.el.shadowRoot.querySelector(\"button\").focus();\n }\n }\n updateTheme(mode = null) {\n const foregroundColor = getBrandFromContext(this.el, mode);\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.monochrome = true;\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n }\n }\n render() {\n const { clickable, disabled, expandable, fullWidth, heading, isFocussed, message, monochrome, href, hreflang, parentIsAnchorTag, referrerpolicy, rel, subheading, target, theme, } = this;\n const Component = parentIsAnchorTag || !clickable\n ? \"div\"\n : href === undefined\n ? \"button\"\n : \"a\";\n const attrs = Component == \"a\" && {\n href: href,\n hrefLang: hreflang,\n referrerPolicy: referrerpolicy,\n rel: rel,\n target: target,\n };\n return (h(Host, { class: {\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n } }, h(Component, Object.assign({ class: {\n card: true,\n clickable: clickable && !disabled,\n disabled,\n fullwidth: fullWidth,\n focussed: isFocussed,\n monochrome: monochrome,\n }, tabindex: clickable && !parentIsAnchorTag ? 0 : null, \"aria-disabled\": disabled ? \"true\" : null, disabled: disabled ? true : null }, attrs), isSlotUsed(this.el, \"image-top\") && (h(\"div\", { class: \"image-top\" }, h(\"slot\", { name: \"image-top\" }))), h(\"div\", { class: \"card-header\" }, isSlotUsed(this.el, \"icon\") && (h(\"div\", { class: \"icon\" }, h(\"slot\", { name: \"icon\" }))), h(\"div\", { class: \"card-title\" }, h(\"slot\", { name: \"heading\" }, h(\"ic-typography\", { variant: \"h4\" }, h(\"p\", null, heading)))), isSlotUsed(this.el, \"interaction-button\") && (h(\"div\", { class: \"interaction-button\" }, h(\"slot\", { name: \"interaction-button\" })))), (subheading || isSlotUsed(this.el, \"subheading\")) && (h(\"div\", { class: \"subheading\" }, h(\"slot\", { name: \"subheading\" }, h(\"ic-typography\", { variant: \"subtitle-small\" }, subheading)))), isSlotUsed(this.el, \"adornment\") && (h(\"div\", { class: \"adornment\" }, h(\"slot\", { name: \"adornment\" }))), isSlotUsed(this.el, \"image-mid\") && (h(\"div\", { class: \"image-mid\" }, h(\"slot\", { name: \"image-mid\" }))), (message || isSlotUsed(this.el, \"message\")) && (h(\"div\", { class: \"card-message\" }, message && (h(\"ic-typography\", { variant: \"body\" }, message)), isSlotUsed(this.el, \"message\") && h(\"slot\", { name: \"message\" }))), (isSlotUsed(this.el, \"interaction-controls\") || expandable) && (h(\"div\", { class: \"interaction-area\" }, h(\"div\", { class: \"interaction-controls\" }, h(\"slot\", { name: \"interaction-controls\" })), expandable && (h(\"ic-tooltip\", { id: \"ic-tooltip-expand-button\", label: \"Toggle expandable area\", silent: true }, h(\"button\", { class: {\n \"toggle-button\": true,\n [`toggle-button-${this.areaExpanded ? \"expanded\" : \"closed\"}`]: true,\n }, \"aria-label\": \"Toggle expandable area\", \"aria-expanded\": `${this.areaExpanded}`, \"aria-controls\": this.areaExpanded ? \"expanded-content-area\" : null, onClick: this.toggleExpanded, innerHTML: chevronIcon }))))), isSlotUsed(this.el, \"expanded-content\") && this.areaExpanded && (h(\"div\", { class: \"expanded-content\", id: \"expanded-content-area\" }, h(\"slot\", { name: \"expanded-content\" }))), isSlotUsed(this.el, \"badge\") && h(\"slot\", { name: \"badge\" }))));\n }\n static get is() { return \"ic-card-vertical\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-card-vertical.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-card-vertical.css\"]\n };\n }\n static get properties() {\n return {\n \"clickable\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the card will be a clickable variant, instead of static.\"\n },\n \"attribute\": \"clickable\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the card will be disabled if it is clickable.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"expandable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the card will have an expandable area and expansion toggle button.\"\n },\n \"attribute\": \"expandable\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the card will fill the width of the container.\"\n },\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"heading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The heading for the card. This is required, unless a slotted heading is used.\"\n },\n \"attribute\": \"heading\",\n \"reflect\": false\n },\n \"href\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The URL that the clickable card link points to. If set, the clickable card will render as an \\\"a\\\" tag, otherwise it will render as a button.\"\n },\n \"attribute\": \"href\",\n \"reflect\": false\n },\n \"hreflang\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The human language of the linked URL.\"\n },\n \"attribute\": \"hreflang\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"message\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The main body message of the card.\"\n },\n \"attribute\": \"message\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"referrerpolicy\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"ReferrerPolicy\",\n \"resolved\": \"\\\"\\\" | \\\"no-referrer\\\" | \\\"no-referrer-when-downgrade\\\" | \\\"origin\\\" | \\\"origin-when-cross-origin\\\" | \\\"same-origin\\\" | \\\"strict-origin\\\" | \\\"strict-origin-when-cross-origin\\\" | \\\"unsafe-url\\\"\",\n \"references\": {\n \"ReferrerPolicy\": {\n \"location\": \"global\",\n \"id\": \"global::ReferrerPolicy\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"How much of the referrer to send when following the link.\"\n },\n \"attribute\": \"referrerpolicy\",\n \"reflect\": false\n },\n \"rel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The relationship of the linked URL as space-separated link types.\"\n },\n \"attribute\": \"rel\",\n \"reflect\": false\n },\n \"subheading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The subheading for the card.\"\n },\n \"attribute\": \"subheading\",\n \"reflect\": false\n },\n \"target\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\"\n },\n \"attribute\": \"target\",\n \"reflect\": false\n },\n \"theme\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"IcThemeMode\",\n \"resolved\": \"\\\"dark\\\" | \\\"inherit\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeMode\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeMode\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the theme color to the dark or light theme color. \\\"inherit\\\" will set the color based on the system settings or ic-theme component.\"\n },\n \"attribute\": \"theme\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"inherit\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"areaExpanded\": {},\n \"isFocussed\": {},\n \"monochrome\": {},\n \"parentEl\": {},\n \"parentIsAnchorTag\": {}\n };\n }\n static get methods() {\n return {\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets focus on the card.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"disabled\",\n \"methodName\": \"watchDisabledHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"click\",\n \"method\": \"handleHostClick\",\n \"target\": undefined,\n \"capture\": true,\n \"passive\": false\n }, {\n \"name\": \"brandChange\",\n \"method\": \"brandChangeHandler\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-card-vertical.js.map\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as s,H as e,g as a}from"./p-8455d1bb.js";import{b as h,s as r,t as n,r as o,u as l,v as c,o as d,w as u,x as p,y as f,k as b,l as v}from"./p-a04712b9.js";import{b as m,i as w,j as g,s as y,h as x,k}from"./p-33dd24eb.js";const $=`<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M15.8327 5.34199L14.6577 4.16699L9.99935 8.82533L5.34102 4.16699L4.16602 5.34199L8.82435 10.0003L4.16602 14.6587L5.34102 15.8337L9.99935 11.1753L14.6577 15.8337L15.8327 14.6587L11.1743 10.0003L15.8327 5.34199Z" fill="currentColor"/>\n</svg>\n`;const D=`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">\n <path d="M16.6667 2.50004H15.8334V0.833374H14.1667V2.50004H5.83342V0.833374H4.16675V2.50004H3.33341C2.41675 2.50004 1.66675 3.25004 1.66675 4.16671V17.5C1.66675 18.4167 2.41675 19.1667 3.33341 19.1667H16.6667C17.5834 19.1667 18.3334 18.4167 18.3334 17.5V4.16671C18.3334 3.25004 17.5834 2.50004 16.6667 2.50004ZM16.6667 17.5H3.33341V6.66671H16.6667V17.5Z" fill="currentColor"/>\n</svg>`;const Y='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{--ic-input-label-helpertext-padding:var(--ic-space-xxs);--input-bg-color:var(--ic-date-input-bg);--ic-input-label-text-color:var(--ic-date-input-label);--ic-input-label-helper-text-color:var(--ic-date-input-subtitle);--border-color:var(--ic-date-input-border);--border-color-disabled:var(--ic-date-input-border-disabled);--border-color-hover:var(--ic-date-input-border-default-hover);--border-color-pressed:var(--ic-date-input-border-default-pressed);--border-error-color:var(--ic-date-input-border-error);--border-error-color-hover:var(--ic-date-input-border-error-hover);--border-error-color-pressed:var(--ic-date-input-border-error-pressed);--border-success-color:var(--ic-date-input-border-success);--border-success-color-hover:var(--ic-date-input-border-success-hover);--border-success-color-pressed:var(--ic-date-input-border-success-pressed);--border-warning-color:var(--ic-date-input-border-warning);--border-warning-color-hover:var(--ic-date-input-border-warning-hover);--border-warning-color-pressed:var(--ic-date-input-border-warning-pressed)}:host(.ic-date-input-disabled){--ic-input-label-text-color:var(--ic-date-input-label-disabled);--ic-input-label-helper-text-color:var(--ic-date-input-subtitle-disabled)}input{border:0;height:100%;padding:0;outline:none;background:none;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield;color:var(--ic-date-input-text-filled);caret-color:var(--ic-date-input-typing-cursor)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input:-webkit-autofill{box-shadow:0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;-webkit-text-fill-color:var(--ic-date-input-text-filled) !important}input::-moz-placeholder{color:var(--ic-date-input-text-placeholder)}input::placeholder{color:var(--ic-date-input-text-placeholder)}ic-input-component-container{cursor:text}ic-input-component-container .focus-indicator{padding:var(--ic-space-xxxs) var(--ic-space-xs);align-items:center}.date-inputs{color:var(--ic-date-input-text-placeholder)}.day-input{width:1.438rem}.month-input{width:1.813rem}.year-input,.year-input.fit-to-value{width:2.313rem}.fit-to-value{width:1.25rem}.sr-only{position:absolute;left:-9999px}.input-container{width:100%;display:flex;justify-content:space-between;align-items:center;position:relative}.action-buttons{display:flex;align-items:center}.show-calendar-button-wrapper{display:flex;justify-content:center;align-items:center}.clear-button,.calendar-button{border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);margin:0}.clear-button.hidden{display:none}.clear-button:focus,.calendar-button:focus,.clear-button:active,.calendar-button:active{background-color:var(--ic-color-focus-inner) !important;box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;border-radius:0.25rem}.calendar-button:focus,.calendar-button:active{--ic-button-tertiary-text-active:var(--ic-atoms-input-clear-button-focus);--ic-button-tertiary-text-hover-active:var(\n --ic-atoms-input-clear-button-focus\n );--ic-button-tertiary-text-pressed-active:var(\n --ic-atoms-input-clear-button-focus\n )}.clear-button:focus,.calendar-button:focus,.clear-button:active *,.calendar-button:active *{fill:var(--ic-atoms-input-clear-button-focus)}.clear-button svg{color:var(--ic-date-input-clear-icon)}.clear-button:focus svg{color:var(--ic-atoms-input-clear-button-focus)}.divider{margin:0 var(--ic-space-xxs);width:var(--ic-space-1px);background-color:var(--ic-atoms-input-divider);border-radius:var(--ic-space-1px)}.divider.small{height:var(--ic-space-md)}.divider.medium{height:calc(var(--ic-space-sm) + var(--ic-space-xs))}.divider.large{height:var(--ic-space-lg)}ic-input-validation{--ic-input-validation-status-text-color:var(--ic-date-input-status-text);--ic-input-validation-error:var(--ic-date-input-icon-error);--ic-input-validation-warning-icon-color:var(--ic-date-input-icon-warning);--ic-input-validation-success-icon-color:var(--ic-date-input-icon-success)}';let z=0;const M=class{constructor(e){t(this,e);this.calendarButtonClicked=i(this,"calendarButtonClicked",7);this.icBlur=i(this,"icBlur",7);this.icChange=i(this,"icChange",7);this.icFocus=i(this,"icFocus",7);this.ARIA_INVALID="aria-invalid";this.ARIA_LABEL="aria-label";this.ARIA_LABELLED_BY="aria-labelledby";this.EVENT_OBJECT_STRING="[object Event]";this.FIT_TO_VALUE="fit-to-value";this.initialValue=this.value;this.INPUT_EVENT_OBJECT_STRING="[object InputEvent]";this.inputsInOrder=[];this.isAfterMax=false;this.isBeforeMin=false;this.isDateSetFromKeyboardEvent=false;this.isDisabledDate=false;this.isValidDay=true;this.isValidMonth=true;this.isValidDate=true;this.isZuluTime=false;this.KEYBOARD_EVENT_OBJECT_STRING="[object KeyboardEvent]";this.MAX_DAY=31;this.MAX_MONTH=12;this.previousEmittedDate=undefined;this.previousSelectedDate=null;this.selectedDate=null;this.setInputPasteValue=(t,i)=>{const s=t;s.value=i;s.classList.add(this.FIT_TO_VALUE)};this.checkSingleCopiedValueIsValid=(t,i)=>{let s=false;const e=Number(i);switch(t){case this.dayInputEl:s=e>=1&&e<=this.MAX_DAY;break;case this.monthInputEl:s=e>=1&&e<=this.MAX_MONTH;break;case this.yearInputEl:s=true;break;default:s=false;break}return s};this.isKeyboardOrEvent=t=>Object.prototype.toString.call(t)===this.EVENT_OBJECT_STRING||Object.prototype.toString.call(t)===this.KEYBOARD_EVENT_OBJECT_STRING;this.setDateValidity=()=>{if(!h(this.day)){this.isValidDay=+this.day>this.MAX_DAY?false:true}else{this.isValidDay=true}if(!h(this.month)){this.isValidMonth=+this.month>this.MAX_MONTH?false:true}else{this.isValidMonth=true}};this.handleInput=t=>{const i=t;const s=t.target;if(s!==this.yearInputEl){if(i.inputType!=="deleteContentBackward"&&!this.preventAutoFormatting){if(s.value.length===1&&(s===this.dayInputEl&&+s.value>=4||s===this.monthInputEl&&+s.value>=2)&&+s.value<=9){this.setInputValue(s);this.notifyScreenReader(s,t);this.moveToNextInput(s)}if(s.value.length===2){if(+s.value===0){s.value="01"}this.setInputValue(s);this.setPreventInput(s,true);this.notifyScreenReader(s,t);this.moveToNextInput(s)}else{this.setPreventInput(s,false)}}else if(this.preventAutoFormatting){if(s.value.length===2&&!this.isKeyboardOrEvent(t)){this.setInputValue(s);this.setPreventInput(s,true);this.moveToNextInput(s)}else{this.setInputValue(s)}}if(s.value.length!==2){this.setPreventInput(s,false)}}else{if(s.value.length===4){this.setInputValue(s);if(Object.prototype.toString.call(t)!==this.EVENT_OBJECT_STRING){this.moveToNextInput(s)}this.setPreventInput(s,true)}else{this.setInputValue(s,true);this.setPreventInput(s,false)}}this.setFitToValueStyling(s);if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s,t)};this.handleKeyDown=(t,i)=>{var s;const e=t.target;const a=(s=t.key)===null||s===void 0?void 0:s.toLowerCase();const h=/-?\d*\.?\d+(e[-+]?\d+)?|[/-]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;if(!h.test(a)&&!((t.ctrlKey||t.metaKey)&&(a==="v"||a==="c"))){t.preventDefault()}switch(a){case"/":case"-":case".":t.preventDefault();this.setPasteInvalidText();this.moveToNextInput(e);break;case"arrowright":case"arrowleft":t.preventDefault();this.handleLeftRightArrowKeyPress(e,a);break;case"arrowup":case"arrowdown":this.preventAutoFormatting=true;this.handleUpDownArrowKeyPress(e,t);break}this.preventInput(t,i);this.isDateSetFromKeyboardEvent=true};this.handleFocus=t=>{const i=t.target;i.select()};this.handleBlur=t=>{const i=t.target;this.setPasteInvalidText();this.autocompleteInput(i)};this.handleLeftRightArrowKeyPress=(t,i)=>{if(i==="arrowright"){this.moveToNextInput(t)}else{this.moveToPreviousInput(t)}this.setPasteInvalidText()};this.notifyScreenReaderSelectedDate=()=>{const t=r(b);const i=r(v);this.selectedDateInfoEl.textContent=`Selected date: ${t[this.selectedDate.getDay()]}, ${this.selectedDate.getDate()} ${i[this.selectedDate.getMonth()]} ${this.selectedDate.getFullYear()}`};this.handleUpDownArrowKeyPress=(t,i)=>{const s=t===this.yearInputEl?0:1;let e;switch(t){case this.dayInputEl:e=this.MAX_DAY;break;case this.monthInputEl:e=this.MAX_MONTH;break;case this.yearInputEl:e=9999}if(t===null||t===void 0?void 0:t.value){if(i.key==="ArrowUp"){if(+t.value===e){i.preventDefault();t.value=`0${s}`}else{t.value=+t.value+1<10?`0${+t.value+1}`:(+t.value+1).toString()}this.notifyScreenReader(t,i)}if(i.key==="ArrowDown"){if(+t.value===s){i.preventDefault();t.value=e.toString()}else{t.value=+t.value-1<10?`0${+t.value-1}`:(+t.value-1).toString()}this.notifyScreenReader(t,i)}}else{if(i.key==="ArrowDown"){i.preventDefault();if(t===this.yearInputEl){t.value=(new Date).getFullYear().toString()}else{t.value=e.toString()}this.notifyScreenReader(t,i)}else if(i.key==="ArrowUp"){i.preventDefault();if(t===this.yearInputEl){t.value=(new Date).getFullYear().toString()}else{t.value=`0${s}`}this.notifyScreenReader(t,i)}}this.setInputValue(t);this.setFitToValueStyling(t)};this.handleDateChange=t=>{if(t||!m(this.selectedDate,this.previousSelectedDate)){if(this.value){this.inputsInOrder.forEach((t=>{t.classList.add(this.FIT_TO_VALUE)}))}if(this.day&&this.month&&this.year&&this.invalidDateText===""){this.setValueAndEmitChange(this.selectedDate);this.notifyScreenReaderSelectedDate()}else if(!(this.selectedDate===null&&this.previousSelectedDate===null)){this.setValueAndEmitChange(null);this.selectedDateInfoEl.textContent=""}this.previousSelectedDate=this.selectedDate;if(!this.isDateSetFromKeyboardEvent){this.updateInputValues(this.day,this.month,this.year)}}};this.slicePastedDate=(t,i)=>i.length>t?i.slice(0,t):i;this.isPastedStringDateValid=t=>{if(/\d+-\d+-\d+$/.test(t)||/\d+\/\d+\/\d+/.test(t)||/\d+\.\d+\.\d+/.test(t)){return true}if(/[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(?::[0-9]{2}(?:\.\d+)?)?Z/.test(t)){this.isZuluTime=true;return true}return false};this.handlePaste=t=>{t.preventDefault();const i=t.clipboardData.getData("Text");const s=this.isPastedStringDateValid(i);this.setPastedValueAndValidation(s,i,t)};this.setDate=t=>{if(t===null||t===""||t===undefined){this.day=null;this.month=null;this.year=null;this.inputsInOrder.forEach((t=>{t.classList.remove(this.FIT_TO_VALUE);this.setPreventInput(t,false)}));this.handleDateChange(true)}else{if(w(t)){let i;if(typeof t==="string"){i=new Date(+t)}else{i=t}this.day=g(i.getDate());this.month=g(i.getMonth()+1);this.year=i.getFullYear().toString()}else if(typeof t==="string"){const i=y(t,this.dateFormat);this.year=i[0];this.month=i[1];this.day=i[2]}}this.setValidationMessage()};this.formatMinMax=t=>{let i;const s=g(t.getDate());const e=g(t.getMonth()+1);const a=t.getFullYear();switch(this.dateFormat){case"DD/MM/YYYY":i=`${s}/${e}/${a}`;break;case"MM/DD/YYYY":i=`${e}/${s}/${a}`;break;case"YYYY/MM/DD":i=`${a}/${e}/${s}`;break}return i};this.updateInputValues=(t,i,s)=>{this.dayInputEl.value=t;this.monthInputEl.value=i;this.yearInputEl.value=s};this.setInputValue=(t,i=false)=>{const s=i?"":t.value;switch(t){case this.dayInputEl:this.day=s;break;case this.monthInputEl:this.month=s;break;case this.yearInputEl:if(this.year!==s){this.year=s}}this.setValidationMessage()};this.setValidationMessage=()=>{this.setDateValidity();if(!h(this.day)&&!h(this.month)&&!h(this.year)){this.selectedDate=this.convertToDate(this.year,this.month,this.day);this.isValidDate=+this.selectedDate!==0&&this.selectedDate.getDate()==+this.day;this.isDisabledDate=this.isSelectedDateDisabled();if(!this.isValidDate||this.isDisabledDate){this.inputsInOrder.forEach((t=>t.setAttribute(this.ARIA_INVALID,"true")))}else{this.inputsInOrder.forEach((t=>t.removeAttribute(this.ARIA_INVALID)))}}else{this.selectedDate=null}if(!(this.isValidDay&&this.isValidMonth&&this.isValidDate)){this.invalidDateText=this.invalidDateMessage}else if(this.isDisabledDate&&this.selectedDate!==null){if(this.isBeforeMin){if(this.disablePast){this.invalidDateText=this.disablePastMessage}else{this.invalidDateText=`Please enter a date after ${this.formatMinMax(this.minDate)}.`}}else if(this.isAfterMax){if(this.disableFuture){this.invalidDateText=this.disableFutureMessage}else{this.invalidDateText=`Please enter a date before ${this.formatMinMax(this.maxDate)}.`}}else if(this.disableDays.length!==0){this.invalidDateText=this.disableDaysMessage}else{if(this.disablePast){this.invalidDateText=this.disablePastMessage}if(this.disableFuture){this.invalidDateText=this.disableFutureMessage}}}else{this.invalidDateText=""}};this.setInputsInOrder=()=>{const t=this.el.shadowRoot.querySelectorAll("input");t.forEach((t=>this.inputsInOrder.push(t)))};this.setAriaLabelledBy=()=>{var t,i;if(this.disabled&&!h((t=this.inputCompContainerEl)===null||t===void 0?void 0:t.getAttribute(this.ARIA_LABELLED_BY))){this.removeAriaLabelledBy();return}if(this.disabled){return}const s=this.el.shadowRoot.querySelector("label");const e=`${this.inputId}-label`;if(s!==null&&s!==undefined){s.id=e}const a=!h(this.validationStatus)||!h(this.invalidDateText);const r=`${(i=s===null||s===void 0?void 0:s.id)!==null&&i!==void 0?i:""} ${this.screenReaderInfoId} ${n(this.inputId,this.helperText!==""&&this.helperText!==this.defaultHelperText,a)} ${this.selectedDate?this.selectedDateInfoId:""} ${this.assistiveHintId}`;this.inputCompContainerEl.setAttribute(this.ARIA_LABELLED_BY,r)};this.setPreventInput=(t,i)=>{switch(t){case this.dayInputEl:this.preventDayInput=i;break;case this.monthInputEl:this.preventMonthInput=i;break;case this.yearInputEl:this.preventYearInput=i}};this.getInputFromDatePart=t=>{const i=s("input",{class:"day-input",id:"day-input",ref:t=>this.dayInputEl=t,"aria-label":"day",placeholder:"DD",disabled:this.disabled,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventDayInput)});const e=s("input",{id:"month-input",class:"month-input",ref:t=>this.monthInputEl=t,"aria-label":"month",placeholder:"MM",disabled:this.disabled,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventMonthInput)});const a=s("input",{id:"year-input",class:"year-input",ref:t=>this.yearInputEl=t,"aria-label":"year",placeholder:"YYYY",maxLength:4,disabled:this.disabled,onPaste:this.handlePaste,inputmode:"number",pattern:"[0-9]*",onKeyDown:t=>this.handleKeyDown(t,this.preventYearInput)});let h;switch(t){case"D":h=i;break;case"M":h=e;break;case"Y":h=a}return h};this.getInputsInOrder=()=>{const t=this.dateFormat.split("/");const i=[];t.forEach((t=>{i.push(this.getInputFromDatePart(t.substring(0,1)))}));return i};this.getDescOfInputsOrder=()=>{let t;switch(this.dateFormat){case"DD/MM/YYYY":t="day, month, and year";break;case"MM/DD/YYYY":t="month, day, and year";break;case"YYYY/MM/DD":t="year, month, and day"}return t};this.getScreenReaderInfo=t=>{let i="";if(this.required){i+="required"}if(t===p.Error){i+=" invalid data"}return i===""?"":i+", "};this.preventInput=(t,i)=>{const s=t.key;const e=t.target;let a;if(e){a=e.value.substring(e.selectionStart,e.selectionEnd)}if(s==="e"||s==="."||s==="-"||t.key>="0"&&t.key<="9"&&i&&!a){t.preventDefault()}};this.isSelectedDateDisabled=()=>{const t=new Date;this.isAfterMax=false;this.isBeforeMin=false;let i=false;const s=this.selectedDate.toDateString()!==t.toDateString();if(this.minDate&&this.selectedDate<this.minDate&&s){this.isBeforeMin=true;i=true}if(this.maxDate&&this.selectedDate>this.maxDate&&s){this.isAfterMax=true;i=true}if(this.disableDays.includes(this.selectedDate.getDay())){i=true}if((this.disablePast&&this.selectedDate<t||this.disableFuture&&this.selectedDate>t)&&s){i=true}return i};this.moveToNextInput=t=>{const i=this.inputsInOrder.findIndex((i=>i===t));const s=this.inputsInOrder[i+1];this.preventAutoFormatting=false;if(s){s.focus()}};this.moveToPreviousInput=t=>{const i=this.inputsInOrder.findIndex((i=>i===t));this.preventAutoFormatting=false;if(this.inputsInOrder[i-1]){this.inputsInOrder[i-1].focus()}};this.autocompleteInput=t=>{if(t===this.yearInputEl){this.autocompleteYear()}else{const i=t.value;if(i.length===1){if(+i===0){t.value="01"}else{t.value=`0${i}`}}}if(t.value){this.setInputValue(t)}};this.autocompleteYear=()=>{const t=this.yearInputEl.value;const i=["2","0","0"];let s="";if(t){i.forEach(((i,e)=>{if(t.length+e<=3){s+=i}}));this.yearInputEl.value=`${s}${t}`}};this.convertToDate=(t,i,s)=>{if(!h(t)&&!h(i)&&!h(s)){return new Date(+t,+i-1,+s)}else{return null}};this.handleHostBlur=()=>{this.removeLabelledBy=false;this.icBlur.emit({value:this.selectedDate})};this.handleHostFocus=()=>{var t;if((t=this.el.shadowRoot.activeElement)===null||t===void 0?void 0:t.id.match(/(day|month|year)-input$/)){this.removeLabelledBy=false}else{this.removeLabelledBy=true}this.icFocus.emit({value:this.selectedDate})};this.handleFormReset=()=>{this.setDate(this.initialValue);this.setValidationMessage();this.handleDateChange(false)};this.getAriaLabel=t=>t.getAttribute(this.ARIA_LABEL);this.notifyScreenReaderArrowKeys=t=>{const i=this.el.shadowRoot.querySelector("#live-region");let s="";const e=this.getAriaLabel(t);if(i&&t.value){if(t===this.monthInputEl&&!!v[+t.value-1]){s=`${t.value} - ${v[+t.value-1]}, ${e}`}if(t===this.dayInputEl||t===this.yearInputEl){s=`${t.value}, ${e}`}i.textContent=s}};this.notifyScreenReaderInput=(t,i)=>{let s="";const e=this.getAriaLabel(t);if(t===this.dayInputEl||t===this.monthInputEl){if(t.value.length===2){if(t===this.monthInputEl&&!!v[+t.value-1]&&this.isValidMonth){s=`${t.value} - ${v[+t.value-1]}, ${e}`}if(t===this.dayInputEl&&this.isValidDay){s=`${t.value}, ${e}`}}else{s=""}}else{if(t.value.length===4){s=`${t.value}, ${e}`}else{s=""}}i.textContent=s};this.setFitToValueStyling=t=>{if(t.value){t.classList.add(this.FIT_TO_VALUE)}else{t.classList.remove(this.FIT_TO_VALUE)}};this.setAriaInvalid=(t,i,s,e)=>{if(this.inputsInOrder.length){this.inputsInOrder.forEach((t=>{t.removeAttribute(this.ARIA_INVALID)}));if(!t){this.dayInputEl.setAttribute(this.ARIA_INVALID,"true")}if(!i){this.monthInputEl.setAttribute(this.ARIA_INVALID,"true")}if(!s||e){this.inputsInOrder.forEach((t=>{t.setAttribute(this.ARIA_INVALID,"true")}))}}};this.handleClear=()=>{this.inputsInOrder.forEach((t=>{t.classList.remove(this.FIT_TO_VALUE);this.setInputValue(t,true);this.setPreventInput(t,false)}));this.isDateSetFromKeyboardEvent=false;this.setValidationMessage();this.handleDateChange(true);this.inputsInOrder[0].focus()};this.handleCalendarOpen=t=>{var i,s;t.stopImmediatePropagation();(i=this.calendarButtonEl)===null||i===void 0?void 0:i.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);this.calendarButtonClicked.emit({value:this.selectedDate});(s=this.calendarButtonEl)===null||s===void 0?void 0:s.shadowRoot.querySelector("ic-tooltip").displayTooltip(false);this.isDateSetFromKeyboardEvent=false};this.setValueAndEmitChange=t=>{if(!m(new Date(this.value),t)){this.emitIcChange(t);this.value=t}};this.handleCalendarFocus=()=>{this.calendarFocused=true};this.handleCalendarBlur=()=>{this.calendarFocused=false};this.handleClearFocus=()=>{this.removeLabelledBy=true;this.clearButtonFocused=true};this.handleClearBlur=t=>{var i;this.clearButtonFocused=false;if((i=t.relatedTarget)===null||i===void 0?void 0:i.id.match(/(day|year)-input$/)){this.removeLabelledBy=false;return}this.removeLabelledBy=true};this.emitIcChange=t=>{if(!(t===null&&this.previousEmittedDate===null)&&!m(t,this.previousEmittedDate)){this.previousEmittedDate=t;this.icChange.emit({value:t})}};this.day="";this.invalidDateText=undefined;this.maxDate=undefined;this.minDate=undefined;this.month="";this.year="";this.calendarFocused=false;this.clearButtonFocused=false;this.removeLabelledBy=false;this.dateFormat="DD/MM/YYYY";this.disabled=false;this.disableDays=[];this.disableDaysMessage="The date you have selected is on a day of the week that is not allowed. Please select another date.";this.disableFuture=false;this.disableFutureMessage="Dates in the future are not allowed. Please select a date in the past.";this.disablePast=false;this.disablePastMessage="Dates in the past are not allowed. Please select a date in the future.";this.helperText=undefined;this.hideHelperText=false;this.hideLabel=false;this.inputId=`ic-date-input-${z++}`;this.invalidDateMessage="Please enter a valid date.";this.label=undefined;this.max="";this.min="";this.name=this.inputId;this.required=false;this.showCalendarButton=false;this.showClearButton=true;this.size="medium";this.theme="inherit";this.value="";this.validationStatus="";this.validationText=""}watchDisabledHandler(){o(this.disabled,this.el)}watchDisableFutureHandler(){this.watchMaxHandler()}watchDisablePastHandler(){this.watchMinHandler()}watchMaxHandler(){if(this.disableFuture){this.maxDate=new Date}else{this.maxDate=x(this.max,this.dateFormat)}}watchMinHandler(){if(this.disablePast){this.minDate=new Date}else{this.minDate=x(this.min,this.dateFormat)}}watchRequiredHandler(){const t=this.el.shadowRoot.querySelector("label");if(this.required){const i=document.createElement("span");i.setAttribute("id","asterisk-span");i.setAttribute("aria-hidden","true");i.textContent=" *";t===null||t===void 0?void 0:t.appendChild(i)}else{const t=this.el.shadowRoot.querySelector("#asterisk-span");if(t){t.remove()}}}disconnectedCallback(){l(this.el,this.handleFormReset)}componentWillLoad(){this.defaultHelperText=`Use format ${this.dateFormat}`;if(h(this.helperText))this.helperText=this.defaultHelperText;this.watchMinHandler();this.watchMaxHandler();if(this.value){this.setDate(this.value);this.previousEmittedDate=this.selectedDate}else{this.previousEmittedDate=null}this.screenReaderInfoId=`${this.inputId}-screen-reader-info`;this.assistiveHintId=`${this.inputId}-assistive-hint`;this.selectedDateInfoId=`${this.inputId}-selected-date-info`;c(this.el,this.handleFormReset);o(this.disabled,this.el)}componentDidLoad(){this.setInputsInOrder();d([{prop:this.label,propName:"label"}],"Date Input");if(this.value){this.updateInputValues(this.day,this.month,this.year);this.inputsInOrder.forEach((t=>{t.classList.add(this.FIT_TO_VALUE)}))}this.setAriaInvalid(this.isValidDay,this.isValidMonth,this.isValidDate,this.isDisabledDate);if(this.value){this.notifyScreenReaderSelectedDate()}this.inputsInOrder.forEach((t=>{t.addEventListener("input",this.handleInput);t.addEventListener("focus",this.handleFocus);t.addEventListener("blur",this.handleBlur)}));this.watchRequiredHandler()}componentWillUpdate(){if(h(this.helperText))this.helperText=this.defaultHelperText;if(!this.isDateSetFromKeyboardEvent)this.setDate(this.value);this.setAriaInvalid(this.isValidDay,this.isValidMonth,this.isValidDate,this.isDisabledDate);this.handleDateChange(false);this.isDateSetFromKeyboardEvent=false}componentDidRender(){if(this.removeLabelledBy){this.removeAriaLabelledBy();return}this.setAriaLabelledBy()}async getDate(){return this.selectedDate}async setCalendarFocus(){if(this.calendarButtonEl){this.calendarButtonEl.focus()}}async setDisableDays(t){this.disableDays=t}async triggerIcChange(t){this.emitIcChange(t)}removeAriaLabelledBy(){this.inputCompContainerEl.removeAttribute(this.ARIA_LABELLED_BY)}setPastedValueAndValidation(t,i,s){switch(true){case t:{const t=this.isZuluTime?k(i):i;const s=t.split(/-|\/|\./);this.inputsInOrder.forEach(((t,i)=>{t.classList.add(this.FIT_TO_VALUE);if(this.isZuluTime){this.pasteZuluDateTime(s,i)}else{let e;if(t===this.dayInputEl||t===this.monthInputEl){e=this.slicePastedDate(2,s[i])}else{e=this.slicePastedDate(4,s[i])}t.value=e;this.setInputValue(t);this.autocompleteInput(t)}}));this.isZuluTime=false;break}case(i.length===1||i.length===2||i.length===4)&&u(i):if(this.checkSingleCopiedValueIsValid(s.target,i)){this.setInputPasteValue(s.target,i);this.setInputValue(s.target)}else{this.displayPastedValidation(s)}break;case i.length===3&&u(i):if(s.target!==this.yearInputEl){this.displayPastedValidation(s)}else{this.setInputPasteValue(s.target,i);this.setInputValue(s.target)}break;case i.length>=5&&u(i):this.displayPastedValidation(s)}}pasteZuluDateTime(t,i){if(i===0){const s=this.slicePastedDate(4,t[i]);this.yearInputEl.value=s;this.setInputValue(this.yearInputEl)}else if(i===1){const s=this.slicePastedDate(2,t[i]);this.monthInputEl.value=s;this.setInputValue(this.monthInputEl)}else{const s=this.slicePastedDate(2,t[i]);this.dayInputEl.value=s;this.setInputValue(this.dayInputEl)}}displayPastedValidation(t){var i;if(((i=this.invalidDateText)===null||i===void 0?void 0:i.length)>0){this.previousInvalidDateTest=this.invalidDateText}this.invalidDateText=`Please paste a valid ${this.getAriaLabel(t.target)}`;this.validationStatus=p.Error;this.isPasteValidationDisplayed=true}setPasteInvalidText(){var t;if(this.isPasteValidationDisplayed){this.invalidDateText=(t=this.previousInvalidDateTest)!==null&&t!==void 0?t:"";this.isPasteValidationDisplayed=false;this.isDateSetFromKeyboardEvent=true}}notifyScreenReader(t,i){const s=this.el.shadowRoot.querySelector("#live-region");if(s){if(this.isKeyboardOrEvent(i)){this.notifyScreenReaderArrowKeys(t)}else if(Object.prototype.toString.call(i)===this.INPUT_EVENT_OBJECT_STRING){this.notifyScreenReaderInput(t,s)}}}render(){const{inputId:t,label:i,disabled:a,helperText:r,hideHelperText:n,hideLabel:o,showClearButton:l,showCalendarButton:c,size:d,theme:u}=this;const b=!h(this.validationStatus);const v=b?this.validationStatus:!h(this.invalidDateText)?p.Error:"";const m=`Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;f(true,this.el,this.name,this.convertToDate(this.year,this.month,this.day),this.disabled);return s(e,{class:{[`ic-theme-${u}`]:u!=="inherit",[`ic-date-input-disabled`]:a},onBlur:this.handleHostBlur,onFocus:this.handleHostFocus},s("ic-input-container",{disabled:a},!(o&&n)&&s("ic-input-label",{for:t,label:i,hideLabel:o,helperText:!n?r:"",disabled:a}),s("span",{id:this.screenReaderInfoId,class:"sr-only","aria-hidden":"true"},this.getScreenReaderInfo(v),o&&`${i}\n`,n&&`${r}\n`,`${this.defaultHelperText}.`),s("span",{id:this.assistiveHintId,class:"sr-only","aria-hidden":"true"},m),s("span",{id:"live-region","aria-live":"assertive",class:"sr-only"}),s("ic-input-component-container",{id:t,ref:t=>this.inputCompContainerEl=t,disabled:a,validationStatus:v,size:d,role:"group",class:{[`ic-theme-${u}`]:u!=="inherit"}},s("div",{class:"input-container"},s("div",{class:"date-inputs"},this.getInputsInOrder()[0],"/",this.getInputsInOrder()[1],"/",this.getInputsInOrder()[2]),s("div",{class:"action-buttons"},l&&s("ic-button",{id:"clear-button","aria-label":"Clear input",class:{["clear-button"]:true,["hidden"]:h(this.day)&&h(this.month)&&h(this.year)},disabled:this.disabled,innerHTML:$,onClick:this.handleClear,onFocus:this.handleClearFocus,onBlur:this.handleClearBlur,variant:"icon-tertiary",theme:this.clearButtonFocused?"light":"dark",size:d}),c&&s("div",{class:"show-calendar-button-wrapper"},s("div",{class:{divider:true,[d]:true}}),s("ic-button",{id:"calendar-button",ref:t=>this.calendarButtonEl=t,"aria-label":"Display calendar","aria-haspopup":"dialog",class:"calendar-button",disabled:this.disabled,innerHTML:D,onClick:this.handleCalendarOpen,variant:"icon-tertiary",size:d,onFocus:this.handleCalendarFocus,onBlur:this.handleCalendarBlur,theme:this.calendarFocused?"light":"dark"}))))),s("span",{id:this.selectedDateInfoId,class:"sr-only","aria-live":"polite"},s("span",{ref:t=>this.selectedDateInfoEl=t,role:"status"})),(b||!h(this.invalidDateText))&&s("ic-input-validation",{status:v,message:b?this.validationText:this.invalidDateText,for:t})))}static get delegatesFocus(){return true}get el(){return a(this)}static get watchers(){return{disabled:["watchDisabledHandler"],disableFuture:["watchDisableFutureHandler"],disablePast:["watchDisablePastHandler"],max:["watchMaxHandler"],min:["watchMinHandler"],required:["watchRequiredHandler"]}}};M.style=Y;export{M as ic_date_input};
2
- //# sourceMappingURL=p-a1cf5884.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icDateInputCss","inputIds","DateInput","this","ARIA_INVALID","ARIA_LABEL","ARIA_LABELLED_BY","EVENT_OBJECT_STRING","FIT_TO_VALUE","initialValue","value","INPUT_EVENT_OBJECT_STRING","inputsInOrder","isAfterMax","isBeforeMin","isDateSetFromKeyboardEvent","isDisabledDate","isValidDay","isValidMonth","isValidDate","isZuluTime","KEYBOARD_EVENT_OBJECT_STRING","MAX_DAY","MAX_MONTH","previousEmittedDate","undefined","previousSelectedDate","selectedDate","setInputPasteValue","input","pastedValue","inputEl","classList","add","checkSingleCopiedValueIsValid","isValid","Number","dayInputEl","monthInputEl","yearInputEl","isKeyboardOrEvent","event","Object","prototype","toString","call","setDateValidity","isEmptyString","day","month","handleInput","inputEvent","target","inputType","preventAutoFormatting","length","setInputValue","notifyScreenReader","moveToNextInput","setPreventInput","setFitToValueStyling","setValidationMessage","handleKeyDown","isInputPrevented","eventKey","_a","key","toLowerCase","regex","test","ctrlKey","metaKey","preventDefault","setPasteInvalidText","handleLeftRightArrowKeyPress","handleUpDownArrowKeyPress","preventInput","handleFocus","select","handleBlur","autocompleteInput","moveToPreviousInput","notifyScreenReaderSelectedDate","dayNames","stringEnumToArray","IcDayNames","months","IcDateInputMonths","selectedDateInfoEl","textContent","getDay","getDate","getMonth","getFullYear","minValue","maxValue","Date","handleDateChange","force","dateMatches","forEach","year","invalidDateText","setValueAndEmitChange","updateInputValues","slicePastedDate","valueLength","datePart","slice","isPastedStringDateValid","handlePaste","clipboardData","getData","setPastedValueAndValidation","setDate","date","remove","isDateOrEpoch","newDate","convertToDoubleDigits","defaultDateArray","splitStringDate","dateFormat","formatMinMax","formattedDate","clear","newValue","convertToDate","isSelectedDateDisabled","setAttribute","removeAttribute","invalidDateMessage","disablePast","disablePastMessage","minDate","disableFuture","disableFutureMessage","maxDate","disableDays","disableDaysMessage","setInputsInOrder","inputs","el","shadowRoot","querySelectorAll","push","setAriaLabelledBy","disabled","inputCompContainerEl","getAttribute","removeAriaLabelledBy","labelEl","querySelector","labelId","inputId","id","hasValidation","validationStatus","labelledBy","_b","screenReaderInfoId","getInputDescribedByText","helperText","defaultHelperText","selectedDateInfoId","assistiveHintId","isPrevented","preventDayInput","preventMonthInput","preventYearInput","getInputFromDatePart","dayInput","h","class","ref","placeholder","onPaste","inputmode","pattern","onKeyDown","monthInput","yearInput","maxLength","getInputsInOrder","dateParts","split","part","substring","getDescOfInputsOrder","description","getScreenReaderInfo","inputDescriptors","required","IcInformationStatus","Error","selectedString","selectionStart","selectionEnd","currentDate","isNotToday","toDateString","includes","currentInput","currentInputPos","findIndex","nextInput","focus","autocompleteYear","inputValue","yearNumbers","autocompletedInput","number","index","handleHostBlur","removeLabelledBy","icBlur","emit","handleHostFocus","activeElement","match","icFocus","handleFormReset","getAriaLabel","notifyScreenReaderArrowKeys","liveRegion","announcement","ariaLabel","notifyScreenReaderInput","setAriaInvalid","validDay","validMonth","validDate","disabledDate","handleClear","handleCalendarOpen","ev","stopImmediatePropagation","calendarButtonEl","displayTooltip","calendarButtonClicked","emitIcChange","handleCalendarFocus","calendarFocused","handleCalendarBlur","handleClearFocus","clearButtonFocused","handleClearBlur","relatedTarget","d","icChange","watchDisabledHandler","removeDisabledFalse","watchDisableFutureHandler","watchMaxHandler","watchDisablePastHandler","watchMinHandler","createDate","max","min","watchRequiredHandler","asteriskSpan","document","createElement","appendChild","disconnectedCallback","removeFormResetListener","componentWillLoad","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","addEventListener","componentWillUpdate","componentDidRender","setCalendarFocus","setDisableDays","days","triggerIcChange","nextParsedValue","extractDateFromZuluDateTime","pasteZuluDateTime","dateValue","isNumeric","displayPastedValidation","previousInvalidDateTest","isPasteValidationDisplayed","render","hideHelperText","hideLabel","showClearButton","showCalendarButton","size","theme","hasCustomValidation","assistiveHint","renderHiddenInput","name","Host","onBlur","onFocus","for","role","innerHTML","Clear","onClick","variant","divider","Calendar","status","message","validationText"],"sources":["src/components/ic-date-input/ic-date-input.css?tag=ic-date-input&encapsulation=shadow","src/components/ic-date-input/ic-date-input.tsx"],"sourcesContent":["@import \"../../../dist/core/normalize.css\";\n\n:host {\n --ic-input-label-helpertext-padding: var(--ic-space-xxs);\n --input-bg-color: var(--ic-date-input-bg);\n --ic-input-label-text-color: var(--ic-date-input-label);\n --ic-input-label-helper-text-color: var(--ic-date-input-subtitle);\n --border-color: var(--ic-date-input-border);\n --border-color-disabled: var(--ic-date-input-border-disabled);\n --border-color-hover: var(--ic-date-input-border-default-hover);\n --border-color-pressed: var(--ic-date-input-border-default-pressed);\n --border-error-color: var(--ic-date-input-border-error);\n --border-error-color-hover: var(--ic-date-input-border-error-hover);\n --border-error-color-pressed: var(--ic-date-input-border-error-pressed);\n --border-success-color: var(--ic-date-input-border-success);\n --border-success-color-hover: var(--ic-date-input-border-success-hover);\n --border-success-color-pressed: var(--ic-date-input-border-success-pressed);\n --border-warning-color: var(--ic-date-input-border-warning);\n --border-warning-color-hover: var(--ic-date-input-border-warning-hover);\n --border-warning-color-pressed: var(--ic-date-input-border-warning-pressed);\n}\n\n:host(.ic-date-input-disabled) {\n --ic-input-label-text-color: var(--ic-date-input-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-date-input-subtitle-disabled);\n}\n\ninput {\n border: 0;\n height: 100%;\n padding: 0;\n outline: none;\n background: none;\n -moz-appearance: textfield;\n appearance: textfield;\n color: var(--ic-date-input-text-filled);\n caret-color: var(--ic-date-input-typing-cursor);\n}\n\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n}\n\ninput:-webkit-autofill {\n box-shadow: 0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;\n -webkit-text-fill-color: var(--ic-date-input-text-filled) !important;\n}\n\ninput::placeholder {\n color: var(--ic-date-input-text-placeholder);\n}\n\nic-input-component-container {\n cursor: text;\n}\n\nic-input-component-container .focus-indicator {\n padding: var(--ic-space-xxxs) var(--ic-space-xs);\n align-items: center;\n}\n\n.date-inputs {\n color: var(--ic-date-input-text-placeholder);\n}\n\n.day-input {\n width: 1.438rem;\n}\n\n.month-input {\n width: 1.813rem;\n}\n\n.year-input,\n.year-input.fit-to-value {\n width: 2.313rem;\n}\n\n.fit-to-value {\n width: 1.25rem;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n.input-container {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n}\n\n.action-buttons {\n display: flex;\n align-items: center;\n}\n\n.show-calendar-button-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.clear-button,\n.calendar-button {\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n margin: 0;\n}\n\n.clear-button.hidden {\n display: none;\n}\n\n.clear-button:focus,\n.calendar-button:focus,\n.clear-button:active,\n.calendar-button:active {\n background-color: var(--ic-color-focus-inner) !important;\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;\n border-radius: 0.25rem;\n}\n\n.calendar-button:focus,\n.calendar-button:active {\n --ic-button-tertiary-text-active: var(--ic-atoms-input-clear-button-focus);\n --ic-button-tertiary-text-hover-active: var(\n --ic-atoms-input-clear-button-focus\n );\n --ic-button-tertiary-text-pressed-active: var(\n --ic-atoms-input-clear-button-focus\n );\n}\n\n.clear-button:focus,\n.calendar-button:focus,\n.clear-button:active *,\n.calendar-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button svg {\n color: var(--ic-date-input-clear-icon);\n}\n\n.clear-button:focus svg {\n color: var(--ic-atoms-input-clear-button-focus);\n}\n\n.divider {\n margin: 0 var(--ic-space-xxs);\n width: var(--ic-space-1px);\n background-color: var(--ic-atoms-input-divider);\n border-radius: var(--ic-space-1px);\n}\n\n.divider.small {\n height: var(--ic-space-md);\n}\n\n.divider.medium {\n height: calc(var(--ic-space-sm) + var(--ic-space-xs));\n}\n\n.divider.large {\n height: var(--ic-space-lg);\n}\n\nic-input-validation {\n --ic-input-validation-status-text-color: var(--ic-date-input-status-text);\n --ic-input-validation-error: var(--ic-date-input-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-date-input-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-date-input-icon-success);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Host,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n IcDateFormat,\n IcDateInputMonths,\n IcDayNames,\n IcWeekDays,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n convertToDoubleDigits,\n createDate,\n dateMatches,\n extractDateFromZuluDateTime,\n isDateOrEpoch,\n splitStringDate,\n} from \"../../utils/date-helpers\";\nimport {\n addFormResetListener,\n getInputDescribedByText,\n isEmptyString,\n isNumeric,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n stringEnumToArray,\n} from \"../../utils/helpers\";\nimport Clear from \"../../assets/clear-icon.svg\";\nimport Calendar from \"../../assets/calendar.svg\";\n\nlet inputIds = 0;\n\n@Component({\n tag: \"ic-date-input\",\n styleUrl: \"ic-date-input.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class DateInput {\n private ARIA_INVALID = \"aria-invalid\";\n private ARIA_LABEL = \"aria-label\";\n private ARIA_LABELLED_BY = \"aria-labelledby\";\n private assistiveHintId: string;\n private calendarButtonEl: HTMLIcButtonElement;\n private dayInputEl: HTMLInputElement;\n private defaultHelperText: string;\n private EVENT_OBJECT_STRING = \"[object Event]\";\n private FIT_TO_VALUE = \"fit-to-value\";\n\n private initialValue = this.value;\n private inputCompContainerEl: HTMLIcInputComponentContainerElement;\n private INPUT_EVENT_OBJECT_STRING = \"[object InputEvent]\";\n private inputsInOrder: HTMLInputElement[] = [];\n\n private isAfterMax: boolean = false;\n private isBeforeMin: boolean = false;\n private isDateSetFromKeyboardEvent: boolean = false;\n private isDisabledDate: boolean = false;\n private isPasteValidationDisplayed: boolean;\n private isValidDay: boolean = true;\n private isValidMonth: boolean = true;\n private isValidDate: boolean = true;\n private isZuluTime: boolean = false;\n\n private KEYBOARD_EVENT_OBJECT_STRING = \"[object KeyboardEvent]\";\n private MAX_DAY = 31;\n private MAX_MONTH = 12;\n private monthInputEl: HTMLInputElement;\n\n private preventAutoFormatting: boolean;\n private preventDayInput: boolean;\n private preventMonthInput: boolean;\n private preventYearInput: boolean;\n\n private previousInvalidDateTest: string;\n private previousEmittedDate: Date = undefined;\n private previousSelectedDate: Date = null;\n\n private selectedDate: Date = null;\n private selectedDateInfoEl: HTMLSpanElement;\n private screenReaderInfoId: string;\n private selectedDateInfoId: string;\n\n private yearInputEl: HTMLInputElement;\n\n @Element() el: HTMLIcDateInputElement;\n\n @State() day: string = \"\";\n @State() invalidDateText: string;\n @State() maxDate: Date;\n @State() minDate: Date;\n @State() month: string = \"\";\n @State() year: string = \"\";\n @State() calendarFocused: boolean = false;\n @State() clearButtonFocused: boolean = false;\n @State() removeLabelledBy: boolean = false;\n\n /**\n * The format in which the date will be displayed.\n */\n // eslint-disable-next-line sonarjs/no-duplicate-string\n @Prop() dateFormat?: IcDateFormat = \"DD/MM/YYYY\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The days of the week to disable.\n */\n @Prop({ mutable: true }) disableDays?: IcWeekDays[] = [];\n\n /**\n * The text to display as the validation message when `disableDays` is set and a disabled date is entered.\n */\n @Prop() disableDaysMessage?: string =\n \"The date you have selected is on a day of the week that is not allowed. Please select another date.\";\n\n /**\n * If `true`, dates in the future are not allowed. A validation message will appear if a date in the future is entered.\n */\n @Prop() disableFuture?: boolean = false;\n\n @Watch(\"disableFuture\")\n watchDisableFutureHandler(): void {\n this.watchMaxHandler();\n }\n\n /**\n * The text to display as the validation message when `disableFuture` is true and a date in the future is entered.\n */\n @Prop() disableFutureMessage?: string =\n \"Dates in the future are not allowed. Please select a date in the past.\";\n\n /**\n * If `true`, dates in the past are not allowed. A validation message will appear if a date in the past is entered.\n */\n @Prop() disablePast?: boolean = false;\n\n @Watch(\"disablePast\")\n watchDisablePastHandler(): void {\n this.watchMinHandler();\n }\n\n /**\n * The text to display as the validation message when `disablePast` is true and a date in the past is entered.\n */\n @Prop() disablePastMessage?: string =\n \"Dates in the past are not allowed. Please select a date in the future.\";\n\n /**\n * The helper text that will be displayed for additional field guidance. This will default to the text \"Use format\" along with the `dateFormat` value.\n */\n @Prop({ mutable: true }) helperText?: string;\n\n /**\n * If `true`, the helper text will be visually hidden, but still read out by screenreaders.\n */\n @Prop() hideHelperText: boolean = false;\n\n /**\n * If `true`, the label will be visually hidden, but will still be read out by screen readers.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId?: string = `ic-date-input-${inputIds++}`;\n\n /**\n * The text to display as the validation message when an invalid date is entered.\n */\n @Prop() invalidDateMessage?: string = \"Please enter a valid date.\";\n\n /**\n * The label for the date input.\n */\n @Prop() label!: string;\n\n /**\n * The latest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disableFuture` is set to `true`.\n */\n @Prop() max?: string | Date = \"\";\n\n @Watch(\"max\")\n watchMaxHandler(): void {\n if (this.disableFuture) {\n this.maxDate = new Date();\n } else {\n this.maxDate = createDate(this.max, this.dateFormat);\n }\n }\n\n /**\n * The earliest date that will be allowed. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n * The value of this prop is ignored if `disablePast` is set to `true`.\n */\n @Prop() min?: string | Date = \"\";\n\n @Watch(\"min\")\n watchMinHandler(): void {\n if (this.disablePast) {\n this.minDate = new Date();\n } else {\n this.minDate = createDate(this.min, this.dateFormat);\n }\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required?: boolean = false;\n\n @Watch(\"required\")\n watchRequiredHandler(): void {\n // Prevent asterisk being read out after the label by screen reader (by applying aria-hidden)\n // Needed because label is included in 'aria-labelledby' instead of using 'aria-label'\n const labelEl = this.el.shadowRoot.querySelector(\"label\");\n if (this.required) {\n const asteriskSpan = document.createElement(\"span\");\n asteriskSpan.setAttribute(\"id\", \"asterisk-span\");\n asteriskSpan.setAttribute(\"aria-hidden\", \"true\");\n asteriskSpan.textContent = \" *\";\n labelEl?.appendChild(asteriskSpan);\n } else {\n const asteriskSpan = this.el.shadowRoot.querySelector(\"#asterisk-span\");\n if (asteriskSpan) {\n asteriskSpan.remove();\n }\n }\n }\n\n /**\n * @internal If `true`, a button which displays the calendar view when clicked will be displayed.\n */\n @Prop() showCalendarButton?: boolean = false;\n\n /**\n * If `true`, a button which clears the date input when clicked will be displayed.\n */\n @Prop() showClearButton?: boolean = true;\n\n /**\n * The size of the date input to be displayed.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * Sets the date picker to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value of the date input. The value can be in any format supported as `dateFormat`, in ISO 8601 date string format (`yyyy-mm-dd`) or as a JavaScript `Date` object.\n */\n @Prop({ mutable: true }) value?: string | Date | null | undefined = \"\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in date validation.\n */\n @Prop({ mutable: true }) validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message. This will override the built-in date validation.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * @internal Emitted when the calendar is opened.\n */\n @Event() calendarButtonClicked: EventEmitter<{ value: Date }>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() icBlur: EventEmitter<{ value: Date }>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{ value: Date }>;\n\n /**\n * Emitted when the input gains focus.\n */\n @Event() icFocus: EventEmitter<{ value: Date }>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.defaultHelperText = `Use format ${this.dateFormat}`;\n\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n\n this.watchMinHandler();\n this.watchMaxHandler();\n\n if (this.value) {\n this.setDate(this.value);\n this.previousEmittedDate = this.selectedDate;\n } else {\n this.previousEmittedDate = null;\n }\n\n this.screenReaderInfoId = `${this.inputId}-screen-reader-info`;\n this.assistiveHintId = `${this.inputId}-assistive-hint`;\n this.selectedDateInfoId = `${this.inputId}-selected-date-info`;\n\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n this.setInputsInOrder();\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Date Input\"\n );\n\n if (this.value) {\n this.updateInputValues(this.day, this.month, this.year);\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n\n this.setAriaInvalid(\n this.isValidDay,\n this.isValidMonth,\n this.isValidDate,\n this.isDisabledDate\n );\n\n if (this.value) {\n this.notifyScreenReaderSelectedDate();\n }\n\n this.inputsInOrder.forEach((input) => {\n input.addEventListener(\"input\", this.handleInput);\n input.addEventListener(\"focus\", this.handleFocus);\n input.addEventListener(\"blur\", this.handleBlur);\n });\n\n this.watchRequiredHandler();\n }\n\n componentWillUpdate(): void {\n if (isEmptyString(this.helperText))\n this.helperText = this.defaultHelperText;\n\n if (!this.isDateSetFromKeyboardEvent) this.setDate(this.value);\n\n this.setAriaInvalid(\n this.isValidDay,\n this.isValidMonth,\n this.isValidDate,\n this.isDisabledDate\n );\n this.handleDateChange(false);\n this.isDateSetFromKeyboardEvent = false;\n }\n\n componentDidRender(): void {\n if (this.removeLabelledBy) {\n this.removeAriaLabelledBy();\n return;\n }\n\n this.setAriaLabelledBy();\n }\n\n /**\n * Returns the value as a Date object\n * @returns Date\n */\n @Method()\n async getDate(): Promise<Date> {\n return this.selectedDate;\n }\n\n /**\n * @internal Sets focus on the calendar button.\n */\n @Method()\n async setCalendarFocus(): Promise<void> {\n if (this.calendarButtonEl) {\n this.calendarButtonEl.focus();\n }\n }\n\n /**\n * @internal Used to pass disabledDays from parent component.\n */\n @Method()\n async setDisableDays(days: IcWeekDays[]): Promise<void> {\n this.disableDays = days;\n }\n\n /**\n * @internal Used to enable other components to invoke an IcChange event from the input.\n */\n @Method()\n async triggerIcChange(d: Date): Promise<void> {\n this.emitIcChange(d);\n }\n\n private setInputPasteValue = (input: EventTarget, pastedValue: string) => {\n const inputEl = input as HTMLInputElement;\n\n inputEl.value = pastedValue;\n inputEl.classList.add(this.FIT_TO_VALUE);\n };\n\n private checkSingleCopiedValueIsValid = (\n input: EventTarget,\n pastedValue: string\n ) => {\n let isValid = false;\n const value = Number(pastedValue);\n\n switch (input) {\n case this.dayInputEl:\n isValid = value >= 1 && value <= this.MAX_DAY;\n break;\n case this.monthInputEl:\n isValid = value >= 1 && value <= this.MAX_MONTH;\n break;\n case this.yearInputEl:\n isValid = true;\n break;\n default:\n isValid = false;\n break;\n }\n\n return isValid;\n };\n\n /**\n * Using Object.prototype.string to determine type if event from user\n * @param event - event object used to differentiate keyboard, generic or input event\n * @returns boolean\n */\n private isKeyboardOrEvent = (event: Event) => {\n return (\n Object.prototype.toString.call(event) === this.EVENT_OBJECT_STRING ||\n Object.prototype.toString.call(event) ===\n this.KEYBOARD_EVENT_OBJECT_STRING\n );\n };\n\n private setDateValidity = () => {\n if (!isEmptyString(this.day)) {\n this.isValidDay = +this.day > this.MAX_DAY ? false : true;\n } else {\n this.isValidDay = true;\n }\n\n if (!isEmptyString(this.month)) {\n this.isValidMonth = +this.month > this.MAX_MONTH ? false : true;\n } else {\n this.isValidMonth = true;\n }\n };\n\n private handleInput = (event: Event) => {\n const inputEvent = event as InputEvent;\n const input = event.target as HTMLInputElement;\n\n if (input !== this.yearInputEl) {\n // Only auto-format if input event is not a character being deleted\n // and not as user is changing value using up / down keys\n if (\n inputEvent.inputType !== \"deleteContentBackward\" &&\n !this.preventAutoFormatting\n ) {\n if (\n input.value.length === 1 &&\n ((input === this.dayInputEl && +input.value >= 4) ||\n (input === this.monthInputEl && +input.value >= 2)) &&\n +input.value <= 9\n ) {\n this.setInputValue(input);\n this.notifyScreenReader(input, event);\n this.moveToNextInput(input);\n }\n\n if (input.value.length === 2) {\n if (+input.value === 0) {\n input.value = \"01\";\n }\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.notifyScreenReader(input, event);\n this.moveToNextInput(input);\n } else {\n this.setPreventInput(input, false);\n }\n } else if (this.preventAutoFormatting) {\n /**\n * Using arrow keys prevents auto formatting so need to deal with\n * switching from arrow keys to inputting numbers\n **/\n if (input.value.length === 2 && !this.isKeyboardOrEvent(event)) {\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.moveToNextInput(input);\n } else {\n this.setInputValue(input);\n }\n }\n\n if (input.value.length !== 2) {\n this.setPreventInput(input, false);\n }\n } else {\n if (input.value.length === 4) {\n this.setInputValue(input);\n if (\n Object.prototype.toString.call(event) !== this.EVENT_OBJECT_STRING\n ) {\n this.moveToNextInput(input);\n }\n this.setPreventInput(input, true);\n } else {\n this.setInputValue(input, true);\n this.setPreventInput(input, false);\n }\n }\n\n // Add / remove class to make input width match size of value i.e. 2 digits' width for day / month, 4 for year\n this.setFitToValueStyling(input);\n\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n\n this.notifyScreenReader(input, event);\n };\n\n private handleKeyDown = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const input = event.target as HTMLInputElement;\n\n const eventKey = event.key?.toLowerCase();\n // Regex required due to FF allowing all characters as values for number text field.\n const regex =\n /-?\\d*\\.?\\d+(e[-+]?\\d+)?|[/-]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;\n if (\n !regex.test(eventKey) &&\n !(\n (event.ctrlKey || event.metaKey) &&\n (eventKey === \"v\" || eventKey === \"c\")\n )\n ) {\n event.preventDefault();\n }\n\n switch (eventKey) {\n case \"/\":\n case \"-\":\n case \".\":\n event.preventDefault();\n this.setPasteInvalidText();\n this.moveToNextInput(input);\n break;\n case \"arrowright\":\n case \"arrowleft\":\n event.preventDefault();\n this.handleLeftRightArrowKeyPress(input, eventKey);\n break;\n case \"arrowup\":\n case \"arrowdown\":\n this.preventAutoFormatting = true;\n this.handleUpDownArrowKeyPress(input, event);\n break;\n default:\n break;\n }\n\n this.preventInput(event, isInputPrevented);\n this.isDateSetFromKeyboardEvent = true;\n };\n\n private handleFocus = (event: FocusEvent) => {\n // Highlight / select all characters in input for easy replacement\n const input = event.target as HTMLInputElement;\n\n input.select();\n };\n\n private handleBlur = (event: FocusEvent) => {\n const input = event.target as HTMLInputElement;\n\n this.setPasteInvalidText();\n this.autocompleteInput(input);\n };\n\n private handleLeftRightArrowKeyPress = (\n input: HTMLInputElement,\n key: string\n ) => {\n if (key === \"arrowright\") {\n this.moveToNextInput(input);\n } else {\n this.moveToPreviousInput(input);\n }\n\n this.setPasteInvalidText();\n };\n\n private notifyScreenReaderSelectedDate = () => {\n const dayNames = stringEnumToArray(IcDayNames);\n const months = stringEnumToArray(IcDateInputMonths);\n\n this.selectedDateInfoEl.textContent = `Selected date: ${\n dayNames[this.selectedDate.getDay()]\n }, ${this.selectedDate.getDate()} ${\n months[this.selectedDate.getMonth()]\n } ${this.selectedDate.getFullYear()}`;\n };\n\n private handleUpDownArrowKeyPress = (\n input: HTMLInputElement,\n event: KeyboardEvent\n ) => {\n const minValue = input === this.yearInputEl ? 0 : 1;\n\n let maxValue;\n\n switch (input) {\n case this.dayInputEl:\n maxValue = this.MAX_DAY;\n break;\n case this.monthInputEl:\n maxValue = this.MAX_MONTH;\n break;\n case this.yearInputEl:\n maxValue = 9999;\n }\n\n // Make value loop round when min / max reached\n if (input?.value) {\n if (event.key === \"ArrowUp\") {\n if (+input.value === maxValue) {\n event.preventDefault();\n input.value = `0${minValue}`;\n } else {\n input.value =\n +input.value + 1 < 10\n ? `0${+input.value + 1}`\n : (+input.value + 1).toString();\n }\n this.notifyScreenReader(input, event);\n }\n\n if (event.key === \"ArrowDown\") {\n if (+input.value === minValue) {\n event.preventDefault();\n input.value = maxValue.toString();\n } else {\n input.value =\n +input.value - 1 < 10\n ? `0${+input.value - 1}`\n : (+input.value - 1).toString();\n }\n this.notifyScreenReader(input, event);\n }\n } else {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n if (input === this.yearInputEl) {\n input.value = new Date().getFullYear().toString();\n } else {\n input.value = maxValue.toString();\n }\n this.notifyScreenReader(input, event);\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n if (input === this.yearInputEl) {\n input.value = new Date().getFullYear().toString();\n } else {\n input.value = `0${minValue}`;\n }\n this.notifyScreenReader(input, event);\n }\n }\n\n this.setInputValue(input);\n this.setFitToValueStyling(input);\n };\n\n private handleDateChange = (force: boolean) => {\n // Prevent icChange being emitted when each individual input is changed\n // This method is used within componentWillUpdate instead of using @Watch('value');\n if (force || !dateMatches(this.selectedDate, this.previousSelectedDate)) {\n if (this.value) {\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n if (this.day && this.month && this.year && this.invalidDateText === \"\") {\n this.setValueAndEmitChange(this.selectedDate);\n this.notifyScreenReaderSelectedDate();\n } else if (\n !(this.selectedDate === null && this.previousSelectedDate === null)\n ) {\n this.setValueAndEmitChange(null);\n this.selectedDateInfoEl.textContent = \"\";\n }\n this.previousSelectedDate = this.selectedDate;\n\n if (!this.isDateSetFromKeyboardEvent) {\n this.updateInputValues(this.day, this.month, this.year);\n }\n }\n };\n\n private slicePastedDate = (valueLength: number, datePart: string): string => {\n return datePart.length > valueLength\n ? datePart.slice(0, valueLength)\n : datePart;\n };\n\n private isPastedStringDateValid = (value: string) => {\n if (\n /\\d+-\\d+-\\d+$/.test(value) ||\n /\\d+\\/\\d+\\/\\d+/.test(value) ||\n /\\d+\\.\\d+\\.\\d+/.test(value)\n ) {\n return true;\n }\n\n if (\n /[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(?::[0-9]{2}(?:\\.\\d+)?)?Z/.test(\n value\n )\n ) {\n this.isZuluTime = true;\n return true;\n }\n\n return false;\n };\n\n // Set value of each input to value of pasted date part\n // Allows formats separated by '-' or '/'\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n\n const pastedValue = event.clipboardData.getData(\"Text\");\n const isValidDate = this.isPastedStringDateValid(pastedValue);\n\n this.setPastedValueAndValidation(isValidDate, pastedValue, event);\n };\n\n private setDate = (date: string | Date) => {\n if (date === null || date === \"\" || date === undefined) {\n this.day = null;\n this.month = null;\n this.year = null;\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.handleDateChange(true);\n } else {\n if (isDateOrEpoch(date)) {\n let newDate;\n if (typeof date === \"string\") {\n // Checking if epoch date time\n newDate = new Date(+date);\n } else {\n newDate = date;\n }\n\n this.day = convertToDoubleDigits(newDate.getDate());\n this.month = convertToDoubleDigits(newDate.getMonth() + 1);\n this.year = newDate.getFullYear().toString();\n } else if (typeof date === \"string\") {\n const defaultDateArray = splitStringDate(date, this.dateFormat);\n this.year = defaultDateArray[0];\n this.month = defaultDateArray[1];\n this.day = defaultDateArray[2];\n }\n }\n\n this.setValidationMessage();\n };\n\n private formatMinMax = (date: Date) => {\n let formattedDate;\n\n const day = convertToDoubleDigits(date.getDate());\n const month = convertToDoubleDigits(date.getMonth() + 1);\n const year = date.getFullYear();\n\n switch (this.dateFormat) {\n case \"DD/MM/YYYY\":\n formattedDate = `${day}/${month}/${year}`;\n break;\n case \"MM/DD/YYYY\":\n formattedDate = `${month}/${day}/${year}`;\n break;\n case \"YYYY/MM/DD\":\n formattedDate = `${year}/${month}/${day}`;\n break;\n default:\n break;\n }\n return formattedDate;\n };\n private updateInputValues = (day: string, month: string, year: string) => {\n this.dayInputEl.value = day;\n this.monthInputEl.value = month;\n this.yearInputEl.value = year;\n };\n\n // Set value in state based on input\n private setInputValue = (input: HTMLInputElement, clear = false) => {\n const newValue = clear ? \"\" : input.value;\n\n switch (input) {\n case this.dayInputEl:\n this.day = newValue;\n break;\n case this.monthInputEl:\n this.month = newValue;\n break;\n case this.yearInputEl:\n if (this.year !== newValue) {\n this.year = newValue;\n }\n }\n\n this.setValidationMessage();\n };\n\n private setValidationMessage = () => {\n this.setDateValidity();\n\n if (\n !isEmptyString(this.day) &&\n !isEmptyString(this.month) &&\n !isEmptyString(this.year)\n ) {\n // Check whether date actually exists\n // (used https://www.hectane.com/blog/javascript-date-validation-with-leap-year)\n this.selectedDate = this.convertToDate(this.year, this.month, this.day);\n this.isValidDate =\n +this.selectedDate !== 0 && this.selectedDate.getDate() == +this.day;\n this.isDisabledDate = this.isSelectedDateDisabled();\n\n if (!this.isValidDate || this.isDisabledDate) {\n this.inputsInOrder.forEach((input) =>\n input.setAttribute(this.ARIA_INVALID, \"true\")\n );\n } else {\n this.inputsInOrder.forEach((input) =>\n input.removeAttribute(this.ARIA_INVALID)\n );\n }\n } else {\n this.selectedDate = null;\n }\n\n if (!(this.isValidDay && this.isValidMonth && this.isValidDate)) {\n this.invalidDateText = this.invalidDateMessage;\n } else if (this.isDisabledDate && this.selectedDate !== null) {\n if (this.isBeforeMin) {\n if (this.disablePast) {\n this.invalidDateText = this.disablePastMessage;\n } else {\n this.invalidDateText = `Please enter a date after ${this.formatMinMax(\n this.minDate\n )}.`;\n }\n } else if (this.isAfterMax) {\n if (this.disableFuture) {\n this.invalidDateText = this.disableFutureMessage;\n } else {\n this.invalidDateText = `Please enter a date before ${this.formatMinMax(\n this.maxDate\n )}.`;\n }\n } else if (this.disableDays.length !== 0) {\n this.invalidDateText = this.disableDaysMessage;\n } else {\n if (this.disablePast) {\n this.invalidDateText = this.disablePastMessage;\n }\n if (this.disableFuture) {\n this.invalidDateText = this.disableFutureMessage;\n }\n }\n } else {\n this.invalidDateText = \"\";\n }\n };\n\n // Set refs to the input elements in the order they are displayed (based on the dateFormat)\n private setInputsInOrder = () => {\n const inputs = this.el.shadowRoot.querySelectorAll(\"input\");\n inputs.forEach((input) => this.inputsInOrder.push(input));\n };\n\n // Includes text usually added using aria-describedby\n // (which doesn't work on input component container)\n private setAriaLabelledBy = () => {\n if (\n this.disabled &&\n !isEmptyString(\n this.inputCompContainerEl?.getAttribute(this.ARIA_LABELLED_BY)\n )\n ) {\n this.removeAriaLabelledBy();\n return;\n }\n\n if (this.disabled) {\n return;\n }\n\n const labelEl = this.el.shadowRoot.querySelector(\"label\");\n const labelId = `${this.inputId}-label`;\n\n if (labelEl !== null && labelEl !== undefined) {\n labelEl.id = labelId;\n }\n\n const hasValidation =\n !isEmptyString(this.validationStatus) ||\n !isEmptyString(this.invalidDateText);\n\n const labelledBy = `${labelEl?.id ?? \"\"} ${\n this.screenReaderInfoId\n } ${getInputDescribedByText(\n this.inputId,\n this.helperText !== \"\" && this.helperText !== this.defaultHelperText,\n hasValidation\n )} ${this.selectedDate ? this.selectedDateInfoId : \"\"} ${\n this.assistiveHintId\n }`;\n\n this.inputCompContainerEl.setAttribute(this.ARIA_LABELLED_BY, labelledBy);\n };\n\n // Sets boolean for each input, used to limit the number of characters within each field (2 for day / month, 4 for year)\n private setPreventInput = (input: HTMLInputElement, isPrevented: boolean) => {\n switch (input) {\n case this.dayInputEl:\n this.preventDayInput = isPrevented;\n break;\n case this.monthInputEl:\n this.preventMonthInput = isPrevented;\n break;\n case this.yearInputEl:\n this.preventYearInput = isPrevented;\n }\n };\n\n // Get input based on letter representing each date part (\"D\", \"M\" or \"Y\")\n // (retrieved from dateFormat)\n private getInputFromDatePart = (datePart: string) => {\n const dayInput = (\n <input\n class=\"day-input\"\n id=\"day-input\"\n ref={(el) => (this.dayInputEl = el)}\n aria-label=\"day\"\n placeholder=\"DD\"\n disabled={this.disabled}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventDayInput)}\n ></input>\n );\n\n const monthInput = (\n <input\n id=\"month-input\"\n class=\"month-input\"\n ref={(el) => (this.monthInputEl = el)}\n aria-label=\"month\"\n placeholder=\"MM\"\n disabled={this.disabled}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventMonthInput)}\n ></input>\n );\n\n const yearInput = (\n <input\n id=\"year-input\"\n class=\"year-input\"\n ref={(el) => (this.yearInputEl = el)}\n aria-label=\"year\"\n placeholder=\"YYYY\"\n maxLength={4}\n disabled={this.disabled}\n onPaste={this.handlePaste}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onKeyDown={(event) => this.handleKeyDown(event, this.preventYearInput)}\n ></input>\n );\n\n let input;\n\n switch (datePart) {\n case \"D\":\n input = dayInput;\n break;\n case \"M\":\n input = monthInput;\n break;\n case \"Y\":\n input = yearInput;\n }\n\n return input;\n };\n\n // Get input elements in order of chosen date format\n private getInputsInOrder = () => {\n const dateParts = this.dateFormat.split(\"/\");\n\n const inputsInOrder: HTMLInputElement[] = [];\n\n dateParts.forEach((part: string) => {\n inputsInOrder.push(this.getInputFromDatePart(part.substring(0, 1)));\n });\n\n return inputsInOrder;\n };\n\n // To add to the end of assistive hint to make it clearer that each date part has its own input\n // that can be changed individually\n private getDescOfInputsOrder = () => {\n let description;\n\n switch (this.dateFormat) {\n case \"DD/MM/YYYY\":\n description = \"day, month, and year\";\n break;\n case \"MM/DD/YYYY\":\n description = \"month, day, and year\";\n break;\n case \"YYYY/MM/DD\":\n description = \"year, month, and day\";\n }\n\n return description;\n };\n\n // Add 'required' or 'invalid data' to span used in aria-labelledby\n // Many ARIA attributes aren't read out by screen reader when on the input component container\n private getScreenReaderInfo = (validationStatus: string) => {\n let inputDescriptors = \"\";\n\n if (this.required) {\n inputDescriptors += \"required\";\n }\n\n if (validationStatus === IcInformationStatus.Error) {\n inputDescriptors += \" invalid data\";\n }\n\n return inputDescriptors === \"\" ? \"\" : inputDescriptors + \", \";\n };\n\n // Prevent non-number characters being entered\n // ('e' or '.' - which are usually allowed in <input type=\"number\">)\n // And limit the number of characters within each field (2 for day / month, 4 for year)\n // (because 'maxlength' doesn't work on <input type=\"number\">)\n private preventInput = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const key = event.key;\n const input = event.target as HTMLInputElement;\n let selectedString;\n\n if (input) {\n selectedString = input.value.substring(\n input.selectionStart,\n input.selectionEnd\n );\n }\n\n if (\n key === \"e\" ||\n key === \".\" ||\n key === \"-\" ||\n (event.key >= \"0\" &&\n event.key <= \"9\" &&\n isInputPrevented &&\n !selectedString)\n ) {\n event.preventDefault();\n }\n };\n\n // Get whether date has been disabled using disableFuture or disablePast prop, but always allow current day\n // Consider using dateClamp and inDateRange\n private isSelectedDateDisabled = () => {\n const currentDate = new Date();\n this.isAfterMax = false;\n this.isBeforeMin = false;\n\n let disabled = false;\n const isNotToday =\n this.selectedDate.toDateString() !== currentDate.toDateString();\n\n if (this.minDate && this.selectedDate < this.minDate && isNotToday) {\n this.isBeforeMin = true;\n disabled = true;\n }\n\n if (this.maxDate && this.selectedDate > this.maxDate && isNotToday) {\n this.isAfterMax = true;\n disabled = true;\n }\n\n if (this.disableDays.includes(this.selectedDate.getDay())) {\n disabled = true;\n }\n\n if (\n ((this.disablePast && this.selectedDate < currentDate) ||\n (this.disableFuture && this.selectedDate > currentDate)) &&\n isNotToday\n ) {\n disabled = true;\n }\n\n return disabled;\n };\n\n private moveToNextInput = (currentInput: HTMLInputElement) => {\n const currentInputPos = this.inputsInOrder.findIndex(\n (input) => input === currentInput\n );\n const nextInput = this.inputsInOrder[currentInputPos + 1];\n\n this.preventAutoFormatting = false;\n\n if (nextInput) {\n nextInput.focus();\n }\n };\n\n private moveToPreviousInput = (currentInput: HTMLInputElement) => {\n const currentInputPos = this.inputsInOrder.findIndex(\n (input) => input === currentInput\n );\n\n this.preventAutoFormatting = false;\n\n if (this.inputsInOrder[currentInputPos - 1]) {\n this.inputsInOrder[currentInputPos - 1].focus();\n }\n };\n\n private autocompleteInput = (input: HTMLInputElement) => {\n if (input === this.yearInputEl) {\n this.autocompleteYear();\n } else {\n const inputValue = input.value;\n\n // Autocomplete input as 2 characters (leading zero) when only 1 character entered (for day and month)\n if (inputValue.length === 1) {\n if (+inputValue === 0) {\n input.value = \"01\";\n } else {\n input.value = `0${inputValue}`;\n }\n }\n }\n\n if (input.value) {\n this.setInputValue(input);\n }\n };\n\n // Autocomplete year as current millennium when fewer than 4 characters entered\n private autocompleteYear = () => {\n const inputValue = this.yearInputEl.value;\n const yearNumbers = [\"2\", \"0\", \"0\"];\n\n let autocompletedInput = \"\";\n\n if (inputValue) {\n yearNumbers.forEach((number, index) => {\n if (inputValue.length + index <= 3) {\n autocompletedInput += number;\n }\n });\n\n this.yearInputEl.value = `${autocompletedInput}${inputValue}`;\n }\n };\n\n private convertToDate = (\n year: string,\n month: string,\n day: string\n ): Date | null => {\n if (!isEmptyString(year) && !isEmptyString(month) && !isEmptyString(day)) {\n return new Date(+year, +month - 1, +day);\n } else {\n return null;\n }\n };\n\n private handleHostBlur = () => {\n this.removeLabelledBy = false;\n this.icBlur.emit({ value: this.selectedDate });\n };\n\n private handleHostFocus = () => {\n if (this.el.shadowRoot.activeElement?.id.match(/(day|month|year)-input$/)) {\n this.removeLabelledBy = false;\n } else {\n this.removeLabelledBy = true;\n }\n this.icFocus.emit({ value: this.selectedDate });\n };\n\n private handleFormReset = () => {\n // Get the initial value and populate day, month and year again.\n this.setDate(this.initialValue);\n this.setValidationMessage();\n this.handleDateChange(false);\n };\n\n private getAriaLabel = (input: HTMLInputElement): string => {\n return input.getAttribute(this.ARIA_LABEL);\n };\n\n private notifyScreenReaderArrowKeys = (input: HTMLInputElement) => {\n const liveRegion = this.el.shadowRoot.querySelector(\"#live-region\");\n let announcement = \"\";\n const ariaLabel = this.getAriaLabel(input);\n\n if (liveRegion && input.value) {\n if (\n input === this.monthInputEl &&\n !!IcDateInputMonths[+input.value - 1]\n ) {\n announcement = `${input.value} - ${\n IcDateInputMonths[+input.value - 1]\n }, ${ariaLabel}`;\n }\n\n if (input === this.dayInputEl || input === this.yearInputEl) {\n announcement = `${input.value}, ${ariaLabel}`;\n }\n\n liveRegion.textContent = announcement;\n }\n };\n\n private removeAriaLabelledBy() {\n this.inputCompContainerEl.removeAttribute(this.ARIA_LABELLED_BY);\n }\n\n private setPastedValueAndValidation(\n isValidDate: boolean,\n pastedValue: string,\n event: ClipboardEvent\n ) {\n switch (true) {\n case isValidDate: {\n const nextParsedValue = this.isZuluTime\n ? extractDateFromZuluDateTime(pastedValue)\n : pastedValue;\n const dateParts = nextParsedValue.split(/-|\\/|\\./);\n this.inputsInOrder.forEach((input, index) => {\n input.classList.add(this.FIT_TO_VALUE);\n\n if (this.isZuluTime) {\n this.pasteZuluDateTime(dateParts, index);\n } else {\n let dateValue;\n\n if (input === this.dayInputEl || input === this.monthInputEl) {\n dateValue = this.slicePastedDate(2, dateParts[index]);\n } else {\n dateValue = this.slicePastedDate(4, dateParts[index]);\n }\n\n input.value = dateValue;\n\n this.setInputValue(input);\n this.autocompleteInput(input);\n }\n });\n this.isZuluTime = false;\n break;\n }\n\n case (pastedValue.length === 1 ||\n pastedValue.length === 2 ||\n pastedValue.length === 4) &&\n isNumeric(pastedValue):\n if (this.checkSingleCopiedValueIsValid(event.target, pastedValue)) {\n // Check if copied value can be pasted into input\n this.setInputPasteValue(event.target, pastedValue);\n this.setInputValue(event.target as HTMLInputElement);\n } else {\n this.displayPastedValidation(event);\n }\n break;\n\n case pastedValue.length === 3 && isNumeric(pastedValue):\n if (event.target !== this.yearInputEl) {\n this.displayPastedValidation(event);\n } else {\n this.setInputPasteValue(event.target, pastedValue);\n this.setInputValue(event.target as HTMLInputElement);\n }\n break;\n\n case pastedValue.length >= 5 && isNumeric(pastedValue):\n this.displayPastedValidation(event);\n }\n }\n\n private pasteZuluDateTime(dateParts: string[], index: number) {\n // ['YYYY', 'MM', 'DD']\n if (index === 0) {\n const dateValue = this.slicePastedDate(4, dateParts[index]);\n this.yearInputEl.value = dateValue;\n this.setInputValue(this.yearInputEl);\n } else if (index === 1) {\n // The month value is the second item in the array\n const dateValue = this.slicePastedDate(2, dateParts[index]);\n this.monthInputEl.value = dateValue;\n this.setInputValue(this.monthInputEl);\n } else {\n const dateValue = this.slicePastedDate(2, dateParts[index]);\n this.dayInputEl.value = dateValue;\n this.setInputValue(this.dayInputEl);\n }\n }\n\n private displayPastedValidation(event: ClipboardEvent) {\n if (this.invalidDateText?.length > 0) {\n this.previousInvalidDateTest = this.invalidDateText;\n }\n\n this.invalidDateText = `Please paste a valid ${this.getAriaLabel(\n event.target as HTMLInputElement\n )}`;\n\n this.validationStatus = IcInformationStatus.Error;\n this.isPasteValidationDisplayed = true;\n }\n\n private setPasteInvalidText() {\n if (this.isPasteValidationDisplayed) {\n this.invalidDateText = this.previousInvalidDateTest ?? \"\";\n this.isPasteValidationDisplayed = false;\n\n // This is to prevent setDate from triggering within componentWillUpdate\n this.isDateSetFromKeyboardEvent = true;\n }\n }\n\n private notifyScreenReader(input: HTMLInputElement, event: Event) {\n const liveRegion = this.el.shadowRoot.querySelector(\"#live-region\");\n\n if (liveRegion) {\n if (this.isKeyboardOrEvent(event)) {\n this.notifyScreenReaderArrowKeys(input);\n } else if (\n Object.prototype.toString.call(event) === this.INPUT_EVENT_OBJECT_STRING\n ) {\n this.notifyScreenReaderInput(input, liveRegion as HTMLElement);\n }\n }\n }\n\n private notifyScreenReaderInput = (\n input: HTMLInputElement,\n liveRegion: HTMLElement\n ) => {\n let announcement = \"\";\n const ariaLabel = this.getAriaLabel(input);\n\n if (input === this.dayInputEl || input === this.monthInputEl) {\n if (input.value.length === 2) {\n if (\n input === this.monthInputEl &&\n !!IcDateInputMonths[+input.value - 1] &&\n this.isValidMonth\n ) {\n announcement = `${input.value} - ${\n IcDateInputMonths[+input.value - 1]\n }, ${ariaLabel}`;\n }\n\n if (input === this.dayInputEl && this.isValidDay) {\n announcement = `${input.value}, ${ariaLabel}`;\n }\n } else {\n announcement = \"\";\n }\n } else {\n if (input.value.length === 4) {\n announcement = `${input.value}, ${ariaLabel}`;\n } else {\n announcement = \"\";\n }\n }\n liveRegion.textContent = announcement;\n };\n\n private setFitToValueStyling = (input: HTMLInputElement) => {\n if (input.value) {\n input.classList.add(this.FIT_TO_VALUE);\n } else {\n input.classList.remove(this.FIT_TO_VALUE);\n }\n };\n\n private setAriaInvalid = (\n validDay: boolean,\n validMonth: boolean,\n validDate: boolean,\n disabledDate: boolean\n ) => {\n if (this.inputsInOrder.length) {\n this.inputsInOrder.forEach((input) => {\n input.removeAttribute(this.ARIA_INVALID);\n });\n\n if (!validDay) {\n this.dayInputEl.setAttribute(this.ARIA_INVALID, \"true\");\n }\n\n if (!validMonth) {\n this.monthInputEl.setAttribute(this.ARIA_INVALID, \"true\");\n }\n\n if (!validDate || disabledDate) {\n this.inputsInOrder.forEach((input) => {\n input.setAttribute(this.ARIA_INVALID, \"true\");\n });\n }\n }\n };\n\n private handleClear = () => {\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setInputValue(input, true);\n this.setPreventInput(input, false);\n });\n this.isDateSetFromKeyboardEvent = false;\n this.setValidationMessage();\n this.handleDateChange(true);\n\n this.inputsInOrder[0].focus();\n };\n\n private handleCalendarOpen = (ev: MouseEvent) => {\n ev.stopImmediatePropagation();\n this.calendarButtonEl?.shadowRoot\n .querySelector(\"ic-tooltip\")\n .displayTooltip(false);\n this.calendarButtonClicked.emit({ value: this.selectedDate });\n this.calendarButtonEl?.shadowRoot\n .querySelector(\"ic-tooltip\")\n .displayTooltip(false);\n this.isDateSetFromKeyboardEvent = false;\n };\n\n private setValueAndEmitChange = (value: Date) => {\n if (!dateMatches(new Date(this.value), value)) {\n this.emitIcChange(value);\n this.value = value;\n }\n };\n\n private handleCalendarFocus = () => {\n this.calendarFocused = true;\n };\n\n private handleCalendarBlur = () => {\n this.calendarFocused = false;\n };\n\n private handleClearFocus = () => {\n this.removeLabelledBy = true;\n this.clearButtonFocused = true;\n };\n\n private handleClearBlur = (ev: FocusEvent) => {\n this.clearButtonFocused = false;\n if ((ev.relatedTarget as HTMLElement)?.id.match(/(day|year)-input$/)) {\n this.removeLabelledBy = false;\n return;\n }\n\n this.removeLabelledBy = true;\n };\n\n private emitIcChange = (d: Date) => {\n if (\n !(d === null && this.previousEmittedDate === null) &&\n !dateMatches(d, this.previousEmittedDate)\n ) {\n this.previousEmittedDate = d;\n this.icChange.emit({ value: d });\n }\n };\n\n render() {\n const {\n inputId,\n label,\n disabled,\n helperText,\n hideHelperText,\n hideLabel,\n showClearButton,\n showCalendarButton,\n size,\n theme,\n } = this;\n\n const hasCustomValidation = !isEmptyString(this.validationStatus);\n\n const validationStatus = hasCustomValidation\n ? this.validationStatus\n : !isEmptyString(this.invalidDateText)\n ? IcInformationStatus.Error\n : \"\";\n\n const assistiveHint = `Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;\n\n renderHiddenInput(\n true,\n this.el,\n this.name,\n this.convertToDate(this.year, this.month, this.day),\n this.disabled\n );\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-date-input-disabled`]: disabled,\n }}\n onBlur={this.handleHostBlur}\n onFocus={this.handleHostFocus}\n >\n <ic-input-container disabled={disabled}>\n {!(hideLabel && hideHelperText) && (\n <ic-input-label\n for={inputId}\n label={label}\n hideLabel={hideLabel}\n helperText={!hideHelperText ? helperText : \"\"}\n disabled={disabled}\n ></ic-input-label>\n )}\n <span id={this.screenReaderInfoId} class=\"sr-only\" aria-hidden=\"true\">\n {this.getScreenReaderInfo(validationStatus)}\n {hideLabel && `${label}\\n`}\n {hideHelperText && `${helperText}\\n`}\n {`${this.defaultHelperText}.`}\n </span>\n <span id={this.assistiveHintId} class=\"sr-only\" aria-hidden=\"true\">\n {assistiveHint}\n </span>\n <span id=\"live-region\" aria-live=\"assertive\" class=\"sr-only\"></span>\n <ic-input-component-container\n id={inputId}\n ref={(el: HTMLIcInputComponentContainerElement) =>\n (this.inputCompContainerEl = el)\n }\n disabled={disabled}\n validationStatus={validationStatus}\n size={size}\n role=\"group\"\n class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}\n >\n <div class=\"input-container\">\n <div class=\"date-inputs\">\n {this.getInputsInOrder()[0]}/{this.getInputsInOrder()[1]}/\n {this.getInputsInOrder()[2]}\n </div>\n <div class=\"action-buttons\">\n {showClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear input\"\n class={{\n [\"clear-button\"]: true,\n [\"hidden\"]:\n isEmptyString(this.day) &&\n isEmptyString(this.month) &&\n isEmptyString(this.year),\n }}\n disabled={this.disabled}\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearFocus}\n onBlur={this.handleClearBlur}\n variant=\"icon-tertiary\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n size={size}\n ></ic-button>\n )}\n {showCalendarButton && (\n <div class=\"show-calendar-button-wrapper\">\n <div class={{ divider: true, [size]: true }}></div>\n <ic-button\n id=\"calendar-button\"\n ref={(el: HTMLIcButtonElement) =>\n (this.calendarButtonEl = el)\n }\n aria-label=\"Display calendar\"\n aria-haspopup=\"dialog\"\n class=\"calendar-button\"\n disabled={this.disabled}\n innerHTML={Calendar}\n onClick={this.handleCalendarOpen}\n variant=\"icon-tertiary\"\n size={size}\n onFocus={this.handleCalendarFocus}\n onBlur={this.handleCalendarBlur}\n theme={this.calendarFocused ? \"light\" : \"dark\"}\n ></ic-button>\n </div>\n )}\n </div>\n </div>\n </ic-input-component-container>\n <span id={this.selectedDateInfoId} class=\"sr-only\" aria-live=\"polite\">\n <span\n ref={(el) => (this.selectedDateInfoEl = el)}\n role=\"status\"\n ></span>\n </span>\n {(hasCustomValidation || !isEmptyString(this.invalidDateText)) && (\n <ic-input-validation\n status={validationStatus}\n message={\n hasCustomValidation ? this.validationText : this.invalidDateText\n }\n for={inputId}\n ></ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r,h as e,H as t,g as i}from"./p-8455d1bb.js";import{C as s}from"./p-170ddfc2.js";import{i as c,z as a,d as o}from"./p-897fac99.js";const n=`<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z" fill="currentColor"/>\n</svg>\n`;const l=':host{display:block;margin:var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0}:host .breadcrumb{display:flex;align-items:center;white-space:nowrap;gap:var(--ic-space-xs);min-height:var(--ic-space-lg)}:host .chevron{width:var(--ic-space-lg);height:var(--ic-space-lg)}:host .chevron svg,:host(.ic-breadcrumb-monochrome) .chevron svg{color:var(--ic-breadcrumb-icon-chevron)}:host(:first-child) .chevron{display:none}.back-icon svg{color:var(--ic-breadcrumb-icon)}:host(.ic-breadcrumb-monochrome) .back-icon svg{color:var(--ic-breadcrumb-icon-monochrome)}:host(.ic-breadcrumb-back){display:flex;align-items:center}:host(.ic-breadcrumb-back) .chevron{display:none}ic-link{--breadcrumb-link-display:inline-flex;--breadcrumb-link-align-items:center;--breadcrumb-link-gap:var(--ic-space-xs)}:host([aria-current="page"]){cursor:text}:host([aria-current="page"]) .current-page-container{display:flex;align-items:center;gap:var(--ic-space-xs);color:var(--ic-breadcrumb-text)}:host([aria-current="page"].ic-breadcrumb-monochrome) .current-page-container{color:var(--ic-breadcrumb-text-monochrome)}:host([aria-current="page"]) slot{pointer-events:none}:host(.collapsed-breadcrumb-wrapper){margin-right:var(--ic-space-xs) !important;display:flex;align-items:center;gap:var(--ic-space-xs)}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb){border:none;background-color:transparent;color:var(--ic-color-hyperlink-default);text-decoration:underline;font-weight:var(--ic-font-weight-bold);cursor:pointer}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus){outline:var(--ic-hc-focus-outline);border-bottom:0.25rem solid !important;margin-bottom:-0.25rem !important;text-decoration:none}.hide,:host(.collapsed-breadcrumb-wrapper) ::slotted(.hide){display:none}@media (forced-colors: active){.back-icon svg{color:currentcolor}}@supports (text-underline-offset: 25%){ic-link{--breadcrumb-link-display:flex}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus){text-decoration-line:underline;text-decoration-thickness:25%;text-underline-offset:25%;border-bottom:0 !important;margin-bottom:0 !important}}';const h=class{constructor(t){r(this,t);this.HREF_ATTR="href";this.updatedSlottedLinkFocus=()=>{if(this.linkSlotContent){this.linkSlotContent.tabIndex=this.current?-1:0}if(this.slottedLinkEl){if(this.current){this.slottedLinkEl.removeAttribute(this.HREF_ATTR)}else{this.slottedLinkEl.setAttribute(this.HREF_ATTR,this.slottedLinkHref)}}};this.getSlottedLinkEl=()=>{const r=this.linkSlotContent;if(r){const e=r.hasAttribute(this.HREF_ATTR)?r:r.querySelector("[href]");return e}return null};this.renderDefaultBreadcrumb=(r,t,i,s)=>{const a=t!==null&&o(t)&&t!=="";if(r&&a){return e("span",{class:{"current-page-container":r}},c(this.el,"icon")&&e("slot",{name:"icon"}),t)}return e("ic-link",{theme:this.theme,monochrome:this.monochrome,href:s,class:"breadcrumb-link","aria-describedby":this.showBackIcon&&i&&i},this.showBackIcon&&e("div",{class:"back-icon",innerHTML:n}),c(this.el,"icon")&&e("slot",{name:"icon"}),t)};this.setSlottedCurrentPageClass=()=>{const r=this.el.querySelector("ic-link");const e="current-page";if(r){r.classList.remove(e);if(this.current){const t=r.classList.contains(e);if(!t){r.classList.add("breadcrumb-link",e)}}}};this.current=false;this.href=undefined;this.monochrome=false;this.pageTitle=undefined;this.showBackIcon=false;this.theme="inherit"}watchCurrentHandler(){this.updatedSlottedLinkFocus();this.el.ariaCurrent=this.current?"page":null}componentDidLoad(){var r;const e=this.el.shadowRoot.querySelector(".link-wrapper");if(e){this.linkSlotContent=a(e)[0];this.slottedLinkEl=this.getSlottedLinkEl();this.slottedLinkHref=(r=this.slottedLinkEl)===null||r===void 0?void 0:r.getAttribute("href");this.updatedSlottedLinkFocus()}}componentWillRender(){this.setSlottedCurrentPageClass()}async setFocus(){if(this.el.shadowRoot.querySelector("ic-link")){this.el.shadowRoot.querySelector("ic-link").focus()}}render(){const{current:r,href:i,pageTitle:c}=this;const a=`${c&&c.toLowerCase().replace(" ","-")}-describedby`;const n=c!==null&&o(c)&&c!=="";const l=i!==null&&o(i)&&i!=="";return e(t,{class:{"ic-breadcrumb-back":this.showBackIcon,[`ic-theme-${this.theme}`]:this.theme!=="inherit","ic-breadcrumb-monochrome":this.monochrome},"aria-current":r&&"page",role:"listitem"},e("div",{class:"breadcrumb"},e("span",{innerHTML:s,class:"chevron","aria-hidden":"true"}),this.showBackIcon&&a&&e("span",{id:a,class:"hide"},`Back to ${c}`),n&&l?this.renderDefaultBreadcrumb(r,c,a,i):e("span",{class:"link-wrapper"},e("slot",null))))}static get delegatesFocus(){return true}get el(){return i(this)}static get watchers(){return{current:["watchCurrentHandler"]}}};h.style=l;export{h as ic_breadcrumb};
2
- //# sourceMappingURL=p-a69ef3eb.entry.js.map