@odx/angular 5.7.4 → 6.0.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 (658) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/animations/lib/expand.d.ts +44 -0
  3. package/animations/lib/fade.d.ts +70 -0
  4. package/animations/lib/slide.d.ts +21 -0
  5. package/animations/lib/wait-for-child-animations.d.ts +38 -0
  6. package/breakpoints/lib/breakpoints.config.d.ts +38 -0
  7. package/breakpoints/lib/breakpoints.service.d.ts +43 -0
  8. package/breakpoints/lib/directives/match-breakpoints.directive.d.ts +36 -0
  9. package/breakpoints/lib/helpers/configure-breakpoint.d.ts +19 -0
  10. package/cdk/a11y/lib/directives/interactive.directive.d.ts +32 -0
  11. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +22 -0
  12. package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +17 -0
  13. package/cdk/active-indicator/lib/active-indicator.directive.d.ts +63 -0
  14. package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +53 -0
  15. package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +3 -0
  16. package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +44 -0
  17. package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +10 -0
  18. package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +49 -0
  19. package/cdk/custom-form-control/lib/custom-form-control.d.ts +108 -0
  20. package/cdk/custom-form-control/lib/input-control.directive.d.ts +75 -0
  21. package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +25 -0
  22. package/cdk/dynamic-view/lib/dynamic-view.service.d.ts +30 -0
  23. package/cdk/dynamic-view/lib/helpers/create-projectable-nodes.d.ts +22 -0
  24. package/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.d.ts +22 -0
  25. package/cdk/dynamic-view/lib/helpers/is-dynamic-view.d.ts +22 -0
  26. package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +39 -0
  27. package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +36 -0
  28. package/cdk/event-plugins/lib/event-plugins.config.d.ts +35 -0
  29. package/cdk/event-plugins/lib/models/event-plugin.d.ts +57 -0
  30. package/cdk/event-plugins/lib/plugins/debounce-event-plugin.d.ts +32 -0
  31. package/cdk/event-plugins/lib/plugins/defer-event-plugin.d.ts +24 -0
  32. package/cdk/expandable/lib/directives/expandable-container.directive.d.ts +41 -0
  33. package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +47 -0
  34. package/cdk/option-control/lib/option-control.d.ts +47 -0
  35. package/cdk/radio-group-control/lib/radio-control.directive.d.ts +8 -0
  36. package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +11 -0
  37. package/components/accordion/lib/accordion.component.d.ts +8 -0
  38. package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +37 -1
  39. package/components/accordion/lib/directives/accordion-item-title.d.ts +3 -0
  40. package/components/action-group/action-group.component.d.ts +6 -0
  41. package/components/area-header/area-header.component.d.ts +8 -0
  42. package/components/area-header/directives/area-header-content.directive.d.ts +3 -0
  43. package/components/area-header/directives/area-header-subtitle.directive.d.ts +3 -0
  44. package/components/autocomplete/lib/autocomplete.component.d.ts +17 -0
  45. package/components/avatar/lib/avatar.component.d.ts +8 -0
  46. package/components/badge/lib/badge.component.d.ts +10 -0
  47. package/components/badge/lib/badge.directive.d.ts +15 -0
  48. package/components/bar/lib/bar.component.d.ts +7 -0
  49. package/components/bar/lib/directives/bar-button.directive.d.ts +3 -0
  50. package/components/bar/lib/directives/bar-label.directive.d.ts +3 -0
  51. package/components/breadcrumbs/lib/breadcrumbs.component.d.ts +3 -0
  52. package/components/button/lib/button.component.d.ts +10 -0
  53. package/components/button-group/lib/button-group.component.d.ts +15 -0
  54. package/components/calendar/lib/calendar.component.d.ts +48 -0
  55. package/components/calendar/lib/calendar.config.d.ts +41 -93
  56. package/components/calendar/lib/calendar.service.d.ts +48 -0
  57. package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +24 -0
  58. package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +6 -0
  59. package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +6 -0
  60. package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +6 -0
  61. package/components/calendar/lib/daterange.service.d.ts +16 -0
  62. package/components/calendar/lib/directives/calendar-cell.directive.d.ts +37 -9
  63. package/components/calendar/lib/directives/calendar-view.directive.d.ts +41 -9
  64. package/components/calendar/lib/pipes/date-label.pipe.d.ts +12 -21
  65. package/components/calendar/lib/services/calendar-month.service.d.ts +1 -0
  66. package/components/calendar/lib/services/calendar-year.service.d.ts +1 -0
  67. package/components/calendar/lib/services/calendar-years.service.d.ts +1 -0
  68. package/components/calendar/lib/utils/check-cell-in-range.d.ts +1 -0
  69. package/components/calendar/lib/utils/check-identical-date.d.ts +1 -0
  70. package/components/calendar/lib/utils/get-A11y-label.d.ts +2 -2
  71. package/components/calendar/lib/utils/is-date-disabled.d.ts +1 -0
  72. package/components/calendar/lib/utils/parse-date.d.ts +1 -0
  73. package/components/calendar/lib/utils/validate-daterange.d.ts +1 -0
  74. package/components/calendar/lib/utils/validate-max-date.d.ts +1 -0
  75. package/components/calendar/lib/utils/validate-min-date.d.ts +1 -0
  76. package/components/calendar/lib/utils/validate-next-date-set.d.ts +1 -0
  77. package/components/calendar/lib/utils/validate-previous-date-set.d.ts +1 -0
  78. package/components/checkbox/lib/checkbox.component.d.ts +32 -0
  79. package/components/checkbox/lib/checkbox.validator.d.ts +23 -0
  80. package/components/chip/lib/components/chip/chip.component.d.ts +14 -0
  81. package/components/chip/lib/components/chip-list/chip-list.component.d.ts +3 -0
  82. package/components/chip/lib/components/chip-list-row/chip-list-row.component.d.ts +3 -0
  83. package/components/circular-progress/lib/circular-progress.component.d.ts +20 -0
  84. package/components/content-box/lib/content-box.component.d.ts +3 -0
  85. package/components/content-box/lib/directives/content-box-footer.directive.d.ts +3 -0
  86. package/components/content-box/lib/directives/content-box-header.directive.d.ts +3 -0
  87. package/components/datepicker/lib/datepicker.component.d.ts +47 -0
  88. package/components/datepicker/lib/datepicker.config.d.ts +19 -0
  89. package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +30 -0
  90. package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +2 -0
  91. package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +1 -0
  92. package/components/daterangepicker/lib/daterangepicker.component.d.ts +89 -0
  93. package/components/daterangepicker/lib/daterangepicker.config.d.ts +19 -0
  94. package/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.d.ts +30 -0
  95. package/components/daterangepicker/lib/range.validator.d.ts +15 -0
  96. package/components/daterangepicker/lib/required.validator.d.ts +6 -0
  97. package/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.d.ts +2 -0
  98. package/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.d.ts +1 -0
  99. package/components/dropdown/lib/dropdown.component.d.ts +16 -0
  100. package/components/dropdown/lib/dropdown.directive.d.ts +67 -0
  101. package/components/dropdown/lib/helpers/close-current-dropdown.d.ts +5 -0
  102. package/components/error-page/lib/error-page.component.d.ts +7 -0
  103. package/components/error-page/lib/error-page.config.d.ts +18 -0
  104. package/components/footer/lib/footer.component.d.ts +9 -6
  105. package/components/footer/lib/footer.config.d.ts +2 -0
  106. package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +13 -0
  107. package/components/form-field/lib/components/form-group/form-group.component.d.ts +16 -0
  108. package/components/form-field/lib/directives/form-field-control.directive.d.ts +5 -0
  109. package/components/form-field/lib/directives/form-field-error.directive.d.ts +6 -0
  110. package/components/form-field/lib/directives/form-field-hint.directive.d.ts +3 -0
  111. package/components/form-field/lib/directives/form-field-label.directive.d.ts +3 -0
  112. package/components/form-field/lib/directives/form.directive.d.ts +13 -0
  113. package/components/form-field/lib/form-field.component.d.ts +20 -0
  114. package/components/form-field/lib/form-field.service.d.ts +42 -0
  115. package/components/form-field/lib/services/form-field-error.service.d.ts +24 -0
  116. package/components/header/lib/directives/header-avatar.directive.d.ts +4 -0
  117. package/components/header/lib/directives/header-title.directive.d.ts +3 -0
  118. package/components/header/lib/header.component.d.ts +3 -0
  119. package/components/header-navigation/lib/directives/header-navigation-link.directive.d.ts +3 -0
  120. package/components/header-navigation/lib/header-navigation.component.d.ts +6 -0
  121. package/components/icon/lib/helpers/unpack-icon-identifier.d.ts +14 -0
  122. package/components/icon/lib/icon.component.d.ts +24 -0
  123. package/components/icon/lib/icon.config.d.ts +26 -0
  124. package/components/inline-message/lib/inline-message.component.d.ts +13 -0
  125. package/components/link/link.directive.d.ts +3 -0
  126. package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +6 -0
  127. package/components/list/lib/components/list-item/list-item.component.d.ts +17 -1
  128. package/components/list/lib/list.component.d.ts +5 -0
  129. package/components/loading-spinner/lib/loading-spinner.component.d.ts +8 -0
  130. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +22 -0
  131. package/components/logo/logo.directive.d.ts +15 -0
  132. package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +5 -1
  133. package/components/main-menu/lib/directives/main-menu-close.directive.d.ts +3 -0
  134. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +16 -0
  135. package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +1 -0
  136. package/components/main-menu/lib/main-menu.component.d.ts +42 -0
  137. package/components/main-menu/lib/main-menu.config.d.ts +31 -0
  138. package/components/main-menu/lib/main-menu.service.d.ts +28 -0
  139. package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +4 -0
  140. package/components/menu/lib/directives/menu-item.directive.d.ts +6 -0
  141. package/components/menu/lib/menu.component.d.ts +13 -1
  142. package/components/menu/lib/menu.directive.d.ts +31 -0
  143. package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +14 -0
  144. package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +3 -0
  145. package/components/modal/lib/components/modal-header/modal-header.component.d.ts +9 -0
  146. package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +21 -0
  147. package/components/modal/lib/directives/modal-close.directive.d.ts +25 -1
  148. package/components/modal/lib/directives/modal-content.directive.d.ts +3 -0
  149. package/components/modal/lib/directives/modal-dismiss.directive.d.ts +18 -1
  150. package/components/modal/lib/helpers/inject-modal-ref.d.ts +21 -0
  151. package/components/modal/lib/helpers/provide-modal-ref.d.ts +9 -0
  152. package/components/modal/lib/modal.component.d.ts +25 -0
  153. package/components/modal/lib/modal.config.d.ts +33 -0
  154. package/components/modal/lib/modal.directive.d.ts +29 -0
  155. package/components/modal/lib/modal.service.d.ts +54 -0
  156. package/components/modal/lib/models/modal-ref.d.ts +34 -0
  157. package/components/navigation-back/lib/navigation-back.component.d.ts +3 -0
  158. package/components/notification/lib/components/notification-center/notification-center.component.d.ts +0 -2
  159. package/components/notification/lib/directives/notification-center.directive.d.ts +18 -4
  160. package/components/notification/lib/helpers/get-notifications-by-tag.d.ts +1 -0
  161. package/components/notification/lib/helpers/sort-notifications.d.ts +1 -0
  162. package/components/notification/lib/helpers/to-notification-collection.d.ts +1 -0
  163. package/components/notification/lib/models/notification-feature.d.ts +15 -0
  164. package/components/notification/lib/notification.config.d.ts +54 -0
  165. package/components/notification/lib/notification.logger.d.ts +1 -0
  166. package/components/notification/lib/notification.service.d.ts +55 -0
  167. package/components/notification/lib/notification.tokens.d.ts +3 -0
  168. package/components/notification/lib/services/notification-center.service.d.ts +9 -0
  169. package/components/paginator/lib/paginator.component.d.ts +89 -0
  170. package/components/paginator/lib/paginator.config.d.ts +24 -2
  171. package/components/progress/lib/progress.component.d.ts +15 -0
  172. package/components/radio-group/lib/radio-group.component.d.ts +11 -0
  173. package/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.d.ts +19 -0
  174. package/components/rail-navigation/lib/rail-navigation.component.d.ts +26 -0
  175. package/components/rich-list/lib/components/rich-list-content/rich-list-content.component.d.ts +4 -0
  176. package/components/rich-list/lib/components/rich-list-header/rich-list-header.component.d.ts +4 -0
  177. package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +9 -1
  178. package/components/rich-list/lib/rich-list.component.d.ts +9 -2
  179. package/components/select/lib/components/select-option/select-option.component.d.ts +39 -2
  180. package/components/select/lib/directives/select-input-control.directive.d.ts +11 -0
  181. package/components/select/lib/pipes/select-search-filter.pipe.d.ts +10 -0
  182. package/components/select/lib/select.component.d.ts +59 -0
  183. package/components/slider/lib/slider.directive.d.ts +19 -0
  184. package/components/spinbox/lib/spinbox.component.d.ts +16 -0
  185. package/components/switch/lib/switch.component.d.ts +10 -0
  186. package/components/switch/lib/switch.validator.d.ts +12 -0
  187. package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +28 -0
  188. package/components/tab-bar/lib/tab-bar.component.d.ts +69 -0
  189. package/components/table/lib/components/check-cell/check-cell.component.d.ts +18 -0
  190. package/components/table/lib/components/header-title/header-title.component.d.ts +33 -1
  191. package/components/table/lib/directives/table-cell.directive.d.ts +4 -0
  192. package/components/table/lib/directives/table-row.directive.d.ts +4 -0
  193. package/components/table/lib/table.component.d.ts +36 -0
  194. package/components/timepicker/lib/timepicker.component.d.ts +11 -2
  195. package/components/timepicker/lib/utils/generate-time-stamps.d.ts +2 -1
  196. package/components/timepicker/lib/utils/ngx-mask-helper.d.ts +2 -2
  197. package/components/toast/lib/toast.config.d.ts +26 -0
  198. package/components/toast/lib/toast.service.d.ts +35 -0
  199. package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +11 -0
  200. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +12 -0
  201. package/components/tooltip/lib/tooltip.component.d.ts +20 -0
  202. package/components/tooltip/lib/tooltip.directive.d.ts +35 -0
  203. package/components/wizard/lib/components/wizard-step/wizard-step.component.d.ts +34 -0
  204. package/components/wizard/lib/wizard.component.d.ts +20 -0
  205. package/esm2022/animations/lib/expand.mjs +45 -1
  206. package/esm2022/animations/lib/fade.mjs +71 -1
  207. package/esm2022/animations/lib/slide.mjs +22 -1
  208. package/esm2022/animations/lib/wait-for-child-animations.mjs +39 -1
  209. package/esm2022/breakpoints/lib/breakpoints.config.mjs +39 -1
  210. package/esm2022/breakpoints/lib/breakpoints.service.mjs +44 -1
  211. package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +37 -1
  212. package/esm2022/breakpoints/lib/helpers/configure-breakpoint.mjs +20 -1
  213. package/esm2022/cdk/a11y/lib/directives/interactive.directive.mjs +33 -1
  214. package/esm2022/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +23 -1
  215. package/esm2022/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +18 -1
  216. package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +64 -1
  217. package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +39 -1
  218. package/esm2022/cdk/checkbox-control/lib/checkbox-control.directive.mjs +4 -1
  219. package/esm2022/cdk/connected-overlay/lib/connected-overlay.service.mjs +45 -1
  220. package/esm2022/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +11 -1
  221. package/esm2022/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +50 -1
  222. package/esm2022/cdk/custom-form-control/lib/custom-form-control.mjs +109 -3
  223. package/esm2022/cdk/custom-form-control/lib/input-control.directive.mjs +76 -1
  224. package/esm2022/cdk/dynamic-view/lib/dynamic-view.directive.mjs +18 -1
  225. package/esm2022/cdk/dynamic-view/lib/dynamic-view.service.mjs +31 -1
  226. package/esm2022/cdk/dynamic-view/lib/helpers/create-projectable-nodes.mjs +23 -1
  227. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.mjs +23 -1
  228. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-view.mjs +23 -1
  229. package/esm2022/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +40 -1
  230. package/esm2022/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +37 -1
  231. package/esm2022/cdk/event-plugins/lib/event-plugins.config.mjs +36 -1
  232. package/esm2022/cdk/event-plugins/lib/models/event-plugin.mjs +45 -1
  233. package/esm2022/cdk/event-plugins/lib/plugins/debounce-event-plugin.mjs +33 -1
  234. package/esm2022/cdk/event-plugins/lib/plugins/defer-event-plugin.mjs +25 -1
  235. package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +42 -1
  236. package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +48 -1
  237. package/esm2022/cdk/option-control/lib/option-control.mjs +48 -1
  238. package/esm2022/cdk/radio-group-control/lib/radio-control.directive.mjs +9 -1
  239. package/esm2022/cdk/radio-group-control/lib/radio-group-control.directive.mjs +12 -1
  240. package/esm2022/components/accordion/lib/accordion.component.mjs +9 -1
  241. package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +31 -1
  242. package/esm2022/components/accordion/lib/directives/accordion-item-title.mjs +4 -1
  243. package/esm2022/components/action-group/action-group.component.mjs +7 -1
  244. package/esm2022/components/area-header/area-header.component.mjs +9 -1
  245. package/esm2022/components/area-header/directives/area-header-content.directive.mjs +4 -1
  246. package/esm2022/components/area-header/directives/area-header-subtitle.directive.mjs +4 -1
  247. package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +18 -1
  248. package/esm2022/components/avatar/lib/avatar.component.mjs +9 -1
  249. package/esm2022/components/badge/lib/badge.component.mjs +11 -1
  250. package/esm2022/components/badge/lib/badge.directive.mjs +16 -1
  251. package/esm2022/components/bar/lib/bar.component.mjs +8 -1
  252. package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +4 -1
  253. package/esm2022/components/bar/lib/directives/bar-label.directive.mjs +4 -1
  254. package/esm2022/components/breadcrumbs/lib/breadcrumbs.component.mjs +4 -1
  255. package/esm2022/components/button/lib/button.component.mjs +11 -1
  256. package/esm2022/components/button-group/lib/button-group.component.mjs +16 -1
  257. package/esm2022/components/calendar/lib/calendar.component.mjs +35 -1
  258. package/esm2022/components/calendar/lib/calendar.config.mjs +18 -12
  259. package/esm2022/components/calendar/lib/calendar.service.mjs +49 -1
  260. package/esm2022/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +19 -1
  261. package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +9 -3
  262. package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +9 -3
  263. package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +9 -3
  264. package/esm2022/components/calendar/lib/daterange.service.mjs +17 -1
  265. package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +27 -2
  266. package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +39 -1
  267. package/esm2022/components/calendar/lib/pipes/date-label.pipe.mjs +27 -9
  268. package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +2 -1
  269. package/esm2022/components/calendar/lib/services/calendar-year.service.mjs +2 -1
  270. package/esm2022/components/calendar/lib/services/calendar-years.service.mjs +2 -1
  271. package/esm2022/components/calendar/lib/utils/check-cell-in-range.mjs +2 -1
  272. package/esm2022/components/calendar/lib/utils/check-identical-date.mjs +2 -1
  273. package/esm2022/components/calendar/lib/utils/get-A11y-label.mjs +11 -8
  274. package/esm2022/components/calendar/lib/utils/is-date-disabled.mjs +2 -1
  275. package/esm2022/components/calendar/lib/utils/parse-date.mjs +2 -1
  276. package/esm2022/components/calendar/lib/utils/validate-daterange.mjs +2 -1
  277. package/esm2022/components/calendar/lib/utils/validate-max-date.mjs +2 -1
  278. package/esm2022/components/calendar/lib/utils/validate-min-date.mjs +2 -1
  279. package/esm2022/components/calendar/lib/utils/validate-next-date-set.mjs +2 -1
  280. package/esm2022/components/calendar/lib/utils/validate-previous-date-set.mjs +2 -1
  281. package/esm2022/components/checkbox/lib/checkbox.component.mjs +33 -1
  282. package/esm2022/components/checkbox/lib/checkbox.validator.mjs +24 -1
  283. package/esm2022/components/chip/lib/components/chip/chip.component.mjs +15 -1
  284. package/esm2022/components/chip/lib/components/chip-list/chip-list.component.mjs +4 -1
  285. package/esm2022/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +4 -1
  286. package/esm2022/components/circular-progress/lib/circular-progress.component.mjs +21 -1
  287. package/esm2022/components/content-box/lib/content-box.component.mjs +4 -1
  288. package/esm2022/components/content-box/lib/directives/content-box-footer.directive.mjs +4 -1
  289. package/esm2022/components/content-box/lib/directives/content-box-header.directive.mjs +4 -1
  290. package/esm2022/components/datepicker/lib/datepicker.component.mjs +33 -1
  291. package/esm2022/components/datepicker/lib/datepicker.config.mjs +20 -1
  292. package/esm2022/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +31 -1
  293. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +3 -1
  294. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +2 -1
  295. package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +65 -1
  296. package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +20 -1
  297. package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +31 -1
  298. package/esm2022/components/daterangepicker/lib/range.validator.mjs +16 -1
  299. package/esm2022/components/daterangepicker/lib/required.validator.mjs +15 -1
  300. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.mjs +3 -1
  301. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.mjs +2 -1
  302. package/esm2022/components/dropdown/lib/dropdown.component.mjs +8 -1
  303. package/esm2022/components/dropdown/lib/dropdown.directive.mjs +55 -1
  304. package/esm2022/components/dropdown/lib/helpers/close-current-dropdown.mjs +6 -1
  305. package/esm2022/components/error-page/lib/error-page.component.mjs +8 -1
  306. package/esm2022/components/error-page/lib/error-page.config.mjs +9 -1
  307. package/esm2022/components/footer/lib/footer.component.mjs +10 -7
  308. package/esm2022/components/footer/lib/footer.config.mjs +3 -1
  309. package/esm2022/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +14 -1
  310. package/esm2022/components/form-field/lib/components/form-group/form-group.component.mjs +13 -1
  311. package/esm2022/components/form-field/lib/directives/form-field-control.directive.mjs +6 -1
  312. package/esm2022/components/form-field/lib/directives/form-field-error.directive.mjs +4 -1
  313. package/esm2022/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -1
  314. package/esm2022/components/form-field/lib/directives/form-field-label.directive.mjs +4 -1
  315. package/esm2022/components/form-field/lib/directives/form.directive.mjs +14 -1
  316. package/esm2022/components/form-field/lib/form-field.component.mjs +14 -1
  317. package/esm2022/components/form-field/lib/form-field.service.mjs +43 -1
  318. package/esm2022/components/form-field/lib/services/form-field-error.service.mjs +25 -1
  319. package/esm2022/components/header/lib/directives/header-avatar.directive.mjs +5 -1
  320. package/esm2022/components/header/lib/directives/header-title.directive.mjs +4 -1
  321. package/esm2022/components/header/lib/header.component.mjs +4 -1
  322. package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +4 -1
  323. package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +4 -1
  324. package/esm2022/components/icon/lib/helpers/unpack-icon-identifier.mjs +15 -1
  325. package/esm2022/components/icon/lib/icon.component.mjs +25 -1
  326. package/esm2022/components/icon/lib/icon.config.mjs +20 -1
  327. package/esm2022/components/inline-message/lib/inline-message.component.mjs +14 -1
  328. package/esm2022/components/link/link.directive.mjs +4 -1
  329. package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +7 -1
  330. package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +18 -2
  331. package/esm2022/components/list/lib/list.component.mjs +6 -1
  332. package/esm2022/components/loading-spinner/lib/loading-spinner.component.mjs +10 -2
  333. package/esm2022/components/loading-spinner/lib/loading-spinner.directive.mjs +23 -1
  334. package/esm2022/components/logo/logo.directive.mjs +16 -1
  335. package/esm2022/components/main-menu/lib/directives/main-menu-button.directive.mjs +5 -1
  336. package/esm2022/components/main-menu/lib/directives/main-menu-close.directive.mjs +4 -1
  337. package/esm2022/components/main-menu/lib/directives/main-menu-item.directive.mjs +17 -1
  338. package/esm2022/components/main-menu/lib/helpers/create-main-menu-links.mjs +2 -1
  339. package/esm2022/components/main-menu/lib/main-menu.component.mjs +37 -1
  340. package/esm2022/components/main-menu/lib/main-menu.config.mjs +32 -1
  341. package/esm2022/components/main-menu/lib/main-menu.service.mjs +29 -1
  342. package/esm2022/components/mainfilter-group/lib/mainfilter-group.component.mjs +5 -1
  343. package/esm2022/components/menu/lib/directives/menu-item.directive.mjs +7 -1
  344. package/esm2022/components/menu/lib/menu.component.mjs +13 -1
  345. package/esm2022/components/menu/lib/menu.directive.mjs +19 -1
  346. package/esm2022/components/modal/lib/components/basic-modal/basic-modal.component.mjs +15 -1
  347. package/esm2022/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -1
  348. package/esm2022/components/modal/lib/components/modal-header/modal-header.component.mjs +4 -1
  349. package/esm2022/components/modal/lib/components/modal-hero/modal-hero.component.mjs +12 -1
  350. package/esm2022/components/modal/lib/directives/modal-close.directive.mjs +25 -1
  351. package/esm2022/components/modal/lib/directives/modal-content.directive.mjs +4 -1
  352. package/esm2022/components/modal/lib/directives/modal-dismiss.directive.mjs +18 -1
  353. package/esm2022/components/modal/lib/helpers/inject-modal-ref.mjs +22 -1
  354. package/esm2022/components/modal/lib/helpers/provide-modal-ref.mjs +10 -1
  355. package/esm2022/components/modal/lib/modal.component.mjs +21 -2
  356. package/esm2022/components/modal/lib/modal.config.mjs +34 -1
  357. package/esm2022/components/modal/lib/modal.directive.mjs +25 -1
  358. package/esm2022/components/modal/lib/modal.service.mjs +39 -1
  359. package/esm2022/components/modal/lib/models/modal-ref.mjs +34 -1
  360. package/esm2022/components/navigation-back/lib/navigation-back.component.mjs +4 -1
  361. package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +1 -3
  362. package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +19 -5
  363. package/esm2022/components/notification/lib/helpers/get-notifications-by-tag.mjs +2 -1
  364. package/esm2022/components/notification/lib/helpers/sort-notifications.mjs +2 -1
  365. package/esm2022/components/notification/lib/helpers/to-notification-collection.mjs +2 -1
  366. package/esm2022/components/notification/lib/models/notification-feature.mjs +16 -1
  367. package/esm2022/components/notification/lib/notification.config.mjs +45 -1
  368. package/esm2022/components/notification/lib/notification.logger.mjs +2 -1
  369. package/esm2022/components/notification/lib/notification.service.mjs +56 -1
  370. package/esm2022/components/notification/lib/notification.tokens.mjs +4 -1
  371. package/esm2022/components/notification/lib/services/notification-center.service.mjs +10 -1
  372. package/esm2022/components/paginator/lib/paginator.component.mjs +90 -1
  373. package/esm2022/components/paginator/lib/paginator.config.mjs +29 -1
  374. package/esm2022/components/progress/lib/progress.component.mjs +16 -1
  375. package/esm2022/components/radio-group/lib/radio-group.component.mjs +13 -2
  376. package/esm2022/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +17 -1
  377. package/esm2022/components/rail-navigation/lib/rail-navigation.component.mjs +27 -1
  378. package/esm2022/components/rich-list/lib/components/rich-list-content/rich-list-content.component.mjs +5 -1
  379. package/esm2022/components/rich-list/lib/components/rich-list-header/rich-list-header.component.mjs +5 -1
  380. package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +10 -2
  381. package/esm2022/components/rich-list/lib/rich-list.component.mjs +10 -3
  382. package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +47 -6
  383. package/esm2022/components/select/lib/directives/select-input-control.directive.mjs +12 -2
  384. package/esm2022/components/select/lib/pipes/select-search-filter.pipe.mjs +11 -1
  385. package/esm2022/components/select/lib/select.component.mjs +56 -2
  386. package/esm2022/components/slider/lib/slider.directive.mjs +20 -1
  387. package/esm2022/components/spinbox/lib/spinbox.component.mjs +17 -1
  388. package/esm2022/components/switch/lib/switch.component.mjs +11 -1
  389. package/esm2022/components/switch/lib/switch.validator.mjs +13 -1
  390. package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +29 -1
  391. package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +70 -1
  392. package/esm2022/components/table/lib/components/check-cell/check-cell.component.mjs +19 -1
  393. package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +30 -2
  394. package/esm2022/components/table/lib/directives/table-cell.directive.mjs +5 -1
  395. package/esm2022/components/table/lib/directives/table-row.directive.mjs +5 -1
  396. package/esm2022/components/table/lib/table.component.mjs +30 -1
  397. package/esm2022/components/timepicker/lib/timepicker.component.mjs +15 -6
  398. package/esm2022/components/timepicker/lib/utils/generate-time-stamps.mjs +5 -3
  399. package/esm2022/components/timepicker/lib/utils/ngx-mask-helper.mjs +3 -3
  400. package/esm2022/components/toast/lib/toast.config.mjs +27 -1
  401. package/esm2022/components/toast/lib/toast.service.mjs +36 -1
  402. package/esm2022/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +12 -1
  403. package/esm2022/components/toggle-button-group/lib/toggle-button-group.component.mjs +14 -2
  404. package/esm2022/components/tooltip/lib/tooltip.component.mjs +18 -1
  405. package/esm2022/components/tooltip/lib/tooltip.directive.mjs +36 -1
  406. package/esm2022/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +35 -1
  407. package/esm2022/components/wizard/lib/wizard.component.mjs +21 -1
  408. package/esm2022/internal/lib/helpers/fast-equals.mjs +3 -0
  409. package/esm2022/internal/lib/helpers/index.mjs +2 -1
  410. package/esm2022/internal/translate/lib/translate.config.mjs +32 -1
  411. package/esm2022/internal/translate/lib/translate.service.mjs +30 -1
  412. package/esm2022/lib/controllers/controller.mjs +26 -1
  413. package/esm2022/lib/controllers/disabled.controller.mjs +60 -1
  414. package/esm2022/lib/controllers/readonly.controller.mjs +57 -1
  415. package/esm2022/lib/directives/click-outside.directive.mjs +30 -1
  416. package/esm2022/lib/directives/delegate-focus.directive.mjs +15 -1
  417. package/esm2022/lib/services/window-ref.mjs +67 -1
  418. package/esm2022/lib/tokens/identity-matcher.mjs +25 -1
  419. package/esm2022/lib/tokens/string-search-handler.mjs +25 -1
  420. package/esm2022/lib/tokens/stringify.mjs +26 -1
  421. package/esm2022/localization/lib/features/with-http-language-header.mjs +54 -1
  422. package/esm2022/localization/lib/features/with-http-language-query-param.mjs +52 -1
  423. package/esm2022/localization/lib/loaders/browser-language-loader.mjs +33 -1
  424. package/esm2022/localization/lib/localization.config.mjs +73 -5
  425. package/esm2022/localization/lib/localization.logger.mjs +3 -0
  426. package/esm2022/localization/lib/localization.service.mjs +59 -29
  427. package/esm2022/rxjs/index.mjs +2 -2
  428. package/esm2022/rxjs/lib/delay-until.mjs +23 -1
  429. package/esm2022/rxjs/lib/from-element-mutation.mjs +22 -1
  430. package/esm2022/rxjs/lib/from-element-resize.mjs +25 -1
  431. package/esm2022/rxjs/lib/from-events.mjs +25 -1
  432. package/esm2022/rxjs/lib/from-query-list.mjs +24 -0
  433. package/esm2022/sdk/lib/application-environment.mjs +51 -1
  434. package/esm2022/theming/lib/helpers/prefers-dark-theme.mjs +19 -1
  435. package/esm2022/theming/lib/helpers/resolve-theme.mjs +26 -1
  436. package/esm2022/theming/lib/helpers/theme-storage.mjs +43 -1
  437. package/esm2022/theming/lib/theming.config.mjs +34 -1
  438. package/esm2022/theming/lib/theming.service.mjs +32 -1
  439. package/esm2022/utils/lib/decorators/pure.mjs +52 -1
  440. package/esm2022/utils/lib/helpers/angular.mjs +37 -1
  441. package/esm2022/utils/lib/helpers/array.mjs +5 -1
  442. package/esm2022/utils/lib/helpers/build-url.mjs +21 -1
  443. package/esm2022/utils/lib/helpers/build-website-url.mjs +3 -2
  444. package/esm2022/utils/lib/helpers/cache-storage-client.mjs +52 -1
  445. package/esm2022/utils/lib/helpers/coercion.mjs +18 -1
  446. package/esm2022/utils/lib/helpers/debounce.mjs +28 -1
  447. package/esm2022/utils/lib/helpers/defer-fn.mjs +21 -1
  448. package/esm2022/utils/lib/helpers/dom.mjs +71 -1
  449. package/esm2022/utils/lib/helpers/get-axis.mjs +21 -1
  450. package/esm2022/utils/lib/helpers/get-language-code.mjs +18 -1
  451. package/esm2022/utils/lib/helpers/get-opposite-side.mjs +22 -1
  452. package/esm2022/utils/lib/helpers/get-side.mjs +18 -1
  453. package/esm2022/utils/lib/helpers/get-unique-id.mjs +34 -1
  454. package/esm2022/utils/lib/helpers/match-url.mjs +41 -1
  455. package/esm2022/utils/lib/helpers/ng-changes.mjs +30 -1
  456. package/esm2022/utils/lib/helpers/provide-config.mjs +57 -1
  457. package/esm2022/utils/lib/helpers/queue.mjs +84 -1
  458. package/esm2022/utils/lib/helpers/type-guards.mjs +58 -1
  459. package/esm2022/utils/lib/helpers/until-destroyed.mjs +39 -1
  460. package/fesm2022/odx-angular-animations.mjs +173 -0
  461. package/fesm2022/odx-angular-animations.mjs.map +1 -1
  462. package/fesm2022/odx-angular-breakpoints.mjs +136 -0
  463. package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
  464. package/fesm2022/odx-angular-cdk-a11y.mjs +71 -0
  465. package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
  466. package/fesm2022/odx-angular-cdk-active-indicator.mjs +63 -0
  467. package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
  468. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +38 -0
  469. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  470. package/fesm2022/odx-angular-cdk-checkbox-control.mjs +3 -0
  471. package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  472. package/fesm2022/odx-angular-cdk-connected-overlay.mjs +103 -0
  473. package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  474. package/fesm2022/odx-angular-cdk-custom-form-control.mjs +183 -2
  475. package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  476. package/fesm2022/odx-angular-cdk-dynamic-view.mjs +188 -0
  477. package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  478. package/fesm2022/odx-angular-cdk-event-plugins.mjs +135 -0
  479. package/fesm2022/odx-angular-cdk-event-plugins.mjs.map +1 -1
  480. package/fesm2022/odx-angular-cdk-expandable.mjs +88 -0
  481. package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
  482. package/fesm2022/odx-angular-cdk-option-control.mjs +47 -0
  483. package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
  484. package/fesm2022/odx-angular-cdk-radio-group-control.mjs +19 -0
  485. package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  486. package/fesm2022/odx-angular-components-accordion.mjs +41 -0
  487. package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
  488. package/fesm2022/odx-angular-components-action-group.mjs +6 -0
  489. package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
  490. package/fesm2022/odx-angular-components-area-header.mjs +14 -0
  491. package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
  492. package/fesm2022/odx-angular-components-autocomplete.mjs +17 -0
  493. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  494. package/fesm2022/odx-angular-components-avatar.mjs +8 -0
  495. package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
  496. package/fesm2022/odx-angular-components-badge.mjs +25 -0
  497. package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
  498. package/fesm2022/odx-angular-components-bar.mjs +13 -0
  499. package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
  500. package/fesm2022/odx-angular-components-breadcrumbs.mjs +3 -0
  501. package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
  502. package/fesm2022/odx-angular-components-button-group.mjs +15 -0
  503. package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
  504. package/fesm2022/odx-angular-components-button.mjs +10 -0
  505. package/fesm2022/odx-angular-components-button.mjs.map +1 -1
  506. package/fesm2022/odx-angular-components-calendar.mjs +270 -33
  507. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  508. package/fesm2022/odx-angular-components-checkbox.mjs +55 -0
  509. package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
  510. package/fesm2022/odx-angular-components-chip.mjs +20 -0
  511. package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
  512. package/fesm2022/odx-angular-components-circular-progress.mjs +20 -0
  513. package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
  514. package/fesm2022/odx-angular-components-content-box.mjs +9 -0
  515. package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
  516. package/fesm2022/odx-angular-components-datepicker.mjs +84 -0
  517. package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
  518. package/fesm2022/odx-angular-components-daterangepicker.mjs +145 -0
  519. package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
  520. package/fesm2022/odx-angular-components-dropdown.mjs +66 -0
  521. package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
  522. package/fesm2022/odx-angular-components-error-page.mjs +15 -0
  523. package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
  524. package/fesm2022/odx-angular-components-footer.mjs +11 -6
  525. package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
  526. package/fesm2022/odx-angular-components-form-field.mjs +131 -0
  527. package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
  528. package/fesm2022/odx-angular-components-header-navigation.mjs +6 -0
  529. package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
  530. package/fesm2022/odx-angular-components-header.mjs +10 -0
  531. package/fesm2022/odx-angular-components-header.mjs.map +1 -1
  532. package/fesm2022/odx-angular-components-icon.mjs +57 -0
  533. package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
  534. package/fesm2022/odx-angular-components-inline-message.mjs +13 -0
  535. package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
  536. package/fesm2022/odx-angular-components-link.mjs +3 -0
  537. package/fesm2022/odx-angular-components-link.mjs.map +1 -1
  538. package/fesm2022/odx-angular-components-list.mjs +28 -1
  539. package/fesm2022/odx-angular-components-list.mjs.map +1 -1
  540. package/fesm2022/odx-angular-components-loading-spinner.mjs +30 -0
  541. package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
  542. package/fesm2022/odx-angular-components-logo.mjs +15 -0
  543. package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
  544. package/fesm2022/odx-angular-components-main-menu.mjs +119 -0
  545. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  546. package/fesm2022/odx-angular-components-mainfilter-group.mjs +4 -0
  547. package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
  548. package/fesm2022/odx-angular-components-menu.mjs +36 -0
  549. package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
  550. package/fesm2022/odx-angular-components-modal.mjs +252 -0
  551. package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
  552. package/fesm2022/odx-angular-components-navigation-back.mjs +3 -0
  553. package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
  554. package/fesm2022/odx-angular-components-notification.mjs +148 -6
  555. package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
  556. package/fesm2022/odx-angular-components-paginator.mjs +117 -0
  557. package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
  558. package/fesm2022/odx-angular-components-progress.mjs +15 -0
  559. package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
  560. package/fesm2022/odx-angular-components-radio-group.mjs +11 -0
  561. package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
  562. package/fesm2022/odx-angular-components-rail-navigation.mjs +42 -0
  563. package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
  564. package/fesm2022/odx-angular-components-rich-list.mjs +26 -3
  565. package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
  566. package/fesm2022/odx-angular-components-select.mjs +122 -7
  567. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  568. package/fesm2022/odx-angular-components-slider.mjs +19 -0
  569. package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
  570. package/fesm2022/odx-angular-components-spinbox.mjs +16 -0
  571. package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
  572. package/fesm2022/odx-angular-components-switch.mjs +22 -0
  573. package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
  574. package/fesm2022/odx-angular-components-tab-bar.mjs +97 -0
  575. package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
  576. package/fesm2022/odx-angular-components-table.mjs +84 -1
  577. package/fesm2022/odx-angular-components-table.mjs.map +1 -1
  578. package/fesm2022/odx-angular-components-timepicker.mjs +20 -9
  579. package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
  580. package/fesm2022/odx-angular-components-toast.mjs +61 -0
  581. package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
  582. package/fesm2022/odx-angular-components-toggle-button-group.mjs +23 -0
  583. package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
  584. package/fesm2022/odx-angular-components-tooltip.mjs +52 -0
  585. package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
  586. package/fesm2022/odx-angular-components-wizard.mjs +54 -0
  587. package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
  588. package/fesm2022/odx-angular-internal-translate.mjs +60 -0
  589. package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
  590. package/fesm2022/odx-angular-internal.mjs +4 -1
  591. package/fesm2022/odx-angular-internal.mjs.map +1 -1
  592. package/fesm2022/odx-angular-localization.mjs +269 -32
  593. package/fesm2022/odx-angular-localization.mjs.map +1 -1
  594. package/fesm2022/odx-angular-rxjs.mjs +115 -5
  595. package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
  596. package/fesm2022/odx-angular-sdk.mjs +50 -0
  597. package/fesm2022/odx-angular-sdk.mjs.map +1 -1
  598. package/fesm2022/odx-angular-theming.mjs +149 -0
  599. package/fesm2022/odx-angular-theming.mjs.map +1 -1
  600. package/fesm2022/odx-angular-utils.mjs +709 -1
  601. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  602. package/fesm2022/odx-angular.mjs +322 -0
  603. package/fesm2022/odx-angular.mjs.map +1 -1
  604. package/internal/lib/helpers/fast-equals.d.ts +1 -0
  605. package/internal/lib/helpers/index.d.ts +1 -0
  606. package/internal/translate/lib/translate.config.d.ts +31 -0
  607. package/internal/translate/lib/translate.service.d.ts +29 -0
  608. package/lib/controllers/controller.d.ts +25 -0
  609. package/lib/controllers/disabled.controller.d.ts +59 -0
  610. package/lib/controllers/readonly.controller.d.ts +56 -0
  611. package/lib/directives/click-outside.directive.d.ts +29 -0
  612. package/lib/directives/delegate-focus.directive.d.ts +14 -0
  613. package/lib/services/window-ref.d.ts +66 -0
  614. package/lib/tokens/identity-matcher.d.ts +41 -0
  615. package/lib/tokens/string-search-handler.d.ts +39 -0
  616. package/lib/tokens/stringify.d.ts +42 -0
  617. package/localization/lib/features/with-http-language-header.d.ts +63 -0
  618. package/localization/lib/features/with-http-language-query-param.d.ts +61 -0
  619. package/localization/lib/loaders/browser-language-loader.d.ts +32 -0
  620. package/localization/lib/localization.config.d.ts +81 -2
  621. package/localization/lib/localization.logger.d.ts +3 -0
  622. package/localization/lib/localization.service.d.ts +42 -7
  623. package/package.json +8 -7
  624. package/rxjs/index.d.ts +1 -1
  625. package/rxjs/lib/delay-until.d.ts +22 -0
  626. package/rxjs/lib/from-element-mutation.d.ts +21 -0
  627. package/rxjs/lib/from-element-resize.d.ts +24 -0
  628. package/rxjs/lib/from-events.d.ts +24 -0
  629. package/rxjs/lib/from-query-list.d.ts +22 -0
  630. package/sdk/lib/application-environment.d.ts +59 -0
  631. package/theming/lib/helpers/prefers-dark-theme.d.ts +18 -0
  632. package/theming/lib/helpers/resolve-theme.d.ts +25 -0
  633. package/theming/lib/helpers/theme-storage.d.ts +42 -0
  634. package/theming/lib/theming.config.d.ts +46 -0
  635. package/theming/lib/theming.service.d.ts +31 -0
  636. package/utils/lib/decorators/pure.d.ts +51 -0
  637. package/utils/lib/helpers/angular.d.ts +36 -0
  638. package/utils/lib/helpers/array.d.ts +4 -0
  639. package/utils/lib/helpers/build-url.d.ts +20 -0
  640. package/utils/lib/helpers/build-website-url.d.ts +2 -1
  641. package/utils/lib/helpers/cache-storage-client.d.ts +51 -0
  642. package/utils/lib/helpers/coercion.d.ts +17 -0
  643. package/utils/lib/helpers/debounce.d.ts +27 -0
  644. package/utils/lib/helpers/defer-fn.d.ts +20 -0
  645. package/utils/lib/helpers/dom.d.ts +70 -0
  646. package/utils/lib/helpers/get-axis.d.ts +20 -0
  647. package/utils/lib/helpers/get-language-code.d.ts +17 -0
  648. package/utils/lib/helpers/get-opposite-side.d.ts +21 -0
  649. package/utils/lib/helpers/get-side.d.ts +17 -0
  650. package/utils/lib/helpers/get-unique-id.d.ts +33 -0
  651. package/utils/lib/helpers/match-url.d.ts +40 -0
  652. package/utils/lib/helpers/ng-changes.d.ts +52 -0
  653. package/utils/lib/helpers/provide-config.d.ts +56 -0
  654. package/utils/lib/helpers/queue.d.ts +83 -0
  655. package/utils/lib/helpers/type-guards.d.ts +57 -0
  656. package/utils/lib/helpers/until-destroyed.d.ts +38 -0
  657. package/esm2022/rxjs/lib/form-query-list.mjs +0 -5
  658. package/rxjs/lib/form-query-list.d.ts +0 -3
@@ -22,26 +22,93 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
22
22
  }]
23
23
  }] });
24
24
 
25
+ /**
26
+ * An abstract directive that serves as a base for custom form controls, integrating seamlessly with Angular Forms.
27
+ * It incorporates common form control behaviors such as handling disabled and readonly states, validation, and more.
28
+ *
29
+ * This approach allows the creation of highly reusable and consistent form controls within Angular applications,
30
+ * simplifying the integration with Angular Forms and the handling of common form behaviors.
31
+ *
32
+ * Extends Controller to provide a consistent API for managing state changes and subscriptions.
33
+ *
34
+ * @see {Controller}
35
+ */
25
36
  class CustomFormControl extends Controller {
26
37
  static { this.CURRENT_INDEX = 0; }
38
+ /**
39
+ * The current value of the form control. Setting this value updates the internal state and marks the control
40
+ * for checking changes. Getting this value returns the current internal value of the control.
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * this.customInputControl.value = 'newValue'; // Sets the value
45
+ * const currentValue = this.customInputControl.value; // Gets the current value
46
+ * ```
47
+ */
27
48
  set value(value) {
28
49
  if (this.internalValue !== value) {
29
50
  this.internalValue = value;
30
51
  this.triggerControllerChange();
31
52
  }
32
53
  }
54
+ /**
55
+ * Gets the value of the custom form control.
56
+ *
57
+ * @returns {T} - The value of the custom form control.
58
+ */
33
59
  get value() {
34
60
  return this.internalValue;
35
61
  }
62
+ /**
63
+ * Indicates whether the form control currently has an error. This takes into account any ignored errors.
64
+ *
65
+ * @returns {boolean} - True if the form control has an error, false otherwise.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * if (this.customInputControl.hasError) { ... }
70
+ * ```
71
+ */
36
72
  get hasError() {
37
73
  return !!this.ngControl?.touched && !!this.ngControl?.invalid && this.hasNonIgnoredError(this.ngControl.errors);
38
74
  }
75
+ /**
76
+ * Indicates whether the form control is currently disabled.
77
+ *
78
+ * @returns {boolean} - True if the form control is disabled, false otherwise.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * if (this.customInputControl.isDisabled) { ... }
83
+ * ```
84
+ */
39
85
  get isDisabled() {
40
86
  return !!this.disabledController?.disabled;
41
87
  }
88
+ /**
89
+ * Indicates whether the form control is currently in a readonly state.
90
+ *
91
+ * @returns {boolean} - True if the form control is readonly, false otherwise.
92
+ *
93
+ * @example
94
+ * ```ts
95
+ * if (this.customInputControl.isReadonly) { ... }
96
+ * ```
97
+ */
42
98
  get isReadonly() {
43
99
  return !!this.readonlyController?.readonly;
44
100
  }
101
+ /**
102
+ * Indicates whether the form control is marked as required, either through Validators.required, Validators.requiredTrue,
103
+ * or by a required attribute on a parent form field.
104
+ *
105
+ * @returns {boolean} - True if the form control is required, false otherwise.
106
+ *
107
+ * @example
108
+ * ````ts
109
+ * if (this.customInputControl.isRequired) { ... }
110
+ * ````
111
+ */
45
112
  get isRequired() {
46
113
  return !!this.requiredValidator?.required || this.hasValidator(Validators.required) || this.hasValidator(Validators.requiredTrue);
47
114
  }
@@ -51,37 +118,76 @@ class CustomFormControl extends Controller {
51
118
  this.disabledController = DisabledController.inject();
52
119
  this.readonlyController = ReadonlyController.inject();
53
120
  this.ngControl = inject(NgControl, { self: true, optional: true });
121
+ /**
122
+ * A unique identifier for the custom form control. If not provided, a unique ID is generated automatically.
123
+ * This can be useful for associating form control with a label.
124
+ *
125
+ * @type {string}
126
+ */
54
127
  this.id = null;
128
+ /**
129
+ * The name attribute for the custom form control. Defaults to a unique name if not provided.
130
+ * This is useful when the form control is part of a form and needs to be identified.
131
+ *
132
+ * @type {string}
133
+ */
55
134
  this.name = `odx-form-control-${CustomFormControl.CURRENT_INDEX++}`;
135
+ /**
136
+ * The tabindex attribute for the custom form control. Can be used to control the order of focus navigation.
137
+ *
138
+ * @type {string | null}
139
+ */
56
140
  this.tabindex = null;
141
+ /**
142
+ * An array of error codes to ignore. If an error code is included in this array, the form control will not
143
+ * consider it as an error state. Useful for ignoring specific validation errors.
144
+ *
145
+ * @type {string[]}
146
+ */
57
147
  this.ignoreErrors = [];
148
+ /**
149
+ * A reference to the `ControlDirective` if it exists within the same host. This allows for direct interaction
150
+ * with the underlying form control directive.
151
+ *
152
+ * @type {ControlDirective | null}
153
+ *
154
+ * @example
155
+ * ```ts
156
+ * this.customInputControl.control?.focus();
157
+ * ```
158
+ */
58
159
  this.control = null;
59
160
  this.internalValue = initialValue;
60
161
  if (this.ngControl) {
61
162
  this.ngControl.valueAccessor = this;
62
163
  }
63
164
  }
165
+ /** @internal */
64
166
  onTouched() {
65
167
  // implemented by control value accessor
66
168
  }
169
+ /** @internal */
67
170
  onChange(_value) {
68
171
  // implemented by control value accessor
69
172
  }
173
+ /** @internal */
70
174
  registerOnChange(fn) {
71
175
  this.onChange = fn;
72
176
  }
177
+ /** @internal */
73
178
  registerOnTouched(fn) {
74
179
  this.onTouched = fn;
75
180
  }
181
+ /** @internal */
76
182
  setDisabledState(isDisabled) {
77
183
  this.disabledController?.setDisabledState(isDisabled);
78
184
  }
185
+ /** @internal */
79
186
  writeValue(value) {
80
- if (this.isDisabled)
81
- return;
82
187
  this.value = value;
83
188
  this.onChange(value);
84
189
  }
190
+ /** @internal */
85
191
  updateValue(value) {
86
192
  if (this.isDisabled)
87
193
  return;
@@ -129,24 +235,99 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
129
235
  args: [ControlDirective]
130
236
  }], hasNonIgnoredError: [] } });
131
237
 
238
+ /**
239
+ * An abstract directive that facilitates handling input changes, focusing, and blurring programmatically for input elements.
240
+ * It provides a reactive `valueChange$` observable to subscribe to input changes.
241
+ * This directive can be extended to create more specific input handlers.
242
+ *
243
+ * @example
244
+ * Extending InputControlDirective in a custom directive:
245
+ * ```ts
246
+ * @Directive({
247
+ * selector: '[appCustomInput]',
248
+ * standalone: true,
249
+ * })
250
+ * export class CustomInputDirective extends InputControlDirective {
251
+ * // Custom logic here
252
+ * }
253
+ * ```
254
+ *
255
+ * Using the directive in a component template:
256
+ * ```html
257
+ * <input appCustomInput type="text" />
258
+ * ```
259
+ *
260
+ * Subscribing to input changes in the component:
261
+ * ```ts
262
+ * @Component({...})
263
+ * export class MyComponent implements AfterViewInit {
264
+ * @ViewChild(CustomInputDirective) customInputDirective!: CustomInputDirective;
265
+ *
266
+ * ngAfterViewInit(): void {
267
+ * this.customInputDirective.valueChange$.subscribe(value => {
268
+ * console.log('Input value changed to:', value);
269
+ * });
270
+ * }
271
+ * }
272
+ *
273
+ * // Focusing the input programmatically
274
+ * this.customInputDirective.focus();
275
+ *
276
+ * // Blurring the input programmatically
277
+ * this.customInputDirective.blur();
278
+ *
279
+ * // Resetting the input value programmatically
280
+ * this.customInputDirective.reset();
281
+ * ```
282
+ */
132
283
  class InputControlDirective {
133
284
  constructor() {
134
285
  this.takeUntilDestroyed = untilDestroyed();
135
286
  this.element = injectElement();
287
+ /**
288
+ * Represents an observable stream of value changes for the input control.
289
+ *
290
+ * @emits {string} input value changes.
291
+ */
136
292
  this.valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(distinctUntilChanged(), map(() => this.nativeElementValue));
137
293
  }
294
+ /**
295
+ * Gets the current value of the input element.
296
+ *
297
+ * @type {string} The current value of the input element.
298
+ */
138
299
  get nativeElementValue() {
139
300
  return this.element.nativeElement.value;
140
301
  }
302
+ /**
303
+ * Sets the value of the input element.
304
+ *
305
+ * @param {string} value - The value to set.
306
+ */
141
307
  set nativeElementValue(value) {
142
308
  this.element.nativeElement.value = value;
143
309
  }
310
+ /**
311
+ * Sets focus on the input element.
312
+ *
313
+ * @returns {void}
314
+ */
144
315
  focus() {
145
316
  this.element.nativeElement.focus();
146
317
  }
318
+ /**
319
+ * Removes focus from the input element.
320
+ *
321
+ * @returns {void}
322
+ */
147
323
  blur() {
148
324
  this.element.nativeElement.blur();
149
325
  }
326
+ /**
327
+ * Resets the input element value to an empty string.
328
+ *
329
+ * @returns {void}
330
+ */
150
331
  reset() {
151
332
  this.element.nativeElement.value = '';
152
333
  }
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-cdk-custom-form-control.mjs","sources":["../../../../libs/angular/cdk/custom-form-control/src/lib/control.directive.ts","../../../../libs/angular/cdk/custom-form-control/src/lib/custom-form-control.ts","../../../../libs/angular/cdk/custom-form-control/src/lib/input-control.directive.ts","../../../../libs/angular/cdk/custom-form-control/src/odx-angular-cdk-custom-form-control.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { injectElement } from '@odx/angular/utils';\n\n@Directive({\n standalone: true,\n selector: '[odxControl]',\n exportAs: 'odxControl',\n})\nexport class ControlDirective {\n public readonly element = injectElement();\n}\n","import { Directive, inject, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgControl, RequiredValidator, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { Controller, DisabledController, ReadonlyController } from '@odx/angular';\nimport { arrayAttribute, Pure } from '@odx/angular/utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n host: {\n '[class.has-error]': 'hasError',\n '[class.is-disabled]': 'isDisabled',\n '[class.is-readonly]': 'isReadonly',\n '[class.is-required]': 'required',\n },\n})\nexport abstract class CustomFormControl<T> extends Controller implements ControlValueAccessor {\n private static CURRENT_INDEX = 0;\n\n private readonly requiredValidator = inject(RequiredValidator, { optional: true, self: true });\n private internalValue: T;\n protected readonly disabledController = DisabledController.inject();\n protected readonly readonlyController = ReadonlyController.inject();\n protected readonly ngControl = inject(NgControl, { self: true, optional: true });\n\n @Input()\n public id: string | null = null;\n\n @Input()\n public name = `odx-form-control-${CustomFormControl.CURRENT_INDEX++}`;\n\n @Input()\n public tabindex: string | null = null;\n\n @Input({ transform: arrayAttribute })\n public ignoreErrors: string[] = [];\n\n public set value(value: T) {\n if (this.internalValue !== value) {\n this.internalValue = value;\n this.triggerControllerChange();\n }\n }\n public get value(): T {\n return this.internalValue;\n }\n\n public get hasError(): boolean {\n return !!this.ngControl?.touched && !!this.ngControl?.invalid && this.hasNonIgnoredError(this.ngControl.errors);\n }\n\n public get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n public get isReadonly(): boolean {\n return !!this.readonlyController?.readonly;\n }\n\n public get isRequired(): boolean {\n return !!this.requiredValidator?.required || this.hasValidator(Validators.required) || this.hasValidator(Validators.requiredTrue);\n }\n\n @ViewChild(ControlDirective)\n public readonly control: ControlDirective | null = null;\n\n constructor(initialValue: T) {\n super();\n this.internalValue = initialValue;\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public onTouched() {\n // implemented by control value accessor\n }\n\n public onChange(_value: T) {\n // implemented by control value accessor\n }\n\n public registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabledController?.setDisabledState(isDisabled);\n }\n\n public writeValue(value: T): void {\n if (this.isDisabled) return;\n this.value = value;\n this.onChange(value);\n }\n\n public updateValue(value: T): void {\n if (this.isDisabled) return;\n this.writeValue(value);\n this.onTouched();\n }\n\n protected hasValidator(validator: ValidatorFn): boolean {\n return !!this.ngControl?.control?.hasValidator(validator);\n }\n\n @Pure\n private hasNonIgnoredError(errors: ValidationErrors | null): boolean {\n if (!errors) return false;\n\n return Object.keys(errors).some((error) => !this.ignoreErrors.includes(error));\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { distinctUntilChanged, fromEvent, map } from 'rxjs';\n\n@Directive({\n standalone: true,\n})\nexport abstract class InputControlDirective {\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement<HTMLInputElement>();\n\n public valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n distinctUntilChanged(),\n map(() => this.nativeElementValue),\n );\n\n public get nativeElementValue(): string {\n return this.element.nativeElement.value;\n }\n\n public set nativeElementValue(value: string) {\n this.element.nativeElement.value = value;\n }\n\n public focus(): void {\n this.element.nativeElement.focus();\n }\n\n public blur(): void {\n this.element.nativeElement.blur();\n }\n\n public reset(): void {\n this.element.nativeElement.value = '';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-cdk-custom-form-control.mjs","sources":["../../../../libs/angular/cdk/custom-form-control/src/lib/control.directive.ts","../../../../libs/angular/cdk/custom-form-control/src/lib/custom-form-control.ts","../../../../libs/angular/cdk/custom-form-control/src/lib/input-control.directive.ts","../../../../libs/angular/cdk/custom-form-control/src/odx-angular-cdk-custom-form-control.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { injectElement } from '@odx/angular/utils';\n\n@Directive({\n standalone: true,\n selector: '[odxControl]',\n exportAs: 'odxControl',\n})\nexport class ControlDirective {\n public readonly element = injectElement();\n}\n","import { Directive, inject, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgControl, RequiredValidator, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { Controller, DisabledController, ReadonlyController } from '@odx/angular';\nimport { arrayAttribute, Pure } from '@odx/angular/utils';\nimport { ControlDirective } from './control.directive';\n\n/**\n * An abstract directive that serves as a base for custom form controls, integrating seamlessly with Angular Forms.\n * It incorporates common form control behaviors such as handling disabled and readonly states, validation, and more.\n *\n * This approach allows the creation of highly reusable and consistent form controls within Angular applications,\n * simplifying the integration with Angular Forms and the handling of common form behaviors.\n *\n * Extends Controller to provide a consistent API for managing state changes and subscriptions.\n *\n * @see {Controller}\n */\n@Directive({\n host: {\n '[class.has-error]': 'hasError',\n '[class.is-disabled]': 'isDisabled',\n '[class.is-readonly]': 'isReadonly',\n '[class.is-required]': 'required',\n },\n})\nexport abstract class CustomFormControl<T> extends Controller implements ControlValueAccessor {\n private static CURRENT_INDEX = 0;\n\n private readonly requiredValidator = inject(RequiredValidator, { optional: true, self: true });\n private internalValue: T;\n protected readonly disabledController = DisabledController.inject();\n protected readonly readonlyController = ReadonlyController.inject();\n protected readonly ngControl = inject(NgControl, { self: true, optional: true });\n\n /**\n * A unique identifier for the custom form control. If not provided, a unique ID is generated automatically.\n * This can be useful for associating form control with a label.\n *\n * @type {string}\n */\n @Input()\n public id: string | null = null;\n\n /**\n * The name attribute for the custom form control. Defaults to a unique name if not provided.\n * This is useful when the form control is part of a form and needs to be identified.\n *\n * @type {string}\n */\n @Input()\n public name = `odx-form-control-${CustomFormControl.CURRENT_INDEX++}`;\n\n /**\n * The tabindex attribute for the custom form control. Can be used to control the order of focus navigation.\n *\n * @type {string | null}\n */\n @Input()\n public tabindex: string | null = null;\n\n /**\n * An array of error codes to ignore. If an error code is included in this array, the form control will not\n * consider it as an error state. Useful for ignoring specific validation errors.\n *\n * @type {string[]}\n */\n @Input({ transform: arrayAttribute })\n public ignoreErrors: string[] = [];\n\n /**\n * The current value of the form control. Setting this value updates the internal state and marks the control\n * for checking changes. Getting this value returns the current internal value of the control.\n *\n * @example\n * ```ts\n * this.customInputControl.value = 'newValue'; // Sets the value\n * const currentValue = this.customInputControl.value; // Gets the current value\n * ```\n */\n public set value(value: T) {\n if (this.internalValue !== value) {\n this.internalValue = value;\n this.triggerControllerChange();\n }\n }\n\n /**\n * Gets the value of the custom form control.\n *\n * @returns {T} - The value of the custom form control.\n */\n public get value(): T {\n return this.internalValue;\n }\n\n /**\n * Indicates whether the form control currently has an error. This takes into account any ignored errors.\n *\n * @returns {boolean} - True if the form control has an error, false otherwise.\n *\n * @example\n * ```ts\n * if (this.customInputControl.hasError) { ... }\n * ```\n */\n public get hasError(): boolean {\n return !!this.ngControl?.touched && !!this.ngControl?.invalid && this.hasNonIgnoredError(this.ngControl.errors);\n }\n\n /**\n * Indicates whether the form control is currently disabled.\n *\n * @returns {boolean} - True if the form control is disabled, false otherwise.\n *\n * @example\n * ```ts\n * if (this.customInputControl.isDisabled) { ... }\n * ```\n */\n public get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n /**\n * Indicates whether the form control is currently in a readonly state.\n *\n * @returns {boolean} - True if the form control is readonly, false otherwise.\n *\n * @example\n * ```ts\n * if (this.customInputControl.isReadonly) { ... }\n * ```\n */\n public get isReadonly(): boolean {\n return !!this.readonlyController?.readonly;\n }\n\n /**\n * Indicates whether the form control is marked as required, either through Validators.required, Validators.requiredTrue,\n * or by a required attribute on a parent form field.\n *\n * @returns {boolean} - True if the form control is required, false otherwise.\n *\n * @example\n * ````ts\n * if (this.customInputControl.isRequired) { ... }\n * ````\n */\n public get isRequired(): boolean {\n return !!this.requiredValidator?.required || this.hasValidator(Validators.required) || this.hasValidator(Validators.requiredTrue);\n }\n\n /**\n * A reference to the `ControlDirective` if it exists within the same host. This allows for direct interaction\n * with the underlying form control directive.\n *\n * @type {ControlDirective | null}\n *\n * @example\n * ```ts\n * this.customInputControl.control?.focus();\n * ```\n */\n @ViewChild(ControlDirective)\n public readonly control: ControlDirective | null = null;\n\n constructor(initialValue: T) {\n super();\n this.internalValue = initialValue;\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /** @internal */\n public onTouched() {\n // implemented by control value accessor\n }\n\n /** @internal */\n public onChange(_value: T) {\n // implemented by control value accessor\n }\n\n /** @internal */\n public registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n /** @internal */\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @internal */\n public setDisabledState(isDisabled: boolean): void {\n this.disabledController?.setDisabledState(isDisabled);\n }\n\n /** @internal */\n public writeValue(value: T): void {\n this.value = value;\n this.onChange(value);\n }\n\n /** @internal */\n public updateValue(value: T): void {\n if (this.isDisabled) return;\n this.writeValue(value);\n this.onTouched();\n }\n\n protected hasValidator(validator: ValidatorFn): boolean {\n return !!this.ngControl?.control?.hasValidator(validator);\n }\n\n @Pure\n private hasNonIgnoredError(errors: ValidationErrors | null): boolean {\n if (!errors) return false;\n\n return Object.keys(errors).some((error) => !this.ignoreErrors.includes(error));\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { distinctUntilChanged, fromEvent, map } from 'rxjs';\n\n/**\n * An abstract directive that facilitates handling input changes, focusing, and blurring programmatically for input elements.\n * It provides a reactive `valueChange$` observable to subscribe to input changes.\n * This directive can be extended to create more specific input handlers.\n *\n * @example\n * Extending InputControlDirective in a custom directive:\n * ```ts\n * @Directive({\n * selector: '[appCustomInput]',\n * standalone: true,\n * })\n * export class CustomInputDirective extends InputControlDirective {\n * // Custom logic here\n * }\n * ```\n *\n * Using the directive in a component template:\n * ```html\n * <input appCustomInput type=\"text\" />\n * ```\n *\n * Subscribing to input changes in the component:\n * ```ts\n * @Component({...})\n * export class MyComponent implements AfterViewInit {\n * @ViewChild(CustomInputDirective) customInputDirective!: CustomInputDirective;\n *\n * ngAfterViewInit(): void {\n * this.customInputDirective.valueChange$.subscribe(value => {\n * console.log('Input value changed to:', value);\n * });\n * }\n * }\n *\n * // Focusing the input programmatically\n * this.customInputDirective.focus();\n *\n * // Blurring the input programmatically\n * this.customInputDirective.blur();\n *\n * // Resetting the input value programmatically\n * this.customInputDirective.reset();\n * ```\n */\n@Directive({\n standalone: true,\n})\nexport abstract class InputControlDirective {\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement<HTMLInputElement>();\n\n /**\n * Represents an observable stream of value changes for the input control.\n *\n * @emits {string} input value changes.\n */\n public valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n distinctUntilChanged(),\n map(() => this.nativeElementValue),\n );\n\n /**\n * Gets the current value of the input element.\n *\n * @type {string} The current value of the input element.\n */\n public get nativeElementValue(): string {\n return this.element.nativeElement.value;\n }\n\n /**\n * Sets the value of the input element.\n *\n * @param {string} value - The value to set.\n */\n public set nativeElementValue(value: string) {\n this.element.nativeElement.value = value;\n }\n\n /**\n * Sets focus on the input element.\n *\n * @returns {void}\n */\n public focus(): void {\n this.element.nativeElement.focus();\n }\n\n /**\n * Removes focus from the input element.\n *\n * @returns {void}\n */\n public blur(): void {\n this.element.nativeElement.blur();\n }\n\n /**\n * Resets the input element value to an empty string.\n *\n * @returns {void}\n */\n public reset(): void {\n this.element.nativeElement.value = '';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -44,6 +44,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
44
44
  type: Input
45
45
  }] } });
46
46
 
47
+ /**
48
+ * Prepares an array of node arrays suitable for projection into the `<ng-content>` slots
49
+ * of a dynamically created Angular component based on its content selectors.
50
+ *
51
+ * The function inspects the component's content selectors and aligns the provided nodes
52
+ * for projection according to these selectors. A selector of '*' indicates that the nodes
53
+ * should be projected into this slot. If a content selector does not match '*', an empty
54
+ * array is returned for that slot, indicating no nodes are projected into it.
55
+ *
56
+ * @param {Type<unknown>} component - The component class for which the projectable nodes are being prepared.
57
+ * @param {Node[]} nodes - The nodes intended for projection into the component's `<ng-content>` slots.
58
+ * @returns {Node[][]} An array of node arrays, each corresponding to a `<ng-content>` slot in the component.
59
+ * Each sub-array contains nodes to be projected into the respective `<ng-content>` slot, based on the component's content selectors.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * // Given a component with two `<ng-content>` slots, the first without a selector and the second with the selector `<ng-content select=".selector-class">`,
64
+ * const nodes = [document.createTextNode('Hello'), document.createElement('div')];
65
+ * const projectableNodes = createProjectableNodes(MyComponent, nodes);
66
+ * // projectableNodes would be `[[TextNode, DivElement], []]` for a component with selectors ['*', '.selector-class']
67
+ * ```
68
+ */
47
69
  function createProjectableNodes(component, nodes) {
48
70
  const componentType = reflectComponentType(component);
49
71
  if (componentType && componentType.ngContentSelectors.length > 0) {
@@ -52,10 +74,43 @@ function createProjectableNodes(component, nodes) {
52
74
  return [];
53
75
  }
54
76
 
77
+ /**
78
+ * Type guard function to check if a given value is considered dynamic text content.
79
+ * Dynamic text content can either be a plain string or an Observable. This function
80
+ * facilitates type-safe handling of dynamic text content by checking the type of the value.
81
+ *
82
+ * @param {unknown} value - The value to be checked.
83
+ * @returns {value is DynamicTextContent} Returns `true` if the value is a string or an Observable,
84
+ * indicating it can be used as dynamic text content; otherwise, returns `false`.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * // Example usage of the isDynamicTextContent function
89
+ * const textValue: unknown = getTextValue(); // This function may return either string or Observable
90
+ *
91
+ * if (isDynamicTextContent(textValue)) {
92
+ * // The type of textValue is now narrowed to DynamicTextContent (string | Observable)
93
+ * console.log('The value can be used as dynamic text content.');
94
+ * } else {
95
+ * console.log('The value is not suitable as dynamic text content.');
96
+ * }
97
+ * ```
98
+ */
55
99
  function isDynamicTextContent(value) {
56
100
  return isString(value) || isObservable(value);
57
101
  }
58
102
 
103
+ /**
104
+ * The DynamicComponentRef class is a powerful utility for dynamically creating and managing
105
+ * Angular components at runtime. It encapsulates the logic for component creation, input handling,
106
+ * and lifecycle management, making it easier to work with dynamic components in complex applications.
107
+ *
108
+ * A reference to a dynamically created component, providing methods to manage its lifecycle,
109
+ * detect changes, and update its inputs based on a context.
110
+ *
111
+ * @template T - The type of the component being managed.
112
+ * @template C - The type of the context used to update the component's inputs.
113
+ */
59
114
  class DynamicComponentRef {
60
115
  constructor(options) {
61
116
  this.options = options;
@@ -86,9 +141,16 @@ class DynamicComponentRef {
86
141
  this.update(context);
87
142
  }
88
143
  }
144
+ /**
145
+ * Triggers change detection for the dynamically created component, ensuring that any updates to inputs
146
+ * or internal state are reflected in the view.
147
+ */
89
148
  detectChanges() {
90
149
  this.componentRef?.changeDetectorRef.detectChanges();
91
150
  }
151
+ /**
152
+ * Destroys the dynamically created component, cleaning up resources and detaching it from the application view.
153
+ */
92
154
  destroy() {
93
155
  if (this.componentRef?.hostView.destroyed) {
94
156
  this.componentRef = null;
@@ -101,9 +163,20 @@ class DynamicComponentRef {
101
163
  this.componentRef = null;
102
164
  this.componentInputs = null;
103
165
  }
166
+ /**
167
+ * Retrieves the native element associated with the dynamically created component's host view.
168
+ *
169
+ * @returns {Element} The native DOM element of the component.
170
+ */
104
171
  getElement() {
105
172
  return this.componentRef?.location.nativeElement ?? null;
106
173
  }
174
+ /**
175
+ * Updates the component's inputs based on the provided context. Merges the new context with the existing
176
+ * context and applies the combined context as inputs to the component.
177
+ *
178
+ * @param {C} context - The context containing new values for the component's inputs.
179
+ */
107
180
  update(context) {
108
181
  this.options.context = deepmerge({}, this.options.context, context);
109
182
  if (!this.componentRef)
@@ -114,14 +187,31 @@ class DynamicComponentRef {
114
187
  }
115
188
  }
116
189
  }
190
+ /**
191
+ * Retrieves the current context used for the component's inputs.
192
+ *
193
+ * @returns {GetDynamicViewContext<T>} The current context object.
194
+ */
117
195
  getContext() {
118
196
  return this.options.context ?? {};
119
197
  }
198
+ /**
199
+ * Retrieves the view reference associated with the dynamically created component.
200
+ *
201
+ * @returns {ViewRef | null} The view reference, or null if the component has not been created or has been destroyed.
202
+ */
120
203
  getView() {
121
204
  return this.componentRef?.hostView ?? null;
122
205
  }
123
206
  }
124
207
 
208
+ /**
209
+ * A reference to a dynamically created template, offering methods to manage its lifecycle,
210
+ * detect changes, and update its context. It encapsulates the logic for creating and manipulating
211
+ * an `EmbeddedViewRef` from a given `TemplateRef`.
212
+ *
213
+ * @template T - The type of the `NgTemplateRef` being managed.
214
+ */
125
215
  class DynamicTemplateRef {
126
216
  constructor(options) {
127
217
  this.options = options;
@@ -129,9 +219,17 @@ class DynamicTemplateRef {
129
219
  this.embeddedViewRef = null;
130
220
  this.create(options);
131
221
  }
222
+ /**
223
+ * Triggers change detection on the embedded view created from the template, ensuring that any updates
224
+ * to the context or internal state are reflected in the view.
225
+ */
132
226
  detectChanges() {
133
227
  this.embeddedViewRef?.detectChanges();
134
228
  }
229
+ /**
230
+ * Destroys the embedded view associated with the template, cleaning up resources and detaching it from the
231
+ * application view if necessary.
232
+ */
135
233
  destroy() {
136
234
  if (this.embeddedViewRef?.destroyed) {
137
235
  this.embeddedViewRef = null;
@@ -143,9 +241,20 @@ class DynamicTemplateRef {
143
241
  this.embeddedViewRef?.destroy();
144
242
  this.embeddedViewRef = null;
145
243
  }
244
+ /**
245
+ * Retrieves the native element associated with the template's embedded view's root node.
246
+ *
247
+ * @returns {Element} The native DOM element of the embedded view's root node, if available.
248
+ */
146
249
  getElement() {
147
250
  return this.embeddedViewRef?.rootNodes?.[0] ?? null;
148
251
  }
252
+ /**
253
+ * Updates the context of the embedded view based on the provided context object. Merges the new context
254
+ * with the existing one and applies the combined context to the embedded view.
255
+ *
256
+ * @param {GetDynamicViewContext<T>} context - The context containing new values for the template's view.
257
+ */
149
258
  update(context) {
150
259
  this.options.context = deepmerge({}, this.options.context, context);
151
260
  if (this.embeddedViewRef) {
@@ -153,9 +262,19 @@ class DynamicTemplateRef {
153
262
  this.detectChanges();
154
263
  }
155
264
  }
265
+ /**
266
+ * Retrieves the current context used for the template's view.
267
+ *
268
+ * @returns {GetDynamicViewContext<T>} The current context object.
269
+ */
156
270
  getContext() {
157
271
  return this.options.context ?? {};
158
272
  }
273
+ /**
274
+ * Retrieves the view reference (`ViewRef`) associated with the dynamically created template's embedded view.
275
+ *
276
+ * @returns {ViewRef | null} The view reference, or null if the template has not been instantiated or has been destroyed.
277
+ */
159
278
  getView() {
160
279
  return this.embeddedViewRef;
161
280
  }
@@ -170,6 +289,28 @@ class DynamicTemplateRef {
170
289
  }
171
290
  }
172
291
 
292
+ /**
293
+ * Type guard function to check if a given value is a reference to a dynamically created view.
294
+ * This helps in distinguishing between dynamic view references (`DynamicComponentRef` or `DynamicTemplateRef`)
295
+ * and other types of values, facilitating type-safe operations on dynamic views.
296
+ *
297
+ * @param {unknown} value - The value to check.
298
+ * @returns {value is DynamicViewRef<DynamicContent>} `true` if the value is an instance of `DynamicComponentRef`
299
+ * or `DynamicTemplateRef`, indicating it is a dynamic view reference; otherwise, `false`.
300
+ *
301
+ * @example
302
+ * ```ts
303
+ * // Given a value that could be a dynamic view reference or something else
304
+ * const value: unknown = getSomeValue();
305
+ *
306
+ * if (isDynamicView(value)) {
307
+ * // TypeScript now knows `value` is a dynamic view reference, so you can access its methods safely
308
+ * value.detectChanges();
309
+ * } else {
310
+ * console.log('Value is not a dynamic view reference');
311
+ * }
312
+ * ```
313
+ */
173
314
  function isDynamicView(value) {
174
315
  return value instanceof DynamicComponentRef || value instanceof DynamicTemplateRef;
175
316
  }
@@ -184,11 +325,41 @@ function getDynamicViewDefaultHost() {
184
325
  return inject(ODX_DYNAMIC_VIEW_DEFAULT_HOST);
185
326
  }
186
327
 
328
+ /**
329
+ * A service for creating and managing dynamic views in an Angular application.
330
+ * It supports rendering Angular components, templates, and text content dynamically,
331
+ * allowing for flexible and dynamic content composition.
332
+ */
187
333
  class DynamicViewService {
188
334
  constructor() {
189
335
  this.injector = inject(Injector);
190
336
  this.defaultHost = getDynamicViewDefaultHost();
191
337
  }
338
+ /**
339
+ * Creates and returns a reference to a dynamic view based on the provided content and options.
340
+ * The method supports dynamic creation of components, template references, and text content,
341
+ * providing a unified API for dynamic content rendering.
342
+ *
343
+ * @template T - The type of the content to be dynamically rendered.
344
+ * @param {T} content - The content to be rendered dynamically. This can be a component class,
345
+ * a template reference, or text content.
346
+ * @param {Partial<DynamicViewOptions<T>>} [options={}] - Optional configuration for the dynamic view creation,
347
+ * including a custom injector, context, host element, and additional providers for the dynamic component's injector.
348
+ * @returns {DynamicViewRef<T>} A reference to the dynamically created view, encapsulating the rendered content
349
+ * and providing methods for interaction and management.
350
+ * @throws {Error} Throws an error if the content type is not supported.
351
+ * @example
352
+ * ```ts
353
+ * // Create a dynamic view for a component
354
+ * const componentRef = dynamicViewService.createView(MyComponent, { context: { ... } });
355
+ *
356
+ * // Create a dynamic view for a template reference
357
+ * const templateRef = dynamicViewService.createView(myTemplate, { context: { ... } });
358
+ *
359
+ * // Create a dynamic view for text content
360
+ * const textRef = dynamicViewService.createView('Dynamic text content', {});
361
+ * ```
362
+ */
192
363
  createView(content, options = {}) {
193
364
  const viewOptions = {
194
365
  ...options,
@@ -221,6 +392,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
221
392
  args: [{ providedIn: 'root' }]
222
393
  }] });
223
394
 
395
+ /**
396
+ * A directive that dynamically renders content based on the provided input. It supports rendering
397
+ * Angular components, templates, and text content, allowing for dynamic and flexible content
398
+ * management within Angular applications.
399
+ *
400
+ * @template T - A type parameter that extends `DynamicContent<unknown>`, representing the type of content to be dynamically rendered.
401
+ */
224
402
  class DynamicViewDirective {
225
403
  constructor() {
226
404
  this.dynamicViewService = inject(DynamicViewService);
@@ -228,6 +406,10 @@ class DynamicViewDirective {
228
406
  this.template = inject(TemplateRef);
229
407
  this.viewRef = null;
230
408
  this.contentViewRef = null;
409
+ /**
410
+ * The content to be dynamically rendered. This can be a component, template reference, or text content.
411
+ * The content is wrapped in a `DynamicViewRef`, providing additional control over the dynamically rendered view.
412
+ */
231
413
  // eslint-disable-next-line @angular-eslint/no-input-rename
232
414
  this.content = null;
233
415
  }
@@ -249,6 +431,12 @@ class DynamicViewDirective {
249
431
  ngOnDestroy() {
250
432
  this.destroy();
251
433
  }
434
+ /**
435
+ * Retrieves the current `DynamicViewRef` associated with the rendered content, providing access
436
+ * to the view reference for additional operations like updating context or manual destruction.
437
+ *
438
+ * @returns {DynamicViewRef<T> | null} The current view reference for the dynamically rendered content, if available.
439
+ */
252
440
  getView() {
253
441
  return this.viewRef;
254
442
  }