@i-cell/ids-angular 0.1.13 → 0.2.1

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 (380) hide show
  1. package/accordion/index.d.ts +81 -5
  2. package/avatar/index.d.ts +66 -5
  3. package/badge/index.d.ts +61 -5
  4. package/breadcrumb/index.d.ts +67 -5
  5. package/button/index.d.ts +81 -5
  6. package/card/index.d.ts +91 -5
  7. package/checkbox/index.d.ts +137 -5
  8. package/chip/index.d.ts +82 -5
  9. package/core/index.d.ts +168 -5
  10. package/datepicker/index.d.ts +112 -5
  11. package/dialog/index.d.ts +66 -5
  12. package/divider/index.d.ts +45 -5
  13. package/fesm2022/i-cell-ids-angular-accordion.mjs +32 -32
  14. package/fesm2022/i-cell-ids-angular-accordion.mjs.map +1 -1
  15. package/fesm2022/i-cell-ids-angular-avatar.mjs +19 -19
  16. package/fesm2022/i-cell-ids-angular-avatar.mjs.map +1 -1
  17. package/fesm2022/i-cell-ids-angular-badge.mjs +25 -25
  18. package/fesm2022/i-cell-ids-angular-badge.mjs.map +1 -1
  19. package/fesm2022/i-cell-ids-angular-breadcrumb.mjs +41 -41
  20. package/fesm2022/i-cell-ids-angular-breadcrumb.mjs.map +1 -1
  21. package/fesm2022/i-cell-ids-angular-button.mjs +18 -18
  22. package/fesm2022/i-cell-ids-angular-button.mjs.map +1 -1
  23. package/fesm2022/i-cell-ids-angular-card.mjs +36 -36
  24. package/fesm2022/i-cell-ids-angular-card.mjs.map +1 -1
  25. package/fesm2022/i-cell-ids-angular-checkbox.mjs +44 -44
  26. package/fesm2022/i-cell-ids-angular-checkbox.mjs.map +1 -1
  27. package/fesm2022/i-cell-ids-angular-chip.mjs +28 -28
  28. package/fesm2022/i-cell-ids-angular-chip.mjs.map +1 -1
  29. package/fesm2022/i-cell-ids-angular-core.mjs +17 -17
  30. package/fesm2022/i-cell-ids-angular-core.mjs.map +1 -1
  31. package/fesm2022/i-cell-ids-angular-datepicker.mjs +66 -66
  32. package/fesm2022/i-cell-ids-angular-datepicker.mjs.map +1 -1
  33. package/fesm2022/i-cell-ids-angular-dialog.mjs +22 -22
  34. package/fesm2022/i-cell-ids-angular-dialog.mjs.map +1 -1
  35. package/fesm2022/i-cell-ids-angular-divider.mjs +13 -13
  36. package/fesm2022/i-cell-ids-angular-divider.mjs.map +1 -1
  37. package/fesm2022/i-cell-ids-angular-forms.mjs +156 -156
  38. package/fesm2022/i-cell-ids-angular-forms.mjs.map +1 -1
  39. package/fesm2022/i-cell-ids-angular-icon-button.mjs +13 -13
  40. package/fesm2022/i-cell-ids-angular-icon-button.mjs.map +1 -1
  41. package/fesm2022/i-cell-ids-angular-icon.mjs +16 -17
  42. package/fesm2022/i-cell-ids-angular-icon.mjs.map +1 -1
  43. package/fesm2022/i-cell-ids-angular-menu.mjs +19 -19
  44. package/fesm2022/i-cell-ids-angular-menu.mjs.map +1 -1
  45. package/fesm2022/i-cell-ids-angular-notification.mjs +27 -27
  46. package/fesm2022/i-cell-ids-angular-notification.mjs.map +1 -1
  47. package/fesm2022/i-cell-ids-angular-overlay-panel.mjs +9 -9
  48. package/fesm2022/i-cell-ids-angular-overlay-panel.mjs.map +1 -1
  49. package/fesm2022/i-cell-ids-angular-paginator.mjs +34 -34
  50. package/fesm2022/i-cell-ids-angular-paginator.mjs.map +1 -1
  51. package/fesm2022/i-cell-ids-angular-radio.mjs +30 -30
  52. package/fesm2022/i-cell-ids-angular-radio.mjs.map +1 -1
  53. package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs +31 -31
  54. package/fesm2022/i-cell-ids-angular-segmented-control-toggle.mjs.map +1 -1
  55. package/fesm2022/i-cell-ids-angular-segmented-control.mjs +32 -32
  56. package/fesm2022/i-cell-ids-angular-segmented-control.mjs.map +1 -1
  57. package/fesm2022/i-cell-ids-angular-select.mjs +32 -32
  58. package/fesm2022/i-cell-ids-angular-select.mjs.map +1 -1
  59. package/fesm2022/i-cell-ids-angular-side-sheet.mjs +27 -27
  60. package/fesm2022/i-cell-ids-angular-side-sheet.mjs.map +1 -1
  61. package/fesm2022/i-cell-ids-angular-snackbar.mjs +29 -29
  62. package/fesm2022/i-cell-ids-angular-snackbar.mjs.map +1 -1
  63. package/fesm2022/i-cell-ids-angular-spinner.mjs +10 -10
  64. package/fesm2022/i-cell-ids-angular-spinner.mjs.map +1 -1
  65. package/fesm2022/i-cell-ids-angular-switch.mjs +35 -35
  66. package/fesm2022/i-cell-ids-angular-switch.mjs.map +1 -1
  67. package/fesm2022/i-cell-ids-angular-tab.mjs +27 -27
  68. package/fesm2022/i-cell-ids-angular-tab.mjs.map +1 -1
  69. package/fesm2022/i-cell-ids-angular-table.mjs +79 -79
  70. package/fesm2022/i-cell-ids-angular-table.mjs.map +1 -1
  71. package/fesm2022/i-cell-ids-angular-tag.mjs +18 -18
  72. package/fesm2022/i-cell-ids-angular-tag.mjs.map +1 -1
  73. package/fesm2022/i-cell-ids-angular-tooltip.mjs +30 -31
  74. package/fesm2022/i-cell-ids-angular-tooltip.mjs.map +1 -1
  75. package/forms/index.d.ts +468 -3
  76. package/icon/index.d.ts +69 -5
  77. package/icon-button/index.d.ts +66 -5
  78. package/index.d.ts +2 -5
  79. package/menu/index.d.ts +68 -5
  80. package/notification/index.d.ts +68 -5
  81. package/overlay-panel/index.d.ts +41 -5
  82. package/package.json +10 -10
  83. package/paginator/index.d.ts +122 -5
  84. package/radio/index.d.ts +95 -5
  85. package/segmented-control/index.d.ts +98 -5
  86. package/segmented-control-toggle/index.d.ts +103 -5
  87. package/select/index.d.ts +103 -5
  88. package/side-sheet/index.d.ts +84 -5
  89. package/snackbar/index.d.ts +149 -5
  90. package/spinner/index.d.ts +41 -5
  91. package/switch/index.d.ts +89 -5
  92. package/tab/index.d.ts +78 -5
  93. package/table/index.d.ts +390 -3
  94. package/tag/index.d.ts +70 -5
  95. package/tooltip/index.d.ts +96 -5
  96. package/accordion/accordion-animations.d.ts +0 -1
  97. package/accordion/accordion-defaults.d.ts +0 -18
  98. package/accordion/accordion-item/accordion-item.component.d.ts +0 -27
  99. package/accordion/accordion.component.d.ts +0 -29
  100. package/accordion/public-api.d.ts +0 -5
  101. package/accordion/types/accordion-appearance.type.d.ts +0 -5
  102. package/avatar/avatar-defaults.d.ts +0 -12
  103. package/avatar/avatar-image.directive.d.ts +0 -5
  104. package/avatar/avatar.component.d.ts +0 -28
  105. package/avatar/public-api.d.ts +0 -6
  106. package/avatar/tokens/avatar-parent.d.ts +0 -6
  107. package/avatar/types/avatar-type.type.d.ts +0 -6
  108. package/avatar/types/avatar-variant.type.d.ts +0 -8
  109. package/badge/badge-defaults.d.ts +0 -13
  110. package/badge/badge-limit.pipe.d.ts +0 -7
  111. package/badge/badge.component.d.ts +0 -17
  112. package/badge/badge.directive.d.ts +0 -25
  113. package/badge/public-api.d.ts +0 -5
  114. package/badge/types/badge-appearance.type.d.ts +0 -4
  115. package/badge/types/badge-variant.type.d.ts +0 -12
  116. package/breadcrumb/breadcrumb-defaults.d.ts +0 -17
  117. package/breadcrumb/breadcrumb.component.d.ts +0 -35
  118. package/breadcrumb/libs/breadcrumb-divider.component.d.ts +0 -13
  119. package/breadcrumb/libs/breadcrumb-link.directive.d.ts +0 -10
  120. package/breadcrumb/libs/breadcrumb-list.directive.d.ts +0 -5
  121. package/breadcrumb/libs/breadcrumb-page.directive.d.ts +0 -5
  122. package/breadcrumb/libs/breadcrumb-truncation.component.d.ts +0 -15
  123. package/breadcrumb/public-api.d.ts +0 -5
  124. package/breadcrumb/types/breadcrumb-divider.type.d.ts +0 -5
  125. package/breadcrumb/types/breadcrumb-hierarchy.type.d.ts +0 -5
  126. package/breadcrumb/types/breadcrumb-variant.type.d.ts +0 -6
  127. package/button/button-defaults.d.ts +0 -11
  128. package/button/button-group-defaults.d.ts +0 -7
  129. package/button/button-group.component.d.ts +0 -11
  130. package/button/button.component.d.ts +0 -29
  131. package/button/public-api.d.ts +0 -7
  132. package/button/tokens/button-parent.d.ts +0 -6
  133. package/button/types/button-appearance.type.d.ts +0 -6
  134. package/button/types/button-variant.type.d.ts +0 -14
  135. package/card/card-body.directive.d.ts +0 -6
  136. package/card/card-defaults.d.ts +0 -12
  137. package/card/card-footer.directive.d.ts +0 -6
  138. package/card/card-header.component.d.ts +0 -6
  139. package/card/card-media.directive.d.ts +0 -7
  140. package/card/card-section-base.directive.d.ts +0 -9
  141. package/card/card-subtitle.directive.d.ts +0 -5
  142. package/card/card-title.directive.d.ts +0 -5
  143. package/card/card.component.d.ts +0 -21
  144. package/card/public-api.d.ts +0 -10
  145. package/card/types/card-appearances.type.d.ts +0 -6
  146. package/card/types/card-variant.type.d.ts +0 -13
  147. package/checkbox/checkbox-defaults.d.ts +0 -9
  148. package/checkbox/checkbox-group-defaults.d.ts +0 -9
  149. package/checkbox/checkbox-group.component.d.ts +0 -28
  150. package/checkbox/checkbox.component.d.ts +0 -70
  151. package/checkbox/public-api.d.ts +0 -7
  152. package/checkbox/types/checkbox-events.class.d.ts +0 -6
  153. package/checkbox/types/checkbox-group-child.d.ts +0 -8
  154. package/checkbox/types/checkbox-parent.d.ts +0 -8
  155. package/checkbox/types/checkbox-state.type.d.ts +0 -6
  156. package/checkbox/types/checkbox-variant.type.d.ts +0 -6
  157. package/chip/chip-defaults.d.ts +0 -12
  158. package/chip/chip-group-defaults.d.ts +0 -9
  159. package/chip/chip-group.component.d.ts +0 -14
  160. package/chip/chip.component.d.ts +0 -35
  161. package/chip/public-api.d.ts +0 -7
  162. package/chip/types/chip-appearance.type.d.ts +0 -5
  163. package/chip/types/chip-events.type.d.ts +0 -4
  164. package/chip/types/chip-variant.type.d.ts +0 -8
  165. package/core/base-classes/component-base.d.ts +0 -13
  166. package/core/base-classes/directive-base.d.ts +0 -16
  167. package/core/directives/detect-scrollable.directive.d.ts +0 -11
  168. package/core/pipes/sentence-case.pipe.d.ts +0 -7
  169. package/core/public-api.d.ts +0 -17
  170. package/core/services/resize-observer.service.d.ts +0 -13
  171. package/core/types/orientation.type.d.ts +0 -5
  172. package/core/types/position.type.d.ts +0 -39
  173. package/core/types/size-collection.type.d.ts +0 -5
  174. package/core/types/size.type.d.ts +0 -7
  175. package/core/utils/class-prefix.d.ts +0 -2
  176. package/core/utils/class.d.ts +0 -2
  177. package/core/utils/coercion.d.ts +0 -6
  178. package/core/utils/compare.d.ts +0 -1
  179. package/core/utils/date.d.ts +0 -25
  180. package/core/utils/fallback-value.d.ts +0 -1
  181. package/core/utils/number.d.ts +0 -4
  182. package/core/utils/string.d.ts +0 -1
  183. package/datepicker/calendar/calendar-page.d.ts +0 -26
  184. package/datepicker/calendar/calendar.component.d.ts +0 -40
  185. package/datepicker/datepicker-defaults.d.ts +0 -7
  186. package/datepicker/datepicker-intl.d.ts +0 -22
  187. package/datepicker/datepicker-positions.d.ts +0 -2
  188. package/datepicker/datepicker.directive.d.ts +0 -58
  189. package/datepicker/day-selector/day-selector.component.d.ts +0 -26
  190. package/datepicker/month-selector/month-selector.component.d.ts +0 -20
  191. package/datepicker/public-api.d.ts +0 -7
  192. package/datepicker/tokens/date-formatter.d.ts +0 -3
  193. package/datepicker/tokens/date-parser.d.ts +0 -3
  194. package/datepicker/tokens/datepicker-view.d.ts +0 -6
  195. package/datepicker/trigger/datepicker-trigger.component.d.ts +0 -12
  196. package/datepicker/year-selector/year-selector.component.d.ts +0 -20
  197. package/dialog/custom-dialog-base.d.ts +0 -15
  198. package/dialog/dialog-defaults.d.ts +0 -9
  199. package/dialog/dialog-header.directive.d.ts +0 -7
  200. package/dialog/dialog.component.d.ts +0 -22
  201. package/dialog/dialog.service.d.ts +0 -17
  202. package/dialog/public-api.d.ts +0 -5
  203. package/divider/divider-defaults.d.ts +0 -12
  204. package/divider/divider.component.d.ts +0 -18
  205. package/divider/public-api.d.ts +0 -3
  206. package/divider/types/divider-variant.type.d.ts +0 -13
  207. package/forms/common/error/error-state.d.ts +0 -23
  208. package/forms/common/success/success-state.d.ts +0 -23
  209. package/forms/components/fieldset/fieldset-defaults.d.ts +0 -9
  210. package/forms/components/fieldset/fieldset-message.directive.d.ts +0 -5
  211. package/forms/components/fieldset/fieldset-row/fieldset-row.component.d.ts +0 -8
  212. package/forms/components/fieldset/fieldset.component.d.ts +0 -16
  213. package/forms/components/form-field/form-field-control.d.ts +0 -44
  214. package/forms/components/form-field/form-field-defaults.d.ts +0 -9
  215. package/forms/components/form-field/form-field.component.d.ts +0 -41
  216. package/forms/components/form-field/tokens/form-field-control.d.ts +0 -3
  217. package/forms/components/form-field/types/form-field-variant.type.d.ts +0 -5
  218. package/forms/components/input/input-defaults.d.ts +0 -9
  219. package/forms/components/input/input.directive.d.ts +0 -31
  220. package/forms/components/input/types/input.type.d.ts +0 -1
  221. package/forms/components/message/error-message/error-definition.directive.d.ts +0 -49
  222. package/forms/components/message/error-message/error-message.component.d.ts +0 -20
  223. package/forms/components/message/hint-message/hint-message.component.d.ts +0 -10
  224. package/forms/components/message/message-defaults.d.ts +0 -9
  225. package/forms/components/message/success-message/success-message.component.d.ts +0 -11
  226. package/forms/components/message/types/error-message-mapping.d.ts +0 -9
  227. package/forms/components/message/types/message-parent-form-field.d.ts +0 -9
  228. package/forms/components/message/types/message-variant.type.d.ts +0 -6
  229. package/forms/components/message/types/message.type.d.ts +0 -6
  230. package/forms/components/option/option-group.component.d.ts +0 -13
  231. package/forms/components/option/option.component.d.ts +0 -47
  232. package/forms/components/option/tokens/option-group.d.ts +0 -3
  233. package/forms/components/option/tokens/option-parent.d.ts +0 -11
  234. package/forms/components/option/types/option-events.class.d.ts +0 -7
  235. package/forms/components/pseudo-checkbox/pseudo-checkbox.component.d.ts +0 -14
  236. package/forms/components/pseudo-checkbox/tokens/pseudo-checkbox-parent.d.ts +0 -7
  237. package/forms/components/pseudo-checkbox/types/pseudo-checkbox-state.type.d.ts +0 -6
  238. package/forms/directives/form-field-action.directive.d.ts +0 -5
  239. package/forms/directives/label.directive.d.ts +0 -5
  240. package/forms/directives/message-prefix.directive.d.ts +0 -5
  241. package/forms/directives/message-suffix.directive.d.ts +0 -5
  242. package/forms/directives/message.directive.d.ts +0 -17
  243. package/forms/directives/prefix.directive.d.ts +0 -7
  244. package/forms/directives/suffix.directive.d.ts +0 -7
  245. package/forms/public-api.d.ts +0 -37
  246. package/forms/validators.d.ts +0 -9
  247. package/icon/icon-defaults.d.ts +0 -12
  248. package/icon/icon.component.d.ts +0 -33
  249. package/icon/public-api.d.ts +0 -5
  250. package/icon/tokens/icon-parent.d.ts +0 -6
  251. package/icon/types/icon-source.type.d.ts +0 -5
  252. package/icon/types/icon-variant.type.d.ts +0 -12
  253. package/icon-button/icon-button-defaults.d.ts +0 -11
  254. package/icon-button/icon-button.component.d.ts +0 -28
  255. package/icon-button/public-api.d.ts +0 -5
  256. package/icon-button/tokens/icon-button-parent.d.ts +0 -9
  257. package/icon-button/types/icon-button-appearance.type.d.ts +0 -6
  258. package/icon-button/types/icon-button-variant.type.d.ts +0 -13
  259. package/menu/action-menu/action-menu-trigger.directive.d.ts +0 -12
  260. package/menu/active-indicator/active-indicator.directive.d.ts +0 -7
  261. package/menu/menu-item/menu-item-defaults.d.ts +0 -12
  262. package/menu/menu-item/menu-item.component.d.ts +0 -27
  263. package/menu/menu-item/types/menu-item-appearance.type.d.ts +0 -5
  264. package/menu/menu-item/types/menu-item-variant.type.d.ts +0 -5
  265. package/menu/public-api.d.ts +0 -6
  266. package/notification/notification-action-button.directive.d.ts +0 -5
  267. package/notification/notification-defaults.d.ts +0 -15
  268. package/notification/notification.component.d.ts +0 -34
  269. package/notification/public-api.d.ts +0 -5
  270. package/notification/types/notification-appearance.type.d.ts +0 -5
  271. package/notification/types/notification-variant.type.d.ts +0 -10
  272. package/overlay-panel/overlay-panel-defaults.d.ts +0 -11
  273. package/overlay-panel/overlay-panel.component.d.ts +0 -18
  274. package/overlay-panel/public-api.d.ts +0 -4
  275. package/overlay-panel/types/overlay-panel-appearance.type.d.ts +0 -6
  276. package/overlay-panel/types/overlay-panel-variant.type.d.ts +0 -5
  277. package/paginator/paginator-defaults.d.ts +0 -22
  278. package/paginator/paginator-intl.d.ts +0 -24
  279. package/paginator/paginator.component.d.ts +0 -67
  280. package/paginator/public-api.d.ts +0 -5
  281. package/paginator/types/paginator-appearance.type.d.ts +0 -4
  282. package/paginator/types/paginator-events.class.d.ts +0 -6
  283. package/paginator/types/paginator-variant.type.d.ts +0 -7
  284. package/public-api.d.ts +0 -2
  285. package/radio/public-api.d.ts +0 -5
  286. package/radio/radio-defaults.d.ts +0 -11
  287. package/radio/radio-group.directive.d.ts +0 -46
  288. package/radio/radio.component.d.ts +0 -30
  289. package/radio/types/radio-events.class.d.ts +0 -6
  290. package/radio/types/radio-variant.type.d.ts +0 -6
  291. package/segmented-control/public-api.d.ts +0 -6
  292. package/segmented-control/segmented-control-defaults.d.ts +0 -11
  293. package/segmented-control/segmented-control-item.component.d.ts +0 -33
  294. package/segmented-control/segmented-control.directive.d.ts +0 -42
  295. package/segmented-control/types/segmented-control-appearance.type.d.ts +0 -4
  296. package/segmented-control/types/segmented-control-item-change.class.d.ts +0 -7
  297. package/segmented-control/types/segmented-control-variant.type.d.ts +0 -6
  298. package/segmented-control-toggle/public-api.d.ts +0 -6
  299. package/segmented-control-toggle/segmented-control-toggle-defaults.d.ts +0 -12
  300. package/segmented-control-toggle/segmented-control-toggle-item.component.d.ts +0 -32
  301. package/segmented-control-toggle/segmented-control-toggle.directive.d.ts +0 -43
  302. package/segmented-control-toggle/types/segmented-control-toggle-appearance.type.d.ts +0 -5
  303. package/segmented-control-toggle/types/segmented-control-toggle-item-change.class.d.ts +0 -6
  304. package/segmented-control-toggle/types/segmented-control-toggle-variant.type.d.ts +0 -11
  305. package/select/public-api.d.ts +0 -3
  306. package/select/select-defaults.d.ts +0 -9
  307. package/select/select-positions.d.ts +0 -2
  308. package/select/select-trigger.directive.d.ts +0 -5
  309. package/select/select.component.d.ts +0 -85
  310. package/side-sheet/public-api.d.ts +0 -3
  311. package/side-sheet/side-sheet-defaults.d.ts +0 -20
  312. package/side-sheet/side-sheet-header/side-sheet-header.component.d.ts +0 -19
  313. package/side-sheet/side-sheet.component.d.ts +0 -40
  314. package/side-sheet/types/side-sheet.type.d.ts +0 -20
  315. package/snackbar/animations.d.ts +0 -2
  316. package/snackbar/public-api.d.ts +0 -7
  317. package/snackbar/services/snackbar.service.d.ts +0 -28
  318. package/snackbar/snackbar-defaults.d.ts +0 -16
  319. package/snackbar/snackbar-group.component.d.ts +0 -25
  320. package/snackbar/snackbar-position-strategies.d.ts +0 -4
  321. package/snackbar/snackbar.component.d.ts +0 -51
  322. package/snackbar/types/snackbar-data.type.d.ts +0 -15
  323. package/snackbar/types/snackbar-inner-data.type.d.ts +0 -4
  324. package/snackbar/types/snackbar-position.type.d.ts +0 -9
  325. package/snackbar/types/snackbar-variant.type.d.ts +0 -8
  326. package/spinner/public-api.d.ts +0 -3
  327. package/spinner/spinner-defaults.d.ts +0 -11
  328. package/spinner/spinner.component.d.ts +0 -17
  329. package/spinner/types/spinner-variant.type.d.ts +0 -11
  330. package/switch/public-api.d.ts +0 -5
  331. package/switch/switch-animations.d.ts +0 -2
  332. package/switch/switch-defaults.d.ts +0 -13
  333. package/switch/switch-group.component.d.ts +0 -14
  334. package/switch/switch.component.d.ts +0 -45
  335. package/switch/types/switch-positions.type.d.ts +0 -10
  336. package/switch/types/switch-variant.type.d.ts +0 -6
  337. package/tab/public-api.d.ts +0 -6
  338. package/tab/tab-group-defaults.d.ts +0 -15
  339. package/tab/tab-group.component.d.ts +0 -30
  340. package/tab/tab.component.d.ts +0 -18
  341. package/tab/types/tab-group-position.type.d.ts +0 -6
  342. package/tab/types/tab-group-variant.type.d.ts +0 -6
  343. package/tab/types/tab-indicator-position.type.d.ts +0 -7
  344. package/table/components/cell-content/cell-content.component.d.ts +0 -25
  345. package/table/datasource/server-side-datasource.d.ts +0 -37
  346. package/table/directives/cell-renderer.d.ts +0 -13
  347. package/table/directives/cell-template.d.ts +0 -8
  348. package/table/directives/row-info-holder.d.ts +0 -9
  349. package/table/public-api.d.ts +0 -18
  350. package/table/table-defaults.d.ts +0 -22
  351. package/table/table-intl.d.ts +0 -25
  352. package/table/table.component.d.ts +0 -142
  353. package/table/types/pagination-params.d.ts +0 -9
  354. package/table/types/request-factory.d.ts +0 -5
  355. package/table/types/request-pagination-data.d.ts +0 -6
  356. package/table/types/response-data.d.ts +0 -5
  357. package/table/types/table-appearance.type.d.ts +0 -6
  358. package/table/types/table-cell-click-event.d.ts +0 -6
  359. package/table/types/table-column-def.d.ts +0 -97
  360. package/table/types/table-row-click-event.d.ts +0 -4
  361. package/table/types/table-row-keydown-event.d.ts +0 -4
  362. package/table/types/table-sort-direction.d.ts +0 -6
  363. package/table/types/table-sort-info.d.ts +0 -6
  364. package/table/types/table-variant.type.d.ts +0 -6
  365. package/tag/public-api.d.ts +0 -6
  366. package/tag/tag-defaults.d.ts +0 -11
  367. package/tag/tag-group-defaults.d.ts +0 -9
  368. package/tag/tag-group.component.d.ts +0 -13
  369. package/tag/tag.component.d.ts +0 -23
  370. package/tag/types/tag-appearance.type.d.ts +0 -5
  371. package/tag/types/tag-variant.type.d.ts +0 -13
  372. package/tooltip/public-api.d.ts +0 -5
  373. package/tooltip/tooltip-defaults.d.ts +0 -18
  374. package/tooltip/tooltip-position-strategies.d.ts +0 -3
  375. package/tooltip/tooltip.component.d.ts +0 -31
  376. package/tooltip/tooltip.directive.d.ts +0 -60
  377. package/tooltip/types/tooltip-position.type.d.ts +0 -11
  378. package/tooltip/types/tooltip-variant.type.d.ts +0 -5
  379. package/tooltip/types/tooltip.type.d.ts +0 -2
  380. package/tooltip/utils/tooltip-converters.d.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-datepicker.mjs","sources":["../../../projects/widgets/datepicker/tokens/datepicker-view.ts","../../../projects/widgets/datepicker/tokens/date-formatter.ts","../../../projects/widgets/datepicker/tokens/date-parser.ts","../../../projects/widgets/datepicker/datepicker-intl.ts","../../../projects/widgets/datepicker/trigger/datepicker-trigger.component.ts","../../../projects/widgets/datepicker/trigger/datepicker-trigger.component.html","../../../projects/widgets/datepicker/datepicker-defaults.ts","../../../projects/widgets/datepicker/calendar/calendar-page.ts","../../../projects/widgets/datepicker/day-selector/day-selector.component.ts","../../../projects/widgets/datepicker/day-selector/day-selector.component.html","../../../projects/widgets/datepicker/month-selector/month-selector.component.ts","../../../projects/widgets/datepicker/month-selector/month-selector.component.html","../../../projects/widgets/datepicker/year-selector/year-selector.component.ts","../../../projects/widgets/datepicker/year-selector/year-selector.component.html","../../../projects/widgets/datepicker/calendar/calendar.component.ts","../../../projects/widgets/datepicker/calendar/calendar.component.html","../../../projects/widgets/datepicker/datepicker-positions.ts","../../../projects/widgets/datepicker/datepicker.directive.ts","../../../projects/widgets/datepicker/i-cell-ids-angular-datepicker.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IdsDatepickerView = {\n DAY: 'day',\n MONTH: 'month',\n YEAR: 'year',\n} as const;\n\nexport type IdsDatepickerViewType = (typeof IdsDatepickerView)[keyof typeof IdsDatepickerView];\n","import { InjectionToken } from '@angular/core';\nimport { formatDate } from '@i-cell/ids-angular/core';\n\nexport type IdsDateFormatterFn = (date: Date) => string;\n\nexport const IDS_DATE_FORMATTER = new InjectionToken<IdsDateFormatterFn>('idsDateFormatter', {\n providedIn: 'root',\n factory: (): IdsDateFormatterFn => formatDate,\n});\n","import { InjectionToken } from '@angular/core';\nimport { parseDate } from '@i-cell/ids-angular/core';\n\nexport type IdsDateParserFn = (value: string, utc?: boolean) => Date | null;\n\nexport const IDS_DATE_PARSER = new InjectionToken<IdsDateParserFn>('idsDateParser', {\n providedIn: 'root',\n factory: (): IdsDateParserFn => parseDate,\n});\n","import { Injectable } from '@angular/core';\nimport { isValidDate } from '@i-cell/ids-angular/core';\nimport { Subject } from 'rxjs';\n\nconst dayAriaLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long', day: 'numeric' });\nconst monthLabelFormat = new Intl.DateTimeFormat('en-GB', { month: 'short' });\nconst monthAriaLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long' });\nconst daySelectorHeaderLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long' });\nconst weekdayLabelFormat = new Intl.DateTimeFormat('en-GB', { weekday: 'narrow' });\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDatepickerIntl {\n public readonly changes: Subject<void> = new Subject<void>();\n\n public triggerButtonLabel = 'Open calendar';\n\n public prevMonthLabel = 'Previous month';\n public nextMonthLabel = 'Next month';\n\n public prevYearLabel = 'Previous year';\n public nextYearLabel = 'Next year';\n\n public prevYearsPageLabel = 'Previous 24 years';\n public nextYearsPageLabel = 'Next 24 years';\n\n public switchToDaySelectorLabel = 'Choose date';\n public switchToYearSelectorLabel = 'Choose year and month';\n\n public getDayAriaLabel(date: Date): string | null {\n return this._formatDate(date, dayAriaLabelFormat);\n }\n\n public getMonthLabel(date: Date): string | null {\n return this._formatDate(date, monthLabelFormat);\n }\n\n public getMonthAriaLabel(date: Date): string | null {\n return this._formatDate(date, monthAriaLabelFormat);\n }\n\n public getDaySelectorHeaderLabel(date: Date): string | null {\n return this._formatDate(date, daySelectorHeaderLabelFormat);\n }\n\n public getWeekdayHeaderLabel(date: Date): string | null {\n return this._formatDate(date, weekdayLabelFormat);\n }\n\n protected _formatDate(date: unknown, dateFormat: Intl.DateTimeFormat): string | null {\n return isValidDate(date) ? dateFormat.format(date) : null;\n }\n}\n","import { IdsDatepickerIntl } from '../datepicker-intl';\nimport { IdsDatepickerDirective } from '../datepicker.directive';\n\nimport { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { IdsFormFieldComponent } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n@Component({\n selector: 'ids-datepicker-trigger',\n imports: [\n IdsIconComponent,\n IdsIconButtonComponent,\n ],\n templateUrl: './datepicker-trigger.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsDatepickerTriggerComponent {\n protected _parent = inject(IdsFormFieldComponent);\n protected _intl = inject(IdsDatepickerIntl);\n\n public datepicker = input.required<IdsDatepickerDirective>({ alias: 'for' });\n public ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n}\n","<button\n type=\"button\"\n idsIconButton\n aria-haspopup=\"true\"\n [size]=\"'dense'\"\n [variant]=\"'surface'\"\n [disabled]=\"_parent.disabled()\"\n [attr.aria-label]=\"ariaLabel() || _intl.triggerButtonLabel\"\n [attr.aria-expanded]=\"datepicker() ? datepicker().opened() : null\"\n (click)=\"datepicker().open()\"\n>\n <ids-icon aria-hidden=\"true\" fontIcon=\"calendar-days\" [attr.alt]=\"ariaLabel() || _intl.triggerButtonLabel\" />\n</button>\n","import { IdsDatepickerView, IdsDatepickerViewType } from './tokens/datepicker-view';\n\nimport { InjectionToken } from '@angular/core';\n\nexport interface IdsDatepickerDefaultConfig {\n view?: IdsDatepickerViewType,\n}\n\nexport const IDS_DATEPICKER_DEFAULT_CONFIG = new InjectionToken<IdsDatepickerDefaultConfig>(\n 'IDS_DATEPICKER_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY(): Required<IdsDatepickerDefaultConfig> {\n return {\n view: IdsDatepickerView.DAY,\n };\n}\n\n","import { IdsDatepickerIntl } from '../datepicker-intl';\n\nimport { afterNextRender, AfterViewInit, ChangeDetectorRef, Directive, ElementRef, inject, Injector, input, model, output, Signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\n\n@Directive()\nexport abstract class IdsCalendarPage implements AfterViewInit {\n private readonly _calendarButtonSelector = '.ids-calendar-button-focused';\n public abstract headerLabel: Signal<string>;\n\n protected _element = inject(ElementRef);\n private _injector = inject(Injector);\n private _cdRef = inject(ChangeDetectorRef);\n protected _intl = inject(IdsDatepickerIntl);\n\n public value = input<Date | null>(null);\n public focusedDate = model.required<Date>();\n public min = input<Date | null>(null);\n public max = input<Date | null>(null);\n\n public selected = output<Date>();\n\n public abstract hasPreviousPage(): boolean;\n public abstract gotoPreviousPage(): void;\n public abstract hasNextPage(): boolean;\n public abstract gotoNextPage(): void;\n\n protected readonly _today = new Date();\n\n constructor() {\n toObservable(this.focusedDate).pipe(takeUntilDestroyed()).subscribe(() => this._moveFocusToCurrent());\n this._intl.changes.pipe(takeUntilDestroyed()).subscribe(() => this._cdRef.markForCheck());\n }\n\n public ngAfterViewInit(): void {\n this._moveFocusToCurrent();\n }\n\n private _moveFocusToCurrent(): void {\n afterNextRender(() => {\n const focusedDayButton = this._element.nativeElement.querySelector(this._calendarButtonSelector) as HTMLButtonElement;\n if (focusedDayButton) {\n focusedDayButton.focus();\n }\n }, { injector: this._injector });\n }\n}\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { addDays, addMonths, addYears, clampDate, compareDates, endOfMonth, endOfWeek, equalDates, getDatesBetween, isValidDate, startOfMonth, startOfWeek } from '@i-cell/ids-angular/core';\n\nconst firstDayOfWeekOffset = 1;\nconst daysPerWeek = 7;\n\n@Component({\n selector: 'ids-day-selector',\n imports: [],\n templateUrl: './day-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsDaySelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-day-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsDaySelectorComponent extends IdsCalendarPage {\n public override headerLabel = computed<string>(() => (this._intl.getDaySelectorHeaderLabel(this._currentMonth()) ?? ''));\n\n protected _currentMonth = computed<Date>(() => startOfMonth(this.focusedDate()));\n protected _previousMonth = computed<Date>(() => addMonths(this._currentMonth(), -1));\n protected _nextMonth = computed<Date>(() => addMonths(this._currentMonth(), 1));\n\n protected _gridStartDate = computed(() => startOfWeek(this._currentMonth(), firstDayOfWeekOffset));\n protected _gridEndDate = computed(() => endOfWeek(endOfMonth(this._currentMonth()), firstDayOfWeekOffset));\n protected _days = computed(() => getDatesBetween(this._gridStartDate(), this._gridEndDate()));\n\n protected _weekdayLabels = computed<string[]>(() =>\n this._days().slice(0, daysPerWeek).map((date: Date) => this._intl.getWeekdayHeaderLabel(date) ?? ''));\n\n public override hasPreviousPage(): boolean {\n const dayOnPrevPage = addDays(this._gridStartDate(), -1);\n const min = this.min() ?? dayOnPrevPage;\n\n return compareDates(dayOnPrevPage, min) > -1;\n }\n\n public override gotoPreviousPage(): void {\n const current = this._currentMonth();\n this.focusedDate.set(new Date(current.getFullYear(), current.getMonth(), 0));\n }\n\n public override hasNextPage(): boolean {\n const dayOnNextPage = addDays(this._gridEndDate(), 1);\n const max = this.max() ?? dayOnNextPage;\n\n return compareDates(dayOnNextPage, max) < 1;\n }\n\n public override gotoNextPage(): void {\n const current = this._currentMonth();\n this.focusedDate.set(new Date(current.getFullYear(), current.getMonth() + 1, 1));\n }\n\n protected _selectDate(event: MouseEvent, date: Date): void {\n event.stopPropagation();\n event.preventDefault();\n this.selected.emit(date);\n }\n\n protected _isDateInCurrentMonth(date: Date): boolean {\n return date.getMonth() === this._currentMonth().getMonth();\n }\n\n protected _isDateFocused(date: Date): boolean {\n return equalDates(date, this.focusedDate());\n }\n\n protected _isDateSelected(date: Date): boolean {\n return equalDates(date, this.value());\n }\n\n protected _isDateDisabled(date: Date): boolean {\n const min = this.min();\n const max = this.max();\n\n return (isValidDate(min) && compareDates(date, min) === -1) || (isValidDate(max) && compareDates(date, max) === 1);\n }\n\n protected _isDateToday(date: Date): boolean {\n return equalDates(date, this._today);\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n\n focusedDate = addDays(focusedDate, -daysPerWeek);\n break;\n case 'ArrowDown':\n\n focusedDate = addDays(focusedDate, daysPerWeek);\n break;\n case 'ArrowLeft':\n focusedDate = addDays(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addDays(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = startOfWeek(focusedDate, firstDayOfWeekOffset);\n break;\n case 'End':\n focusedDate = endOfWeek(focusedDate, firstDayOfWeekOffset);\n break;\n case 'PageUp':\n focusedDate = this._hasShiftModifierKey(event) ? addYears(focusedDate, -1) : addMonths(focusedDate, -1);\n break;\n case 'PageDown':\n focusedDate = this._hasShiftModifierKey(event) ? addYears(focusedDate, 1) : addMonths(focusedDate, 1);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n\n private _hasShiftModifierKey(event: KeyboardEvent): boolean {\n return event.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey;\n }\n}\n","<div class=\"ids-day-selector__days-grid ids-calendar-grid\">\n @for (label of _weekdayLabels(); track $index) {\n <div class=\"ids-calendar-cell\">\n <span class=\"ids-day-selector__header--label ids-calendar-weekday-label\">{{ label }}</span>\n </div>\n }\n @for (day of _days(); track $index) {\n @let dayLabel = day.getDate();\n @let isSelected = _isDateSelected(day);\n @let isFocused = _isDateFocused(day);\n @let isToday = _isDateToday(day);\n @let isDisabled = _isDateDisabled(day) || !_isDateInCurrentMonth(day);\n @let tabIndex = isFocused ? 0 : -1;\n @let ariaLabel = _intl.getDayAriaLabel(day);\n <div class=\"ids-calendar-cell\" [class.ids-calendar-cell-selected]=\"isSelected\">\n <button\n type=\"button\"\n class=\"ids-day-selector__day-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isToday\"\n [tabIndex]=\"tabIndex\"\n [class.ids-calendar-button-today]=\"isToday\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectDate($event, day)\"\n >{{ dayLabel }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { addMonths, addYears, clampDate, compareDates, createNormalizedDate, endOfMonth, isValidDate, startOfMonth } from '@i-cell/ids-angular/core';\nimport { map, startWith } from 'rxjs';\n\nconst monthsPerRow = 4;\nconst lastMonth = 11;\n\n@Component({\n selector: 'ids-month-selector',\n imports: [],\n templateUrl: './month-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsMonthSelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-month-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsMonthSelectorComponent extends IdsCalendarPage {\n protected _focusedYear = computed<number>(() => this.focusedDate().getFullYear());\n\n protected _monthLabels = toSignal(this._intl.changes.pipe(startWith(null), map(() => {\n const currentYear = new Date().getFullYear();\n const monthLabels = Array.from({ length: 12 })\n .map((nil, month) => this._intl.getMonthLabel(createNormalizedDate(currentYear, month, 1)) ?? '');\n return monthLabels;\n })));\n\n public override headerLabel = computed<string>(() => String(this._focusedYear()));\n\n public override hasPreviousPage(): boolean {\n const min = this.min();\n\n if (!isValidDate(min)) {\n return true;\n }\n\n const startOfYear = createNormalizedDate(this._focusedYear(), 0, 1);\n\n return compareDates(min, startOfYear) === -1;\n }\n\n public override gotoPreviousPage(): void {\n this.focusedDate.set(createNormalizedDate(this._focusedYear() - 1, lastMonth, 1));\n }\n\n public override hasNextPage(): boolean {\n const max = this.max();\n\n if (!isValidDate(max)) {\n return true;\n }\n\n // eslint-disable-next-line no-magic-numbers\n const endOfYear = createNormalizedDate(this._focusedYear(), 11, 31);\n\n return compareDates(max, endOfYear) === 1;\n }\n\n public override gotoNextPage(): void {\n this.focusedDate.set(createNormalizedDate(this._focusedYear() + 1, 0, 1));\n }\n\n protected _selectMonth(event: MouseEvent, month: number): void {\n event.stopPropagation();\n event.preventDefault();\n\n const currentFocusedDate = this.focusedDate();\n const nextFocusedDate = createNormalizedDate(currentFocusedDate.getFullYear(), month, currentFocusedDate.getDate());\n\n this.selected.emit(clampDate(nextFocusedDate, this.min(), this.max()));\n }\n\n protected _isMonthFocused(month: number): boolean {\n return month === this.focusedDate().getMonth();\n }\n\n protected _isMonthSelected(month: number): boolean {\n const selectedYear = this.value()?.getFullYear();\n const selectedMonth = this.value()?.getMonth();\n\n return this._focusedYear() === selectedYear && month === selectedMonth;\n }\n\n protected _isCurrentMonth(month: number): boolean {\n return this._focusedYear() === this._today.getFullYear() && month === this._today.getMonth();\n }\n\n protected _isMonthDisabled(month: number): boolean {\n const min = this.min();\n const max = this.max();\n const monthAsDate = new Date(this._focusedYear(), month, 1);\n\n return (isValidDate(min) && compareDates(endOfMonth(monthAsDate), startOfMonth(min)) === -1) ||\n (isValidDate(max) && compareDates(monthAsDate, endOfMonth(max)) === 1);\n }\n\n protected _getMonthAsDate(month: number): Date {\n return createNormalizedDate(this._focusedYear(), month, 1);\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n focusedDate = addMonths(focusedDate, -monthsPerRow);\n break;\n case 'ArrowDown':\n focusedDate = addMonths(focusedDate, monthsPerRow);\n break;\n case 'ArrowLeft':\n focusedDate = addMonths(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addMonths(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = new Date(focusedDate.getFullYear(), 0, focusedDate.getDate());\n break;\n case 'End':\n // eslint-disable-next-line no-magic-numbers\n focusedDate = new Date(focusedDate.getFullYear(), 11, focusedDate.getDate());\n break;\n case 'PageUp':\n focusedDate = addYears(focusedDate, -1);\n break;\n case 'PageDown':\n focusedDate = addYears(focusedDate, 1);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n}\n","<div class=\"ids-month-selector__months-grid ids-calendar-grid\">\n @for (monthLabel of _monthLabels(); track $index; let month = $index) {\n @let isSelected = _isMonthSelected(month);\n @let isFocused = _isMonthFocused(month);\n @let isCurrentMonth = _isCurrentMonth(month);\n @let tabIndex = isFocused ? 0 : -1;\n @let isDisabled = _isMonthDisabled(month);\n @let ariaLabel = _intl.getMonthAriaLabel(_getMonthAsDate(month));\n <div class=\"ids-calendar-cell\">\n <button\n type=\"button\"\n class=\"ids-month-selector__month-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isCurrentMonth\"\n [tabIndex]=\"tabIndex\"\n [class.ids-month-selector__month-button--current-month]=\"isCurrentMonth\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectMonth($event, month)\"\n >{{ monthLabel }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { addYears, clampDate, createNormalizedDate, isValidDate, positiveModulus } from '@i-cell/ids-angular/core';\n\nconst yearsPerRow = 4;\nconst yearsPerPage = 24;\n\n@Component({\n selector: 'ids-year-selector',\n imports: [],\n templateUrl: './year-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsYearSelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-year-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsYearSelectorComponent extends IdsCalendarPage {\n private _firstYearOnPage = computed(() => {\n const focusedYear = this.focusedDate().getFullYear();\n const firstYearOffset = this._getFirstYearOffset(focusedYear, this.min()?.getFullYear(), this.max()?.getFullYear());\n const firstYearOnPage = focusedYear - firstYearOffset;\n\n return firstYearOnPage;\n });\n\n protected _years = computed(() => {\n const firstYearOnPage = this._firstYearOnPage();\n const years = Array.from({ length: yearsPerPage }).map((_nil, index) => firstYearOnPage + index);\n\n return years;\n });\n\n public override headerLabel = computed<string>(() => `${this._years()[0]} - ${this._years().at(-1)}`);\n\n public override hasPreviousPage(): boolean {\n const min = Number.isFinite(this.min()?.getFullYear()) ? this.min()!.getFullYear() : Number.POSITIVE_INFINITY;\n const firstYearOnPage = Number.isFinite(this._firstYearOnPage()) ? this._firstYearOnPage() : Number.NEGATIVE_INFINITY;\n\n return firstYearOnPage > min;\n }\n\n public override gotoPreviousPage(): void {\n const firstYearOnPage = this._firstYearOnPage();\n const currentFocusedDate = this.focusedDate();\n this.focusedDate.set(createNormalizedDate(firstYearOnPage - 1, currentFocusedDate.getMonth(), currentFocusedDate.getDate()));\n }\n\n public override hasNextPage(): boolean {\n const max = Number.isFinite(this.max()?.getFullYear()) ? this.max()!.getFullYear() : Number.NEGATIVE_INFINITY;\n const lastYearOnPage = Number.isFinite(this._firstYearOnPage()) ? this._firstYearOnPage() + yearsPerPage - 1 : Number.POSITIVE_INFINITY;\n\n return lastYearOnPage < max;\n }\n\n public override gotoNextPage(): void {\n const firstYearOnPage = this._firstYearOnPage();\n const currentFocusedDate = this.focusedDate();\n this.focusedDate.set(\n createNormalizedDate(firstYearOnPage + yearsPerPage, currentFocusedDate.getMonth(), currentFocusedDate.getDate()));\n }\n\n protected _selectYear(event: MouseEvent, year: number): void {\n event.stopPropagation();\n event.preventDefault();\n\n const currentFocusedDate = this.focusedDate();\n const nextFocusedDate = createNormalizedDate(year, currentFocusedDate.getMonth(), currentFocusedDate.getDate());\n\n this.selected.emit(clampDate(nextFocusedDate, this.min(), this.max()));\n }\n\n protected _isYearFocused(year: number): boolean {\n return year === this.focusedDate().getFullYear();\n }\n\n protected _isYearSelected(year: number): boolean {\n return year === this.value()?.getFullYear();\n }\n\n protected _isCurrentYear(year: number): boolean {\n return year === new Date().getFullYear();\n }\n\n protected _isYearDisabled(year: number): boolean {\n const min = this.min();\n const max = this.max();\n\n return (isValidDate(min) && year < min.getFullYear()) || (isValidDate(max) && year > max.getFullYear());\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n focusedDate = addYears(focusedDate, -yearsPerRow);\n break;\n case 'ArrowDown':\n focusedDate = addYears(focusedDate, yearsPerRow);\n break;\n case 'ArrowLeft':\n focusedDate = addYears(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addYears(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = new Date(this._years()[0], focusedDate.getMonth(), focusedDate.getDate());\n break;\n case 'End':\n focusedDate = new Date(this._years().at(-1)!, focusedDate.getMonth(), focusedDate.getDate());\n break;\n case 'PageUp':\n focusedDate = addYears(focusedDate, -yearsPerPage);\n break;\n case 'PageDown':\n focusedDate = addYears(focusedDate, yearsPerPage);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n\n private _getFirstYearOffset(focusedYear: number, minYear?: number, maxYear: number = (yearsPerPage - 1)): number {\n // If we have a max year we calculate an offset so that the max year will be the last in the years list\n // Otherwise if we have a min year we calculate an offset so that the min year will be the first in the years list\n const minMaxOffset = maxYear - yearsPerPage + 1 || minYear || 0;\n return positiveModulus(focusedYear - minMaxOffset, yearsPerPage);\n }\n}\n","<div class=\"ids-year-selector__years-grid ids-calendar-grid\">\n @for (year of _years(); track $index) {\n @let isSelected = _isYearSelected(year);\n @let isFocused = _isYearFocused(year);\n @let isCurrentYear = _isCurrentYear(year);\n @let tabIndex = isFocused ? 0 : -1;\n @let isDisabled = _isYearDisabled(year);\n <div class=\"ids-calendar-cell\">\n <button\n type=\"button\"\n class=\"ids-year-selector__year-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isCurrentYear\"\n [tabIndex]=\"tabIndex\"\n [class.ids-year-selector__year-button--current-year]=\"isCurrentYear\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectYear($event, year)\"\n >{{ year }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from './calendar-page';\n\nimport { IdsDatepickerIntl } from '../datepicker-intl';\nimport { IdsDaySelectorComponent } from '../day-selector/day-selector.component';\nimport { IdsMonthSelectorComponent } from '../month-selector/month-selector.component';\nimport { IdsDatepickerView, IdsDatepickerViewType } from '../tokens/datepicker-view';\nimport { IdsYearSelectorComponent } from '../year-selector/year-selector.component';\n\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, input, linkedSignal, OnInit, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IdsButtonComponent } from '@i-cell/ids-angular/button';\nimport { clampDate, ComponentBaseWithDefaults, IdsSize, IdsSizeType, isValidDate, startOfMonth, startOfYear } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n@Component({\n selector: 'ids-calendar',\n imports: [\n IdsButtonComponent,\n IdsIconComponent,\n IdsIconButtonComponent,\n IdsDaySelectorComponent,\n IdsMonthSelectorComponent,\n IdsYearSelectorComponent,\n ],\n templateUrl: './calendar.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkTrapFocus],\n host: {\n 'class': 'ids-calendar-surface',\n },\n})\nexport class IdsCalendarComponent extends ComponentBaseWithDefaults<object> implements OnInit {\n protected readonly _defaultConfig = {};\n protected override get _hostName(): string {\n return 'calendar';\n }\n\n private _cdRef = inject(ChangeDetectorRef);\n private _intl = inject(IdsDatepickerIntl);\n\n public value = input<Date | null>(null);\n public size = input.required<IdsSizeType>();\n public view = input.required<IdsDatepickerViewType>();\n public min = input<Date | null>(null);\n public max = input<Date | null>(null);\n\n public selected = output<Date>();\n public monthSelected = output<Date>();\n public yearSelected = output<Date>();\n\n private _calendarPage = viewChild(IdsCalendarPage);\n\n protected _view = linkedSignal(() => this.view());\n\n protected _hostClasses = computed(() => this._getHostClasses([this.size()]));\n\n protected _headerButtonSize = computed(() => (this.size() === IdsSize.DENSE ? IdsSize.COMPACT : this.size()));\n protected _headerLabel = computed<string>(() => this._calendarPage()?.headerLabel() ?? '');\n\n protected _prevPageLabel = computed<string>(() => {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n return this._intl.prevMonthLabel;\n case IdsDatepickerView.MONTH:\n return this._intl.prevYearLabel;\n case IdsDatepickerView.YEAR:\n return this._intl.prevYearsPageLabel;\n }\n });\n\n protected _nextPageLabel = computed<string>(() => {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n return this._intl.nextMonthLabel;\n case IdsDatepickerView.MONTH:\n return this._intl.nextYearLabel;\n case IdsDatepickerView.YEAR:\n return this._intl.nextYearsPageLabel;\n }\n });\n\n protected _switchViewLabel = computed<string>(() => (\n this._view() === IdsDatepickerView.DAY ? this._intl.switchToYearSelectorLabel : this._intl.switchToDaySelectorLabel\n ));\n\n protected _focusedDate: Date = new Date();\n\n public ngOnInit(): void {\n this._intl.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this._cdRef.markForCheck());\n this._setFocusedDate(this.value());\n }\n\n protected _selectYear(selectedYear: Date): void {\n this._setFocusedDate(selectedYear);\n this.yearSelected.emit(startOfYear(selectedYear));\n this._view.set(IdsDatepickerView.MONTH);\n }\n\n protected _selectMonth(selectedMonth: Date): void {\n this._setFocusedDate(selectedMonth);\n this.monthSelected.emit(startOfMonth(selectedMonth));\n this._view.set(IdsDatepickerView.DAY);\n }\n\n protected _selectDate(date: Date): void {\n this.selected.emit(date);\n }\n\n protected _hasPrevPage(): boolean {\n return this._calendarPage()?.hasPreviousPage() ?? true;\n }\n\n protected _gotoPrevPage(): void {\n this._calendarPage()!.gotoPreviousPage();\n }\n\n protected _hasNextPage(): boolean {\n return this._calendarPage()?.hasNextPage() ?? true;\n }\n\n protected _gotoNextPage(): void {\n this._calendarPage()!.gotoNextPage();\n }\n\n protected _switchView(): void {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n this._view.set(IdsDatepickerView.YEAR);\n break;\n case IdsDatepickerView.YEAR:\n case IdsDatepickerView.MONTH:\n this._view.set(IdsDatepickerView.DAY);\n break;\n }\n }\n\n private _setFocusedDate(date: Date | null): void {\n const safeValue = isValidDate(date) ? date : new Date();\n this._focusedDate = clampDate(safeValue, this.min(), this.max());\n this._cdRef.markForCheck();\n }\n}\n","<div class=\"ids-calendar__header\">\n <button\n type=\"button\"\n idsIconButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'standard'\"\n [disabled]=\"!_hasPrevPage()\"\n [attr.aria-label]=\"_prevPageLabel()\"\n (click)=\"_gotoPrevPage()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-left\" [sizeCollection]=\"'big'\" />\n </button>\n <button\n type=\"button\"\n idsButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'text'\"\n [attr.aria-label]=\"_switchViewLabel()\"\n [attr.aria-description]=\"_headerLabel()\"\n (click)=\"_switchView()\"\n >\n {{ _headerLabel() }}\n <ids-icon icon-trailing aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-down\" />\n </button>\n <button\n type=\"button\"\n idsIconButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'standard'\"\n [disabled]=\"!_hasNextPage()\"\n [attr.aria-label]=\"_nextPageLabel()\"\n (click)=\"_gotoNextPage()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-right\" />\n </button>\n</div>\n@switch (_view()) {\n @case ('day') {\n <ids-day-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectDate($event)\" />\n }\n @case ('month') {\n <ids-month-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectMonth($event)\" />\n }\n @case ('year') {\n <ids-year-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectYear($event)\" />\n }\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const datepickerConnectedPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ids-datepicker-calendar-above',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ids-datepicker-calendar-above',\n },\n];\n","import { IdsCalendarComponent } from './calendar/calendar.component';\nimport { IDS_DATEPICKER_DEFAULT_CONFIG, IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY, IdsDatepickerDefaultConfig } from './datepicker-defaults';\nimport { datepickerConnectedPositions } from './datepicker-positions';\nimport { IDS_DATE_FORMATTER } from './tokens/date-formatter';\nimport { IDS_DATE_PARSER } from './tokens/date-parser';\nimport { IdsDatepickerViewType } from './tokens/datepicker-view';\n\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { afterNextRender, booleanAttribute, ComponentRef, Directive, effect, ElementRef, forwardRef, inject, Injector, input, OnChanges, output, signal, SimpleChanges, ViewContainerRef } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn, Validators } from '@angular/forms';\nimport { compareDates, deserializeDate, DirectiveBaseWithDefaults, equalDates, getValidDateOrNull, isValidDate } from '@i-cell/ids-angular/core';\nimport { IdsFormFieldComponent } from '@i-cell/ids-angular/forms';\nimport { filter, merge, Observable, Subscription } from 'rxjs';\n\nconst defaultConfig = IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: 'input[idsDatepicker]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsDatepickerDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => IdsDatepickerDirective),\n multi: true,\n },\n ],\n host: {\n '[disabled]': 'disabled',\n '(input)': '_handleInput($event.target.value)',\n '(blur)': '_handleBlur()',\n '(keydown)': '_handleKeydown($event)',\n },\n exportAs: 'idsDatepicker',\n})\nexport class IdsDatepickerDirective extends DirectiveBaseWithDefaults<IdsDatepickerDefaultConfig>\n implements OnChanges, ControlValueAccessor, Validator {\n\n protected override _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DATEPICKER_DEFAULT_CONFIG);\n protected override _hostClasses = signal('');\n\n private _viewContainerRef = inject(ViewContainerRef);\n private _elementRef = inject(ElementRef);\n private _parent = inject(IdsFormFieldComponent);\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n\n public formatter = input(inject(IDS_DATE_FORMATTER));\n public parser = input(inject(IDS_DATE_PARSER));\n\n public view = input<IdsDatepickerViewType>(this._defaultConfig.view);\n public minDate = input(null, { transform: (value: unknown) => getValidDateOrNull(deserializeDate(value)) });\n public maxDate = input(null, { transform: (value: unknown) => getValidDateOrNull(deserializeDate(value)) });\n\n private _inputChanges = effect(() => {\n const min = this.minDate();\n const max = this.maxDate();\n const view = this.view();\n const size = this._parent.size();\n const calendar = this._componentRef?.instance;\n\n if (!calendar) {\n return;\n }\n\n if (!equalDates(min, calendar.min())) {\n this._componentRef?.setInput('min', min);\n }\n if (!equalDates(max, calendar.max())) {\n this._componentRef?.setInput('max', max);\n }\n if (view !== calendar.view()) {\n this._componentRef?.setInput('view', view);\n }\n if (size !== calendar.size()) {\n this._componentRef?.setInput('size', size);\n }\n });\n\n public openedInput = input<boolean, unknown>(false, { transform: booleanAttribute, alias: 'opened' });\n private _opened = signal(this.openedInput() ?? false);\n public opened = this._opened.asReadonly();\n\n public monthSelected = output<Date>();\n public yearSelected = output<Date>();\n\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => void = () => {};\n private _onValidatorChange: () => void = () => {};\n\n private _overlayRef: OverlayRef | null = null;\n private _componentRef: ComponentRef<IdsCalendarComponent> | null = null;\n private _scrollStrategy = this._overlay.scrollStrategies.reposition();\n\n private _overlayCloseSub = Subscription.EMPTY;\n\n public get value(): Date | null {\n return deserializeDate(this._parent.controlDir()?.value);\n }\n\n private _isValid = signal(false);\n\n private _dateFormatValidator: ValidatorFn = (): ValidationErrors | null => (this._isValid() ? null : { idsDateFormat: true });\n\n private _minValidator: ValidatorFn = (): ValidationErrors | null => {\n const current = getValidDateOrNull(deserializeDate(this.value));\n const min = this.minDate();\n return !min || !current || compareDates(min, current) <= 0 ? null : { 'idsDateMin': { min, current } };\n };\n\n private _maxValidator: ValidatorFn = (): ValidationErrors | null => {\n const current = getValidDateOrNull(deserializeDate(this.value));\n const max = this.maxDate();\n return !max || !current || compareDates(max, current) >= 0 ? null : { 'idsDateMax': { max, current } };\n };\n\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n private _validator = Validators.compose([this._dateFormatValidator, this._minValidator, this._maxValidator]) as ValidatorFn;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if ('opened' in changes) {\n if (this.openedInput()) {\n this.open();\n } else {\n this.close();\n }\n }\n if (('minDate' in changes && !changes['minDate'].firstChange) || ('maxDate' in changes && !changes['maxDate'].firstChange)) {\n this._onValidatorChange();\n }\n }\n\n // #region Value accessor implementation\n public writeValue(obj: unknown): void {\n this._isValid.set(this._isValidValue(deserializeDate(obj)));\n this._setInputValue(obj);\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n // #endregion\n\n // #region Validator implementation\n public validate(control: AbstractControl): ValidationErrors | null {\n return this._validator(control);\n }\n\n public registerOnValidatorChange?(fn: () => void): void {\n this._onValidatorChange = fn;\n }\n // #endregion\n\n public open(): void {\n if (this.opened() || this._parent.disabled()) {\n return;\n }\n\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\n\n this._overlayCloseSub = this._onOverlayClose(this._overlayRef).subscribe((event) => {\n event?.preventDefault();\n this.close();\n });\n this._onPageNavigationKeydown(this._overlayRef).subscribe((event) => event?.preventDefault());\n\n this._componentRef = this._overlayRef.attach(new ComponentPortal(IdsCalendarComponent, this._viewContainerRef));\n this._componentRef.setInput('value', this.value);\n this._componentRef.setInput('min', this.minDate());\n this._componentRef.setInput('max', this.maxDate());\n this._componentRef.setInput('view', this.view());\n this._componentRef.setInput('size', this._parent.size());\n\n this._componentRef.instance.selected.subscribe((selectedDate: Date) => {\n this._onChange(selectedDate);\n this._setInputValue(this.value);\n this.close();\n });\n this._componentRef.instance.monthSelected.subscribe((selectedMonth: Date) => this.monthSelected.emit(selectedMonth));\n this._componentRef.instance.yearSelected.subscribe((selectedYear: Date) => this.yearSelected.emit(selectedYear));\n\n this._opened.set(true);\n }\n\n public close(): void {\n if (!this._opened()) {\n return;\n }\n\n this._overlayCloseSub.unsubscribe();\n this._overlayCloseSub = Subscription.EMPTY;\n\n this._disposeOverlay();\n\n this._opened.set(false);\n\n afterNextRender(() => this._elementRef.nativeElement.focus(), { injector: this._injector });\n }\n\n private _handleInput(value: string): void {\n const parsed = this.parser()(value);\n\n this._isValid.set(this._isValidValue(parsed));\n\n const date = getValidDateOrNull(parsed);\n const valueChanged = !equalDates(date, this.value);\n\n if (!date || valueChanged) {\n this._onChange(date);\n }\n }\n\n private _handleBlur(): void {\n this._onTouched();\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n if (event.code === 'ArrowDown' && event.altKey && !event.ctrlKey && !event.shiftKey && !event.metaKey) {\n this.open();\n }\n }\n\n private _isValidValue(value: unknown): boolean {\n return !value || isValidDate(value);\n }\n\n private _setInputValue(value: unknown): void {\n this._elementRef.nativeElement.value = isValidDate(value) ? this.formatter()(value) : '';\n }\n\n private _getOverlayConfig(): OverlayConfig {\n const overlayViewportMargin = 8;\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._parent.getConnectedOverlayOrigin())\n .withTransformOriginOn('.mat-datepicker-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(overlayViewportMargin)\n .withLockedPosition()\n .withPositions(datepickerConnectedPositions);\n\n return {\n positionStrategy,\n hasBackdrop: true,\n backdropClass: [],\n direction: 'ltr',\n scrollStrategy: this._scrollStrategy,\n panelClass: 'ids-datepicker-panel',\n };\n }\n\n private _disposeOverlay(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._componentRef = null;\n }\n }\n\n private _onOverlayClose(overlayRef: OverlayRef): Observable<MouseEvent | KeyboardEvent | void> {\n return merge(\n overlayRef.backdropClick(),\n overlayRef.detachments(),\n overlayRef.keydownEvents().pipe(filter((event) => event.code === 'Escape' && !hasModifierKey(event))),\n );\n }\n\n private _onPageNavigationKeydown(overlayRef: OverlayRef): Observable<KeyboardEvent> {\n return overlayRef.keydownEvents().pipe(filter((event) => [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'PageUp',\n 'PageDown',\n ].includes(event.code)));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-datepicker.mjs","sources":["../../../projects/widgets/datepicker/tokens/datepicker-view.ts","../../../projects/widgets/datepicker/tokens/date-formatter.ts","../../../projects/widgets/datepicker/tokens/date-parser.ts","../../../projects/widgets/datepicker/datepicker-intl.ts","../../../projects/widgets/datepicker/trigger/datepicker-trigger.component.ts","../../../projects/widgets/datepicker/trigger/datepicker-trigger.component.html","../../../projects/widgets/datepicker/datepicker-defaults.ts","../../../projects/widgets/datepicker/calendar/calendar-page.ts","../../../projects/widgets/datepicker/day-selector/day-selector.component.ts","../../../projects/widgets/datepicker/day-selector/day-selector.component.html","../../../projects/widgets/datepicker/month-selector/month-selector.component.ts","../../../projects/widgets/datepicker/month-selector/month-selector.component.html","../../../projects/widgets/datepicker/year-selector/year-selector.component.ts","../../../projects/widgets/datepicker/year-selector/year-selector.component.html","../../../projects/widgets/datepicker/calendar/calendar.component.ts","../../../projects/widgets/datepicker/calendar/calendar.component.html","../../../projects/widgets/datepicker/datepicker-positions.ts","../../../projects/widgets/datepicker/datepicker.directive.ts","../../../projects/widgets/datepicker/i-cell-ids-angular-datepicker.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IdsDatepickerView = {\n DAY: 'day',\n MONTH: 'month',\n YEAR: 'year',\n} as const;\n\nexport type IdsDatepickerViewType = (typeof IdsDatepickerView)[keyof typeof IdsDatepickerView];\n","import { InjectionToken } from '@angular/core';\nimport { formatDate } from '@i-cell/ids-angular/core';\n\nexport type IdsDateFormatterFn = (date: Date) => string;\n\nexport const IDS_DATE_FORMATTER = new InjectionToken<IdsDateFormatterFn>('idsDateFormatter', {\n providedIn: 'root',\n factory: (): IdsDateFormatterFn => formatDate,\n});\n","import { InjectionToken } from '@angular/core';\nimport { parseDate } from '@i-cell/ids-angular/core';\n\nexport type IdsDateParserFn = (value: string, utc?: boolean) => Date | null;\n\nexport const IDS_DATE_PARSER = new InjectionToken<IdsDateParserFn>('idsDateParser', {\n providedIn: 'root',\n factory: (): IdsDateParserFn => parseDate,\n});\n","import { Injectable } from '@angular/core';\nimport { isValidDate } from '@i-cell/ids-angular/core';\nimport { Subject } from 'rxjs';\n\nconst dayAriaLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long', day: 'numeric' });\nconst monthLabelFormat = new Intl.DateTimeFormat('en-GB', { month: 'short' });\nconst monthAriaLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long' });\nconst daySelectorHeaderLabelFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long' });\nconst weekdayLabelFormat = new Intl.DateTimeFormat('en-GB', { weekday: 'narrow' });\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDatepickerIntl {\n public readonly changes: Subject<void> = new Subject<void>();\n\n public triggerButtonLabel = 'Open calendar';\n\n public prevMonthLabel = 'Previous month';\n public nextMonthLabel = 'Next month';\n\n public prevYearLabel = 'Previous year';\n public nextYearLabel = 'Next year';\n\n public prevYearsPageLabel = 'Previous 24 years';\n public nextYearsPageLabel = 'Next 24 years';\n\n public switchToDaySelectorLabel = 'Choose date';\n public switchToYearSelectorLabel = 'Choose year and month';\n\n public getDayAriaLabel(date: Date): string | null {\n return this._formatDate(date, dayAriaLabelFormat);\n }\n\n public getMonthLabel(date: Date): string | null {\n return this._formatDate(date, monthLabelFormat);\n }\n\n public getMonthAriaLabel(date: Date): string | null {\n return this._formatDate(date, monthAriaLabelFormat);\n }\n\n public getDaySelectorHeaderLabel(date: Date): string | null {\n return this._formatDate(date, daySelectorHeaderLabelFormat);\n }\n\n public getWeekdayHeaderLabel(date: Date): string | null {\n return this._formatDate(date, weekdayLabelFormat);\n }\n\n protected _formatDate(date: unknown, dateFormat: Intl.DateTimeFormat): string | null {\n return isValidDate(date) ? dateFormat.format(date) : null;\n }\n}\n","import { IdsDatepickerIntl } from '../datepicker-intl';\nimport { IdsDatepickerDirective } from '../datepicker.directive';\n\nimport { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { IdsFormFieldComponent } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n@Component({\n selector: 'ids-datepicker-trigger',\n imports: [\n IdsIconComponent,\n IdsIconButtonComponent,\n ],\n templateUrl: './datepicker-trigger.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IdsDatepickerTriggerComponent {\n protected _parent = inject(IdsFormFieldComponent);\n protected _intl = inject(IdsDatepickerIntl);\n\n public datepicker = input.required<IdsDatepickerDirective>({ alias: 'for' });\n public ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n}\n","<button\n type=\"button\"\n idsIconButton\n aria-haspopup=\"true\"\n [size]=\"'dense'\"\n [variant]=\"'surface'\"\n [disabled]=\"_parent.disabled()\"\n [attr.aria-label]=\"ariaLabel() || _intl.triggerButtonLabel\"\n [attr.aria-expanded]=\"datepicker() ? datepicker().opened() : null\"\n (click)=\"datepicker().open()\"\n>\n <ids-icon aria-hidden=\"true\" fontIcon=\"calendar-days\" [attr.alt]=\"ariaLabel() || _intl.triggerButtonLabel\" />\n</button>\n","import { IdsDatepickerView, IdsDatepickerViewType } from './tokens/datepicker-view';\n\nimport { InjectionToken } from '@angular/core';\n\nexport interface IdsDatepickerDefaultConfig {\n view?: IdsDatepickerViewType,\n}\n\nexport const IDS_DATEPICKER_DEFAULT_CONFIG = new InjectionToken<IdsDatepickerDefaultConfig>(\n 'IDS_DATEPICKER_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY(): Required<IdsDatepickerDefaultConfig> {\n return {\n view: IdsDatepickerView.DAY,\n };\n}\n\n","import { IdsDatepickerIntl } from '../datepicker-intl';\n\nimport { afterNextRender, AfterViewInit, ChangeDetectorRef, Directive, ElementRef, inject, Injector, input, model, output, Signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\n\n@Directive()\nexport abstract class IdsCalendarPage implements AfterViewInit {\n private readonly _calendarButtonSelector = '.ids-calendar-button-focused';\n public abstract headerLabel: Signal<string>;\n\n protected _element = inject(ElementRef);\n private _injector = inject(Injector);\n private _cdRef = inject(ChangeDetectorRef);\n protected _intl = inject(IdsDatepickerIntl);\n\n public value = input<Date | null>(null);\n public focusedDate = model.required<Date>();\n public min = input<Date | null>(null);\n public max = input<Date | null>(null);\n\n public selected = output<Date>();\n\n public abstract hasPreviousPage(): boolean;\n public abstract gotoPreviousPage(): void;\n public abstract hasNextPage(): boolean;\n public abstract gotoNextPage(): void;\n\n protected readonly _today = new Date();\n\n constructor() {\n toObservable(this.focusedDate).pipe(takeUntilDestroyed()).subscribe(() => this._moveFocusToCurrent());\n this._intl.changes.pipe(takeUntilDestroyed()).subscribe(() => this._cdRef.markForCheck());\n }\n\n public ngAfterViewInit(): void {\n this._moveFocusToCurrent();\n }\n\n private _moveFocusToCurrent(): void {\n afterNextRender(() => {\n const focusedDayButton = this._element.nativeElement.querySelector(this._calendarButtonSelector) as HTMLButtonElement;\n if (focusedDayButton) {\n focusedDayButton.focus();\n }\n }, { injector: this._injector });\n }\n}\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { addDays, addMonths, addYears, clampDate, compareDates, endOfMonth, endOfWeek, equalDates, getDatesBetween, isValidDate, startOfMonth, startOfWeek } from '@i-cell/ids-angular/core';\n\nconst firstDayOfWeekOffset = 1;\nconst daysPerWeek = 7;\n\n@Component({\n selector: 'ids-day-selector',\n imports: [],\n templateUrl: './day-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsDaySelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-day-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsDaySelectorComponent extends IdsCalendarPage {\n public override headerLabel = computed<string>(() => (this._intl.getDaySelectorHeaderLabel(this._currentMonth()) ?? ''));\n\n protected _currentMonth = computed<Date>(() => startOfMonth(this.focusedDate()));\n protected _previousMonth = computed<Date>(() => addMonths(this._currentMonth(), -1));\n protected _nextMonth = computed<Date>(() => addMonths(this._currentMonth(), 1));\n\n protected _gridStartDate = computed(() => startOfWeek(this._currentMonth(), firstDayOfWeekOffset));\n protected _gridEndDate = computed(() => endOfWeek(endOfMonth(this._currentMonth()), firstDayOfWeekOffset));\n protected _days = computed(() => getDatesBetween(this._gridStartDate(), this._gridEndDate()));\n\n protected _weekdayLabels = computed<string[]>(() =>\n this._days().slice(0, daysPerWeek).map((date: Date) => this._intl.getWeekdayHeaderLabel(date) ?? ''));\n\n public override hasPreviousPage(): boolean {\n const dayOnPrevPage = addDays(this._gridStartDate(), -1);\n const min = this.min() ?? dayOnPrevPage;\n\n return compareDates(dayOnPrevPage, min) > -1;\n }\n\n public override gotoPreviousPage(): void {\n const current = this._currentMonth();\n this.focusedDate.set(new Date(current.getFullYear(), current.getMonth(), 0));\n }\n\n public override hasNextPage(): boolean {\n const dayOnNextPage = addDays(this._gridEndDate(), 1);\n const max = this.max() ?? dayOnNextPage;\n\n return compareDates(dayOnNextPage, max) < 1;\n }\n\n public override gotoNextPage(): void {\n const current = this._currentMonth();\n this.focusedDate.set(new Date(current.getFullYear(), current.getMonth() + 1, 1));\n }\n\n protected _selectDate(event: MouseEvent, date: Date): void {\n event.stopPropagation();\n event.preventDefault();\n this.selected.emit(date);\n }\n\n protected _isDateInCurrentMonth(date: Date): boolean {\n return date.getMonth() === this._currentMonth().getMonth();\n }\n\n protected _isDateFocused(date: Date): boolean {\n return equalDates(date, this.focusedDate());\n }\n\n protected _isDateSelected(date: Date): boolean {\n return equalDates(date, this.value());\n }\n\n protected _isDateDisabled(date: Date): boolean {\n const min = this.min();\n const max = this.max();\n\n return (isValidDate(min) && compareDates(date, min) === -1) || (isValidDate(max) && compareDates(date, max) === 1);\n }\n\n protected _isDateToday(date: Date): boolean {\n return equalDates(date, this._today);\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n\n focusedDate = addDays(focusedDate, -daysPerWeek);\n break;\n case 'ArrowDown':\n\n focusedDate = addDays(focusedDate, daysPerWeek);\n break;\n case 'ArrowLeft':\n focusedDate = addDays(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addDays(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = startOfWeek(focusedDate, firstDayOfWeekOffset);\n break;\n case 'End':\n focusedDate = endOfWeek(focusedDate, firstDayOfWeekOffset);\n break;\n case 'PageUp':\n focusedDate = this._hasShiftModifierKey(event) ? addYears(focusedDate, -1) : addMonths(focusedDate, -1);\n break;\n case 'PageDown':\n focusedDate = this._hasShiftModifierKey(event) ? addYears(focusedDate, 1) : addMonths(focusedDate, 1);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n\n private _hasShiftModifierKey(event: KeyboardEvent): boolean {\n return event.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey;\n }\n}\n","<div class=\"ids-day-selector__days-grid ids-calendar-grid\">\n @for (label of _weekdayLabels(); track $index) {\n <div class=\"ids-calendar-cell\">\n <span class=\"ids-day-selector__header--label ids-calendar-weekday-label\">{{ label }}</span>\n </div>\n }\n @for (day of _days(); track $index) {\n @let dayLabel = day.getDate();\n @let isSelected = _isDateSelected(day);\n @let isFocused = _isDateFocused(day);\n @let isToday = _isDateToday(day);\n @let isDisabled = _isDateDisabled(day) || !_isDateInCurrentMonth(day);\n @let tabIndex = isFocused ? 0 : -1;\n @let ariaLabel = _intl.getDayAriaLabel(day);\n <div class=\"ids-calendar-cell\" [class.ids-calendar-cell-selected]=\"isSelected\">\n <button\n type=\"button\"\n class=\"ids-day-selector__day-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isToday\"\n [tabIndex]=\"tabIndex\"\n [class.ids-calendar-button-today]=\"isToday\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectDate($event, day)\"\n >{{ dayLabel }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { addMonths, addYears, clampDate, compareDates, createNormalizedDate, endOfMonth, isValidDate, startOfMonth } from '@i-cell/ids-angular/core';\nimport { map, startWith } from 'rxjs';\n\nconst monthsPerRow = 4;\nconst lastMonth = 11;\n\n@Component({\n selector: 'ids-month-selector',\n imports: [],\n templateUrl: './month-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsMonthSelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-month-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsMonthSelectorComponent extends IdsCalendarPage {\n protected _focusedYear = computed<number>(() => this.focusedDate().getFullYear());\n\n protected _monthLabels = toSignal(this._intl.changes.pipe(startWith(null), map(() => {\n const currentYear = new Date().getFullYear();\n const monthLabels = Array.from({ length: 12 })\n .map((nil, month) => this._intl.getMonthLabel(createNormalizedDate(currentYear, month, 1)) ?? '');\n return monthLabels;\n })));\n\n public override headerLabel = computed<string>(() => String(this._focusedYear()));\n\n public override hasPreviousPage(): boolean {\n const min = this.min();\n\n if (!isValidDate(min)) {\n return true;\n }\n\n const startOfYear = createNormalizedDate(this._focusedYear(), 0, 1);\n\n return compareDates(min, startOfYear) === -1;\n }\n\n public override gotoPreviousPage(): void {\n this.focusedDate.set(createNormalizedDate(this._focusedYear() - 1, lastMonth, 1));\n }\n\n public override hasNextPage(): boolean {\n const max = this.max();\n\n if (!isValidDate(max)) {\n return true;\n }\n\n // eslint-disable-next-line no-magic-numbers\n const endOfYear = createNormalizedDate(this._focusedYear(), 11, 31);\n\n return compareDates(max, endOfYear) === 1;\n }\n\n public override gotoNextPage(): void {\n this.focusedDate.set(createNormalizedDate(this._focusedYear() + 1, 0, 1));\n }\n\n protected _selectMonth(event: MouseEvent, month: number): void {\n event.stopPropagation();\n event.preventDefault();\n\n const currentFocusedDate = this.focusedDate();\n const nextFocusedDate = createNormalizedDate(currentFocusedDate.getFullYear(), month, currentFocusedDate.getDate());\n\n this.selected.emit(clampDate(nextFocusedDate, this.min(), this.max()));\n }\n\n protected _isMonthFocused(month: number): boolean {\n return month === this.focusedDate().getMonth();\n }\n\n protected _isMonthSelected(month: number): boolean {\n const selectedYear = this.value()?.getFullYear();\n const selectedMonth = this.value()?.getMonth();\n\n return this._focusedYear() === selectedYear && month === selectedMonth;\n }\n\n protected _isCurrentMonth(month: number): boolean {\n return this._focusedYear() === this._today.getFullYear() && month === this._today.getMonth();\n }\n\n protected _isMonthDisabled(month: number): boolean {\n const min = this.min();\n const max = this.max();\n const monthAsDate = new Date(this._focusedYear(), month, 1);\n\n return (isValidDate(min) && compareDates(endOfMonth(monthAsDate), startOfMonth(min)) === -1) ||\n (isValidDate(max) && compareDates(monthAsDate, endOfMonth(max)) === 1);\n }\n\n protected _getMonthAsDate(month: number): Date {\n return createNormalizedDate(this._focusedYear(), month, 1);\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n focusedDate = addMonths(focusedDate, -monthsPerRow);\n break;\n case 'ArrowDown':\n focusedDate = addMonths(focusedDate, monthsPerRow);\n break;\n case 'ArrowLeft':\n focusedDate = addMonths(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addMonths(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = new Date(focusedDate.getFullYear(), 0, focusedDate.getDate());\n break;\n case 'End':\n // eslint-disable-next-line no-magic-numbers\n focusedDate = new Date(focusedDate.getFullYear(), 11, focusedDate.getDate());\n break;\n case 'PageUp':\n focusedDate = addYears(focusedDate, -1);\n break;\n case 'PageDown':\n focusedDate = addYears(focusedDate, 1);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n}\n","<div class=\"ids-month-selector__months-grid ids-calendar-grid\">\n @for (monthLabel of _monthLabels(); track $index; let month = $index) {\n @let isSelected = _isMonthSelected(month);\n @let isFocused = _isMonthFocused(month);\n @let isCurrentMonth = _isCurrentMonth(month);\n @let tabIndex = isFocused ? 0 : -1;\n @let isDisabled = _isMonthDisabled(month);\n @let ariaLabel = _intl.getMonthAriaLabel(_getMonthAsDate(month));\n <div class=\"ids-calendar-cell\">\n <button\n type=\"button\"\n class=\"ids-month-selector__month-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isCurrentMonth\"\n [tabIndex]=\"tabIndex\"\n [class.ids-month-selector__month-button--current-month]=\"isCurrentMonth\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectMonth($event, month)\"\n >{{ monthLabel }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from '../calendar/calendar-page';\n\nimport { ChangeDetectionStrategy, Component, computed, ViewEncapsulation } from '@angular/core';\nimport { addYears, clampDate, createNormalizedDate, isValidDate, positiveModulus } from '@i-cell/ids-angular/core';\n\nconst yearsPerRow = 4;\nconst yearsPerPage = 24;\n\n@Component({\n selector: 'ids-year-selector',\n imports: [],\n templateUrl: './year-selector.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: IdsCalendarPage,\n useExisting: IdsYearSelectorComponent,\n },\n ],\n host: {\n 'class': 'ids-year-selector',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class IdsYearSelectorComponent extends IdsCalendarPage {\n private _firstYearOnPage = computed(() => {\n const focusedYear = this.focusedDate().getFullYear();\n const firstYearOffset = this._getFirstYearOffset(focusedYear, this.min()?.getFullYear(), this.max()?.getFullYear());\n const firstYearOnPage = focusedYear - firstYearOffset;\n\n return firstYearOnPage;\n });\n\n protected _years = computed(() => {\n const firstYearOnPage = this._firstYearOnPage();\n const years = Array.from({ length: yearsPerPage }).map((_nil, index) => firstYearOnPage + index);\n\n return years;\n });\n\n public override headerLabel = computed<string>(() => `${this._years()[0]} - ${this._years().at(-1)}`);\n\n public override hasPreviousPage(): boolean {\n const min = Number.isFinite(this.min()?.getFullYear()) ? this.min()!.getFullYear() : Number.POSITIVE_INFINITY;\n const firstYearOnPage = Number.isFinite(this._firstYearOnPage()) ? this._firstYearOnPage() : Number.NEGATIVE_INFINITY;\n\n return firstYearOnPage > min;\n }\n\n public override gotoPreviousPage(): void {\n const firstYearOnPage = this._firstYearOnPage();\n const currentFocusedDate = this.focusedDate();\n this.focusedDate.set(createNormalizedDate(firstYearOnPage - 1, currentFocusedDate.getMonth(), currentFocusedDate.getDate()));\n }\n\n public override hasNextPage(): boolean {\n const max = Number.isFinite(this.max()?.getFullYear()) ? this.max()!.getFullYear() : Number.NEGATIVE_INFINITY;\n const lastYearOnPage = Number.isFinite(this._firstYearOnPage()) ? this._firstYearOnPage() + yearsPerPage - 1 : Number.POSITIVE_INFINITY;\n\n return lastYearOnPage < max;\n }\n\n public override gotoNextPage(): void {\n const firstYearOnPage = this._firstYearOnPage();\n const currentFocusedDate = this.focusedDate();\n this.focusedDate.set(\n createNormalizedDate(firstYearOnPage + yearsPerPage, currentFocusedDate.getMonth(), currentFocusedDate.getDate()));\n }\n\n protected _selectYear(event: MouseEvent, year: number): void {\n event.stopPropagation();\n event.preventDefault();\n\n const currentFocusedDate = this.focusedDate();\n const nextFocusedDate = createNormalizedDate(year, currentFocusedDate.getMonth(), currentFocusedDate.getDate());\n\n this.selected.emit(clampDate(nextFocusedDate, this.min(), this.max()));\n }\n\n protected _isYearFocused(year: number): boolean {\n return year === this.focusedDate().getFullYear();\n }\n\n protected _isYearSelected(year: number): boolean {\n return year === this.value()?.getFullYear();\n }\n\n protected _isCurrentYear(year: number): boolean {\n return year === new Date().getFullYear();\n }\n\n protected _isYearDisabled(year: number): boolean {\n const min = this.min();\n const max = this.max();\n\n return (isValidDate(min) && year < min.getFullYear()) || (isValidDate(max) && year > max.getFullYear());\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n let focusedDate = this.focusedDate();\n\n switch (event.code) {\n case 'ArrowUp':\n focusedDate = addYears(focusedDate, -yearsPerRow);\n break;\n case 'ArrowDown':\n focusedDate = addYears(focusedDate, yearsPerRow);\n break;\n case 'ArrowLeft':\n focusedDate = addYears(focusedDate, -1);\n break;\n case 'ArrowRight':\n focusedDate = addYears(focusedDate, 1);\n break;\n case 'Home':\n focusedDate = new Date(this._years()[0], focusedDate.getMonth(), focusedDate.getDate());\n break;\n case 'End':\n focusedDate = new Date(this._years().at(-1)!, focusedDate.getMonth(), focusedDate.getDate());\n break;\n case 'PageUp':\n focusedDate = addYears(focusedDate, -yearsPerPage);\n break;\n case 'PageDown':\n focusedDate = addYears(focusedDate, yearsPerPage);\n break;\n }\n\n this.focusedDate.set(clampDate(focusedDate, this.min(), this.max()));\n }\n\n private _getFirstYearOffset(focusedYear: number, minYear?: number, maxYear: number = (yearsPerPage - 1)): number {\n // If we have a max year we calculate an offset so that the max year will be the last in the years list\n // Otherwise if we have a min year we calculate an offset so that the min year will be the first in the years list\n const minMaxOffset = maxYear - yearsPerPage + 1 || minYear || 0;\n return positiveModulus(focusedYear - minMaxOffset, yearsPerPage);\n }\n}\n","<div class=\"ids-year-selector__years-grid ids-calendar-grid\">\n @for (year of _years(); track $index) {\n @let isSelected = _isYearSelected(year);\n @let isFocused = _isYearFocused(year);\n @let isCurrentYear = _isCurrentYear(year);\n @let tabIndex = isFocused ? 0 : -1;\n @let isDisabled = _isYearDisabled(year);\n <div class=\"ids-calendar-cell\">\n <button\n type=\"button\"\n class=\"ids-year-selector__year-button ids-calendar-button\"\n [attr.disabled]=\"isDisabled || null\"\n [attr.aria-pressed]=\"isSelected\"\n [attr.aria-current]=\"isCurrentYear\"\n [tabIndex]=\"tabIndex\"\n [class.ids-year-selector__year-button--current-year]=\"isCurrentYear\"\n [class.ids-calendar-button-selected]=\"isSelected\"\n [class.ids-calendar-button-focused]=\"isFocused\"\n (click)=\"_selectYear($event, year)\"\n >{{ year }}</button>\n </div>\n }\n</div>\n","import { IdsCalendarPage } from './calendar-page';\n\nimport { IdsDatepickerIntl } from '../datepicker-intl';\nimport { IdsDaySelectorComponent } from '../day-selector/day-selector.component';\nimport { IdsMonthSelectorComponent } from '../month-selector/month-selector.component';\nimport { IdsDatepickerView, IdsDatepickerViewType } from '../tokens/datepicker-view';\nimport { IdsYearSelectorComponent } from '../year-selector/year-selector.component';\n\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, input, linkedSignal, OnInit, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { IdsButtonComponent } from '@i-cell/ids-angular/button';\nimport { clampDate, ComponentBaseWithDefaults, IdsSize, IdsSizeType, isValidDate, startOfMonth, startOfYear } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\n@Component({\n selector: 'ids-calendar',\n imports: [\n IdsButtonComponent,\n IdsIconComponent,\n IdsIconButtonComponent,\n IdsDaySelectorComponent,\n IdsMonthSelectorComponent,\n IdsYearSelectorComponent,\n ],\n templateUrl: './calendar.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [CdkTrapFocus],\n host: {\n 'class': 'ids-calendar-surface',\n },\n})\nexport class IdsCalendarComponent extends ComponentBaseWithDefaults<object> implements OnInit {\n protected readonly _defaultConfig = {};\n protected override get _hostName(): string {\n return 'calendar';\n }\n\n private _cdRef = inject(ChangeDetectorRef);\n private _intl = inject(IdsDatepickerIntl);\n\n public value = input<Date | null>(null);\n public size = input.required<IdsSizeType>();\n public view = input.required<IdsDatepickerViewType>();\n public min = input<Date | null>(null);\n public max = input<Date | null>(null);\n\n public selected = output<Date>();\n public monthSelected = output<Date>();\n public yearSelected = output<Date>();\n\n private _calendarPage = viewChild(IdsCalendarPage);\n\n protected _view = linkedSignal(() => this.view());\n\n protected _hostClasses = computed(() => this._getHostClasses([this.size()]));\n\n protected _headerButtonSize = computed(() => (this.size() === IdsSize.DENSE ? IdsSize.COMPACT : this.size()));\n protected _headerLabel = computed<string>(() => this._calendarPage()?.headerLabel() ?? '');\n\n protected _prevPageLabel = computed<string>(() => {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n return this._intl.prevMonthLabel;\n case IdsDatepickerView.MONTH:\n return this._intl.prevYearLabel;\n case IdsDatepickerView.YEAR:\n return this._intl.prevYearsPageLabel;\n }\n });\n\n protected _nextPageLabel = computed<string>(() => {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n return this._intl.nextMonthLabel;\n case IdsDatepickerView.MONTH:\n return this._intl.nextYearLabel;\n case IdsDatepickerView.YEAR:\n return this._intl.nextYearsPageLabel;\n }\n });\n\n protected _switchViewLabel = computed<string>(() => (\n this._view() === IdsDatepickerView.DAY ? this._intl.switchToYearSelectorLabel : this._intl.switchToDaySelectorLabel\n ));\n\n protected _focusedDate: Date = new Date();\n\n public ngOnInit(): void {\n this._intl.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this._cdRef.markForCheck());\n this._setFocusedDate(this.value());\n }\n\n protected _selectYear(selectedYear: Date): void {\n this._setFocusedDate(selectedYear);\n this.yearSelected.emit(startOfYear(selectedYear));\n this._view.set(IdsDatepickerView.MONTH);\n }\n\n protected _selectMonth(selectedMonth: Date): void {\n this._setFocusedDate(selectedMonth);\n this.monthSelected.emit(startOfMonth(selectedMonth));\n this._view.set(IdsDatepickerView.DAY);\n }\n\n protected _selectDate(date: Date): void {\n this.selected.emit(date);\n }\n\n protected _hasPrevPage(): boolean {\n return this._calendarPage()?.hasPreviousPage() ?? true;\n }\n\n protected _gotoPrevPage(): void {\n this._calendarPage()!.gotoPreviousPage();\n }\n\n protected _hasNextPage(): boolean {\n return this._calendarPage()?.hasNextPage() ?? true;\n }\n\n protected _gotoNextPage(): void {\n this._calendarPage()!.gotoNextPage();\n }\n\n protected _switchView(): void {\n switch (this._view()) {\n case IdsDatepickerView.DAY:\n this._view.set(IdsDatepickerView.YEAR);\n break;\n case IdsDatepickerView.YEAR:\n case IdsDatepickerView.MONTH:\n this._view.set(IdsDatepickerView.DAY);\n break;\n }\n }\n\n private _setFocusedDate(date: Date | null): void {\n const safeValue = isValidDate(date) ? date : new Date();\n this._focusedDate = clampDate(safeValue, this.min(), this.max());\n this._cdRef.markForCheck();\n }\n}\n","<div class=\"ids-calendar__header\">\n <button\n type=\"button\"\n idsIconButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'standard'\"\n [disabled]=\"!_hasPrevPage()\"\n [attr.aria-label]=\"_prevPageLabel()\"\n (click)=\"_gotoPrevPage()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-left\" [sizeCollection]=\"'big'\" />\n </button>\n <button\n type=\"button\"\n idsButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'text'\"\n [attr.aria-label]=\"_switchViewLabel()\"\n [attr.aria-description]=\"_headerLabel()\"\n (click)=\"_switchView()\"\n >\n {{ _headerLabel() }}\n <ids-icon icon-trailing aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-down\" />\n </button>\n <button\n type=\"button\"\n idsIconButton\n [size]=\"_headerButtonSize()\"\n [variant]=\"'surface'\"\n [appearance]=\"'standard'\"\n [disabled]=\"!_hasNextPage()\"\n [attr.aria-label]=\"_nextPageLabel()\"\n (click)=\"_gotoNextPage()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"chevron-right\" />\n </button>\n</div>\n@switch (_view()) {\n @case ('day') {\n <ids-day-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectDate($event)\" />\n }\n @case ('month') {\n <ids-month-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectMonth($event)\" />\n }\n @case ('year') {\n <ids-year-selector [value]=\"value()\" [min]=\"min()\" [max]=\"max()\" [(focusedDate)]=\"_focusedDate\" (selected)=\"_selectYear($event)\" />\n }\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const datepickerConnectedPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ids-datepicker-calendar-above',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ids-datepicker-calendar-above',\n },\n];\n","import { IdsCalendarComponent } from './calendar/calendar.component';\nimport { IDS_DATEPICKER_DEFAULT_CONFIG, IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY, IdsDatepickerDefaultConfig } from './datepicker-defaults';\nimport { datepickerConnectedPositions } from './datepicker-positions';\nimport { IDS_DATE_FORMATTER } from './tokens/date-formatter';\nimport { IDS_DATE_PARSER } from './tokens/date-parser';\nimport { IdsDatepickerViewType } from './tokens/datepicker-view';\n\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { afterNextRender, booleanAttribute, ComponentRef, Directive, effect, ElementRef, forwardRef, inject, Injector, input, OnChanges, output, signal, SimpleChanges, ViewContainerRef } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn, Validators } from '@angular/forms';\nimport { compareDates, deserializeDate, DirectiveBaseWithDefaults, equalDates, getValidDateOrNull, isValidDate } from '@i-cell/ids-angular/core';\nimport { IdsFormFieldComponent } from '@i-cell/ids-angular/forms';\nimport { filter, merge, Observable, Subscription } from 'rxjs';\n\nconst defaultConfig = IDS_DATEPICKER_DEFAULT_CONFIG_FACTORY();\n\n@Directive({\n selector: 'input[idsDatepicker]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IdsDatepickerDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => IdsDatepickerDirective),\n multi: true,\n },\n ],\n host: {\n '[disabled]': 'disabled',\n '(input)': '_handleInput($event.target.value)',\n '(blur)': '_handleBlur()',\n '(keydown)': '_handleKeydown($event)',\n },\n exportAs: 'idsDatepicker',\n})\nexport class IdsDatepickerDirective extends DirectiveBaseWithDefaults<IdsDatepickerDefaultConfig>\n implements OnChanges, ControlValueAccessor, Validator {\n\n protected override _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DATEPICKER_DEFAULT_CONFIG);\n protected override _hostClasses = signal('');\n\n private _viewContainerRef = inject(ViewContainerRef);\n private _elementRef = inject(ElementRef);\n private _parent = inject(IdsFormFieldComponent);\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n\n public formatter = input(inject(IDS_DATE_FORMATTER));\n public parser = input(inject(IDS_DATE_PARSER));\n\n public view = input<IdsDatepickerViewType>(this._defaultConfig.view);\n public minDate = input(null, { transform: (value: unknown) => getValidDateOrNull(deserializeDate(value)) });\n public maxDate = input(null, { transform: (value: unknown) => getValidDateOrNull(deserializeDate(value)) });\n\n private _inputChanges = effect(() => {\n const min = this.minDate();\n const max = this.maxDate();\n const view = this.view();\n const size = this._parent.size();\n const calendar = this._componentRef?.instance;\n\n if (!calendar) {\n return;\n }\n\n if (!equalDates(min, calendar.min())) {\n this._componentRef?.setInput('min', min);\n }\n if (!equalDates(max, calendar.max())) {\n this._componentRef?.setInput('max', max);\n }\n if (view !== calendar.view()) {\n this._componentRef?.setInput('view', view);\n }\n if (size !== calendar.size()) {\n this._componentRef?.setInput('size', size);\n }\n });\n\n public openedInput = input<boolean, unknown>(false, { transform: booleanAttribute, alias: 'opened' });\n private _opened = signal(this.openedInput() ?? false);\n public opened = this._opened.asReadonly();\n\n public monthSelected = output<Date>();\n public yearSelected = output<Date>();\n\n private _onChange: (value: unknown) => void = () => {};\n private _onTouched: () => void = () => {};\n private _onValidatorChange: () => void = () => {};\n\n private _overlayRef: OverlayRef | null = null;\n private _componentRef: ComponentRef<IdsCalendarComponent> | null = null;\n private _scrollStrategy = this._overlay.scrollStrategies.reposition();\n\n private _overlayCloseSub = Subscription.EMPTY;\n\n public get value(): Date | null {\n return deserializeDate(this._parent.controlDir()?.value);\n }\n\n private _isValid = signal(false);\n\n private _dateFormatValidator: ValidatorFn = (): ValidationErrors | null => (this._isValid() ? null : { idsDateFormat: true });\n\n private _minValidator: ValidatorFn = (): ValidationErrors | null => {\n const current = getValidDateOrNull(deserializeDate(this.value));\n const min = this.minDate();\n return !min || !current || compareDates(min, current) <= 0 ? null : { 'idsDateMin': { min, current } };\n };\n\n private _maxValidator: ValidatorFn = (): ValidationErrors | null => {\n const current = getValidDateOrNull(deserializeDate(this.value));\n const max = this.maxDate();\n return !max || !current || compareDates(max, current) >= 0 ? null : { 'idsDateMax': { max, current } };\n };\n\n // eslint-disable-next-line @stylistic/js/array-bracket-newline, @stylistic/js/array-element-newline\n private _validator = Validators.compose([this._dateFormatValidator, this._minValidator, this._maxValidator]) as ValidatorFn;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if ('opened' in changes) {\n if (this.openedInput()) {\n this.open();\n } else {\n this.close();\n }\n }\n if (('minDate' in changes && !changes['minDate'].firstChange) || ('maxDate' in changes && !changes['maxDate'].firstChange)) {\n this._onValidatorChange();\n }\n }\n\n // #region Value accessor implementation\n public writeValue(obj: unknown): void {\n this._isValid.set(this._isValidValue(deserializeDate(obj)));\n this._setInputValue(obj);\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n // #endregion\n\n // #region Validator implementation\n public validate(control: AbstractControl): ValidationErrors | null {\n return this._validator(control);\n }\n\n public registerOnValidatorChange?(fn: () => void): void {\n this._onValidatorChange = fn;\n }\n // #endregion\n\n public open(): void {\n if (this.opened() || this._parent.disabled()) {\n return;\n }\n\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\n\n this._overlayCloseSub = this._onOverlayClose(this._overlayRef).subscribe((event) => {\n event?.preventDefault();\n this.close();\n });\n this._onPageNavigationKeydown(this._overlayRef).subscribe((event) => event?.preventDefault());\n\n this._componentRef = this._overlayRef.attach(new ComponentPortal(IdsCalendarComponent, this._viewContainerRef));\n this._componentRef.setInput('value', this.value);\n this._componentRef.setInput('min', this.minDate());\n this._componentRef.setInput('max', this.maxDate());\n this._componentRef.setInput('view', this.view());\n this._componentRef.setInput('size', this._parent.size());\n\n this._componentRef.instance.selected.subscribe((selectedDate: Date) => {\n this._onChange(selectedDate);\n this._setInputValue(this.value);\n this.close();\n });\n this._componentRef.instance.monthSelected.subscribe((selectedMonth: Date) => this.monthSelected.emit(selectedMonth));\n this._componentRef.instance.yearSelected.subscribe((selectedYear: Date) => this.yearSelected.emit(selectedYear));\n\n this._opened.set(true);\n }\n\n public close(): void {\n if (!this._opened()) {\n return;\n }\n\n this._overlayCloseSub.unsubscribe();\n this._overlayCloseSub = Subscription.EMPTY;\n\n this._disposeOverlay();\n\n this._opened.set(false);\n\n afterNextRender(() => this._elementRef.nativeElement.focus(), { injector: this._injector });\n }\n\n private _handleInput(value: string): void {\n const parsed = this.parser()(value);\n\n this._isValid.set(this._isValidValue(parsed));\n\n const date = getValidDateOrNull(parsed);\n const valueChanged = !equalDates(date, this.value);\n\n if (!date || valueChanged) {\n this._onChange(date);\n }\n }\n\n private _handleBlur(): void {\n this._onTouched();\n }\n\n private _handleKeydown(event: KeyboardEvent): void {\n if (event.code === 'ArrowDown' && event.altKey && !event.ctrlKey && !event.shiftKey && !event.metaKey) {\n this.open();\n }\n }\n\n private _isValidValue(value: unknown): boolean {\n return !value || isValidDate(value);\n }\n\n private _setInputValue(value: unknown): void {\n this._elementRef.nativeElement.value = isValidDate(value) ? this.formatter()(value) : '';\n }\n\n private _getOverlayConfig(): OverlayConfig {\n const overlayViewportMargin = 8;\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._parent.getConnectedOverlayOrigin())\n .withTransformOriginOn('.mat-datepicker-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(overlayViewportMargin)\n .withLockedPosition()\n .withPositions(datepickerConnectedPositions);\n\n return {\n positionStrategy,\n hasBackdrop: true,\n backdropClass: [],\n direction: 'ltr',\n scrollStrategy: this._scrollStrategy,\n panelClass: 'ids-datepicker-panel',\n };\n }\n\n private _disposeOverlay(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._componentRef = null;\n }\n }\n\n private _onOverlayClose(overlayRef: OverlayRef): Observable<MouseEvent | KeyboardEvent | void> {\n return merge(\n overlayRef.backdropClick(),\n overlayRef.detachments(),\n overlayRef.keydownEvents().pipe(filter((event) => event.code === 'Escape' && !hasModifierKey(event))),\n );\n }\n\n private _onPageNavigationKeydown(overlayRef: OverlayRef): Observable<KeyboardEvent> {\n return overlayRef.keydownEvents().pipe(filter((event) => [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'PageUp',\n 'PageDown',\n ].includes(event.code)));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, TemplateRef, Directive, ElementRef, computed, input, contentChild, Component, ViewEncapsulation, ChangeDetectionStrategy, viewChild, ApplicationRef, EnvironmentInjector, Injector, createComponent, Injectable } from '@angular/core';
2
+ import { InjectionToken, inject, TemplateRef, Directive, ElementRef, computed, input, contentChild, ChangeDetectionStrategy, ViewEncapsulation, Component, viewChild, ApplicationRef, DOCUMENT, EnvironmentInjector, Injector, createComponent, Injectable } from '@angular/core';
3
3
  import { IdsSize, ComponentBaseWithDefaults, IdsDetectScrollableDirective } from '@i-cell/ids-angular/core';
4
- import { NgTemplateOutlet, DOCUMENT } from '@angular/common';
4
+ import { NgTemplateOutlet } from '@angular/common';
5
5
  import { IdsIconComponent } from '@i-cell/ids-angular/icon';
6
6
  import { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';
7
7
  import { Subject, fromEvent } from 'rxjs';
@@ -22,10 +22,10 @@ class IdsDialogHeaderDirective {
22
22
  constructor() {
23
23
  this.template = inject(TemplateRef);
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsDialogHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.2", type: IdsDialogHeaderDirective, isStandalone: true, selector: "[idsDialogHeader]", ngImport: i0 }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDialogHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.7", type: IdsDialogHeaderDirective, isStandalone: true, selector: "[idsDialogHeader]", ngImport: i0 }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsDialogHeaderDirective, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDialogHeaderDirective, decorators: [{
29
29
  type: Directive,
30
30
  args: [{
31
31
  selector: '[idsDialogHeader]',
@@ -39,17 +39,17 @@ class IdsDialogComponent extends ComponentBaseWithDefaults {
39
39
  super(...arguments);
40
40
  this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);
41
41
  this.dialog = inject(ElementRef).nativeElement;
42
- this._titleId = computed(() => `${this.id()}-title`);
43
- this.size = input(this._defaultConfig.size);
44
- this.mainTitle = input.required();
45
- this.subTitle = input();
46
- this.showCloseButton = input(this._defaultConfig.showCloseButton);
47
- this.showBackdrop = input(this._defaultConfig.showBackdrop);
48
- this._customHeader = contentChild(IdsDialogHeaderDirective);
42
+ this._titleId = computed(() => `${this.id()}-title`, ...(ngDevMode ? [{ debugName: "_titleId" }] : []));
43
+ this.size = input(this._defaultConfig.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
44
+ this.mainTitle = input.required(...(ngDevMode ? [{ debugName: "mainTitle" }] : []));
45
+ this.subTitle = input(...(ngDevMode ? [undefined, { debugName: "subTitle" }] : []));
46
+ this.showCloseButton = input(this._defaultConfig.showCloseButton, ...(ngDevMode ? [{ debugName: "showCloseButton" }] : []));
47
+ this.showBackdrop = input(this._defaultConfig.showBackdrop, ...(ngDevMode ? [{ debugName: "showBackdrop" }] : []));
48
+ this._customHeader = contentChild(IdsDialogHeaderDirective, ...(ngDevMode ? [{ debugName: "_customHeader" }] : []));
49
49
  this._hostClasses = computed(() => this._getHostClasses([
50
50
  this.size(),
51
51
  this.showBackdrop() ? 'with-backdrop' : null,
52
- ]));
52
+ ]), ...(ngDevMode ? [{ debugName: "_hostClasses" }] : []));
53
53
  }
54
54
  get _hostName() {
55
55
  return 'dialog';
@@ -63,10 +63,10 @@ class IdsDialogComponent extends ComponentBaseWithDefaults {
63
63
  close() {
64
64
  this.dialog.close();
65
65
  }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.2", type: IdsDialogComponent, isStandalone: true, selector: "dialog[idsDialog]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mainTitle: { classPropertyName: "mainTitle", publicName: "mainTitle", isSignal: true, isRequired: true, transformFunction: null }, subTitle: { classPropertyName: "subTitle", publicName: "subTitle", isSignal: true, isRequired: false, transformFunction: null }, showCloseButton: { classPropertyName: "showCloseButton", publicName: "showCloseButton", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "cancel": "_onCancel($event)" }, properties: { "attr.aria-labelledby": "_titleId()" } }, queries: [{ propertyName: "_customHeader", first: true, predicate: IdsDialogHeaderDirective, descendants: true, isSignal: true }], exportAs: ["idsDialog"], usesInheritance: true, ngImport: i0, template: "<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n", dependencies: [{ kind: "directive", type: IdsDetectScrollableDirective, selector: "[idsDetectScrollable]", exportAs: ["idsDetectScrollable"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: IdsDialogComponent, isStandalone: true, selector: "dialog[idsDialog]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mainTitle: { classPropertyName: "mainTitle", publicName: "mainTitle", isSignal: true, isRequired: true, transformFunction: null }, subTitle: { classPropertyName: "subTitle", publicName: "subTitle", isSignal: true, isRequired: false, transformFunction: null }, showCloseButton: { classPropertyName: "showCloseButton", publicName: "showCloseButton", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "cancel": "_onCancel($event)" }, properties: { "attr.aria-labelledby": "_titleId()" } }, queries: [{ propertyName: "_customHeader", first: true, predicate: IdsDialogHeaderDirective, descendants: true, isSignal: true }], exportAs: ["idsDialog"], usesInheritance: true, ngImport: i0, template: "<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n", dependencies: [{ kind: "directive", type: IdsDetectScrollableDirective, selector: "[idsDetectScrollable]", exportAs: ["idsDetectScrollable"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton], a[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsDialogComponent, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDialogComponent, decorators: [{
70
70
  type: Component,
71
71
  args: [{ selector: 'dialog[idsDialog]', imports: [
72
72
  IdsDetectScrollableDirective,
@@ -102,10 +102,10 @@ class IdsCustomDialogBase {
102
102
  this.dialogResult.next(payload);
103
103
  this.dialogResult.complete();
104
104
  }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsCustomDialogBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
106
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.1.2", type: IdsCustomDialogBase, isStandalone: true, viewQueries: [{ propertyName: "_dialog", first: true, predicate: IdsDialogComponent, descendants: true, isSignal: true }], ngImport: i0 }); }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsCustomDialogBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
106
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.1.7", type: IdsCustomDialogBase, isStandalone: true, viewQueries: [{ propertyName: "_dialog", first: true, predicate: IdsDialogComponent, descendants: true, isSignal: true }], ngImport: i0 }); }
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsCustomDialogBase, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsCustomDialogBase, decorators: [{
109
109
  type: Directive,
110
110
  args: [{ standalone: true }]
111
111
  }] });
@@ -141,10 +141,10 @@ class IdsDialogService {
141
141
  });
142
142
  return onClose;
143
143
  }
144
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
145
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsDialogService, providedIn: 'root' }); }
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
145
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDialogService, providedIn: 'root' }); }
146
146
  }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsDialogService, decorators: [{
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: IdsDialogService, decorators: [{
148
148
  type: Injectable,
149
149
  args: [{ providedIn: 'root' }]
150
150
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"i-cell-ids-angular-dialog.mjs","sources":["../../../projects/widgets/dialog/dialog-defaults.ts","../../../projects/widgets/dialog/dialog-header.directive.ts","../../../projects/widgets/dialog/dialog.component.ts","../../../projects/widgets/dialog/dialog.component.html","../../../projects/widgets/dialog/custom-dialog-base.ts","../../../projects/widgets/dialog/dialog.service.ts","../../../projects/widgets/dialog/i-cell-ids-angular-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsDialogDefaultConfig {\n size?: IdsSizeType,\n showCloseButton?: boolean,\n showBackdrop?: boolean,\n}\n\nexport const IDS_DIALOG_DEFAULT_CONFIG = new InjectionToken<IdsDialogDefaultConfig>(\n 'IDS_DIALOG_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DIALOG_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DIALOG_DEFAULT_CONFIG_FACTORY(): Required<IdsDialogDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n showCloseButton: false,\n showBackdrop: true,\n };\n}\n\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[idsDialogHeader]',\n standalone: true,\n})\nexport class IdsDialogHeaderDirective {\n public template = inject(TemplateRef);\n}\n","import { IDS_DIALOG_DEFAULT_CONFIG, IDS_DIALOG_DEFAULT_CONFIG_FACTORY, IdsDialogDefaultConfig } from './dialog-defaults';\nimport { IdsDialogHeaderDirective } from './dialog-header.directive';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, contentChild, inject, input } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsDetectScrollableDirective, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_DIALOG_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'dialog[idsDialog]',\n imports: [\n IdsDetectScrollableDirective,\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'idsDialog',\n host: {\n '[attr.aria-labelledby]': '_titleId()',\n '(cancel)': '_onCancel($event)',\n },\n})\nexport class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> {\n protected override get _hostName(): string {\n return 'dialog';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);\n\n public dialog = inject<ElementRef<HTMLDialogElement>>(ElementRef).nativeElement;\n\n protected _titleId = computed(() => `${this.id()}-title`);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public mainTitle = input.required<string>();\n public subTitle = input<string>();\n public showCloseButton = input<boolean>(this._defaultConfig.showCloseButton);\n public showBackdrop = input<boolean>(this._defaultConfig.showBackdrop);\n\n protected _customHeader = contentChild(IdsDialogHeaderDirective);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.showBackdrop() ? 'with-backdrop' : null,\n ]));\n\n private _onCancel(event: Event): void {\n event.preventDefault();\n }\n\n public open(): void {\n this.dialog.showModal();\n }\n\n public close(): void {\n this.dialog.close();\n }\n}\n","<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n","import { IdsDialogComponent } from './dialog.component';\n\nimport { AfterViewInit, Directive, OnDestroy, viewChild } from '@angular/core';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\n\n@Directive({ standalone: true })\nexport abstract class IdsCustomDialogBase<ResultType = unknown> implements AfterViewInit, OnDestroy {\n public dialogResult = new Subject<ResultType | undefined>();\n\n protected _dialog = viewChild.required(IdsDialogComponent);\n\n private _closeSub?: Subscription;\n\n public ngAfterViewInit(): void {\n this._dialog().open();\n this._closeSub = fromEvent(this._dialog().dialog, 'close').subscribe(() => {\n this._setDialogResult();\n });\n }\n\n public ngOnDestroy(): void {\n this._closeSub?.unsubscribe();\n }\n\n public close(payload?: ResultType): void {\n this._closeSub?.unsubscribe();\n this._dialog().close();\n this._setDialogResult(payload);\n }\n\n private _setDialogResult(payload?: ResultType): void {\n this.dialogResult.next(payload);\n this.dialogResult.complete();\n }\n}\n","import { IdsCustomDialogBase } from './custom-dialog-base';\n\nimport { DOCUMENT } from '@angular/common';\nimport { ApplicationRef, EnvironmentInjector, Injectable, Injector, Provider, Signal, StaticProvider, Type, createComponent, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDialogService {\n private _appRef = inject(ApplicationRef);\n private _document = inject(DOCUMENT);\n private _injector = inject(EnvironmentInjector);\n\n public open<C extends IdsCustomDialogBase<R>, R = unknown>(\n component: Type<C>,\n options?: { providers?: (Provider | StaticProvider)[], inputs?: { [P in keyof C]?: C[P] extends Signal<infer T> ? T : C[P] } },\n ): Observable<R | undefined> {\n let elementInjector = undefined;\n\n if (options?.providers) {\n elementInjector = Injector.create({\n parent: this._injector,\n providers: options.providers,\n });\n }\n\n const createOptions = {\n environmentInjector: this._injector,\n ...(elementInjector && { elementInjector }),\n };\n const dialogRef = createComponent(component, createOptions);\n\n if (options?.inputs) {\n Object.keys(options.inputs).forEach((key) => dialogRef.setInput(key, options.inputs![key as keyof C]));\n }\n\n this._document.body.appendChild(dialogRef.location.nativeElement);\n\n this._appRef.attachView(dialogRef.hostView);\n\n const onClose = dialogRef.instance.dialogResult.asObservable();\n\n onClose.subscribe(() => {\n this._document.body.removeChild(dialogRef.location.nativeElement);\n dialogRef.destroy();\n },\n );\n\n return onClose;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i-cell-ids-angular-dialog.mjs","sources":["../../../projects/widgets/dialog/dialog-defaults.ts","../../../projects/widgets/dialog/dialog-header.directive.ts","../../../projects/widgets/dialog/dialog.component.ts","../../../projects/widgets/dialog/dialog.component.html","../../../projects/widgets/dialog/custom-dialog-base.ts","../../../projects/widgets/dialog/dialog.service.ts","../../../projects/widgets/dialog/i-cell-ids-angular-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsDialogDefaultConfig {\n size?: IdsSizeType,\n showCloseButton?: boolean,\n showBackdrop?: boolean,\n}\n\nexport const IDS_DIALOG_DEFAULT_CONFIG = new InjectionToken<IdsDialogDefaultConfig>(\n 'IDS_DIALOG_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DIALOG_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DIALOG_DEFAULT_CONFIG_FACTORY(): Required<IdsDialogDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n showCloseButton: false,\n showBackdrop: true,\n };\n}\n\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[idsDialogHeader]',\n standalone: true,\n})\nexport class IdsDialogHeaderDirective {\n public template = inject(TemplateRef);\n}\n","import { IDS_DIALOG_DEFAULT_CONFIG, IDS_DIALOG_DEFAULT_CONFIG_FACTORY, IdsDialogDefaultConfig } from './dialog-defaults';\nimport { IdsDialogHeaderDirective } from './dialog-header.directive';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, contentChild, inject, input } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsDetectScrollableDirective, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_DIALOG_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'dialog[idsDialog]',\n imports: [\n IdsDetectScrollableDirective,\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'idsDialog',\n host: {\n '[attr.aria-labelledby]': '_titleId()',\n '(cancel)': '_onCancel($event)',\n },\n})\nexport class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> {\n protected override get _hostName(): string {\n return 'dialog';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);\n\n public dialog = inject<ElementRef<HTMLDialogElement>>(ElementRef).nativeElement;\n\n protected _titleId = computed(() => `${this.id()}-title`);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public mainTitle = input.required<string>();\n public subTitle = input<string>();\n public showCloseButton = input<boolean>(this._defaultConfig.showCloseButton);\n public showBackdrop = input<boolean>(this._defaultConfig.showBackdrop);\n\n protected _customHeader = contentChild(IdsDialogHeaderDirective);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.showBackdrop() ? 'with-backdrop' : null,\n ]));\n\n private _onCancel(event: Event): void {\n event.preventDefault();\n }\n\n public open(): void {\n this.dialog.showModal();\n }\n\n public close(): void {\n this.dialog.close();\n }\n}\n","<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n","import { IdsDialogComponent } from './dialog.component';\n\nimport { AfterViewInit, Directive, OnDestroy, viewChild } from '@angular/core';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\n\n@Directive({ standalone: true })\nexport abstract class IdsCustomDialogBase<ResultType = unknown> implements AfterViewInit, OnDestroy {\n public dialogResult = new Subject<ResultType | undefined>();\n\n protected _dialog = viewChild.required(IdsDialogComponent);\n\n private _closeSub?: Subscription;\n\n public ngAfterViewInit(): void {\n this._dialog().open();\n this._closeSub = fromEvent(this._dialog().dialog, 'close').subscribe(() => {\n this._setDialogResult();\n });\n }\n\n public ngOnDestroy(): void {\n this._closeSub?.unsubscribe();\n }\n\n public close(payload?: ResultType): void {\n this._closeSub?.unsubscribe();\n this._dialog().close();\n this._setDialogResult(payload);\n }\n\n private _setDialogResult(payload?: ResultType): void {\n this.dialogResult.next(payload);\n this.dialogResult.complete();\n }\n}\n","import { IdsCustomDialogBase } from './custom-dialog-base';\n\nimport { ApplicationRef, EnvironmentInjector, Injectable, Injector, Provider, Signal, StaticProvider, Type, createComponent, inject, DOCUMENT } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDialogService {\n private _appRef = inject(ApplicationRef);\n private _document = inject(DOCUMENT);\n private _injector = inject(EnvironmentInjector);\n\n public open<C extends IdsCustomDialogBase<R>, R = unknown>(\n component: Type<C>,\n options?: { providers?: (Provider | StaticProvider)[], inputs?: { [P in keyof C]?: C[P] extends Signal<infer T> ? T : C[P] } },\n ): Observable<R | undefined> {\n let elementInjector = undefined;\n\n if (options?.providers) {\n elementInjector = Injector.create({\n parent: this._injector,\n providers: options.providers,\n });\n }\n\n const createOptions = {\n environmentInjector: this._injector,\n ...(elementInjector && { elementInjector }),\n };\n const dialogRef = createComponent(component, createOptions);\n\n if (options?.inputs) {\n Object.keys(options.inputs).forEach((key) => dialogRef.setInput(key, options.inputs![key as keyof C]));\n }\n\n this._document.body.appendChild(dialogRef.location.nativeElement);\n\n this._appRef.attachView(dialogRef.hostView);\n\n const onClose = dialogRef.instance.dialogResult.asObservable();\n\n onClose.subscribe(() => {\n this._document.body.removeChild(dialogRef.location.nativeElement);\n dialogRef.destroy();\n },\n );\n\n return onClose;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}