@odx/angular 11.6.0 → 12.0.0

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 (392) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/breakpoints/lib/breakpoints.config.d.ts +1 -1
  3. package/breakpoints/lib/breakpoints.typings.d.ts +1 -2
  4. package/components/calendar/lib/calendar.config.d.ts +1 -1
  5. package/components/card/lib/card.config.d.ts +1 -1
  6. package/components/datepicker/lib/datepicker.config.d.ts +1 -1
  7. package/components/daterangepicker/lib/daterangepicker.config.d.ts +1 -1
  8. package/components/error-page/lib/error-page.config.d.ts +1 -1
  9. package/components/footer/lib/footer.config.d.ts +1 -1
  10. package/components/form-field/lib/form-field.config.d.ts +1 -1
  11. package/components/icon/lib/icon.config.d.ts +1 -1
  12. package/components/main-menu/lib/main-menu.config.d.ts +1 -1
  13. package/components/modal/lib/modal.config.d.ts +1 -1
  14. package/components/notification/lib/notification.config.d.ts +1 -1
  15. package/components/paginator/lib/paginator.config.d.ts +1 -1
  16. package/components/timepicker/lib/directives/timepicker-input-control.directive.d.ts +3 -3
  17. package/components/toast/lib/toast.config.d.ts +1 -1
  18. package/components/tooltip/lib/tooltip.config.d.ts +1 -1
  19. package/esm2022/breakpoints/lib/breakpoints.module.mjs +4 -4
  20. package/esm2022/breakpoints/lib/breakpoints.service.mjs +3 -3
  21. package/esm2022/breakpoints/lib/breakpoints.typings.mjs +1 -1
  22. package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +3 -3
  23. package/esm2022/cdk/a11y/lib/a11y.module.mjs +4 -4
  24. package/esm2022/cdk/a11y/lib/directives/interactive.directive.mjs +3 -3
  25. package/esm2022/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +3 -3
  26. package/esm2022/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +3 -3
  27. package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +3 -3
  28. package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +3 -3
  29. package/esm2022/cdk/checkbox-control/lib/checkbox-control.directive.mjs +3 -3
  30. package/esm2022/cdk/connected-overlay/lib/connected-overlay.component.mjs +3 -3
  31. package/esm2022/cdk/connected-overlay/lib/connected-overlay.service.mjs +3 -3
  32. package/esm2022/cdk/custom-form-control/lib/control.directive.mjs +3 -3
  33. package/esm2022/cdk/custom-form-control/lib/custom-form-control.mjs +3 -3
  34. package/esm2022/cdk/custom-form-control/lib/input-control.directive.mjs +3 -3
  35. package/esm2022/cdk/dynamic-view/lib/dynamic-view.component.mjs +3 -3
  36. package/esm2022/cdk/dynamic-view/lib/dynamic-view.directive.mjs +3 -3
  37. package/esm2022/cdk/dynamic-view/lib/dynamic-view.service.mjs +3 -3
  38. package/esm2022/cdk/event-plugins/lib/models/event-plugin.mjs +1 -1
  39. package/esm2022/cdk/event-plugins/lib/plugins/debounce-event-plugin.mjs +5 -5
  40. package/esm2022/cdk/event-plugins/lib/plugins/defer-event-plugin.mjs +5 -5
  41. package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +3 -3
  42. package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +3 -3
  43. package/esm2022/cdk/expandable/lib/expandable.module.mjs +4 -4
  44. package/esm2022/cdk/option-control/lib/option-control.mjs +3 -3
  45. package/esm2022/cdk/radio-group-control/lib/radio-control.directive.mjs +3 -3
  46. package/esm2022/cdk/radio-group-control/lib/radio-group-control.directive.mjs +3 -3
  47. package/esm2022/cdk/radio-group-control/lib/radio-group-control.module.mjs +4 -4
  48. package/esm2022/components/accordion/lib/accordion.component.mjs +3 -3
  49. package/esm2022/components/accordion/lib/accordion.module.mjs +4 -4
  50. package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +3 -3
  51. package/esm2022/components/accordion/lib/directives/accordion-item-title.mjs +3 -3
  52. package/esm2022/components/action-group/action-group.component.mjs +3 -3
  53. package/esm2022/components/area-header/area-header.component.mjs +3 -3
  54. package/esm2022/components/area-header/area-header.module.mjs +4 -4
  55. package/esm2022/components/area-header/directives/area-header-content.directive.mjs +3 -3
  56. package/esm2022/components/area-header/directives/area-header-subtitle.directive.mjs +3 -3
  57. package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +3 -3
  58. package/esm2022/components/autocomplete/lib/autocomplete.module.mjs +4 -4
  59. package/esm2022/components/autocomplete/lib/components/option/autocomplete-option.component.mjs +3 -3
  60. package/esm2022/components/autocomplete/lib/directives/autocomplete-input-control.directive.mjs +3 -3
  61. package/esm2022/components/autocomplete/lib/pipes/autocomplete-search-filter.pipe.mjs +3 -3
  62. package/esm2022/components/avatar/lib/avatar.component.mjs +3 -3
  63. package/esm2022/components/badge/lib/badge.component.mjs +3 -3
  64. package/esm2022/components/badge/lib/badge.directive.mjs +3 -3
  65. package/esm2022/components/bar/lib/bar.component.mjs +3 -3
  66. package/esm2022/components/bar/lib/bar.module.mjs +4 -4
  67. package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +3 -3
  68. package/esm2022/components/bar/lib/directives/bar-label.directive.mjs +3 -3
  69. package/esm2022/components/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  70. package/esm2022/components/button/lib/button.component.mjs +3 -3
  71. package/esm2022/components/button/lib/directives/responsive-button.directive.mjs +3 -3
  72. package/esm2022/components/button-group/lib/button-group.component.mjs +3 -3
  73. package/esm2022/components/calendar/lib/calendar.component.mjs +3 -3
  74. package/esm2022/components/calendar/lib/calendar.service.mjs +3 -3
  75. package/esm2022/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +3 -3
  76. package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +3 -3
  77. package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +3 -3
  78. package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +3 -3
  79. package/esm2022/components/calendar/lib/daterange.service.mjs +3 -3
  80. package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +3 -3
  81. package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +3 -3
  82. package/esm2022/components/calendar/lib/pipes/date-label.pipe.mjs +3 -3
  83. package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +3 -3
  84. package/esm2022/components/calendar/lib/services/calendar-year.service.mjs +3 -3
  85. package/esm2022/components/calendar/lib/services/calendar-years.service.mjs +3 -3
  86. package/esm2022/components/card/lib/card.component.mjs +3 -3
  87. package/esm2022/components/card/lib/card.module.mjs +4 -4
  88. package/esm2022/components/card/lib/components/card-footer/card-footer.component.mjs +3 -3
  89. package/esm2022/components/card/lib/components/card-image/card-image.component.mjs +3 -3
  90. package/esm2022/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.mjs +3 -3
  91. package/esm2022/components/card/lib/directives/card-content.directive.mjs +3 -3
  92. package/esm2022/components/checkbox/lib/checkbox.component.mjs +3 -3
  93. package/esm2022/components/checkbox/lib/checkbox.module.mjs +4 -4
  94. package/esm2022/components/checkbox/lib/checkbox.validator.mjs +3 -3
  95. package/esm2022/components/chip/lib/components/chip/chip.component.mjs +3 -3
  96. package/esm2022/components/chip/lib/components/chip-list/chip-list.component.mjs +3 -3
  97. package/esm2022/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +3 -3
  98. package/esm2022/components/circular-progress/lib/circular-progress.component.mjs +3 -3
  99. package/esm2022/components/content-box/lib/content-box.component.mjs +3 -3
  100. package/esm2022/components/content-box/lib/content-box.module.mjs +4 -4
  101. package/esm2022/components/content-box/lib/directives/content-box-footer.directive.mjs +3 -3
  102. package/esm2022/components/content-box/lib/directives/content-box-header.directive.mjs +3 -3
  103. package/esm2022/components/datepicker/lib/datepicker.component.mjs +3 -3
  104. package/esm2022/components/datepicker/lib/datepicker.module.mjs +4 -4
  105. package/esm2022/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +4 -4
  106. package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +3 -3
  107. package/esm2022/components/daterangepicker/lib/daterangepicker.module.mjs +4 -4
  108. package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +4 -4
  109. package/esm2022/components/daterangepicker/lib/range.validator.mjs +3 -3
  110. package/esm2022/components/daterangepicker/lib/required.validator.mjs +3 -3
  111. package/esm2022/components/dropdown/lib/dropdown.component.mjs +3 -3
  112. package/esm2022/components/dropdown/lib/dropdown.directive.mjs +3 -3
  113. package/esm2022/components/dropdown/lib/dropdown.module.mjs +4 -4
  114. package/esm2022/components/error-page/lib/error-page.component.mjs +3 -3
  115. package/esm2022/components/footer/lib/footer.component.mjs +3 -3
  116. package/esm2022/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +3 -3
  117. package/esm2022/components/form-field/lib/components/form-group/form-group.component.mjs +3 -3
  118. package/esm2022/components/form-field/lib/directives/form-field-control.directive.mjs +3 -3
  119. package/esm2022/components/form-field/lib/directives/form-field-error.directive.mjs +3 -3
  120. package/esm2022/components/form-field/lib/directives/form-field-hint.directive.mjs +3 -3
  121. package/esm2022/components/form-field/lib/directives/form-field-label.directive.mjs +3 -3
  122. package/esm2022/components/form-field/lib/directives/form.directive.mjs +3 -3
  123. package/esm2022/components/form-field/lib/form-field.component.mjs +3 -3
  124. package/esm2022/components/form-field/lib/form-field.module.mjs +4 -4
  125. package/esm2022/components/form-field/lib/form-field.service.mjs +3 -3
  126. package/esm2022/components/form-field/lib/services/form-field-error.service.mjs +3 -3
  127. package/esm2022/components/header/lib/directives/header-avatar.directive.mjs +3 -3
  128. package/esm2022/components/header/lib/directives/header-title.directive.mjs +3 -3
  129. package/esm2022/components/header/lib/header.component.mjs +3 -3
  130. package/esm2022/components/header/lib/header.module.mjs +4 -4
  131. package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +6 -6
  132. package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +3 -3
  133. package/esm2022/components/header-navigation/lib/header-navigation.module.mjs +4 -4
  134. package/esm2022/components/icon/lib/icon.component.mjs +3 -3
  135. package/esm2022/components/inline-message/lib/inline-message.component.mjs +3 -3
  136. package/esm2022/components/link/link.directive.mjs +3 -3
  137. package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +3 -3
  138. package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +3 -3
  139. package/esm2022/components/list/lib/list.component.mjs +3 -3
  140. package/esm2022/components/list/lib/list.module.mjs +4 -4
  141. package/esm2022/components/loading-spinner/lib/loading-spinner.component.mjs +3 -3
  142. package/esm2022/components/loading-spinner/lib/loading-spinner.directive.mjs +3 -3
  143. package/esm2022/components/loading-spinner/lib/loading-spinner.module.mjs +4 -4
  144. package/esm2022/components/logo/logo.directive.mjs +3 -3
  145. package/esm2022/components/main-menu/lib/directives/main-menu-button.directive.mjs +3 -3
  146. package/esm2022/components/main-menu/lib/directives/main-menu-close.directive.mjs +3 -3
  147. package/esm2022/components/main-menu/lib/directives/main-menu-item.directive.mjs +3 -3
  148. package/esm2022/components/main-menu/lib/main-menu.component.mjs +3 -3
  149. package/esm2022/components/main-menu/lib/main-menu.module.mjs +4 -4
  150. package/esm2022/components/main-menu/lib/main-menu.service.mjs +3 -3
  151. package/esm2022/components/mainfilter-group/lib/mainfilter-group.component.mjs +3 -3
  152. package/esm2022/components/menu/lib/directives/menu-item.directive.mjs +3 -3
  153. package/esm2022/components/menu/lib/menu.component.mjs +3 -3
  154. package/esm2022/components/menu/lib/menu.directive.mjs +3 -3
  155. package/esm2022/components/menu/lib/menu.module.mjs +4 -4
  156. package/esm2022/components/modal/lib/components/basic-modal/basic-modal.component.mjs +3 -3
  157. package/esm2022/components/modal/lib/components/modal-footer/modal-footer.component.mjs +3 -3
  158. package/esm2022/components/modal/lib/components/modal-header/modal-header.component.mjs +3 -3
  159. package/esm2022/components/modal/lib/components/modal-hero/modal-hero.component.mjs +3 -3
  160. package/esm2022/components/modal/lib/directives/modal-close.directive.mjs +3 -3
  161. package/esm2022/components/modal/lib/directives/modal-content.directive.mjs +3 -3
  162. package/esm2022/components/modal/lib/directives/modal-dismiss.directive.mjs +3 -3
  163. package/esm2022/components/modal/lib/directives/prevent-form-method-dialog.directive.mjs +3 -3
  164. package/esm2022/components/modal/lib/directives/prevent-method-dialog.directive.mjs +3 -3
  165. package/esm2022/components/modal/lib/modal.component.mjs +3 -3
  166. package/esm2022/components/modal/lib/modal.directive.mjs +3 -3
  167. package/esm2022/components/modal/lib/modal.module.mjs +4 -4
  168. package/esm2022/components/modal/lib/modal.service.mjs +3 -3
  169. package/esm2022/components/navigation-back/lib/navigation-back.component.mjs +3 -3
  170. package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +3 -3
  171. package/esm2022/components/notification/lib/components/notification-item/notification-item.component.mjs +3 -3
  172. package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +3 -3
  173. package/esm2022/components/notification/lib/notification.service.mjs +3 -3
  174. package/esm2022/components/notification/lib/services/notification-center.service.mjs +3 -3
  175. package/esm2022/components/paginator/lib/paginator.component.mjs +3 -3
  176. package/esm2022/components/paginator/lib/paginator.module.mjs +4 -4
  177. package/esm2022/components/progress/lib/progress.component.mjs +3 -3
  178. package/esm2022/components/radio-group/lib/components/radio-button/radio-button.component.mjs +3 -3
  179. package/esm2022/components/radio-group/lib/radio-group.component.mjs +3 -3
  180. package/esm2022/components/radio-group/lib/radio-group.module.mjs +4 -4
  181. package/esm2022/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +3 -3
  182. package/esm2022/components/rail-navigation/lib/rail-navigation.component.mjs +3 -3
  183. package/esm2022/components/rail-navigation/lib/rail-navigation.module.mjs +4 -4
  184. package/esm2022/components/rich-list/lib/components/rich-list-content/rich-list-content.component.mjs +3 -3
  185. package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +3 -3
  186. package/esm2022/components/rich-list/lib/components/rich-list-item-header/rich-list-item-header.component.mjs +3 -3
  187. package/esm2022/components/rich-list/lib/rich-list.component.mjs +3 -3
  188. package/esm2022/components/rich-list/lib/rich-list.module.mjs +4 -4
  189. package/esm2022/components/search-bar/lib/search-bar-control.directive.mjs +3 -3
  190. package/esm2022/components/search-bar/lib/search-bar.component.mjs +3 -3
  191. package/esm2022/components/search-bar/lib/search-bar.module.mjs +4 -4
  192. package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +3 -3
  193. package/esm2022/components/select/lib/directives/select-input-control.directive.mjs +3 -3
  194. package/esm2022/components/select/lib/pipes/select-search-filter.pipe.mjs +3 -3
  195. package/esm2022/components/select/lib/select.component.mjs +3 -3
  196. package/esm2022/components/select/lib/select.module.mjs +4 -4
  197. package/esm2022/components/slider/lib/slider.directive.mjs +3 -3
  198. package/esm2022/components/spinbox/lib/spinbox.component.mjs +3 -3
  199. package/esm2022/components/switch/lib/switch.component.mjs +3 -3
  200. package/esm2022/components/switch/lib/switch.module.mjs +4 -4
  201. package/esm2022/components/switch/lib/switch.validator.mjs +3 -3
  202. package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +3 -3
  203. package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +3 -3
  204. package/esm2022/components/tab-bar/lib/tab-bar.module.mjs +4 -4
  205. package/esm2022/components/table/lib/components/check-cell/check-cell.component.mjs +3 -3
  206. package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +3 -3
  207. package/esm2022/components/table/lib/directives/table-cell.directive.mjs +3 -3
  208. package/esm2022/components/table/lib/directives/table-row.directive.mjs +3 -3
  209. package/esm2022/components/table/lib/table.component.mjs +3 -3
  210. package/esm2022/components/table/lib/table.module.mjs +4 -4
  211. package/esm2022/components/timepicker/lib/components/timepicker-option.component.mjs +3 -3
  212. package/esm2022/components/timepicker/lib/directives/timepicker-input-control.directive.mjs +5 -5
  213. package/esm2022/components/timepicker/lib/timepicker.component.mjs +3 -3
  214. package/esm2022/components/timepicker/lib/timepicker.module.mjs +4 -4
  215. package/esm2022/components/timepicker/lib/timepicker.service.mjs +3 -3
  216. package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs +3 -3
  217. package/esm2022/components/toast/lib/components/toast-item/toast-item.component.mjs +3 -3
  218. package/esm2022/components/toast/lib/toast.module.mjs +4 -4
  219. package/esm2022/components/toast/lib/toast.service.mjs +3 -3
  220. package/esm2022/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +3 -3
  221. package/esm2022/components/toggle-button-group/lib/toggle-button-group.component.mjs +3 -3
  222. package/esm2022/components/toggle-button-group/lib/toggle-button-group.module.mjs +4 -4
  223. package/esm2022/components/tooltip/lib/tooltip.component.mjs +3 -3
  224. package/esm2022/components/tooltip/lib/tooltip.directive.mjs +3 -3
  225. package/esm2022/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +3 -3
  226. package/esm2022/components/wizard/lib/wizard.component.mjs +3 -3
  227. package/esm2022/components/wizard/lib/wizard.module.mjs +4 -4
  228. package/esm2022/internal/translate/lib/pipes/translate.pipe.mjs +3 -3
  229. package/esm2022/lib/controllers/controller.mjs +3 -3
  230. package/esm2022/lib/controllers/disabled.controller.mjs +3 -3
  231. package/esm2022/lib/controllers/readonly.controller.mjs +3 -3
  232. package/esm2022/lib/core.module.mjs +4 -4
  233. package/esm2022/lib/directives/click-outside.directive.mjs +3 -3
  234. package/esm2022/lib/directives/delegate-focus.directive.mjs +3 -3
  235. package/esm2022/lib/directives/with-disabled-state.directive.mjs +3 -3
  236. package/esm2022/lib/directives/with-tabindex.directive.mjs +3 -3
  237. package/esm2022/lib/services/window-ref.mjs +3 -3
  238. package/esm2022/localization/lib/localization.service.mjs +3 -3
  239. package/esm2022/theming/lib/theming.service.mjs +3 -3
  240. package/esm2022/utils/lib/helpers/dom.mjs +3 -2
  241. package/esm2022/utils/lib/helpers/event-manager.mjs +3 -3
  242. package/fesm2022/odx-angular-animations.mjs.map +1 -1
  243. package/fesm2022/odx-angular-breakpoints.mjs +10 -10
  244. package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
  245. package/fesm2022/odx-angular-cdk-a11y.mjs +13 -13
  246. package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
  247. package/fesm2022/odx-angular-cdk-active-indicator.mjs +3 -3
  248. package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
  249. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +3 -3
  250. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  251. package/fesm2022/odx-angular-cdk-checkbox-control.mjs +3 -3
  252. package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  253. package/fesm2022/odx-angular-cdk-connected-overlay.mjs +6 -6
  254. package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  255. package/fesm2022/odx-angular-cdk-custom-form-control.mjs +9 -9
  256. package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  257. package/fesm2022/odx-angular-cdk-dynamic-view.mjs +9 -9
  258. package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  259. package/fesm2022/odx-angular-cdk-event-plugins.mjs +8 -8
  260. package/fesm2022/odx-angular-cdk-event-plugins.mjs.map +1 -1
  261. package/fesm2022/odx-angular-cdk-expandable.mjs +10 -10
  262. package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
  263. package/fesm2022/odx-angular-cdk-option-control.mjs +3 -3
  264. package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
  265. package/fesm2022/odx-angular-cdk-radio-group-control.mjs +10 -10
  266. package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  267. package/fesm2022/odx-angular-components-accordion.mjs +13 -13
  268. package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
  269. package/fesm2022/odx-angular-components-action-group.mjs +3 -3
  270. package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
  271. package/fesm2022/odx-angular-components-area-header.mjs +13 -13
  272. package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
  273. package/fesm2022/odx-angular-components-autocomplete.mjs +16 -16
  274. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  275. package/fesm2022/odx-angular-components-avatar.mjs +3 -3
  276. package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
  277. package/fesm2022/odx-angular-components-badge.mjs +6 -6
  278. package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
  279. package/fesm2022/odx-angular-components-bar.mjs +13 -13
  280. package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
  281. package/fesm2022/odx-angular-components-breadcrumbs.mjs +3 -3
  282. package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
  283. package/fesm2022/odx-angular-components-button-group.mjs +3 -3
  284. package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
  285. package/fesm2022/odx-angular-components-button.mjs +6 -6
  286. package/fesm2022/odx-angular-components-button.mjs.map +1 -1
  287. package/fesm2022/odx-angular-components-calendar.mjs +39 -39
  288. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  289. package/fesm2022/odx-angular-components-card.mjs +19 -19
  290. package/fesm2022/odx-angular-components-card.mjs.map +1 -1
  291. package/fesm2022/odx-angular-components-checkbox.mjs +10 -10
  292. package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
  293. package/fesm2022/odx-angular-components-chip.mjs +9 -9
  294. package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
  295. package/fesm2022/odx-angular-components-circular-progress.mjs +3 -3
  296. package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
  297. package/fesm2022/odx-angular-components-content-box.mjs +13 -13
  298. package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
  299. package/fesm2022/odx-angular-components-datepicker.mjs +10 -10
  300. package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
  301. package/fesm2022/odx-angular-components-daterangepicker.mjs +16 -16
  302. package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
  303. package/fesm2022/odx-angular-components-dropdown.mjs +10 -10
  304. package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
  305. package/fesm2022/odx-angular-components-error-page.mjs +3 -3
  306. package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
  307. package/fesm2022/odx-angular-components-footer.mjs +3 -3
  308. package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
  309. package/fesm2022/odx-angular-components-form-field.mjs +34 -34
  310. package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
  311. package/fesm2022/odx-angular-components-header-navigation.mjs +13 -13
  312. package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
  313. package/fesm2022/odx-angular-components-header.mjs +13 -13
  314. package/fesm2022/odx-angular-components-header.mjs.map +1 -1
  315. package/fesm2022/odx-angular-components-icon.mjs +3 -3
  316. package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
  317. package/fesm2022/odx-angular-components-inline-message.mjs +3 -3
  318. package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
  319. package/fesm2022/odx-angular-components-link.mjs +3 -3
  320. package/fesm2022/odx-angular-components-link.mjs.map +1 -1
  321. package/fesm2022/odx-angular-components-list.mjs +13 -13
  322. package/fesm2022/odx-angular-components-list.mjs.map +1 -1
  323. package/fesm2022/odx-angular-components-loading-spinner.mjs +10 -10
  324. package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
  325. package/fesm2022/odx-angular-components-logo.mjs +3 -3
  326. package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
  327. package/fesm2022/odx-angular-components-main-menu.mjs +19 -19
  328. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  329. package/fesm2022/odx-angular-components-mainfilter-group.mjs +3 -3
  330. package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
  331. package/fesm2022/odx-angular-components-menu.mjs +13 -13
  332. package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
  333. package/fesm2022/odx-angular-components-modal.mjs +40 -40
  334. package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
  335. package/fesm2022/odx-angular-components-navigation-back.mjs +3 -3
  336. package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
  337. package/fesm2022/odx-angular-components-notification-testing.mjs.map +1 -1
  338. package/fesm2022/odx-angular-components-notification.mjs +15 -15
  339. package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
  340. package/fesm2022/odx-angular-components-paginator.mjs +7 -7
  341. package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
  342. package/fesm2022/odx-angular-components-progress.mjs +3 -3
  343. package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
  344. package/fesm2022/odx-angular-components-radio-group.mjs +10 -10
  345. package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
  346. package/fesm2022/odx-angular-components-rail-navigation.mjs +10 -10
  347. package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
  348. package/fesm2022/odx-angular-components-rich-list.mjs +16 -16
  349. package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
  350. package/fesm2022/odx-angular-components-search-bar.mjs +10 -10
  351. package/fesm2022/odx-angular-components-search-bar.mjs.map +1 -1
  352. package/fesm2022/odx-angular-components-select.mjs +16 -16
  353. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  354. package/fesm2022/odx-angular-components-slider.mjs +3 -3
  355. package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
  356. package/fesm2022/odx-angular-components-spinbox.mjs +3 -3
  357. package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
  358. package/fesm2022/odx-angular-components-switch.mjs +10 -10
  359. package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
  360. package/fesm2022/odx-angular-components-tab-bar.mjs +10 -10
  361. package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
  362. package/fesm2022/odx-angular-components-table.mjs +19 -19
  363. package/fesm2022/odx-angular-components-table.mjs.map +1 -1
  364. package/fesm2022/odx-angular-components-timepicker.mjs +17 -17
  365. package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
  366. package/fesm2022/odx-angular-components-toast.mjs +13 -13
  367. package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
  368. package/fesm2022/odx-angular-components-toggle-button-group.mjs +10 -10
  369. package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
  370. package/fesm2022/odx-angular-components-tooltip.mjs +6 -6
  371. package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
  372. package/fesm2022/odx-angular-components-wizard.mjs +10 -10
  373. package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
  374. package/fesm2022/odx-angular-internal-translate.mjs +3 -3
  375. package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
  376. package/fesm2022/odx-angular-internal.mjs.map +1 -1
  377. package/fesm2022/odx-angular-localization.mjs +3 -3
  378. package/fesm2022/odx-angular-localization.mjs.map +1 -1
  379. package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
  380. package/fesm2022/odx-angular-sdk.mjs.map +1 -1
  381. package/fesm2022/odx-angular-theming.mjs +3 -3
  382. package/fesm2022/odx-angular-theming.mjs.map +1 -1
  383. package/fesm2022/odx-angular-utils.mjs +5 -4
  384. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  385. package/fesm2022/odx-angular.mjs +28 -28
  386. package/fesm2022/odx-angular.mjs.map +1 -1
  387. package/internal/lib/helpers/deepmerge.d.ts +1 -1
  388. package/localization/lib/localization.config.d.ts +1 -1
  389. package/package.json +13 -13
  390. package/theming/lib/theming.config.d.ts +1 -1
  391. package/utils/lib/helpers/dom.d.ts +1 -1
  392. package/utils/lib/helpers/provide-config.d.ts +1 -1
@@ -99,8 +99,8 @@ let TooltipComponent = class TooltipComponent {
99
99
  */
100
100
  this.size = TooltipSize.AUTO;
101
101
  }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TooltipComponent, isStandalone: true, selector: "odx-tooltip", inputs: { id: "id", content: "content", size: "size" }, host: { attributes: { "role": "tooltip" }, properties: { "attr.id": "id" } }, ngImport: i0, template: "<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n", dependencies: [{ kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: TooltipComponent, isStandalone: true, selector: "odx-tooltip", inputs: { id: "id", content: "content", size: "size" }, host: { attributes: { "role": "tooltip" }, properties: { "attr.id": "id" } }, ngImport: i0, template: "<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n", dependencies: [{ kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
104
104
  };
105
105
  __decorate([
106
106
  CSSModifier(),
@@ -109,7 +109,7 @@ __decorate([
109
109
  TooltipComponent = __decorate([
110
110
  CSSComponent('tooltip')
111
111
  ], TooltipComponent);
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipComponent, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TooltipComponent, decorators: [{
113
113
  type: Component,
114
114
  args: [{ standalone: true, selector: 'odx-tooltip', imports: [DynamicViewDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
115
115
  '[attr.id]': 'id',
@@ -264,14 +264,14 @@ let TooltipDirective = class TooltipDirective {
264
264
  }
265
265
  }, 'document');
266
266
  }
267
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
268
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.12", type: TooltipDirective, isStandalone: true, selector: "[odxTooltip]", inputs: { content: ["odxTooltip", "content"], disabled: ["odxTooltipDisabled", "disabled", booleanAttribute], options: ["odxTooltipOptions", "options"], size: ["odxTooltipSize", "size"], visible: ["odxTooltipVisible", "visible", booleanAttribute] }, host: { properties: { "attr.aria-describedby": "tooltipId" } }, providers: [EventManager], exportAs: ["odxTooltip"], usesOnChanges: true, ngImport: i0 }); }
267
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
268
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.12", type: TooltipDirective, isStandalone: true, selector: "[odxTooltip]", inputs: { content: ["odxTooltip", "content"], disabled: ["odxTooltipDisabled", "disabled", booleanAttribute], options: ["odxTooltipOptions", "options"], size: ["odxTooltipSize", "size"], visible: ["odxTooltipVisible", "visible", booleanAttribute] }, host: { properties: { "attr.aria-describedby": "tooltipId" } }, providers: [EventManager], exportAs: ["odxTooltip"], usesOnChanges: true, ngImport: i0 }); }
269
269
  };
270
270
  TooltipDirective = __decorate([
271
271
  CSSComponent('tooltip-host'),
272
272
  __metadata("design:paramtypes", [])
273
273
  ], TooltipDirective);
274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipDirective, decorators: [{
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TooltipDirective, decorators: [{
275
275
  type: Directive,
276
276
  args: [{
277
277
  standalone: true,
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-tooltip.mjs","sources":["../../../../libs/angular/components/tooltip/src/lib/helpers/resolve-tooltip-trigger-events.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-size.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-options.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.config.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.html","../../../../libs/angular/components/tooltip/src/lib/tooltip.directive.ts","../../../../libs/angular/components/tooltip/src/odx-angular-components-tooltip.ts"],"sourcesContent":["import { TooltipTrigger } from '../models';\n\n/**\n * @internal\n * Resolves the appropriate event names for the provided tooltip trigger.\n *\n * @param {TooltipTrigger} trigger - The trigger to resolve.\n * @returns {[string, string | null]} - The event names for the trigger.\n */\nexport function resolveTooltipTriggerEvents(trigger: TooltipTrigger): [string, string | null] {\n if (trigger === 'click') {\n return ['click', null];\n } else {\n return ['mouseenter', 'mouseleave'];\n }\n}\n","export type TooltipSize = typeof TooltipSize[keyof typeof TooltipSize];\n\nexport const TooltipSize = {\n AUTO: 'auto',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","import { ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';\nimport { TooltipSize } from './tooltip-size';\nimport { TooltipTrigger } from './tooltip-trigger';\n\nexport interface TooltipOptions extends Pick<ConnectedOverlayOptions, 'position' | 'matchReferenceWidth'> {\n trigger: TooltipTrigger;\n delayIn: number;\n delayOut: number;\n size: TooltipSize;\n}\n\nexport const DefaultTooltipOptions: TooltipOptions = {\n matchReferenceWidth: false,\n size: TooltipSize.AUTO,\n trigger: 'hover',\n position: 'top',\n delayIn: 0,\n delayOut: 0,\n};\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { DefaultTooltipOptions, TooltipOptions } from './models';\n\nexport type TooltipConfig = TooltipOptions;\n\n/**\n * Utility functions generated by `createConfigTokens` to handle injection and provision of `TooltipConfig`.\n * These include tokens and functions to access and provide the default configuration for tooltips.\n *\n * `TooltipDefaultConfig` provides the default settings for tooltips.\n * `TooltipConfig` is a token that can be used to inject tooltip configuration settings.\n * `injectTooltipConfig` is a function that retrieves the current tooltip configuration.\n * `provideTooltipConfig` is a function used to specify a custom configuration for tooltips.\n *\n * @example\n * ```ts\n * // In module providers:\n * providers: [\n * provideTooltipConfig({ // ... global module configuration }),\n * ]\n *\n * // In a component or service:\n * constructor(@Inject(TooltipConfig) private readonly config: TooltipConfig) {}\n *\n * // Or using the `injectTooltipConfig` function:\n * @Component({ ... })\n * export class MyComponent {\n * private readonly config = injectTooltipConfig();\n * }\n * ```\n */\nexport const { TooltipDefaultConfig, TooltipConfig, injectTooltipConfig, provideTooltipConfig } = createConfigTokens(\n 'Tooltip',\n '@odx/angular/components/tooltip',\n {\n ...DefaultTooltipOptions,\n } as TooltipConfig,\n);\n","import { ChangeDetectionStrategy, Component, inject, Injector, Input, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { TooltipSize } from './models';\n\n/**\n /**\n * TooltipComponent displays contextual information related to an element when the user hovers over\n * or focuses on the element. It supports dynamic content and can be styled with different sizes.\n *\n * The component uses dynamic content rendering to provide flexible display options including text,\n * templates, or even other Angular components, making it highly customizable.\n */\n@CSSComponent('tooltip')\n@Component({\n standalone: true,\n selector: 'odx-tooltip',\n imports: [DynamicViewDirective],\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n role: 'tooltip',\n },\n})\nexport class TooltipComponent {\n protected readonly injector = inject(Injector);\n public readonly element = injectElement();\n\n /**\n * The ID attribute of the tooltip, used for accessibility purposes to link the tooltip with its owner element.\n *\n * @type {string | null}\n * @default null\n */\n @Input()\n public id: string | null = null;\n\n /**\n * The content to be displayed within the tooltip. This can be text, a template reference, or a dynamic component.\n *\n * @type {DynamicContent | null}\n */\n @Input()\n public content?: Exclude<DynamicContent, Type<unknown>> | null;\n\n /**\n * Determines the size of the tooltip. It can adjust based on the content size or be set to specific dimensions.\n * The size influences the CSS class applied to the tooltip, allowing for custom styles.\n *\n * @type {TooltipSize}\n * @default TooltipSize.AUTO\n */\n @CSSModifier()\n @Input()\n public size: TooltipSize = TooltipSize.AUTO;\n}\n","<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n","import { DOCUMENT } from '@angular/common';\nimport { booleanAttribute, Directive, inject, Injector, Input, OnChanges, OnDestroy, OnInit, Type } from '@angular/core';\nimport { ConnectedOverlayRef, ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, deepmerge } from '@odx/angular/internal';\nimport { delayUntil } from '@odx/angular/rxjs';\nimport { EventManager, getUniqueId, hasChanged, injectElement, NgChanges, untilDestroyed } from '@odx/angular/utils';\nimport { filter, merge, Subject, tap } from 'rxjs';\nimport { resolveTooltipTriggerEvents } from './helpers';\nimport { TooltipOptions, TooltipSize } from './models';\nimport { TooltipComponent } from './tooltip.component';\nimport { injectTooltipConfig } from './tooltip.config';\n\n/**\n * TooltipDirective manages tooltips for host elements by creating overlay components dynamically.\n * It provides configuration options such as content, delay timings, visibility, and tooltip sizing.\n * This directive uses Angular's connected overlay system to position and manage tooltip visibility.\n */\n@CSSComponent('tooltip-host')\n@Directive({\n standalone: true,\n selector: '[odxTooltip]',\n exportAs: 'odxTooltip',\n providers: [EventManager],\n host: {\n '[attr.aria-describedby]': 'tooltipId',\n },\n})\nexport class TooltipDirective implements OnInit, OnChanges, OnDestroy {\n private readonly eventManager = inject(EventManager);\n private readonly connectedOverlayService = inject(ConnectedOverlayService);\n private readonly showTrigger$$ = new Subject<void>();\n private readonly hideTrigger$$ = new Subject<void>();\n private readonly document = inject(DOCUMENT);\n private readonly injector = inject(Injector);\n private connectedOverlayRef: ConnectedOverlayRef | null = null;\n private tooltipOptions = injectTooltipConfig();\n private ignoreBrowserTabSwitchFocus = false;\n\n protected tooltipId: string | null = null;\n public readonly element = injectElement();\n\n /**\n * Input for dynamic content to display in the tooltip.\n * This content is reactive and can change dynamically.\n *\n * @type {DynamicContent | null}\n * @default null\n */\n @Input('odxTooltip')\n public content?: Exclude<DynamicContent, Type<unknown>> | null = null;\n\n /**\n * Controls whether the tooltip is disabled. A disabled tooltip will not be displayed.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipDisabled', transform: booleanAttribute })\n public disabled = false;\n\n /**\n * Configuration options for the tooltip.\n * It allows setting various behaviors like delay and positioning.\n *\n * @param {Partial<TooltipOptions> | null | undefined}\n */\n @Input('odxTooltipOptions')\n public set options(value: Partial<TooltipOptions> | null | undefined) {\n this.tooltipOptions = deepmerge(this.tooltipOptions, value) as TooltipOptions;\n }\n\n /**\n * Sets the size of the tooltip.\n *\n * @type {TooltipSize}\n * @default null\n */\n @Input('odxTooltipSize')\n public size?: TooltipSize | null = null;\n\n /**\n * Controls the visibility of the tooltip.\n * Useful for programmatically toggling the tooltip display.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipVisible', transform: booleanAttribute })\n public visible = false;\n\n /**\n * Indicates whether the tooltip is currently open.\n *\n * @returns {boolean}\n */\n public get isOpen(): boolean {\n return this.connectedOverlayRef !== null;\n }\n\n constructor() {\n const takeUntilDestroyed = untilDestroyed();\n const show$ = this.showTrigger$$.pipe(\n filter(() => !this.isOpen),\n delayUntil(() => this.tooltipOptions.delayIn, this.hideTrigger$$),\n tap(() => this.show()),\n );\n const hide$ = this.hideTrigger$$.pipe(\n filter(() => this.isOpen),\n delayUntil(() => this.tooltipOptions.delayOut, this.showTrigger$$),\n tap(() => this.hide()),\n );\n merge(show$, hide$).pipe(takeUntilDestroyed()).subscribe();\n }\n\n public ngOnInit(): void {\n this.registerEvents();\n }\n\n public ngOnChanges(changes: NgChanges<TooltipDirective>): void {\n if (hasChanged(changes, 'disabled') && this.disabled) {\n this.hide();\n }\n if (hasChanged(changes, ['content', 'size'])) {\n this.connectedOverlayRef?.update({ context: { content: this.content, size: this.size } });\n }\n if (hasChanged(changes, 'options')) {\n this.connectedOverlayRef?.update(this.tooltipOptions);\n this.registerEvents();\n }\n if (this.visible && !this.disabled) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public ngOnDestroy(): void {\n this.hide();\n }\n\n /**\n * Shows the tooltip, creating and attaching the overlay to the host element.\n */\n public show(): void {\n if (this.isOpen || this.disabled || !this.content) return;\n this.tooltipId = getUniqueId('odx-tooltip');\n this.connectedOverlayRef = this.connectedOverlayService.createOverlay(\n this.element.nativeElement,\n {\n ...this.tooltipOptions,\n containerClass: 'odx-tooltip-overlay',\n content: TooltipComponent,\n context: { content: this.content, size: this.size, id: this.tooltipId },\n showArrow: true,\n enableFallback: true,\n },\n {\n host: this.element.nativeElement.parentElement,\n injector: this.injector,\n },\n );\n }\n\n /**\n * Hides the tooltip, detaching the overlay from the host element.\n */\n public hide(): void {\n if (!this.isOpen || (this.visible && !this.disabled)) return;\n this.connectedOverlayRef?.close();\n this.connectedOverlayRef = null;\n this.tooltipId = null;\n }\n\n private registerEvents(): void {\n const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);\n this.eventManager.destroyListeners();\n this.eventManager.register([openEvent, 'focusin'], (event: Event | undefined) => {\n if (this.ignoreBrowserTabSwitchFocus && event?.type === 'focusin') {\n this.ignoreBrowserTabSwitchFocus = false;\n return;\n }\n this.showTrigger$$.next();\n });\n this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());\n this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');\n this.eventManager.register(\n ['visibilitychange'],\n () => {\n if (this.document.visibilityState === 'hidden') {\n this.ignoreBrowserTabSwitchFocus = true;\n }\n },\n 'document',\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAEA;;;;;;AAMG;AACG,SAAU,2BAA2B,CAAC,OAAuB,EAAA;AACjE,IAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AACvB,QAAA,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACxB;SAAM;AACL,QAAA,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;KACrC;AACH;;ACba,MAAA,WAAW,GAAG;AACzB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,KAAK,EAAE,OAAO;;;ACKH,MAAA,qBAAqB,GAAmB;AACnD,IAAA,mBAAmB,EAAE,KAAK;IAC1B,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,OAAO,EAAE,CAAC;AACV,IAAA,QAAQ,EAAE,CAAC;;;ACZb;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACU,MAAA,EAAE,oBAAoB,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,GAAG,kBAAkB,CAClH,SAAS,EACT,iCAAiC,EACjC;AACE,IAAA,GAAG,qBAAqB;AACR,CAAA;;AC9BpB;;;;;;;AAOG;AAcI,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB,CAAA;AAAtB,IAAA,WAAA,GAAA;AACc,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAO,CAAA,OAAA,GAAG,aAAa,EAAE,CAAC;AAE1C;;;;;AAKG;QAEI,IAAE,CAAA,EAAA,GAAkB,IAAI,CAAC;AAUhC;;;;;;AAMG;AAGI,QAAA,IAAA,CAAA,IAAI,GAAgB,WAAW,CAAC,IAAI,CAAC;AAC7C,KAAA;+GA/BY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3B7B,sFACA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDiBY,oBAAoB,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,wBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;AAuCvB,UAAA,CAAA;AAFN,IAAA,WAAW,EAAE;;AAE8B,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AA9BjC,gBAAgB,GAAA,UAAA,CAAA;IAb5B,YAAY,CAAC,SAAS,CAAC;AAaX,CAAA,EAAA,gBAAgB,CA+B5B,CAAA;4FA/BY,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,aAAa,EACd,OAAA,EAAA,CAAC,oBAAoB,CAAC,EAAA,aAAA,EAEhB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,WAAW,EAAE,IAAI;AACjB,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,CAAA;8BAaM,EAAE,EAAA,CAAA;sBADR,KAAK;gBASC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAYC,IAAI,EAAA,CAAA;sBADV,KAAK;;;AE3CR;;;;AAIG;AAWU,IAAA,gBAAgB,GAAtB,MAAM,gBAAgB,CAAA;AAiC3B;;;;;AAKG;IACH,IACW,OAAO,CAAC,KAAiD,EAAA;QAClE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAmB,CAAC;KAC/E;AAqBD;;;;AAIG;AACH,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,mBAAmB,KAAK,IAAI,CAAC;KAC1C;AAED,IAAA,WAAA,GAAA;AAvEiB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AACpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AACpC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAmB,CAAA,mBAAA,GAA+B,IAAI,CAAC;QACvD,IAAc,CAAA,cAAA,GAAG,mBAAmB,EAAE,CAAC;QACvC,IAA2B,CAAA,2BAAA,GAAG,KAAK,CAAC;QAElC,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;QAC1B,IAAO,CAAA,OAAA,GAAG,aAAa,EAAE,CAAC;AAE1C;;;;;;AAMG;QAEI,IAAO,CAAA,OAAA,GAAmD,IAAI,CAAC;AAEtE;;;;;AAKG;QAEI,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAaxB;;;;;AAKG;QAEI,IAAI,CAAA,IAAA,GAAwB,IAAI,CAAC;AAExC;;;;;;AAMG;QAEI,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAYrB,QAAA,MAAM,kBAAkB,GAAG,cAAc,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAC1B,UAAU,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EACjE,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CACvB,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CACnC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EACzB,UAAU,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,EAClE,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CACvB,CAAC;AACF,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;KAC5D;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;AAEM,IAAA,WAAW,CAAC,OAAoC,EAAA;QACrD,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpD,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QACD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE;YAC5C,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SAC3F;AACD,QAAA,IAAI,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;YAClC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACtD,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QACD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;AAED;;AAEG;IACI,IAAI,GAAA;QACT,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;AAC1D,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,CACnE,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B;YACE,GAAG,IAAI,CAAC,cAAc;AACtB,YAAA,cAAc,EAAE,qBAAqB;AACrC,YAAA,OAAO,EAAE,gBAAgB;AACzB,YAAA,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE;AACvE,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,cAAc,EAAE,IAAI;SACrB,EACD;AACE,YAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa;YAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,SAAA,CACF,CAAC;KACH;AAED;;AAEG;IACI,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO;AAC7D,QAAA,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACvB;IAEO,cAAc,GAAA;AACpB,QAAA,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACzF,QAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,KAAwB,KAAI;YAC9E,IAAI,IAAI,CAAC,2BAA2B,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS,EAAE;AACjE,gBAAA,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;gBACzC,OAAO;aACR;AACD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;QACvF,IAAI,CAAC,YAAY,CAAC,QAAQ,CACxB,CAAC,kBAAkB,CAAC,EACpB,MAAK;YACH,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE;AAC9C,gBAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;aACzC;SACF,EACD,UAAU,CACX,CAAC;KACH;+GAvKU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,2IA8BsB,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,IAAA,EAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,SAAA,EA8BjB,gBAAgB,CAjErD,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AAKd,gBAAgB,GAAA,UAAA,CAAA;IAV5B,YAAY,CAAC,cAAc,CAAC;;AAUhB,CAAA,EAAA,gBAAgB,CAwK5B,CAAA;4FAxKY,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,YAAY;oBACtB,SAAS,EAAE,CAAC,YAAY,CAAC;AACzB,oBAAA,IAAI,EAAE;AACJ,wBAAA,yBAAyB,EAAE,WAAW;AACvC,qBAAA;AACF,iBAAA,CAAA;wDAuBQ,OAAO,EAAA,CAAA;sBADb,KAAK;uBAAC,YAAY,CAAA;gBAUZ,QAAQ,EAAA,CAAA;sBADd,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAUxD,OAAO,EAAA,CAAA;sBADjB,KAAK;uBAAC,mBAAmB,CAAA;gBAYnB,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,gBAAgB,CAAA;gBAWhB,OAAO,EAAA,CAAA;sBADb,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;;;ACxFpE;;AAEG;;;;"}
1
+ {"version":3,"file":"odx-angular-components-tooltip.mjs","sources":["../../../../libs/angular/components/tooltip/src/lib/helpers/resolve-tooltip-trigger-events.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-size.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-options.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.config.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.html","../../../../libs/angular/components/tooltip/src/lib/tooltip.directive.ts","../../../../libs/angular/components/tooltip/src/odx-angular-components-tooltip.ts"],"sourcesContent":["import { TooltipTrigger } from '../models';\n\n/**\n * @internal\n * Resolves the appropriate event names for the provided tooltip trigger.\n *\n * @param {TooltipTrigger} trigger - The trigger to resolve.\n * @returns {[string, string | null]} - The event names for the trigger.\n */\nexport function resolveTooltipTriggerEvents(trigger: TooltipTrigger): [string, string | null] {\n if (trigger === 'click') {\n return ['click', null];\n } else {\n return ['mouseenter', 'mouseleave'];\n }\n}\n","export type TooltipSize = typeof TooltipSize[keyof typeof TooltipSize];\n\nexport const TooltipSize = {\n AUTO: 'auto',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","import { ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';\nimport { TooltipSize } from './tooltip-size';\nimport { TooltipTrigger } from './tooltip-trigger';\n\nexport interface TooltipOptions extends Pick<ConnectedOverlayOptions, 'position' | 'matchReferenceWidth'> {\n trigger: TooltipTrigger;\n delayIn: number;\n delayOut: number;\n size: TooltipSize;\n}\n\nexport const DefaultTooltipOptions: TooltipOptions = {\n matchReferenceWidth: false,\n size: TooltipSize.AUTO,\n trigger: 'hover',\n position: 'top',\n delayIn: 0,\n delayOut: 0,\n};\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { DefaultTooltipOptions, TooltipOptions } from './models';\n\nexport type TooltipConfig = TooltipOptions;\n\n/**\n * Utility functions generated by `createConfigTokens` to handle injection and provision of `TooltipConfig`.\n * These include tokens and functions to access and provide the default configuration for tooltips.\n *\n * `TooltipDefaultConfig` provides the default settings for tooltips.\n * `TooltipConfig` is a token that can be used to inject tooltip configuration settings.\n * `injectTooltipConfig` is a function that retrieves the current tooltip configuration.\n * `provideTooltipConfig` is a function used to specify a custom configuration for tooltips.\n *\n * @example\n * ```ts\n * // In module providers:\n * providers: [\n * provideTooltipConfig({ // ... global module configuration }),\n * ]\n *\n * // In a component or service:\n * constructor(@Inject(TooltipConfig) private readonly config: TooltipConfig) {}\n *\n * // Or using the `injectTooltipConfig` function:\n * @Component({ ... })\n * export class MyComponent {\n * private readonly config = injectTooltipConfig();\n * }\n * ```\n */\nexport const { TooltipDefaultConfig, TooltipConfig, injectTooltipConfig, provideTooltipConfig } = createConfigTokens(\n 'Tooltip',\n '@odx/angular/components/tooltip',\n {\n ...DefaultTooltipOptions,\n } as TooltipConfig,\n);\n","import { ChangeDetectionStrategy, Component, inject, Injector, Input, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { TooltipSize } from './models';\n\n/**\n /**\n * TooltipComponent displays contextual information related to an element when the user hovers over\n * or focuses on the element. It supports dynamic content and can be styled with different sizes.\n *\n * The component uses dynamic content rendering to provide flexible display options including text,\n * templates, or even other Angular components, making it highly customizable.\n */\n@CSSComponent('tooltip')\n@Component({\n standalone: true,\n selector: 'odx-tooltip',\n imports: [DynamicViewDirective],\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n role: 'tooltip',\n },\n})\nexport class TooltipComponent {\n protected readonly injector = inject(Injector);\n public readonly element = injectElement();\n\n /**\n * The ID attribute of the tooltip, used for accessibility purposes to link the tooltip with its owner element.\n *\n * @type {string | null}\n * @default null\n */\n @Input()\n public id: string | null = null;\n\n /**\n * The content to be displayed within the tooltip. This can be text, a template reference, or a dynamic component.\n *\n * @type {DynamicContent | null}\n */\n @Input()\n public content?: Exclude<DynamicContent, Type<unknown>> | null;\n\n /**\n * Determines the size of the tooltip. It can adjust based on the content size or be set to specific dimensions.\n * The size influences the CSS class applied to the tooltip, allowing for custom styles.\n *\n * @type {TooltipSize}\n * @default TooltipSize.AUTO\n */\n @CSSModifier()\n @Input()\n public size: TooltipSize = TooltipSize.AUTO;\n}\n","<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n","import { DOCUMENT } from '@angular/common';\nimport { booleanAttribute, Directive, inject, Injector, Input, OnChanges, OnDestroy, OnInit, Type } from '@angular/core';\nimport { ConnectedOverlayRef, ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, deepmerge } from '@odx/angular/internal';\nimport { delayUntil } from '@odx/angular/rxjs';\nimport { EventManager, getUniqueId, hasChanged, injectElement, NgChanges, untilDestroyed } from '@odx/angular/utils';\nimport { filter, merge, Subject, tap } from 'rxjs';\nimport { resolveTooltipTriggerEvents } from './helpers';\nimport { TooltipOptions, TooltipSize } from './models';\nimport { TooltipComponent } from './tooltip.component';\nimport { injectTooltipConfig } from './tooltip.config';\n\n/**\n * TooltipDirective manages tooltips for host elements by creating overlay components dynamically.\n * It provides configuration options such as content, delay timings, visibility, and tooltip sizing.\n * This directive uses Angular's connected overlay system to position and manage tooltip visibility.\n */\n@CSSComponent('tooltip-host')\n@Directive({\n standalone: true,\n selector: '[odxTooltip]',\n exportAs: 'odxTooltip',\n providers: [EventManager],\n host: {\n '[attr.aria-describedby]': 'tooltipId',\n },\n})\nexport class TooltipDirective implements OnInit, OnChanges, OnDestroy {\n private readonly eventManager = inject(EventManager);\n private readonly connectedOverlayService = inject(ConnectedOverlayService);\n private readonly showTrigger$$ = new Subject<void>();\n private readonly hideTrigger$$ = new Subject<void>();\n private readonly document = inject(DOCUMENT);\n private readonly injector = inject(Injector);\n private connectedOverlayRef: ConnectedOverlayRef | null = null;\n private tooltipOptions = injectTooltipConfig();\n private ignoreBrowserTabSwitchFocus = false;\n\n protected tooltipId: string | null = null;\n public readonly element = injectElement();\n\n /**\n * Input for dynamic content to display in the tooltip.\n * This content is reactive and can change dynamically.\n *\n * @type {DynamicContent | null}\n * @default null\n */\n @Input('odxTooltip')\n public content?: Exclude<DynamicContent, Type<unknown>> | null = null;\n\n /**\n * Controls whether the tooltip is disabled. A disabled tooltip will not be displayed.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipDisabled', transform: booleanAttribute })\n public disabled = false;\n\n /**\n * Configuration options for the tooltip.\n * It allows setting various behaviors like delay and positioning.\n *\n * @param {Partial<TooltipOptions> | null | undefined}\n */\n @Input('odxTooltipOptions')\n public set options(value: Partial<TooltipOptions> | null | undefined) {\n this.tooltipOptions = deepmerge(this.tooltipOptions, value) as TooltipOptions;\n }\n\n /**\n * Sets the size of the tooltip.\n *\n * @type {TooltipSize}\n * @default null\n */\n @Input('odxTooltipSize')\n public size?: TooltipSize | null = null;\n\n /**\n * Controls the visibility of the tooltip.\n * Useful for programmatically toggling the tooltip display.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipVisible', transform: booleanAttribute })\n public visible = false;\n\n /**\n * Indicates whether the tooltip is currently open.\n *\n * @returns {boolean}\n */\n public get isOpen(): boolean {\n return this.connectedOverlayRef !== null;\n }\n\n constructor() {\n const takeUntilDestroyed = untilDestroyed();\n const show$ = this.showTrigger$$.pipe(\n filter(() => !this.isOpen),\n delayUntil(() => this.tooltipOptions.delayIn, this.hideTrigger$$),\n tap(() => this.show()),\n );\n const hide$ = this.hideTrigger$$.pipe(\n filter(() => this.isOpen),\n delayUntil(() => this.tooltipOptions.delayOut, this.showTrigger$$),\n tap(() => this.hide()),\n );\n merge(show$, hide$).pipe(takeUntilDestroyed()).subscribe();\n }\n\n public ngOnInit(): void {\n this.registerEvents();\n }\n\n public ngOnChanges(changes: NgChanges<TooltipDirective>): void {\n if (hasChanged(changes, 'disabled') && this.disabled) {\n this.hide();\n }\n if (hasChanged(changes, ['content', 'size'])) {\n this.connectedOverlayRef?.update({ context: { content: this.content, size: this.size } });\n }\n if (hasChanged(changes, 'options')) {\n this.connectedOverlayRef?.update(this.tooltipOptions);\n this.registerEvents();\n }\n if (this.visible && !this.disabled) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public ngOnDestroy(): void {\n this.hide();\n }\n\n /**\n * Shows the tooltip, creating and attaching the overlay to the host element.\n */\n public show(): void {\n if (this.isOpen || this.disabled || !this.content) return;\n this.tooltipId = getUniqueId('odx-tooltip');\n this.connectedOverlayRef = this.connectedOverlayService.createOverlay(\n this.element.nativeElement,\n {\n ...this.tooltipOptions,\n containerClass: 'odx-tooltip-overlay',\n content: TooltipComponent,\n context: { content: this.content, size: this.size, id: this.tooltipId },\n showArrow: true,\n enableFallback: true,\n },\n {\n host: this.element.nativeElement.parentElement,\n injector: this.injector,\n },\n );\n }\n\n /**\n * Hides the tooltip, detaching the overlay from the host element.\n */\n public hide(): void {\n if (!this.isOpen || (this.visible && !this.disabled)) return;\n this.connectedOverlayRef?.close();\n this.connectedOverlayRef = null;\n this.tooltipId = null;\n }\n\n private registerEvents(): void {\n const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);\n this.eventManager.destroyListeners();\n this.eventManager.register([openEvent, 'focusin'], (event: Event | undefined) => {\n if (this.ignoreBrowserTabSwitchFocus && event?.type === 'focusin') {\n this.ignoreBrowserTabSwitchFocus = false;\n return;\n }\n this.showTrigger$$.next();\n });\n this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());\n this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');\n this.eventManager.register(\n ['visibilitychange'],\n () => {\n if (this.document.visibilityState === 'hidden') {\n this.ignoreBrowserTabSwitchFocus = true;\n }\n },\n 'document',\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -76,8 +76,8 @@ let WizardStepComponent = class WizardStepComponent {
76
76
  chooseStep() {
77
77
  this.stepChosen$.next(this);
78
78
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WizardStepComponent, isStandalone: true, selector: "odx-wizard-step", inputs: { valid: "valid" }, host: { listeners: { "click": "chooseStep()", "keyup.enter": "chooseStep()", "keyup.space": "chooseStep()" } }, hostDirectives: [{ directive: i1.WithTabIndex }, { directive: i1.WithDisabledState }], ngImport: i0, template: "<span class=\"odx-wizard-step__label\">\n <ng-content />\n</span>\n\n<div class=\"odx-wizard-step__holder\">\n <span class=\"odx-wizard-step__line-before\"></span>\n <span class=\"odx-wizard-step__circle\"> <odx-icon class=\"odx-wizard-step__icon\" name=\"check\" iconSet=\"core\" /> </span>\n <span class=\"odx-wizard-step__line-after\"></span>\n</div>\n", dependencies: [{ kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: WizardStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: WizardStepComponent, isStandalone: true, selector: "odx-wizard-step", inputs: { valid: "valid" }, host: { listeners: { "click": "chooseStep()", "keyup.enter": "chooseStep()", "keyup.space": "chooseStep()" } }, hostDirectives: [{ directive: i1.WithTabIndex }, { directive: i1.WithDisabledState }], ngImport: i0, template: "<span class=\"odx-wizard-step__label\">\n <ng-content />\n</span>\n\n<div class=\"odx-wizard-step__holder\">\n <span class=\"odx-wizard-step__line-before\"></span>\n <span class=\"odx-wizard-step__circle\"> <odx-icon class=\"odx-wizard-step__icon\" name=\"check\" iconSet=\"core\" /> </span>\n <span class=\"odx-wizard-step__line-after\"></span>\n</div>\n", dependencies: [{ kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
81
81
  };
82
82
  __decorate([
83
83
  CSSModifier(),
@@ -106,7 +106,7 @@ __decorate([
106
106
  WizardStepComponent = __decorate([
107
107
  CSSComponent('wizard-step')
108
108
  ], WizardStepComponent);
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardStepComponent, decorators: [{
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: WizardStepComponent, decorators: [{
110
110
  type: Component,
111
111
  args: [{ selector: 'odx-wizard-step', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [IconComponent], hostDirectives: [WithTabIndex, WithDisabledState], template: "<span class=\"odx-wizard-step__label\">\n <ng-content />\n</span>\n\n<div class=\"odx-wizard-step__holder\">\n <span class=\"odx-wizard-step__line-before\"></span>\n <span class=\"odx-wizard-step__circle\"> <odx-icon class=\"odx-wizard-step__icon\" name=\"check\" iconSet=\"core\" /> </span>\n <span class=\"odx-wizard-step__line-after\"></span>\n</div>\n" }]
112
112
  }], propDecorators: { isLastTouched: [], active: [], passed: [], visible: [], valid: [{
@@ -311,8 +311,8 @@ let WizardComponent = class WizardComponent {
311
311
  setDottedLineActive(line, unset) {
312
312
  unset ? this.renderer.removeClass(line, 'odx-wizard-step__dotted-line--active') : this.renderer.addClass(line, 'odx-wizard-step__dotted-line--active');
313
313
  }
314
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
315
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.12", type: WizardComponent, isStandalone: true, selector: "odx-wizard", inputs: { vertical: ["vertical", "vertical", booleanAttribute], responsive: ["responsive", "responsive", booleanAttribute] }, outputs: { activeStepChanged: "activeStepChanged" }, queries: [{ propertyName: "steps", predicate: WizardStepComponent }], ngImport: i0, template: "<ng-content select=\"odx-wizard-step\" />\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
314
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: WizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
315
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.12", type: WizardComponent, isStandalone: true, selector: "odx-wizard", inputs: { vertical: ["vertical", "vertical", booleanAttribute], responsive: ["responsive", "responsive", booleanAttribute] }, outputs: { activeStepChanged: "activeStepChanged" }, queries: [{ propertyName: "steps", predicate: WizardStepComponent }], ngImport: i0, template: "<ng-content select=\"odx-wizard-step\" />\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
316
316
  };
317
317
  __decorate([
318
318
  CSSModifier(),
@@ -321,7 +321,7 @@ __decorate([
321
321
  WizardComponent = __decorate([
322
322
  CSSComponent('wizard')
323
323
  ], WizardComponent);
324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, decorators: [{
324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: WizardComponent, decorators: [{
325
325
  type: Component,
326
326
  args: [{ selector: 'odx-wizard', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-content select=\"odx-wizard-step\" />\n" }]
327
327
  }], propDecorators: { steps: [{
@@ -339,11 +339,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
339
339
 
340
340
  const modules = [WizardComponent, WizardStepComponent];
341
341
  class WizardModule {
342
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
343
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: WizardModule, imports: [WizardComponent, WizardStepComponent], exports: [CoreModule, WizardComponent, WizardStepComponent] }); }
344
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardModule, imports: [WizardStepComponent, CoreModule] }); }
342
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: WizardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
343
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: WizardModule, imports: [WizardComponent, WizardStepComponent], exports: [CoreModule, WizardComponent, WizardStepComponent] }); }
344
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: WizardModule, imports: [WizardStepComponent, CoreModule] }); }
345
345
  }
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardModule, decorators: [{
346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: WizardModule, decorators: [{
347
347
  type: NgModule,
348
348
  args: [{
349
349
  imports: modules,
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-wizard.mjs","sources":["../../../../libs/angular/components/wizard/src/lib/components/wizard-step/wizard-step.component.ts","../../../../libs/angular/components/wizard/src/lib/components/wizard-step/wizard-step.component.html","../../../../libs/angular/components/wizard/src/lib/wizard.component.ts","../../../../libs/angular/components/wizard/src/lib/wizard.component.html","../../../../libs/angular/components/wizard/src/lib/wizard.module.ts","../../../../libs/angular/components/wizard/src/odx-angular-components-wizard.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostListener, Input, ViewEncapsulation } from '@angular/core';\nimport { WithDisabledState, WithTabIndex } from '@odx/angular';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { Subject } from 'rxjs';\n\n/**\n * WizardStepComponent represents an individual step within a wizard navigation sequence. It can be configured\n * to display icons, listen for user interactions, and indicate various states such as active, passed, or valid.\n * This component interacts with the WizardComponent to manage the step progression and visibility.\n *\n * Has host directives WithTabIndex and WithDisabledState.\n *\n * @see {WithTabIndex}\n * @see {WithDisabledState}\n */\n@CSSComponent('wizard-step')\n@Component({\n selector: 'odx-wizard-step',\n templateUrl: './wizard-step.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [IconComponent],\n hostDirectives: [WithTabIndex, WithDisabledState],\n})\nexport class WizardStepComponent {\n public readonly element = injectElement();\n\n /**\n * Emitted when the step is chosen by the user, indicating that the step should be activated.\n *\n * @emits {WizardStepComponent} The chosen step.\n */\n public readonly stepChosen$ = new Subject<WizardStepComponent>();\n\n /**\n * Indicates if this step was the last one interacted with in the wizard sequence.\n *\n * @type {boolean}\n */\n @CSSModifier()\n public isLastTouched = false;\n\n /**\n * Indicates if this step is currently active.\n *\n * @type {boolean}\n */\n @CSSModifier()\n public active = false;\n\n /**\n * Indicates if this step has been passed in the navigation sequence.\n *\n * @type {boolean}\n */\n @CSSModifier()\n public passed = false;\n\n /**\n * Controls the visibility of this step in the UI.\n *\n * @type {boolean}\n */\n @CSSModifier()\n public visible = true;\n\n /**\n * Indicates if this step is valid and can be progressed to.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n @Input()\n public valid = false;\n\n /**\n * Indicates if this step has been touched by the user.\n *\n * @type {boolean}\n */\n @CSSModifier()\n public touched = false;\n\n /**\n * Sets the validation state of this step.\n *\n * @param {boolean} state - The new validation state.\n */\n public setValid(state: boolean): void {\n this.valid = state;\n }\n\n @HostListener('click')\n @HostListener('keyup.enter')\n @HostListener('keyup.space')\n protected chooseStep(): void {\n this.stepChosen$.next(this);\n }\n}\n","<span class=\"odx-wizard-step__label\">\n <ng-content />\n</span>\n\n<div class=\"odx-wizard-step__holder\">\n <span class=\"odx-wizard-step__line-before\"></span>\n <span class=\"odx-wizard-step__circle\"> <odx-icon class=\"odx-wizard-step__icon\" name=\"check\" iconSet=\"core\" /> </span>\n <span class=\"odx-wizard-step__line-after\"></span>\n</div>\n","import {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n inject,\n Input,\n Output,\n QueryList,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport { WindowRef } from '@odx/angular';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { BehaviorSubject, debounceTime, fromEvent, merge, tap } from 'rxjs';\nimport { WizardStepComponent } from './components';\n\n/**\n * WizardComponent manages a series of steps, providing functionality for navigating forwards and backwards\n * through the steps. It dynamically adjusts the visibility of steps based on the available space and current active step.\n * The component supports both horizontal and vertical orientations.\n */\n@CSSComponent('wizard')\n@Component({\n selector: 'odx-wizard',\n templateUrl: './wizard.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class WizardComponent implements AfterViewInit {\n private readonly destroyed = untilDestroyed();\n private readonly renderer = inject(Renderer2);\n\n private readonly responsive$ = new BehaviorSubject<boolean>(true);\n private visibleStepsSegments = 0;\n private readonly dottedLineStart = this.renderer.createElement('div');\n private readonly dottedLineEnd = this.renderer.createElement('div');\n\n private readonly windowRef = inject(WindowRef);\n private activeStep = 0;\n\n @ContentChildren(WizardStepComponent)\n protected readonly steps!: QueryList<WizardStepComponent>;\n\n public readonly element = injectElement();\n\n /**\n * Indicates if the wizard layout should be vertical. When true, the wizard orientation changes to vertical.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n @Input({ transform: booleanAttribute })\n public vertical = false;\n\n /**\n * Indicates whether the wizard component is responsive\n * and hides the steps that do not fit in the available space.\n */\n @Input({ transform: booleanAttribute })\n public set responsive(value: boolean) {\n this.responsive$.next(value);\n }\n\n /**\n * Event emitted when the active step changes, providing the index of the new active step.\n *\n * @emits {number}\n */\n @Output()\n public activeStepChanged: EventEmitter<number> = new EventEmitter();\n\n public ngAfterViewInit(): void {\n if (!this.steps) return;\n [this.dottedLineStart, this.dottedLineEnd].forEach((l) => this.renderer.addClass(l, 'odx-wizard-step__dotted-line'));\n this.visibleStepsSegments = this.calculateVisibleStepsSegments();\n this.setActiveStep();\n\n merge(fromEvent(this.windowRef.nativeWindow, 'resize'), this.steps.changes, this.responsive$)\n .pipe(this.destroyed(), debounceTime(600))\n .subscribe(() => {\n this.visibleStepsSegments = this.calculateVisibleStepsSegments();\n this.setHiddenSteps();\n });\n this.clickStepSubscriber();\n }\n\n /**\n * Navigates to the next step in the wizard.\n */\n public nextStep(): void {\n this.activeStep < this.steps.length - 1 && this.changeStepHandler(this.steps.get(this.activeStep + 1) as WizardStepComponent);\n }\n\n /**\n * Navigates to the previous step in the wizard.\n */\n public previousStep(): void {\n this.activeStep > 0 && this.changeStepHandler(this.steps.get(this.activeStep - 1) as WizardStepComponent);\n }\n\n /**\n * Sets the active step to the specified index.\n */\n public setActiveStepValid(): void {\n this.steps.get(this.activeStep)?.setValid(true);\n }\n\n /**\n * Sets the validity of a step at the specified index.\n *\n * @param {number} stepIndex - Index of the step to set validity.\n * @param {boolean} valid - Whether the step should be valid or not.\n */\n public setStepValid(stepIndex: number, valid: boolean): void {\n const step = this.steps.get(stepIndex);\n if (step) {\n step.setValid(valid);\n if (stepIndex === this.activeStep) {\n this.activeStepChanged.emit(this.activeStep);\n }\n }\n }\n\n /**\n * Returns whether the step at the specified index is valid.\n *\n * @param {number} stepIndex - Index of the step to check validity.\n * @returns {boolean} - Whether the step is valid or not.\n */\n public isStepValid(stepIndex: number): boolean {\n return !!this.steps.get(stepIndex)?.valid;\n }\n\n /**\n * Returns whether the current active step is valid.\n *\n * @returns {boolean} - Whether the current step is valid or not.\n */\n public isCurrentStepValid(): boolean {\n return this.isStepValid(this.activeStep);\n }\n\n private calculateVisibleStepsSegments(): number {\n if (!this.responsive$.getValue()) return this.steps.length;\n const container = this.element.nativeElement;\n const { width, height } = container.getBoundingClientRect();\n const containerSize = this.vertical ? height : width;\n\n let visibleSteps = 0;\n let summaryStepsSize = 0;\n const prop = this.vertical ? 'flex-basis' : 'min-width';\n const minStepSize = parseInt(this.getStyleFromCSS(this.steps.first.element.nativeElement, prop));\n\n this.steps.forEach(() => {\n summaryStepsSize += minStepSize;\n if (summaryStepsSize < containerSize) visibleSteps++;\n });\n\n return visibleSteps;\n }\n\n private getStyleFromCSS(el: HTMLElement, prop: string): string {\n return this.windowRef.nativeWindow.getComputedStyle(el).getPropertyValue(prop);\n }\n\n private setActiveStep(): void {\n const touched: WizardStepComponent[] = [];\n this.steps.forEach((step, index) => {\n step.active = false;\n step.isLastTouched = false;\n if (this.activeStep === index) step.touched = true;\n step.touched && touched.push(step);\n this.activeStep === index && (step.active = true);\n step.passed = index <= this.activeStep;\n });\n const lastTouched = touched.pop();\n lastTouched && (lastTouched.isLastTouched = true);\n this.setHiddenSteps();\n }\n\n private clickStepSubscriber(): void {\n merge(...this.steps.map((step) => step.stepChosen$))\n .pipe(\n this.destroyed(),\n tap((step) => this.changeStepHandler(step)),\n )\n .subscribe();\n }\n\n private changeStepHandler(step: WizardStepComponent): void {\n const index = this.steps.toArray().indexOf(step);\n const isPreviousStepValid = this.steps.get(index - 1)?.valid;\n const isFirstStepTarget = index === 0;\n\n if ((isPreviousStepValid || isFirstStepTarget) && index !== this.activeStep) {\n this.activeStep = index;\n this.activeStepChanged.emit(this.activeStep);\n this.setActiveStep();\n }\n }\n\n private setHiddenSteps() {\n const length = this.steps.length;\n\n [this.dottedLineStart, this.dottedLineEnd].forEach((l) => this.setDottedLineActive(l, true));\n\n this.renderer.insertBefore(this.element.nativeElement, this.dottedLineStart, this.steps.get(1)?.element.nativeElement);\n this.renderer.insertBefore(this.element.nativeElement, this.dottedLineEnd, this.steps.get(length - 1)?.element.nativeElement);\n const start = this.activeStep < length / 2;\n const stepsForHide = this.steps.toArray().slice(1, -1);\n const visibleStepsSegments = this.visibleStepsSegments - 2;\n stepsForHide.forEach((step, i) => {\n if (length > this.visibleStepsSegments) {\n step.visible = start\n ? i < visibleStepsSegments - 1 || this.isNeighbors(i, stepsForHide)\n : i > stepsForHide.length - (visibleStepsSegments - 1) || this.isNeighbors(i, stepsForHide);\n } else {\n step.visible = true;\n }\n });\n const filteredVisibleSteps = stepsForHide.filter((s) => s.visible);\n if (visibleStepsSegments - 1 < filteredVisibleSteps.length && length > this.visibleStepsSegments) {\n const overflowSize = filteredVisibleSteps.length - visibleStepsSegments + 1;\n const index = start ? overflowSize : filteredVisibleSteps.length - overflowSize - 1;\n\n filteredVisibleSteps.forEach((s, i) => {\n (start ? i <= index : i >= index) && !this.isNeighbors(i, filteredVisibleSteps) && (s.visible = false);\n });\n }\n\n this.steps.last.active && (stepsForHide[stepsForHide.length - 1].visible = true);\n this.steps.first.active && (stepsForHide[0].visible = true);\n\n !this.steps.get(1)?.visible && this.setDottedLineActive(this.dottedLineStart);\n !this.steps.get(length - 2)?.visible && this.setDottedLineActive(this.dottedLineEnd);\n }\n\n private isNeighbors(index: number, steps: WizardStepComponent[]): boolean {\n const activeStep = steps.indexOf(steps.find((s) => s.active) as WizardStepComponent);\n return activeStep !== -1 && (index === activeStep - 1 || index === activeStep + 1 || index === activeStep);\n }\n\n private setDottedLineActive(line: HTMLElement, unset?: boolean): void {\n unset ? this.renderer.removeClass(line, 'odx-wizard-step__dotted-line--active') : this.renderer.addClass(line, 'odx-wizard-step__dotted-line--active');\n }\n}\n","<ng-content select=\"odx-wizard-step\" />\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { WizardStepComponent } from './components';\nimport { WizardComponent } from './wizard.component';\n\nconst modules = [WizardComponent, WizardStepComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class WizardModule {}\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-components-wizard.mjs","sources":["../../../../libs/angular/components/wizard/src/lib/components/wizard-step/wizard-step.component.ts","../../../../libs/angular/components/wizard/src/lib/components/wizard-step/wizard-step.component.html","../../../../libs/angular/components/wizard/src/lib/wizard.component.ts","../../../../libs/angular/components/wizard/src/lib/wizard.component.html","../../../../libs/angular/components/wizard/src/lib/wizard.module.ts","../../../../libs/angular/components/wizard/src/odx-angular-components-wizard.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostListener, Input, ViewEncapsulation } from '@angular/core';\nimport { WithDisabledState, WithTabIndex } from '@odx/angular';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { Subject } from 'rxjs';\n\n/**\n * WizardStepComponent represents an individual step within a wizard navigation sequence. It can be configured\n * to display icons, listen for user interactions, and indicate various states such as active, passed, or valid.\n * This component interacts with the WizardComponent to manage the step progression and visibility.\n *\n * Has host directives WithTabIndex and WithDisabledState.\n *\n * @see {WithTabIndex}\n * @see {WithDisabledState}\n */\n@CSSComponent('wizard-step')\n@Component({\n selector: 'odx-wizard-step',\n templateUrl: './wizard-step.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [IconComponent],\n hostDirectives: [WithTabIndex, WithDisabledState],\n})\nexport class WizardStepComponent {\n public readonly element = injectElement();\n\n /**\n * Emitted when the step is chosen by the user, indicating that the step should be activated.\n *\n * @emits {WizardStepComponent} The chosen step.\n */\n public readonly stepChosen$ = new Subject<WizardStepComponent>();\n\n /**\n * Indicates if this step was the last one interacted with in the wizard sequence.\n *\n * @type {boolean}\n */\n @CSSModifier()\n public isLastTouched = false;\n\n /**\n * Indicates if this step is currently active.\n *\n * @type {boolean}\n */\n @CSSModifier()\n public active = false;\n\n /**\n * Indicates if this step has been passed in the navigation sequence.\n *\n * @type {boolean}\n */\n @CSSModifier()\n public passed = false;\n\n /**\n * Controls the visibility of this step in the UI.\n *\n * @type {boolean}\n */\n @CSSModifier()\n public visible = true;\n\n /**\n * Indicates if this step is valid and can be progressed to.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n @Input()\n public valid = false;\n\n /**\n * Indicates if this step has been touched by the user.\n *\n * @type {boolean}\n */\n @CSSModifier()\n public touched = false;\n\n /**\n * Sets the validation state of this step.\n *\n * @param {boolean} state - The new validation state.\n */\n public setValid(state: boolean): void {\n this.valid = state;\n }\n\n @HostListener('click')\n @HostListener('keyup.enter')\n @HostListener('keyup.space')\n protected chooseStep(): void {\n this.stepChosen$.next(this);\n }\n}\n","<span class=\"odx-wizard-step__label\">\n <ng-content />\n</span>\n\n<div class=\"odx-wizard-step__holder\">\n <span class=\"odx-wizard-step__line-before\"></span>\n <span class=\"odx-wizard-step__circle\"> <odx-icon class=\"odx-wizard-step__icon\" name=\"check\" iconSet=\"core\" /> </span>\n <span class=\"odx-wizard-step__line-after\"></span>\n</div>\n","import {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n inject,\n Input,\n Output,\n QueryList,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport { WindowRef } from '@odx/angular';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { BehaviorSubject, debounceTime, fromEvent, merge, tap } from 'rxjs';\nimport { WizardStepComponent } from './components';\n\n/**\n * WizardComponent manages a series of steps, providing functionality for navigating forwards and backwards\n * through the steps. It dynamically adjusts the visibility of steps based on the available space and current active step.\n * The component supports both horizontal and vertical orientations.\n */\n@CSSComponent('wizard')\n@Component({\n selector: 'odx-wizard',\n templateUrl: './wizard.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class WizardComponent implements AfterViewInit {\n private readonly destroyed = untilDestroyed();\n private readonly renderer = inject(Renderer2);\n\n private readonly responsive$ = new BehaviorSubject<boolean>(true);\n private visibleStepsSegments = 0;\n private readonly dottedLineStart = this.renderer.createElement('div');\n private readonly dottedLineEnd = this.renderer.createElement('div');\n\n private readonly windowRef = inject(WindowRef);\n private activeStep = 0;\n\n @ContentChildren(WizardStepComponent)\n protected readonly steps!: QueryList<WizardStepComponent>;\n\n public readonly element = injectElement();\n\n /**\n * Indicates if the wizard layout should be vertical. When true, the wizard orientation changes to vertical.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n @Input({ transform: booleanAttribute })\n public vertical = false;\n\n /**\n * Indicates whether the wizard component is responsive\n * and hides the steps that do not fit in the available space.\n */\n @Input({ transform: booleanAttribute })\n public set responsive(value: boolean) {\n this.responsive$.next(value);\n }\n\n /**\n * Event emitted when the active step changes, providing the index of the new active step.\n *\n * @emits {number}\n */\n @Output()\n public activeStepChanged: EventEmitter<number> = new EventEmitter();\n\n public ngAfterViewInit(): void {\n if (!this.steps) return;\n [this.dottedLineStart, this.dottedLineEnd].forEach((l) => this.renderer.addClass(l, 'odx-wizard-step__dotted-line'));\n this.visibleStepsSegments = this.calculateVisibleStepsSegments();\n this.setActiveStep();\n\n merge(fromEvent(this.windowRef.nativeWindow, 'resize'), this.steps.changes, this.responsive$)\n .pipe(this.destroyed(), debounceTime(600))\n .subscribe(() => {\n this.visibleStepsSegments = this.calculateVisibleStepsSegments();\n this.setHiddenSteps();\n });\n this.clickStepSubscriber();\n }\n\n /**\n * Navigates to the next step in the wizard.\n */\n public nextStep(): void {\n this.activeStep < this.steps.length - 1 && this.changeStepHandler(this.steps.get(this.activeStep + 1) as WizardStepComponent);\n }\n\n /**\n * Navigates to the previous step in the wizard.\n */\n public previousStep(): void {\n this.activeStep > 0 && this.changeStepHandler(this.steps.get(this.activeStep - 1) as WizardStepComponent);\n }\n\n /**\n * Sets the active step to the specified index.\n */\n public setActiveStepValid(): void {\n this.steps.get(this.activeStep)?.setValid(true);\n }\n\n /**\n * Sets the validity of a step at the specified index.\n *\n * @param {number} stepIndex - Index of the step to set validity.\n * @param {boolean} valid - Whether the step should be valid or not.\n */\n public setStepValid(stepIndex: number, valid: boolean): void {\n const step = this.steps.get(stepIndex);\n if (step) {\n step.setValid(valid);\n if (stepIndex === this.activeStep) {\n this.activeStepChanged.emit(this.activeStep);\n }\n }\n }\n\n /**\n * Returns whether the step at the specified index is valid.\n *\n * @param {number} stepIndex - Index of the step to check validity.\n * @returns {boolean} - Whether the step is valid or not.\n */\n public isStepValid(stepIndex: number): boolean {\n return !!this.steps.get(stepIndex)?.valid;\n }\n\n /**\n * Returns whether the current active step is valid.\n *\n * @returns {boolean} - Whether the current step is valid or not.\n */\n public isCurrentStepValid(): boolean {\n return this.isStepValid(this.activeStep);\n }\n\n private calculateVisibleStepsSegments(): number {\n if (!this.responsive$.getValue()) return this.steps.length;\n const container = this.element.nativeElement;\n const { width, height } = container.getBoundingClientRect();\n const containerSize = this.vertical ? height : width;\n\n let visibleSteps = 0;\n let summaryStepsSize = 0;\n const prop = this.vertical ? 'flex-basis' : 'min-width';\n const minStepSize = parseInt(this.getStyleFromCSS(this.steps.first.element.nativeElement, prop));\n\n this.steps.forEach(() => {\n summaryStepsSize += minStepSize;\n if (summaryStepsSize < containerSize) visibleSteps++;\n });\n\n return visibleSteps;\n }\n\n private getStyleFromCSS(el: HTMLElement, prop: string): string {\n return this.windowRef.nativeWindow.getComputedStyle(el).getPropertyValue(prop);\n }\n\n private setActiveStep(): void {\n const touched: WizardStepComponent[] = [];\n this.steps.forEach((step, index) => {\n step.active = false;\n step.isLastTouched = false;\n if (this.activeStep === index) step.touched = true;\n step.touched && touched.push(step);\n this.activeStep === index && (step.active = true);\n step.passed = index <= this.activeStep;\n });\n const lastTouched = touched.pop();\n lastTouched && (lastTouched.isLastTouched = true);\n this.setHiddenSteps();\n }\n\n private clickStepSubscriber(): void {\n merge(...this.steps.map((step) => step.stepChosen$))\n .pipe(\n this.destroyed(),\n tap((step) => this.changeStepHandler(step)),\n )\n .subscribe();\n }\n\n private changeStepHandler(step: WizardStepComponent): void {\n const index = this.steps.toArray().indexOf(step);\n const isPreviousStepValid = this.steps.get(index - 1)?.valid;\n const isFirstStepTarget = index === 0;\n\n if ((isPreviousStepValid || isFirstStepTarget) && index !== this.activeStep) {\n this.activeStep = index;\n this.activeStepChanged.emit(this.activeStep);\n this.setActiveStep();\n }\n }\n\n private setHiddenSteps() {\n const length = this.steps.length;\n\n [this.dottedLineStart, this.dottedLineEnd].forEach((l) => this.setDottedLineActive(l, true));\n\n this.renderer.insertBefore(this.element.nativeElement, this.dottedLineStart, this.steps.get(1)?.element.nativeElement);\n this.renderer.insertBefore(this.element.nativeElement, this.dottedLineEnd, this.steps.get(length - 1)?.element.nativeElement);\n const start = this.activeStep < length / 2;\n const stepsForHide = this.steps.toArray().slice(1, -1);\n const visibleStepsSegments = this.visibleStepsSegments - 2;\n stepsForHide.forEach((step, i) => {\n if (length > this.visibleStepsSegments) {\n step.visible = start\n ? i < visibleStepsSegments - 1 || this.isNeighbors(i, stepsForHide)\n : i > stepsForHide.length - (visibleStepsSegments - 1) || this.isNeighbors(i, stepsForHide);\n } else {\n step.visible = true;\n }\n });\n const filteredVisibleSteps = stepsForHide.filter((s) => s.visible);\n if (visibleStepsSegments - 1 < filteredVisibleSteps.length && length > this.visibleStepsSegments) {\n const overflowSize = filteredVisibleSteps.length - visibleStepsSegments + 1;\n const index = start ? overflowSize : filteredVisibleSteps.length - overflowSize - 1;\n\n filteredVisibleSteps.forEach((s, i) => {\n (start ? i <= index : i >= index) && !this.isNeighbors(i, filteredVisibleSteps) && (s.visible = false);\n });\n }\n\n this.steps.last.active && (stepsForHide[stepsForHide.length - 1].visible = true);\n this.steps.first.active && (stepsForHide[0].visible = true);\n\n !this.steps.get(1)?.visible && this.setDottedLineActive(this.dottedLineStart);\n !this.steps.get(length - 2)?.visible && this.setDottedLineActive(this.dottedLineEnd);\n }\n\n private isNeighbors(index: number, steps: WizardStepComponent[]): boolean {\n const activeStep = steps.indexOf(steps.find((s) => s.active) as WizardStepComponent);\n return activeStep !== -1 && (index === activeStep - 1 || index === activeStep + 1 || index === activeStep);\n }\n\n private setDottedLineActive(line: HTMLElement, unset?: boolean): void {\n unset ? this.renderer.removeClass(line, 'odx-wizard-step__dotted-line--active') : this.renderer.addClass(line, 'odx-wizard-step__dotted-line--active');\n }\n}\n","<ng-content select=\"odx-wizard-step\" />\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { WizardStepComponent } from './components';\nimport { WizardComponent } from './wizard.component';\n\nconst modules = [WizardComponent, WizardStepComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class WizardModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -63,10 +63,10 @@ class TranslatePipe {
63
63
  transform(key, placeholder = {}) {
64
64
  return this.translateService.translate(key, placeholder);
65
65
  }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
67
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: TranslatePipe, isStandalone: true, name: "odxTranslate" }); }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TranslatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
67
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: TranslatePipe, isStandalone: true, name: "odxTranslate" }); }
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslatePipe, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TranslatePipe, decorators: [{
70
70
  type: Pipe,
71
71
  args: [{
72
72
  standalone: true,
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-internal-translate.mjs","sources":["../../../../libs/angular/internal/translate/src/lib/translate.service.ts","../../../../libs/angular/internal/translate/src/lib/pipes/translate.pipe.ts","../../../../libs/angular/internal/translate/src/lib/translate.config.ts","../../../../libs/angular/internal/translate/src/odx-angular-internal-translate.ts"],"sourcesContent":["import { inject } from '@angular/core';\nimport { LocalizationService } from '@odx/angular/localization';\nimport { getLanguageCode } from '@odx/angular/utils';\nimport { distinctUntilChanged, map, Observable, shareReplay, startWith } from 'rxjs';\nimport { TranslationObject } from './models';\n\n/**\n * Service for translating keys into localized text. It listens to changes in the active language\n * and provides translated strings based on the current language preference. The service uses\n * provided `TranslationObject` containing the translations for each supported language.\n *\n * @example\n * ```ts\n * // Using TranslateService in a component\n * class MyComponent {\n * constructor(private translateService: TranslateService) {\n * translateService.translate('greeting').subscribe(translatedText => {\n * console.log(translatedText); // Outputs \"Hello\" or \"Bonjour\" based on the active language\n * });\n * }\n * }\n * ```\n */\nexport class TranslateService {\n private readonly localizationService = inject(LocalizationService);\n\n /**\n * An observable that emits the current translation object based on the active language.\n * It ensures that translations are updated dynamically whenever the user's language preference changes.\n *\n * @emits {TranslationObject} activeTranslation$ - The translation object for the active language.\n */\n public readonly activeTranslation$ = this.localizationService.activeLanguage$.pipe(\n startWith(this.localizationService.defaultLanguage),\n distinctUntilChanged(),\n map((language) => {\n const languageCode = getLanguageCode(language);\n if (this.translations[language]) {\n return this.translations[language];\n }\n if (this.translations[languageCode]) {\n return this.translations[languageCode];\n }\n return this.translations[this.localizationService.defaultLanguage];\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n constructor(private readonly translations: TranslationObject) {}\n\n /**\n * Translates a key into its localized text, optionally replacing placeholders with dynamic values.\n * @param {string} key - The translation key to translate.\n * @param {Record<string, unknown>} [data={}] - An object mapping placeholder names to replacement values.\n * @returns {Observable<string>} An observable emitting the translated text, with placeholders replaced by provided values.\n */\n public translate(key: string, data: Record<string, unknown> = {}): Observable<string> {\n return this.activeTranslation$.pipe(\n map((translation) =>\n Object.entries(data).reduce((acc, [variableName, variable]) => {\n const variableRegex = RegExp(`{{\\\\s*${variableName}\\\\s*}}`, 'g');\n return acc.replace(variableRegex, variable as never);\n }, translation[key] ?? ''),\n ),\n );\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TranslateService } from '../translate.service';\n\n@Pipe({\n standalone: true,\n name: 'odxTranslate',\n pure: true,\n})\nexport class TranslatePipe implements PipeTransform {\n private readonly translateService = inject(TranslateService);\n\n public transform(key: string, placeholder: Record<string, unknown> = {}): Observable<string> {\n return this.translateService.translate(key, placeholder);\n }\n}\n","import { TranslationObject } from './models';\nimport { TranslateService } from './translate.service';\n\n/**\n * Provides a configuration for Angular's dependency injection system to instantiate the `TranslateService`\n * with a specific set of translations. This function is useful for setting up the translation service\n * at the module level, ensuring that a single instance with a consistent set of translations is used\n * throughout the application.\n *\n * @param {TranslationObject} translations - An object containing key-value pairs where each key is a\n * translation key and the value is the translated string or an object containing translations for\n * nested keys. This object should include translations for all supported languages.\n * @returns {Provider} An Angular provider configuration object that can be used in the `providers` array\n * of an `@NgModule` or `@Component` decorator to supply the `TranslateService` with the provided translations.\n *\n * @example\n * ```ts\n * // Example usage in an Angular module\n * import { NgModule } from '@angular/core';\n * import { provideTranslations } from '@odx/angular/internal/translate';\n *\n * const appTranslations = {\n * en: { welcome: \"Welcome\" },\n * fr: { welcome: \"Bienvenue\" }\n * };\n *\n * @NgModule({\n * providers: [\n * provideTranslations(appTranslations)\n * ]\n * })\n * export class AppModule { }\n * ```\n */\nexport function provideTranslations(translations: TranslationObject) {\n return {\n provide: TranslateService,\n useFactory: () => new TranslateService(translations),\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAMA;;;;;;;;;;;;;;;;AAgBG;MACU,gBAAgB,CAAA;AAyB3B,IAAA,WAAA,CAA6B,YAA+B,EAAA;QAA/B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;AAxB3C,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAEnE;;;;;AAKG;QACa,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAChF,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,EACnD,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,QAAQ,KAAI;AACf,YAAA,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC/C,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;AAC/B,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aACpC;AACD,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;AACnC,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;aACxC;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;AACrE,SAAC,CAAC,EACF,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAC;KAE8D;AAEhE;;;;;AAKG;AACI,IAAA,SAAS,CAAC,GAAW,EAAE,IAAA,GAAgC,EAAE,EAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACjC,GAAG,CAAC,CAAC,WAAW,KACd,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAI;YAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,CAAA,MAAA,EAAS,YAAY,CAAQ,MAAA,CAAA,EAAE,GAAG,CAAC,CAAC;YACjE,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,QAAiB,CAAC,CAAC;SACtD,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAC3B,CACF,CAAC;KACH;AACF;;MCzDY,aAAa,CAAA;AAL1B,IAAA,WAAA,GAAA;AAMmB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAK9D,KAAA;AAHQ,IAAA,SAAS,CAAC,GAAW,EAAE,WAAA,GAAuC,EAAE,EAAA;QACrE,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;KAC1D;+GALU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA,CAAA;;;ACLD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACG,SAAU,mBAAmB,CAAC,YAA+B,EAAA;IACjE,OAAO;AACL,QAAA,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC;KACrD,CAAC;AACJ;;ACvCA;;AAEG;;;;"}
1
+ {"version":3,"file":"odx-angular-internal-translate.mjs","sources":["../../../../libs/angular/internal/translate/src/lib/translate.service.ts","../../../../libs/angular/internal/translate/src/lib/pipes/translate.pipe.ts","../../../../libs/angular/internal/translate/src/lib/translate.config.ts","../../../../libs/angular/internal/translate/src/odx-angular-internal-translate.ts"],"sourcesContent":["import { inject } from '@angular/core';\nimport { LocalizationService } from '@odx/angular/localization';\nimport { getLanguageCode } from '@odx/angular/utils';\nimport { distinctUntilChanged, map, Observable, shareReplay, startWith } from 'rxjs';\nimport { TranslationObject } from './models';\n\n/**\n * Service for translating keys into localized text. It listens to changes in the active language\n * and provides translated strings based on the current language preference. The service uses\n * provided `TranslationObject` containing the translations for each supported language.\n *\n * @example\n * ```ts\n * // Using TranslateService in a component\n * class MyComponent {\n * constructor(private translateService: TranslateService) {\n * translateService.translate('greeting').subscribe(translatedText => {\n * console.log(translatedText); // Outputs \"Hello\" or \"Bonjour\" based on the active language\n * });\n * }\n * }\n * ```\n */\nexport class TranslateService {\n private readonly localizationService = inject(LocalizationService);\n\n /**\n * An observable that emits the current translation object based on the active language.\n * It ensures that translations are updated dynamically whenever the user's language preference changes.\n *\n * @emits {TranslationObject} activeTranslation$ - The translation object for the active language.\n */\n public readonly activeTranslation$ = this.localizationService.activeLanguage$.pipe(\n startWith(this.localizationService.defaultLanguage),\n distinctUntilChanged(),\n map((language) => {\n const languageCode = getLanguageCode(language);\n if (this.translations[language]) {\n return this.translations[language];\n }\n if (this.translations[languageCode]) {\n return this.translations[languageCode];\n }\n return this.translations[this.localizationService.defaultLanguage];\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n constructor(private readonly translations: TranslationObject) {}\n\n /**\n * Translates a key into its localized text, optionally replacing placeholders with dynamic values.\n * @param {string} key - The translation key to translate.\n * @param {Record<string, unknown>} [data={}] - An object mapping placeholder names to replacement values.\n * @returns {Observable<string>} An observable emitting the translated text, with placeholders replaced by provided values.\n */\n public translate(key: string, data: Record<string, unknown> = {}): Observable<string> {\n return this.activeTranslation$.pipe(\n map((translation) =>\n Object.entries(data).reduce((acc, [variableName, variable]) => {\n const variableRegex = RegExp(`{{\\\\s*${variableName}\\\\s*}}`, 'g');\n return acc.replace(variableRegex, variable as never);\n }, translation[key] ?? ''),\n ),\n );\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TranslateService } from '../translate.service';\n\n@Pipe({\n standalone: true,\n name: 'odxTranslate',\n pure: true,\n})\nexport class TranslatePipe implements PipeTransform {\n private readonly translateService = inject(TranslateService);\n\n public transform(key: string, placeholder: Record<string, unknown> = {}): Observable<string> {\n return this.translateService.translate(key, placeholder);\n }\n}\n","import { TranslationObject } from './models';\nimport { TranslateService } from './translate.service';\n\n/**\n * Provides a configuration for Angular's dependency injection system to instantiate the `TranslateService`\n * with a specific set of translations. This function is useful for setting up the translation service\n * at the module level, ensuring that a single instance with a consistent set of translations is used\n * throughout the application.\n *\n * @param {TranslationObject} translations - An object containing key-value pairs where each key is a\n * translation key and the value is the translated string or an object containing translations for\n * nested keys. This object should include translations for all supported languages.\n * @returns {Provider} An Angular provider configuration object that can be used in the `providers` array\n * of an `@NgModule` or `@Component` decorator to supply the `TranslateService` with the provided translations.\n *\n * @example\n * ```ts\n * // Example usage in an Angular module\n * import { NgModule } from '@angular/core';\n * import { provideTranslations } from '@odx/angular/internal/translate';\n *\n * const appTranslations = {\n * en: { welcome: \"Welcome\" },\n * fr: { welcome: \"Bienvenue\" }\n * };\n *\n * @NgModule({\n * providers: [\n * provideTranslations(appTranslations)\n * ]\n * })\n * export class AppModule { }\n * ```\n */\nexport function provideTranslations(translations: TranslationObject) {\n return {\n provide: TranslateService,\n useFactory: () => new TranslateService(translations),\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAMA;;;;;;;;;;;;;;;;AAgBG;MACU,gBAAgB,CAAA;AAyB3B,IAAA,WAAA,CAA6B,YAA+B,EAAA;QAA/B,IAAY,CAAA,YAAA,GAAZ,YAAY;AAxBxB,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAElE;;;;;AAKG;QACa,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAChF,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,EACnD,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,QAAQ,KAAI;AACf,YAAA,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC;AAC9C,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;AAC/B,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;;AAEpC,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;AACnC,gBAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;;YAExC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC;AACpE,SAAC,CAAC,EACF,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C;;AAID;;;;;AAKG;AACI,IAAA,SAAS,CAAC,GAAW,EAAE,IAAA,GAAgC,EAAE,EAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACjC,GAAG,CAAC,CAAC,WAAW,KACd,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAI;YAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,CAAA,MAAA,EAAS,YAAY,CAAQ,MAAA,CAAA,EAAE,GAAG,CAAC;YAChE,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,QAAiB,CAAC;SACrD,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAC3B,CACF;;AAEJ;;MCzDY,aAAa,CAAA;AAL1B,IAAA,WAAA,GAAA;AAMmB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAK7D;AAHQ,IAAA,SAAS,CAAC,GAAW,EAAE,WAAA,GAAuC,EAAE,EAAA;QACrE,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC;;+GAJ/C,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA;;;ACLD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACG,SAAU,mBAAmB,CAAC,YAA+B,EAAA;IACjE,OAAO;AACL,QAAA,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,MAAM,IAAI,gBAAgB,CAAC,YAAY,CAAC;KACrD;AACH;;ACvCA;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-internal.mjs","sources":["../../../../libs/angular/internal/src/lib/helpers/camel-to-kebab-case.ts","../../../../libs/angular/internal/src/lib/helpers/decorator-property-name.ts","../../../../libs/angular/internal/src/lib/helpers/deepmerge.ts","../../../../libs/angular/internal/src/lib/helpers/fast-equals.ts","../../../../libs/angular/internal/src/lib/helpers/get-css-variables.ts","../../../../libs/angular/internal/src/lib/helpers/get-enum-values.ts","../../../../libs/angular/internal/src/lib/helpers/toggle-form-disabled-state.ts","../../../../libs/angular/internal/src/lib/decorators/css-component.ts","../../../../libs/angular/internal/src/lib/decorators/css-modifier.ts","../../../../libs/angular/internal/src/lib/logger.ts","../../../../libs/angular/internal/src/odx-angular-internal.ts"],"sourcesContent":["/** @internal */\n/* istanbul ignore next */\nexport function camelToKebabCase(value: string): string {\n if (value !== value.toLowerCase()) {\n return value.replace(/[A-Z]/g, (match, index) => {\n const char = match.toLowerCase();\n\n return index === 0 ? char : `-${char}`;\n });\n }\n return value;\n}\n","/**\n * @internal\n * Generates a unique property name for a decorator.\n *\n * @param {string} decoratorName - The name of the decorator.\n * @param {string} propertyName - The name of the property.\n * @returns {string} - The unique property name.\n */\nexport function decoratorPropertyName<D extends string, T extends string>(decoratorName: D, propertyName: T): `__ODX_${D}_${T}__` {\n return `__ODX_${decoratorName}_${propertyName}__`;\n}\n","import { deepmergeCustom } from 'deepmerge-ts';\n\nexport const deepmerge = deepmergeCustom({\n mergeArrays: false,\n mergeSets: false,\n});\n","import { deepEqual } from 'fast-equals';\n\nexport const fastDeepEqual = (obj1: unknown, obj2: unknown) => deepEqual(obj1, obj2);\n","interface CSSVariableDefinition {\n name: string;\n value: string;\n}\n\n/* istanbul ignore next */\nfunction isSameDomain({ href }: StyleSheet): boolean {\n return !href || href.startsWith(window.location.origin);\n}\n\n/** @internal */\n/* istanbul ignore next */\nexport function getCSSVariables(filter: RegExp, selector = ':root'): CSSVariableDefinition[] {\n const stylesheets = Array.from(document.styleSheets).filter(isSameDomain);\n\n return stylesheets.reduce<CSSVariableDefinition[]>((variables, { cssRules }) => {\n const rules = Array.from(cssRules).filter(({ type }) => type === CSSRule.STYLE_RULE) as CSSStyleRule[];\n for (const { style, selectorText } of rules) {\n for (const propName of Array.from(style)) {\n const name = propName.trim();\n if (!name.startsWith('--') || !filter.test(name) || (selector && selectorText !== selector)) continue;\n variables.push({ name, value: style.getPropertyValue(propName).trim() });\n }\n }\n return variables;\n }, []);\n}\n","/** @internal */\nexport function getEnumValues<TEnum, TKeys extends string>(e: { [key in TKeys]: TEnum }): TEnum[] {\n const keys = Object.keys(e) as TKeys[];\n return keys.filter((key) => e[key] !== undefined).map((key) => e[key]);\n}\n","import { FormGroup } from '@angular/forms';\n\n/** @internal */\nexport function toggleFormDisabledState(form: FormGroup) {\n form.disabled ? form.enable() : form.disable();\n console.log('form', form);\n}\n","import { ElementRef, Type } from '@angular/core';\nimport { decoratorPropertyName } from '../helpers';\n\nexport const CSS_COMPONENT_NAME = decoratorPropertyName('CSSComponent', 'name');\n\n/** @internal */\nexport interface CSSComponent {\n readonly element: ElementRef<HTMLElement>;\n}\n\n/** @internal */\n/* istanbul ignore next */\nexport function CSSComponent(name: string, prefix = 'odx') {\n return (target: Type<CSSComponent>) => {\n const cssClass = `${prefix}-${name}`;\n Object.defineProperty(target.prototype, CSS_COMPONENT_NAME, {\n value: cssClass,\n });\n\n (function (this: unknown, ngOnInit?: () => void) {\n target.prototype.ngOnInit = function (this: CSSComponent) {\n this.element.nativeElement.classList.add(cssClass);\n ngOnInit?.call(this);\n };\n })(target.prototype.ngOnInit);\n };\n}\n","import { camelToKebabCase, decoratorPropertyName } from '../helpers';\nimport { CSSComponent, CSS_COMPONENT_NAME } from './css-component';\n\n/** @internal */\ninterface CSSModifierOptions {\n withComponentPrefix?: boolean;\n withPrefix?: boolean;\n}\n\ntype CSSComponentInstance = CSSComponent & Record<string, unknown>;\n\n/** @internal */\n/* istanbul ignore next */\nexport function CSSModifier(options?: CSSModifierOptions) {\n return (target: CSSComponent, propertyKey: PropertyKey) => {\n const propertyKeyName = propertyKey.toString();\n const propertyKeyKebabCase = camelToKebabCase(propertyKeyName);\n const propertySymbol = decoratorPropertyName('CSSModifier', propertyKeyName);\n const propertyDefaultValue = decoratorPropertyName('CSSModifier', `${propertyKeyName}_default`);\n\n function createModifierClass(this: CSSComponentInstance, value: unknown) {\n if (typeof value === 'boolean' || (typeof value === 'string' && value.length > 0)) {\n let modifier = typeof value === 'boolean' ? propertyKeyKebabCase : value;\n if (options?.withPrefix) {\n modifier = `${propertyKeyName}-${modifier}`;\n }\n if (options?.withComponentPrefix ?? true) {\n return `${this[CSS_COMPONENT_NAME]}--${modifier}`;\n }\n return modifier;\n }\n return null;\n }\n\n function getter(this: CSSComponentInstance) {\n return this[propertySymbol];\n }\n\n function setter(this: CSSComponentInstance, value: unknown) {\n this[propertyDefaultValue] ??= value;\n const currentValue = this[propertySymbol] ?? null;\n const nextValue = value ?? this[propertyDefaultValue] ?? null;\n\n if (nextValue !== currentValue) {\n const currentModifierClass = createModifierClass.call(this, currentValue);\n if (currentModifierClass !== null) {\n this.element.nativeElement.classList.remove(currentModifierClass);\n }\n const newModifierClass = createModifierClass.call(this, nextValue);\n if (newModifierClass !== null && (typeof nextValue === 'boolean' ? nextValue : true)) {\n this.element.nativeElement.classList.add(newModifierClass);\n }\n }\n this[propertySymbol] = nextValue;\n }\n Object.defineProperty(target, propertyKey, {\n get: getter,\n set: setter,\n });\n };\n}\n","import { isDevMode } from '@angular/core';\n\nexport class Logger {\n private isEnabled: boolean;\n private readonly name: string;\n private readonly prefix: string;\n\n constructor(name: string) {\n this.name = name;\n this.prefix = `[${this.name}]`;\n this.isEnabled = isDevMode();\n }\n\n public log(...data: unknown[]): void {\n this.handle('log', data);\n }\n\n public info(...data: unknown[]): void {\n this.handle('info', data);\n }\n\n public warn(...data: unknown[]): void {\n this.handle('warn', data);\n }\n\n public error(...data: unknown[]): void {\n this.handle('error', data);\n }\n\n public debug(...data: unknown[]): void {\n this.handle('debug', data);\n }\n\n public group(name: string, groupHandler: (this: Logger, log: (...data: unknown[]) => void) => void, collapsed = true): void {\n if (!this.isEnabled) return;\n console[collapsed ? 'groupCollapsed' : 'group'](this.prefix, name);\n groupHandler.apply(this, [console.info]);\n console.groupEnd();\n }\n\n public enable(): void {\n this.isEnabled = true;\n }\n\n public disable(): void {\n this.isEnabled = false;\n }\n\n protected handle(method: 'debug' | 'log' | 'info' | 'warn' | 'error', data: unknown[]): void {\n if (!this.isEnabled) return;\n console[method](this.prefix, ...data);\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-internal.mjs","sources":["../../../../libs/angular/internal/src/lib/helpers/camel-to-kebab-case.ts","../../../../libs/angular/internal/src/lib/helpers/decorator-property-name.ts","../../../../libs/angular/internal/src/lib/helpers/deepmerge.ts","../../../../libs/angular/internal/src/lib/helpers/fast-equals.ts","../../../../libs/angular/internal/src/lib/helpers/get-css-variables.ts","../../../../libs/angular/internal/src/lib/helpers/get-enum-values.ts","../../../../libs/angular/internal/src/lib/helpers/toggle-form-disabled-state.ts","../../../../libs/angular/internal/src/lib/decorators/css-component.ts","../../../../libs/angular/internal/src/lib/decorators/css-modifier.ts","../../../../libs/angular/internal/src/lib/logger.ts","../../../../libs/angular/internal/src/odx-angular-internal.ts"],"sourcesContent":["/** @internal */\n/* istanbul ignore next */\nexport function camelToKebabCase(value: string): string {\n if (value !== value.toLowerCase()) {\n return value.replace(/[A-Z]/g, (match, index) => {\n const char = match.toLowerCase();\n\n return index === 0 ? char : `-${char}`;\n });\n }\n return value;\n}\n","/**\n * @internal\n * Generates a unique property name for a decorator.\n *\n * @param {string} decoratorName - The name of the decorator.\n * @param {string} propertyName - The name of the property.\n * @returns {string} - The unique property name.\n */\nexport function decoratorPropertyName<D extends string, T extends string>(decoratorName: D, propertyName: T): `__ODX_${D}_${T}__` {\n return `__ODX_${decoratorName}_${propertyName}__`;\n}\n","import { deepmergeCustom } from 'deepmerge-ts';\n\nexport const deepmerge = deepmergeCustom({\n mergeArrays: false,\n mergeSets: false,\n});\n","import { deepEqual } from 'fast-equals';\n\nexport const fastDeepEqual = (obj1: unknown, obj2: unknown) => deepEqual(obj1, obj2);\n","interface CSSVariableDefinition {\n name: string;\n value: string;\n}\n\n/* istanbul ignore next */\nfunction isSameDomain({ href }: StyleSheet): boolean {\n return !href || href.startsWith(window.location.origin);\n}\n\n/** @internal */\n/* istanbul ignore next */\nexport function getCSSVariables(filter: RegExp, selector = ':root'): CSSVariableDefinition[] {\n const stylesheets = Array.from(document.styleSheets).filter(isSameDomain);\n\n return stylesheets.reduce<CSSVariableDefinition[]>((variables, { cssRules }) => {\n const rules = Array.from(cssRules).filter(({ type }) => type === CSSRule.STYLE_RULE) as CSSStyleRule[];\n for (const { style, selectorText } of rules) {\n for (const propName of Array.from(style)) {\n const name = propName.trim();\n if (!name.startsWith('--') || !filter.test(name) || (selector && selectorText !== selector)) continue;\n variables.push({ name, value: style.getPropertyValue(propName).trim() });\n }\n }\n return variables;\n }, []);\n}\n","/** @internal */\nexport function getEnumValues<TEnum, TKeys extends string>(e: { [key in TKeys]: TEnum }): TEnum[] {\n const keys = Object.keys(e) as TKeys[];\n return keys.filter((key) => e[key] !== undefined).map((key) => e[key]);\n}\n","import { FormGroup } from '@angular/forms';\n\n/** @internal */\nexport function toggleFormDisabledState(form: FormGroup) {\n form.disabled ? form.enable() : form.disable();\n console.log('form', form);\n}\n","import { ElementRef, Type } from '@angular/core';\nimport { decoratorPropertyName } from '../helpers';\n\nexport const CSS_COMPONENT_NAME = decoratorPropertyName('CSSComponent', 'name');\n\n/** @internal */\nexport interface CSSComponent {\n readonly element: ElementRef<HTMLElement>;\n}\n\n/** @internal */\n/* istanbul ignore next */\nexport function CSSComponent(name: string, prefix = 'odx') {\n return (target: Type<CSSComponent>) => {\n const cssClass = `${prefix}-${name}`;\n Object.defineProperty(target.prototype, CSS_COMPONENT_NAME, {\n value: cssClass,\n });\n\n (function (this: unknown, ngOnInit?: () => void) {\n target.prototype.ngOnInit = function (this: CSSComponent) {\n this.element.nativeElement.classList.add(cssClass);\n ngOnInit?.call(this);\n };\n })(target.prototype.ngOnInit);\n };\n}\n","import { camelToKebabCase, decoratorPropertyName } from '../helpers';\nimport { CSSComponent, CSS_COMPONENT_NAME } from './css-component';\n\n/** @internal */\ninterface CSSModifierOptions {\n withComponentPrefix?: boolean;\n withPrefix?: boolean;\n}\n\ntype CSSComponentInstance = CSSComponent & Record<string, unknown>;\n\n/** @internal */\n/* istanbul ignore next */\nexport function CSSModifier(options?: CSSModifierOptions) {\n return (target: CSSComponent, propertyKey: PropertyKey) => {\n const propertyKeyName = propertyKey.toString();\n const propertyKeyKebabCase = camelToKebabCase(propertyKeyName);\n const propertySymbol = decoratorPropertyName('CSSModifier', propertyKeyName);\n const propertyDefaultValue = decoratorPropertyName('CSSModifier', `${propertyKeyName}_default`);\n\n function createModifierClass(this: CSSComponentInstance, value: unknown) {\n if (typeof value === 'boolean' || (typeof value === 'string' && value.length > 0)) {\n let modifier = typeof value === 'boolean' ? propertyKeyKebabCase : value;\n if (options?.withPrefix) {\n modifier = `${propertyKeyName}-${modifier}`;\n }\n if (options?.withComponentPrefix ?? true) {\n return `${this[CSS_COMPONENT_NAME]}--${modifier}`;\n }\n return modifier;\n }\n return null;\n }\n\n function getter(this: CSSComponentInstance) {\n return this[propertySymbol];\n }\n\n function setter(this: CSSComponentInstance, value: unknown) {\n this[propertyDefaultValue] ??= value;\n const currentValue = this[propertySymbol] ?? null;\n const nextValue = value ?? this[propertyDefaultValue] ?? null;\n\n if (nextValue !== currentValue) {\n const currentModifierClass = createModifierClass.call(this, currentValue);\n if (currentModifierClass !== null) {\n this.element.nativeElement.classList.remove(currentModifierClass);\n }\n const newModifierClass = createModifierClass.call(this, nextValue);\n if (newModifierClass !== null && (typeof nextValue === 'boolean' ? nextValue : true)) {\n this.element.nativeElement.classList.add(newModifierClass);\n }\n }\n this[propertySymbol] = nextValue;\n }\n Object.defineProperty(target, propertyKey, {\n get: getter,\n set: setter,\n });\n };\n}\n","import { isDevMode } from '@angular/core';\n\nexport class Logger {\n private isEnabled: boolean;\n private readonly name: string;\n private readonly prefix: string;\n\n constructor(name: string) {\n this.name = name;\n this.prefix = `[${this.name}]`;\n this.isEnabled = isDevMode();\n }\n\n public log(...data: unknown[]): void {\n this.handle('log', data);\n }\n\n public info(...data: unknown[]): void {\n this.handle('info', data);\n }\n\n public warn(...data: unknown[]): void {\n this.handle('warn', data);\n }\n\n public error(...data: unknown[]): void {\n this.handle('error', data);\n }\n\n public debug(...data: unknown[]): void {\n this.handle('debug', data);\n }\n\n public group(name: string, groupHandler: (this: Logger, log: (...data: unknown[]) => void) => void, collapsed = true): void {\n if (!this.isEnabled) return;\n console[collapsed ? 'groupCollapsed' : 'group'](this.prefix, name);\n groupHandler.apply(this, [console.info]);\n console.groupEnd();\n }\n\n public enable(): void {\n this.isEnabled = true;\n }\n\n public disable(): void {\n this.isEnabled = false;\n }\n\n protected handle(method: 'debug' | 'log' | 'info' | 'warn' | 'error', data: unknown[]): void {\n if (!this.isEnabled) return;\n console[method](this.prefix, ...data);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -180,10 +180,10 @@ class LocalizationService {
180
180
  }
181
181
  return of(language);
182
182
  }
183
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalizationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
184
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalizationService, providedIn: 'root' }); }
183
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: LocalizationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
184
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: LocalizationService, providedIn: 'root' }); }
185
185
  }
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalizationService, decorators: [{
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: LocalizationService, decorators: [{
187
187
  type: Injectable,
188
188
  args: [{ providedIn: 'root' }]
189
189
  }] });