@ukic/canary-web-components 3.0.0-canary.19 → 3.0.0-canary.20

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 (554) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-f4e7322b.js → helpers-274ac318.js} +30 -32
  3. package/dist/cjs/helpers-274ac318.js.map +1 -0
  4. package/dist/cjs/{helpers-a5405964.js → helpers-da852478.js} +4 -2
  5. package/dist/cjs/helpers-da852478.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-button_3.cjs.entry.js +135 -142
  14. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -5
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox_3.cjs.entry.js +4 -4
  20. package/dist/cjs/ic-checkbox_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  23. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  25. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-data-table.cjs.entry.js +91 -48
  28. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-date-input.cjs.entry.js +5 -5
  30. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-date-picker.cjs.entry.js +11 -11
  32. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-dialog.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  38. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  41. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  43. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +19 -14
  45. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-input-label_2.cjs.entry.js +36 -13
  47. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  49. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  51. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-navigation-button.cjs.entry.js +31 -39
  54. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-navigation-group.cjs.entry.js +7 -4
  56. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  58. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  60. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  62. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-pagination_4.cjs.entry.js +20 -20
  64. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  66. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-radio-group.cjs.entry.js +6 -6
  68. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
  70. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-search-bar.cjs.entry.js +28 -12
  72. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  74. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-side-navigation.cjs.entry.js +16 -17
  76. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  78. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  80. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  82. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  84. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  86. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-switch.cjs.entry.js +6 -6
  88. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  90. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  92. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  94. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  96. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  97. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  99. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-toast.cjs.entry.js +4 -4
  101. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  103. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  104. package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
  105. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  106. package/dist/cjs/ic-top-navigation.cjs.entry.js +15 -9
  107. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  108. package/dist/cjs/ic-tree-item.cjs.entry.js +31 -33
  109. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  110. package/dist/cjs/ic-tree-view.cjs.entry.js +4 -15
  111. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  112. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  113. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  114. package/dist/cjs/loader.cjs.js +1 -1
  115. package/dist/collection/components/ic-data-table/ic-data-table.css +12 -6
  116. package/dist/collection/components/ic-data-table/ic-data-table.js +119 -46
  117. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  118. package/dist/collection/components/ic-data-table/ic-data-table.stories.js +15 -1
  119. package/dist/collection/components/ic-data-table/ic-data-table.stories.js.map +1 -1
  120. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  121. package/dist/collection/components/ic-data-table/story-data.js +121 -6
  122. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  123. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.stories.js +5 -1
  124. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.stories.js.map +1 -1
  125. package/dist/collection/components/ic-date-input/ic-date-input.js +7 -4
  126. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  127. package/dist/collection/components/ic-date-input/ic-date-input.stories.js +13 -4
  128. package/dist/collection/components/ic-date-input/ic-date-input.stories.js.map +1 -1
  129. package/dist/collection/components/ic-date-picker/ic-date-picker.js +13 -10
  130. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  131. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js +9 -1
  132. package/dist/collection/components/ic-date-picker/ic-date-picker.stories.js.map +1 -1
  133. package/dist/collection/components/ic-date-picker/story-data.js +25 -0
  134. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -1
  135. package/dist/collection/components/ic-tree-item/ic-tree-item.css +12 -21
  136. package/dist/collection/components/ic-tree-item/ic-tree-item.js +50 -56
  137. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  138. package/dist/collection/components/ic-tree-view/ic-tree-view.js +3 -36
  139. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  140. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js +29 -54
  141. package/dist/collection/components/ic-tree-view/ic-tree-view.stories.js.map +1 -1
  142. package/dist/collection/components/ic-tree-view/ic-tree-view.types.js.map +1 -1
  143. package/dist/collection/utils/helpers.js +3 -1
  144. package/dist/collection/utils/helpers.js.map +1 -1
  145. package/dist/components/helpers.js +29 -32
  146. package/dist/components/helpers.js.map +1 -1
  147. package/dist/components/helpers2.js +3 -1
  148. package/dist/components/helpers2.js.map +1 -1
  149. package/dist/components/ic-button2.js +3 -3
  150. package/dist/components/ic-button2.js.map +1 -1
  151. package/dist/components/ic-checkbox-group.js +4 -4
  152. package/dist/components/ic-checkbox-group.js.map +1 -1
  153. package/dist/components/ic-data-list.js +2 -2
  154. package/dist/components/ic-data-list.js.map +1 -1
  155. package/dist/components/ic-data-row.js +2 -2
  156. package/dist/components/ic-data-row.js.map +1 -1
  157. package/dist/components/ic-data-table.js +91 -47
  158. package/dist/components/ic-data-table.js.map +1 -1
  159. package/dist/components/ic-date-input2.js +4 -4
  160. package/dist/components/ic-date-input2.js.map +1 -1
  161. package/dist/components/ic-date-picker.js +10 -10
  162. package/dist/components/ic-date-picker.js.map +1 -1
  163. package/dist/components/ic-dialog.js +1 -1
  164. package/dist/components/ic-dialog.js.map +1 -1
  165. package/dist/components/ic-empty-state2.js +2 -2
  166. package/dist/components/ic-empty-state2.js.map +1 -1
  167. package/dist/components/ic-footer-link.js +2 -2
  168. package/dist/components/ic-footer-link.js.map +1 -1
  169. package/dist/components/ic-hero.js +4 -4
  170. package/dist/components/ic-hero.js.map +1 -1
  171. package/dist/components/ic-horizontal-scroll2.js +5 -5
  172. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  173. package/dist/components/ic-input-component-container2.js +3 -3
  174. package/dist/components/ic-input-component-container2.js.map +1 -1
  175. package/dist/components/ic-input-container2.js +2 -2
  176. package/dist/components/ic-input-container2.js.map +1 -1
  177. package/dist/components/ic-input-label2.js +33 -10
  178. package/dist/components/ic-input-label2.js.map +1 -1
  179. package/dist/components/ic-input-validation2.js +3 -3
  180. package/dist/components/ic-input-validation2.js.map +1 -1
  181. package/dist/components/ic-link2.js +1 -1
  182. package/dist/components/ic-link2.js.map +1 -1
  183. package/dist/components/ic-loading-indicator2.js +139 -143
  184. package/dist/components/ic-loading-indicator2.js.map +1 -1
  185. package/dist/components/ic-menu-group.js +1 -1
  186. package/dist/components/ic-menu-group.js.map +1 -1
  187. package/dist/components/ic-menu2.js +16 -9
  188. package/dist/components/ic-menu2.js.map +1 -1
  189. package/dist/components/ic-navigation-button.js +32 -41
  190. package/dist/components/ic-navigation-button.js.map +1 -1
  191. package/dist/components/ic-navigation-group.js +8 -5
  192. package/dist/components/ic-navigation-group.js.map +1 -1
  193. package/dist/components/ic-navigation-item.js +2 -2
  194. package/dist/components/ic-navigation-item.js.map +1 -1
  195. package/dist/components/ic-navigation-menu2.js +5 -5
  196. package/dist/components/ic-navigation-menu2.js.map +1 -1
  197. package/dist/components/ic-page-header.js +6 -6
  198. package/dist/components/ic-page-header.js.map +1 -1
  199. package/dist/components/ic-pagination-item2.js +1 -1
  200. package/dist/components/ic-pagination-item2.js.map +1 -1
  201. package/dist/components/ic-pagination2.js +4 -4
  202. package/dist/components/ic-pagination2.js.map +1 -1
  203. package/dist/components/ic-popover-menu.js +4 -4
  204. package/dist/components/ic-popover-menu.js.map +1 -1
  205. package/dist/components/ic-radio-group.js +5 -5
  206. package/dist/components/ic-radio-group.js.map +1 -1
  207. package/dist/components/ic-radio-option.js +4 -4
  208. package/dist/components/ic-radio-option.js.map +1 -1
  209. package/dist/components/ic-search-bar.js +31 -12
  210. package/dist/components/ic-search-bar.js.map +1 -1
  211. package/dist/components/ic-section-container2.js +2 -2
  212. package/dist/components/ic-section-container2.js.map +1 -1
  213. package/dist/components/ic-select2.js +7 -7
  214. package/dist/components/ic-select2.js.map +1 -1
  215. package/dist/components/ic-side-navigation.js +16 -17
  216. package/dist/components/ic-side-navigation.js.map +1 -1
  217. package/dist/components/ic-skeleton.js +2 -2
  218. package/dist/components/ic-skeleton.js.map +1 -1
  219. package/dist/components/ic-skip-link.js +2 -2
  220. package/dist/components/ic-skip-link.js.map +1 -1
  221. package/dist/components/ic-status-tag.js +2 -2
  222. package/dist/components/ic-status-tag.js.map +1 -1
  223. package/dist/components/ic-step.js +13 -13
  224. package/dist/components/ic-step.js.map +1 -1
  225. package/dist/components/ic-stepper.js +2 -2
  226. package/dist/components/ic-stepper.js.map +1 -1
  227. package/dist/components/ic-switch.js +5 -5
  228. package/dist/components/ic-switch.js.map +1 -1
  229. package/dist/components/ic-tab-context.js +1 -1
  230. package/dist/components/ic-tab-context.js.map +1 -1
  231. package/dist/components/ic-tab-group.js +2 -2
  232. package/dist/components/ic-tab-group.js.map +1 -1
  233. package/dist/components/ic-tab-panel.js +2 -2
  234. package/dist/components/ic-tab-panel.js.map +1 -1
  235. package/dist/components/ic-text-field2.js +7 -7
  236. package/dist/components/ic-text-field2.js.map +1 -1
  237. package/dist/components/ic-theme.js +2 -2
  238. package/dist/components/ic-theme.js.map +1 -1
  239. package/dist/components/ic-toast-region.js +1 -1
  240. package/dist/components/ic-toast-region.js.map +1 -1
  241. package/dist/components/ic-toast.js +4 -4
  242. package/dist/components/ic-toast.js.map +1 -1
  243. package/dist/components/ic-toggle-button-group.js +2 -2
  244. package/dist/components/ic-toggle-button-group.js.map +1 -1
  245. package/dist/components/ic-toggle-button.js +3 -3
  246. package/dist/components/ic-toggle-button.js.map +1 -1
  247. package/dist/components/ic-top-navigation.js +15 -9
  248. package/dist/components/ic-top-navigation.js.map +1 -1
  249. package/dist/components/ic-tree-item.js +31 -33
  250. package/dist/components/ic-tree-item.js.map +1 -1
  251. package/dist/components/ic-tree-view.js +3 -16
  252. package/dist/components/ic-tree-view.js.map +1 -1
  253. package/dist/components/ic-typography2.js +2 -2
  254. package/dist/components/ic-typography2.js.map +1 -1
  255. package/dist/core/core.css +29 -25
  256. package/dist/core/core.esm.js +1 -1
  257. package/dist/core/core.esm.js.map +1 -1
  258. package/dist/core/{p-b7d117e8.entry.js → p-09acf70a.entry.js} +2 -2
  259. package/dist/core/{p-578a02ff.entry.js → p-0bc8652d.entry.js} +2 -2
  260. package/dist/core/{p-578a02ff.entry.js.map → p-0bc8652d.entry.js.map} +1 -1
  261. package/dist/core/{p-c5ffe2cf.entry.js → p-0f86ea09.entry.js} +2 -2
  262. package/dist/core/{p-c5ffe2cf.entry.js.map → p-0f86ea09.entry.js.map} +1 -1
  263. package/dist/core/p-13f52d7b.js +2 -0
  264. package/dist/core/p-13f52d7b.js.map +1 -0
  265. package/dist/core/{p-e38dd019.entry.js → p-28b10396.entry.js} +2 -2
  266. package/dist/core/{p-1fd22368.entry.js → p-29601c16.entry.js} +2 -2
  267. package/dist/core/{p-1673d010.entry.js → p-2c27c85b.entry.js} +2 -2
  268. package/dist/core/{p-1673d010.entry.js.map → p-2c27c85b.entry.js.map} +1 -1
  269. package/dist/core/{p-976f4280.entry.js → p-301131d6.entry.js} +2 -2
  270. package/dist/core/{p-976f4280.entry.js.map → p-301131d6.entry.js.map} +1 -1
  271. package/dist/core/{p-887b1302.entry.js → p-304c6a01.entry.js} +2 -2
  272. package/dist/core/p-304c6a01.entry.js.map +1 -0
  273. package/dist/core/{p-8d2d9e11.entry.js → p-3352cb6c.entry.js} +2 -2
  274. package/dist/core/{p-8d2d9e11.entry.js.map → p-3352cb6c.entry.js.map} +1 -1
  275. package/dist/core/{p-dee21f6d.entry.js → p-3448c713.entry.js} +2 -2
  276. package/dist/core/{p-dee21f6d.entry.js.map → p-3448c713.entry.js.map} +1 -1
  277. package/dist/core/{p-e003ad46.entry.js → p-3b994e61.entry.js} +2 -2
  278. package/dist/core/{p-e003ad46.entry.js.map → p-3b994e61.entry.js.map} +1 -1
  279. package/dist/core/{p-1f18bbf6.entry.js → p-3f45c7ce.entry.js} +2 -2
  280. package/dist/core/{p-1f18bbf6.entry.js.map → p-3f45c7ce.entry.js.map} +1 -1
  281. package/dist/core/{p-f9e78341.entry.js → p-4150f333.entry.js} +2 -2
  282. package/dist/core/p-4150f333.entry.js.map +1 -0
  283. package/dist/core/{p-16e78c1d.entry.js → p-4271e7f4.entry.js} +2 -2
  284. package/dist/core/{p-16e78c1d.entry.js.map → p-4271e7f4.entry.js.map} +1 -1
  285. package/dist/core/{p-6e0f4278.entry.js → p-4d5dfb71.entry.js} +2 -2
  286. package/dist/core/{p-ba5e1b21.entry.js → p-4e2ef907.entry.js} +2 -2
  287. package/dist/core/p-4f941e4c.entry.js +2 -0
  288. package/dist/core/p-4f941e4c.entry.js.map +1 -0
  289. package/dist/core/{p-920f6480.entry.js → p-57e881b4.entry.js} +2 -2
  290. package/dist/core/{p-920f6480.entry.js.map → p-57e881b4.entry.js.map} +1 -1
  291. package/dist/core/p-5f8b09e4.entry.js +2 -0
  292. package/dist/core/p-5f8b09e4.entry.js.map +1 -0
  293. package/dist/core/{p-8ae0fd6f.entry.js → p-6938e1d9.entry.js} +2 -2
  294. package/dist/core/{p-671acf27.entry.js → p-693a568b.entry.js} +2 -2
  295. package/dist/core/{p-29a49ea2.entry.js → p-6c97db37.entry.js} +2 -2
  296. package/dist/core/{p-29a49ea2.entry.js.map → p-6c97db37.entry.js.map} +1 -1
  297. package/dist/core/{p-d4903dcd.entry.js → p-6dd73165.entry.js} +2 -2
  298. package/dist/core/{p-d4903dcd.entry.js.map → p-6dd73165.entry.js.map} +1 -1
  299. package/dist/core/{p-5926c2b2.entry.js → p-6f7e8b3e.entry.js} +2 -2
  300. package/dist/core/{p-5926c2b2.entry.js.map → p-6f7e8b3e.entry.js.map} +1 -1
  301. package/dist/core/p-7001f1c1.entry.js +2 -0
  302. package/dist/core/p-7001f1c1.entry.js.map +1 -0
  303. package/dist/core/p-704c5fee.entry.js +2 -0
  304. package/dist/core/{p-b92727c0.entry.js.map → p-704c5fee.entry.js.map} +1 -1
  305. package/dist/core/{p-a894ddb6.entry.js → p-7436d8de.entry.js} +2 -2
  306. package/dist/core/p-795afeb2.entry.js +2 -0
  307. package/dist/core/p-795afeb2.entry.js.map +1 -0
  308. package/dist/core/p-7dcdb89b.entry.js +2 -0
  309. package/dist/core/p-7dcdb89b.entry.js.map +1 -0
  310. package/dist/core/p-826a4e46.entry.js +2 -0
  311. package/dist/core/p-826a4e46.entry.js.map +1 -0
  312. package/dist/core/{p-9989ec00.entry.js → p-82941d0a.entry.js} +2 -2
  313. package/dist/core/{p-9989ec00.entry.js.map → p-82941d0a.entry.js.map} +1 -1
  314. package/dist/core/{p-7e4f5717.entry.js → p-856e0cda.entry.js} +2 -2
  315. package/dist/core/{p-7e4f5717.entry.js.map → p-856e0cda.entry.js.map} +1 -1
  316. package/dist/core/p-8e70b907.entry.js +2 -0
  317. package/dist/core/p-8e70b907.entry.js.map +1 -0
  318. package/dist/core/{p-7eaa223b.entry.js → p-91eacea5.entry.js} +2 -2
  319. package/dist/core/{p-7eaa223b.entry.js.map → p-91eacea5.entry.js.map} +1 -1
  320. package/dist/core/{p-8112444e.entry.js → p-95d3ff68.entry.js} +2 -2
  321. package/dist/core/{p-c3be8a0f.entry.js → p-961d7718.entry.js} +2 -2
  322. package/dist/core/p-961d7718.entry.js.map +1 -0
  323. package/dist/core/{p-b92e5fb3.entry.js → p-972f21fa.entry.js} +2 -2
  324. package/dist/core/{p-3cb4ecef.entry.js → p-9e051db4.entry.js} +2 -2
  325. package/dist/core/{p-3cb4ecef.entry.js.map → p-9e051db4.entry.js.map} +1 -1
  326. package/dist/core/{p-9aecbfe9.entry.js → p-9e19560f.entry.js} +2 -2
  327. package/dist/core/{p-9aecbfe9.entry.js.map → p-9e19560f.entry.js.map} +1 -1
  328. package/dist/core/p-a34c894b.entry.js +2 -0
  329. package/dist/core/p-a34c894b.entry.js.map +1 -0
  330. package/dist/core/{p-abcaf14d.entry.js → p-a6b573c0.entry.js} +2 -2
  331. package/dist/core/p-a6b573c0.entry.js.map +1 -0
  332. package/dist/core/{p-6a63a73a.entry.js → p-acc884bc.entry.js} +2 -2
  333. package/dist/core/{p-6a63a73a.entry.js.map → p-acc884bc.entry.js.map} +1 -1
  334. package/dist/core/{p-f6eaec92.entry.js → p-afff5652.entry.js} +2 -2
  335. package/dist/core/{p-864e337f.entry.js → p-b093cecd.entry.js} +2 -2
  336. package/dist/core/{p-864e337f.entry.js.map → p-b093cecd.entry.js.map} +1 -1
  337. package/dist/core/{p-e2629bfe.entry.js → p-b1b27b7e.entry.js} +2 -2
  338. package/dist/core/{p-e2629bfe.entry.js.map → p-b1b27b7e.entry.js.map} +1 -1
  339. package/dist/core/{p-fedfd000.entry.js → p-b3509380.entry.js} +2 -2
  340. package/dist/core/{p-e546d477.entry.js → p-b401ff42.entry.js} +2 -2
  341. package/dist/core/{p-9a78f449.entry.js → p-b522ce0a.entry.js} +2 -2
  342. package/dist/core/{p-9a78f449.entry.js.map → p-b522ce0a.entry.js.map} +1 -1
  343. package/dist/core/{p-2667c808.entry.js → p-b9369ce5.entry.js} +2 -2
  344. package/dist/core/p-b9369ce5.entry.js.map +1 -0
  345. package/dist/core/{p-eb74cab5.entry.js → p-c21317e5.entry.js} +2 -2
  346. package/dist/core/{p-28611f52.entry.js → p-c6bd71e5.entry.js} +2 -2
  347. package/dist/core/p-c6bd71e5.entry.js.map +1 -0
  348. package/dist/core/p-c73418dc.entry.js +2 -0
  349. package/dist/core/p-c73418dc.entry.js.map +1 -0
  350. package/dist/core/p-cd21aee7.entry.js +2 -0
  351. package/dist/core/p-cd21aee7.entry.js.map +1 -0
  352. package/dist/core/{p-de1e04ac.entry.js → p-d281c3cf.entry.js} +2 -2
  353. package/dist/core/{p-de1e04ac.entry.js.map → p-d281c3cf.entry.js.map} +1 -1
  354. package/dist/core/{p-9687e929.entry.js → p-da82bbef.entry.js} +2 -2
  355. package/dist/core/{p-9687e929.entry.js.map → p-da82bbef.entry.js.map} +1 -1
  356. package/dist/core/{p-ca7e1219.entry.js → p-e04d2e51.entry.js} +2 -2
  357. package/dist/core/p-e04d2e51.entry.js.map +1 -0
  358. package/dist/core/p-e253a857.js +2 -0
  359. package/dist/core/p-e253a857.js.map +1 -0
  360. package/dist/core/{p-4444e787.entry.js → p-e3059589.entry.js} +2 -2
  361. package/dist/core/{p-4444e787.entry.js.map → p-e3059589.entry.js.map} +1 -1
  362. package/dist/core/p-e4bff243.entry.js +2 -0
  363. package/dist/core/p-e4bff243.entry.js.map +1 -0
  364. package/dist/core/{p-85a17585.entry.js → p-ead0acc3.entry.js} +2 -2
  365. package/dist/core/{p-6bfff7ba.entry.js → p-ef444b18.entry.js} +2 -2
  366. package/dist/core/{p-6bfff7ba.entry.js.map → p-ef444b18.entry.js.map} +1 -1
  367. package/dist/core/{p-e64e27be.entry.js → p-f35563a0.entry.js} +2 -2
  368. package/dist/core/{p-bf3b853e.entry.js → p-fc5661ac.entry.js} +2 -2
  369. package/dist/core/{p-bf3b853e.entry.js.map → p-fc5661ac.entry.js.map} +1 -1
  370. package/dist/esm/core.js +1 -1
  371. package/dist/esm/{helpers-ef2db990.js → helpers-d9387cd3.js} +4 -2
  372. package/dist/esm/helpers-d9387cd3.js.map +1 -0
  373. package/dist/esm/{helpers-fc03923c.js → helpers-f094ef64.js} +30 -33
  374. package/dist/esm/helpers-f094ef64.js.map +1 -0
  375. package/dist/esm/ic-accordion-group.entry.js +1 -1
  376. package/dist/esm/ic-accordion.entry.js +1 -1
  377. package/dist/esm/ic-alert.entry.js +1 -1
  378. package/dist/esm/ic-back-to-top.entry.js +1 -1
  379. package/dist/esm/ic-badge.entry.js +1 -1
  380. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  381. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  382. package/dist/esm/ic-button_3.entry.js +135 -142
  383. package/dist/esm/ic-button_3.entry.js.map +1 -1
  384. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  385. package/dist/esm/ic-card-vertical.entry.js +1 -1
  386. package/dist/esm/ic-checkbox-group.entry.js +5 -5
  387. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  388. package/dist/esm/ic-checkbox_3.entry.js +4 -4
  389. package/dist/esm/ic-checkbox_3.entry.js.map +1 -1
  390. package/dist/esm/ic-chip.entry.js +1 -1
  391. package/dist/esm/ic-data-list.entry.js +2 -2
  392. package/dist/esm/ic-data-list.entry.js.map +1 -1
  393. package/dist/esm/ic-data-row.entry.js +3 -3
  394. package/dist/esm/ic-data-row.entry.js.map +1 -1
  395. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  396. package/dist/esm/ic-data-table.entry.js +91 -48
  397. package/dist/esm/ic-data-table.entry.js.map +1 -1
  398. package/dist/esm/ic-date-input.entry.js +5 -5
  399. package/dist/esm/ic-date-input.entry.js.map +1 -1
  400. package/dist/esm/ic-date-picker.entry.js +11 -11
  401. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  402. package/dist/esm/ic-dialog.entry.js +2 -2
  403. package/dist/esm/ic-dialog.entry.js.map +1 -1
  404. package/dist/esm/ic-divider.entry.js +1 -1
  405. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  406. package/dist/esm/ic-footer-link.entry.js +3 -3
  407. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  408. package/dist/esm/ic-footer.entry.js +1 -1
  409. package/dist/esm/ic-hero.entry.js +5 -5
  410. package/dist/esm/ic-hero.entry.js.map +1 -1
  411. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  412. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  413. package/dist/esm/ic-input-component-container_3.entry.js +19 -14
  414. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  415. package/dist/esm/ic-input-label_2.entry.js +36 -13
  416. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  417. package/dist/esm/ic-link.entry.js +2 -2
  418. package/dist/esm/ic-link.entry.js.map +1 -1
  419. package/dist/esm/ic-menu-group.entry.js +2 -2
  420. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  421. package/dist/esm/ic-menu-item.entry.js +1 -1
  422. package/dist/esm/ic-navigation-button.entry.js +31 -39
  423. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  424. package/dist/esm/ic-navigation-group.entry.js +7 -4
  425. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  426. package/dist/esm/ic-navigation-item.entry.js +2 -2
  427. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  428. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  429. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  430. package/dist/esm/ic-page-header.entry.js +7 -7
  431. package/dist/esm/ic-page-header.entry.js.map +1 -1
  432. package/dist/esm/ic-pagination_4.entry.js +20 -20
  433. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  434. package/dist/esm/ic-popover-menu.entry.js +5 -5
  435. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  436. package/dist/esm/ic-radio-group.entry.js +6 -6
  437. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  438. package/dist/esm/ic-radio-option.entry.js +5 -5
  439. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  440. package/dist/esm/ic-search-bar.entry.js +28 -12
  441. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  442. package/dist/esm/ic-section-container.entry.js +2 -2
  443. package/dist/esm/ic-section-container.entry.js.map +1 -1
  444. package/dist/esm/ic-side-navigation.entry.js +16 -17
  445. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  446. package/dist/esm/ic-skeleton.entry.js +2 -2
  447. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  448. package/dist/esm/ic-skip-link.entry.js +2 -2
  449. package/dist/esm/ic-skip-link.entry.js.map +1 -1
  450. package/dist/esm/ic-status-tag.entry.js +3 -3
  451. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  452. package/dist/esm/ic-step.entry.js +14 -14
  453. package/dist/esm/ic-step.entry.js.map +1 -1
  454. package/dist/esm/ic-stepper.entry.js +3 -3
  455. package/dist/esm/ic-stepper.entry.js.map +1 -1
  456. package/dist/esm/ic-switch.entry.js +6 -6
  457. package/dist/esm/ic-switch.entry.js.map +1 -1
  458. package/dist/esm/ic-tab-context.entry.js +1 -1
  459. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  460. package/dist/esm/ic-tab-group.entry.js +3 -3
  461. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  462. package/dist/esm/ic-tab-panel.entry.js +2 -2
  463. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  464. package/dist/esm/ic-tab.entry.js +1 -1
  465. package/dist/esm/ic-theme.entry.js +2 -2
  466. package/dist/esm/ic-theme.entry.js.map +1 -1
  467. package/dist/esm/ic-toast-region.entry.js +1 -1
  468. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  469. package/dist/esm/ic-toast.entry.js +4 -4
  470. package/dist/esm/ic-toast.entry.js.map +1 -1
  471. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  472. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  473. package/dist/esm/ic-toggle-button.entry.js +3 -3
  474. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  475. package/dist/esm/ic-top-navigation.entry.js +15 -9
  476. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  477. package/dist/esm/ic-tree-item.entry.js +31 -33
  478. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  479. package/dist/esm/ic-tree-view.entry.js +4 -15
  480. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  481. package/dist/esm/ic-typography.entry.js +3 -3
  482. package/dist/esm/ic-typography.entry.js.map +1 -1
  483. package/dist/esm/loader.js +1 -1
  484. package/dist/types/components/ic-data-table/ic-data-table.d.ts +13 -1
  485. package/dist/types/components/ic-data-table/ic-data-table.stories.d.ts +44 -32
  486. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +2 -0
  487. package/dist/types/components/ic-data-table/story-data.d.ts +4 -0
  488. package/dist/types/components/ic-date-input/ic-date-input.d.ts +3 -0
  489. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +3 -0
  490. package/dist/types/components/ic-date-picker/ic-date-picker.stories.d.ts +26 -18
  491. package/dist/types/components/ic-date-picker/story-data.d.ts +3 -0
  492. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +5 -5
  493. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +0 -5
  494. package/dist/types/components/ic-tree-view/ic-tree-view.stories.d.ts +22 -22
  495. package/dist/types/components/ic-tree-view/ic-tree-view.types.d.ts +1 -0
  496. package/dist/types/components.d.ts +26 -11
  497. package/dist/types/utils/helpers.d.ts +1 -1
  498. package/hydrate/index.js +592 -506
  499. package/hydrate/index.mjs +592 -506
  500. package/package.json +4 -6
  501. package/dist/cjs/helpers-a5405964.js.map +0 -1
  502. package/dist/cjs/helpers-f4e7322b.js.map +0 -1
  503. package/dist/core/p-0c9c6c31.entry.js +0 -2
  504. package/dist/core/p-0c9c6c31.entry.js.map +0 -1
  505. package/dist/core/p-0e0e0942.js +0 -2
  506. package/dist/core/p-0e0e0942.js.map +0 -1
  507. package/dist/core/p-17926ee3.entry.js +0 -2
  508. package/dist/core/p-17926ee3.entry.js.map +0 -1
  509. package/dist/core/p-188ba287.entry.js +0 -2
  510. package/dist/core/p-188ba287.entry.js.map +0 -1
  511. package/dist/core/p-2667c808.entry.js.map +0 -1
  512. package/dist/core/p-28611f52.entry.js.map +0 -1
  513. package/dist/core/p-4aaf10a5.entry.js +0 -2
  514. package/dist/core/p-4aaf10a5.entry.js.map +0 -1
  515. package/dist/core/p-582da938.entry.js +0 -2
  516. package/dist/core/p-582da938.entry.js.map +0 -1
  517. package/dist/core/p-61e78ce0.entry.js +0 -2
  518. package/dist/core/p-61e78ce0.entry.js.map +0 -1
  519. package/dist/core/p-7c3cd0b8.entry.js +0 -2
  520. package/dist/core/p-7c3cd0b8.entry.js.map +0 -1
  521. package/dist/core/p-887b1302.entry.js.map +0 -1
  522. package/dist/core/p-abcaf14d.entry.js.map +0 -1
  523. package/dist/core/p-aeeff0e5.entry.js +0 -2
  524. package/dist/core/p-aeeff0e5.entry.js.map +0 -1
  525. package/dist/core/p-b92727c0.entry.js +0 -2
  526. package/dist/core/p-c3be8a0f.entry.js.map +0 -1
  527. package/dist/core/p-c8d207e1.entry.js +0 -2
  528. package/dist/core/p-c8d207e1.entry.js.map +0 -1
  529. package/dist/core/p-ca7e1219.entry.js.map +0 -1
  530. package/dist/core/p-d0c38d58.entry.js +0 -2
  531. package/dist/core/p-d0c38d58.entry.js.map +0 -1
  532. package/dist/core/p-ead9900a.entry.js +0 -2
  533. package/dist/core/p-ead9900a.entry.js.map +0 -1
  534. package/dist/core/p-eca2fea1.js +0 -2
  535. package/dist/core/p-eca2fea1.js.map +0 -1
  536. package/dist/core/p-f9e78341.entry.js.map +0 -1
  537. package/dist/esm/helpers-ef2db990.js.map +0 -1
  538. package/dist/esm/helpers-fc03923c.js.map +0 -1
  539. /package/dist/core/{p-b7d117e8.entry.js.map → p-09acf70a.entry.js.map} +0 -0
  540. /package/dist/core/{p-e38dd019.entry.js.map → p-28b10396.entry.js.map} +0 -0
  541. /package/dist/core/{p-1fd22368.entry.js.map → p-29601c16.entry.js.map} +0 -0
  542. /package/dist/core/{p-6e0f4278.entry.js.map → p-4d5dfb71.entry.js.map} +0 -0
  543. /package/dist/core/{p-ba5e1b21.entry.js.map → p-4e2ef907.entry.js.map} +0 -0
  544. /package/dist/core/{p-8ae0fd6f.entry.js.map → p-6938e1d9.entry.js.map} +0 -0
  545. /package/dist/core/{p-671acf27.entry.js.map → p-693a568b.entry.js.map} +0 -0
  546. /package/dist/core/{p-a894ddb6.entry.js.map → p-7436d8de.entry.js.map} +0 -0
  547. /package/dist/core/{p-8112444e.entry.js.map → p-95d3ff68.entry.js.map} +0 -0
  548. /package/dist/core/{p-b92e5fb3.entry.js.map → p-972f21fa.entry.js.map} +0 -0
  549. /package/dist/core/{p-f6eaec92.entry.js.map → p-afff5652.entry.js.map} +0 -0
  550. /package/dist/core/{p-fedfd000.entry.js.map → p-b3509380.entry.js.map} +0 -0
  551. /package/dist/core/{p-e546d477.entry.js.map → p-b401ff42.entry.js.map} +0 -0
  552. /package/dist/core/{p-eb74cab5.entry.js.map → p-c21317e5.entry.js.map} +0 -0
  553. /package/dist/core/{p-85a17585.entry.js.map → p-ead0acc3.entry.js.map} +0 -0
  554. /package/dist/core/{p-e64e27be.entry.js.map → p-f35563a0.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["DayButton","focussed","today","day","monthInView","onFocusDay","onBlurDay","onSelectDay","selected","focussedDayRef","inRange","showDaysOutsideMonth","disableDay","handleDayClick","handleDayFocus","handleDayBlur","dayNames","stringEnumToArray","IcDayNames","months","IcDateInputMonths","outsideRange","outsideMonth","getMonth","disabled","h","class","hidden","tabIndex","undefined","getDay","getDate","getFullYear","onClick","onBlur","onFocus","ref","el","variant","italic","MonthPicker","size","focussedMonth","onSelectMonth","onKeyDown","focussedMonthRef","minDate","maxDate","yearInView","handleMonthClick","ev","button","target","Number","getAttribute","monthNames","role","map","month","index","current","dateInRange","Date","getMonthStart","getMonthEnd","YearPicker","decadeView","focussedYear","onSelectYear","onFocusYear","onBlurYear","focussedYearRef","handleYearClick","handleYearFocus","handleYearBlur","navButtonMouseDownHandler","preventDefault","prevDecade","nextDecade","years","slice","id","yearInRange","onMouseDown","slot","width","height","fill","xmlns","d","yr","flip","icDatePickerCss","IcDatePickerStyle0","DEFAULT_DATE_FORMAT","DEFAULT_DISABLE_DATES_FROM_NOW_MSG","DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG","DEFAULT_DISABLE_DAYS_MSG","FOCUS_TIMER","PICKER_HEIGHT_SMALL","PICKER_HEIGHT_DEFAULT","PICKER_HEIGHT_LARGE","DatePicker","constructor","hostRef","this","clearButtonEl","daysOfWeek","dayButtonFocussed","dayPickerKeyboardNav","dialogDescription","focusDay","liveRegionEl","monthInViewUpdateHandled","myCalendarButtonClicked","showPickerAbove","todayButtonEl","yearButtonFocussed","calendarOpen","currMonthView","currYearPickerView","focussedDate","monthPickerVisible","orderedDaysOfWeek","selectedDate","yearPickerVisible","dateFormat","emitDatePartChange","disableDays","disableDaysMessage","disableFuture","disableFutureMessage","disablePast","disablePastMessage","hideHelperText","hideLabel","invalidDateMessage","max","min","openAtDate","required","showPickerClearButton","showPickerTodayButton","startOfWeek","IcWeekDays","Monday","theme","validationStatus","validationText","value","setDecadeView","start","currYear","decadeArr","push","decadeStart","decadeEnd","setSelectedDate","emit","dateMatches","_a","inputEl","triggerIcChange","handleCalendarMouseDown","event","tagName","handleCalendarClick","clearDialogDescription","stopImmediatePropagation","handleDocumentClick","keyDownHandler","key","closeButtonClickHandler","setCalendarFocus","focusFirstElement","monthButtonEl","setFocus","focusLastElement","focussedMonthEl","focussedYearEl","focussedDayEl","focus","focusFocussedDay","monthButtonClickHandler","setAriaLiveRegionText","setMonthSelectedLiveRegionText","yearButtonClickHandler","getDecadeInViewText","setYearSelectedLiveRegionText","todayButtonClickHandler","setFocussedDate","getMonthInViewText","setTimeout","todayButtonKeyDownHandler","shiftKey","clearButtonClickHandler","text","innerText","clearButtonKeyDownHandler","goToPreviousMonth","moveMonths","goToNextMonth","goToPreviousYear","isPrevYearAllowed","moveYears","goToNextYear","isNextYearAllowed","renderMonthYearNavButton","buttonSize","disableTooltip","monthYearNavClickHandler","innerHTML","chevron","previousMonthButton","yearMatch","nextMonthButton","previousYearButton","nextYearButton","isYearAllowed","getMonthView","date","getWeekStart","end","getWeekEnd","days","setDate","isCurrentMonth","updateMonthInView","focussedDay","handleSelectDay","handleSelectMonth","handleSelectYear","year","yrPos","indexOf","length","monthName","yearButtonEl","updateFocussedYear","monthPickerKeyDownHandler","handled","updateFocussedMonth","calendarTabHandler","yearPickerKeyDownHandler","onYearButtonFocusHandler","onYearButtonBlurHandler","monthButtonKeyDownHandler","yearButtonKeyDownHandler","handleCalendarKeyDown","moveDays","getNextDayToFocus","onDayButtonFocusHandler","onDayButtonBlurHandler","currDay","forward","level","move","nextDay","includes","numDays","numMonths","newMonth","setMonth","newDate","clampDate","numYears","newYear","setFullYear","adjust","focusYear","setFocussedYear","setFocussedDayEl","element","setFocussedMonthEl","setFocussedYearEl","prevYear","newDecade","Math","floor","oldDecade","setDateInputProps","inputProps","label","showClearButton","showCalendarButton","helperText","inputId","name","watchDisabledHandler","removeDisabledFalse","watchDisableFutureHandler","watchMaxHandler","watchDisablePastHandler","watchMinHandler","createDate","watchStartOfWeekHandler","concat","watchOpenHandler","pickerHeight","offsetTop","offsetHeight","window","innerHeight","openAt","dialogDesc","document","addEventListener","removeEventListener","watchFocussedDateHandler","previous","watchMonthInViewHandler","watchYearInViewHandler","watchYearPickerVisibleHandler","watchMonthPickerVisibleHandler","watchFocussedDayEl","componentWillLoad","onComponentRequiredPropUndefined","prop","propName","IcShortDayNames","componentWillRender","dateInputProps","componentWillUpdate","localCalendarButtonClickHandler","detail","calendarButtonClickHandler","render","monthButtonText","yearButtonText","dialogLabel","monthLabel","yearLabel","minDay","yesterday","Host","Object","assign","above","calendar","dayName","header","charAt"],"sources":["src/components/ic-date-picker/ic-day-button.tsx","src/components/ic-date-picker/ic-month-picker.tsx","src/components/ic-date-picker/ic-year-picker.tsx","src/components/ic-date-picker/ic-date-picker.css?tag=ic-date-picker&encapsulation=shadow","src/components/ic-date-picker/ic-date-picker.tsx"],"sourcesContent":["import { h, FunctionalComponent } from \"@stencil/core\";\nimport { stringEnumToArray } from \"../../utils/helpers\";\nimport { IcDayNames, IcDateInputMonths } from \"../../utils/types\";\n\nexport type DayButtonProps = {\n focussed: boolean;\n today: boolean;\n day: Date;\n monthInView: number;\n onFocusDay: () => void;\n onBlurDay: () => void;\n onSelectDay: (day: Date) => void;\n selected: boolean;\n focussedDayRef?: (element: HTMLButtonElement) => void;\n inRange: boolean;\n showDaysOutsideMonth?: boolean;\n disableDay?: boolean;\n};\n\nexport const DayButton: FunctionalComponent<DayButtonProps> = ({\n focussed,\n today,\n day,\n monthInView,\n onFocusDay,\n onBlurDay,\n onSelectDay,\n selected,\n focussedDayRef,\n inRange,\n showDaysOutsideMonth,\n disableDay,\n}) => {\n const handleDayClick = (): void => {\n onSelectDay(day);\n };\n\n const handleDayFocus = (): void => {\n onFocusDay();\n };\n\n const handleDayBlur = (): void => {\n onBlurDay();\n };\n\n const dayNames = stringEnumToArray(IcDayNames);\n const months = stringEnumToArray(IcDateInputMonths);\n const outsideRange = !inRange || disableDay;\n const outsideMonth = monthInView !== day.getMonth();\n const disabled = outsideRange || (outsideMonth && !showDaysOutsideMonth);\n\n return (\n <div class=\"day-button-container\">\n <button\n class={{\n \"day-button\": true,\n \"outside-month\": outsideMonth,\n \"outside-range\": !!outsideRange,\n hidden: outsideMonth && !showDaysOutsideMonth,\n disabled: disabled,\n today: today,\n selected: selected,\n focussed: focussed,\n }}\n tabIndex={focussed ? 0 : -1}\n aria-hidden={outsideMonth ? \"true\" : \"false\"}\n aria-disabled={disabled ? \"true\" : \"false\"}\n aria-current={today ? \"date\" : undefined}\n aria-label={\n disabled || outsideMonth || outsideRange\n ? undefined\n : `Choose ${dayNames[day.getDay()]}, ${day.getDate()} ${\n months[day.getMonth()]\n } ${day.getFullYear()}`\n }\n disabled={disabled}\n onClick={handleDayClick}\n onBlur={handleDayBlur}\n onFocus={handleDayFocus}\n ref={(el) => {\n if (focussed && el && focussedDayRef) {\n focussedDayRef(el);\n }\n }}\n >\n {(!outsideMonth || (outsideMonth && showDaysOutsideMonth)) && (\n <ic-typography variant=\"subtitle-small\" italic={outsideMonth}>\n {day.getDate()}\n </ic-typography>\n )}\n </button>\n </div>\n );\n};\n","import { h, FunctionalComponent } from \"@stencil/core\";\nimport {\n dateInRange,\n getMonthStart,\n getMonthEnd,\n} from \"../../utils/date-helpers\";\nimport { stringEnumToArray } from \"../../utils/helpers\";\nimport { IcSizes, IcDateInputMonths } from \"../../utils/types\";\n\nexport type MonthPickerProps = {\n focussedMonth: number;\n monthInView: number;\n yearInView: number;\n onSelectMonth: (month: number) => void;\n onKeyDown: (ev: KeyboardEvent) => void;\n focussedMonthRef: (element: HTMLIcButtonElement) => void;\n minDate: Date | null;\n maxDate: Date | null;\n size?: IcSizes;\n};\n\nexport const MonthPicker: FunctionalComponent<MonthPickerProps> = ({\n size,\n focussedMonth,\n monthInView,\n onSelectMonth,\n onKeyDown,\n focussedMonthRef,\n minDate,\n maxDate,\n yearInView,\n}) => {\n const handleMonthClick = (ev: MouseEvent): void => {\n const button = ev.target as HTMLElement;\n onSelectMonth(Number(button.getAttribute(\"data-month\")));\n };\n\n const monthNames = stringEnumToArray(IcDateInputMonths);\n\n return (\n <div\n class={{\n \"month-picker\": true,\n }}\n role=\"list\"\n >\n {monthNames.map((month, index) => {\n const current = monthInView === index;\n const focussed = focussedMonth === index;\n const outsideRange = !dateInRange(\n new Date(yearInView, index, 1),\n minDate ? getMonthStart(minDate) : null,\n maxDate ? getMonthEnd(maxDate) : null\n );\n\n return (\n <ic-button\n role=\"listitem\"\n class={{\n \"month-button\": true,\n selected: current,\n focussed: focussed,\n disabled: outsideRange,\n }}\n full-width\n disabled={outsideRange}\n variant={current ? \"primary\" : \"tertiary\"}\n data-month={index}\n size={size}\n tabIndex={focussed ? 0 : -1}\n aria-current={current ? \"true\" : \"false\"}\n aria-label={current ? \"\" : `select ${month}`}\n onClick={handleMonthClick}\n onKeyDown={onKeyDown}\n ref={(el?: HTMLIcButtonElement) => {\n if (focussed && el) {\n focussedMonthRef(el);\n }\n }}\n >\n {month}\n </ic-button>\n );\n })}\n </div>\n );\n};\n","import { h, FunctionalComponent } from \"@stencil/core\";\nimport { yearInRange } from \"../../utils/date-helpers\";\nimport { IcSizes } from \"../../utils/types\";\n\nexport type YearPickerProps = {\n decadeView: number[];\n focussedYear: number;\n yearInView: number;\n onSelectYear: (year: number) => void;\n onKeyDown: (ev: KeyboardEvent) => void;\n onFocusYear: () => void;\n onBlurYear: () => void;\n minDate: Date | null;\n maxDate: Date | null;\n focussedYearRef: (element: HTMLIcButtonElement) => void;\n size?: IcSizes;\n};\n\nexport const YearPicker: FunctionalComponent<YearPickerProps> = ({\n decadeView,\n size,\n focussedYear,\n yearInView,\n onSelectYear,\n onFocusYear,\n onBlurYear,\n onKeyDown,\n minDate,\n maxDate,\n focussedYearRef,\n}) => {\n const handleYearClick = (ev: MouseEvent): void => {\n const button = ev.target as HTMLElement;\n onSelectYear(Number(button.getAttribute(\"data-year\")));\n };\n\n const handleYearFocus = (): void => {\n onFocusYear();\n };\n\n const handleYearBlur = (): void => {\n onBlurYear();\n };\n\n const navButtonMouseDownHandler = (ev: MouseEvent): void => {\n ev.preventDefault();\n };\n\n const prevDecade = decadeView[0];\n const nextDecade = decadeView[11];\n const years = decadeView.slice(1, 11);\n\n return (\n <div class=\"year-picker\" role=\"list\">\n <div class=\"prev-decade\" aria-hidden=\"true\">\n <ic-button\n id=\"prev-decade-button\"\n class={{\n \"year-button\": true,\n }}\n disabled={!yearInRange(prevDecade, minDate, maxDate)}\n data-year={prevDecade}\n tabIndex={-1}\n variant=\"tertiary\"\n onClick={handleYearClick}\n onMouseDown={navButtonMouseDownHandler}\n aria-hidden=\"true\"\n size={size}\n >\n {`${prevDecade - 9}s`}\n <svg\n slot=\"left-icon\"\n width=\"12\"\n height=\"12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.3333 5.33341H3.21996L6.94663 1.60675L5.99996 0.666748L0.666626 6.00008L5.99996 11.3334L6.93996 10.3934L3.21996 6.66675H11.3333V5.33341Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-button>\n </div>\n {years.map((yr) => {\n const current = yearInView === yr;\n const focussed = focussedYear === yr;\n return (\n <ic-button\n class={{\n \"year-button\": true,\n selected: current,\n focussed: focussed,\n }}\n disabled={!yearInRange(yr, minDate, maxDate)}\n data-year={yr}\n tabIndex={focussed ? 0 : -1}\n variant={current ? \"primary\" : \"tertiary\"}\n onClick={handleYearClick}\n aria-label={current ? \"\" : `select ${yr}`}\n role=\"listitem\"\n aria-current={current ? \"true\" : \"false\"}\n onKeyDown={onKeyDown}\n onFocus={handleYearFocus}\n onBlur={handleYearBlur}\n size={size}\n ref={(el: HTMLIcButtonElement) => {\n if (focussed && el) {\n focussedYearRef(el);\n }\n }}\n >\n {yr}\n </ic-button>\n );\n })}\n <div class=\"next-decade\" aria-hidden=\"true\">\n <ic-button\n id=\"next-decade-button\"\n class={{\n \"year-button\": true,\n flip: true,\n }}\n disabled={!yearInRange(nextDecade, minDate, maxDate)}\n data-year={nextDecade}\n tabIndex={-1}\n variant=\"tertiary\"\n onClick={handleYearClick}\n onMouseDown={navButtonMouseDownHandler}\n aria-hidden=\"true\"\n size={size}\n >\n {`${nextDecade}s`}\n <svg\n slot=\"right-icon\"\n width=\"12\"\n height=\"12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.3333 5.33341H3.21996L6.94663 1.60675L5.99996 0.666748L0.666626 6.00008L5.99996 11.3334L6.93996 10.3934L3.21996 6.66675H11.3333V5.33341Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-button>\n </div>\n </div>\n );\n};\n","@import \"../../global/normalize.css\";\n\n/**\n* @prop --input-width: Width of the input field\n @prop --ic-z-index-date-picker: z-index of date picker.\n*/\n\n:host {\n display: block;\n position: relative;\n\n --month-year-picker-button-width: 5rem;\n --month-button-width: 5.5rem;\n --input-field-width: var(--input-width, 19.125rem);\n --ic-input-label-helpertext-padding: var(--ic-space-xxs);\n}\n\n:host(.ic-date-picker-large) {\n --month-button-width: 6.3125rem;\n --input-field-width: var(--input-width, 21.125rem);\n}\n\n:host(.ic-date-picker-small) {\n --month-button-width: 6.25rem;\n --input-field-width: var(--input-width, 17.125rem);\n}\n\n:host .date-input-container {\n position: relative;\n}\n\nic-date-input {\n --input-width: var(--input-field-width);\n}\n\n:host .calendar-container {\n min-width: 19rem;\n max-width: 23.5rem;\n width: var(--input-width);\n display: flex;\n flex-direction: column;\n gap: var(--ic-space-xs);\n position: absolute;\n border: var(--ic-border-default);\n border-color: var(--ic-date-picker-calendar-border);\n border-radius: var(--ic-border-radius);\n align-items: center;\n background-color: var(--ic-date-picker-calendar-bg);\n z-index: var(--ic-z-index-date-picker);\n box-sizing: border-box;\n box-shadow: var(--ic-date-picker-calendar-elevation);\n margin-top: var(--ic-space-xxxs);\n padding: var(--ic-space-xs);\n animation: fade-in-calendar var(--ic-transition-duration-slow);\n}\n\n:host(.ic-date-picker-small) .calendar-container {\n min-width: 17rem;\n max-width: 21.5rem;\n}\n\n:host(.ic-date-picker-large) .calendar-container {\n min-width: 21rem;\n max-width: 25.5rem;\n}\n\n:host .calendar-container.above {\n bottom: calc(var(--ic-space-xxl) - var(--ic-space-xxs));\n}\n\n:host .month-year-nav-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n}\n\n:host .month-year-nav-container.hidden {\n display: none;\n}\n\n:host .month-year-nav {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex: 1 0 0;\n}\n\n:host .month-picker,\n:host .year-picker {\n flex-wrap: wrap;\n display: inline-flex;\n align-items: center;\n width: 17.5rem;\n column-gap: var(--ic-space-xs);\n row-gap: var(--ic-space-xxs);\n}\n\n:host(.ic-date-picker-small) .month-picker,\n:host(.ic-date-picker-small) .year-picker {\n width: 13.125rem;\n}\n\n:host(.ic-date-picker-large) .month-picker,\n:host(.ic-date-picker-large) .year-picker {\n width: 20rem;\n}\n\n:host .month-picker-button,\n:host .year-picker-button {\n width: 5rem;\n\n --min-width: 5rem;\n}\n\n:host .month-button,\n:host .year-button {\n width: var(--month-button-width);\n}\n\n:host .month-button.focussed,\n:host .year-button.focussed {\n z-index: 1;\n}\n\n:host .month-button::part(button),\n:host .year-button::part(button) {\n min-width: var(--month-button-width);\n}\n\n:host .prev-decade .year-button svg {\n margin-right: calc(-1 * var(--ic-space-xl));\n padding-top: var(--ic-space-sm);\n}\n\n:host .prev-decade .year-button::part(button) {\n padding-left: 0;\n padding-right: var(--ic-space-lg);\n}\n\n:host(.ic-date-picker-small) .prev-decade .year-button::part(button) {\n padding-left: 0;\n padding-right: calc(var(--ic-space-lg) + var(--ic-space-xxs));\n}\n\n:host .next-decade .year-button svg {\n margin-left: calc(-1 * var(--ic-space-xl));\n padding-top: var(--ic-space-sm);\n}\n\n:host .next-decade .year-button::part(button) {\n padding-right: 0;\n padding-left: var(--ic-space-lg);\n}\n\n:host(.ic-date-picker-small) .next-decade .year-button::part(button),\n:host(.ic-date-picker-large) .next-decade .year-button::part(button) {\n padding-left: var(--ic-space-xl);\n}\n\n:host .bottom-buttons {\n padding-top: var(--ic-space-xs);\n display: flex;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n animation: fade-in-buttons var(--ic-transition-duration-slow);\n}\n\n:host(.ic-date-picker-small) .bottom-buttons {\n padding-top: var(--ic-space-xxs);\n}\n\n:host .bottom-buttons.no-today {\n align-items: flex-end;\n flex-direction: column;\n}\n\n:host .bottom-buttons.hidden {\n display: none;\n}\n\n:host .calendar {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n width: 15.75rem;\n animation: fade-in-buttons var(--ic-transition-duration-slow);\n}\n\n:host(.ic-date-picker-large) .calendar {\n width: 19.25rem;\n}\n\n:host(.ic-date-picker-small) .calendar {\n padding-bottom: var(--ic-space-xxs);\n width: 14rem;\n}\n\n:host .hidden {\n display: none;\n}\n\n:host .weekdays {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: var(--ic-space-xs);\n align-self: stretch;\n}\n\n:host .calendar-days-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n row-gap: var(--ic-space-xs);\n padding: var(--ic-space-xxs) 0;\n}\n\n:host(.ic-date-picker-small) .calendar-days-container {\n padding: var(--ic-space-xxxs) 0;\n}\n\n:host(.ic-date-picker-large) .calendar-days-container {\n padding: var(--ic-space-xs) 0;\n}\n\n:host .calendar-day-header {\n display: flex;\n width: 2rem;\n padding: var(--ic-space-xxs) 0;\n justify-content: center;\n align-items: center;\n}\n\n:host(.ic-date-picker-small) .calendar-day-header,\n:host(.ic-date-picker-large) .calendar-day-header {\n padding: var(--ic-space-xxs);\n}\n\n:host .calendar-day-header ic-typography {\n --ic-typography-color: var(--ic-date-picker-calendar-label);\n\n text-align: center;\n}\n\n:host .day-button-container {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 2.25rem;\n height: 2.25rem;\n}\n\n:host(.ic-date-picker-small) .day-button-container {\n width: 2rem;\n height: 2rem;\n}\n\n:host(.ic-date-picker-large) .day-button-container {\n width: 2.5rem;\n height: 2.5rem;\n}\n\n:host .day-button {\n display: flex;\n position: relative;\n justify-content: center;\n align-items: center;\n border: 0;\n border-radius: 2rem;\n background-color: var(--ic-date-picker-calendar-bg);\n width: 2rem;\n height: 2rem;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n z-index: 0;\n}\n\n:host .day-button.disabled {\n cursor: default;\n}\n\n:host(.ic-date-picker-large) .day-button {\n width: 2.25rem;\n height: 2.25rem;\n}\n\n:host(.ic-date-picker-small) .day-button {\n width: 1.75rem;\n height: 1.75rem;\n}\n\n:host .day-button ic-typography {\n width: 1.75rem;\n\n --ic-typography-color: var(--ic-date-picker-date-label-default);\n}\n\n:host .day-button.outside-range ic-typography {\n --ic-typography-color: var(--ic-date-picker-date-label-disabled);\n}\n\n:host .day-button.outside-month ic-typography {\n font-weight: var(--ic-font-weight-regular) !important;\n}\n\n:host\n .day-button.outside-month:not(.outside-range):not(.selected)\n ic-typography {\n --ic-typography-color: var(--ic-date-picker-date-label-default);\n}\n\n:host .day-button:hover:not(.disabled) {\n background-color: var(--ic-date-picker-date-default-bg-hover);\n}\n\n:host .day-button:active:not(.disabled) {\n background-color: var(--ic-date-picker-date-default-bg-pressed);\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :host .day-button:hover:not(.disabled):not(.focussed),\n :host .day-button:active:not(.disabled):not(.focussed) {\n transition: background-color var(--ic-transition-duration-slow) ease-in-out;\n }\n}\n\n:host .day-button.selected:not(.hidden) {\n background-color: var(--ic-date-picker-date-active-bg-default);\n}\n\n:host .day-button.selected ic-typography {\n --ic-typography-color: var(--ic-date-picker-date-label-selected);\n}\n\n:host .day-button.selected:not(.hidden):hover {\n background-color: var(--ic-date-picker-date-active-bg-hover);\n}\n\n:host .day-button.selected:not(.hidden):active {\n background-color: var(--ic-date-picker-date-active-bg-pressed);\n}\n\n:host .day-button.focussed {\n z-index: 1;\n}\n\n:host .day-button:focus {\n outline: none;\n}\n\n:host .day-button.focussed:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n:host .day-button.today:not(.hidden)::after {\n content: \"\";\n position: absolute;\n width: 0.875rem;\n height: 0.125rem;\n bottom: 0.4rem;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-date-picker-default-underline);\n}\n\n:host(.ic-date-picker-small) .day-button.today::after {\n bottom: 0.35rem;\n}\n\n:host(.ic-date-picker-large) .day-button.today::after {\n width: 1rem;\n}\n\n:host .day-button.today.selected::after {\n background-color: var(--ic-date-picker-selected-underline);\n}\n\n:host #select-month-hint,\n:host #select-year-hint {\n display: none;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host .calendar-container,\n :host .calendar,\n :host .bottom-buttons {\n animation: none;\n }\n}\n\n@keyframes fade-in-buttons {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes fade-in-calendar {\n 0% {\n display: flex;\n max-height: 0;\n }\n\n 100% {\n display: flex;\n max-height: 600px;\n }\n}\n\n@media (forced-colors: active) {\n :host .day-button.today:not(.hidden)::after {\n background-color: highlight;\n }\n\n :host .day-button.selected:not(.hidden) {\n background-color: highlight;\n }\n\n :host .day-button.focussed:focus {\n border: var(--ic-border-hc);\n }\n\n :host .month-button.selected::part(button),\n :host .year-button.selected::part(button) {\n background-color: highlight;\n }\n}\n","import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Event,\n EventEmitter,\n} from \"@stencil/core\";\nimport {\n createDate,\n clampDate,\n dateMatches,\n dateInRange,\n getMonthStart,\n getMonthEnd,\n getWeekEnd,\n getWeekStart,\n yearInRange,\n} from \"../../utils/date-helpers\";\nimport {\n stringEnumToArray,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport {\n IcWeekDays,\n IcShortDayNames,\n IcDateInputMonths,\n IcDateFormat,\n IcSizes,\n IcInformationStatusOrEmpty,\n IcThemeMode,\n} from \"../../utils/types\";\nimport chevron from \"../../assets/chevron-icon.svg\";\nimport { DayButton } from \"./ic-day-button\";\nimport { MonthPicker } from \"./ic-month-picker\";\nimport { YearPicker } from \"./ic-year-picker\";\n\nconst DEFAULT_DATE_FORMAT = \"DD/MM/YYYY\";\nconst DEFAULT_DISABLE_DATES_FROM_NOW_MSG =\n \"Dates in the future are not allowed. Please select a date in the past.\";\nconst DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG =\n \"Dates in the past are not allowed. Please select a date in the future.\";\nconst DEFAULT_DISABLE_DAYS_MSG =\n \"The date you have selected is on a day of the week that is not allowed. Please select another date.\";\nconst FOCUS_TIMER = 100;\nconst PICKER_HEIGHT_SMALL = 360;\nconst PICKER_HEIGHT_DEFAULT = 400;\nconst PICKER_HEIGHT_LARGE = 440;\n\ninterface IcDateInputProps {\n dateFormat?: IcDateFormat;\n disabled?: boolean;\n disableDays?: IcWeekDays[];\n disableDaysMessage?: string;\n disableFuture?: boolean;\n disableFutureMessage?: string;\n disablePast?: boolean;\n disablePastMessage?: string;\n emitDatePartChange?: boolean;\n helperText?: string;\n hideHelperText?: boolean;\n hideLabel?: boolean;\n inputId?: string;\n invalidDateMessage?: string;\n label: string;\n max?: string | Date;\n min?: string | Date;\n name?: string;\n required?: boolean;\n showClearButton?: boolean;\n showCalendarButton?: boolean;\n size?: IcSizes;\n value?: string | Date | null;\n validationStatus?: IcInformationStatusOrEmpty;\n validationText?: string;\n}\n\n@Component({\n tag: \"ic-date-picker\",\n styleUrl: \"ic-date-picker.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class DatePicker {\n private inputEl?: HTMLIcDateInputElement;\n private clearButtonEl: HTMLIcButtonElement | null = null;\n private dateInputProps: IcDateInputProps;\n private daysOfWeek: string[] = [];\n private dayButtonFocussed: boolean = false;\n private dayPickerKeyboardNav: boolean = false;\n private decadeStart: number;\n private decadeEnd: number;\n private dialogDescription: string = \"\";\n private focusDay: boolean = true;\n private focussedYearEl: HTMLIcButtonElement;\n private liveRegionEl?: HTMLElement = undefined;\n private monthButtonEl: HTMLIcButtonElement;\n private monthNames: string[] = [];\n private monthInViewUpdateHandled: boolean = false;\n private myCalendarButtonClicked: boolean = false;\n private showPickerAbove: boolean = false;\n private today = new Date();\n private todayButtonEl: HTMLIcButtonElement | null = null;\n private yearButtonEl: HTMLIcButtonElement;\n private yearButtonFocussed: boolean = false;\n\n @Element() el: HTMLIcDatePickerElement;\n\n @State() calendarOpen: boolean = false;\n @State() currMonthView: Date[] = [];\n @State() currYearPickerView: number[] = [];\n @State() decadeView: number[] = [];\n @State() focussedDate: Date | null = null;\n @State() focussedDay: number;\n @State() focussedDayEl: HTMLButtonElement;\n @State() focussedMonth: number;\n @State() focussedMonthEl: HTMLIcButtonElement;\n @State() focussedYear: number;\n @State() maxDate: Date | null = null;\n @State() minDate: Date | null = null;\n @State() monthInView: number;\n @State() monthPickerVisible: boolean = false;\n @State() orderedDaysOfWeek: string[] = [];\n @State() selectedDate: Date | null = null;\n @State() yearInView: number;\n @State() yearPickerVisible: boolean = false;\n\n /**\n * The format in which the date will be displayed.\n */\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 * If `true`, every individual input field completed will emit an icChange event.\n */\n @Prop() emitDatePartChange?: boolean = false;\n\n /**\n * The days of the week to disable.\n */\n @Prop() disableDays?: IcWeekDays[] = [];\n\n /**\n * The text to display as the validation message when `disableDays` is `true` 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() 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 the required label will still be read out by screen readers.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The ID for the input field. The default will be an automatically generated value.\n */\n @Prop() inputId?: string;\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 @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 @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;\n\n /**\n * The date visible when the calendar opens. Used if no date is currently selected.\n * 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() openAtDate: string | Date = \"\";\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * If `true`, days outside the current month will be visible in the date picker.\n */\n @Prop() showDaysOutsideMonth?: boolean = true;\n\n /**\n * If `true`, the `Clear` button on the date picker will be visible.\n */\n @Prop() showPickerClearButton?: boolean = true;\n\n /**\n * If `true`, the `Go to today` button on the date picker will be visible.\n */\n @Prop() showPickerTodayButton?: boolean = true;\n\n /**\n * The size of the date picker to be displayed.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * The first day of the week. `0` for Sunday, `1` for Monday, etc.\n * Default is Monday.\n */\n @Prop() startOfWeek: IcWeekDays = IcWeekDays.Monday;\n\n @Watch(\"startOfWeek\")\n watchStartOfWeekHandler(): void {\n this.orderedDaysOfWeek = this.daysOfWeek\n .slice(this.startOfWeek)\n .concat(this.daysOfWeek.slice(0, this.startOfWeek));\n if (this.calendarOpen) {\n this.updateMonthInView();\n }\n }\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 validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in date validation.\n */\n @Prop() 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 * The value of the date picker. 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 @Watch(\"calendarOpen\")\n watchOpenHandler(): void {\n if (this.calendarOpen) {\n if (this.inputEl) {\n let pickerHeight = PICKER_HEIGHT_DEFAULT;\n if (this.size === \"small\") {\n pickerHeight = PICKER_HEIGHT_SMALL;\n } else if (this.size === \"large\") {\n pickerHeight = PICKER_HEIGHT_LARGE;\n }\n if (\n this.el.offsetTop + this.inputEl.offsetHeight + pickerHeight >\n window.innerHeight &&\n this.el.offsetTop > pickerHeight\n ) {\n this.showPickerAbove = true;\n } else {\n this.showPickerAbove = false;\n }\n }\n if (\n this.selectedDate === null ||\n !dateInRange(this.selectedDate, this.minDate, this.maxDate)\n ) {\n let openAt = new Date();\n if (this.openAtDate !== \"\") {\n openAt = createDate(this.openAtDate, this.dateFormat);\n }\n this.setFocussedDate(openAt);\n } else {\n this.setFocussedDate(this.selectedDate);\n }\n let dialogDesc = this.getMonthInViewText();\n if (this.selectedDate === null) {\n dialogDesc += \" No date selected.\";\n }\n dialogDesc +=\n \" Use arrow keys to change day. Press enter or space to select a date or press escape to close the picker\";\n this.dialogDescription = dialogDesc;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n document.addEventListener(\"click\", this.handleDocumentClick);\n } else {\n document.removeEventListener(\"click\", this.handleDocumentClick);\n this.monthPickerVisible = false;\n this.yearPickerVisible = false;\n }\n }\n\n @Watch(\"focussedDate\")\n watchFocussedDateHandler(current: Date, previous: Date): void {\n if (\n previous === null ||\n !(\n previous.getFullYear() === current.getFullYear() &&\n previous.getMonth() === current.getMonth()\n )\n ) {\n this.updateMonthInView();\n }\n }\n\n @Watch(\"monthInView\")\n watchMonthInViewHandler(): void {\n this.focussedMonth = this.monthInView;\n }\n\n @Watch(\"yearInView\")\n watchYearInViewHandler(): void {\n this.setFocussedYear(this.yearInView, false);\n }\n\n @Watch(\"yearPickerVisible\")\n watchYearPickerVisibleHandler(): void {\n if (!this.yearPickerVisible) {\n this.setFocussedYear(this.yearInView);\n }\n }\n\n @Watch(\"monthPickerVisible\")\n watchMonthPickerVisibleHandler(): void {\n if (!this.monthPickerVisible) {\n this.focussedMonth = this.monthInView;\n }\n }\n\n @Watch(\"focussedDayEl\")\n watchFocussedDayEl(): void {\n if (this.focusDay) {\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n }\n\n this.focusDay = true;\n }\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<{ value: Date }>;\n\n componentWillLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Date Picker\"\n );\n\n this.monthNames = stringEnumToArray(IcDateInputMonths);\n this.daysOfWeek = stringEnumToArray(IcShortDayNames);\n\n this.watchStartOfWeekHandler();\n this.watchMaxHandler();\n this.watchMinHandler();\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentWillRender(): void {\n this.dateInputProps = this.setDateInputProps();\n }\n\n componentWillUpdate(): void {\n this.dateInputProps = this.setDateInputProps();\n }\n\n @Listen(\"calendarButtonClicked\")\n localCalendarButtonClickHandler(\n ev: CustomEvent<{ value: Date | null }>\n ): void {\n this.myCalendarButtonClicked = true;\n if (!this.calendarOpen) {\n this.setSelectedDate(ev.detail.value, false);\n }\n\n this.calendarOpen = !this.calendarOpen;\n }\n\n @Listen(\"calendarButtonClicked\", { target: \"document\" })\n calendarButtonClickHandler(): void {\n //closes this picker if calendar button in another clicked\n if (!this.myCalendarButtonClicked) {\n this.calendarOpen = false;\n }\n this.myCalendarButtonClicked = false;\n }\n\n private setDecadeView = (start: number) => {\n let currYear = start - 1;\n const decadeArr = [];\n while (currYear <= start + 10) {\n decadeArr.push(currYear);\n currYear++;\n }\n this.decadeView = decadeArr;\n this.decadeStart = decadeArr[1];\n this.decadeEnd = decadeArr[10];\n };\n\n private setSelectedDate = (d: Date | null, emit = true): void => {\n if (d === null || !dateMatches(d, this.selectedDate)) {\n this.selectedDate = d;\n this.value = d;\n if (emit) {\n this.inputEl?.triggerIcChange(d);\n }\n }\n };\n\n private handleCalendarMouseDown = (event: MouseEvent): void => {\n const target = event.target as HTMLElement;\n if (target.tagName !== \"IC-BUTTON\") {\n event.preventDefault();\n }\n };\n\n private handleCalendarClick = (event: MouseEvent): void => {\n this.clearDialogDescription();\n event.stopImmediatePropagation();\n };\n\n private handleDocumentClick = (): void => {\n this.calendarOpen = false;\n };\n\n private keyDownHandler = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n if (this.calendarOpen) {\n this.closeButtonClickHandler();\n this.inputEl?.setCalendarFocus();\n event.stopImmediatePropagation();\n }\n } else {\n this.clearDialogDescription();\n event.stopImmediatePropagation();\n }\n };\n\n private closeButtonClickHandler = () => {\n this.calendarOpen = false;\n };\n\n private focusFirstElement = () => {\n this.monthButtonEl.setFocus();\n };\n\n private focusLastElement = () => {\n if (\n this.showPickerClearButton &&\n this.clearButtonEl &&\n !this.clearButtonEl.disabled\n ) {\n this.clearButtonEl.setFocus();\n } else if (\n this.showPickerTodayButton &&\n this.todayButtonEl &&\n !this.todayButtonEl.disabled\n ) {\n this.todayButtonEl.setFocus();\n } else if (this.monthPickerVisible) {\n this.focussedMonthEl.setFocus();\n } else if (this.yearPickerVisible) {\n this.focussedYearEl.setFocus();\n } else {\n this.focussedDayEl.focus();\n }\n };\n\n private focusFocussedDay = () => {\n this.focussedDayEl.focus();\n };\n\n private monthButtonClickHandler = () => {\n this.yearPickerVisible = false;\n this.focusDay = false;\n this.monthPickerVisible = !this.monthPickerVisible;\n if (this.monthPickerVisible) {\n this.setAriaLiveRegionText(\"Month picker view open\");\n } else {\n this.setMonthSelectedLiveRegionText();\n }\n };\n\n private yearButtonClickHandler = () => {\n this.monthPickerVisible = false;\n this.focusDay = false;\n this.yearPickerVisible = !this.yearPickerVisible;\n if (this.yearPickerVisible) {\n this.setAriaLiveRegionText(\n `Year picker view open. ${this.getDecadeInViewText()}`\n );\n } else {\n this.setYearSelectedLiveRegionText();\n }\n };\n\n private todayButtonClickHandler = () => {\n this.yearPickerVisible = false;\n this.monthPickerVisible = false;\n this.setFocussedDate(new Date());\n this.setAriaLiveRegionText(this.getMonthInViewText());\n\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n };\n\n private todayButtonKeyDownHandler = (ev: KeyboardEvent) => {\n if (ev.key === \"Tab\" && !ev.shiftKey && this.clearButtonEl?.disabled) {\n this.focusFirstElement();\n ev.preventDefault();\n }\n };\n\n private clearButtonClickHandler = () => {\n this.setSelectedDate(null);\n let text = \"Selected date cleared.\";\n if (!this.monthPickerVisible && !this.yearPickerVisible) {\n text += ` ${this.getMonthInViewText()}`;\n }\n if (this.monthPickerVisible) {\n this.focussedMonthEl.setFocus();\n } else if (this.yearPickerVisible) {\n this.focussedYearEl.setFocus();\n } else {\n this.focusFocussedDay();\n }\n this.setAriaLiveRegionText(text);\n };\n\n private setMonthSelectedLiveRegionText = () => {\n this.setAriaLiveRegionText(\n `${\n this.monthNames[this.monthInView]\n } selected. ${this.getMonthInViewText()}`\n );\n };\n\n private setYearSelectedLiveRegionText = () => {\n this.setAriaLiveRegionText(\n `${this.yearInView} selected. ${this.getMonthInViewText()}`\n );\n };\n\n private getMonthInViewText = () => {\n return `${this.monthNames[this.monthInView]} ${\n this.yearInView\n } currently in view.`;\n };\n\n private getDecadeInViewText = () => {\n return `${this.decadeStart} to ${this.decadeEnd} currently in view.`;\n };\n\n private setAriaLiveRegionText = (text: string) => {\n this.liveRegionEl && (this.liveRegionEl.innerText = text);\n };\n\n private clearDialogDescription = () => {\n this.dialogDescription = \"\";\n };\n\n private clearButtonKeyDownHandler = (ev: KeyboardEvent) => {\n if (ev.key === \"Tab\" && !ev.shiftKey) {\n this.focusFirstElement();\n ev.preventDefault();\n }\n };\n\n private goToPreviousMonth = (focusDay = false) => {\n this.focusDay = focusDay;\n this.moveMonths(-1);\n };\n\n private goToNextMonth = (focusDay = false) => {\n this.focusDay = focusDay;\n this.moveMonths(1);\n };\n\n private goToPreviousYear = (focusDay = false) => {\n if (this.isPrevYearAllowed()) {\n this.focusDay = focusDay;\n this.moveYears(-1);\n }\n };\n\n private goToNextYear = (focusDay = false) => {\n if (this.isNextYearAllowed()) {\n this.focusDay = focusDay;\n this.moveYears(1);\n }\n };\n\n private navButtonMouseDownHandler = (ev: MouseEvent): void => {\n ev.preventDefault();\n };\n\n private renderMonthYearNavButton = (\n id: string,\n flip: boolean,\n disabled: boolean\n ): void => {\n const buttonSize = this.size;\n return (\n <div aria-hidden=\"true\">\n <ic-button\n id={id}\n disableTooltip={true}\n disabled={disabled}\n onClick={this.monthYearNavClickHandler}\n class={{ flip: flip }}\n variant=\"icon-tertiary\"\n innerHTML={chevron}\n size={buttonSize}\n tabIndex={-1}\n aria-hidden=\"true\"\n onMouseDown={this.navButtonMouseDownHandler}\n />\n </div>\n );\n };\n\n private monthYearNavClickHandler = (ev: Event): void => {\n const target = ev.target as Element;\n switch (target.id) {\n case \"previous-month-button\":\n this.goToPreviousMonth(this.dayButtonFocussed);\n break;\n\n case \"next-month-button\":\n this.goToNextMonth(this.dayButtonFocussed);\n break;\n\n case \"previous-year-button\":\n this.goToPreviousYear(this.dayButtonFocussed);\n break;\n\n case \"next-year-button\":\n this.goToNextYear(this.dayButtonFocussed);\n break;\n }\n };\n\n private previousMonthButton = (): void => {\n let disabled = false;\n if (this.focussedDate !== null && this.minDate !== null) {\n const yearMatch =\n this.focussedDate.getFullYear() === this.minDate.getFullYear();\n if (yearMatch) {\n disabled = this.monthInView - 1 < this.minDate.getMonth();\n }\n }\n return this.renderMonthYearNavButton(\n \"previous-month-button\",\n true,\n disabled\n );\n };\n\n private nextMonthButton = (): void => {\n let disabled = false;\n if (this.focussedDate !== null && this.maxDate !== null) {\n const yearMatch =\n this.focussedDate.getFullYear() === this.maxDate.getFullYear();\n if (yearMatch) {\n disabled = this.monthInView + 1 > this.maxDate.getMonth();\n }\n }\n return this.renderMonthYearNavButton(\"next-month-button\", false, disabled);\n };\n\n private previousYearButton = (): void => {\n return this.renderMonthYearNavButton(\n \"previous-year-button\",\n true,\n !this.isPrevYearAllowed()\n );\n };\n\n private nextYearButton = (): void => {\n return this.renderMonthYearNavButton(\n \"next-year-button\",\n false,\n !this.isNextYearAllowed()\n );\n };\n\n private isPrevYearAllowed = (): boolean => {\n return this.isYearAllowed(this.yearInView - 1);\n };\n\n private isNextYearAllowed = (): boolean => {\n return this.isYearAllowed(this.yearInView + 1);\n };\n\n private isYearAllowed = (yr: number): boolean =>\n yearInRange(yr, this.minDate, this.maxDate);\n\n private getMonthView = (date: Date): Date[] => {\n const start = getWeekStart(getMonthStart(date), this.startOfWeek);\n const end = getWeekEnd(getMonthEnd(date), this.startOfWeek);\n\n const days: Date[] = [];\n let current = start;\n\n while (!dateMatches(current, end)) {\n days.push(current);\n current = new Date(current);\n current.setDate(current.getDate() + 1);\n }\n\n days.push(current);\n\n return days;\n };\n\n private isCurrentMonth = (): boolean => {\n const d = new Date();\n return (\n d.getFullYear() === this.yearInView && d.getMonth() === this.monthInView\n );\n };\n\n private updateMonthInView = (): void => {\n if (this.focussedDate) {\n this.currMonthView = this.getMonthView(this.focussedDate);\n\n this.focussedDay = this.focussedDate.getDate();\n this.monthInView = this.focussedDate.getMonth();\n this.yearInView = this.focussedDate.getFullYear();\n\n if (this.dayPickerKeyboardNav) {\n this.monthInViewUpdateHandled = true;\n this.setAriaLiveRegionText(this.getMonthInViewText());\n this.dayPickerKeyboardNav = false;\n }\n }\n };\n\n private handleSelectDay = (day: Date): void => {\n this.setSelectedDate(day);\n this.calendarOpen = false;\n this.inputEl?.setCalendarFocus();\n };\n\n private handleSelectMonth = (month: number): void => {\n this.moveMonths(month - this.monthInView);\n setTimeout(() => {\n this.monthButtonEl.setFocus();\n this.monthPickerVisible = false;\n this.setMonthSelectedLiveRegionText();\n }, FOCUS_TIMER);\n };\n\n private handleSelectYear = (year: number): void => {\n const yrPos = this.decadeView.indexOf(year);\n if (yrPos > 0 && yrPos < this.decadeView.length - 1) {\n this.moveYears(year - this.yearInView);\n this.focusDay = false;\n const monthName = this.monthNames[this.monthInView];\n this.setAriaLiveRegionText(\n `${year} selected. ${monthName} ${year} currently in view.`\n );\n setTimeout(() => {\n this.yearButtonEl.setFocus();\n this.yearPickerVisible = false;\n }, FOCUS_TIMER);\n } else {\n const moveYears = year - this.focussedYear > 0 ? 10 : -10;\n this.updateFocussedYear(moveYears, this.yearButtonFocussed);\n this.setAriaLiveRegionText(this.getDecadeInViewText());\n }\n };\n\n private monthPickerKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.updateFocussedMonth(-1);\n break;\n\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.updateFocussedMonth(1);\n break;\n\n case \"Home\":\n this.updateFocussedMonth(-this.focussedMonth);\n break;\n\n case \"End\":\n this.updateFocussedMonth(11 - this.focussedMonth);\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n case \"Escape\":\n ev.stopImmediatePropagation();\n this.monthPickerVisible = false;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n break;\n\n default:\n handled = false;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private yearPickerKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.updateFocussedYear(-1);\n break;\n\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.updateFocussedYear(1);\n break;\n\n case \"Home\":\n if (this.focussedYear > this.decadeStart) {\n this.updateFocussedYear(this.decadeStart - this.focussedYear);\n }\n break;\n\n case \"End\":\n if (this.focussedYear < this.decadeEnd) {\n this.updateFocussedYear(this.decadeEnd - this.focussedYear);\n }\n break;\n\n case \"PageUp\":\n this.updateFocussedYear(-10);\n break;\n\n case \"PageDown\":\n this.updateFocussedYear(10);\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n case \"Escape\":\n ev.stopImmediatePropagation();\n this.yearPickerVisible = false;\n setTimeout(() => this.focusFocussedDay(), FOCUS_TIMER);\n break;\n\n default:\n handled = false;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private onYearButtonFocusHandler = () => {\n this.yearButtonFocussed = true;\n };\n\n private onYearButtonBlurHandler = () => {\n this.yearButtonFocussed = false;\n };\n\n private monthButtonKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = false;\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n handled = true;\n this.goToPreviousMonth();\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n handled = true;\n this.goToNextMonth();\n break;\n\n case \"Home\":\n handled = true;\n this.focusDay = false;\n this.moveMonths(-this.monthInView);\n break;\n\n case \"End\":\n handled = true;\n this.focusDay = false;\n this.moveMonths(11 - this.monthInView);\n break;\n\n case \"Tab\":\n if (ev.shiftKey) {\n handled = true;\n this.focusLastElement();\n }\n break;\n\n case \"Escape\":\n if (this.monthPickerVisible) {\n this.monthPickerVisible = false;\n ev.stopImmediatePropagation();\n }\n break;\n\n default:\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private yearButtonKeyDownHandler = (ev: KeyboardEvent): void => {\n let handled = false;\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n handled = true;\n this.goToPreviousYear();\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n handled = true;\n this.goToNextYear();\n break;\n\n case \"Home\":\n if (this.yearPickerVisible && this.yearInView > this.decadeStart) {\n handled = true;\n this.moveYears(this.decadeStart - this.yearInView);\n }\n break;\n\n case \"End\":\n if (this.yearPickerVisible && this.yearInView < this.decadeEnd) {\n handled = true;\n this.moveYears(this.decadeEnd - this.focussedYear);\n }\n break;\n\n case \"PageUp\":\n handled = true;\n this.focusDay = false;\n this.moveYears(-10);\n break;\n\n case \"PageDown\":\n handled = true;\n this.focusDay = false;\n this.moveYears(10);\n break;\n\n case \"Escape\":\n if (this.yearPickerVisible) {\n this.yearPickerVisible = false;\n ev.stopImmediatePropagation();\n }\n break;\n\n default:\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private handleCalendarKeyDown = (ev: KeyboardEvent): void => {\n let handled = true;\n switch (ev.key) {\n case \"ArrowDown\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(7);\n break;\n\n case \"ArrowUp\":\n this.dayPickerKeyboardNav = true;\n this.moveDays(-7);\n break;\n\n case \"ArrowLeft\":\n this.dayPickerKeyboardNav = true;\n if (this.focussedDate)\n this.moveDays(-1 * this.getNextDayToFocus(this.focussedDate, false));\n break;\n\n case \"ArrowRight\":\n this.dayPickerKeyboardNav = true;\n if (this.focussedDate)\n this.moveDays(this.getNextDayToFocus(this.focussedDate, true));\n break;\n\n case \"PageUp\":\n this.dayPickerKeyboardNav = true;\n ev.shiftKey ? this.moveYears(-1) : this.moveMonths(-1);\n break;\n\n case \"PageDown\":\n this.dayPickerKeyboardNav = true;\n ev.shiftKey ? this.moveYears(1) : this.moveMonths(1);\n break;\n\n case \"Home\":\n this.dayPickerKeyboardNav = true;\n this.setFocussedDate(\n new Date(this.focussedYear, this.focussedMonth, 1)\n );\n break;\n\n case \"End\":\n this.dayPickerKeyboardNav = true;\n this.setFocussedDate(\n new Date(this.focussedYear, this.focussedMonth + 1, 0)\n );\n break;\n\n case \"Tab\":\n handled = this.calendarTabHandler(ev);\n break;\n\n default:\n handled = false;\n break;\n }\n\n if (handled) {\n ev.preventDefault();\n }\n };\n\n private calendarTabHandler = (ev: KeyboardEvent): boolean => {\n let handled = false;\n if (\n !ev.shiftKey &&\n (!this.showPickerTodayButton || this.isCurrentMonth()) &&\n (!this.showPickerClearButton || this.clearButtonEl?.disabled)\n ) {\n this.focusFirstElement();\n handled = true;\n } else if (ev.shiftKey) {\n this.yearButtonEl.setFocus();\n handled = true;\n }\n return handled;\n };\n\n private onDayButtonFocusHandler = () => {\n this.dayButtonFocussed = true;\n };\n\n private onDayButtonBlurHandler = () => {\n this.dayButtonFocussed = false;\n };\n\n private getNextDayToFocus = (\n currDay: Date,\n forward: boolean,\n level = 1\n ): number => {\n const move = forward ? 1 : -1;\n const nextDay = new Date(currDay);\n nextDay.setDate(nextDay.getDate() + move);\n return this.disableDays?.includes(Number(nextDay.getDay()))\n ? this.getNextDayToFocus(nextDay, forward, level + 1)\n : level;\n };\n\n private moveDays = (numDays: number): void => {\n if (this.focussedDate) {\n const d = new Date(this.focussedDate);\n d.setDate(d.getDate() + numDays);\n this.setFocussedDate(d);\n }\n };\n\n private moveMonths = (numMonths: number): void => {\n if (this.focussedDate) {\n const newMonth = this.focussedDate.getMonth() + numMonths;\n const min = new Date(\n new Date(getMonthStart(this.focussedDate)).setMonth(newMonth)\n );\n const max = getMonthEnd(min);\n const newDate = new Date(new Date(this.focussedDate).setMonth(newMonth));\n this.setFocussedDate(clampDate(newDate, min, max));\n\n if (\n this.monthPickerVisible === false &&\n this.yearPickerVisible === false &&\n this.monthInViewUpdateHandled === false\n ) {\n this.setAriaLiveRegionText(this.getMonthInViewText());\n }\n this.monthInViewUpdateHandled = false;\n }\n };\n\n private moveYears = (numYears: number): void => {\n if (this.focussedDate) {\n const newYear = this.focussedDate.getFullYear() + numYears;\n const min = new Date(\n new Date(getMonthStart(this.focussedDate)).setFullYear(newYear)\n );\n const max = getMonthEnd(min);\n const newDate = new Date(\n new Date(this.focussedDate).setFullYear(newYear)\n );\n this.setFocussedDate(clampDate(newDate, min, max));\n\n if (\n this.monthPickerVisible === false &&\n this.yearPickerVisible === false &&\n this.monthInViewUpdateHandled === false\n ) {\n this.setAriaLiveRegionText(this.getMonthInViewText());\n }\n this.monthInViewUpdateHandled = false;\n }\n };\n\n private updateFocussedMonth = (adjust: number): void => {\n const d = new Date(this.focussedYear, this.focussedMonth, 1);\n d.setMonth(this.focussedMonth + adjust);\n const newDate = clampDate(d, this.minDate, this.maxDate);\n this.focussedMonth = newDate.getMonth();\n setTimeout(() => this.focussedMonthEl.setFocus(), FOCUS_TIMER);\n };\n\n private updateFocussedYear = (adjust: number, focusYear = true): void => {\n const d = new Date(new Date().setFullYear(this.focussedYear + adjust));\n const newDate = clampDate(d, this.minDate, this.maxDate);\n this.setFocussedYear(newDate.getFullYear(), focusYear);\n };\n\n private setFocussedDate = (d: Date): void => {\n this.focussedDate = clampDate(d, this.minDate, this.maxDate);\n };\n\n private setFocussedDayEl = (element: HTMLButtonElement) => {\n this.focussedDayEl = element;\n };\n\n private setFocussedMonthEl = (element: HTMLIcButtonElement) => {\n this.focussedMonthEl = element;\n };\n\n private setFocussedYearEl = (element: HTMLIcButtonElement) => {\n this.focussedYearEl = element;\n };\n\n private setFocussedYear = (newYear: number, focus = true): void => {\n const prevYear = this.focussedYear;\n this.focussedYear = newYear;\n if (this.yearPickerVisible) {\n const newDecade = Math.floor(newYear / 10) * 10;\n const oldDecade = Math.floor(prevYear / 10) * 10;\n if (newDecade !== oldDecade) {\n this.setDecadeView(newDecade);\n this.setAriaLiveRegionText(this.getDecadeInViewText());\n }\n if (focus) {\n setTimeout(() => {\n if (this.focussedYearEl !== null) this.focussedYearEl.setFocus();\n }, FOCUS_TIMER);\n }\n } else {\n this.setDecadeView(Math.floor(newYear / 10) * 10);\n }\n };\n\n private setDateInputProps = (): IcDateInputProps => {\n const inputProps: IcDateInputProps = {\n hideLabel: this.hideLabel,\n invalidDateMessage: this.invalidDateMessage,\n label: this.label,\n showClearButton: true,\n showCalendarButton: true,\n value: this.value,\n emitDatePartChange: this.emitDatePartChange,\n };\n\n if (this.dateFormat !== DEFAULT_DATE_FORMAT) {\n inputProps.dateFormat = this.dateFormat;\n }\n if (this.disableFuture) {\n inputProps.disableFuture = this.disableFuture;\n if (this.disableFutureMessage !== DEFAULT_DISABLE_DATES_FROM_NOW_MSG) {\n inputProps.disableFutureMessage = this.disableFutureMessage;\n }\n }\n if (this.disablePast) {\n inputProps.disablePast = this.disablePast;\n if (this.disablePastMessage !== DEFAULT_DISABLE_DATES_UNTIL_NOW_MSG) {\n inputProps.disablePastMessage = this.disablePastMessage;\n }\n }\n if (this.disableDays && this.disableDays.length > 0) {\n inputProps.disableDays = this.disableDays;\n if (this.disableDaysMessage !== DEFAULT_DISABLE_DAYS_MSG) {\n inputProps.disableDaysMessage = this.disableDaysMessage;\n }\n }\n if (this.max !== null && this.max !== \"\" && this.maxDate) {\n inputProps.max = this.maxDate;\n }\n if (this.min !== null && this.min !== \"\" && this.minDate) {\n inputProps.min = this.minDate;\n }\n if (this.helperText !== undefined) {\n inputProps.helperText = this.helperText;\n }\n if (this.hideHelperText !== false) {\n inputProps.hideHelperText = this.hideHelperText;\n }\n if (this.inputId !== undefined) {\n inputProps.inputId = this.inputId;\n }\n if (this.name !== undefined) {\n inputProps.name = this.name;\n }\n if (this.disabled) {\n inputProps.disabled = this.disabled;\n }\n if (this.required) {\n inputProps.required = this.required;\n }\n if (this.size !== \"medium\") {\n inputProps.size = this.size;\n }\n if (this.validationStatus !== \"\") {\n inputProps.validationStatus = this.validationStatus;\n }\n if (this.validationText !== \"\") {\n inputProps.validationText = this.validationText;\n }\n return inputProps;\n };\n\n render() {\n const {\n calendarOpen,\n dateInputProps,\n monthNames,\n size,\n focussedMonth,\n focussedYear,\n monthInView,\n yearInView,\n monthPickerVisible,\n yearPickerVisible,\n orderedDaysOfWeek,\n decadeView,\n minDate,\n maxDate,\n showPickerClearButton,\n showPickerTodayButton,\n dialogDescription,\n theme,\n } = this;\n\n let monthButtonText = \"\";\n if (monthPickerVisible) {\n monthButtonText = `Use the arrow keys to change the selected month. To return to day picker view, press Enter or Space to select a month, or press Escape.`;\n } else {\n monthButtonText = `Press Enter or Space to open month picker view or use the arrow keys to change month.`;\n }\n\n let yearButtonText = \"\";\n if (yearPickerVisible) {\n yearButtonText = `Use the arrow keys to change the selected year. To return to day picker view, press Enter or Space to select a year, or press Escape.`;\n } else {\n yearButtonText = `Press Enter or Space to open year picker view or use the arrow keys to change the selected year.`;\n }\n\n const dialogLabel = \"choose date\";\n\n const monthLabel =\n monthNames && monthNames[monthInView]\n ? monthNames[monthInView]\n : \"Open month picker\";\n const yearLabel = this.yearInView ? this.yearInView : \"Open year picker\";\n\n let minDay = minDate;\n if (minDate && this.disablePast) {\n const yesterday = new Date(minDate);\n yesterday.setDate(minDate.getDate() - 1);\n minDay = yesterday;\n }\n\n return (\n <Host\n onKeyDown={this.keyDownHandler}\n class={{\n [`ic-date-picker-${size}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class=\"date-input-container\">\n <ic-date-input\n ref={(el) => (this.inputEl = el)}\n {...dateInputProps}\n ></ic-date-input>\n </div>\n {calendarOpen && (\n <div>\n <span id=\"dialog-description\" class=\"sr-only\">\n {dialogDescription}\n </span>\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={dialogLabel}\n aria-describedBy=\"dialog-description\"\n class={{\n \"calendar-container\": true,\n above: this.showPickerAbove,\n }}\n onMouseDown={this.handleCalendarMouseDown}\n onClick={this.handleCalendarClick}\n >\n <span\n ref={(el) => (this.liveRegionEl = el)}\n id=\"live-region\"\n aria-live=\"assertive\"\n class=\"sr-only\"\n ></span>\n <div\n class={{\n \"month-year-nav-container\": true,\n }}\n >\n <div class=\"month-year-nav\">\n {this.previousMonthButton()}\n <span id=\"select-month-hint\" aria-hidden=\"true\">\n {monthButtonText}\n </span>\n <ic-button\n ref={(el: HTMLIcButtonElement) => (this.monthButtonEl = el)}\n size={size}\n class=\"month-picker-button\"\n aria-haspopup=\"menu\"\n aria-expanded={monthPickerVisible ? \"true\" : \"false\"}\n full-width=\"true\"\n variant=\"tertiary\"\n aria-label={monthLabel}\n aria-describedby=\"select-month-hint\"\n onKeyDown={this.monthButtonKeyDownHandler}\n onClick={this.monthButtonClickHandler}\n >\n {monthNames[monthInView]}\n </ic-button>\n {this.nextMonthButton()}\n </div>\n <div class=\"month-year-nav\">\n {this.previousYearButton()}\n <span id=\"select-year-hint\" aria-hidden=\"true\">\n {yearButtonText}\n </span>\n <ic-button\n ref={(el: HTMLIcButtonElement) => (this.yearButtonEl = el)}\n size={size}\n class=\"year-picker-button\"\n aria-haspopup=\"menu\"\n aria-expanded={yearPickerVisible ? \"true\" : \"false\"}\n full-width=\"true\"\n variant=\"tertiary\"\n aria-label={yearLabel}\n aria-describedby=\"select-year-hint\"\n onKeyDown={this.yearButtonKeyDownHandler}\n onClick={this.yearButtonClickHandler}\n >\n {this.yearInView}\n </ic-button>\n {this.nextYearButton()}\n </div>\n </div>\n {!(monthPickerVisible || yearPickerVisible) && (\n <div\n class={{\n calendar: true,\n hidden: monthPickerVisible || yearPickerVisible,\n }}\n onKeyDown={this.handleCalendarKeyDown}\n >\n <div class=\"weekdays\" aria-hidden=\"true\">\n {orderedDaysOfWeek.map((dayName) => {\n const header =\n size === \"small\" ? dayName.charAt(0) : dayName;\n return (\n <div class=\"calendar-day-header\">\n <ic-typography variant=\"caption\">\n {header}\n </ic-typography>\n </div>\n );\n })}\n </div>\n\n <div class=\"calendar-days-container\">\n {this.currMonthView.map((day) => (\n <DayButton\n day={day}\n disableDay={this.disableDays?.includes(\n Number(day.getDay())\n )}\n today={dateMatches(day, this.today)}\n selected={dateMatches(day, this.selectedDate)}\n focussed={dateMatches(day, this.focussedDate)}\n inRange={dateInRange(day, minDay, maxDate)}\n monthInView={monthInView}\n onSelectDay={this.handleSelectDay}\n focussedDayRef={this.setFocussedDayEl}\n onFocusDay={this.onDayButtonFocusHandler}\n onBlurDay={this.onDayButtonBlurHandler}\n showDaysOutsideMonth={this.showDaysOutsideMonth}\n ></DayButton>\n ))}\n </div>\n </div>\n )}\n <div\n class={{\n \"month-picker-container\": true,\n hidden: !monthPickerVisible,\n }}\n >\n {monthPickerVisible && (\n <MonthPicker\n size={size}\n onSelectMonth={this.handleSelectMonth}\n monthInView={monthInView}\n focussedMonth={focussedMonth}\n onKeyDown={this.monthPickerKeyDownHandler}\n focussedMonthRef={this.setFocussedMonthEl}\n minDate={minDate}\n maxDate={maxDate}\n yearInView={yearInView}\n ></MonthPicker>\n )}\n </div>\n <div\n class={{\n \"year-picker-container\": true,\n hidden: !yearPickerVisible,\n }}\n >\n {yearPickerVisible && (\n <YearPicker\n decadeView={decadeView}\n size={size}\n focussedYear={focussedYear}\n onSelectYear={this.handleSelectYear}\n onKeyDown={this.yearPickerKeyDownHandler}\n onFocusYear={this.onYearButtonFocusHandler}\n onBlurYear={this.onYearButtonBlurHandler}\n yearInView={yearInView}\n minDate={minDate}\n maxDate={maxDate}\n focussedYearRef={this.setFocussedYearEl}\n ></YearPicker>\n )}\n </div>\n <div\n class={{\n \"bottom-buttons\": true,\n \"no-today\": !showPickerTodayButton,\n }}\n >\n {showPickerTodayButton && (\n <ic-button\n id=\"today-button\"\n variant=\"tertiary\"\n ref={(el: HTMLIcButtonElement) => (this.todayButtonEl = el)}\n size={size}\n aria-label=\"Navigate to current date\"\n onClick={this.todayButtonClickHandler}\n onKeyDown={this.todayButtonKeyDownHandler}\n disabled={this.isCurrentMonth()}\n >\n Go to today\n </ic-button>\n )}\n {showPickerClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"clear selected date\"\n ref={(el: HTMLIcButtonElement) => (this.clearButtonEl = el)}\n variant=\"tertiary\"\n size={size}\n onClick={this.clearButtonClickHandler}\n onKeyDown={this.clearButtonKeyDownHandler}\n disabled={\n this.value === \"\" ||\n this.value === null ||\n this.value === undefined\n }\n >\n Clear\n </ic-button>\n )}\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icSideNavigationCss","IcSideNavigationStyle0","SideNavigation","constructor","hostRef","this","ANIMATION_DURATION","parseInt","getCssProperty","IC_NAVIGATION_ITEM","resizeObserver","COLLAPSED_ICON_LABELS_END","COLLAPSED_ICON_LABELS_START","deviceSize","getCurrentDeviceSize","deviceSizeAppTitle","DEVICE_SIZES","S","foregroundColor","getBrandForegroundAppearance","hasSecondaryNavigation","menuExpanded","menuOpen","closeOnNavItemClick","collapsedIconLabels","disableAutoParentStyling","disableTopBarBehaviour","expanded","href","inline","shortAppTitle","static","emitSideNavigationExpanded","objDetails","icSideNavExpanded","emit","sideNavExpanded","sideNavMobile","toggleMenu","setMobileMenuAriaAttributes","arrangeSlottedNavigationItem","setToggleMenuFlyoutMenuVisibility","_a","sideNav","el","shadowRoot","querySelector","sideNavInner","bottomWrapper","menuVisibilityVisible","classList","add","setTimeout","remove","menuButton","setAttribute","setAndRemoveNoWrapAfterMenuExpanded","appTitle","toggleMenuExpanded","_b","_c","_d","style","setProperty","addEventListener","e","propertyName","displayTooltipWithExpandedLongLabel","animateCollapsedIconLabels","setExpandedButtonHeight","navItems","querySelectorAll","forEach","navItem","isNamedSlot","isSlotUsed","isUnnamedSlot","children","getAttribute","navItemSlot","iconWrapper","document","createElement","icon","badge","label","textContent","trim","icTypography","position","height","append","styleSlottedCollapsedIconLabels","styleSlottedIconLabels","marginTop","whiteSpace","overflow","textOverflow","appStatusWrapper","offsetHeight","opacity","visibility","transition","transitionHandler","type","primaryNavigationWrapper","secondaryNavigationWrapper","classToRemove","classToAdd","transitionEndHandler","paddingIconWidth","navItemLink","navItemSVG","navStyles","gap","window","getComputedStyle","iconWidth","width","paddingLeft","Object","values","reduce","prev","curr","timer","sideNavWidth","clientWidth","navigationItems","Array","from","paddingIconDelta","length","navigationItem","icTypographyScrollWidth","scrollWidth","clearTimeout","setMenuExpanded","handleNavItemClicked","setParentPaddingTop","value","parentElement","setParentPaddingLeft","renderAppTitle","isAppNameSubtitleVariant","displayShortAppTitle","isEmptyString","h","variant","undefined","resizeObserverCallback","currSize","isSmallAndDisableTopBar","topBarHeight","scrollHeight","L","M","runResizeObserver","ResizeObserver","observe","body","box","setCollapsedIconLabels","styleSlottedCollapsedIconLabel","dynamicSlottedIcTypographyComps","contains","renderTopBar","isSDevice","hasTitle","isPropDefined","Component","attrs","class","id","size","theme","monochrome","onClick","ariaOwnsId","ref","slot","innerHTML","closeIcon","menuIcon","assign","name","watchExpandedHandler","componentWillLoad","componentDidLoad","checkResizeObserver","onComponentRequiredPropUndefined","prop","propName","disconnectedCallback","disconnect","removeEventListener","brandChangeHandler","detail","mode","render","status","version","isMdDevice","isLgDevice","displayExpandBtn","topBarProps","Host","key","IcBrandForegroundEnum","Dark","hasClassificationBanner","chevronIcon"],"sources":["../web-components/dist/collection/components/ic-side-navigation/ic-side-navigation.css?tag=ic-side-navigation&encapsulation=shadow","../web-components/dist/collection/components/ic-side-navigation/ic-side-navigation.js"],"sourcesContent":["/**\n * @prop --ic-z-index-side-navigation: z-index of side navigation panel\n */\n\n:host {\n display: block;\n\n --ic-typography-color: currentcolor;\n --side-navigation-position: fixed;\n --side-navigation-position-left: 0;\n --side-navigation-position-top: var(--ic-space-xxl);\n --side-navigation-height: var(--ic-space-xxl);\n --sm-side-navigation-top-bar-height: 3.5rem;\n --sm-side-navigation-collapsed-labels-width: 6rem;\n --sm-side-navigation-expand-transition-duration: var(\n --ic-transition-duration-slow\n );\n --side-navigation-width: 20rem;\n --sm-side-navigation-bottom-bar-height: 3.5rem;\n --keyline-lighten: var(--ic-space-1px) solid var(--ic-side-navigation-keyline);\n --keyline-darken: var(--ic-space-1px) solid var(--ic-state-layer-darken-20);\n --ic-button-secondary-text-monochrome: var(--ic-brand-text-color);\n --ic-button-secondary-border-monochrome: var(--ic-brand-text-color);\n\n z-index: var(--ic-z-index-side-navigation);\n}\n\n:host > * {\n box-sizing: border-box;\n}\n\n.side-navigation {\n display: flex;\n flex-direction: column;\n width: var(--side-navigation-width);\n color: var(--ic-side-navigation-text);\n position: var(--side-navigation-position);\n top: var(--side-navigation-position-top);\n left: calc(var(--side-navigation-width) * -1);\n bottom: 0;\n background-color: var(--ic-side-navigation-background);\n z-index: var(--ic-z-index-side-navigation);\n}\n\n:host(.ic-side-navigation-inline) .side-navigation {\n position: absolute;\n height: 100%;\n}\n\n:host(.anchor-right) .side-navigation {\n right: calc(var(--side-navigation-width) * -1);\n}\n\n.classification-spacing {\n margin-bottom: var(--ic-space-lg);\n}\n\n.navigation-list {\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.side-navigation-inner {\n background-color: var(--ic-side-navigation-background);\n display: flex;\n flex-direction: column;\n flex: 1 1 4rem;\n overflow: auto;\n}\n\n:host(.ic-side-navigation-inline) .side-navigation-inner {\n flex: 1;\n}\n\n:host(.xs-menu-open) .side-navigation {\n transition: left var(--ic-easing-transition-slow);\n left: 0;\n}\n\n:host(:has(.xs-menu-open, .xs-menu-close)) ::slotted(ic-navigation-item) {\n --navigation-item-side-nav-right: var(--ic-space-xl);\n}\n\n:host(.xs-menu-close) .side-navigation {\n left: calc(var(--side-navigation-width) * -1);\n transition: left var(--ic-easing-transition-slow);\n}\n\n:host(.xs-menu-close) .side-navigation > * {\n visibility: hidden;\n}\n\n:host(.anchor-right.xs-menu-open) .side-navigation {\n right: 0;\n left: auto;\n}\n\n:host(.anchor-right.xs-menu-close) .side-navigation {\n right: calc(var(--side-navigation-width) * -1);\n left: auto;\n transition: right var(--ic-easing-transition-slow);\n}\n\n.bottom-wrapper {\n border-top: var(--keyline-lighten);\n bottom: 0;\n left: 0;\n z-index: 2;\n background-color: var(--ic-side-navigation-background);\n display: flex;\n flex-direction: column;\n}\n\n:host(.ic-side-navigation-inline) .bottom-wrapper {\n position: sticky;\n}\n\n:host(.ic-side-navigation-dark) .bottom-wrapper {\n border-top: var(--keyline-darken);\n}\n\n/* Mobile Top Bar */\n\n.top-bar {\n display: flex;\n flex-direction: row;\n align-items: center;\n min-height: var(--side-navigation-height);\n padding: var(--ic-space-xs);\n box-sizing: border-box;\n background-color: var(--ic-side-navigation-background);\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n border-bottom: var(--keyline-lighten);\n box-shadow: var(--ic-elevation-overlay);\n z-index: 2;\n overflow: hidden;\n visibility: visible;\n}\n\n:host(.ic-side-navigation-inline) .top-bar {\n position: absolute;\n}\n\n:host(.ic-side-navigation-dark) .top-bar {\n border-bottom: var(--keyline-darken);\n}\n\n.top-bar.dark a:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n.app-title-wrapper {\n display: flex;\n margin-left: var(--ic-space-xs);\n border-left: var(--keyline-lighten);\n padding-left: var(--ic-space-xxs);\n color: var(--ic-side-navigation-text);\n align-items: center;\n}\n\n:host(.ic-side-navigation-dark) .app-title-wrapper {\n border-left: var(--keyline-darken);\n}\n\n.app-title-wrapper ic-typography h1 {\n margin: 0;\n}\n\n@media screen and (min-width: 340px) {\n .app-title-wrapper ic-typography {\n margin-left: var(--ic-space-xs);\n }\n}\n\n:host .title-link {\n display: flex;\n align-items: center;\n transition: box-shadow var(--ic-easing-transition-fast),\n background-color var(--ic-easing-transition-fast);\n text-decoration: none;\n padding: var(--ic-space-xxs);\n color: var(--ic-side-navigation-text);\n}\n\n:host .title-link:visited,\n:host .title-link:active {\n color: var(--ic-side-navigation-text);\n}\n\nslot[name=\"app-title\"]::slotted(a),\nslot[name=\"app-icon\"]::slotted(a) {\n color: var(--ic-side-navigation-text);\n outline: none;\n text-decoration: none;\n display: flex;\n}\n\nslot[name=\"app-title\"]::slotted(ic-typography),\nslot[name=\"app-title\"]::slotted(a) {\n margin-left: var(--ic-space-xs) !important;\n}\n\nslot[name=\"app-title\"]::slotted(a) {\n font: var(--ic-font-subtitle-small);\n}\n\n@media screen and (min-width: 577px) {\n :host(.sm-collapsed) slot[name=\"app-title\"]::slotted(ic-typography),\n :host(.sm-collapsed) slot[name=\"app-title\"]::slotted(a) {\n position: absolute;\n left: -9999px;\n opacity: 0;\n transition: opacity var(--ic-easing-transition-slow);\n }\n\n :host(.sm-collapsed) slot[name=\"app-title\"]:dir(rtl)::slotted(ic-typography),\n :host(.sm-collapsed) slot[name=\"app-title\"]:dir(rtl)::slotted(a) {\n right: -9999px;\n }\n\n :host(.sm-expanded) slot[name=\"app-title\"]::slotted(a) {\n font: var(--ic-font-h3) !important;\n font-weight: var(--ic-font-weight-semibold) !important;\n margin-left: var(--ic-space-xs) !important;\n }\n}\n\n:host .title-link:hover {\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-side-navigation-hover);\n}\n\n:host .title-link:active {\n background-color: var(--ic-side-navigation-pressed);\n}\n\n:host .title-link:focus,\n:host .title-link:focus-within {\n border-radius: var(--ic-border-radius);\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n background-color: transparent;\n}\n\n:host .title-link ic-typography {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.app-title-wrapper ::slotted(svg) {\n fill: var(--ic-side-navigation-text);\n}\n\n.app-icon-container {\n display: none;\n}\n\n.button-label {\n display: flex;\n align-items: center;\n}\n\n.mobile-top-bar-menu-icon {\n display: flex;\n}\n\n.menu-button {\n width: 6.5rem;\n}\n\n.app-status-wrapper {\n inset: 0 var(--ic-space-sm) 0 3.5rem;\n width: auto;\n display: flex;\n gap: var(--ic-space-xs);\n padding: var(--ic-space-sm) 0;\n justify-content: flex-end;\n align-items: flex-end;\n pointer-events: none;\n height: -moz-fit-content;\n height: fit-content;\n margin: 0 var(--ic-space-xs);\n}\n\n.app-status-wrapper .app-version {\n display: flex;\n overflow-wrap: break-word;\n padding-bottom: var(--ic-space-xxs);\n}\n\n.app-status-wrapper .app-status {\n display: flex;\n border-radius: 1rem;\n background-color: var(--ic-side-navigation-text);\n color: var(--ic-side-navigation-status-tag-text);\n padding: var(--ic-space-xxs) var(--ic-space-lg);\n min-width: 1rem;\n}\n\n.app-status-wrapper .app-status-text {\n overflow-wrap: break-word;\n}\n\n:host(.ic-side-navigation-dark) .app-status-wrapper .app-status {\n --ic-typography-color: var(--ic-architectural-white);\n}\n\n.navigation-landmark-title {\n position: absolute;\n width: var(--ic-space-1px);\n height: var(--ic-space-1px);\n padding: 0;\n margin: calc(-1 * var(--ic-space-1px));\n overflow: hidden;\n}\n\n/* Navigation Group */\n\n::slotted(ic-navigation-group) {\n --navigation-group-height: 2.75rem;\n --navigation-group-justify-content: space-between;\n --navigation-group-hover: var(--ic-side-navigation-hover);\n --navigation-group-text-hover: var(--ic-side-navigation-text);\n --navigation-item-child-height: 3.5rem;\n --navigation-item-child-active: var(--ic-action-dark-bg-pressed);\n --navigation-item-child-color: var(--ic-side-navigation-text);\n --navigation-group-expand-toggle-padding: 0.25rem;\n}\n\n/* Navigation Items */\n\n::slotted(ic-navigation-item),\n::slotted(ic-navigation-group) {\n --navigation-item-justify-content: flex-start;\n --navigation-item-min-height: 56px;\n --navigation-item-height: auto;\n}\n\n/* Toggle Chevron */\n\n.bottom-side-nav {\n position: relative;\n align-content: flex-end;\n min-height: var(--sm-side-navigation-top-bar-height);\n}\n\n.bottom-side-nav ic-divider {\n position: absolute;\n top: 0;\n}\n\n.primary-navigation {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n\n /* Hide scrollbar when required but keep functionality */\n scrollbar-width: none;\n}\n\n.primary-navigation::-webkit-scrollbar {\n display: none;\n}\n\n.primary-navigation,\n.secondary-navigation {\n overflow-x: hidden;\n}\n\n.bottom-side-nav .menu-expand-button {\n position: absolute;\n display: none;\n}\n\n.menu-visibility-visible {\n visibility: visible;\n width: 100%;\n}\n\n.app-title-show {\n min-width: 15.5rem;\n}\n\n:host(.side-display) {\n display: flex;\n flex-direction: column;\n height: 100vh;\n position: var(--side-navigation-position);\n left: 0;\n top: 0;\n bottom: 0;\n}\n\n:host(.side-display) .app-icon-container {\n height: 40px;\n display: flex;\n align-items: center;\n}\n\n:host(.side-display) .top-bar {\n --side-navigation-height: var(--sm-side-navigation-top-bar-height);\n\n position: relative;\n padding: 0;\n box-shadow: none;\n}\n\n:host(.ic-side-navigation-inline.side-display) .top-bar {\n position: sticky;\n}\n\n:host(.anchor-right.side-display) .top-bar {\n box-shadow: 0.188rem 0.188rem 0.5rem rgb(0 0 0 / 20%);\n}\n\n:host(.anchor-right.side-display) .bottom-wrapper {\n box-shadow: 0.188rem -0.188rem 0.5rem rgb(0 0 0 / 20%);\n}\n\n:host(.side-display) .side-navigation,\n:host(.side-display) .top-bar {\n width: var(--sm-side-navigation-top-bar-height);\n}\n\n:host(.sm-collapsed.side-display) {\n width: var(--sm-side-navigation-top-bar-height);\n transition: width var(--ic-easing-transition-slow);\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) {\n width: var(--sm-side-navigation-collapsed-labels-width);\n}\n\n:host(.sm-expanded.side-display) {\n width: var(--side-navigation-width);\n transition: width var(--ic-easing-transition-slow);\n box-shadow: var(--ic-elevation-overlay);\n}\n\n:host(.side-display) .side-navigation {\n --side-navigation-position-top: 0;\n\n flex: 1;\n position: relative;\n top: auto;\n left: auto;\n bottom: auto;\n}\n\n:host(.ic-side-navigation-inline.side-display) .side-navigation {\n position: relative;\n}\n\n:host(.anchor-right.side-display) .side-navigation {\n left: auto;\n right: 0;\n}\n\n:host(.side-display) .app-title-wrapper {\n margin-left: 0;\n border-left: none;\n padding: var(--ic-space-xs) var(--ic-space-sm);\n}\n\n:host(.side-display) .app-title-wrapper ::slotted(svg) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host(.side-display) .app-title-wrapper ic-typography {\n font-weight: var(--ic-font-weight-semibold);\n}\n\n:host(.sm-collapsed.side-display) .app-title-wrapper ic-typography {\n position: absolute;\n left: -9999px;\n opacity: 0;\n transition: opacity var(--ic-easing-transition-slow);\n}\n\n:host(.sm-collapsed.side-display) .app-title-wrapper ic-typography:dir(rtl) {\n right: -9999px;\n}\n\n:host(.sm-expanded.side-display) ic-typography {\n position: relative;\n left: 0;\n}\n\n:host(.sm-expanded.side-display) :is(.side-navigation, .top-bar) {\n width: var(--side-navigation-width);\n transition: width var(--ic-easing-transition-slow);\n}\n\n:host(.sm-collapsed.side-display) :is(.side-navigation, .top-bar) {\n width: var(--sm-side-navigation-top-bar-height);\n transition: width var(--ic-easing-transition-slow);\n}\n\n:host(.anchor-right.sm-expanded.side-display) :is(.side-navigation, .top-bar) {\n left: auto;\n right: 0;\n}\n\n:host(.side-display) .app-status-wrapper,\n:host(.sm-collapsed.side-display) .app-status-wrapper {\n display: none;\n margin-left: 0;\n}\n\n:host(.sm-expanded.side-display) .app-status-wrapper {\n display: flex;\n max-width: 16rem;\n margin-right: calc(var(--ic-space-xxxs) + var(--ic-space-xs));\n}\n\n:host(.side-display) .bottom-side-nav {\n justify-items: flex-end;\n align-items: flex-end;\n justify-content: flex-end;\n display: flex;\n outline: none;\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button {\n padding-left: var(--ic-space-md);\n height: var(--sm-side-navigation-top-bar-height);\n width: 100%;\n color: var(--ic-side-navigation-text);\n background-color: transparent;\n outline: var(--ic-hc-focus-outline);\n border: none;\n cursor: pointer;\n display: flex;\n transition: var(--ic-easing-transition-fast);\n}\n\n:host(.sm-expanded.side-display) .bottom-side-nav .menu-expand-button {\n height: 100%;\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button svg {\n justify-items: flex-start;\n align-self: center;\n display: inline-block;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button:hover {\n background-color: var(--ic-side-navigation-hover);\n}\n\n:host(.side-display) .bottom-side-nav .menu-expand-button:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background-color: transparent;\n}\n\n:host(.sm-collapsed.side-display) .bottom-side-nav .menu-expand-button svg {\n transform: scaleX(1);\n transition: transform var(--ic-easing-transition-slow);\n}\n\n:host(.sm-expanded.side-display) .bottom-side-nav .menu-expand-button svg {\n transform: scaleX(-1);\n transition: transform var(--ic-easing-transition-slow);\n align-self: flex-end;\n margin-bottom: 0.875rem;\n}\n\n:host(.anchor-right.sm-collapsed.side-display)\n .bottom-side-nav\n .menu-expand-button\n svg {\n transform: scaleX(-1);\n}\n\n:host(.anchor-right.sm-expanded.side-display)\n .bottom-side-nav\n .menu-expand-button\n svg {\n transform: scaleX(1);\n}\n\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-item) {\n --navigation-item-label-opacity: 1;\n}\n\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-item),\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-group) {\n --navigation-item-label-opacity: 0;\n --navigation-item-min-height: 3.5rem;\n --navigation-item-height: 3.5rem;\n}\n\n:host(.sm-expanded.side-display) ::slotted(ic-navigation-item),\n:host(.sm-expanded.side-display) ::slotted(ic-navigation-group) {\n --navigation-item-label-opacity: 1;\n --navigation-item-height: auto;\n --navigation-item-min-height: 3.5rem;\n --navigation-item-width: 20rem;\n --navigation-item-side-nav-right: var(--ic-space-xl);\n --navigation-group-width: 20rem;\n}\n\n:host(.sm-collapsed.side-display) ::slotted(ic-navigation-group) {\n --navigation-group-title-position: absolute;\n --navigation-group-title-position-left: -9999px;\n --navigation-group-title-opacity: none;\n}\n\n:host(.sm-expanded.side-display) ::slotted(ic-navigation-group) {\n --navigation-group-title-position: relative;\n --navigation-group-title-position-left: 0;\n --navigation-group-expand-toggle-padding: 0.25rem;\n --navigation-group-title-opacity: flex;\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) .side-navigation,\n:host(.sm-collapsed.collapsed-labels.side-display) .top-bar {\n width: var(--sm-side-navigation-collapsed-labels-width);\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) .menu-expand-button {\n padding: 0;\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display) .app-title-wrapper {\n width: 100%;\n justify-content: center;\n}\n\n:host(.sm-collapsed.collapsed-labels.side-display)\n ::slotted(ic-navigation-group) {\n --navigation-group-justify-content: center;\n --navigation-item-label-opacity: 1;\n --navigation-group-item-min-width: 100%;\n --navigation-group-expand-toggle-padding: 1rem;\n}\n\n:host(.collapsed-labels.side-display) .bottom-side-nav .menu-expand-button {\n justify-content: center;\n}\n\n:host(.side-display) .collapsed-icon-labels-start {\n visibility: hidden;\n opacity: 0;\n}\n\n:host(.side-display) .collapsed-icon-labels-end {\n visibility: visible;\n opacity: 1;\n transition: visibility 0s, opacity var(--ic-easing-transition-slow);\n}\n\n/* Media Queries */\n\n@media screen and (max-width: 419px) {\n .top-bar {\n height: var(--side-navigation-height);\n }\n\n .side-navigation {\n width: 100%;\n }\n}\n\n@media screen and (min-width: 340px) {\n .app-icon-container {\n display: flex;\n }\n}\n\n@media screen and (min-width: 993px) {\n :host(.side-display) {\n position: sticky;\n left: auto;\n top: 0;\n bottom: 0;\n }\n\n :host(.sm-expanded.side-display) {\n box-shadow: none;\n }\n}\n\n@media (forced-colors: active) {\n .side-navigation,\n .top-bar {\n border-right: var(--ic-border-hc);\n }\n\n .menu-expand-button {\n color: Highlight !important;\n }\n\n slot[name=\"app-icon\"]::slotted(svg) {\n fill: currentcolor;\n }\n}\n","import { Host, h, } from \"@stencil/core\";\nimport menuIcon from \"../../assets/hamburger-menu-icon.svg\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport { getCurrentDeviceSize, DEVICE_SIZES, checkResizeObserver, isSlotUsed, getBrandForegroundAppearance, getCssProperty, hasClassificationBanner, onComponentRequiredPropUndefined, isEmptyString, isPropDefined, } from \"../../utils/helpers\";\nimport { IcBrandForegroundEnum, } from \"../../utils/types\";\n/**\n * @slot app-icon - Content will be rendered adjacent to the app title at the very top of the side navigation.\n * @slot app-title - Handle routing by nesting a route in the app title.\n * @slot primary-navigation - Content will be rendered at the top of the side navigation.\n * @slot secondary-navigation - Content will be rendered at the bottom of the side navigation.\n */\nexport class SideNavigation {\n constructor() {\n this.ANIMATION_DURATION = parseInt(getCssProperty(\"--ic-transition-duration-slow\")) || 0;\n this.IC_NAVIGATION_ITEM = \"ic-navigation-item\";\n this.resizeObserver = null;\n this.COLLAPSED_ICON_LABELS_END = \"collapsed-icon-labels-end\";\n this.COLLAPSED_ICON_LABELS_START = \"collapsed-icon-labels-start\";\n this.deviceSize = getCurrentDeviceSize();\n this.deviceSizeAppTitle = DEVICE_SIZES.S;\n this.foregroundColor = getBrandForegroundAppearance();\n this.hasSecondaryNavigation = false;\n this.menuExpanded = false;\n this.menuOpen = false;\n /**\n * If `true`, the side navigation will close when a navigation item is clicked. This behaviour is only applicable on larger device sizes.\n */\n this.closeOnNavItemClick = false;\n /**\n * If `true`, the icon and label will appear when side navigation is collapsed.\n */\n this.collapsedIconLabels = false;\n /**\n * If `true`, automatic parent wrapper styling will be disabled.\n */\n this.disableAutoParentStyling = false;\n /**\n * If `true`, the side navigation will not display as a top bar on small devices.\n */\n this.disableTopBarBehaviour = false;\n /**\n * If `true`, the side navigation will display in an expanded state.\n */\n this.expanded = false;\n /**\n * The URL that the app title link points to.\n */\n this.href = \"/\";\n /**\n * @internal If `true`, side navigation will be contained by its parent element.\n */\n this.inline = false;\n /**\n * The short title of the app to be displayed at small screen sizes in place of the app title.\n */\n this.shortAppTitle = \"\";\n /**\n * If `true`, the menu expand button will be removed (PLEASE NOTE: This takes effect on screen sizes 992px and above).\n */\n this.static = false;\n this.emitSideNavigationExpanded = (objDetails) => {\n this.icSideNavExpanded.emit({\n sideNavExpanded: objDetails.sideNavExpanded,\n sideNavMobile: !!objDetails.sideNavMobile,\n });\n };\n this.toggleMenu = () => {\n this.menuOpen = !this.menuOpen;\n this.setMobileMenuAriaAttributes(this.menuOpen);\n this.arrangeSlottedNavigationItem(this.menuOpen);\n this.setToggleMenuFlyoutMenuVisibility(this.menuOpen);\n this.emitSideNavigationExpanded({\n sideNavExpanded: this.menuOpen,\n sideNavMobile: true,\n });\n };\n this.setToggleMenuFlyoutMenuVisibility = (menuOpen) => {\n var _a;\n const sideNav = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\"#side-navigation\");\n const sideNavInner = sideNav.querySelector(\".side-navigation-inner\");\n const bottomWrapper = sideNav.querySelector(\".bottom-wrapper\");\n const menuVisibilityVisible = \"menu-visibility-visible\";\n if (menuOpen) {\n bottomWrapper.classList.add(menuVisibilityVisible);\n sideNavInner.classList.add(menuVisibilityVisible);\n }\n else {\n setTimeout(() => {\n sideNavInner.classList.remove(menuVisibilityVisible);\n bottomWrapper.classList.remove(menuVisibilityVisible);\n }, this.ANIMATION_DURATION);\n }\n };\n this.setMobileMenuAriaAttributes = (menuOpen) => {\n if (this.menuButton) {\n this.menuButton.setAttribute(\"aria-expanded\", `${menuOpen}`);\n this.menuButton.setAttribute(\"aria-label\", `${menuOpen ? \"Close\" : \"Open\"} navigation menu`);\n }\n };\n this.setAndRemoveNoWrapAfterMenuExpanded = () => {\n var _a;\n const appTitle = ((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\".title-link ic-typography\")) ||\n this.el.querySelector(\"[slot='app-title']\");\n appTitle === null || appTitle === void 0 ? void 0 : appTitle.classList.add(\"ic-typography-no-wrap\");\n setTimeout(() => {\n appTitle === null || appTitle === void 0 ? void 0 : appTitle.classList.remove(\"ic-typography-no-wrap\");\n }, this.ANIMATION_DURATION);\n };\n this.toggleMenuExpanded = (expanded) => {\n var _a, _b, _c, _d;\n if (this.deviceSize > DEVICE_SIZES.S) {\n this.menuExpanded = expanded;\n }\n if (this.menuExpanded) {\n this.setAndRemoveNoWrapAfterMenuExpanded();\n (_b = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\".app-title-inner-wrapper\")) === null || _b === void 0 ? void 0 : _b.classList.add(\"app-title-show\");\n }\n else {\n this.el.style.setProperty(\"--navigation-item-width\", \"320px\");\n (_d = (_c = this.el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector(\".app-title-inner-wrapper\")) === null || _d === void 0 ? void 0 : _d.classList.remove(\"app-title-show\");\n this.el.addEventListener(\"transitionend\", (e) => {\n if (e.propertyName === \"width\") {\n this.el.style.setProperty(\"--navigation-item-width\", null);\n }\n });\n }\n this.arrangeSlottedNavigationItem(this.menuExpanded);\n this.displayTooltipWithExpandedLongLabel(this.menuExpanded);\n if (this.collapsedIconLabels) {\n this.animateCollapsedIconLabels();\n }\n this.setExpandedButtonHeight();\n this.emitSideNavigationExpanded({ sideNavExpanded: this.menuExpanded });\n };\n /**\n * In order to style nested slotted elements (e.g. using React Router components), this method\n * rearranges the a tag and labels and adds inline styling expand/collapsed animations as external CSS classes are not\n * do not take affect.\n * @param menuExpanded boolean - true or false depending on side navigation state\n */\n this.arrangeSlottedNavigationItem = (menuExpanded) => {\n const navItems = this.el.querySelectorAll(\"ic-navigation-item\");\n navItems.forEach((navItem) => {\n var _a;\n const isNamedSlot = isSlotUsed(navItem, \"navigation-item\");\n const isUnnamedSlot = navItem.children[0] && !navItem.children[0].getAttribute(\"slot\");\n if (isNamedSlot || isUnnamedSlot) {\n let navItemSlot;\n if (isNamedSlot) {\n navItemSlot = navItem.querySelector(\"[slot='navigation-item']\");\n }\n else {\n navItemSlot = navItem.children[0];\n }\n const iconWrapper = document.createElement(\"div\");\n const icon = navItemSlot === null || navItemSlot === void 0 ? void 0 : navItemSlot.querySelector(\"svg\");\n const badge = navItemSlot === null || navItemSlot === void 0 ? void 0 : navItemSlot.querySelector(\"ic-badge\");\n const label = (_a = navItem.textContent) === null || _a === void 0 ? void 0 : _a.trim();\n const icTypography = document.createElement(\"ic-typography\");\n icTypography.classList.add(\"ic-typography-label\", \"hydrated\", \"navigation-item-side-nav-slotted-text\");\n iconWrapper.style.position = \"relative\";\n iconWrapper.style.height = \"var(--ic-space-lg)\";\n icon && iconWrapper.append(icon);\n badge && iconWrapper.append(badge);\n if (label) {\n icTypography.textContent = label;\n }\n if (navItemSlot) {\n navItemSlot.textContent = \"\";\n navItemSlot.append(iconWrapper);\n navItemSlot.append(icTypography);\n }\n if (this.collapsedIconLabels) {\n this.styleSlottedCollapsedIconLabels(!!menuExpanded, icTypography);\n }\n else {\n this.styleSlottedIconLabels(!!menuExpanded, icTypography);\n }\n }\n });\n };\n this.styleSlottedCollapsedIconLabels = (menuExpanded, icTypography) => {\n if (menuExpanded) {\n icTypography.style.marginTop = \"0\";\n icTypography.style.whiteSpace = \"nowrap\";\n icTypography.style.overflow = \"hidden\";\n icTypography.style.textOverflow = \"ellipsis\";\n }\n else {\n icTypography.style.marginTop = \"10px\";\n icTypography.style.whiteSpace = \"nowrap\";\n icTypography.style.overflow = \"hidden\";\n icTypography.style.textOverflow = \"ellipsis\";\n }\n };\n this.setExpandedButtonHeight = () => {\n var _a;\n const appStatusWrapper = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\"#side-navigation > .bottom-wrapper > .bottom-side-nav > .app-status-wrapper\");\n if (appStatusWrapper.offsetHeight !== 0) {\n this.el.style.setProperty(\"--sm-side-navigation-bottom-bar-height\", `${appStatusWrapper.offsetHeight}px`);\n }\n };\n this.styleSlottedIconLabels = (menuExpanded, icTypography) => {\n if (menuExpanded) {\n icTypography.style.opacity = \"1\";\n icTypography.style.visibility = \"visible\";\n icTypography.style.transition =\n \"visibility 0s, opacity var(--ic-easing-transition-slow)\";\n }\n else {\n icTypography.style.opacity = \"0\";\n icTypography.style.visibility = \"hidden\";\n icTypography.style.transition =\n \"visibility 0s, opacity var(--ic-easing-transition-slow)\";\n }\n };\n this.transitionHandler = (type) => {\n var _a, _b;\n const primaryNavigationWrapper = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\".primary-navigation\");\n const secondaryNavigationWrapper = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector(\".bottom-wrapper > .secondary-navigation\");\n const classToRemove = type === \"start\"\n ? this.COLLAPSED_ICON_LABELS_END\n : this.COLLAPSED_ICON_LABELS_START;\n const classToAdd = type === \"start\"\n ? this.COLLAPSED_ICON_LABELS_START\n : this.COLLAPSED_ICON_LABELS_END;\n if (primaryNavigationWrapper) {\n primaryNavigationWrapper.classList.remove(classToRemove);\n primaryNavigationWrapper.classList.add(classToAdd);\n }\n if (secondaryNavigationWrapper) {\n secondaryNavigationWrapper.classList.remove(classToRemove);\n secondaryNavigationWrapper.classList.add(classToAdd);\n }\n };\n this.transitionEndHandler = () => {\n this.transitionHandler(\"end\");\n };\n this.animateCollapsedIconLabels = () => {\n this.transitionHandler(\"start\");\n this.transitionEndHandler();\n this.el.addEventListener(\"transitionend\", this.transitionEndHandler);\n };\n this.paddingIconWidth = (navItems) => {\n const navItemLink = (navItems[0].shadowRoot &&\n (navItems[0].shadowRoot.querySelector(\"ic-tooltip a\") ||\n navItems[0].shadowRoot.querySelector(\"ic-tooltip div\"))) ||\n navItems[0].querySelector(\"a\") ||\n navItems[0].querySelector(\"div\");\n const navItemSVG = navItems[0].querySelector(\"svg\");\n if (navItemLink && navItemSVG) {\n const navStyles = {\n gap: window.getComputedStyle(navItemLink).gap,\n iconWidth: window.getComputedStyle(navItemSVG).width,\n paddingLeft: window.getComputedStyle(navItemLink).paddingLeft,\n };\n return Object.values(navStyles).reduce((prev, curr) => {\n return (prev += parseInt(curr));\n }, 0);\n }\n return 0;\n };\n this.displayTooltipWithExpandedLongLabel = (menuExpanded) => {\n let timer;\n if (menuExpanded) {\n timer = setTimeout(() => {\n const sideNavWidth = this.el.clientWidth;\n const navigationItems = Array.from(this.el.querySelectorAll(this.IC_NAVIGATION_ITEM));\n const paddingIconDelta = navigationItems.length\n ? this.paddingIconWidth(navigationItems)\n : 0;\n navigationItems.forEach((navigationItem) => {\n var _a, _b;\n const icTypographyScrollWidth = ((_a = (navigationItem.shadowRoot &&\n navigationItem.shadowRoot.querySelector(\"ic-tooltip .link ic-typography.ic-typography-label\"))) === null || _a === void 0 ? void 0 : _a.scrollWidth) ||\n ((_b = navigationItem.querySelector(\"ic-typography.ic-typography-label\")) === null || _b === void 0 ? void 0 : _b.scrollWidth);\n if (icTypographyScrollWidth &&\n icTypographyScrollWidth > sideNavWidth - paddingIconDelta) {\n navigationItem.setAttribute(\"display-navigation-tooltip\", \"true\");\n }\n });\n }, this.ANIMATION_DURATION);\n }\n else {\n clearTimeout(timer);\n const navigationItems = Array.from(this.el.querySelectorAll(this.IC_NAVIGATION_ITEM));\n navigationItems.forEach((navigationItem) => {\n navigationItem.setAttribute(\"display-navigation-tooltip\", \"false\");\n });\n }\n };\n this.setMenuExpanded = (expanded) => {\n this.menuExpanded = expanded;\n };\n this.handleNavItemClicked = () => {\n if (!this.menuOpen &&\n this.deviceSize > DEVICE_SIZES.S &&\n this.menuExpanded) {\n setTimeout(() => {\n this.toggleMenuExpanded(false);\n }, 0);\n }\n };\n /**\n * As the mobile top bar is fixed, a padding top is required\n * to push main content down the height of the mobile top bar\n * @param value - padding-top css value\n */\n this.setParentPaddingTop = (value) => {\n var _a;\n (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.style.setProperty(\"padding-top\", value);\n };\n this.setParentPaddingLeft = (value) => {\n var _a;\n (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.style.setProperty(\"padding-left\", value);\n };\n this.renderAppTitle = (isAppNameSubtitleVariant) => {\n const displayShortAppTitle = this.deviceSize <= DEVICE_SIZES.S && !isEmptyString(this.shortAppTitle);\n return (h(\"ic-typography\", { variant: displayShortAppTitle || isAppNameSubtitleVariant\n ? \"subtitle-small\"\n : \"h3\", \"aria-label\": displayShortAppTitle\n ? `${this.appTitle} (${this.shortAppTitle})`\n : undefined }, h(\"h1\", null, displayShortAppTitle ? this.shortAppTitle : this.appTitle)));\n };\n this.resizeObserverCallback = (currSize) => {\n var _a, _b, _c, _d;\n this.deviceSize = currSize;\n const isSmallAndDisableTopBar = currSize === DEVICE_SIZES.S && !this.disableTopBarBehaviour;\n if (!this.disableAutoParentStyling) {\n const topBarHeight = (_b = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(\".top-bar\")) === null || _b === void 0 ? void 0 : _b.scrollHeight;\n this.setParentPaddingTop(isSmallAndDisableTopBar ? `${topBarHeight}px` : \"0\");\n if (isSmallAndDisableTopBar)\n this.setParentPaddingLeft(\"0\");\n if (isSmallAndDisableTopBar && this.inline) {\n (_c = this.el.parentElement) === null || _c === void 0 ? void 0 : _c.style.setProperty(\"height\", `calc(100% - ${topBarHeight}px)`);\n }\n else if (!isSmallAndDisableTopBar) {\n (_d = this.el.parentElement) === null || _d === void 0 ? void 0 : _d.style.setProperty(\"height\", \"100%\");\n }\n }\n if (!this.disableAutoParentStyling) {\n const paddingLeft = `calc(var(--ic-space-xxl) ${this.collapsedIconLabels ? \"* 2\" : \"+ var(--ic-space-xs)\"})`;\n if (currSize > DEVICE_SIZES.L) {\n this.setParentPaddingTop(\"0\");\n this.setParentPaddingLeft(\"0\");\n }\n else if ((currSize > DEVICE_SIZES.S || this.disableTopBarBehaviour) &&\n currSize <= DEVICE_SIZES.M &&\n this.static) {\n this.setParentPaddingLeft(paddingLeft);\n }\n else if ((currSize > DEVICE_SIZES.S || this.disableTopBarBehaviour) &&\n currSize <= DEVICE_SIZES.L) {\n this.setParentPaddingLeft(this.static && this.menuExpanded\n ? \"calc(var(--ic-space-xl) * 10)\"\n : paddingLeft);\n }\n }\n };\n this.runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.deviceSizeAppTitle = currSize;\n this.resizeObserverCallback(currSize);\n });\n this.resizeObserver.observe(document.body, { box: \"content-box\" });\n };\n this.setCollapsedIconLabels = () => {\n const navigationItems = Array.from(this.el.querySelectorAll(this.IC_NAVIGATION_ITEM));\n navigationItems.forEach((navigationItem) => {\n navigationItem.setAttribute(\"collapsed-icon-label\", \"true\");\n });\n };\n this.styleSlottedCollapsedIconLabel = () => {\n const dynamicSlottedIcTypographyComps = Array.from(this.el.querySelectorAll(\".navigation-item-side-nav-slotted-text\"));\n dynamicSlottedIcTypographyComps.forEach((icTypography) => {\n var _a, _b;\n if ((_b = (_a = icTypography.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.classList.contains(\"navigation-item-side-nav-collapsed-with-label\")) {\n icTypography.style.whiteSpace = \"nowrap\";\n icTypography.style.overflow = \"hidden\";\n icTypography.style.textOverflow = \"ellipsis\";\n icTypography.style.marginTop = \"10px\";\n }\n });\n };\n this.renderTopBar = ({ isSDevice, foregroundColor, menuOpen, href, isAppNameSubtitleVariant, }) => {\n const hasTitle = this.appTitle !== \"\" && isPropDefined(this.appTitle);\n const Component = isSlotUsed(this.el, \"app-title\") ? \"div\" : \"a\";\n const attrs = Component == \"a\" && {\n href: href,\n };\n return (h(\"div\", { class: {\n \"top-bar\": true,\n [this.foregroundColor]: true,\n } }, isSDevice && (h(\"nav\", { \"aria-labelledby\": \"menu-navigation-toggle-button-landmark\", \"aria-hidden\": \"false\" }, h(\"ic-button\", { \"aria-label\": \"Open navigation menu\", class: \"menu-button\", id: \"menu-button\", variant: \"secondary\", size: \"small\", \"full-width\": \"true\", theme: foregroundColor == \"default\" || foregroundColor == \"light\"\n ? \"light\"\n : \"dark\", monochrome: true, onClick: this.toggleMenu, ariaOwnsId: \"side-navigation\", \"aria-haspopup\": \"true\", \"aria-expanded\": \"false\", ref: (el) => (this.menuButton = el) }, h(\"span\", { class: \"mobile-top-bar-menu-icon\", slot: \"left-icon\", innerHTML: menuOpen ? closeIcon : menuIcon }), menuOpen ? \"Close\" : \"Menu\"), h(\"span\", { id: \"menu-navigation-toggle-button-landmark\", class: \"navigation-landmark-title\", \"aria-hidden\": \"true\" }, \"Navigation menu toggle button\"))), h(\"div\", { class: \"app-title-wrapper\" }, (hasTitle || isSlotUsed(this.el, \"app-title\")) && (h(Component, Object.assign({}, attrs, { class: \"title-link\" }), h(\"div\", { class: \"app-icon-container\", \"aria-hidden\": \"true\" }, h(\"slot\", { name: \"app-icon\" })), h(\"div\", { class: \"app-title-inner-wrapper\" }, isSlotUsed(this.el, \"app-title\") ? (h(\"slot\", { name: \"app-title\" })) : (this.renderAppTitle(isAppNameSubtitleVariant))))))));\n };\n }\n watchExpandedHandler() {\n this.toggleMenuExpanded(this.expanded);\n }\n componentWillLoad() {\n this.setMenuExpanded(this.expanded);\n if (this.collapsedIconLabels) {\n this.setCollapsedIconLabels();\n }\n this.hasSecondaryNavigation = isSlotUsed(this.el, \"secondary-navigation\");\n }\n componentDidLoad() {\n this.emitSideNavigationExpanded({\n sideNavExpanded: this.menuExpanded,\n sideNavMobile: this.deviceSize === DEVICE_SIZES.S && !this.disableTopBarBehaviour,\n });\n checkResizeObserver(this.runResizeObserver);\n this.styleSlottedCollapsedIconLabel();\n this.arrangeSlottedNavigationItem(this.menuExpanded);\n this.displayTooltipWithExpandedLongLabel(this.menuExpanded);\n this.setExpandedButtonHeight();\n if (this.closeOnNavItemClick) {\n this.el.addEventListener(\"navItemClicked\", this.handleNavItemClicked);\n }\n !isSlotUsed(this.el, \"app-title\") &&\n onComponentRequiredPropUndefined([{ prop: this.appTitle, propName: \"app-title\" }], \"Side Navigation\");\n }\n disconnectedCallback() {\n var _a;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n (_a = this.el) === null || _a === void 0 ? void 0 : _a.removeEventListener(\"transitionend\", this.transitionEndHandler);\n if (this.closeOnNavItemClick) {\n this.el.removeEventListener(\"navItemClicked\", this.handleNavItemClicked);\n }\n }\n brandChangeHandler({ detail }) {\n this.foregroundColor = detail.mode;\n }\n render() {\n const { appTitle, menuOpen, foregroundColor, menuExpanded, href, status, version, collapsedIconLabels, inline, } = this;\n const isSDevice = !this.disableTopBarBehaviour && this.deviceSize === DEVICE_SIZES.S;\n const isMdDevice = this.deviceSize === DEVICE_SIZES.M;\n const isLgDevice = this.deviceSize >= DEVICE_SIZES.L;\n const isAppNameSubtitleVariant = this.deviceSizeAppTitle === DEVICE_SIZES.S;\n const displayExpandBtn = isMdDevice || this.disableTopBarBehaviour || (isLgDevice && !this.static);\n const topBarProps = {\n isSDevice,\n foregroundColor,\n menuOpen,\n href: href,\n isAppNameSubtitleVariant,\n appTitle: appTitle || \"\",\n };\n return (h(Host, { key: '15fb26b6255c8577321c0d8f6229657e708743a2', class: {\n \"xs-menu-open\": menuOpen && isSDevice,\n \"xs-menu-close\": !menuOpen && isSDevice,\n \"sm-collapsed\": !isSDevice && !menuExpanded,\n \"sm-expanded\": !isSDevice && menuExpanded,\n \"side-display\": this.deviceSize > DEVICE_SIZES.S || !!this.disableTopBarBehaviour,\n [`ic-side-navigation-${IcBrandForegroundEnum.Dark}`]: foregroundColor === IcBrandForegroundEnum.Dark,\n [\"collapsed-labels\"]: !isSDevice && !menuExpanded && !!collapsedIconLabels,\n [\"ic-side-navigation-inline\"]: !!inline,\n } }, isSDevice && this.renderTopBar(Object.assign({}, topBarProps)), h(\"div\", { key: '7a61b9842b0178f2d278bba872b46f5e85f91ec6', class: \"side-navigation\", id: \"side-navigation\" }, !isSDevice && this.renderTopBar(Object.assign({}, topBarProps)), h(\"div\", { key: '17b4c931a5819104bc5d8895554e907775d17ede', class: \"side-navigation-inner\" }, isSlotUsed(this.el, \"primary-navigation\") && (h(\"nav\", { key: '02740005b1dbab60c1184d7c87365207fd23cfa4', class: \"primary-navigation\", \"aria-labelledby\": \"primary-navigation-landmark\" }, h(\"span\", { key: '5ab66ae81e990a476ea430149c45812d61054a25', \"aria-hidden\": \"true\", class: \"navigation-landmark-title\", id: \"primary-navigation-landmark\" }, \"Primary\"), h(\"ul\", { key: '4a0ce9df794e6a40d59b2445aaec4abc906b8534', class: \"navigation-list\" }, h(\"slot\", { key: 'a03aedf0f85e25ed693cfa07058e756f2e0e0445', name: \"primary-navigation\" }))))), h(\"div\", { key: 'bcf6f0da6c0f02bc284a786e5c667f9845bdbf8f', class: {\n [\"bottom-wrapper\"]: true,\n [\"classification-spacing\"]: hasClassificationBanner(),\n } }, isSlotUsed(this.el, \"secondary-navigation\") && (h(\"nav\", { key: 'dbef49a24d8e8d3001eea8d1c131a5a478a87c3d', class: \"secondary-navigation\", \"aria-labelledby\": \"secondary-navigation-landmark\" }, h(\"span\", { key: 'abab1109b3363bcc159364a392ab10930db86dbc', \"aria-hidden\": \"true\", class: \"navigation-landmark-title\", id: \"secondary-navigation-landmark\" }, \"Secondary\"), h(\"ul\", { key: 'b71571a5bad511452533ae01a6f875ad1ca70fa8', class: \"navigation-list\" }, h(\"slot\", { key: 'f889cc63a76aec21ab1897a426133907a2521153', name: \"secondary-navigation\" })))), h(\"div\", { key: '002dcfe1e4673ab9068ae841bdfb0ee95c2634db', class: \"bottom-side-nav\" }, this.hasSecondaryNavigation && h(\"ic-divider\", { key: 'bd87f4a2f9ddf55ed77b289eb82f3c0ceeed1ce7' }), displayExpandBtn && (h(\"button\", { key: '754ecc50a0ea7972e4f042e5316577b2e3e6b6f3', class: \"menu-expand-button\", innerHTML: chevronIcon, onClick: () => this.toggleMenuExpanded(!this.menuExpanded), \"aria-label\": `${menuExpanded ? \"Collapse\" : \"Expand\"} side navigation` })), h(\"div\", { key: '3c3060f672f549a905ff9ad13ea4ff1fdc23c97c', class: \"app-status-wrapper\" }, status !== \"\" && (h(\"div\", { key: '23cb48b7bf508a9d36b9185b9cb9af1576dfa048', class: {\n [\"app-status\"]: true,\n } }, h(\"ic-typography\", { key: '1128037e6b0438c727adac68a4ec50f8f3101ca9', \"aria-label\": \"app tag\", variant: \"label-uppercase\", class: \"app-status-text\" }, status))), version !== \"\" && (h(\"ic-typography\", { key: 'cc474438e8b625059dce3bf469010842ae2742ab', variant: \"label\", class: \"app-version\", \"aria-label\": \"app version\" }, version))))))));\n }\n static get is() { return \"ic-side-navigation\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-side-navigation.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-side-navigation.css\"]\n };\n }\n static get properties() {\n return {\n \"appTitle\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The app title to be displayed. This is required, unless a slotted app title link is used.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"app-title\",\n \"reflect\": false\n },\n \"closeOnNavItemClick\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the side navigation will close when a navigation item is clicked. This behaviour is only applicable on larger device sizes.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"close-on-nav-item-click\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"collapsedIconLabels\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the icon and label will appear when side navigation is collapsed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"collapsed-icon-labels\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disableAutoParentStyling\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, automatic parent wrapper styling will be disabled.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disable-auto-parent-styling\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disableTopBarBehaviour\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the side navigation will not display as a top bar on small devices.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"disable-top-bar-behaviour\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"expanded\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the side navigation will display in an expanded state.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"expanded\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"href\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The URL that the app title link points to.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"href\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"/\\\"\"\n },\n \"inline\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, side navigation will be contained by its parent element.\"\n }],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"inline\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"shortAppTitle\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The short title of the app to be displayed at small screen sizes in place of the app title.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"short-app-title\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"static\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the menu expand button will be removed (PLEASE NOTE: This takes effect on screen sizes 992px and above).\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"static\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"status\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The status of the app to be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"status\",\n \"reflect\": false\n },\n \"version\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The version of the app to be displayed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"attribute\": \"version\",\n \"reflect\": false\n }\n };\n }\n static get states() {\n return {\n \"deviceSize\": {},\n \"deviceSizeAppTitle\": {},\n \"foregroundColor\": {},\n \"hasSecondaryNavigation\": {},\n \"menuExpanded\": {},\n \"menuOpen\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icSideNavExpanded\",\n \"name\": \"icSideNavExpanded\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the side navigation is collapsed and expanded.\"\n },\n \"complexType\": {\n \"original\": \"IcExpandedDetail\",\n \"resolved\": \"IcExpandedDetail\",\n \"references\": {\n \"IcExpandedDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-side-navigation.types\",\n \"id\": \"src/components/ic-side-navigation/ic-side-navigation.types.ts::IcExpandedDetail\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"expanded\",\n \"methodName\": \"watchExpandedHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"brandChange\",\n \"method\": \"brandChangeHandler\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-side-navigation.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as i,h as t,H as e,g as s,c as n,F as c}from"./p-8e4e97b4.js";import{r as o,a as r,s as a,R as l,U as h,X as u,b as d,P as p}from"./p-eca2fea1.js";import{C as m}from"./p-0aa9ce8b.js";import{c as f}from"./p-aae38bee.js";const b="ic-input-component-container{display:flex;border:var(--ic-border-width) solid\n var(--border-color, var(--ic-architectural-400));border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-slow);height:2.5rem;min-height:2.5rem;width:var(--input-width, 20rem);padding:var(--ic-space-1px);background-color:var(--input-bg-color, var(--ic-color-background-primary));box-sizing:border-box;fill:var(--ic-architectural-400);outline:none}ic-input-component-container.ic-input-component-container-full-width{width:100%}ic-input-component-container.ic-input-component-container-disabled,ic-input-component-container.ic-input-component-container-disabled:hover{border:var(--ic-border-width) dashed\n var(--border-color-disabled, var(--ic-color-border-neutral-disabled))}ic-input-component-container.ic-input-component-container-readonly,ic-input-component-container.ic-input-component-container-small.ic-input-component-container-readonly,ic-input-component-container.ic-input-component-container-large.ic-input-component-container-readonly{height:auto;background:transparent}ic-input-component-container.ic-input-component-container-readonly,ic-input-component-container.ic-input-component-container-readonly:hover{border:none;padding:0}ic-input-component-container.ic-input-component-container-error{border:var(--ic-space-xxxs) solid\n var(--border-color-error, var(--ic-color-border-error));padding:0}ic-input-component-container.ic-input-component-container-error:hover{border:var(--ic-space-xxxs) solid\n var(--border-color-error-hover, var(--ic-color-border-error-hover))}ic-input-component-container.ic-input-component-container-error:focus-within{border:var(--ic-space-xxxs) solid\n var(--border-color-error-pressed, var(--ic-color-border-error-pressed))}ic-input-component-container.ic-input-component-container-warning{border:var(--ic-space-xxxs) solid\n var(--border-color-warning, var(--ic-color-border-warning));padding:0}ic-input-component-container.ic-input-component-container-warning:hover{border:var(--ic-space-xxxs) solid\n var(--border-color-warning-hover, var(--ic-color-border-warning-hover))}ic-input-component-container.ic-input-component-container-warning:focus-within{border:var(--ic-space-xxxs) solid\n var(--border-color-warning-pressed, var(--ic-color-border-warning-pressed))}ic-input-component-container.ic-input-component-container-success{border:var(--ic-space-xxxs) solid\n var(--border-color-success, var(--ic-color-border-success));padding:0}ic-input-component-container.ic-input-component-container-success:hover{border:var(--ic-space-xxxs) solid\n var(--border-color-success-hover, var(--ic-color-border-success-hover))}ic-input-component-container.ic-input-component-container-success:focus-within{border:var(--ic-space-xxxs) solid\n var(--border-color-success-pressed, var(--ic-color-border-success-pressed))}ic-input-component-container.ic-input-component-container-small{height:var(--ic-space-xl);min-height:var(--ic-space-xl)}ic-input-component-container.ic-input-component-container-large{height:var(--ic-space-xxl);min-height:var(--ic-space-xxl)}ic-input-component-container.ic-input-component-container-multiline{height:auto}ic-input-component-container .icon-container{margin-top:var(--ic-space-xxs);margin-left:0.438rem;display:flex;align-items:center}ic-input-component-container.ic-input-component-container-multiline .icon-container,ic-input-component-container.ic-input-component-container-multiline.ic-input-component-container-small .icon-container{margin-top:0.375rem;display:block}ic-input-component-container.ic-input-component-container-readonly .icon-container{margin-left:-0.313rem}ic-input-component-container.ic-input-component-container-disabled ::-moz-placeholder{display:none}ic-input-component-container.ic-input-component-container-disabled ::placeholder{display:none}ic-input-component-container .inline-success{margin:var(--ic-space-xs) 0.375rem;display:flex;align-items:center}ic-input-component-container .inline-success>svg{fill:var(--ic-input-component-container-success-icon-inline-color);height:1.25rem;width:1.25rem}ic-input-component-container:hover{border:var(--ic-input-component-container-hover-border);border-color:var(--border-color-hover, var(--ic-color-border-neutral-hover));color:var(--ic-action-monochrome-hover-dark)}ic-input-component-container:focus{border:var(--ic-border-pressed);border-color:var(\n --border-color-pressed,\n var(--ic-color-border-neutral-pressed)\n )}.focus-indicator{display:flex;width:100%;margin:-0.125rem;padding:0.125rem;border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-fast)}.focus-indicator:focus-within,.focus-indicator-enabled{box-shadow:var(--ic-border-focus)}.focus-indicator.ic-input-component-container-dark:focus-within{box-shadow:var(--ic-border-focus)}@media (forced-colors: active){ic-input-component-container,.focus-indicator{transition:none}ic-input-component-container:focus-within{border:var(--ic-border-width) solid Highlight;outline:0.125rem solid Highlight}ic-input-component-container.ic-input-component-container-disabled,ic-input-component-container.ic-input-component-container-disabled:hover{border:var(--ic-border-width) dashed GrayText}}";const v=b;const g=class{constructor(t){i(this,t);this.disabled=false;this.fullWidth=false;this.multiLine=false;this.readonly=false;this.size="medium";this.validationInline=false;this.validationStatus=""}watchDisabledHandler(){o(this.disabled,this.el)}componentWillLoad(){o(this.disabled,this.el)}componentDidLoad(){this.hostMutationObserver=new MutationObserver((i=>r(i,"left-icon",this)));this.hostMutationObserver.observe(this.el,{childList:true})}render(){const{size:i,validationStatus:s,disabled:n,readonly:c,multiLine:o,fullWidth:r,validationInline:u}=this;return t(e,{key:"3349803b2fc3756e616a3e6e9f88439c3d360897",class:{[`ic-input-component-container-${i}`]:true,[`ic-input-component-container-${s}`]:s!==""&&!n&&!c,"ic-input-component-container-disabled":!!n,"ic-input-component-container-readonly":!!c,"ic-input-component-container-multiline":!!o,"ic-input-component-container-full-width":!!r},"aria-disabled":n?"true":null},t("div",{key:"bf85d48b1507e4c7d8394e067314e383e77ffb72",class:"focus-indicator"},a(this.el,"left-icon")&&t("div",{key:"7660d9c72526a8bf34e88488884933cc7a5a96cd",class:"icon-container"},t("slot",{key:"dc31f454f708ecbcf821cb94cf4d8b5b354d149f",name:"left-icon"})),t("slot",{key:"92265e4967394e33cdf8763bd8c8b433dbe0536e"}),u&&s===l.Success&&t("span",{key:"ecefbb2eaf920a2300bb9a30e20c18a86754fba0",class:"inline-success",innerHTML:h})))}get el(){return s(this)}static get watchers(){return{disabled:["watchDisabledHandler"]}}};g.style=v;const x="ic-input-container .component-container{display:flex;flex-direction:column}";const y=x;const w=class{constructor(t){i(this,t);this.disabled=false;this.readonly=false}render(){return t(e,{key:"b990f9f26644a727f8d0f086c88dfbb18528ca1a"},t("div",{key:"32d9cce26c3e720e2d3343dc03fc64cc9436621a",class:{["component-container"]:true,["disabled"]:!!this.disabled,["readonly"]:!!this.readonly}},t("slot",{key:"65cfdbd533ceef8f6cfbdfa8df68789ae5f39804"})))}};w.style=y;const k='html.sc-ic-menu{line-height:1.15;-webkit-text-size-adjust:100%}body.sc-ic-menu{margin:0}main.sc-ic-menu{display:block}h1.sc-ic-menu{font-size:2em;margin:0.67em 0}hr.sc-ic-menu{box-sizing:content-box;height:0;overflow:visible}pre.sc-ic-menu{font-family:monospace, monospace;font-size:1em}a.sc-ic-menu{background-color:transparent}abbr[title].sc-ic-menu{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b.sc-ic-menu,strong.sc-ic-menu{font-weight:bolder}code.sc-ic-menu,kbd.sc-ic-menu,samp.sc-ic-menu{font-family:monospace, monospace;font-size:1em}small.sc-ic-menu{font-size:80%}sub.sc-ic-menu,sup.sc-ic-menu{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub.sc-ic-menu{bottom:-0.25em}sup.sc-ic-menu{top:-0.5em}img.sc-ic-menu{border-style:none}button.sc-ic-menu,input.sc-ic-menu,optgroup.sc-ic-menu,select.sc-ic-menu,textarea.sc-ic-menu{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button.sc-ic-menu,input.sc-ic-menu{overflow:visible}button.sc-ic-menu,select.sc-ic-menu{text-transform:none}button.sc-ic-menu,[type="button"].sc-ic-menu,[type="reset"].sc-ic-menu,[type="submit"].sc-ic-menu{-webkit-appearance:button}button.sc-ic-menu::-moz-focus-inner,[type="button"].sc-ic-menu::-moz-focus-inner,[type="reset"].sc-ic-menu::-moz-focus-inner,[type="submit"].sc-ic-menu::-moz-focus-inner{border-style:none;padding:0}button.sc-ic-menu:-moz-focusring,[type="button"].sc-ic-menu:-moz-focusring,[type="reset"].sc-ic-menu:-moz-focusring,[type="submit"].sc-ic-menu:-moz-focusring{outline:1px dotted ButtonText}fieldset.sc-ic-menu{padding:0.35em 0.75em 0.625em}legend.sc-ic-menu{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress.sc-ic-menu{vertical-align:baseline}textarea.sc-ic-menu{overflow:auto}[type="checkbox"].sc-ic-menu,[type="radio"].sc-ic-menu{box-sizing:border-box;padding:0}[type="number"].sc-ic-menu::-webkit-inner-spin-button,[type="number"].sc-ic-menu::-webkit-outer-spin-button{height:auto}[type="search"].sc-ic-menu{-webkit-appearance:textfield;outline-offset:-2px}[type="search"].sc-ic-menu::-webkit-search-decoration{-webkit-appearance:none}.sc-ic-menu::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details.sc-ic-menu{display:block}summary.sc-ic-menu{display:list-item}template.sc-ic-menu{display:none}[hidden].sc-ic-menu{display:none}html.sc-ic-menu,body.sc-ic-menu,div.sc-ic-menu,span.sc-ic-menu,applet.sc-ic-menu,object.sc-ic-menu,iframe.sc-ic-menu,h1.sc-ic-menu,h2.sc-ic-menu,h3.sc-ic-menu,h4.sc-ic-menu,h5.sc-ic-menu,h6.sc-ic-menu,p.sc-ic-menu,blockquote.sc-ic-menu,pre.sc-ic-menu,a.sc-ic-menu,abbr.sc-ic-menu,acronym.sc-ic-menu,address.sc-ic-menu,big.sc-ic-menu,cite.sc-ic-menu,code.sc-ic-menu,del.sc-ic-menu,dfn.sc-ic-menu,em.sc-ic-menu,img.sc-ic-menu,ins.sc-ic-menu,kbd.sc-ic-menu,q.sc-ic-menu,s.sc-ic-menu,samp.sc-ic-menu,small.sc-ic-menu,strike.sc-ic-menu,strong.sc-ic-menu,sub.sc-ic-menu,sup.sc-ic-menu,tt.sc-ic-menu,var.sc-ic-menu,b.sc-ic-menu,u.sc-ic-menu,i.sc-ic-menu,center.sc-ic-menu,dl.sc-ic-menu,dt.sc-ic-menu,dd.sc-ic-menu,ol.sc-ic-menu,ul.sc-ic-menu,li.sc-ic-menu,fieldset.sc-ic-menu,form.sc-ic-menu,label.sc-ic-menu,legend.sc-ic-menu,table.sc-ic-menu,caption.sc-ic-menu,tbody.sc-ic-menu,tfoot.sc-ic-menu,thead.sc-ic-menu,tr.sc-ic-menu,th.sc-ic-menu,td.sc-ic-menu,article.sc-ic-menu,aside.sc-ic-menu,canvas.sc-ic-menu,details.sc-ic-menu,embed.sc-ic-menu,figure.sc-ic-menu,figcaption.sc-ic-menu,footer.sc-ic-menu,header.sc-ic-menu,hgroup.sc-ic-menu,menu.sc-ic-menu,nav.sc-ic-menu,output.sc-ic-menu,ruby.sc-ic-menu,section.sc-ic-menu,summary.sc-ic-menu,time.sc-ic-menu,mark.sc-ic-menu,audio.sc-ic-menu,video.sc-ic-menu{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{transition:max-height var(--ic-transition-duration-slow)}}.sc-ic-menu-h{max-height:0;width:var(--menu-width, var(--input-width, 20rem));color:var(--menu-item-text-color, var(--ic-menu-list-option-text-color));--ic-typography-color:var(\n --menu-item-text-color,\n var(--ic-menu-list-option-text-color)\n );background-color:var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );position:relative;z-index:var(--ic-z-index-menu);box-sizing:border-box;box-shadow:var(--ic-elevation-overlay);border-radius:var(--ic-border-radius)}.ic-menu-open.sc-ic-menu-h:not(.ic-menu-no-focus):focus-within{box-shadow:var(--ic-border-focus);outline:var(--ic-hc-focus-outline)}.ic-select-select-all-focused.sc-ic-menu-h{box-shadow:var(--ic-elevation-overlay) !important}#retry-button.sc-ic-menu::part(button){height:var(--ic-space-lg)}.small.sc-ic-menu #retry-button.sc-ic-menu::part(button){height:var(--ic-space-md)}.on-dialog.sc-ic-menu-h{inset:auto !important}.menu.sc-ic-menu{text-decoration:none;list-style-type:none;border-radius:1px;background-color:var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );visibility:hidden;max-height:0;overflow-y:hidden}.menu.sc-ic-menu:has(+.option-bar).sc-ic-menu{border-radius:0 0 1px 1px}.menu-scroll.sc-ic-menu{overflow-y:auto}.menu.sc-ic-menu:focus-visible{outline:none}.ic-menu-open.sc-ic-menu-h{max-height:none;display:flex;flex-direction:column-reverse;border:var(--ic-border-width) solid\n var(--menu-border-color, var(--ic-menu-border-color));transition:box-shadow var(--ic-easing-transition-fast)}.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{visibility:visible;max-height:calc(var(--ic-space-xl) * 10 + var(--ic-space-xxxs))}.ic-menu-open.sc-ic-menu-h .option-bar.sc-ic-menu{visibility:visible}.ic-menu-open.sc-ic-menu-h .select-all-button.sc-ic-menu{display:block}.ic-menu-full-width.sc-ic-menu-h{width:100%}.option.sc-ic-menu{padding:var(--ic-space-xs) calc(var(--ic-space-xs) - var(--ic-space-1px));cursor:pointer;display:flex;align-items:center}.loading-option.sc-ic-menu p.sc-ic-menu{margin-bottom:0 !important}.option.sc-ic-menu:not(.loading-option){justify-content:space-between}.ic-menu-small.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-xxs) calc(var(--ic-space-xs) - var(--ic-space-1px))}.ic-menu-large.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))}.option.sc-ic-menu:last-child{border-radius:0 0 1px 1px}.sc-ic-menu:not(.menu:has(+.option-bar)).sc-ic-menu .option.sc-ic-menu:first-child{border-radius:1px 1px 0 0}.option.sc-ic-menu:not(.disabled-option):hover{background-color:var(--ic-menu-list-option-hover-background-color)}.option.sc-ic-menu:not(.disabled-option):active{background-color:var(--ic-menu-list-option-pressed-background-color)}.option.sc-ic-menu:focus-visible{outline:var(--ic-hc-focus-outline)}.option.sc-ic-menu:not(.disabled-option) .option-description.sc-ic-menu{--ic-typography-color:var(\n --menu-item-desc-text-color,\n var(--ic-menu-list-option-description-text-color)\n )}.option.sc-ic-menu .option-label.sc-ic-menu{display:flex;flex-direction:row;align-items:top}.option.sc-ic-menu .option-label.sc-ic-menu ic-typography.sc-ic-menu{max-width:100%;word-wrap:break-word}.option.sc-ic-menu .option-element.sc-ic-menu{margin-top:var(--ic-space-xxs)}.option.sc-ic-menu .option-icon.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);margin-top:var(--ic-space-xxs);margin-right:var(--ic-space-xxxs)}.option-text-container.sc-ic-menu{pointer-events:none;width:100%}.option-text-container.show-check-icon.sc-ic-menu{width:calc(var(--ic-space-lg) * 10 + var(--ic-space-xl))}.option.loading-option.sc-ic-menu .option-text-container.sc-ic-menu{margin-left:calc(var(--ic-space-xs) + var(--ic-space-xxxs));color:var(--ic-menu-loading-list-option-text-color);--ic-typography-color:var(--ic-menu-loading-list-option-text-color)}.error-icon-svg.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);fill:var(--ic-atoms-status-icon-error);align-self:center;display:flex;margin-right:calc(var(--ic-space-xxs) * 1.2)}.loading-error-info.sc-ic-menu{display:flex}.check-icon.sc-ic-menu{height:var(--ic-space-lg);min-width:var(--ic-space-lg);width:var(--ic-space-lg);margin-left:var(--ic-space-xs);pointer-events:none}.focused-option.sc-ic-menu .check-icon.sc-ic-menu *.sc-ic-menu{fill:currentcolor}.option-group-title.sc-ic-menu{padding:var(--ic-space-lg) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xs);--ic-typography-color:var(--ic-menu-option-group-label-text-color)}.ic-menu-small.sc-ic-menu-h .option-group-title.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xxs)}.last-recommended-option.sc-ic-menu{border-bottom:var(--ic-menu-last-recommended-option-border)}.disabled-option.sc-ic-menu{color:var(--ic-atoms-list-option-text-disabled-light);--ic-typography-color:var(--ic-atoms-list-option-text-disabled-light);cursor:default;pointer-events:none}.focused-option.sc-ic-menu,.focused-option.sc-ic-menu .option-description.sc-ic-menu{background-color:var(--ic-color-focus-inner) !important;color:var(--ic-atoms-list-option-text-focused-light) !important;--ic-typography-color:var(\n --ic-atoms-list-option-text-focused-light\n ) !important}.no-results.sc-ic-menu-h li.sc-ic-menu{cursor:no-drop}.no-results.sc-ic-menu-h li.sc-ic-menu:hover{background-color:transparent}.option-bar.sc-ic-menu{padding:var(--ic-space-xxs) var(--ic-space-xs);display:flex;align-items:center;justify-content:space-between;background-color:var(--ic-menu-option-bar-background-color);visibility:hidden;border-bottom:var(--ic-border-width) solid\n var(--ic-menu-option-bar-divider-color);border-radius:1px 1px 0 0}.option-bar.sc-ic-menu p.sc-ic-menu{margin-bottom:0 !important}.ic-menu-large.sc-ic-menu-h .option-bar.sc-ic-menu{padding:var(--ic-space-xs)}.select-all-button.sc-ic-menu{display:none}.select-all-button.sc-ic-menu:focus{z-index:calc(var(--ic-z-index-menu) + 1)}@media (forced-colors: active){.focused-option.sc-ic-menu:focus{outline:none;border:0.125rem solid transparent}.disabled-option.sc-ic-menu{color:GrayText;--ic-typography-color:GrayText}}';const z=k;const L=class{constructor(e){i(this,e);this.icClear=n(this,"icClear",7);this.menuKeyPress=n(this,"menuKeyPress",7);this.menuOptionId=n(this,"menuOptionId",7);this.menuOptionSelect=n(this,"menuOptionSelect",7);this.menuOptionSelectAll=n(this,"menuOptionSelectAll",7);this.menuStateChange=n(this,"menuStateChange",7);this.retryButtonClicked=n(this,"retryButtonClicked",7);this.timeoutBlur=n(this,"timeoutBlur",7);this.ungroupedOptionsSet=n(this,"ungroupedOptionsSet",7);this.ACTIVE_DESCENDANT="aria-activedescendant";this.CLEAR_BUTTON_ID="clear-button";this.SEARCH_BAR_TAG="IC-SEARCH-BAR";this.disabledOptionSelected=false;this.hasPreviouslyBlurred=false;this.hasTimedOut=false;this.isLoading=false;this.isMultiSelect=false;this.isSearchBar=false;this.isSearchableSelect=false;this.lastOptionSelected=null;this.lastOptionFocused=null;this.multiOptionClicked=null;this.preventClickOpen=false;this.preventMenuFocus=false;this.shiftPressed=false;this.ungroupedOptions=[];this.focusFromSearchKeypress=false;this.initialOptionsListRender=false;this.keyboardNav=false;this.preventIncorrectTabOrder=false;this.activationType="automatic";this.autofocusOnSelected=true;this.closeOnSelect=true;this.fullWidth=false;this.labelField="label";this.searchMode="navigation";this.selectOnEnter=false;this.size="medium";this.valueField="value";this.handleClearListener=()=>{this.optionHighlighted=""};this.handleSubmitSearch=()=>{const i=this.options.findIndex((i=>i[this.valueField]===this.optionHighlighted));this.setInputValue(i)};this.handleMenuChange=(i,t)=>{var e;this.menuStateChange.emit({open:i,focusInput:t});if(!i){if(t!==false){(e=this.inputEl)===null||e===void 0?void 0:e.focus();this.preventClickOpen=false}if(this.isMultiSelect){this.optionHighlighted=undefined;this.multiOptionClicked=null}}};this.setNextOptionValue=i=>{if(this.ungroupedOptions[i+1]){this.menuOptionSelect.emit({value:this.ungroupedOptions[i+1][this.valueField],optionId:this.getOptionId(this.ungroupedOptions[i+1][this.valueField])})}else{this.menuOptionSelect.emit({value:this.ungroupedOptions[0][this.valueField],optionId:this.getOptionId(this.ungroupedOptions[0][this.valueField])})}};this.setPreviousOptionValue=i=>{if(this.ungroupedOptions[i-1]){this.menuOptionSelect.emit({value:this.ungroupedOptions[i-1][this.valueField],optionId:this.getOptionId(this.ungroupedOptions[i-1][this.valueField])})}else{this.menuOptionSelect.emit({value:this.ungroupedOptions[this.ungroupedOptions.length-1][this.valueField],optionId:this.getOptionId(this.ungroupedOptions[this.ungroupedOptions.length-1][this.valueField])})}};this.getParentEl=i=>{if(i.tagName===this.SEARCH_BAR_TAG){this.isSearchBar=true}else if(i.tagName==="IC-SELECT"){if(i.getAttribute("searchable")!==null&&i.getAttribute("searchable")!==undefined){this.isSearchableSelect=true}else if(i.getAttribute("multiple")!==null&&i.getAttribute("multiple")!==undefined){this.isMultiSelect=true}}};this.arrowBehaviour=i=>{i.preventDefault();this.handleMenuChange(true)};this.getMenuOptions=()=>this.isSearchBar?this.options:this.ungroupedOptions;this.setHighlightedOption=i=>{const t=this.getMenuOptions();t[i]&&!t[i].timedOut&&(this.optionHighlighted=t[i][this.valueField]||undefined)};this.autoSetInputValueKeyboardOpen=i=>{const t=this.ungroupedOptions.findIndex((i=>i[this.valueField]===this.value));this.keyboardNav=false;switch(i.key){case"ArrowDown":this.keyboardNav=true;this.arrowBehaviour(i);this.setNextOptionValue(t);break;case"ArrowUp":this.keyboardNav=true;this.arrowBehaviour(i);this.setPreviousOptionValue(t);break;case" ":case"Enter":if(i.target.id!==this.CLEAR_BUTTON_ID){this.handleMenuChange(true)}break}};this.selectHighlightedOption=(i,t)=>{if(!this.isLoading&&!this.hasTimedOut){this.keyboardNav=true}const e=this.isSearchBar||this.isSearchableSelect||this.open;if(e){if(t>=0){if(i[t]!==undefined){if(this.isSearchBar&&i[t].disabled===true){this.disabledOptionSelected=true}else{this.setInputValue(t)}}}else{this.setInputValue(t)}}else{this.handleMenuChange(true)}};this.isOptionSelected=i=>{const t=this.getMenuOptions();return this.value?this.value.includes(t[i][this.valueField]):false};this.deselectSelectedOptions=i=>{const t=this.getMenuOptions();if(this.value){const e=this.value.map((i=>t.findIndex((t=>t[this.valueField]===i))));e.forEach((t=>!i.includes(t)&&this.setInputValue(t)))}};this.manualSetInputValueKeyboardOpen=i=>{const t=this.getMenuOptions();const e=i.shiftKey||i.metaKey||i.ctrlKey;const s=this.getOptionHighlightedIndex();const n=t.findIndex((i=>i[this.valueField]===this.multiOptionClicked));const c=i=>{var t;return(t=Array.from(this.host.querySelectorAll("li"))[i])===null||t===void 0?void 0:t.id};if(i.key===" "&&this.isMultiSelect){this.handleOptionSelect(i,s)}else{switch(i.key){case"ArrowDown":this.keyboardNav=true;this.arrowBehaviour(i);if(this.multiOptionClicked){this.setHighlightedOption(n);this.multiOptionClicked=null}else{this.handleSingleShiftSelect(i,s,t);if(s<t.length-1){this.setHighlightedOption(s+1);this.menuOptionId.emit({optionId:c(s+1)});this.handleSingleShiftSelect(i,s+1,t)}else{this.setHighlightedOption(0);this.menuOptionId.emit({optionId:c(0)});this.handleSingleShiftSelect(i,0,t)}if(this.isMultiSelect&&this.shiftPressed){this.deselectSelectedOptions([s,this.getOptionHighlightedIndex()]);this.shiftPressed=false}}this.lastOptionFocused=this.getOptionHighlightedIndex();this.preventIncorrectTabOrder=false;this.focusFromSearchKeypress=false;break;case"ArrowUp":this.keyboardNav=true;this.arrowBehaviour(i);if(this.multiOptionClicked){this.setHighlightedOption(n);this.multiOptionClicked=null}else{this.handleSingleShiftSelect(i,s,t);if(s<=0||s>t.length+1){this.setHighlightedOption(t.length-1);this.menuOptionId.emit({optionId:c(t.length-1)});this.handleSingleShiftSelect(i,t.length-1,t)}else{this.setHighlightedOption(s-1);this.menuOptionId.emit({optionId:c(s-1)});this.handleSingleShiftSelect(i,s-1,t)}if(this.isMultiSelect&&this.shiftPressed){this.deselectSelectedOptions([s,this.getOptionHighlightedIndex()]);this.shiftPressed=false}}this.lastOptionFocused=this.getOptionHighlightedIndex();this.preventIncorrectTabOrder=false;this.focusFromSearchKeypress=false;break;case"Home":{const t=0;this.keyboardNav=true;i.preventDefault();this.arrowBehaviour(i);this.setHighlightedOption(t);this.menuOptionId.emit({optionId:c(t)});if(i.shiftKey&&i.ctrlKey){this.handleMultipleShiftSelect(t)}this.lastOptionFocused=t;this.lastOptionSelected=t;break}case"End":{const e=t.length-1;this.keyboardNav=true;i.preventDefault();this.arrowBehaviour(i);this.setHighlightedOption(e);this.menuOptionId.emit({optionId:c(e)});if(i.shiftKey&&i.ctrlKey){this.handleMultipleShiftSelect(e)}this.lastOptionFocused=e;this.lastOptionSelected=e;break}case" ":if(!e){this.keyboardNav=false}if(this.isSearchBar||this.isSearchableSelect){break}else{if(i.target.id!==this.CLEAR_BUTTON_ID){this.handleMenuChange(true)}}break;case"Enter":i.preventDefault();if(!e){this.keyboardNav=false}this.handleOptionSelect(i,s);break;case"Escape":if(this.open){i.stopImmediatePropagation()}this.handleMenuChange(false);this.menuOptionId.emit({optionId:undefined});break;case"a":if(u()&&i.metaKey||!u()&&i.ctrlKey){this.emitSelectAllEvents();this.lastOptionFocused=null;this.lastOptionSelected=null}break;case"Shift":case"Tab":if(i.key==="Shift"){this.shiftPressed=true}if(this.isSearchBar){this.keyboardNav=true}if(this.isMultiSelect){if(this.open&&!i.shiftKey&&this.selectAllButton){i.preventDefault();this.selectAllButton.focus();this.preventMenuFocus=true;this.preventClickOpen=true;this.optionHighlighted=undefined}}else{this.preventIncorrectTabOrder=true}break;default:if(!e){this.keyboardNav=false}this.focusOnSearchOrSelectInput(t,s)}}};this.setInputValue=i=>{const t=this.getMenuOptions();if(t[i]!==undefined){this.menuOptionSelect.emit({value:t[i][this.valueField]});if(this.closeOnSelect){this.optionHighlighted=undefined;this.menuOptionId.emit({optionId:undefined})}}if(this.closeOnSelect){if(!this.hasTimedOut){this.handleMenuChange(false)}else{this.parentEl.setFocus()}}};this.handleOptionClick=i=>{const{value:t,label:e}=i.target.dataset;if(this.isMultiSelect){const e=this.getMenuOptions();const s=e.findIndex((i=>i.value===t));this.handleOptionSelect(i,s,true);this.multiOptionClicked=t||null}else{this.menuOptionSelect.emit({value:t,label:e});this.handleMenuChange(false)}this.optionHighlighted=undefined};this.handleRetry=()=>{this.retryButtonClicked.emit({value:this.value})};this.handleRetryKeyDown=i=>{if(i.key==="Enter"||i.key===" "){i.preventDefault();this.retryButtonClicked.emit({value:this.value,keyPressed:i.key})}};this.handleBlur=i=>{var t,e,s,n;if(i.relatedTarget!==this.inputEl){if(i.relatedTarget===this.selectAllButton){(t=this.menu)===null||t===void 0?void 0:t.removeAttribute(this.ACTIVE_DESCENDANT)}if(!(((e=this.menu)===null||e===void 0?void 0:e.contains(i.relatedTarget))||i.relatedTarget===this.selectAllButton)){this.handleMenuChange(false,this.hasPreviouslyBlurred);(s=this.menu)===null||s===void 0?void 0:s.removeAttribute(this.ACTIVE_DESCENDANT);this.lastOptionFocused=null;this.lastOptionSelected=null}}else{this.handleMenuChange(false);this.preventClickOpen=true;(n=this.menu)===null||n===void 0?void 0:n.removeAttribute(this.ACTIVE_DESCENDANT);this.lastOptionFocused=null;this.lastOptionSelected=null}if(!this.isSearchBar)this.hasPreviouslyBlurred=!!i.relatedTarget};this.handleMouseDown=i=>{i.preventDefault()};this.handleMenuKeyDown=i=>{if(this.activationType==="automatic"){this.autoSetValueOnMenuKeyDown(i)}else if(this.activationType==="manual"&&!this.isSearchBar){this.manualSetInputValueKeyboardOpen(i)}};this.handleMenuKeyUp=i=>{if(i.key==="Tab"&&i.shiftKey){this.preventClickOpen=false}if(i.key==="Enter"&&this.disabledOptionSelected){this.disabledOptionSelected=false;i.stopImmediatePropagation()}if(i.key==="Shift"){this.shiftPressed=false}};this.handleSelectAllClick=()=>{var i;this.keyboardNav=false;(i=this.menu)===null||i===void 0?void 0:i.focus();this.emitSelectAllEvents();this.lastOptionFocused=null;this.lastOptionSelected=null};this.handleSelectAllBlur=i=>{var t;this.host.classList.remove("ic-select-select-all-focused");if(!((t=this.menu)===null||t===void 0?void 0:t.contains(i.relatedTarget))){this.handleMenuChange(false,false)}};this.handleSelectAllFocus=()=>{this.host.classList.add("ic-select-select-all-focused");this.lastOptionFocused=null;this.lastOptionSelected=null};this.handleSelectAllMouseDown=i=>{i.preventDefault()};this.handleSingleShiftSelect=(i,t,e)=>{if(this.isMultiSelect&&i.shiftKey&&!this.isOptionSelected(t)){this.selectHighlightedOption(e,t);this.lastOptionSelected=t}};this.handleMultipleShiftSelect=(i,t=false,e=null)=>{this.shiftPressed=false;const s=e===null?this.getFirstOptionInSelection(t):e;if(s!==null){const t=[];if(s<i){for(let e=s;e<i+1;e++){t.push(e)}}else{for(let e=s;e>i-1;e--){t.push(e)}}t.forEach((i=>!this.isOptionSelected(i)&&this.setInputValue(i)));this.deselectSelectedOptions(t)}};this.handleOptionSelect=(i,t,e=false)=>{const s=this.getMenuOptions();const n=this.getFirstOptionInSelection(e);if(i.shiftKey&&n!==null){this.handleMultipleShiftSelect(t,e,n)}else{this.selectHighlightedOption(s,t)}this.lastOptionFocused=t;this.lastOptionSelected=t};this.getFirstOptionInSelection=i=>i&&this.lastOptionFocused!==null?this.lastOptionFocused:this.lastOptionSelected!==null?this.lastOptionSelected:null;this.emitSelectAllEvents=()=>{var i,t;this.menuOptionSelectAll.emit({select:!this.value||!(((i=this.value)===null||i===void 0?void 0:i.length)===this.ungroupedOptions.length)});if(((t=this.value)===null||t===void 0?void 0:t.length)===this.ungroupedOptions.length){this.icClear.emit()}};this.emitMenuKeyPress=(i,t)=>{this.menuKeyPress.emit({isNavKey:i,key:t})};this.autoSetValueOnMenuKeyDown=i=>{var t,e;i.cancelBubble=true;const s=this.ungroupedOptions.findIndex((i=>i[this.valueField]===this.value));const n=!!this.inputEl&&this.inputEl.tagName==="INPUT";this.keyboardNav=false;switch(i.key){case" ":i.preventDefault();break;case"ArrowUp":if(!this.hasTimedOut){i.preventDefault();this.setPreviousOptionValue(s);this.keyboardNav=true}break;case"ArrowDown":if(!this.hasTimedOut){i.preventDefault();this.setNextOptionValue(s);this.keyboardNav=true}break;case"Home":this.menuOptionSelect.emit({value:this.ungroupedOptions[0][this.valueField]});this.keyboardNav=true;break;case"End":this.menuOptionSelect.emit({value:this.ungroupedOptions[this.ungroupedOptions.length-1][this.valueField]});this.keyboardNav=true;break;case"Enter":!this.hasTimedOut&&this.handleMenuChange(false);break;case"Escape":this.handleMenuChange(false);break;case"Backspace":if(n){(t=this.inputEl)===null||t===void 0?void 0:t.focus()}break;case"Shift":break;default:if(n&&i.key!=="Tab"&&!this.hasTimedOut){(e=this.inputEl)===null||e===void 0?void 0:e.focus()}if(i.key.length===1){this.keyboardNav=true}break}this.emitMenuKeyPress(this.keyboardNav,i.key)};this.getOptionId=i=>`${this.menuId}-${i}`;this.getOptionAriaLabel=(i,t)=>{let e=i[this.labelField];if(i.description){e=`${e}, ${i.description}`}if(i.element){e=`${e}, ${i.element.ariaLabel}`}if(t){return`${e}, ${t[this.labelField]} group`}else{return e}};this.getSortedOptions=i=>{let t=[];if(i.sort){t=i.sort(((i,t)=>i.recommended&&!t.recommended?-1:0))}return t};this.getOptionHighlightedIndex=()=>{const i=this.getMenuOptions();return i.findIndex((i=>i[this.valueField]===this.optionHighlighted))};this.isManualMode=this.activationType==="manual";this.scrollToSelected=i=>{var t;const e=this.selectOnEnter?this.host.querySelector(`li[data-value="${this.optionHighlighted}"]`):i.querySelector(".option[aria-selected='true']");if(e){const s=e.offsetTop+e.offsetHeight;if(s>i.scrollTop+i.offsetHeight||s<i.scrollTop+i.offsetHeight){i.scrollTop=e.offsetTop}(t=this.menu)===null||t===void 0?void 0:t.setAttribute(this.ACTIVE_DESCENDANT,e.id);e.focus()}};this.loadUngroupedOptions=()=>{if(this.options.length>0&&this.options.map){this.options.map((i=>{if(i.children){i.children.map((i=>!i.disabled&&this.ungroupedOptions.push(i)))}else if(!i.disabled){this.ungroupedOptions.push(i)}}))}this.ungroupedOptions=this.getSortedOptions(this.ungroupedOptions);this.ungroupedOptionsSet.emit({options:this.ungroupedOptions})};this.setMenuScrollbar=()=>{var i;let t=0;this.host.querySelectorAll(".option, .option-group-title").forEach((i=>t+=i.clientHeight));if(t>=320){(i=this.menu)===null||i===void 0?void 0:i.classList.add("menu-scroll")}};this.handleTimeoutBlur=i=>{this.timeoutBlur.emit({ev:i})};this.optionContent=(i,e)=>{var s;const n=!!i[this.valueField]&&!!this.value&&e&&((s=this.parentEl)===null||s===void 0?void 0:s.tagName)!==this.SEARCH_BAR_TAG;return t(c,null,i.loading&&t("ic-loading-indicator",{size:"icon"}),t("div",{class:{"option-text-container":true,"show-check-icon":n}},t("div",{class:"option-label"},i.icon&&t("div",{class:"option-icon",innerHTML:i.icon,"aria-hidden":"true"}),t("ic-typography",{variant:"body","aria-hidden":"true"},i[this.labelField])),i.description&&t("ic-typography",{id:`${this.getOptionId(i[this.valueField])}-description`,class:"option-description",variant:"caption","aria-hidden":"true"},t("p",null,i.description)),i.element&&t("div",{class:"option-element",innerHTML:i.element.component,"aria-hidden":"true"})),n&&t("span",{class:"check-icon",innerHTML:m}))};this.displayOption=(i,e,s,n)=>{const{open:o,keyboardNav:r,isManualMode:a,initialOptionsListRender:l,optionHighlighted:h,options:u}=this;return t("li",{id:this.getOptionId(i[this.valueField]),class:{option:true,"focused-option":a?(r||l)&&i[this.valueField]===h:r&&e,"last-recommended-option":!!(i.recommended&&u[s+1]&&!u[s+1].recommended),"disabled-option":!!i.disabled,"loading-option":!!i.loading,timeout:!!i.timedOut},role:"option",tabindex:o&&(e||i[this.valueField]===h)&&r?"0":"-1","aria-label":this.getOptionAriaLabel(i,n),"aria-selected":e?"true":"false","aria-disabled":i.disabled?"true":"false",onClick:!i.timedOut&&!i.loading?this.handleOptionClick:undefined,onBlur:this.handleBlur,onMouseDown:this.handleMouseDown,"data-value":i[this.valueField],"data-label":i[this.labelField]},i.timedOut?t(c,null,t("div",{class:"loading-error-info"},t("svg",{class:"error-icon-svg","aria-labelledby":"error-title",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#000000"},t("title",{id:"error-title"},"Error"),t("g",{id:"close-octagon"},t("path",{id:"Vector",d:"M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41"}))),t("ic-typography",{variant:"label"},i[this.labelField])),t("ic-button",{size:"small",variant:"tertiary",onClick:this.handleRetry,onKeyDown:this.handleRetryKeyDown,onBlur:this.handleTimeoutBlur,id:"retry-button"},"Retry")):this.optionContent(i,e))}}watchOpenHandler(){if(!this.open&&this.popperInstance){this.popperInstance.destroy();this.popperInstance=null}}watchOptionsHandler(i){this.hasTimedOut=i.some((i=>i.timedOut));this.isLoading=i.some((i=>i.loading));this.ungroupedOptions=[];this.loadUngroupedOptions()}connectedCallback(){if(this.parentEl)this.getParentEl(this.parentEl);if(this.isSearchBar){if(this.searchMode==="navigation")this.setHighlightedOption(0);this.initialOptionsListRender=true}}disconnectedCallback(){var i,t,e;(i=this.popperInstance)===null||i===void 0?void 0:i.destroy();(t=this.parentEl)===null||t===void 0?void 0:t.removeEventListener("icClear",this.handleClearListener);(e=this.parentEl)===null||e===void 0?void 0:e.removeEventListener("icSubmitSearch",this.handleSubmitSearch)}componentWillLoad(){var i,t,e,s;this.loadUngroupedOptions();(i=this.parentEl)===null||i===void 0?void 0:i.addEventListener("icClear",this.handleClearListener);(t=this.parentEl)===null||t===void 0?void 0:t.addEventListener("icSubmitSearch",this.handleSubmitSearch);this.hasTimedOut=(e=this.options)===null||e===void 0?void 0:e.some((i=>i.timedOut));this.isLoading=(s=this.options)===null||s===void 0?void 0:s.some((i=>i.loading))}componentDidLoad(){if(this.isSearchBar&&this.parentEl.disableAutoFiltering){this.focusFromSearchKeypress=true}d([{prop:this.open,propName:"open"},{prop:this.options,propName:"options"},{prop:this.menuId,propName:"menu-id"},{prop:this.inputLabel,propName:"input-label"}],"Menu")}componentDidUpdate(){const i=this.options.some((i=>i[this.valueField]===this.value));if(this.menu&&this.open&&this.options.length!==0&&!this.preventMenuFocus){if(this.value&&this.keyboardNav&&i&&this.autofocusOnSelected&&!this.isSearchableSelect){this.scrollToSelected(this.menu)}else if(this.selectOnEnter){this.menu.focus()}else if(!!this.optionHighlighted&&!this.focusFromSearchKeypress&&!this.preventIncorrectTabOrder){const i=this.host.querySelector(`li[data-value="${this.optionHighlighted}"]`);if(i){this.menu.setAttribute(this.ACTIVE_DESCENDANT,i.id);i.focus()}}else if(this.inputEl&&this.inputEl.tagName!=="INPUT"){this.menu.focus()}}if(this.menu&&this.open&&!this.value&&this.selectOnEnter){this.scrollToSelected(this.menu)}this.preventMenuFocus=false}componentDidRender(){if(this.open&&!this.popperInstance&&this.anchorEl){this.initPopperJs(this.anchorEl)}if(this.open&&!!this.options.length){this.setMenuScrollbar()}}async handleClickOpen(){if(!this.preventClickOpen){this.menuStateChange.emit({open:!this.open});this.keyboardNav=false}this.preventClickOpen=false}async handleKeyboardOpen(i){if(this.activationType==="automatic"){this.autoSetInputValueKeyboardOpen(i)}else{this.manualSetInputValueKeyboardOpen(i)}}async handleSetFirstOption(){this.setHighlightedOption(0)}async initPopperJs(i){this.popperInstance=f(i,this.host,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,7]}},{name:"flip",options:{fallbackPlacements:["top-start"],rootBoundary:"viewport"}}]})}focusOnSearchOrSelectInput(i,t){if(!i[t])return;if(this.isSearchBar){this.parentEl.setFocus();if(this.searchMode==="navigation")this.setHighlightedOption(0)}if(this.isSearchableSelect){this.parentEl.setFocus()}this.focusFromSearchKeypress=true}render(){const{inputLabel:i,options:s,menuId:n,value:c,fullWidth:o,hasTimedOut:r,isLoading:a,size:l,open:h,inputEl:u,keyboardNav:d,parentEl:m,SEARCH_BAR_TAG:f}=this;const b=`${(c===null||c===void 0?void 0:c.length)===this.ungroupedOptions.length?"Clear":"Select"} all`;const v=this.host.classList.contains("no-results");return t(e,{key:"2468ababde479fb9a3c03b6148f7115589d4f8e3",class:{"ic-menu-full-width":!!o,"ic-menu-no-focus":(u===null||u===void 0?void 0:u.tagName)==="INPUT"&&(m===null||m===void 0?void 0:m.tagName)!==f||r||a,[`ic-menu-${l}`]:true,"ic-menu-open":h&&s.length!==0,"ic-menu-multiple":this.isMultiSelect}},s.length!==0&&t("ul",{key:"961b191dcffc99d79159937780d31ae783c6a9a0",id:n,class:"menu",role:"listbox","aria-label":`${i} pop-up`,"aria-multiselectable":this.isMultiSelect?"true":"false",tabindex:h&&!d&&((u===null||u===void 0?void 0:u.tagName)!=="INPUT"||(m===null||m===void 0?void 0:m.tagName)===f)?"0":"-1",ref:i=>this.menu=i,onKeyDown:this.handleMenuKeyDown,onKeyUp:this.handleMenuKeyUp,onBlur:this.handleBlur},this.getSortedOptions(s).map(((i,e)=>{if(i.children){if(i.children.length>0){return t("div",null,t("ic-typography",{class:"option-group-title",role:"presentation",variant:"subtitle-small"},t("p",null,i[this.labelField])),i.children.map((t=>t.label&&this.displayOption(t,this.isMultiSelect?c===null||c===void 0?void 0:c.includes(t[this.valueField]):t[this.valueField]===c,e,i))))}else{return null}}else{return i.label&&this.displayOption(i,this.isMultiSelect?c===null||c===void 0?void 0:c.includes(i[this.valueField]):i[this.valueField]===c,e)}}))),s.length!==0&&this.isMultiSelect&&!a&&!r&&!v&&t("div",{key:"f396dbf8842b3f1cdd208f8da5e98ab473266127",class:"option-bar"},t("ic-typography",{key:"ebccbbde58196d1c89c698cdc1af37bcc911f5fd"},t("p",{key:"2a88b61887611ad5ebfae51066e5e1160d6241e9"},`${c?c.length:0}/${p(this.options)} selected`)),t("ic-button",{key:"a56ebb07da92424910cf20ce14483ed2ddb2504a",class:"select-all-button","aria-label":`${b} options for ${i}`,ref:i=>this.selectAllButton=i,variant:"tertiary",onClick:this.handleSelectAllClick,onMouseDown:this.handleSelectAllMouseDown,onBlur:this.handleSelectAllBlur,onFocus:this.handleSelectAllFocus,size:l==="small"?"small":"medium"},b)))}get host(){return s(this)}static get watchers(){return{open:["watchOpenHandler"],options:["watchOptionsHandler"]}}};L.style=z;export{g as ic_input_component_container,w as ic_input_container,L as ic_menu};
2
- //# sourceMappingURL=p-4aaf10a5.entry.js.map