@odx/angular 6.0.0 → 6.1.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 (669) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/animations/lib/expand.d.ts +44 -0
  3. package/animations/lib/fade.d.ts +70 -0
  4. package/animations/lib/slide.d.ts +21 -0
  5. package/animations/lib/wait-for-child-animations.d.ts +38 -0
  6. package/breakpoints/lib/breakpoints.config.d.ts +38 -0
  7. package/breakpoints/lib/breakpoints.service.d.ts +43 -0
  8. package/breakpoints/lib/directives/match-breakpoints.directive.d.ts +36 -0
  9. package/breakpoints/lib/helpers/configure-breakpoint.d.ts +19 -0
  10. package/cdk/a11y/lib/directives/interactive.directive.d.ts +32 -0
  11. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +22 -0
  12. package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +17 -0
  13. package/cdk/active-indicator/lib/active-indicator.directive.d.ts +63 -0
  14. package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +53 -0
  15. package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +3 -0
  16. package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +44 -0
  17. package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +10 -0
  18. package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +49 -0
  19. package/cdk/custom-form-control/lib/custom-form-control.d.ts +108 -0
  20. package/cdk/custom-form-control/lib/input-control.directive.d.ts +75 -0
  21. package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +25 -0
  22. package/cdk/dynamic-view/lib/dynamic-view.service.d.ts +30 -0
  23. package/cdk/dynamic-view/lib/helpers/create-projectable-nodes.d.ts +22 -0
  24. package/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.d.ts +22 -0
  25. package/cdk/dynamic-view/lib/helpers/is-dynamic-view.d.ts +22 -0
  26. package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +39 -0
  27. package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +36 -0
  28. package/cdk/dynamic-view/lib/tokens/dynamic-view-context.d.ts +4 -0
  29. package/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.d.ts +10 -0
  30. package/cdk/event-plugins/lib/event-plugins.config.d.ts +35 -0
  31. package/cdk/event-plugins/lib/models/event-plugin.d.ts +57 -0
  32. package/cdk/event-plugins/lib/plugins/debounce-event-plugin.d.ts +32 -0
  33. package/cdk/event-plugins/lib/plugins/defer-event-plugin.d.ts +24 -0
  34. package/cdk/expandable/lib/directives/expandable-container.directive.d.ts +41 -0
  35. package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +47 -0
  36. package/cdk/option-control/lib/option-control.d.ts +47 -0
  37. package/cdk/radio-group-control/lib/radio-control.directive.d.ts +8 -0
  38. package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +11 -0
  39. package/components/accordion/lib/accordion.component.d.ts +8 -0
  40. package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +37 -1
  41. package/components/accordion/lib/directives/accordion-item-title.d.ts +3 -0
  42. package/components/action-group/action-group.component.d.ts +6 -0
  43. package/components/area-header/area-header.component.d.ts +8 -0
  44. package/components/area-header/directives/area-header-content.directive.d.ts +3 -0
  45. package/components/area-header/directives/area-header-subtitle.directive.d.ts +3 -0
  46. package/components/autocomplete/lib/autocomplete.component.d.ts +18 -0
  47. package/components/avatar/lib/avatar.component.d.ts +8 -0
  48. package/components/badge/lib/badge.component.d.ts +10 -0
  49. package/components/badge/lib/badge.directive.d.ts +15 -0
  50. package/components/bar/lib/bar.component.d.ts +7 -0
  51. package/components/bar/lib/directives/bar-button.directive.d.ts +3 -0
  52. package/components/bar/lib/directives/bar-label.directive.d.ts +3 -0
  53. package/components/breadcrumbs/lib/breadcrumbs.component.d.ts +3 -0
  54. package/components/button/lib/button.component.d.ts +10 -0
  55. package/components/button-group/lib/button-group.component.d.ts +15 -0
  56. package/components/calendar/lib/calendar.component.d.ts +48 -0
  57. package/components/calendar/lib/calendar.config.d.ts +17 -0
  58. package/components/calendar/lib/calendar.service.d.ts +48 -0
  59. package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +24 -0
  60. package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +6 -0
  61. package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +6 -0
  62. package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +6 -0
  63. package/components/calendar/lib/daterange.service.d.ts +16 -0
  64. package/components/calendar/lib/directives/calendar-cell.directive.d.ts +37 -0
  65. package/components/calendar/lib/directives/calendar-view.directive.d.ts +41 -0
  66. package/components/calendar/lib/pipes/date-label.pipe.d.ts +5 -0
  67. package/components/calendar/lib/services/calendar-month.service.d.ts +1 -0
  68. package/components/calendar/lib/services/calendar-year.service.d.ts +1 -0
  69. package/components/calendar/lib/services/calendar-years.service.d.ts +1 -0
  70. package/components/calendar/lib/utils/check-cell-in-range.d.ts +1 -0
  71. package/components/calendar/lib/utils/check-identical-date.d.ts +1 -0
  72. package/components/calendar/lib/utils/get-A11y-label.d.ts +1 -0
  73. package/components/calendar/lib/utils/is-date-disabled.d.ts +1 -0
  74. package/components/calendar/lib/utils/parse-date.d.ts +1 -0
  75. package/components/calendar/lib/utils/validate-daterange.d.ts +1 -0
  76. package/components/calendar/lib/utils/validate-max-date.d.ts +1 -0
  77. package/components/calendar/lib/utils/validate-min-date.d.ts +1 -0
  78. package/components/calendar/lib/utils/validate-next-date-set.d.ts +1 -0
  79. package/components/calendar/lib/utils/validate-previous-date-set.d.ts +1 -0
  80. package/components/checkbox/lib/checkbox.component.d.ts +32 -0
  81. package/components/checkbox/lib/checkbox.validator.d.ts +23 -0
  82. package/components/chip/lib/components/chip/chip.component.d.ts +14 -0
  83. package/components/chip/lib/components/chip-list/chip-list.component.d.ts +3 -0
  84. package/components/chip/lib/components/chip-list-row/chip-list-row.component.d.ts +3 -0
  85. package/components/circular-progress/lib/circular-progress.component.d.ts +20 -0
  86. package/components/content-box/lib/content-box.component.d.ts +3 -0
  87. package/components/content-box/lib/directives/content-box-footer.directive.d.ts +3 -0
  88. package/components/content-box/lib/directives/content-box-header.directive.d.ts +3 -0
  89. package/components/datepicker/lib/datepicker.component.d.ts +47 -0
  90. package/components/datepicker/lib/datepicker.config.d.ts +19 -0
  91. package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +30 -0
  92. package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +2 -0
  93. package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +1 -0
  94. package/components/daterangepicker/lib/daterangepicker.component.d.ts +89 -0
  95. package/components/daterangepicker/lib/daterangepicker.config.d.ts +19 -0
  96. package/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.d.ts +30 -0
  97. package/components/daterangepicker/lib/range.validator.d.ts +15 -0
  98. package/components/daterangepicker/lib/required.validator.d.ts +6 -0
  99. package/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.d.ts +2 -0
  100. package/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.d.ts +1 -0
  101. package/components/dropdown/lib/dropdown.component.d.ts +16 -0
  102. package/components/dropdown/lib/dropdown.directive.d.ts +67 -0
  103. package/components/dropdown/lib/helpers/close-current-dropdown.d.ts +5 -0
  104. package/components/error-page/lib/error-page.component.d.ts +7 -0
  105. package/components/error-page/lib/error-page.config.d.ts +18 -0
  106. package/components/footer/lib/footer.component.d.ts +9 -6
  107. package/components/footer/lib/footer.config.d.ts +2 -0
  108. package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +13 -0
  109. package/components/form-field/lib/components/form-group/form-group.component.d.ts +16 -0
  110. package/components/form-field/lib/directives/form-field-control.directive.d.ts +5 -0
  111. package/components/form-field/lib/directives/form-field-error.directive.d.ts +6 -0
  112. package/components/form-field/lib/directives/form-field-hint.directive.d.ts +3 -0
  113. package/components/form-field/lib/directives/form-field-label.directive.d.ts +3 -0
  114. package/components/form-field/lib/directives/form.directive.d.ts +13 -0
  115. package/components/form-field/lib/form-field.component.d.ts +20 -0
  116. package/components/form-field/lib/form-field.service.d.ts +42 -0
  117. package/components/form-field/lib/services/form-field-error.service.d.ts +24 -0
  118. package/components/header/lib/directives/header-avatar.directive.d.ts +4 -0
  119. package/components/header/lib/directives/header-title.directive.d.ts +3 -0
  120. package/components/header/lib/header.component.d.ts +3 -0
  121. package/components/header-navigation/lib/directives/header-navigation-link.directive.d.ts +3 -0
  122. package/components/header-navigation/lib/header-navigation.component.d.ts +6 -0
  123. package/components/icon/lib/helpers/unpack-icon-identifier.d.ts +14 -0
  124. package/components/icon/lib/icon.component.d.ts +24 -0
  125. package/components/icon/lib/icon.config.d.ts +26 -0
  126. package/components/inline-message/lib/inline-message.component.d.ts +13 -0
  127. package/components/link/link.directive.d.ts +3 -0
  128. package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +6 -0
  129. package/components/list/lib/components/list-item/list-item.component.d.ts +17 -1
  130. package/components/list/lib/list.component.d.ts +5 -0
  131. package/components/loading-spinner/lib/loading-spinner.component.d.ts +8 -0
  132. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +22 -0
  133. package/components/logo/logo.directive.d.ts +15 -0
  134. package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +5 -1
  135. package/components/main-menu/lib/directives/main-menu-close.directive.d.ts +3 -0
  136. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +16 -0
  137. package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +1 -0
  138. package/components/main-menu/lib/main-menu.component.d.ts +42 -0
  139. package/components/main-menu/lib/main-menu.config.d.ts +31 -0
  140. package/components/main-menu/lib/main-menu.service.d.ts +28 -0
  141. package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +4 -0
  142. package/components/menu/lib/directives/menu-item.directive.d.ts +6 -0
  143. package/components/menu/lib/menu.component.d.ts +13 -1
  144. package/components/menu/lib/menu.directive.d.ts +31 -0
  145. package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +14 -0
  146. package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +3 -0
  147. package/components/modal/lib/components/modal-header/modal-header.component.d.ts +9 -0
  148. package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +21 -0
  149. package/components/modal/lib/directives/modal-close.directive.d.ts +25 -1
  150. package/components/modal/lib/directives/modal-content.directive.d.ts +3 -0
  151. package/components/modal/lib/directives/modal-dismiss.directive.d.ts +18 -1
  152. package/components/modal/lib/helpers/inject-modal-ref.d.ts +21 -0
  153. package/components/modal/lib/helpers/provide-modal-ref.d.ts +9 -0
  154. package/components/modal/lib/modal.component.d.ts +25 -0
  155. package/components/modal/lib/modal.config.d.ts +33 -0
  156. package/components/modal/lib/modal.directive.d.ts +29 -0
  157. package/components/modal/lib/modal.service.d.ts +54 -0
  158. package/components/modal/lib/models/modal-ref.d.ts +34 -0
  159. package/components/navigation-back/lib/navigation-back.component.d.ts +3 -0
  160. package/components/notification/lib/components/notification-center/notification-center.component.d.ts +0 -2
  161. package/components/notification/lib/directives/notification-center.directive.d.ts +18 -4
  162. package/components/notification/lib/helpers/get-notifications-by-tag.d.ts +1 -0
  163. package/components/notification/lib/helpers/sort-notifications.d.ts +1 -0
  164. package/components/notification/lib/helpers/to-notification-collection.d.ts +1 -0
  165. package/components/notification/lib/models/notification-feature.d.ts +15 -0
  166. package/components/notification/lib/notification.config.d.ts +54 -0
  167. package/components/notification/lib/notification.logger.d.ts +1 -0
  168. package/components/notification/lib/notification.service.d.ts +55 -0
  169. package/components/notification/lib/notification.tokens.d.ts +3 -0
  170. package/components/notification/lib/services/notification-center.service.d.ts +9 -0
  171. package/components/paginator/lib/paginator.component.d.ts +89 -0
  172. package/components/paginator/lib/paginator.config.d.ts +24 -2
  173. package/components/progress/lib/progress.component.d.ts +15 -0
  174. package/components/radio-group/lib/components/radio-button/radio-button.component.d.ts +18 -1
  175. package/components/radio-group/lib/radio-group.component.d.ts +11 -0
  176. package/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.d.ts +19 -0
  177. package/components/rail-navigation/lib/rail-navigation.component.d.ts +26 -0
  178. package/components/rich-list/lib/components/rich-list-content/rich-list-content.component.d.ts +4 -0
  179. package/components/rich-list/lib/components/rich-list-header/rich-list-header.component.d.ts +4 -0
  180. package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +9 -1
  181. package/components/rich-list/lib/rich-list.component.d.ts +9 -2
  182. package/components/select/lib/components/select-option/select-option.component.d.ts +39 -2
  183. package/components/select/lib/directives/select-input-control.directive.d.ts +11 -0
  184. package/components/select/lib/pipes/select-search-filter.pipe.d.ts +10 -0
  185. package/components/select/lib/select.component.d.ts +59 -0
  186. package/components/slider/lib/slider.directive.d.ts +19 -0
  187. package/components/spinbox/lib/spinbox.component.d.ts +16 -0
  188. package/components/switch/lib/switch.component.d.ts +10 -0
  189. package/components/switch/lib/switch.validator.d.ts +12 -0
  190. package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +28 -0
  191. package/components/tab-bar/lib/tab-bar.component.d.ts +69 -0
  192. package/components/table/lib/components/check-cell/check-cell.component.d.ts +18 -0
  193. package/components/table/lib/components/header-title/header-title.component.d.ts +33 -1
  194. package/components/table/lib/directives/table-cell.directive.d.ts +4 -0
  195. package/components/table/lib/directives/table-row.directive.d.ts +4 -0
  196. package/components/table/lib/table.component.d.ts +36 -0
  197. package/components/timepicker/lib/timepicker.component.d.ts +11 -2
  198. package/components/timepicker/lib/utils/generate-time-stamps.d.ts +2 -1
  199. package/components/timepicker/lib/utils/ngx-mask-helper.d.ts +2 -2
  200. package/components/toast/lib/components/toast-item/toast-item.component.d.ts +5 -4
  201. package/components/toast/lib/models/toast.d.ts +4 -2
  202. package/components/toast/lib/toast.config.d.ts +26 -0
  203. package/components/toast/lib/toast.service.d.ts +35 -0
  204. package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +11 -0
  205. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +12 -0
  206. package/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.d.ts +7 -0
  207. package/components/tooltip/lib/tooltip.component.d.ts +20 -0
  208. package/components/tooltip/lib/tooltip.directive.d.ts +35 -0
  209. package/components/wizard/lib/components/wizard-step/wizard-step.component.d.ts +34 -0
  210. package/components/wizard/lib/wizard.component.d.ts +20 -0
  211. package/esm2022/animations/lib/expand.mjs +45 -1
  212. package/esm2022/animations/lib/fade.mjs +71 -1
  213. package/esm2022/animations/lib/slide.mjs +22 -1
  214. package/esm2022/animations/lib/wait-for-child-animations.mjs +39 -1
  215. package/esm2022/breakpoints/lib/breakpoints.config.mjs +39 -1
  216. package/esm2022/breakpoints/lib/breakpoints.service.mjs +44 -1
  217. package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +37 -1
  218. package/esm2022/breakpoints/lib/helpers/configure-breakpoint.mjs +20 -1
  219. package/esm2022/cdk/a11y/lib/directives/interactive.directive.mjs +33 -1
  220. package/esm2022/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +23 -1
  221. package/esm2022/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +18 -1
  222. package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +64 -1
  223. package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +40 -2
  224. package/esm2022/cdk/checkbox-control/lib/checkbox-control.directive.mjs +4 -1
  225. package/esm2022/cdk/connected-overlay/lib/connected-overlay.service.mjs +45 -1
  226. package/esm2022/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +11 -1
  227. package/esm2022/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +50 -1
  228. package/esm2022/cdk/custom-form-control/lib/custom-form-control.mjs +109 -3
  229. package/esm2022/cdk/custom-form-control/lib/input-control.directive.mjs +76 -1
  230. package/esm2022/cdk/dynamic-view/lib/dynamic-view.directive.mjs +18 -1
  231. package/esm2022/cdk/dynamic-view/lib/dynamic-view.service.mjs +31 -1
  232. package/esm2022/cdk/dynamic-view/lib/helpers/create-projectable-nodes.mjs +23 -1
  233. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.mjs +23 -1
  234. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-view.mjs +23 -1
  235. package/esm2022/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +40 -1
  236. package/esm2022/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +37 -1
  237. package/esm2022/cdk/dynamic-view/lib/tokens/dynamic-view-context.mjs +5 -1
  238. package/esm2022/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.mjs +11 -1
  239. package/esm2022/cdk/event-plugins/lib/event-plugins.config.mjs +36 -1
  240. package/esm2022/cdk/event-plugins/lib/models/event-plugin.mjs +45 -1
  241. package/esm2022/cdk/event-plugins/lib/plugins/debounce-event-plugin.mjs +33 -1
  242. package/esm2022/cdk/event-plugins/lib/plugins/defer-event-plugin.mjs +25 -1
  243. package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +42 -1
  244. package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +48 -1
  245. package/esm2022/cdk/option-control/lib/option-control.mjs +48 -1
  246. package/esm2022/cdk/radio-group-control/lib/radio-control.directive.mjs +9 -1
  247. package/esm2022/cdk/radio-group-control/lib/radio-group-control.directive.mjs +12 -1
  248. package/esm2022/components/accordion/lib/accordion.component.mjs +9 -1
  249. package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +31 -1
  250. package/esm2022/components/accordion/lib/directives/accordion-item-title.mjs +4 -1
  251. package/esm2022/components/action-group/action-group.component.mjs +7 -1
  252. package/esm2022/components/area-header/area-header.component.mjs +9 -1
  253. package/esm2022/components/area-header/directives/area-header-content.directive.mjs +4 -1
  254. package/esm2022/components/area-header/directives/area-header-subtitle.directive.mjs +4 -1
  255. package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +29 -5
  256. package/esm2022/components/avatar/lib/avatar.component.mjs +9 -1
  257. package/esm2022/components/badge/lib/badge.component.mjs +11 -1
  258. package/esm2022/components/badge/lib/badge.directive.mjs +16 -1
  259. package/esm2022/components/bar/lib/bar.component.mjs +8 -1
  260. package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +4 -1
  261. package/esm2022/components/bar/lib/directives/bar-label.directive.mjs +4 -1
  262. package/esm2022/components/breadcrumbs/lib/breadcrumbs.component.mjs +4 -1
  263. package/esm2022/components/button/lib/button.component.mjs +11 -1
  264. package/esm2022/components/button-group/lib/button-group.component.mjs +16 -1
  265. package/esm2022/components/calendar/lib/calendar.component.mjs +35 -1
  266. package/esm2022/components/calendar/lib/calendar.config.mjs +18 -1
  267. package/esm2022/components/calendar/lib/calendar.service.mjs +49 -1
  268. package/esm2022/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +19 -1
  269. package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +7 -1
  270. package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +7 -1
  271. package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +7 -1
  272. package/esm2022/components/calendar/lib/daterange.service.mjs +17 -1
  273. package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +26 -1
  274. package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +39 -1
  275. package/esm2022/components/calendar/lib/pipes/date-label.pipe.mjs +6 -1
  276. package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +2 -1
  277. package/esm2022/components/calendar/lib/services/calendar-year.service.mjs +2 -1
  278. package/esm2022/components/calendar/lib/services/calendar-years.service.mjs +2 -1
  279. package/esm2022/components/calendar/lib/utils/check-cell-in-range.mjs +2 -1
  280. package/esm2022/components/calendar/lib/utils/check-identical-date.mjs +2 -1
  281. package/esm2022/components/calendar/lib/utils/get-A11y-label.mjs +2 -1
  282. package/esm2022/components/calendar/lib/utils/is-date-disabled.mjs +2 -1
  283. package/esm2022/components/calendar/lib/utils/parse-date.mjs +2 -1
  284. package/esm2022/components/calendar/lib/utils/validate-daterange.mjs +2 -1
  285. package/esm2022/components/calendar/lib/utils/validate-max-date.mjs +2 -1
  286. package/esm2022/components/calendar/lib/utils/validate-min-date.mjs +2 -1
  287. package/esm2022/components/calendar/lib/utils/validate-next-date-set.mjs +2 -1
  288. package/esm2022/components/calendar/lib/utils/validate-previous-date-set.mjs +2 -1
  289. package/esm2022/components/checkbox/lib/checkbox.component.mjs +33 -1
  290. package/esm2022/components/checkbox/lib/checkbox.validator.mjs +24 -1
  291. package/esm2022/components/chip/lib/components/chip/chip.component.mjs +15 -1
  292. package/esm2022/components/chip/lib/components/chip-list/chip-list.component.mjs +4 -1
  293. package/esm2022/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +4 -1
  294. package/esm2022/components/circular-progress/lib/circular-progress.component.mjs +21 -1
  295. package/esm2022/components/content-box/lib/content-box.component.mjs +4 -1
  296. package/esm2022/components/content-box/lib/directives/content-box-footer.directive.mjs +4 -1
  297. package/esm2022/components/content-box/lib/directives/content-box-header.directive.mjs +4 -1
  298. package/esm2022/components/datepicker/lib/datepicker.component.mjs +33 -1
  299. package/esm2022/components/datepicker/lib/datepicker.config.mjs +20 -1
  300. package/esm2022/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +31 -1
  301. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +3 -1
  302. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +2 -1
  303. package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +65 -1
  304. package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +20 -1
  305. package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +31 -1
  306. package/esm2022/components/daterangepicker/lib/range.validator.mjs +16 -1
  307. package/esm2022/components/daterangepicker/lib/required.validator.mjs +15 -1
  308. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.mjs +3 -1
  309. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.mjs +2 -1
  310. package/esm2022/components/dropdown/lib/dropdown.component.mjs +8 -1
  311. package/esm2022/components/dropdown/lib/dropdown.directive.mjs +55 -1
  312. package/esm2022/components/dropdown/lib/helpers/close-current-dropdown.mjs +6 -1
  313. package/esm2022/components/error-page/lib/error-page.component.mjs +8 -1
  314. package/esm2022/components/error-page/lib/error-page.config.mjs +9 -1
  315. package/esm2022/components/footer/lib/footer.component.mjs +10 -7
  316. package/esm2022/components/footer/lib/footer.config.mjs +3 -1
  317. package/esm2022/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +14 -1
  318. package/esm2022/components/form-field/lib/components/form-group/form-group.component.mjs +13 -1
  319. package/esm2022/components/form-field/lib/directives/form-field-control.directive.mjs +6 -1
  320. package/esm2022/components/form-field/lib/directives/form-field-error.directive.mjs +4 -1
  321. package/esm2022/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -1
  322. package/esm2022/components/form-field/lib/directives/form-field-label.directive.mjs +4 -1
  323. package/esm2022/components/form-field/lib/directives/form.directive.mjs +14 -1
  324. package/esm2022/components/form-field/lib/form-field.component.mjs +14 -1
  325. package/esm2022/components/form-field/lib/form-field.service.mjs +43 -1
  326. package/esm2022/components/form-field/lib/services/form-field-error.service.mjs +25 -1
  327. package/esm2022/components/header/lib/directives/header-avatar.directive.mjs +5 -1
  328. package/esm2022/components/header/lib/directives/header-title.directive.mjs +4 -1
  329. package/esm2022/components/header/lib/header.component.mjs +4 -1
  330. package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +4 -1
  331. package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +4 -1
  332. package/esm2022/components/icon/lib/helpers/unpack-icon-identifier.mjs +15 -1
  333. package/esm2022/components/icon/lib/icon.component.mjs +25 -1
  334. package/esm2022/components/icon/lib/icon.config.mjs +20 -1
  335. package/esm2022/components/inline-message/lib/inline-message.component.mjs +14 -1
  336. package/esm2022/components/link/link.directive.mjs +4 -1
  337. package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +7 -1
  338. package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +18 -2
  339. package/esm2022/components/list/lib/list.component.mjs +6 -1
  340. package/esm2022/components/loading-spinner/lib/loading-spinner.component.mjs +10 -2
  341. package/esm2022/components/loading-spinner/lib/loading-spinner.directive.mjs +23 -1
  342. package/esm2022/components/logo/logo.directive.mjs +16 -1
  343. package/esm2022/components/main-menu/lib/directives/main-menu-button.directive.mjs +5 -1
  344. package/esm2022/components/main-menu/lib/directives/main-menu-close.directive.mjs +4 -1
  345. package/esm2022/components/main-menu/lib/directives/main-menu-item.directive.mjs +17 -1
  346. package/esm2022/components/main-menu/lib/helpers/create-main-menu-links.mjs +2 -1
  347. package/esm2022/components/main-menu/lib/main-menu.component.mjs +37 -1
  348. package/esm2022/components/main-menu/lib/main-menu.config.mjs +32 -1
  349. package/esm2022/components/main-menu/lib/main-menu.service.mjs +29 -1
  350. package/esm2022/components/mainfilter-group/lib/mainfilter-group.component.mjs +5 -1
  351. package/esm2022/components/menu/lib/directives/menu-item.directive.mjs +7 -1
  352. package/esm2022/components/menu/lib/menu.component.mjs +13 -1
  353. package/esm2022/components/menu/lib/menu.directive.mjs +19 -1
  354. package/esm2022/components/modal/lib/components/basic-modal/basic-modal.component.mjs +15 -1
  355. package/esm2022/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -1
  356. package/esm2022/components/modal/lib/components/modal-header/modal-header.component.mjs +4 -1
  357. package/esm2022/components/modal/lib/components/modal-hero/modal-hero.component.mjs +12 -1
  358. package/esm2022/components/modal/lib/directives/modal-close.directive.mjs +25 -1
  359. package/esm2022/components/modal/lib/directives/modal-content.directive.mjs +4 -1
  360. package/esm2022/components/modal/lib/directives/modal-dismiss.directive.mjs +18 -1
  361. package/esm2022/components/modal/lib/helpers/inject-modal-ref.mjs +22 -1
  362. package/esm2022/components/modal/lib/helpers/provide-modal-ref.mjs +10 -1
  363. package/esm2022/components/modal/lib/modal.component.mjs +21 -2
  364. package/esm2022/components/modal/lib/modal.config.mjs +34 -1
  365. package/esm2022/components/modal/lib/modal.directive.mjs +25 -1
  366. package/esm2022/components/modal/lib/modal.service.mjs +39 -1
  367. package/esm2022/components/modal/lib/models/modal-ref.mjs +34 -1
  368. package/esm2022/components/navigation-back/lib/navigation-back.component.mjs +4 -1
  369. package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +1 -3
  370. package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +19 -5
  371. package/esm2022/components/notification/lib/helpers/get-notifications-by-tag.mjs +2 -1
  372. package/esm2022/components/notification/lib/helpers/sort-notifications.mjs +2 -1
  373. package/esm2022/components/notification/lib/helpers/to-notification-collection.mjs +2 -1
  374. package/esm2022/components/notification/lib/models/notification-feature.mjs +16 -1
  375. package/esm2022/components/notification/lib/notification.config.mjs +45 -1
  376. package/esm2022/components/notification/lib/notification.logger.mjs +2 -1
  377. package/esm2022/components/notification/lib/notification.service.mjs +56 -1
  378. package/esm2022/components/notification/lib/notification.tokens.mjs +4 -1
  379. package/esm2022/components/notification/lib/services/notification-center.service.mjs +10 -1
  380. package/esm2022/components/paginator/lib/paginator.component.mjs +90 -1
  381. package/esm2022/components/paginator/lib/paginator.config.mjs +29 -1
  382. package/esm2022/components/progress/lib/progress.component.mjs +16 -1
  383. package/esm2022/components/radio-group/lib/components/radio-button/radio-button.component.mjs +20 -3
  384. package/esm2022/components/radio-group/lib/radio-group.component.mjs +13 -2
  385. package/esm2022/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +17 -1
  386. package/esm2022/components/rail-navigation/lib/rail-navigation.component.mjs +27 -1
  387. package/esm2022/components/rich-list/lib/components/rich-list-content/rich-list-content.component.mjs +5 -1
  388. package/esm2022/components/rich-list/lib/components/rich-list-header/rich-list-header.component.mjs +5 -1
  389. package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +10 -2
  390. package/esm2022/components/rich-list/lib/rich-list.component.mjs +10 -3
  391. package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +49 -7
  392. package/esm2022/components/select/lib/directives/select-input-control.directive.mjs +12 -2
  393. package/esm2022/components/select/lib/pipes/select-search-filter.pipe.mjs +11 -1
  394. package/esm2022/components/select/lib/select.component.mjs +59 -5
  395. package/esm2022/components/slider/lib/slider.directive.mjs +20 -1
  396. package/esm2022/components/spinbox/lib/spinbox.component.mjs +17 -1
  397. package/esm2022/components/switch/lib/switch.component.mjs +11 -1
  398. package/esm2022/components/switch/lib/switch.validator.mjs +13 -1
  399. package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +29 -1
  400. package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +71 -1
  401. package/esm2022/components/table/lib/components/check-cell/check-cell.component.mjs +19 -1
  402. package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +30 -2
  403. package/esm2022/components/table/lib/directives/table-cell.directive.mjs +5 -1
  404. package/esm2022/components/table/lib/directives/table-row.directive.mjs +5 -1
  405. package/esm2022/components/table/lib/table.component.mjs +30 -1
  406. package/esm2022/components/timepicker/lib/timepicker.component.mjs +15 -6
  407. package/esm2022/components/timepicker/lib/utils/generate-time-stamps.mjs +5 -3
  408. package/esm2022/components/timepicker/lib/utils/ngx-mask-helper.mjs +3 -3
  409. package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs +3 -3
  410. package/esm2022/components/toast/lib/components/toast-item/toast-item.component.mjs +5 -3
  411. package/esm2022/components/toast/lib/models/toast.mjs +1 -1
  412. package/esm2022/components/toast/lib/toast.config.mjs +27 -1
  413. package/esm2022/components/toast/lib/toast.service.mjs +36 -1
  414. package/esm2022/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +12 -1
  415. package/esm2022/components/toggle-button-group/lib/toggle-button-group.component.mjs +14 -2
  416. package/esm2022/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.mjs +8 -1
  417. package/esm2022/components/tooltip/lib/tooltip.component.mjs +18 -1
  418. package/esm2022/components/tooltip/lib/tooltip.directive.mjs +36 -1
  419. package/esm2022/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +35 -1
  420. package/esm2022/components/wizard/lib/wizard.component.mjs +21 -1
  421. package/esm2022/internal/lib/helpers/decorator-property-name.mjs +9 -1
  422. package/esm2022/internal/translate/lib/translate.config.mjs +32 -1
  423. package/esm2022/internal/translate/lib/translate.service.mjs +30 -1
  424. package/esm2022/lib/controllers/controller.mjs +26 -1
  425. package/esm2022/lib/controllers/disabled.controller.mjs +60 -1
  426. package/esm2022/lib/controllers/readonly.controller.mjs +57 -1
  427. package/esm2022/lib/directives/click-outside.directive.mjs +30 -1
  428. package/esm2022/lib/directives/delegate-focus.directive.mjs +15 -1
  429. package/esm2022/lib/services/window-ref.mjs +67 -1
  430. package/esm2022/lib/tokens/identity-matcher.mjs +25 -1
  431. package/esm2022/lib/tokens/string-search-handler.mjs +25 -1
  432. package/esm2022/lib/tokens/stringify.mjs +26 -1
  433. package/esm2022/localization/lib/features/with-http-language-header.mjs +54 -1
  434. package/esm2022/localization/lib/features/with-http-language-query-param.mjs +52 -1
  435. package/esm2022/localization/lib/loaders/browser-language-loader.mjs +33 -1
  436. package/esm2022/localization/lib/localization.config.mjs +71 -1
  437. package/esm2022/localization/lib/localization.service.mjs +42 -3
  438. package/esm2022/localization/lib/models/localization-feature.mjs +8 -1
  439. package/esm2022/rxjs/index.mjs +2 -2
  440. package/esm2022/rxjs/lib/delay-until.mjs +23 -1
  441. package/esm2022/rxjs/lib/from-element-mutation.mjs +22 -1
  442. package/esm2022/rxjs/lib/from-element-resize.mjs +25 -1
  443. package/esm2022/rxjs/lib/from-events.mjs +25 -1
  444. package/esm2022/rxjs/lib/from-query-list.mjs +24 -0
  445. package/esm2022/sdk/lib/application-environment.mjs +51 -1
  446. package/esm2022/theming/lib/helpers/prefers-dark-theme.mjs +19 -1
  447. package/esm2022/theming/lib/helpers/resolve-theme.mjs +26 -1
  448. package/esm2022/theming/lib/helpers/theme-storage.mjs +43 -1
  449. package/esm2022/theming/lib/theming.config.mjs +34 -1
  450. package/esm2022/theming/lib/theming.service.mjs +32 -1
  451. package/esm2022/utils/lib/decorators/pure.mjs +52 -1
  452. package/esm2022/utils/lib/helpers/angular.mjs +37 -1
  453. package/esm2022/utils/lib/helpers/array.mjs +5 -1
  454. package/esm2022/utils/lib/helpers/build-url.mjs +21 -1
  455. package/esm2022/utils/lib/helpers/build-website-url.mjs +3 -2
  456. package/esm2022/utils/lib/helpers/cache-storage-client.mjs +52 -1
  457. package/esm2022/utils/lib/helpers/coercion.mjs +18 -1
  458. package/esm2022/utils/lib/helpers/debounce.mjs +28 -1
  459. package/esm2022/utils/lib/helpers/defer-fn.mjs +21 -1
  460. package/esm2022/utils/lib/helpers/dom.mjs +71 -1
  461. package/esm2022/utils/lib/helpers/get-axis.mjs +21 -1
  462. package/esm2022/utils/lib/helpers/get-language-code.mjs +18 -1
  463. package/esm2022/utils/lib/helpers/get-opposite-side.mjs +22 -1
  464. package/esm2022/utils/lib/helpers/get-side.mjs +18 -1
  465. package/esm2022/utils/lib/helpers/get-unique-id.mjs +34 -1
  466. package/esm2022/utils/lib/helpers/match-url.mjs +41 -1
  467. package/esm2022/utils/lib/helpers/ng-changes.mjs +30 -1
  468. package/esm2022/utils/lib/helpers/provide-config.mjs +57 -1
  469. package/esm2022/utils/lib/helpers/queue.mjs +84 -1
  470. package/esm2022/utils/lib/helpers/type-guards.mjs +58 -1
  471. package/esm2022/utils/lib/helpers/until-destroyed.mjs +39 -1
  472. package/fesm2022/odx-angular-animations.mjs +173 -0
  473. package/fesm2022/odx-angular-animations.mjs.map +1 -1
  474. package/fesm2022/odx-angular-breakpoints.mjs +136 -0
  475. package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
  476. package/fesm2022/odx-angular-cdk-a11y.mjs +71 -0
  477. package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
  478. package/fesm2022/odx-angular-cdk-active-indicator.mjs +63 -0
  479. package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
  480. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +39 -1
  481. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  482. package/fesm2022/odx-angular-cdk-checkbox-control.mjs +3 -0
  483. package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  484. package/fesm2022/odx-angular-cdk-connected-overlay.mjs +103 -0
  485. package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  486. package/fesm2022/odx-angular-cdk-custom-form-control.mjs +183 -2
  487. package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  488. package/fesm2022/odx-angular-cdk-dynamic-view.mjs +202 -0
  489. package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  490. package/fesm2022/odx-angular-cdk-event-plugins.mjs +135 -0
  491. package/fesm2022/odx-angular-cdk-event-plugins.mjs.map +1 -1
  492. package/fesm2022/odx-angular-cdk-expandable.mjs +88 -0
  493. package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
  494. package/fesm2022/odx-angular-cdk-option-control.mjs +47 -0
  495. package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
  496. package/fesm2022/odx-angular-cdk-radio-group-control.mjs +19 -0
  497. package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  498. package/fesm2022/odx-angular-components-accordion.mjs +41 -0
  499. package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
  500. package/fesm2022/odx-angular-components-action-group.mjs +6 -0
  501. package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
  502. package/fesm2022/odx-angular-components-area-header.mjs +14 -0
  503. package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
  504. package/fesm2022/odx-angular-components-autocomplete.mjs +28 -4
  505. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  506. package/fesm2022/odx-angular-components-avatar.mjs +8 -0
  507. package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
  508. package/fesm2022/odx-angular-components-badge.mjs +25 -0
  509. package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
  510. package/fesm2022/odx-angular-components-bar.mjs +13 -0
  511. package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
  512. package/fesm2022/odx-angular-components-breadcrumbs.mjs +3 -0
  513. package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
  514. package/fesm2022/odx-angular-components-button-group.mjs +15 -0
  515. package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
  516. package/fesm2022/odx-angular-components-button.mjs +10 -0
  517. package/fesm2022/odx-angular-components-button.mjs.map +1 -1
  518. package/fesm2022/odx-angular-components-calendar.mjs +232 -0
  519. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  520. package/fesm2022/odx-angular-components-checkbox.mjs +55 -0
  521. package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
  522. package/fesm2022/odx-angular-components-chip.mjs +20 -0
  523. package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
  524. package/fesm2022/odx-angular-components-circular-progress.mjs +20 -0
  525. package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
  526. package/fesm2022/odx-angular-components-content-box.mjs +9 -0
  527. package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
  528. package/fesm2022/odx-angular-components-datepicker.mjs +84 -0
  529. package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
  530. package/fesm2022/odx-angular-components-daterangepicker.mjs +145 -0
  531. package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
  532. package/fesm2022/odx-angular-components-dropdown.mjs +66 -0
  533. package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
  534. package/fesm2022/odx-angular-components-error-page.mjs +15 -0
  535. package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
  536. package/fesm2022/odx-angular-components-footer.mjs +11 -6
  537. package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
  538. package/fesm2022/odx-angular-components-form-field.mjs +131 -0
  539. package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
  540. package/fesm2022/odx-angular-components-header-navigation.mjs +6 -0
  541. package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
  542. package/fesm2022/odx-angular-components-header.mjs +10 -0
  543. package/fesm2022/odx-angular-components-header.mjs.map +1 -1
  544. package/fesm2022/odx-angular-components-icon.mjs +57 -0
  545. package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
  546. package/fesm2022/odx-angular-components-inline-message.mjs +13 -0
  547. package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
  548. package/fesm2022/odx-angular-components-link.mjs +3 -0
  549. package/fesm2022/odx-angular-components-link.mjs.map +1 -1
  550. package/fesm2022/odx-angular-components-list.mjs +28 -1
  551. package/fesm2022/odx-angular-components-list.mjs.map +1 -1
  552. package/fesm2022/odx-angular-components-loading-spinner.mjs +30 -0
  553. package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
  554. package/fesm2022/odx-angular-components-logo.mjs +15 -0
  555. package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
  556. package/fesm2022/odx-angular-components-main-menu.mjs +119 -0
  557. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  558. package/fesm2022/odx-angular-components-mainfilter-group.mjs +4 -0
  559. package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
  560. package/fesm2022/odx-angular-components-menu.mjs +36 -0
  561. package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
  562. package/fesm2022/odx-angular-components-modal.mjs +252 -0
  563. package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
  564. package/fesm2022/odx-angular-components-navigation-back.mjs +3 -0
  565. package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
  566. package/fesm2022/odx-angular-components-notification.mjs +148 -6
  567. package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
  568. package/fesm2022/odx-angular-components-paginator.mjs +117 -0
  569. package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
  570. package/fesm2022/odx-angular-components-progress.mjs +15 -0
  571. package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
  572. package/fesm2022/odx-angular-components-radio-group.mjs +30 -2
  573. package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
  574. package/fesm2022/odx-angular-components-rail-navigation.mjs +42 -0
  575. package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
  576. package/fesm2022/odx-angular-components-rich-list.mjs +26 -3
  577. package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
  578. package/fesm2022/odx-angular-components-select.mjs +126 -11
  579. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  580. package/fesm2022/odx-angular-components-slider.mjs +19 -0
  581. package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
  582. package/fesm2022/odx-angular-components-spinbox.mjs +16 -0
  583. package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
  584. package/fesm2022/odx-angular-components-switch.mjs +22 -0
  585. package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
  586. package/fesm2022/odx-angular-components-tab-bar.mjs +98 -0
  587. package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
  588. package/fesm2022/odx-angular-components-table.mjs +84 -1
  589. package/fesm2022/odx-angular-components-table.mjs.map +1 -1
  590. package/fesm2022/odx-angular-components-timepicker.mjs +20 -9
  591. package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
  592. package/fesm2022/odx-angular-components-toast.mjs +67 -4
  593. package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
  594. package/fesm2022/odx-angular-components-toggle-button-group.mjs +23 -0
  595. package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
  596. package/fesm2022/odx-angular-components-tooltip.mjs +59 -0
  597. package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
  598. package/fesm2022/odx-angular-components-wizard.mjs +54 -0
  599. package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
  600. package/fesm2022/odx-angular-internal-translate.mjs +60 -0
  601. package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
  602. package/fesm2022/odx-angular-internal.mjs +8 -0
  603. package/fesm2022/odx-angular-internal.mjs.map +1 -1
  604. package/fesm2022/odx-angular-localization.mjs +254 -2
  605. package/fesm2022/odx-angular-localization.mjs.map +1 -1
  606. package/fesm2022/odx-angular-rxjs.mjs +115 -5
  607. package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
  608. package/fesm2022/odx-angular-sdk.mjs +50 -0
  609. package/fesm2022/odx-angular-sdk.mjs.map +1 -1
  610. package/fesm2022/odx-angular-theming.mjs +149 -0
  611. package/fesm2022/odx-angular-theming.mjs.map +1 -1
  612. package/fesm2022/odx-angular-utils.mjs +709 -1
  613. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  614. package/fesm2022/odx-angular.mjs +322 -0
  615. package/fesm2022/odx-angular.mjs.map +1 -1
  616. package/internal/lib/helpers/decorator-property-name.d.ts +8 -0
  617. package/internal/translate/lib/translate.config.d.ts +31 -0
  618. package/internal/translate/lib/translate.service.d.ts +29 -0
  619. package/lib/controllers/controller.d.ts +25 -0
  620. package/lib/controllers/disabled.controller.d.ts +59 -0
  621. package/lib/controllers/readonly.controller.d.ts +56 -0
  622. package/lib/directives/click-outside.directive.d.ts +29 -0
  623. package/lib/directives/delegate-focus.directive.d.ts +14 -0
  624. package/lib/services/window-ref.d.ts +66 -0
  625. package/lib/tokens/identity-matcher.d.ts +41 -0
  626. package/lib/tokens/string-search-handler.d.ts +39 -0
  627. package/lib/tokens/stringify.d.ts +42 -0
  628. package/localization/lib/features/with-http-language-header.d.ts +63 -0
  629. package/localization/lib/features/with-http-language-query-param.d.ts +61 -0
  630. package/localization/lib/loaders/browser-language-loader.d.ts +32 -0
  631. package/localization/lib/localization.config.d.ts +81 -0
  632. package/localization/lib/localization.service.d.ts +39 -0
  633. package/localization/lib/models/localization-feature.d.ts +7 -0
  634. package/package.json +1 -1
  635. package/rxjs/index.d.ts +1 -1
  636. package/rxjs/lib/delay-until.d.ts +22 -0
  637. package/rxjs/lib/from-element-mutation.d.ts +21 -0
  638. package/rxjs/lib/from-element-resize.d.ts +24 -0
  639. package/rxjs/lib/from-events.d.ts +24 -0
  640. package/rxjs/lib/from-query-list.d.ts +22 -0
  641. package/sdk/lib/application-environment.d.ts +59 -0
  642. package/theming/lib/helpers/prefers-dark-theme.d.ts +18 -0
  643. package/theming/lib/helpers/resolve-theme.d.ts +25 -0
  644. package/theming/lib/helpers/theme-storage.d.ts +42 -0
  645. package/theming/lib/theming.config.d.ts +46 -0
  646. package/theming/lib/theming.service.d.ts +31 -0
  647. package/utils/lib/decorators/pure.d.ts +51 -0
  648. package/utils/lib/helpers/angular.d.ts +36 -0
  649. package/utils/lib/helpers/array.d.ts +4 -0
  650. package/utils/lib/helpers/build-url.d.ts +20 -0
  651. package/utils/lib/helpers/build-website-url.d.ts +2 -1
  652. package/utils/lib/helpers/cache-storage-client.d.ts +51 -0
  653. package/utils/lib/helpers/coercion.d.ts +17 -0
  654. package/utils/lib/helpers/debounce.d.ts +27 -0
  655. package/utils/lib/helpers/defer-fn.d.ts +20 -0
  656. package/utils/lib/helpers/dom.d.ts +70 -0
  657. package/utils/lib/helpers/get-axis.d.ts +20 -0
  658. package/utils/lib/helpers/get-language-code.d.ts +17 -0
  659. package/utils/lib/helpers/get-opposite-side.d.ts +21 -0
  660. package/utils/lib/helpers/get-side.d.ts +17 -0
  661. package/utils/lib/helpers/get-unique-id.d.ts +33 -0
  662. package/utils/lib/helpers/match-url.d.ts +40 -0
  663. package/utils/lib/helpers/ng-changes.d.ts +52 -0
  664. package/utils/lib/helpers/provide-config.d.ts +56 -0
  665. package/utils/lib/helpers/queue.d.ts +83 -0
  666. package/utils/lib/helpers/type-guards.d.ts +57 -0
  667. package/utils/lib/helpers/until-destroyed.d.ts +38 -0
  668. package/esm2022/rxjs/lib/form-query-list.mjs +0 -5
  669. package/rxjs/lib/form-query-list.d.ts +0 -3
@@ -1,14 +1,58 @@
1
1
  import { animate, animation, style } from '@angular/animations';
2
2
  import { DEFAULT_ANIMATION_PARAMS } from './config';
3
+ /**
4
+ * Animation for smoothly expanding an element from height 0 to its natural height.
5
+ * It transitions the element's height, padding, margin, and opacity from a collapsed state to an expanded state,
6
+ * making the element smoothly grow into view.
7
+ *
8
+ * The `expand` animation uses `DEFAULT_ANIMATION_PARAMS` for its default parameters, which can be overridden
9
+ * when using the animation.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * // Example usage in an Angular component
14
+ * import { expand, collapse } from '@odx/angular/animations';
15
+ *
16
+ * @Component({
17
+ * selector: 'my-expandable-component',
18
+ * templateUrl: './expandable-component.html',
19
+ * animations: [
20
+ * trigger('expandCollapse', [
21
+ * transition('collapsed => expanded', useAnimation(expand)),
22
+ * transition('expanded => collapsed', useAnimation(collapse)),
23
+ * ])
24
+ * ]
25
+ * })
26
+ * export class ExpandableComponent {
27
+ * state = 'collapsed';
28
+ *
29
+ * toggle(): void {
30
+ * this.state = this.state === 'collapsed' ? 'expanded' : 'collapsed';
31
+ * }
32
+ * }
33
+ * ```
34
+ *
35
+ * The animation smoothly transitions various properties (height, padding, margin, and opacity) and is controlled
36
+ * through parameters defined in `DEFAULT_ANIMATION_PARAMS` or those provided during usage.
37
+ */
3
38
  export const expand = animation([
4
39
  style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0, marginTop: 0, marginBottom: 0, overflow: 'hidden' }),
5
40
  animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: '*', paddingTop: '*', paddingBottom: '*', opacity: 1, marginTop: '*', marginBottom: '*' })),
6
41
  ], {
7
42
  params: DEFAULT_ANIMATION_PARAMS,
8
43
  });
44
+ /**
45
+ * Animation for smoothly collapsing an element from its natural height to height 0.
46
+ * It transitions the element's height, padding, margin, and opacity from an expanded state to a collapsed state,
47
+ * making the element smoothly shrink out of view.
48
+ *
49
+ * The `collapse` animation also uses `DEFAULT_ANIMATION_PARAMS` for its default parameters, which can be overridden
50
+ * when using the animation. It's designed to be used in conjunction with the `expand` animation for creating
51
+ * expandable/collapsible elements.
52
+ */
9
53
  export const collapse = animation([
10
54
  animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0, marginTop: 0, marginBottom: 0, overflow: 'hidden' })),
11
55
  ], {
12
56
  params: DEFAULT_ANIMATION_PARAMS,
13
57
  });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2FuaW1hdGlvbnMvc3JjL2xpYi9leHBhbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXBELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQzdCO0lBQ0UsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDbEksT0FBTyxDQUNMLHlDQUF5QyxFQUN6QyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQzNHO0NBQ0YsRUFDRDtJQUNFLE1BQU0sRUFBRSx3QkFBd0I7Q0FDakMsQ0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FDL0I7SUFDRSxPQUFPLENBQ0wseUNBQXlDLEVBQ3pDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQ25JO0NBQ0YsRUFDRDtJQUNFLE1BQU0sRUFBRSx3QkFBd0I7Q0FDakMsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgYW5pbWF0aW9uLCBzdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgREVGQVVMVF9BTklNQVRJT05fUEFSQU1TIH0gZnJvbSAnLi9jb25maWcnO1xuXG5leHBvcnQgY29uc3QgZXhwYW5kID0gYW5pbWF0aW9uKFxuICBbXG4gICAgc3R5bGUoeyBoZWlnaHQ6IDAsIG1pbkhlaWdodDogMCwgcGFkZGluZ1RvcDogMCwgcGFkZGluZ0JvdHRvbTogMCwgb3BhY2l0eTogMCwgbWFyZ2luVG9wOiAwLCBtYXJnaW5Cb3R0b206IDAsIG92ZXJmbG93OiAnaGlkZGVuJyB9KSxcbiAgICBhbmltYXRlKFxuICAgICAgJ3t7ZHVyYXRpb259fSB7eyBkZWxheSB9fSB7eyB0aW1pbmdGbiB9fScsXG4gICAgICBzdHlsZSh7IGhlaWdodDogJyonLCBwYWRkaW5nVG9wOiAnKicsIHBhZGRpbmdCb3R0b206ICcqJywgb3BhY2l0eTogMSwgbWFyZ2luVG9wOiAnKicsIG1hcmdpbkJvdHRvbTogJyonIH0pXG4gICAgKSxcbiAgXSxcbiAge1xuICAgIHBhcmFtczogREVGQVVMVF9BTklNQVRJT05fUEFSQU1TLFxuICB9XG4pO1xuXG5leHBvcnQgY29uc3QgY29sbGFwc2UgPSBhbmltYXRpb24oXG4gIFtcbiAgICBhbmltYXRlKFxuICAgICAgJ3t7ZHVyYXRpb259fSB7eyBkZWxheSB9fSB7eyB0aW1pbmdGbiB9fScsXG4gICAgICBzdHlsZSh7IGhlaWdodDogMCwgbWluSGVpZ2h0OiAwLCBwYWRkaW5nVG9wOiAwLCBwYWRkaW5nQm90dG9tOiAwLCBvcGFjaXR5OiAwLCBtYXJnaW5Ub3A6IDAsIG1hcmdpbkJvdHRvbTogMCwgb3ZlcmZsb3c6ICdoaWRkZW4nIH0pXG4gICAgKSxcbiAgXSxcbiAge1xuICAgIHBhcmFtczogREVGQVVMVF9BTklNQVRJT05fUEFSQU1TLFxuICB9XG4pO1xuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2FuaW1hdGlvbnMvc3JjL2xpYi9leHBhbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXBEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FDN0I7SUFDRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNsSSxPQUFPLENBQ0wseUNBQXlDLEVBQ3pDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FDM0c7Q0FDRixFQUNEO0lBQ0UsTUFBTSxFQUFFLHdCQUF3QjtDQUNqQyxDQUNGLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQy9CO0lBQ0UsT0FBTyxDQUNMLHlDQUF5QyxFQUN6QyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUNuSTtDQUNGLEVBQ0Q7SUFDRSxNQUFNLEVBQUUsd0JBQXdCO0NBQ2pDLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIGFuaW1hdGlvbiwgc3R5bGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IERFRkFVTFRfQU5JTUFUSU9OX1BBUkFNUyB9IGZyb20gJy4vY29uZmlnJztcblxuLyoqXG4gKiBBbmltYXRpb24gZm9yIHNtb290aGx5IGV4cGFuZGluZyBhbiBlbGVtZW50IGZyb20gaGVpZ2h0IDAgdG8gaXRzIG5hdHVyYWwgaGVpZ2h0LlxuICogSXQgdHJhbnNpdGlvbnMgdGhlIGVsZW1lbnQncyBoZWlnaHQsIHBhZGRpbmcsIG1hcmdpbiwgYW5kIG9wYWNpdHkgZnJvbSBhIGNvbGxhcHNlZCBzdGF0ZSB0byBhbiBleHBhbmRlZCBzdGF0ZSxcbiAqIG1ha2luZyB0aGUgZWxlbWVudCBzbW9vdGhseSBncm93IGludG8gdmlldy5cbiAqXG4gKiBUaGUgYGV4cGFuZGAgYW5pbWF0aW9uIHVzZXMgYERFRkFVTFRfQU5JTUFUSU9OX1BBUkFNU2AgZm9yIGl0cyBkZWZhdWx0IHBhcmFtZXRlcnMsIHdoaWNoIGNhbiBiZSBvdmVycmlkZGVuXG4gKiB3aGVuIHVzaW5nIHRoZSBhbmltYXRpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBFeGFtcGxlIHVzYWdlIGluIGFuIEFuZ3VsYXIgY29tcG9uZW50XG4gKiBpbXBvcnQgeyBleHBhbmQsIGNvbGxhcHNlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2FuaW1hdGlvbnMnO1xuICpcbiAqIEBDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ215LWV4cGFuZGFibGUtY29tcG9uZW50JyxcbiAqICAgdGVtcGxhdGVVcmw6ICcuL2V4cGFuZGFibGUtY29tcG9uZW50Lmh0bWwnLFxuICogICBhbmltYXRpb25zOiBbXG4gKiAgICAgdHJpZ2dlcignZXhwYW5kQ29sbGFwc2UnLCBbXG4gKiAgICAgICB0cmFuc2l0aW9uKCdjb2xsYXBzZWQgPT4gZXhwYW5kZWQnLCB1c2VBbmltYXRpb24oZXhwYW5kKSksXG4gKiAgICAgICB0cmFuc2l0aW9uKCdleHBhbmRlZCA9PiBjb2xsYXBzZWQnLCB1c2VBbmltYXRpb24oY29sbGFwc2UpKSxcbiAqICAgICBdKVxuICogICBdXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEV4cGFuZGFibGVDb21wb25lbnQge1xuICogICBzdGF0ZSA9ICdjb2xsYXBzZWQnO1xuICpcbiAqICAgdG9nZ2xlKCk6IHZvaWQge1xuICogICAgIHRoaXMuc3RhdGUgPSB0aGlzLnN0YXRlID09PSAnY29sbGFwc2VkJyA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJztcbiAqICAgfVxuICogfVxuICogYGBgXG4gKlxuICogVGhlIGFuaW1hdGlvbiBzbW9vdGhseSB0cmFuc2l0aW9ucyB2YXJpb3VzIHByb3BlcnRpZXMgKGhlaWdodCwgcGFkZGluZywgbWFyZ2luLCBhbmQgb3BhY2l0eSkgYW5kIGlzIGNvbnRyb2xsZWRcbiAqIHRocm91Z2ggcGFyYW1ldGVycyBkZWZpbmVkIGluIGBERUZBVUxUX0FOSU1BVElPTl9QQVJBTVNgIG9yIHRob3NlIHByb3ZpZGVkIGR1cmluZyB1c2FnZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGV4cGFuZCA9IGFuaW1hdGlvbihcbiAgW1xuICAgIHN0eWxlKHsgaGVpZ2h0OiAwLCBtaW5IZWlnaHQ6IDAsIHBhZGRpbmdUb3A6IDAsIHBhZGRpbmdCb3R0b206IDAsIG9wYWNpdHk6IDAsIG1hcmdpblRvcDogMCwgbWFyZ2luQm90dG9tOiAwLCBvdmVyZmxvdzogJ2hpZGRlbicgfSksXG4gICAgYW5pbWF0ZShcbiAgICAgICd7e2R1cmF0aW9ufX0ge3sgZGVsYXkgfX0ge3sgdGltaW5nRm4gfX0nLFxuICAgICAgc3R5bGUoeyBoZWlnaHQ6ICcqJywgcGFkZGluZ1RvcDogJyonLCBwYWRkaW5nQm90dG9tOiAnKicsIG9wYWNpdHk6IDEsIG1hcmdpblRvcDogJyonLCBtYXJnaW5Cb3R0b206ICcqJyB9KSxcbiAgICApLFxuICBdLFxuICB7XG4gICAgcGFyYW1zOiBERUZBVUxUX0FOSU1BVElPTl9QQVJBTVMsXG4gIH0sXG4pO1xuXG4vKipcbiAqIEFuaW1hdGlvbiBmb3Igc21vb3RobHkgY29sbGFwc2luZyBhbiBlbGVtZW50IGZyb20gaXRzIG5hdHVyYWwgaGVpZ2h0IHRvIGhlaWdodCAwLlxuICogSXQgdHJhbnNpdGlvbnMgdGhlIGVsZW1lbnQncyBoZWlnaHQsIHBhZGRpbmcsIG1hcmdpbiwgYW5kIG9wYWNpdHkgZnJvbSBhbiBleHBhbmRlZCBzdGF0ZSB0byBhIGNvbGxhcHNlZCBzdGF0ZSxcbiAqIG1ha2luZyB0aGUgZWxlbWVudCBzbW9vdGhseSBzaHJpbmsgb3V0IG9mIHZpZXcuXG4gKlxuICogVGhlIGBjb2xsYXBzZWAgYW5pbWF0aW9uIGFsc28gdXNlcyBgREVGQVVMVF9BTklNQVRJT05fUEFSQU1TYCBmb3IgaXRzIGRlZmF1bHQgcGFyYW1ldGVycywgd2hpY2ggY2FuIGJlIG92ZXJyaWRkZW5cbiAqIHdoZW4gdXNpbmcgdGhlIGFuaW1hdGlvbi4gSXQncyBkZXNpZ25lZCB0byBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGBleHBhbmRgIGFuaW1hdGlvbiBmb3IgY3JlYXRpbmdcbiAqIGV4cGFuZGFibGUvY29sbGFwc2libGUgZWxlbWVudHMuXG4gKi9cbmV4cG9ydCBjb25zdCBjb2xsYXBzZSA9IGFuaW1hdGlvbihcbiAgW1xuICAgIGFuaW1hdGUoXG4gICAgICAne3tkdXJhdGlvbn19IHt7IGRlbGF5IH19IHt7IHRpbWluZ0ZuIH19JyxcbiAgICAgIHN0eWxlKHsgaGVpZ2h0OiAwLCBtaW5IZWlnaHQ6IDAsIHBhZGRpbmdUb3A6IDAsIHBhZGRpbmdCb3R0b206IDAsIG9wYWNpdHk6IDAsIG1hcmdpblRvcDogMCwgbWFyZ2luQm90dG9tOiAwLCBvdmVyZmxvdzogJ2hpZGRlbicgfSksXG4gICAgKSxcbiAgXSxcbiAge1xuICAgIHBhcmFtczogREVGQVVMVF9BTklNQVRJT05fUEFSQU1TLFxuICB9LFxuKTtcbiJdfQ==
@@ -1,9 +1,79 @@
1
1
  import { animate, animation, style } from '@angular/animations';
2
2
  import { DEFAULT_ANIMATION_PARAMS } from './config';
3
+ /**
4
+ * Generates a fadeIn animation with customizable opacity target.
5
+ * This animation gradually changes the element's opacity from 0 to a specified value, creating a "fade in" visual effect.
6
+ *
7
+ * @param {number} to - The final opacity value of the element at the end of the animation. Defaults to 1 (fully opaque).
8
+ * @returns {AnimationReferenceMetadata} An Angular animation object that can be used with Angular's animation system.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // Example usage in an Angular component with a fadeIn animation
13
+ * import { fadeIn } from '@odx/angular/animations';
14
+ * import { trigger, transition, useAnimation } from '@angular/animations';
15
+ *
16
+ * @Component({
17
+ * selector: 'app-fade-in-example',
18
+ * template: `
19
+ * <div @fadeInAnimation *ngIf="isVisible">Fade In Content</div>
20
+ * <button (click)="showContent()">Show Content</button>`,
21
+ * animations: [
22
+ * trigger('fadeInAnimation', [
23
+ * transition(':enter', useAnimation(fadeIn(), { params: { duration: '500ms' } }))
24
+ * ])
25
+ * ]
26
+ * })
27
+ * export class FadeInExampleComponent {
28
+ * isVisible = false;
29
+ *
30
+ * showContent(): void {
31
+ * this.isVisible = true;
32
+ * }
33
+ * }
34
+ * ```
35
+ *
36
+ * This example demonstrates how to apply the fadeIn animation to an element, making it smoothly appear on the screen.
37
+ */
3
38
  export const fadeIn = (to = 1) => animation([style({ opacity: 0 }), animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {
4
39
  params: DEFAULT_ANIMATION_PARAMS,
5
40
  });
41
+ /**
42
+ * Generates a fadeOut animation with customizable opacity target.
43
+ * This animation gradually changes the element's opacity from its current value to a specified value, creating a "fade out" visual effect.
44
+ *
45
+ * @param {number} to - The target opacity value of the element at the end of the animation. Defaults to 0 (fully transparent).
46
+ * @returns {AnimationReferenceMetadata} An Angular animation object that can be used with Angular's animation system.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * // Example usage in an Angular component with a fadeOut animation
51
+ * import { fadeOut } from '@odx/angular/animations';
52
+ * import { trigger, transition, useAnimation } from '@angular/animations';
53
+ *
54
+ * @Component({
55
+ * selector: 'app-fade-out-example',
56
+ * template: `
57
+ * <div @fadeOutAnimation *ngIf="isVisible">Fade Out Content</div>
58
+ * <button (click)="hideContent()">Hide Content</button>`,
59
+ * animations: [
60
+ * trigger('fadeOutAnimation', [
61
+ * transition(':leave', useAnimation(fadeOut(), { params: { duration: '500ms' } }))
62
+ * ])
63
+ * ]
64
+ * })
65
+ * export class FadeOutExampleComponent {
66
+ * isVisible = true;
67
+ *
68
+ * hideContent(): void {
69
+ * this.isVisible = false;
70
+ * }
71
+ * }
72
+ * ```
73
+ *
74
+ * This example demonstrates how to apply the fadeOut animation to an element, making it smoothly disappear from the screen.
75
+ */
6
76
  export const fadeOut = (to = 0) => animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {
7
77
  params: DEFAULT_ANIMATION_PARAMS,
8
78
  });
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9hbmltYXRpb25zL3NyYy9saWIvZmFkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQy9CLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDN0csTUFBTSxFQUFFLHdCQUF3QjtDQUNqQyxDQUFDLENBQUM7QUFFTCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FDaEMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLHlDQUF5QyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUN0RixNQUFNLEVBQUUsd0JBQXdCO0NBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIGFuaW1hdGlvbiwgc3R5bGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IERFRkFVTFRfQU5JTUFUSU9OX1BBUkFNUyB9IGZyb20gJy4vY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IGZhZGVJbiA9ICh0byA9IDEpID0+XG4gIGFuaW1hdGlvbihbc3R5bGUoeyBvcGFjaXR5OiAwIH0pLCBhbmltYXRlKCd7e2R1cmF0aW9ufX0ge3sgZGVsYXkgfX0ge3sgdGltaW5nRm4gfX0nLCBzdHlsZSh7IG9wYWNpdHk6IHRvIH0pKV0sIHtcbiAgICBwYXJhbXM6IERFRkFVTFRfQU5JTUFUSU9OX1BBUkFNUyxcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBmYWRlT3V0ID0gKHRvID0gMCkgPT5cbiAgYW5pbWF0aW9uKFthbmltYXRlKCd7e2R1cmF0aW9ufX0ge3sgZGVsYXkgfX0ge3sgdGltaW5nRm4gfX0nLCBzdHlsZSh7IG9wYWNpdHk6IHRvIH0pKV0sIHtcbiAgICBwYXJhbXM6IERFRkFVTFRfQU5JTUFUSU9OX1BBUkFNUyxcbiAgfSk7XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9hbmltYXRpb25zL3NyYy9saWIvZmFkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0c7QUFDSCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FDL0IsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLHlDQUF5QyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUM3RyxNQUFNLEVBQUUsd0JBQXdCO0NBQ2pDLENBQUMsQ0FBQztBQUVMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQ2hDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDdEYsTUFBTSxFQUFFLHdCQUF3QjtDQUNqQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBhbmltYXRpb24sIHN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBERUZBVUxUX0FOSU1BVElPTl9QQVJBTVMgfSBmcm9tICcuL2NvbmZpZyc7XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgZmFkZUluIGFuaW1hdGlvbiB3aXRoIGN1c3RvbWl6YWJsZSBvcGFjaXR5IHRhcmdldC5cbiAqIFRoaXMgYW5pbWF0aW9uIGdyYWR1YWxseSBjaGFuZ2VzIHRoZSBlbGVtZW50J3Mgb3BhY2l0eSBmcm9tIDAgdG8gYSBzcGVjaWZpZWQgdmFsdWUsIGNyZWF0aW5nIGEgXCJmYWRlIGluXCIgdmlzdWFsIGVmZmVjdC5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gdG8gLSBUaGUgZmluYWwgb3BhY2l0eSB2YWx1ZSBvZiB0aGUgZWxlbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBhbmltYXRpb24uIERlZmF1bHRzIHRvIDEgKGZ1bGx5IG9wYXF1ZSkuXG4gKiBAcmV0dXJucyB7QW5pbWF0aW9uUmVmZXJlbmNlTWV0YWRhdGF9IEFuIEFuZ3VsYXIgYW5pbWF0aW9uIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHdpdGggQW5ndWxhcidzIGFuaW1hdGlvbiBzeXN0ZW0uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBFeGFtcGxlIHVzYWdlIGluIGFuIEFuZ3VsYXIgY29tcG9uZW50IHdpdGggYSBmYWRlSW4gYW5pbWF0aW9uXG4gKiBpbXBvcnQgeyBmYWRlSW4gfSBmcm9tICdAb2R4L2FuZ3VsYXIvYW5pbWF0aW9ucyc7XG4gKiBpbXBvcnQgeyB0cmlnZ2VyLCB0cmFuc2l0aW9uLCB1c2VBbmltYXRpb24gfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbiAqXG4gKiBAQ29tcG9uZW50KHtcbiAqICAgc2VsZWN0b3I6ICdhcHAtZmFkZS1pbi1leGFtcGxlJyxcbiAqICAgdGVtcGxhdGU6IGBcbiAqICAgICAgIDxkaXYgQGZhZGVJbkFuaW1hdGlvbiAqbmdJZj1cImlzVmlzaWJsZVwiPkZhZGUgSW4gQ29udGVudDwvZGl2PlxuICogICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2hvd0NvbnRlbnQoKVwiPlNob3cgQ29udGVudDwvYnV0dG9uPmAsXG4gKiAgIGFuaW1hdGlvbnM6IFtcbiAqICAgICB0cmlnZ2VyKCdmYWRlSW5BbmltYXRpb24nLCBbXG4gKiAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCB1c2VBbmltYXRpb24oZmFkZUluKCksIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAnNTAwbXMnIH0gfSkpXG4gKiAgICAgXSlcbiAqICAgXVxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBGYWRlSW5FeGFtcGxlQ29tcG9uZW50IHtcbiAqICAgaXNWaXNpYmxlID0gZmFsc2U7XG4gKlxuICogICBzaG93Q29udGVudCgpOiB2b2lkIHtcbiAqICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIFRoaXMgZXhhbXBsZSBkZW1vbnN0cmF0ZXMgaG93IHRvIGFwcGx5IHRoZSBmYWRlSW4gYW5pbWF0aW9uIHRvIGFuIGVsZW1lbnQsIG1ha2luZyBpdCBzbW9vdGhseSBhcHBlYXIgb24gdGhlIHNjcmVlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGZhZGVJbiA9ICh0byA9IDEpID0+XG4gIGFuaW1hdGlvbihbc3R5bGUoeyBvcGFjaXR5OiAwIH0pLCBhbmltYXRlKCd7e2R1cmF0aW9ufX0ge3sgZGVsYXkgfX0ge3sgdGltaW5nRm4gfX0nLCBzdHlsZSh7IG9wYWNpdHk6IHRvIH0pKV0sIHtcbiAgICBwYXJhbXM6IERFRkFVTFRfQU5JTUFUSU9OX1BBUkFNUyxcbiAgfSk7XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgZmFkZU91dCBhbmltYXRpb24gd2l0aCBjdXN0b21pemFibGUgb3BhY2l0eSB0YXJnZXQuXG4gKiBUaGlzIGFuaW1hdGlvbiBncmFkdWFsbHkgY2hhbmdlcyB0aGUgZWxlbWVudCdzIG9wYWNpdHkgZnJvbSBpdHMgY3VycmVudCB2YWx1ZSB0byBhIHNwZWNpZmllZCB2YWx1ZSwgY3JlYXRpbmcgYSBcImZhZGUgb3V0XCIgdmlzdWFsIGVmZmVjdC5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gdG8gLSBUaGUgdGFyZ2V0IG9wYWNpdHkgdmFsdWUgb2YgdGhlIGVsZW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgYW5pbWF0aW9uLiBEZWZhdWx0cyB0byAwIChmdWxseSB0cmFuc3BhcmVudCkuXG4gKiBAcmV0dXJucyB7QW5pbWF0aW9uUmVmZXJlbmNlTWV0YWRhdGF9IEFuIEFuZ3VsYXIgYW5pbWF0aW9uIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHdpdGggQW5ndWxhcidzIGFuaW1hdGlvbiBzeXN0ZW0uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBFeGFtcGxlIHVzYWdlIGluIGFuIEFuZ3VsYXIgY29tcG9uZW50IHdpdGggYSBmYWRlT3V0IGFuaW1hdGlvblxuICogaW1wb3J0IHsgZmFkZU91dCB9IGZyb20gJ0BvZHgvYW5ndWxhci9hbmltYXRpb25zJztcbiAqIGltcG9ydCB7IHRyaWdnZXIsIHRyYW5zaXRpb24sIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuICpcbiAqIEBDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ2FwcC1mYWRlLW91dC1leGFtcGxlJyxcbiAqICAgdGVtcGxhdGU6IGBcbiAqICAgICAgPGRpdiBAZmFkZU91dEFuaW1hdGlvbiAqbmdJZj1cImlzVmlzaWJsZVwiPkZhZGUgT3V0IENvbnRlbnQ8L2Rpdj5cbiAqICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGlkZUNvbnRlbnQoKVwiPkhpZGUgQ29udGVudDwvYnV0dG9uPmAsXG4gKiAgIGFuaW1hdGlvbnM6IFtcbiAqICAgICB0cmlnZ2VyKCdmYWRlT3V0QW5pbWF0aW9uJywgW1xuICogICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgdXNlQW5pbWF0aW9uKGZhZGVPdXQoKSwgeyBwYXJhbXM6IHsgZHVyYXRpb246ICc1MDBtcycgfSB9KSlcbiAqICAgICBdKVxuICogICBdXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEZhZGVPdXRFeGFtcGxlQ29tcG9uZW50IHtcbiAqICAgaXNWaXNpYmxlID0gdHJ1ZTtcbiAqXG4gKiAgIGhpZGVDb250ZW50KCk6IHZvaWQge1xuICogICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIFRoaXMgZXhhbXBsZSBkZW1vbnN0cmF0ZXMgaG93IHRvIGFwcGx5IHRoZSBmYWRlT3V0IGFuaW1hdGlvbiB0byBhbiBlbGVtZW50LCBtYWtpbmcgaXQgc21vb3RobHkgZGlzYXBwZWFyIGZyb20gdGhlIHNjcmVlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGZhZGVPdXQgPSAodG8gPSAwKSA9PlxuICBhbmltYXRpb24oW2FuaW1hdGUoJ3t7ZHVyYXRpb259fSB7eyBkZWxheSB9fSB7eyB0aW1pbmdGbiB9fScsIHN0eWxlKHsgb3BhY2l0eTogdG8gfSkpXSwge1xuICAgIHBhcmFtczogREVGQVVMVF9BTklNQVRJT05fUEFSQU1TLFxuICB9KTtcbiJdfQ==
@@ -19,6 +19,27 @@ function createSlideOutAnimation(to, direction) {
19
19
  },
20
20
  });
21
21
  }
22
+ /**
23
+ * Utility functions for creating slide-in and slide-out animations in specific directions.
24
+ * These include slideInX, slideInY, slideInDown, slideInUp, slideInLeft, slideInRight,
25
+ * slideOutX, slideOutY, slideOutDown, slideOutUp, slideOutLeft, and slideOutRight.
26
+ * Each function is configured for a specific slide direction and distance, making it easy to apply
27
+ * consistent slide animations across your application.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * // Using slideInLeft and slideOutRight in a component
32
+ * animations: [
33
+ * trigger('slideInOut', [
34
+ * transition(':enter', [useAnimation(slideInLeft)]),
35
+ * transition(':leave', [useAnimation(slideOutRight)])
36
+ * ])
37
+ * ]
38
+ * ```
39
+ *
40
+ * Note: The 'from' and 'to' parameters for slideIn and slideOut functions respectively
41
+ * can be customized for different slide distances.
42
+ */
22
43
  export const slideInX = (from) => createSlideInAnimation(from, 'X');
23
44
  export const slideInY = (from) => createSlideInAnimation(from, 'Y');
24
45
  export const slideInDown = slideInY('-100%');
@@ -31,4 +52,4 @@ export const slideOutDown = slideOutY('100%');
31
52
  export const slideOutUp = slideOutY('-100%');
32
53
  export const slideOutLeft = slideOutX('-100%');
33
54
  export const slideOutRight = slideOutX('100%');
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvYW5pbWF0aW9ucy9zcmMvbGliL3NsaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUE4QixLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFcEQsU0FBUyxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsU0FBb0I7SUFDaEUsT0FBTyxTQUFTLENBQ2Q7UUFDRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxTQUFTLGNBQWMsRUFBRSxDQUFDO1FBQ3pELE9BQU8sQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDckcsRUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOLEdBQUcsd0JBQXdCO1lBQzNCLElBQUk7U0FDTDtLQUNGLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLEVBQVUsRUFBRSxTQUFvQjtJQUMvRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxTQUFTLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzlILE1BQU0sRUFBRTtZQUNOLEdBQUcsd0JBQXdCO1lBQzNCLEVBQUU7U0FDSDtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBhbmltYXRpb24sIEFuaW1hdGlvblJlZmVyZW5jZU1ldGFkYXRhLCBzdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgREVGQVVMVF9BTklNQVRJT05fUEFSQU1TIH0gZnJvbSAnLi9jb25maWcnO1xuXG5mdW5jdGlvbiBjcmVhdGVTbGlkZUluQW5pbWF0aW9uKGZyb206IHN0cmluZywgZGlyZWN0aW9uOiAnWCcgfCAnWScpOiBBbmltYXRpb25SZWZlcmVuY2VNZXRhZGF0YSB7XG4gIHJldHVybiBhbmltYXRpb24oXG4gICAgW1xuICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06IGB0cmFuc2xhdGUke2RpcmVjdGlvbn0oe3sgZnJvbSB9fSlgIH0pLFxuICAgICAgYW5pbWF0ZSgne3tkdXJhdGlvbn19IHt7IGRlbGF5IH19IHt7IHRpbWluZ0ZuIH19Jywgc3R5bGUoeyB0cmFuc2Zvcm06IGB0cmFuc2xhdGUke2RpcmVjdGlvbn0oMClgIH0pKSxcbiAgICBdLFxuICAgIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICAuLi5ERUZBVUxUX0FOSU1BVElPTl9QQVJBTVMsXG4gICAgICAgIGZyb20sXG4gICAgICB9LFxuICAgIH1cbiAgKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2xpZGVPdXRBbmltYXRpb24odG86IHN0cmluZywgZGlyZWN0aW9uOiAnWCcgfCAnWScpOiBBbmltYXRpb25SZWZlcmVuY2VNZXRhZGF0YSB7XG4gIHJldHVybiBhbmltYXRpb24oW2FuaW1hdGUoJ3t7ZHVyYXRpb259fSB7eyBkZWxheSB9fSB7eyB0aW1pbmdGbiB9fScsIHN0eWxlKHsgdHJhbnNmb3JtOiBgdHJhbnNsYXRlJHtkaXJlY3Rpb259KHt7IHRvIH19KWAgfSkpXSwge1xuICAgIHBhcmFtczoge1xuICAgICAgLi4uREVGQVVMVF9BTklNQVRJT05fUEFSQU1TLFxuICAgICAgdG8sXG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBzbGlkZUluWCA9IChmcm9tOiBzdHJpbmcpID0+IGNyZWF0ZVNsaWRlSW5BbmltYXRpb24oZnJvbSwgJ1gnKTtcbmV4cG9ydCBjb25zdCBzbGlkZUluWSA9IChmcm9tOiBzdHJpbmcpID0+IGNyZWF0ZVNsaWRlSW5BbmltYXRpb24oZnJvbSwgJ1knKTtcbmV4cG9ydCBjb25zdCBzbGlkZUluRG93biA9IHNsaWRlSW5ZKCctMTAwJScpO1xuZXhwb3J0IGNvbnN0IHNsaWRlSW5VcCA9IHNsaWRlSW5ZKCcxMDAlJyk7XG5leHBvcnQgY29uc3Qgc2xpZGVJbkxlZnQgPSBzbGlkZUluWCgnLTEwMCUnKTtcbmV4cG9ydCBjb25zdCBzbGlkZUluUmlnaHQgPSBzbGlkZUluWCgnMTAwJScpO1xuXG5leHBvcnQgY29uc3Qgc2xpZGVPdXRYID0gKHRvOiBzdHJpbmcpID0+IGNyZWF0ZVNsaWRlT3V0QW5pbWF0aW9uKHRvLCAnWCcpO1xuZXhwb3J0IGNvbnN0IHNsaWRlT3V0WSA9ICh0bzogc3RyaW5nKSA9PiBjcmVhdGVTbGlkZU91dEFuaW1hdGlvbih0bywgJ1knKTtcbmV4cG9ydCBjb25zdCBzbGlkZU91dERvd24gPSBzbGlkZU91dFkoJzEwMCUnKTtcbmV4cG9ydCBjb25zdCBzbGlkZU91dFVwID0gc2xpZGVPdXRZKCctMTAwJScpO1xuZXhwb3J0IGNvbnN0IHNsaWRlT3V0TGVmdCA9IHNsaWRlT3V0WCgnLTEwMCUnKTtcbmV4cG9ydCBjb25zdCBzbGlkZU91dFJpZ2h0ID0gc2xpZGVPdXRYKCcxMDAlJyk7XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvYW5pbWF0aW9ucy9zcmMvbGliL3NsaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUE4QixLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFcEQsU0FBUyxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsU0FBb0I7SUFDaEUsT0FBTyxTQUFTLENBQ2Q7UUFDRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxTQUFTLGNBQWMsRUFBRSxDQUFDO1FBQ3pELE9BQU8sQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDckcsRUFDRDtRQUNFLE1BQU0sRUFBRTtZQUNOLEdBQUcsd0JBQXdCO1lBQzNCLElBQUk7U0FDTDtLQUNGLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLEVBQVUsRUFBRSxTQUFvQjtJQUMvRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxTQUFTLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzlILE1BQU0sRUFBRTtZQUNOLEdBQUcsd0JBQXdCO1lBQzNCLEVBQUU7U0FDSDtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBhbmltYXRpb24sIEFuaW1hdGlvblJlZmVyZW5jZU1ldGFkYXRhLCBzdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgREVGQVVMVF9BTklNQVRJT05fUEFSQU1TIH0gZnJvbSAnLi9jb25maWcnO1xuXG5mdW5jdGlvbiBjcmVhdGVTbGlkZUluQW5pbWF0aW9uKGZyb206IHN0cmluZywgZGlyZWN0aW9uOiAnWCcgfCAnWScpOiBBbmltYXRpb25SZWZlcmVuY2VNZXRhZGF0YSB7XG4gIHJldHVybiBhbmltYXRpb24oXG4gICAgW1xuICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06IGB0cmFuc2xhdGUke2RpcmVjdGlvbn0oe3sgZnJvbSB9fSlgIH0pLFxuICAgICAgYW5pbWF0ZSgne3tkdXJhdGlvbn19IHt7IGRlbGF5IH19IHt7IHRpbWluZ0ZuIH19Jywgc3R5bGUoeyB0cmFuc2Zvcm06IGB0cmFuc2xhdGUke2RpcmVjdGlvbn0oMClgIH0pKSxcbiAgICBdLFxuICAgIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICAuLi5ERUZBVUxUX0FOSU1BVElPTl9QQVJBTVMsXG4gICAgICAgIGZyb20sXG4gICAgICB9LFxuICAgIH0sXG4gICk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNsaWRlT3V0QW5pbWF0aW9uKHRvOiBzdHJpbmcsIGRpcmVjdGlvbjogJ1gnIHwgJ1knKTogQW5pbWF0aW9uUmVmZXJlbmNlTWV0YWRhdGEge1xuICByZXR1cm4gYW5pbWF0aW9uKFthbmltYXRlKCd7e2R1cmF0aW9ufX0ge3sgZGVsYXkgfX0ge3sgdGltaW5nRm4gfX0nLCBzdHlsZSh7IHRyYW5zZm9ybTogYHRyYW5zbGF0ZSR7ZGlyZWN0aW9ufSh7eyB0byB9fSlgIH0pKV0sIHtcbiAgICBwYXJhbXM6IHtcbiAgICAgIC4uLkRFRkFVTFRfQU5JTUFUSU9OX1BBUkFNUyxcbiAgICAgIHRvLFxuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb25zIGZvciBjcmVhdGluZyBzbGlkZS1pbiBhbmQgc2xpZGUtb3V0IGFuaW1hdGlvbnMgaW4gc3BlY2lmaWMgZGlyZWN0aW9ucy5cbiAqIFRoZXNlIGluY2x1ZGUgc2xpZGVJblgsIHNsaWRlSW5ZLCBzbGlkZUluRG93biwgc2xpZGVJblVwLCBzbGlkZUluTGVmdCwgc2xpZGVJblJpZ2h0LFxuICogc2xpZGVPdXRYLCBzbGlkZU91dFksIHNsaWRlT3V0RG93biwgc2xpZGVPdXRVcCwgc2xpZGVPdXRMZWZ0LCBhbmQgc2xpZGVPdXRSaWdodC5cbiAqIEVhY2ggZnVuY3Rpb24gaXMgY29uZmlndXJlZCBmb3IgYSBzcGVjaWZpYyBzbGlkZSBkaXJlY3Rpb24gYW5kIGRpc3RhbmNlLCBtYWtpbmcgaXQgZWFzeSB0byBhcHBseVxuICogY29uc2lzdGVudCBzbGlkZSBhbmltYXRpb25zIGFjcm9zcyB5b3VyIGFwcGxpY2F0aW9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gVXNpbmcgc2xpZGVJbkxlZnQgYW5kIHNsaWRlT3V0UmlnaHQgaW4gYSBjb21wb25lbnRcbiAqIGFuaW1hdGlvbnM6IFtcbiAqICAgdHJpZ2dlcignc2xpZGVJbk91dCcsIFtcbiAqICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbdXNlQW5pbWF0aW9uKHNsaWRlSW5MZWZ0KV0pLFxuICogICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFt1c2VBbmltYXRpb24oc2xpZGVPdXRSaWdodCldKVxuICogICBdKVxuICogXVxuICogYGBgXG4gKlxuICogTm90ZTogVGhlICdmcm9tJyBhbmQgJ3RvJyBwYXJhbWV0ZXJzIGZvciBzbGlkZUluIGFuZCBzbGlkZU91dCBmdW5jdGlvbnMgcmVzcGVjdGl2ZWx5XG4gKiBjYW4gYmUgY3VzdG9taXplZCBmb3IgZGlmZmVyZW50IHNsaWRlIGRpc3RhbmNlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHNsaWRlSW5YID0gKGZyb206IHN0cmluZykgPT4gY3JlYXRlU2xpZGVJbkFuaW1hdGlvbihmcm9tLCAnWCcpO1xuZXhwb3J0IGNvbnN0IHNsaWRlSW5ZID0gKGZyb206IHN0cmluZykgPT4gY3JlYXRlU2xpZGVJbkFuaW1hdGlvbihmcm9tLCAnWScpO1xuZXhwb3J0IGNvbnN0IHNsaWRlSW5Eb3duID0gc2xpZGVJblkoJy0xMDAlJyk7XG5leHBvcnQgY29uc3Qgc2xpZGVJblVwID0gc2xpZGVJblkoJzEwMCUnKTtcbmV4cG9ydCBjb25zdCBzbGlkZUluTGVmdCA9IHNsaWRlSW5YKCctMTAwJScpO1xuZXhwb3J0IGNvbnN0IHNsaWRlSW5SaWdodCA9IHNsaWRlSW5YKCcxMDAlJyk7XG5cbmV4cG9ydCBjb25zdCBzbGlkZU91dFggPSAodG86IHN0cmluZykgPT4gY3JlYXRlU2xpZGVPdXRBbmltYXRpb24odG8sICdYJyk7XG5leHBvcnQgY29uc3Qgc2xpZGVPdXRZID0gKHRvOiBzdHJpbmcpID0+IGNyZWF0ZVNsaWRlT3V0QW5pbWF0aW9uKHRvLCAnWScpO1xuZXhwb3J0IGNvbnN0IHNsaWRlT3V0RG93biA9IHNsaWRlT3V0WSgnMTAwJScpO1xuZXhwb3J0IGNvbnN0IHNsaWRlT3V0VXAgPSBzbGlkZU91dFkoJy0xMDAlJyk7XG5leHBvcnQgY29uc3Qgc2xpZGVPdXRMZWZ0ID0gc2xpZGVPdXRYKCctMTAwJScpO1xuZXhwb3J0IGNvbnN0IHNsaWRlT3V0UmlnaHQgPSBzbGlkZU91dFgoJzEwMCUnKTtcbiJdfQ==
@@ -1,3 +1,41 @@
1
1
  import { animateChild, query, transition } from '@angular/animations';
2
+ /**
3
+ * Utility animation that waits for animations on child components to complete.
4
+ * This animation should be used within parent components that have child components with their
5
+ * own animations. It ensures that the parent's enter and leave animations are only triggered
6
+ * after all child animations have completed, creating a seamless animation sequence.
7
+ *
8
+ * This utility uses Angular's animation functions `query` and `animateChild` to find and animate
9
+ * child elements marked with Angular's animation triggers. The `{ optional: true }` parameter
10
+ * ensures that the animation gracefully handles cases where no child animations are defined.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * // Using waitForChildAnimations in a parent component with children that have animations
15
+ * import { trigger, transition, style, animate, query, animateChild } from '@angular/animations';
16
+ * import { waitForChildAnimations } from '@odx/angular/animations';
17
+ *
18
+ * @Component({
19
+ * selector: 'app-parent',
20
+ * templateUrl: './parent.component.html',
21
+ * animations: [
22
+ * trigger('parentAnimation', [
23
+ * // Define parent animations here
24
+ * transition(':enter', [style({ opacity: 0 }), animate('0.5s ease-in', style({ opacity: 1 }))]),
25
+ * transition(':leave', [animate('0.5s ease-out', style({ opacity: 0 }))]),
26
+ * // Use waitForChildAnimations for coordinating with child animations
27
+ * waitForChildAnimations
28
+ * ])
29
+ * ]
30
+ * })
31
+ * export class ParentComponent {
32
+ * // Component logic here
33
+ * }
34
+ * ```
35
+ *
36
+ * Note: The `waitForChildAnimations` utility is added to the parent component's animation triggers,
37
+ * ensuring that any child component animations are completed before continuing with the parent's
38
+ * own animations.
39
+ */
2
40
  export const waitForChildAnimations = transition(':enter, :leave', [query('@*', animateChild(), { optional: true })]);
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1mb3ItY2hpbGQtYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9hbmltYXRpb25zL3NyYy9saWIvd2FpdC1mb3ItY2hpbGQtYW5pbWF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZUNoaWxkLCBxdWVyeSwgdHJhbnNpdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgY29uc3Qgd2FpdEZvckNoaWxkQW5pbWF0aW9ucyA9IHRyYW5zaXRpb24oJzplbnRlciwgOmxlYXZlJywgW3F1ZXJ5KCdAKicsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pXSk7XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC1mb3ItY2hpbGQtYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9hbmltYXRpb25zL3NyYy9saWIvd2FpdC1mb3ItY2hpbGQtYW5pbWF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFDRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlQ2hpbGQsIHF1ZXJ5LCB0cmFuc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbi8qKlxuICogVXRpbGl0eSBhbmltYXRpb24gdGhhdCB3YWl0cyBmb3IgYW5pbWF0aW9ucyBvbiBjaGlsZCBjb21wb25lbnRzIHRvIGNvbXBsZXRlLlxuICogVGhpcyBhbmltYXRpb24gc2hvdWxkIGJlIHVzZWQgd2l0aGluIHBhcmVudCBjb21wb25lbnRzIHRoYXQgaGF2ZSBjaGlsZCBjb21wb25lbnRzIHdpdGggdGhlaXJcbiAqIG93biBhbmltYXRpb25zLiBJdCBlbnN1cmVzIHRoYXQgdGhlIHBhcmVudCdzIGVudGVyIGFuZCBsZWF2ZSBhbmltYXRpb25zIGFyZSBvbmx5IHRyaWdnZXJlZFxuICogYWZ0ZXIgYWxsIGNoaWxkIGFuaW1hdGlvbnMgaGF2ZSBjb21wbGV0ZWQsIGNyZWF0aW5nIGEgc2VhbWxlc3MgYW5pbWF0aW9uIHNlcXVlbmNlLlxuICpcbiAqIFRoaXMgdXRpbGl0eSB1c2VzIEFuZ3VsYXIncyBhbmltYXRpb24gZnVuY3Rpb25zIGBxdWVyeWAgYW5kIGBhbmltYXRlQ2hpbGRgIHRvIGZpbmQgYW5kIGFuaW1hdGVcbiAqIGNoaWxkIGVsZW1lbnRzIG1hcmtlZCB3aXRoIEFuZ3VsYXIncyBhbmltYXRpb24gdHJpZ2dlcnMuIFRoZSBgeyBvcHRpb25hbDogdHJ1ZSB9YCBwYXJhbWV0ZXJcbiAqIGVuc3VyZXMgdGhhdCB0aGUgYW5pbWF0aW9uIGdyYWNlZnVsbHkgaGFuZGxlcyBjYXNlcyB3aGVyZSBubyBjaGlsZCBhbmltYXRpb25zIGFyZSBkZWZpbmVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gVXNpbmcgd2FpdEZvckNoaWxkQW5pbWF0aW9ucyBpbiBhIHBhcmVudCBjb21wb25lbnQgd2l0aCBjaGlsZHJlbiB0aGF0IGhhdmUgYW5pbWF0aW9uc1xuICogaW1wb3J0IHsgdHJpZ2dlciwgdHJhbnNpdGlvbiwgc3R5bGUsIGFuaW1hdGUsIHF1ZXJ5LCBhbmltYXRlQ2hpbGQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbiAqIGltcG9ydCB7IHdhaXRGb3JDaGlsZEFuaW1hdGlvbnMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvYW5pbWF0aW9ucyc7XG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnYXBwLXBhcmVudCcsXG4gKiAgIHRlbXBsYXRlVXJsOiAnLi9wYXJlbnQuY29tcG9uZW50Lmh0bWwnLFxuICogICBhbmltYXRpb25zOiBbXG4gKiAgICAgdHJpZ2dlcigncGFyZW50QW5pbWF0aW9uJywgW1xuICogICAgICAgLy8gRGVmaW5lIHBhcmVudCBhbmltYXRpb25zIGhlcmVcbiAqICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtzdHlsZSh7IG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoJzAuNXMgZWFzZS1pbicsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSldKSxcbiAqICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFthbmltYXRlKCcwLjVzIGVhc2Utb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV0pLFxuICogICAgICAgLy8gVXNlIHdhaXRGb3JDaGlsZEFuaW1hdGlvbnMgZm9yIGNvb3JkaW5hdGluZyB3aXRoIGNoaWxkIGFuaW1hdGlvbnNcbiAqICAgICAgIHdhaXRGb3JDaGlsZEFuaW1hdGlvbnNcbiAqICAgICBdKVxuICogICBdXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIFBhcmVudENvbXBvbmVudCB7XG4gKiAgIC8vIENvbXBvbmVudCBsb2dpYyBoZXJlXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBOb3RlOiBUaGUgYHdhaXRGb3JDaGlsZEFuaW1hdGlvbnNgIHV0aWxpdHkgaXMgYWRkZWQgdG8gdGhlIHBhcmVudCBjb21wb25lbnQncyBhbmltYXRpb24gdHJpZ2dlcnMsXG4gKiBlbnN1cmluZyB0aGF0IGFueSBjaGlsZCBjb21wb25lbnQgYW5pbWF0aW9ucyBhcmUgY29tcGxldGVkIGJlZm9yZSBjb250aW51aW5nIHdpdGggdGhlIHBhcmVudCdzXG4gKiBvd24gYW5pbWF0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IHdhaXRGb3JDaGlsZEFuaW1hdGlvbnMgPSB0cmFuc2l0aW9uKCc6ZW50ZXIsIDpsZWF2ZScsIFtxdWVyeSgnQConLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KV0pO1xuIl19
@@ -1,5 +1,20 @@
1
1
  import { createConfigTokens } from '@odx/angular/utils';
2
2
  import { configureBreakpoint } from './helpers/configure-breakpoint';
3
+ /**
4
+ * Defines default responsive breakpoints for the application. These breakpoints are used to
5
+ * apply responsive styles and behaviors across various device sizes. Each breakpoint is
6
+ * configured with a name, a minimum width, and a maximum width, defining the range of device
7
+ * sizes it targets.
8
+ *
9
+ * @constant
10
+ * @type {Record<string, string>}
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * // Accessing a breakpoint value
15
+ * console.log(DEFAULT_BREAKPOINTS['=phone']); // Outputs: "(min-width: 480px) and (max-width: 767px)"
16
+ * ```
17
+ */
3
18
  export const DEFAULT_BREAKPOINTS = {
4
19
  ...configureBreakpoint('phone-s', 360, 480),
5
20
  ...configureBreakpoint('phone', 480, 768),
@@ -7,7 +22,30 @@ export const DEFAULT_BREAKPOINTS = {
7
22
  ...configureBreakpoint('desktop-s', 960, 1200),
8
23
  ...configureBreakpoint('desktop', 1200, 9999),
9
24
  };
25
+ /**
26
+ * Provides Angular dependency injection tokens for accessing and configuring breakpoints
27
+ * within the application. This enables a type-safe and modular way to manage responsive
28
+ * design breakpoints across the app.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * // Providing custom breakpoints in an Angular module
33
+ * import { NgModule } from '@angular/core';
34
+ * import { provideBreakpointsConfig } from '@odx/angular/breakpoints';
35
+ *
36
+ * @NgModule({
37
+ * providers: [
38
+ * provideBreakpointsConfig({
39
+ * breakpoints: {
40
+ * ...configureBreakpoint('custom-tablet', 640, 1024),
41
+ * },
42
+ * }),
43
+ * ],
44
+ * })
45
+ * export class CustomModule {}
46
+ * ```
47
+ */
10
48
  export const { BreakpointsConfig, BreakpointsDefaultConfig, injectBreakpointsConfig, provideBreakpointsConfig } = createConfigTokens('Breakpoints', '@odx/angular/breakpoints', {
11
49
  breakpoints: DEFAULT_BREAKPOINTS,
12
50
  });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludHMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2JyZWFrcG9pbnRzL3NyYy9saWIvYnJlYWtwb2ludHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDM0MsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztJQUN6QyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQzFDLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7SUFDOUMsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztDQUNyQyxDQUFDO0FBTVgsTUFBTSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxHQUFHLGtCQUFrQixDQUNsSSxhQUFhLEVBQ2IsMEJBQTBCLEVBQzFCO0lBQ0UsV0FBVyxFQUFFLG1CQUFtQjtDQUNaLENBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVDb25maWdUb2tlbnMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgY29uZmlndXJlQnJlYWtwb2ludCB9IGZyb20gJy4vaGVscGVycy9jb25maWd1cmUtYnJlYWtwb2ludCc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JSRUFLUE9JTlRTID0ge1xuICAuLi5jb25maWd1cmVCcmVha3BvaW50KCdwaG9uZS1zJywgMzYwLCA0ODApLFxuICAuLi5jb25maWd1cmVCcmVha3BvaW50KCdwaG9uZScsIDQ4MCwgNzY4KSxcbiAgLi4uY29uZmlndXJlQnJlYWtwb2ludCgndGFibGV0JywgNzY4LCA5NjApLFxuICAuLi5jb25maWd1cmVCcmVha3BvaW50KCdkZXNrdG9wLXMnLCA5NjAsIDEyMDApLFxuICAuLi5jb25maWd1cmVCcmVha3BvaW50KCdkZXNrdG9wJywgMTIwMCwgOTk5OSksXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIEJyZWFrcG9pbnRzQ29uZmlnIHtcbiAgYnJlYWtwb2ludHM6IFBhcnRpYWw8T2R4QW5ndWxhci5CcmVha3BvaW50cz47XG59XG5cbmV4cG9ydCBjb25zdCB7IEJyZWFrcG9pbnRzQ29uZmlnLCBCcmVha3BvaW50c0RlZmF1bHRDb25maWcsIGluamVjdEJyZWFrcG9pbnRzQ29uZmlnLCBwcm92aWRlQnJlYWtwb2ludHNDb25maWcgfSA9IGNyZWF0ZUNvbmZpZ1Rva2VucyhcbiAgJ0JyZWFrcG9pbnRzJyxcbiAgJ0BvZHgvYW5ndWxhci9icmVha3BvaW50cycsXG4gIHtcbiAgICBicmVha3BvaW50czogREVGQVVMVF9CUkVBS1BPSU5UUyxcbiAgfSBhcyBCcmVha3BvaW50c0NvbmZpZ1xuKTtcbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludHMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2JyZWFrcG9pbnRzL3NyYy9saWIvYnJlYWtwb2ludHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXJFOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDakMsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztJQUMzQyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQ3pDLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDMUMsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQztJQUM5QyxHQUFHLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0NBQ3JDLENBQUM7QUFNWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsR0FBRyxrQkFBa0IsQ0FDbEksYUFBYSxFQUNiLDBCQUEwQixFQUMxQjtJQUNFLFdBQVcsRUFBRSxtQkFBbUI7Q0FDWixDQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29uZmlnVG9rZW5zIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGNvbmZpZ3VyZUJyZWFrcG9pbnQgfSBmcm9tICcuL2hlbHBlcnMvY29uZmlndXJlLWJyZWFrcG9pbnQnO1xuXG4vKipcbiAqIERlZmluZXMgZGVmYXVsdCByZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciB0aGUgYXBwbGljYXRpb24uIFRoZXNlIGJyZWFrcG9pbnRzIGFyZSB1c2VkIHRvXG4gKiBhcHBseSByZXNwb25zaXZlIHN0eWxlcyBhbmQgYmVoYXZpb3JzIGFjcm9zcyB2YXJpb3VzIGRldmljZSBzaXplcy4gRWFjaCBicmVha3BvaW50IGlzXG4gKiBjb25maWd1cmVkIHdpdGggYSBuYW1lLCBhIG1pbmltdW0gd2lkdGgsIGFuZCBhIG1heGltdW0gd2lkdGgsIGRlZmluaW5nIHRoZSByYW5nZSBvZiBkZXZpY2VcbiAqIHNpemVzIGl0IHRhcmdldHMuXG4gKlxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn1cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEFjY2Vzc2luZyBhIGJyZWFrcG9pbnQgdmFsdWVcbiAqIGNvbnNvbGUubG9nKERFRkFVTFRfQlJFQUtQT0lOVFNbJz1waG9uZSddKTsgLy8gT3V0cHV0czogXCIobWluLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KVwiXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQlJFQUtQT0lOVFMgPSB7XG4gIC4uLmNvbmZpZ3VyZUJyZWFrcG9pbnQoJ3Bob25lLXMnLCAzNjAsIDQ4MCksXG4gIC4uLmNvbmZpZ3VyZUJyZWFrcG9pbnQoJ3Bob25lJywgNDgwLCA3NjgpLFxuICAuLi5jb25maWd1cmVCcmVha3BvaW50KCd0YWJsZXQnLCA3NjgsIDk2MCksXG4gIC4uLmNvbmZpZ3VyZUJyZWFrcG9pbnQoJ2Rlc2t0b3AtcycsIDk2MCwgMTIwMCksXG4gIC4uLmNvbmZpZ3VyZUJyZWFrcG9pbnQoJ2Rlc2t0b3AnLCAxMjAwLCA5OTk5KSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJlYWtwb2ludHNDb25maWcge1xuICBicmVha3BvaW50czogUGFydGlhbDxPZHhBbmd1bGFyLkJyZWFrcG9pbnRzPjtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBBbmd1bGFyIGRlcGVuZGVuY3kgaW5qZWN0aW9uIHRva2VucyBmb3IgYWNjZXNzaW5nIGFuZCBjb25maWd1cmluZyBicmVha3BvaW50c1xuICogd2l0aGluIHRoZSBhcHBsaWNhdGlvbi4gVGhpcyBlbmFibGVzIGEgdHlwZS1zYWZlIGFuZCBtb2R1bGFyIHdheSB0byBtYW5hZ2UgcmVzcG9uc2l2ZVxuICogZGVzaWduIGJyZWFrcG9pbnRzIGFjcm9zcyB0aGUgYXBwLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gUHJvdmlkaW5nIGN1c3RvbSBicmVha3BvaW50cyBpbiBhbiBBbmd1bGFyIG1vZHVsZVxuICogaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqIGltcG9ydCB7IHByb3ZpZGVCcmVha3BvaW50c0NvbmZpZyB9IGZyb20gJ0BvZHgvYW5ndWxhci9icmVha3BvaW50cyc7XG4gKlxuICogQE5nTW9kdWxlKHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZUJyZWFrcG9pbnRzQ29uZmlnKHtcbiAqICAgICAgIGJyZWFrcG9pbnRzOiB7XG4gKiAgICAgICAgIC4uLmNvbmZpZ3VyZUJyZWFrcG9pbnQoJ2N1c3RvbS10YWJsZXQnLCA2NDAsIDEwMjQpLFxuICogICAgICAgfSxcbiAqICAgICB9KSxcbiAqICAgXSxcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQ3VzdG9tTW9kdWxlIHt9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHsgQnJlYWtwb2ludHNDb25maWcsIEJyZWFrcG9pbnRzRGVmYXVsdENvbmZpZywgaW5qZWN0QnJlYWtwb2ludHNDb25maWcsIHByb3ZpZGVCcmVha3BvaW50c0NvbmZpZyB9ID0gY3JlYXRlQ29uZmlnVG9rZW5zKFxuICAnQnJlYWtwb2ludHMnLFxuICAnQG9keC9hbmd1bGFyL2JyZWFrcG9pbnRzJyxcbiAge1xuICAgIGJyZWFrcG9pbnRzOiBERUZBVUxUX0JSRUFLUE9JTlRTLFxuICB9IGFzIEJyZWFrcG9pbnRzQ29uZmlnLFxuKTtcbiJdfQ==
@@ -3,15 +3,58 @@ import { inject, Injectable } from '@angular/core';
3
3
  import { distinctUntilChanged, map, of, shareReplay } from 'rxjs';
4
4
  import { injectBreakpointsConfig } from './breakpoints.config';
5
5
  import * as i0 from "@angular/core";
6
+ /**
7
+ * Service to observe and react to changes in viewport size based on predefined breakpoints.
8
+ * Utilizes Angular CDK's BreakpointObserver for listening to media query changes and integrates
9
+ * it with the application's custom breakpoints configuration.
10
+ *
11
+ * @Injectable({ providedIn: 'root' })
12
+ */
6
13
  export class BreakpointsService {
7
14
  constructor() {
8
15
  this.breakpointObserver = inject(BreakpointObserver);
9
16
  this.config = injectBreakpointsConfig();
10
17
  }
18
+ /**
19
+ * Observes the specified breakpoints and returns an Observable that emits true if any
20
+ * of the specified breakpoints match the current viewport size, and false otherwise.
21
+ *
22
+ * @param {BreakpointName[]} breakpoints - An array of breakpoints to observe.
23
+ * @returns {Observable<boolean>} - An Observable that emits true if the viewport matches the specified breakpoints.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * // Component that uses BreakpointsService to apply dynamic styles based on breakpoints
28
+ * @Component({
29
+ * selector: 'app-responsive-component',
30
+ * templateUrl: './responsive-component.component.html',
31
+ * })
32
+ * export class ResponsiveComponent {
33
+ * isMobile$: Observable<boolean>;
34
+ *
35
+ * constructor(private breakpointsService: BreakpointsService) {
36
+ * this.isMobile$ = this.breakpointsService.observe(['phone', 'tablet']);
37
+ * }
38
+ * }
39
+ * ```
40
+ */
11
41
  observe(breakpoints) {
12
42
  const mediaQueries = this.getMediaQueries(breakpoints);
13
43
  return this.createBreakpointObserver(mediaQueries);
14
44
  }
45
+ /**
46
+ * Checks if any of the specified breakpoints match the current viewport size.
47
+ *
48
+ * @param {BreakpointName[]} breakpoints - An array of breakpoints to check.
49
+ * @returns {boolean} - Returns true if the viewport matches the specified breakpoints, false otherwise.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * // Checking if the current viewport matches the 'desktop' breakpoint
54
+ * const isDesktop = this.breakpointsService.matches(['desktop']);
55
+ * console.log(`Is desktop view? ${isDesktop}`);
56
+ * ```
57
+ */
15
58
  matches(breakpoints) {
16
59
  const mediaQueries = this.getMediaQueries(breakpoints);
17
60
  return this.breakpointObserver.isMatched(mediaQueries);
@@ -31,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
31
74
  type: Injectable,
32
75
  args: [{ providedIn: 'root' }]
33
76
  }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9icmVha3BvaW50cy9zcmMvbGliL2JyZWFrcG9pbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUkvRCxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRW1CLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELFdBQU0sR0FBRyx1QkFBdUIsRUFBRSxDQUFDO0tBMkJyRDtJQXpCUSxPQUFPLENBQUMsV0FBNkI7UUFDMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV2RCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sT0FBTyxDQUFDLFdBQTZCO1FBQzFDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdkQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxlQUFlLENBQUMsZUFBaUM7UUFDdkQsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRU8sd0JBQXdCLENBQUMsWUFBc0I7UUFDckQsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUN2RCxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFDN0Isb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7K0dBNUJVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs7NEZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RCcmVha3BvaW50c0NvbmZpZyB9IGZyb20gJy4vYnJlYWtwb2ludHMuY29uZmlnJztcbmltcG9ydCB7IEJyZWFrcG9pbnROYW1lIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEJyZWFrcG9pbnRzU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYnJlYWtwb2ludE9ic2VydmVyID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0QnJlYWtwb2ludHNDb25maWcoKTtcblxuICBwdWJsaWMgb2JzZXJ2ZShicmVha3BvaW50czogQnJlYWtwb2ludE5hbWVbXSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IG1lZGlhUXVlcmllcyA9IHRoaXMuZ2V0TWVkaWFRdWVyaWVzKGJyZWFrcG9pbnRzKTtcblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUJyZWFrcG9pbnRPYnNlcnZlcihtZWRpYVF1ZXJpZXMpO1xuICB9XG5cbiAgcHVibGljIG1hdGNoZXMoYnJlYWtwb2ludHM6IEJyZWFrcG9pbnROYW1lW10pOiBib29sZWFuIHtcbiAgICBjb25zdCBtZWRpYVF1ZXJpZXMgPSB0aGlzLmdldE1lZGlhUXVlcmllcyhicmVha3BvaW50cyk7XG5cbiAgICByZXR1cm4gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKG1lZGlhUXVlcmllcyk7XG4gIH1cblxuICBwcml2YXRlIGdldE1lZGlhUXVlcmllcyhicmVha3BvaW50TmFtZXM6IEJyZWFrcG9pbnROYW1lW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGJyZWFrcG9pbnROYW1lcy5tYXAoKG5hbWUpID0+IHRoaXMuY29uZmlnLmJyZWFrcG9pbnRzW25hbWVdIGFzIHN0cmluZykuZmlsdGVyKEJvb2xlYW4pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVCcmVha3BvaW50T2JzZXJ2ZXIobWVkaWFRdWVyaWVzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmIChtZWRpYVF1ZXJpZXMubGVuZ3RoIDwgMSkgcmV0dXJuIG9mKGZhbHNlKTtcblxuICAgIHJldHVybiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKG1lZGlhUXVlcmllcykucGlwZShcbiAgICAgIG1hcCgoeyBtYXRjaGVzIH0pID0+IG1hdGNoZXMpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICAgKTtcbiAgfVxufVxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9icmVha3BvaW50cy9zcmMvbGliL2JyZWFrcG9pbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUcvRDs7Ozs7O0dBTUc7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRW1CLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELFdBQU0sR0FBRyx1QkFBdUIsRUFBRSxDQUFDO0tBK0RyRDtJQTdEQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXNCRztJQUNJLE9BQU8sQ0FBQyxXQUE2QjtRQUMxQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXZELE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxPQUFPLENBQUMsV0FBNkI7UUFDMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV2RCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGVBQWUsQ0FBQyxlQUFpQztRQUN2RCxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxZQUFzQjtRQUNyRCxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUM3QixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO0lBQ0osQ0FBQzsrR0FoRVUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGluamVjdEJyZWFrcG9pbnRzQ29uZmlnIH0gZnJvbSAnLi9icmVha3BvaW50cy5jb25maWcnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE5hbWUgfSBmcm9tICcuL21vZGVscyc7XG5cbi8qKlxuICogU2VydmljZSB0byBvYnNlcnZlIGFuZCByZWFjdCB0byBjaGFuZ2VzIGluIHZpZXdwb3J0IHNpemUgYmFzZWQgb24gcHJlZGVmaW5lZCBicmVha3BvaW50cy5cbiAqIFV0aWxpemVzIEFuZ3VsYXIgQ0RLJ3MgQnJlYWtwb2ludE9ic2VydmVyIGZvciBsaXN0ZW5pbmcgdG8gbWVkaWEgcXVlcnkgY2hhbmdlcyBhbmQgaW50ZWdyYXRlc1xuICogaXQgd2l0aCB0aGUgYXBwbGljYXRpb24ncyBjdXN0b20gYnJlYWtwb2ludHMgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEJyZWFrcG9pbnRzU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYnJlYWtwb2ludE9ic2VydmVyID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0QnJlYWtwb2ludHNDb25maWcoKTtcblxuICAvKipcbiAgICogT2JzZXJ2ZXMgdGhlIHNwZWNpZmllZCBicmVha3BvaW50cyBhbmQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdHJ1ZSBpZiBhbnlcbiAgICogb2YgdGhlIHNwZWNpZmllZCBicmVha3BvaW50cyBtYXRjaCB0aGUgY3VycmVudCB2aWV3cG9ydCBzaXplLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAcGFyYW0ge0JyZWFrcG9pbnROYW1lW119IGJyZWFrcG9pbnRzIC0gQW4gYXJyYXkgb2YgYnJlYWtwb2ludHMgdG8gb2JzZXJ2ZS5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8Ym9vbGVhbj59IC0gQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRydWUgaWYgdGhlIHZpZXdwb3J0IG1hdGNoZXMgdGhlIHNwZWNpZmllZCBicmVha3BvaW50cy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogLy8gQ29tcG9uZW50IHRoYXQgdXNlcyBCcmVha3BvaW50c1NlcnZpY2UgdG8gYXBwbHkgZHluYW1pYyBzdHlsZXMgYmFzZWQgb24gYnJlYWtwb2ludHNcbiAgICogQENvbXBvbmVudCh7XG4gICAqICAgc2VsZWN0b3I6ICdhcHAtcmVzcG9uc2l2ZS1jb21wb25lbnQnLFxuICAgKiAgIHRlbXBsYXRlVXJsOiAnLi9yZXNwb25zaXZlLWNvbXBvbmVudC5jb21wb25lbnQuaHRtbCcsXG4gICAqIH0pXG4gICAqIGV4cG9ydCBjbGFzcyBSZXNwb25zaXZlQ29tcG9uZW50IHtcbiAgICogICBpc01vYmlsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAqXG4gICAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBicmVha3BvaW50c1NlcnZpY2U6IEJyZWFrcG9pbnRzU2VydmljZSkge1xuICAgKiAgICAgdGhpcy5pc01vYmlsZSQgPSB0aGlzLmJyZWFrcG9pbnRzU2VydmljZS5vYnNlcnZlKFsncGhvbmUnLCAndGFibGV0J10pO1xuICAgKiAgIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBvYnNlcnZlKGJyZWFrcG9pbnRzOiBCcmVha3BvaW50TmFtZVtdKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgbWVkaWFRdWVyaWVzID0gdGhpcy5nZXRNZWRpYVF1ZXJpZXMoYnJlYWtwb2ludHMpO1xuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWtwb2ludE9ic2VydmVyKG1lZGlhUXVlcmllcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGFueSBvZiB0aGUgc3BlY2lmaWVkIGJyZWFrcG9pbnRzIG1hdGNoIHRoZSBjdXJyZW50IHZpZXdwb3J0IHNpemUuXG4gICAqXG4gICAqIEBwYXJhbSB7QnJlYWtwb2ludE5hbWVbXX0gYnJlYWtwb2ludHMgLSBBbiBhcnJheSBvZiBicmVha3BvaW50cyB0byBjaGVjay5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSB2aWV3cG9ydCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgYnJlYWtwb2ludHMsIGZhbHNlIG90aGVyd2lzZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogLy8gQ2hlY2tpbmcgaWYgdGhlIGN1cnJlbnQgdmlld3BvcnQgbWF0Y2hlcyB0aGUgJ2Rlc2t0b3AnIGJyZWFrcG9pbnRcbiAgICogY29uc3QgaXNEZXNrdG9wID0gdGhpcy5icmVha3BvaW50c1NlcnZpY2UubWF0Y2hlcyhbJ2Rlc2t0b3AnXSk7XG4gICAqIGNvbnNvbGUubG9nKGBJcyBkZXNrdG9wIHZpZXc/ICR7aXNEZXNrdG9wfWApO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBtYXRjaGVzKGJyZWFrcG9pbnRzOiBCcmVha3BvaW50TmFtZVtdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbWVkaWFRdWVyaWVzID0gdGhpcy5nZXRNZWRpYVF1ZXJpZXMoYnJlYWtwb2ludHMpO1xuXG4gICAgcmV0dXJuIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChtZWRpYVF1ZXJpZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNZWRpYVF1ZXJpZXMoYnJlYWtwb2ludE5hbWVzOiBCcmVha3BvaW50TmFtZVtdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBicmVha3BvaW50TmFtZXMubWFwKChuYW1lKSA9PiB0aGlzLmNvbmZpZy5icmVha3BvaW50c1tuYW1lXSBhcyBzdHJpbmcpLmZpbHRlcihCb29sZWFuKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQnJlYWtwb2ludE9ic2VydmVyKG1lZGlhUXVlcmllczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAobWVkaWFRdWVyaWVzLmxlbmd0aCA8IDEpIHJldHVybiBvZihmYWxzZSk7XG5cbiAgICByZXR1cm4gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShtZWRpYVF1ZXJpZXMpLnBpcGUoXG4gICAgICBtYXAoKHsgbWF0Y2hlcyB9KSA9PiBtYXRjaGVzKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -3,6 +3,31 @@ import { coerceArray, untilDestroyed } from '@odx/angular/utils';
3
3
  import { BehaviorSubject, switchMap, tap } from 'rxjs';
4
4
  import { BreakpointsService } from '../breakpoints.service';
5
5
  import * as i0 from "@angular/core";
6
+ /**
7
+ * A structural directive that conditionally includes an Angular template based on whether the viewport matches
8
+ * specified breakpoints. It leverages the BreakpointsService to observe changes in viewport size and apply
9
+ * the appropriate template.
10
+ *
11
+ * @Directive
12
+ * @param {BreakpointsService} breakpointsService - Injects BreakpointsService to observe breakpoint changes.
13
+ * @param {TemplateRef} template - Injects the Angular template to render when breakpoints match.
14
+ * @param {ViewContainerRef} viewContainer - Injects the container where the template will be rendered.
15
+ *
16
+ * @example
17
+ * ```html
18
+ * // Usage in a component template to conditionally display content based on breakpoints
19
+ * // Assume 'mobile' and 'tablet' are defined breakpoints
20
+ * <ng-template [odxMatchBreakpoints]="['mobile', 'tablet']">
21
+ * Content to display on mobile and tablet sizes.
22
+ * </ng-template>
23
+ * <ng-template [odxMatchBreakpoints]="['desktop']" [odxMatchBreakpointsElse]="elseTemplate">
24
+ * Content to display on desktop size.
25
+ * </ng-template>
26
+ * <ng-template #elseTemplate>
27
+ * Content to display when not on desktop size.
28
+ * </ng-template>
29
+ * ```
30
+ */
6
31
  export class MatchBreakpointsDirective {
7
32
  constructor() {
8
33
  this.breakpoints$$ = new BehaviorSubject([]);
@@ -10,9 +35,20 @@ export class MatchBreakpointsDirective {
10
35
  this.takeUntilDestroyed = untilDestroyed();
11
36
  this.template = inject(TemplateRef);
12
37
  this.viewContainer = inject(ViewContainerRef);
38
+ /**
39
+ * Optionally specifies a template to render when the viewport does not match the specified breakpoints.
40
+ *
41
+ * @param {TemplateRef<unknown>} elseTemplate - The template to render when the viewport does not match the breakpoints.
42
+ */
13
43
  // eslint-disable-next-line @angular-eslint/no-input-rename
14
44
  this.elseTemplate = null;
15
45
  }
46
+ /**
47
+ * Sets the breakpoints to observe. The directive's content is displayed if the current viewport matches
48
+ * any of the specified breakpoints.
49
+ *
50
+ * @param {BreakpointName | BreakpointName[]} value - The breakpoint(s) to match against the current viewport size.
51
+ */
16
52
  set breakpoints(value) {
17
53
  this.breakpoints$$.next(coerceArray(value ?? []));
18
54
  }
@@ -45,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
45
81
  type: Input,
46
82
  args: ['odxMatchBreakpointsElse']
47
83
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtYnJlYWtwb2ludHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2JyZWFrcG9pbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9tYXRjaC1icmVha3BvaW50cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPNUQsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQUttQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFtQixFQUFFLENBQUMsQ0FBQztRQUMxRCx1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCx1QkFBa0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFPMUQsMkRBQTJEO1FBRXBELGlCQUFZLEdBQWlDLElBQUksQ0FBQztLQW9CMUQ7SUEzQkMsSUFDVyxXQUFXLENBQUMsS0FBMkQ7UUFDaEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFNTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGFBQWE7YUFDZixJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ3hFLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFDNUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQzFCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxrQkFBMkI7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN4RSxJQUFJLFFBQVEsRUFBRTtZQUNaLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEUsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzsrR0FqQ1UseUJBQXlCO21HQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxrQ0FBa0M7aUJBQzdDOzhCQVNZLFdBQVc7c0JBRHJCLEtBQUs7dUJBQUMscUJBQXFCO2dCQU9yQixZQUFZO3NCQURsQixLQUFLO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJyZWFrcG9pbnRzU2VydmljZSB9IGZyb20gJy4uL2JyZWFrcG9pbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE5hbWUgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtvZHhNYXRjaEJyZWFrcG9pbnRzXScsXG59KVxuZXhwb3J0IGNsYXNzIE1hdGNoQnJlYWtwb2ludHNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGJyZWFrcG9pbnRzJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFrcG9pbnROYW1lW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBicmVha3BvaW50c1NlcnZpY2UgPSBpbmplY3QoQnJlYWtwb2ludHNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gIEBJbnB1dCgnb2R4TWF0Y2hCcmVha3BvaW50cycpXG4gIHB1YmxpYyBzZXQgYnJlYWtwb2ludHModmFsdWU6IEJyZWFrcG9pbnROYW1lIHwgQnJlYWtwb2ludE5hbWVbXSB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmJyZWFrcG9pbnRzJCQubmV4dChjb2VyY2VBcnJheSh2YWx1ZSA/PyBbXSkpO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdvZHhNYXRjaEJyZWFrcG9pbnRzRWxzZScpXG4gIHB1YmxpYyBlbHNlVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJyZWFrcG9pbnRzJCRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGJyZWFrcG9pbnRzKSA9PiB0aGlzLmJyZWFrcG9pbnRzU2VydmljZS5vYnNlcnZlKGJyZWFrcG9pbnRzKSksXG4gICAgICAgIHRhcCgobWF0Y2hlc0JyZWFrcG9pbnRzKSA9PiB0aGlzLnJlbmRlcihtYXRjaGVzQnJlYWtwb2ludHMpKSxcbiAgICAgICAgdGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyKG1hdGNoZXNCcmVha3BvaW50czogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgIGNvbnN0IHRlbXBsYXRlID0gbWF0Y2hlc0JyZWFrcG9pbnRzID8gdGhpcy50ZW1wbGF0ZSA6IHRoaXMuZWxzZVRlbXBsYXRlO1xuICAgIGlmICh0ZW1wbGF0ZSkge1xuICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGVtcGxhdGUpO1xuICAgICAgdmlld1JlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtYnJlYWtwb2ludHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2JyZWFrcG9pbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9tYXRjaC1icmVha3BvaW50cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHNUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUtILE1BQU0sT0FBTyx5QkFBeUI7SUFKdEM7UUFLbUIsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBbUIsRUFBRSxDQUFDLENBQUM7UUFDMUQsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDaEQsdUJBQWtCLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBYTFEOzs7O1dBSUc7UUFDSCwyREFBMkQ7UUFFcEQsaUJBQVksR0FBaUMsSUFBSSxDQUFDO0tBb0IxRDtJQXRDQzs7Ozs7T0FLRztJQUNILElBQ1csV0FBVyxDQUFDLEtBQTJEO1FBQ2hGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBV00sUUFBUTtRQUNiLElBQUksQ0FBQyxhQUFhO2FBQ2YsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUN4RSxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQzVELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUMxQjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyxNQUFNLENBQUMsa0JBQTJCO1FBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDeEUsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7K0dBNUNVLHlCQUF5QjttR0FBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsa0NBQWtDO2lCQUM3Qzs4QkFlWSxXQUFXO3NCQURyQixLQUFLO3VCQUFDLHFCQUFxQjtnQkFZckIsWUFBWTtzQkFEbEIsS0FBSzt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUFycmF5LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCcmVha3BvaW50c1NlcnZpY2UgfSBmcm9tICcuLi9icmVha3BvaW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IEJyZWFrcG9pbnROYW1lIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuLyoqXG4gKiBBIHN0cnVjdHVyYWwgZGlyZWN0aXZlIHRoYXQgY29uZGl0aW9uYWxseSBpbmNsdWRlcyBhbiBBbmd1bGFyIHRlbXBsYXRlIGJhc2VkIG9uIHdoZXRoZXIgdGhlIHZpZXdwb3J0IG1hdGNoZXNcbiAqIHNwZWNpZmllZCBicmVha3BvaW50cy4gSXQgbGV2ZXJhZ2VzIHRoZSBCcmVha3BvaW50c1NlcnZpY2UgdG8gb2JzZXJ2ZSBjaGFuZ2VzIGluIHZpZXdwb3J0IHNpemUgYW5kIGFwcGx5XG4gKiB0aGUgYXBwcm9wcmlhdGUgdGVtcGxhdGUuXG4gKlxuICogQERpcmVjdGl2ZVxuICogQHBhcmFtIHtCcmVha3BvaW50c1NlcnZpY2V9IGJyZWFrcG9pbnRzU2VydmljZSAtIEluamVjdHMgQnJlYWtwb2ludHNTZXJ2aWNlIHRvIG9ic2VydmUgYnJlYWtwb2ludCBjaGFuZ2VzLlxuICogQHBhcmFtIHtUZW1wbGF0ZVJlZn0gdGVtcGxhdGUgLSBJbmplY3RzIHRoZSBBbmd1bGFyIHRlbXBsYXRlIHRvIHJlbmRlciB3aGVuIGJyZWFrcG9pbnRzIG1hdGNoLlxuICogQHBhcmFtIHtWaWV3Q29udGFpbmVyUmVmfSB2aWV3Q29udGFpbmVyIC0gSW5qZWN0cyB0aGUgY29udGFpbmVyIHdoZXJlIHRoZSB0ZW1wbGF0ZSB3aWxsIGJlIHJlbmRlcmVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiAvLyBVc2FnZSBpbiBhIGNvbXBvbmVudCB0ZW1wbGF0ZSB0byBjb25kaXRpb25hbGx5IGRpc3BsYXkgY29udGVudCBiYXNlZCBvbiBicmVha3BvaW50c1xuICogLy8gQXNzdW1lICdtb2JpbGUnIGFuZCAndGFibGV0JyBhcmUgZGVmaW5lZCBicmVha3BvaW50c1xuICogPG5nLXRlbXBsYXRlIFtvZHhNYXRjaEJyZWFrcG9pbnRzXT1cIlsnbW9iaWxlJywgJ3RhYmxldCddXCI+XG4gKiAgIENvbnRlbnQgdG8gZGlzcGxheSBvbiBtb2JpbGUgYW5kIHRhYmxldCBzaXplcy5cbiAqIDwvbmctdGVtcGxhdGU+XG4gKiA8bmctdGVtcGxhdGUgW29keE1hdGNoQnJlYWtwb2ludHNdPVwiWydkZXNrdG9wJ11cIiBbb2R4TWF0Y2hCcmVha3BvaW50c0Vsc2VdPVwiZWxzZVRlbXBsYXRlXCI+XG4gKiAgIENvbnRlbnQgdG8gZGlzcGxheSBvbiBkZXNrdG9wIHNpemUuXG4gKiA8L25nLXRlbXBsYXRlPlxuICogPG5nLXRlbXBsYXRlICNlbHNlVGVtcGxhdGU+XG4gKiAgIENvbnRlbnQgdG8gZGlzcGxheSB3aGVuIG5vdCBvbiBkZXNrdG9wIHNpemUuXG4gKiA8L25nLXRlbXBsYXRlPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW29keE1hdGNoQnJlYWtwb2ludHNdJyxcbn0pXG5leHBvcnQgY2xhc3MgTWF0Y2hCcmVha3BvaW50c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYnJlYWtwb2ludHMkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWtwb2ludE5hbWVbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IGJyZWFrcG9pbnRzU2VydmljZSA9IGluamVjdChCcmVha3BvaW50c1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGUgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXIgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGJyZWFrcG9pbnRzIHRvIG9ic2VydmUuIFRoZSBkaXJlY3RpdmUncyBjb250ZW50IGlzIGRpc3BsYXllZCBpZiB0aGUgY3VycmVudCB2aWV3cG9ydCBtYXRjaGVzXG4gICAqIGFueSBvZiB0aGUgc3BlY2lmaWVkIGJyZWFrcG9pbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge0JyZWFrcG9pbnROYW1lIHwgQnJlYWtwb2ludE5hbWVbXX0gdmFsdWUgLSBUaGUgYnJlYWtwb2ludChzKSB0byBtYXRjaCBhZ2FpbnN0IHRoZSBjdXJyZW50IHZpZXdwb3J0IHNpemUuXG4gICAqL1xuICBASW5wdXQoJ29keE1hdGNoQnJlYWtwb2ludHMnKVxuICBwdWJsaWMgc2V0IGJyZWFrcG9pbnRzKHZhbHVlOiBCcmVha3BvaW50TmFtZSB8IEJyZWFrcG9pbnROYW1lW10gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5icmVha3BvaW50cyQkLm5leHQoY29lcmNlQXJyYXkodmFsdWUgPz8gW10pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHRpb25hbGx5IHNwZWNpZmllcyBhIHRlbXBsYXRlIHRvIHJlbmRlciB3aGVuIHRoZSB2aWV3cG9ydCBkb2VzIG5vdCBtYXRjaCB0aGUgc3BlY2lmaWVkIGJyZWFrcG9pbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge1RlbXBsYXRlUmVmPHVua25vd24+fSBlbHNlVGVtcGxhdGUgLSBUaGUgdGVtcGxhdGUgdG8gcmVuZGVyIHdoZW4gdGhlIHZpZXdwb3J0IGRvZXMgbm90IG1hdGNoIHRoZSBicmVha3BvaW50cy5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnb2R4TWF0Y2hCcmVha3BvaW50c0Vsc2UnKVxuICBwdWJsaWMgZWxzZVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5icmVha3BvaW50cyQkXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChicmVha3BvaW50cykgPT4gdGhpcy5icmVha3BvaW50c1NlcnZpY2Uub2JzZXJ2ZShicmVha3BvaW50cykpLFxuICAgICAgICB0YXAoKG1hdGNoZXNCcmVha3BvaW50cykgPT4gdGhpcy5yZW5kZXIobWF0Y2hlc0JyZWFrcG9pbnRzKSksXG4gICAgICAgIHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcihtYXRjaGVzQnJlYWtwb2ludHM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IG1hdGNoZXNCcmVha3BvaW50cyA/IHRoaXMudGVtcGxhdGUgOiB0aGlzLmVsc2VUZW1wbGF0ZTtcbiAgICBpZiAodGVtcGxhdGUpIHtcbiAgICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlKTtcbiAgICAgIHZpZXdSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,3 +1,22 @@
1
+ /**
2
+ * Generates a configuration object containing CSS media query strings for a named breakpoint.
3
+ * The function creates media queries for three scenarios: below (`<`), exactly (`=`), and above (`>`) the specified breakpoint.
4
+ *
5
+ * @template T - The string literal type representing the name of the breakpoint.
6
+ * @param {T} name - The name of the breakpoint (e.g., 'md' for medium).
7
+ * @param {number} min - The minimum width (inclusive) where the breakpoint starts.
8
+ * @param {number} max - The maximum width (exclusive) where the breakpoint ends.
9
+ * @returns {BreakpointConfig<T>} An object containing media query strings for targeting screen sizes relative to the breakpoint.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * // Define a medium (md) breakpoint
14
+ * const mdBreakpoint = configureBreakpoint('md', 768, 1024);
15
+ * console.log(mdBreakpoint['<md']); // Outputs: "(max-width: 767px)"
16
+ * console.log(mdBreakpoint['=md']); // Outputs: "(min-width: 768px) and (max-width: 1023px)"
17
+ * console.log(mdBreakpoint['>md']); // Outputs: "(min-width: 768px)"
18
+ * ```
19
+ */
1
20
  export function configureBreakpoint(name, min, max) {
2
21
  return {
3
22
  [`<${name}`]: `(max-width: ${min - 1}px)`,
@@ -5,4 +24,4 @@ export function configureBreakpoint(name, min, max) {
5
24
  [`>${name}`]: `(min-width: ${min}px)`,
6
25
  };
7
26
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLWJyZWFrcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvYnJlYWtwb2ludHMvc3JjL2xpYi9oZWxwZXJzL2NvbmZpZ3VyZS1icmVha3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBbUIsSUFBTyxFQUFFLEdBQVcsRUFBRSxHQUFXO0lBQ3JGLE9BQU87UUFDTCxDQUFDLElBQUksSUFBSSxFQUFXLENBQUMsRUFBRSxlQUFlLEdBQUcsR0FBRyxDQUFDLEtBQUs7UUFDbEQsQ0FBQyxJQUFJLElBQUksRUFBVyxDQUFDLEVBQUUsZUFBZSxHQUFHLHVCQUF1QixHQUFHLEdBQUcsQ0FBQyxLQUFLO1FBQzVFLENBQUMsSUFBSSxJQUFJLEVBQVcsQ0FBQyxFQUFFLGVBQWUsR0FBRyxLQUFLO0tBQ3hCLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgQnJlYWtwb2ludE9wZXJhdG9ycyA9ICc8JyB8ICc9JyB8ICc+JztcbnR5cGUgQnJlYWtwb2ludENvbmZpZzxUIGV4dGVuZHMgc3RyaW5nPiA9IFJlY29yZDxgJHtCcmVha3BvaW50T3BlcmF0b3JzfSR7VH1gLCBzdHJpbmc+O1xuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlQnJlYWtwb2ludDxUIGV4dGVuZHMgc3RyaW5nPihuYW1lOiBULCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBCcmVha3BvaW50Q29uZmlnPFQ+IHtcbiAgcmV0dXJuIHtcbiAgICBbYDwke25hbWV9YCBhcyBjb25zdF06IGAobWF4LXdpZHRoOiAke21pbiAtIDF9cHgpYCxcbiAgICBbYD0ke25hbWV9YCBhcyBjb25zdF06IGAobWluLXdpZHRoOiAke21pbn1weCkgYW5kIChtYXgtd2lkdGg6ICR7bWF4IC0gMX1weClgLFxuICAgIFtgPiR7bmFtZX1gIGFzIGNvbnN0XTogYChtaW4td2lkdGg6ICR7bWlufXB4KWAsXG4gIH0gYXMgQnJlYWtwb2ludENvbmZpZzxUPjtcbn1cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLWJyZWFrcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvYnJlYWtwb2ludHMvc3JjL2xpYi9oZWxwZXJzL2NvbmZpZ3VyZS1icmVha3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQW1CLElBQU8sRUFBRSxHQUFXLEVBQUUsR0FBVztJQUNyRixPQUFPO1FBQ0wsQ0FBQyxJQUFJLElBQUksRUFBVyxDQUFDLEVBQUUsZUFBZSxHQUFHLEdBQUcsQ0FBQyxLQUFLO1FBQ2xELENBQUMsSUFBSSxJQUFJLEVBQVcsQ0FBQyxFQUFFLGVBQWUsR0FBRyx1QkFBdUIsR0FBRyxHQUFHLENBQUMsS0FBSztRQUM1RSxDQUFDLElBQUksSUFBSSxFQUFXLENBQUMsRUFBRSxlQUFlLEdBQUcsS0FBSztLQUN4QixDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIEJyZWFrcG9pbnRPcGVyYXRvcnMgPSAnPCcgfCAnPScgfCAnPic7XG50eXBlIEJyZWFrcG9pbnRDb25maWc8VCBleHRlbmRzIHN0cmluZz4gPSBSZWNvcmQ8YCR7QnJlYWtwb2ludE9wZXJhdG9yc30ke1R9YCwgc3RyaW5nPjtcblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBjb25maWd1cmF0aW9uIG9iamVjdCBjb250YWluaW5nIENTUyBtZWRpYSBxdWVyeSBzdHJpbmdzIGZvciBhIG5hbWVkIGJyZWFrcG9pbnQuXG4gKiBUaGUgZnVuY3Rpb24gY3JlYXRlcyBtZWRpYSBxdWVyaWVzIGZvciB0aHJlZSBzY2VuYXJpb3M6IGJlbG93IChgPGApLCBleGFjdGx5IChgPWApLCBhbmQgYWJvdmUgKGA+YCkgdGhlIHNwZWNpZmllZCBicmVha3BvaW50LlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHN0cmluZyBsaXRlcmFsIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50LlxuICogQHBhcmFtIHtUfSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgKGUuZy4sICdtZCcgZm9yIG1lZGl1bSkuXG4gKiBAcGFyYW0ge251bWJlcn0gbWluIC0gVGhlIG1pbmltdW0gd2lkdGggKGluY2x1c2l2ZSkgd2hlcmUgdGhlIGJyZWFrcG9pbnQgc3RhcnRzLlxuICogQHBhcmFtIHtudW1iZXJ9IG1heCAtIFRoZSBtYXhpbXVtIHdpZHRoIChleGNsdXNpdmUpIHdoZXJlIHRoZSBicmVha3BvaW50IGVuZHMuXG4gKiBAcmV0dXJucyB7QnJlYWtwb2ludENvbmZpZzxUPn0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgbWVkaWEgcXVlcnkgc3RyaW5ncyBmb3IgdGFyZ2V0aW5nIHNjcmVlbiBzaXplcyByZWxhdGl2ZSB0byB0aGUgYnJlYWtwb2ludC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIERlZmluZSBhIG1lZGl1bSAobWQpIGJyZWFrcG9pbnRcbiAqIGNvbnN0IG1kQnJlYWtwb2ludCA9IGNvbmZpZ3VyZUJyZWFrcG9pbnQoJ21kJywgNzY4LCAxMDI0KTtcbiAqIGNvbnNvbGUubG9nKG1kQnJlYWtwb2ludFsnPG1kJ10pOyAvLyBPdXRwdXRzOiBcIihtYXgtd2lkdGg6IDc2N3B4KVwiXG4gKiBjb25zb2xlLmxvZyhtZEJyZWFrcG9pbnRbJz1tZCddKTsgLy8gT3V0cHV0czogXCIobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweClcIlxuICogY29uc29sZS5sb2cobWRCcmVha3BvaW50Wyc+bWQnXSk7IC8vIE91dHB1dHM6IFwiKG1pbi13aWR0aDogNzY4cHgpXCJcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlQnJlYWtwb2ludDxUIGV4dGVuZHMgc3RyaW5nPihuYW1lOiBULCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBCcmVha3BvaW50Q29uZmlnPFQ+IHtcbiAgcmV0dXJuIHtcbiAgICBbYDwke25hbWV9YCBhcyBjb25zdF06IGAobWF4LXdpZHRoOiAke21pbiAtIDF9cHgpYCxcbiAgICBbYD0ke25hbWV9YCBhcyBjb25zdF06IGAobWluLXdpZHRoOiAke21pbn1weCkgYW5kIChtYXgtd2lkdGg6ICR7bWF4IC0gMX1weClgLFxuICAgIFtgPiR7bmFtZX1gIGFzIGNvbnN0XTogYChtaW4td2lkdGg6ICR7bWlufXB4KWAsXG4gIH0gYXMgQnJlYWtwb2ludENvbmZpZzxUPjtcbn1cbiJdfQ==
@@ -5,10 +5,42 @@ import { CSSComponent } from '@odx/angular/internal';
5
5
  import { injectElement } from '@odx/angular/utils';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@odx/angular";
8
+ /**
9
+ * Directive that makes an element interactive, responding to click, Enter key, and Space key events.
10
+ * It automatically handles the disabled state through `DisabledController`, inhibiting interactions when disabled.
11
+ * This directive can be useful for creating custom buttons or interactive elements that are not natively interactive,
12
+ * such as divs or custom components.
13
+ *
14
+ * @Directive
15
+ * @CSSComponent cdk-interactive - A CSS Component class that can be targeted for styling interactive elements.
16
+ * @selector '[odxCdkInteractive]' - Applies this directive to any element with the 'odxCdkInteractive' attribute.
17
+ * @hostDirectives {WithDisabledState, WithTabIndex} - Applies disabled state and tab index handling.
18
+ * @host role='button' - Assigns a role of 'button' to the host element for accessibility.
19
+ *
20
+ * @example
21
+ * Applying the directive to a div element to make it interactive:
22
+ * ```html
23
+ * <div odxCdkInteractive (odxCdkInteractive)="onInteract($event)">
24
+ * Click or press Enter/Space to interact
25
+ * </div>
26
+ * ```
27
+ *
28
+ * @example
29
+ * Using the directive on a custom Angular component
30
+ * ```html
31
+ * <app-custom-button odxCdkInteractive (odxCdkInteractive)="onCustomButtonInteract($event)">
32
+ * </app-custom-button>
33
+ * ```
34
+ */
8
35
  export let InteractiveDirective = class InteractiveDirective {
9
36
  constructor() {
10
37
  this.disabledController = DisabledController.inject();
11
38
  this.element = injectElement();
39
+ /**
40
+ * Emits an event when the element is interacted with via click, Enter key, or Space key.
41
+ *
42
+ * @emits {MouseEvent | KeyboardEvent} - The event that triggered the interaction.
43
+ */
12
44
  this.interact = new EventEmitter();
13
45
  }
14
46
  handleEvents(event) {
@@ -45,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
45
77
  type: HostListener,
46
78
  args: ['keyup.space', ['$event']]
47
79
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9hMTF5L3NyYy9saWIvZGlyZWN0aXZlcy9pbnRlcmFjdGl2ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFXNUMsV0FBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFBMUI7UUFDWSx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVsRCxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFHbkMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUE4QixDQUFDO0tBU2xFO0lBSlcsWUFBWSxDQUFDLEtBQWlDO1FBQ3RELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVE7WUFBRSxPQUFPO1FBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7K0dBZFUsb0JBQW9CO21HQUFwQixvQkFBb0I7O0FBQXBCLG9CQUFvQjtJQVRoQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7R0FTbkIsb0JBQW9CLENBZWhDOzRGQWZZLG9CQUFvQjtrQkFSaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsY0FBYyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDO29CQUNqRCxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLFFBQVE7cUJBQ2Y7aUJBQ0Y7OEJBT1EsUUFBUTtzQkFEZCxNQUFNO3VCQUFDLG1CQUFtQjtnQkFNakIsWUFBWTtzQkFIckIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUNoQyxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3RDLFlBQVk7dUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNhYmxlZENvbnRyb2xsZXIsIFdpdGhEaXNhYmxlZFN0YXRlLCBXaXRoVGFiSW5kZXggfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuXG5AQ1NTQ29tcG9uZW50KCdjZGstaW50ZXJhY3RpdmUnKVxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW29keENka0ludGVyYWN0aXZlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3REaXJlY3RpdmVzOiBbV2l0aERpc2FibGVkU3RhdGUsIFdpdGhUYWJJbmRleF0sXG4gIGhvc3Q6IHtcbiAgICByb2xlOiAnYnV0dG9uJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJhY3RpdmVEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IGRpc2FibGVkQ29udHJvbGxlciA9IERpc2FibGVkQ29udHJvbGxlci5pbmplY3QoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBAT3V0cHV0KCdvZHhDZGtJbnRlcmFjdGl2ZScpXG4gIHB1YmxpYyBpbnRlcmFjdCA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXl1cC5lbnRlcicsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwLnNwYWNlJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIGhhbmRsZUV2ZW50cyhldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZENvbnRyb2xsZXI/LmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy5pbnRlcmFjdC5uZXh0KGV2ZW50KTtcbiAgfVxufVxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9hMTF5L3NyYy9saWIvZGlyZWN0aXZlcy9pbnRlcmFjdGl2ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBVUksV0FBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFBMUI7UUFDWSx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVsRCxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFFMUM7Ozs7V0FJRztRQUVJLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBOEIsQ0FBQztLQVNsRTtJQUpXLFlBQVksQ0FBQyxLQUFpQztRQUN0RCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRO1lBQUUsT0FBTztRQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQW5CVSxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7QUFBcEIsb0JBQW9CO0lBVGhDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztHQVNuQixvQkFBb0IsQ0FvQmhDOzRGQXBCWSxvQkFBb0I7a0JBUmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGNBQWMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLFlBQVksQ0FBQztvQkFDakQsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxRQUFRO3FCQUNmO2lCQUNGOzhCQVlRLFFBQVE7c0JBRGQsTUFBTTt1QkFBQyxtQkFBbUI7Z0JBTWpCLFlBQVk7c0JBSHJCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDaEMsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN0QyxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzYWJsZWRDb250cm9sbGVyLCBXaXRoRGlzYWJsZWRTdGF0ZSwgV2l0aFRhYkluZGV4IH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCBtYWtlcyBhbiBlbGVtZW50IGludGVyYWN0aXZlLCByZXNwb25kaW5nIHRvIGNsaWNrLCBFbnRlciBrZXksIGFuZCBTcGFjZSBrZXkgZXZlbnRzLlxuICogSXQgYXV0b21hdGljYWxseSBoYW5kbGVzIHRoZSBkaXNhYmxlZCBzdGF0ZSB0aHJvdWdoIGBEaXNhYmxlZENvbnRyb2xsZXJgLCBpbmhpYml0aW5nIGludGVyYWN0aW9ucyB3aGVuIGRpc2FibGVkLlxuICogVGhpcyBkaXJlY3RpdmUgY2FuIGJlIHVzZWZ1bCBmb3IgY3JlYXRpbmcgY3VzdG9tIGJ1dHRvbnMgb3IgaW50ZXJhY3RpdmUgZWxlbWVudHMgdGhhdCBhcmUgbm90IG5hdGl2ZWx5IGludGVyYWN0aXZlLFxuICogc3VjaCBhcyBkaXZzIG9yIGN1c3RvbSBjb21wb25lbnRzLlxuICpcbiAqIEBEaXJlY3RpdmVcbiAqIEBDU1NDb21wb25lbnQgY2RrLWludGVyYWN0aXZlIC0gQSBDU1MgQ29tcG9uZW50IGNsYXNzIHRoYXQgY2FuIGJlIHRhcmdldGVkIGZvciBzdHlsaW5nIGludGVyYWN0aXZlIGVsZW1lbnRzLlxuICogQHNlbGVjdG9yICdbb2R4Q2RrSW50ZXJhY3RpdmVdJyAtIEFwcGxpZXMgdGhpcyBkaXJlY3RpdmUgdG8gYW55IGVsZW1lbnQgd2l0aCB0aGUgJ29keENka0ludGVyYWN0aXZlJyBhdHRyaWJ1dGUuXG4gKiBAaG9zdERpcmVjdGl2ZXMge1dpdGhEaXNhYmxlZFN0YXRlLCBXaXRoVGFiSW5kZXh9IC0gQXBwbGllcyBkaXNhYmxlZCBzdGF0ZSBhbmQgdGFiIGluZGV4IGhhbmRsaW5nLlxuICogQGhvc3Qgcm9sZT0nYnV0dG9uJyAtIEFzc2lnbnMgYSByb2xlIG9mICdidXR0b24nIHRvIHRoZSBob3N0IGVsZW1lbnQgZm9yIGFjY2Vzc2liaWxpdHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIEFwcGx5aW5nIHRoZSBkaXJlY3RpdmUgdG8gYSBkaXYgZWxlbWVudCB0byBtYWtlIGl0IGludGVyYWN0aXZlOlxuICogYGBgaHRtbFxuICogPGRpdiBvZHhDZGtJbnRlcmFjdGl2ZSAob2R4Q2RrSW50ZXJhY3RpdmUpPVwib25JbnRlcmFjdCgkZXZlbnQpXCI+XG4gKiAgIENsaWNrIG9yIHByZXNzIEVudGVyL1NwYWNlIHRvIGludGVyYWN0XG4gKiA8L2Rpdj5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlXG4gKiBVc2luZyB0aGUgZGlyZWN0aXZlIG9uIGEgY3VzdG9tIEFuZ3VsYXIgY29tcG9uZW50XG4gKiBgYGBodG1sXG4gKiA8YXBwLWN1c3RvbS1idXR0b24gb2R4Q2RrSW50ZXJhY3RpdmUgKG9keENka0ludGVyYWN0aXZlKT1cIm9uQ3VzdG9tQnV0dG9uSW50ZXJhY3QoJGV2ZW50KVwiPlxuICogPC9hcHAtY3VzdG9tLWJ1dHRvbj5cbiAqIGBgYFxuICovXG5AQ1NTQ29tcG9uZW50KCdjZGstaW50ZXJhY3RpdmUnKVxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW29keENka0ludGVyYWN0aXZlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3REaXJlY3RpdmVzOiBbV2l0aERpc2FibGVkU3RhdGUsIFdpdGhUYWJJbmRleF0sXG4gIGhvc3Q6IHtcbiAgICByb2xlOiAnYnV0dG9uJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJhY3RpdmVEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IGRpc2FibGVkQ29udHJvbGxlciA9IERpc2FibGVkQ29udHJvbGxlci5pbmplY3QoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgZWxlbWVudCBpcyBpbnRlcmFjdGVkIHdpdGggdmlhIGNsaWNrLCBFbnRlciBrZXksIG9yIFNwYWNlIGtleS5cbiAgICpcbiAgICogQGVtaXRzIHtNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudH0gLSBUaGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGludGVyYWN0aW9uLlxuICAgKi9cbiAgQE91dHB1dCgnb2R4Q2RrSW50ZXJhY3RpdmUnKVxuICBwdWJsaWMgaW50ZXJhY3QgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50PigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAuZW50ZXInLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXl1cC5zcGFjZScsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBoYW5kbGVFdmVudHMoZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWRDb250cm9sbGVyPy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMuaW50ZXJhY3QubmV4dChldmVudCk7XG4gIH1cbn1cbiJdfQ==