@odx/angular 6.0.0 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/animations/lib/expand.d.ts +44 -0
  3. package/animations/lib/fade.d.ts +70 -0
  4. package/animations/lib/slide.d.ts +21 -0
  5. package/animations/lib/wait-for-child-animations.d.ts +38 -0
  6. package/breakpoints/lib/breakpoints.config.d.ts +38 -0
  7. package/breakpoints/lib/breakpoints.service.d.ts +43 -0
  8. package/breakpoints/lib/directives/match-breakpoints.directive.d.ts +36 -0
  9. package/breakpoints/lib/helpers/configure-breakpoint.d.ts +19 -0
  10. package/cdk/a11y/lib/directives/interactive.directive.d.ts +32 -0
  11. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +22 -0
  12. package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +17 -0
  13. package/cdk/active-indicator/lib/active-indicator.directive.d.ts +63 -0
  14. package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +53 -0
  15. package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +3 -0
  16. package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +44 -0
  17. package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +10 -0
  18. package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +49 -0
  19. package/cdk/custom-form-control/lib/custom-form-control.d.ts +108 -0
  20. package/cdk/custom-form-control/lib/input-control.directive.d.ts +75 -0
  21. package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +25 -0
  22. package/cdk/dynamic-view/lib/dynamic-view.service.d.ts +30 -0
  23. package/cdk/dynamic-view/lib/helpers/create-projectable-nodes.d.ts +22 -0
  24. package/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.d.ts +22 -0
  25. package/cdk/dynamic-view/lib/helpers/is-dynamic-view.d.ts +22 -0
  26. package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +39 -0
  27. package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +36 -0
  28. package/cdk/event-plugins/lib/event-plugins.config.d.ts +35 -0
  29. package/cdk/event-plugins/lib/models/event-plugin.d.ts +57 -0
  30. package/cdk/event-plugins/lib/plugins/debounce-event-plugin.d.ts +32 -0
  31. package/cdk/event-plugins/lib/plugins/defer-event-plugin.d.ts +24 -0
  32. package/cdk/expandable/lib/directives/expandable-container.directive.d.ts +41 -0
  33. package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +47 -0
  34. package/cdk/option-control/lib/option-control.d.ts +47 -0
  35. package/cdk/radio-group-control/lib/radio-control.directive.d.ts +8 -0
  36. package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +11 -0
  37. package/components/accordion/lib/accordion.component.d.ts +8 -0
  38. package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +37 -1
  39. package/components/accordion/lib/directives/accordion-item-title.d.ts +3 -0
  40. package/components/action-group/action-group.component.d.ts +6 -0
  41. package/components/area-header/area-header.component.d.ts +8 -0
  42. package/components/area-header/directives/area-header-content.directive.d.ts +3 -0
  43. package/components/area-header/directives/area-header-subtitle.directive.d.ts +3 -0
  44. package/components/autocomplete/lib/autocomplete.component.d.ts +17 -0
  45. package/components/avatar/lib/avatar.component.d.ts +8 -0
  46. package/components/badge/lib/badge.component.d.ts +10 -0
  47. package/components/badge/lib/badge.directive.d.ts +15 -0
  48. package/components/bar/lib/bar.component.d.ts +7 -0
  49. package/components/bar/lib/directives/bar-button.directive.d.ts +3 -0
  50. package/components/bar/lib/directives/bar-label.directive.d.ts +3 -0
  51. package/components/breadcrumbs/lib/breadcrumbs.component.d.ts +3 -0
  52. package/components/button/lib/button.component.d.ts +10 -0
  53. package/components/button-group/lib/button-group.component.d.ts +15 -0
  54. package/components/calendar/lib/calendar.component.d.ts +48 -0
  55. package/components/calendar/lib/calendar.config.d.ts +17 -0
  56. package/components/calendar/lib/calendar.service.d.ts +48 -0
  57. package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +24 -0
  58. package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +6 -0
  59. package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +6 -0
  60. package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +6 -0
  61. package/components/calendar/lib/daterange.service.d.ts +16 -0
  62. package/components/calendar/lib/directives/calendar-cell.directive.d.ts +37 -0
  63. package/components/calendar/lib/directives/calendar-view.directive.d.ts +41 -0
  64. package/components/calendar/lib/pipes/date-label.pipe.d.ts +5 -0
  65. package/components/calendar/lib/services/calendar-month.service.d.ts +1 -0
  66. package/components/calendar/lib/services/calendar-year.service.d.ts +1 -0
  67. package/components/calendar/lib/services/calendar-years.service.d.ts +1 -0
  68. package/components/calendar/lib/utils/check-cell-in-range.d.ts +1 -0
  69. package/components/calendar/lib/utils/check-identical-date.d.ts +1 -0
  70. package/components/calendar/lib/utils/get-A11y-label.d.ts +1 -0
  71. package/components/calendar/lib/utils/is-date-disabled.d.ts +1 -0
  72. package/components/calendar/lib/utils/parse-date.d.ts +1 -0
  73. package/components/calendar/lib/utils/validate-daterange.d.ts +1 -0
  74. package/components/calendar/lib/utils/validate-max-date.d.ts +1 -0
  75. package/components/calendar/lib/utils/validate-min-date.d.ts +1 -0
  76. package/components/calendar/lib/utils/validate-next-date-set.d.ts +1 -0
  77. package/components/calendar/lib/utils/validate-previous-date-set.d.ts +1 -0
  78. package/components/checkbox/lib/checkbox.component.d.ts +32 -0
  79. package/components/checkbox/lib/checkbox.validator.d.ts +23 -0
  80. package/components/chip/lib/components/chip/chip.component.d.ts +14 -0
  81. package/components/chip/lib/components/chip-list/chip-list.component.d.ts +3 -0
  82. package/components/chip/lib/components/chip-list-row/chip-list-row.component.d.ts +3 -0
  83. package/components/circular-progress/lib/circular-progress.component.d.ts +20 -0
  84. package/components/content-box/lib/content-box.component.d.ts +3 -0
  85. package/components/content-box/lib/directives/content-box-footer.directive.d.ts +3 -0
  86. package/components/content-box/lib/directives/content-box-header.directive.d.ts +3 -0
  87. package/components/datepicker/lib/datepicker.component.d.ts +47 -0
  88. package/components/datepicker/lib/datepicker.config.d.ts +19 -0
  89. package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +30 -0
  90. package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +2 -0
  91. package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +1 -0
  92. package/components/daterangepicker/lib/daterangepicker.component.d.ts +89 -0
  93. package/components/daterangepicker/lib/daterangepicker.config.d.ts +19 -0
  94. package/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.d.ts +30 -0
  95. package/components/daterangepicker/lib/range.validator.d.ts +15 -0
  96. package/components/daterangepicker/lib/required.validator.d.ts +6 -0
  97. package/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.d.ts +2 -0
  98. package/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.d.ts +1 -0
  99. package/components/dropdown/lib/dropdown.component.d.ts +16 -0
  100. package/components/dropdown/lib/dropdown.directive.d.ts +67 -0
  101. package/components/dropdown/lib/helpers/close-current-dropdown.d.ts +5 -0
  102. package/components/error-page/lib/error-page.component.d.ts +7 -0
  103. package/components/error-page/lib/error-page.config.d.ts +18 -0
  104. package/components/footer/lib/footer.component.d.ts +9 -6
  105. package/components/footer/lib/footer.config.d.ts +2 -0
  106. package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +13 -0
  107. package/components/form-field/lib/components/form-group/form-group.component.d.ts +16 -0
  108. package/components/form-field/lib/directives/form-field-control.directive.d.ts +5 -0
  109. package/components/form-field/lib/directives/form-field-error.directive.d.ts +6 -0
  110. package/components/form-field/lib/directives/form-field-hint.directive.d.ts +3 -0
  111. package/components/form-field/lib/directives/form-field-label.directive.d.ts +3 -0
  112. package/components/form-field/lib/directives/form.directive.d.ts +13 -0
  113. package/components/form-field/lib/form-field.component.d.ts +20 -0
  114. package/components/form-field/lib/form-field.service.d.ts +42 -0
  115. package/components/form-field/lib/services/form-field-error.service.d.ts +24 -0
  116. package/components/header/lib/directives/header-avatar.directive.d.ts +4 -0
  117. package/components/header/lib/directives/header-title.directive.d.ts +3 -0
  118. package/components/header/lib/header.component.d.ts +3 -0
  119. package/components/header-navigation/lib/directives/header-navigation-link.directive.d.ts +3 -0
  120. package/components/header-navigation/lib/header-navigation.component.d.ts +6 -0
  121. package/components/icon/lib/helpers/unpack-icon-identifier.d.ts +14 -0
  122. package/components/icon/lib/icon.component.d.ts +24 -0
  123. package/components/icon/lib/icon.config.d.ts +26 -0
  124. package/components/inline-message/lib/inline-message.component.d.ts +13 -0
  125. package/components/link/link.directive.d.ts +3 -0
  126. package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +6 -0
  127. package/components/list/lib/components/list-item/list-item.component.d.ts +17 -1
  128. package/components/list/lib/list.component.d.ts +5 -0
  129. package/components/loading-spinner/lib/loading-spinner.component.d.ts +8 -0
  130. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +22 -0
  131. package/components/logo/logo.directive.d.ts +15 -0
  132. package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +5 -1
  133. package/components/main-menu/lib/directives/main-menu-close.directive.d.ts +3 -0
  134. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +16 -0
  135. package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +1 -0
  136. package/components/main-menu/lib/main-menu.component.d.ts +42 -0
  137. package/components/main-menu/lib/main-menu.config.d.ts +31 -0
  138. package/components/main-menu/lib/main-menu.service.d.ts +28 -0
  139. package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +4 -0
  140. package/components/menu/lib/directives/menu-item.directive.d.ts +6 -0
  141. package/components/menu/lib/menu.component.d.ts +13 -1
  142. package/components/menu/lib/menu.directive.d.ts +31 -0
  143. package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +14 -0
  144. package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +3 -0
  145. package/components/modal/lib/components/modal-header/modal-header.component.d.ts +9 -0
  146. package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +21 -0
  147. package/components/modal/lib/directives/modal-close.directive.d.ts +25 -1
  148. package/components/modal/lib/directives/modal-content.directive.d.ts +3 -0
  149. package/components/modal/lib/directives/modal-dismiss.directive.d.ts +18 -1
  150. package/components/modal/lib/helpers/inject-modal-ref.d.ts +21 -0
  151. package/components/modal/lib/helpers/provide-modal-ref.d.ts +9 -0
  152. package/components/modal/lib/modal.component.d.ts +25 -0
  153. package/components/modal/lib/modal.config.d.ts +33 -0
  154. package/components/modal/lib/modal.directive.d.ts +29 -0
  155. package/components/modal/lib/modal.service.d.ts +54 -0
  156. package/components/modal/lib/models/modal-ref.d.ts +34 -0
  157. package/components/navigation-back/lib/navigation-back.component.d.ts +3 -0
  158. package/components/notification/lib/components/notification-center/notification-center.component.d.ts +0 -2
  159. package/components/notification/lib/directives/notification-center.directive.d.ts +18 -4
  160. package/components/notification/lib/helpers/get-notifications-by-tag.d.ts +1 -0
  161. package/components/notification/lib/helpers/sort-notifications.d.ts +1 -0
  162. package/components/notification/lib/helpers/to-notification-collection.d.ts +1 -0
  163. package/components/notification/lib/models/notification-feature.d.ts +15 -0
  164. package/components/notification/lib/notification.config.d.ts +54 -0
  165. package/components/notification/lib/notification.logger.d.ts +1 -0
  166. package/components/notification/lib/notification.service.d.ts +55 -0
  167. package/components/notification/lib/notification.tokens.d.ts +3 -0
  168. package/components/notification/lib/services/notification-center.service.d.ts +9 -0
  169. package/components/paginator/lib/paginator.component.d.ts +89 -0
  170. package/components/paginator/lib/paginator.config.d.ts +24 -2
  171. package/components/progress/lib/progress.component.d.ts +15 -0
  172. package/components/radio-group/lib/radio-group.component.d.ts +11 -0
  173. package/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.d.ts +19 -0
  174. package/components/rail-navigation/lib/rail-navigation.component.d.ts +26 -0
  175. package/components/rich-list/lib/components/rich-list-content/rich-list-content.component.d.ts +4 -0
  176. package/components/rich-list/lib/components/rich-list-header/rich-list-header.component.d.ts +4 -0
  177. package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +9 -1
  178. package/components/rich-list/lib/rich-list.component.d.ts +9 -2
  179. package/components/select/lib/components/select-option/select-option.component.d.ts +39 -2
  180. package/components/select/lib/directives/select-input-control.directive.d.ts +11 -0
  181. package/components/select/lib/pipes/select-search-filter.pipe.d.ts +10 -0
  182. package/components/select/lib/select.component.d.ts +59 -0
  183. package/components/slider/lib/slider.directive.d.ts +19 -0
  184. package/components/spinbox/lib/spinbox.component.d.ts +16 -0
  185. package/components/switch/lib/switch.component.d.ts +10 -0
  186. package/components/switch/lib/switch.validator.d.ts +12 -0
  187. package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +28 -0
  188. package/components/tab-bar/lib/tab-bar.component.d.ts +69 -0
  189. package/components/table/lib/components/check-cell/check-cell.component.d.ts +18 -0
  190. package/components/table/lib/components/header-title/header-title.component.d.ts +33 -1
  191. package/components/table/lib/directives/table-cell.directive.d.ts +4 -0
  192. package/components/table/lib/directives/table-row.directive.d.ts +4 -0
  193. package/components/table/lib/table.component.d.ts +36 -0
  194. package/components/timepicker/lib/timepicker.component.d.ts +11 -2
  195. package/components/timepicker/lib/utils/generate-time-stamps.d.ts +2 -1
  196. package/components/timepicker/lib/utils/ngx-mask-helper.d.ts +2 -2
  197. package/components/toast/lib/toast.config.d.ts +26 -0
  198. package/components/toast/lib/toast.service.d.ts +35 -0
  199. package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +11 -0
  200. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +12 -0
  201. package/components/tooltip/lib/tooltip.component.d.ts +20 -0
  202. package/components/tooltip/lib/tooltip.directive.d.ts +35 -0
  203. package/components/wizard/lib/components/wizard-step/wizard-step.component.d.ts +34 -0
  204. package/components/wizard/lib/wizard.component.d.ts +20 -0
  205. package/esm2022/animations/lib/expand.mjs +45 -1
  206. package/esm2022/animations/lib/fade.mjs +71 -1
  207. package/esm2022/animations/lib/slide.mjs +22 -1
  208. package/esm2022/animations/lib/wait-for-child-animations.mjs +39 -1
  209. package/esm2022/breakpoints/lib/breakpoints.config.mjs +39 -1
  210. package/esm2022/breakpoints/lib/breakpoints.service.mjs +44 -1
  211. package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +37 -1
  212. package/esm2022/breakpoints/lib/helpers/configure-breakpoint.mjs +20 -1
  213. package/esm2022/cdk/a11y/lib/directives/interactive.directive.mjs +33 -1
  214. package/esm2022/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +23 -1
  215. package/esm2022/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +18 -1
  216. package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +64 -1
  217. package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +39 -1
  218. package/esm2022/cdk/checkbox-control/lib/checkbox-control.directive.mjs +4 -1
  219. package/esm2022/cdk/connected-overlay/lib/connected-overlay.service.mjs +45 -1
  220. package/esm2022/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +11 -1
  221. package/esm2022/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +50 -1
  222. package/esm2022/cdk/custom-form-control/lib/custom-form-control.mjs +109 -3
  223. package/esm2022/cdk/custom-form-control/lib/input-control.directive.mjs +76 -1
  224. package/esm2022/cdk/dynamic-view/lib/dynamic-view.directive.mjs +18 -1
  225. package/esm2022/cdk/dynamic-view/lib/dynamic-view.service.mjs +31 -1
  226. package/esm2022/cdk/dynamic-view/lib/helpers/create-projectable-nodes.mjs +23 -1
  227. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.mjs +23 -1
  228. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-view.mjs +23 -1
  229. package/esm2022/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +40 -1
  230. package/esm2022/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +37 -1
  231. package/esm2022/cdk/event-plugins/lib/event-plugins.config.mjs +36 -1
  232. package/esm2022/cdk/event-plugins/lib/models/event-plugin.mjs +45 -1
  233. package/esm2022/cdk/event-plugins/lib/plugins/debounce-event-plugin.mjs +33 -1
  234. package/esm2022/cdk/event-plugins/lib/plugins/defer-event-plugin.mjs +25 -1
  235. package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +42 -1
  236. package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +48 -1
  237. package/esm2022/cdk/option-control/lib/option-control.mjs +48 -1
  238. package/esm2022/cdk/radio-group-control/lib/radio-control.directive.mjs +9 -1
  239. package/esm2022/cdk/radio-group-control/lib/radio-group-control.directive.mjs +12 -1
  240. package/esm2022/components/accordion/lib/accordion.component.mjs +9 -1
  241. package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +31 -1
  242. package/esm2022/components/accordion/lib/directives/accordion-item-title.mjs +4 -1
  243. package/esm2022/components/action-group/action-group.component.mjs +7 -1
  244. package/esm2022/components/area-header/area-header.component.mjs +9 -1
  245. package/esm2022/components/area-header/directives/area-header-content.directive.mjs +4 -1
  246. package/esm2022/components/area-header/directives/area-header-subtitle.directive.mjs +4 -1
  247. package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +18 -1
  248. package/esm2022/components/avatar/lib/avatar.component.mjs +9 -1
  249. package/esm2022/components/badge/lib/badge.component.mjs +11 -1
  250. package/esm2022/components/badge/lib/badge.directive.mjs +16 -1
  251. package/esm2022/components/bar/lib/bar.component.mjs +8 -1
  252. package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +4 -1
  253. package/esm2022/components/bar/lib/directives/bar-label.directive.mjs +4 -1
  254. package/esm2022/components/breadcrumbs/lib/breadcrumbs.component.mjs +4 -1
  255. package/esm2022/components/button/lib/button.component.mjs +11 -1
  256. package/esm2022/components/button-group/lib/button-group.component.mjs +16 -1
  257. package/esm2022/components/calendar/lib/calendar.component.mjs +35 -1
  258. package/esm2022/components/calendar/lib/calendar.config.mjs +18 -1
  259. package/esm2022/components/calendar/lib/calendar.service.mjs +49 -1
  260. package/esm2022/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +19 -1
  261. package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +7 -1
  262. package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +7 -1
  263. package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +7 -1
  264. package/esm2022/components/calendar/lib/daterange.service.mjs +17 -1
  265. package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +26 -1
  266. package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +39 -1
  267. package/esm2022/components/calendar/lib/pipes/date-label.pipe.mjs +6 -1
  268. package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +2 -1
  269. package/esm2022/components/calendar/lib/services/calendar-year.service.mjs +2 -1
  270. package/esm2022/components/calendar/lib/services/calendar-years.service.mjs +2 -1
  271. package/esm2022/components/calendar/lib/utils/check-cell-in-range.mjs +2 -1
  272. package/esm2022/components/calendar/lib/utils/check-identical-date.mjs +2 -1
  273. package/esm2022/components/calendar/lib/utils/get-A11y-label.mjs +2 -1
  274. package/esm2022/components/calendar/lib/utils/is-date-disabled.mjs +2 -1
  275. package/esm2022/components/calendar/lib/utils/parse-date.mjs +2 -1
  276. package/esm2022/components/calendar/lib/utils/validate-daterange.mjs +2 -1
  277. package/esm2022/components/calendar/lib/utils/validate-max-date.mjs +2 -1
  278. package/esm2022/components/calendar/lib/utils/validate-min-date.mjs +2 -1
  279. package/esm2022/components/calendar/lib/utils/validate-next-date-set.mjs +2 -1
  280. package/esm2022/components/calendar/lib/utils/validate-previous-date-set.mjs +2 -1
  281. package/esm2022/components/checkbox/lib/checkbox.component.mjs +33 -1
  282. package/esm2022/components/checkbox/lib/checkbox.validator.mjs +24 -1
  283. package/esm2022/components/chip/lib/components/chip/chip.component.mjs +15 -1
  284. package/esm2022/components/chip/lib/components/chip-list/chip-list.component.mjs +4 -1
  285. package/esm2022/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +4 -1
  286. package/esm2022/components/circular-progress/lib/circular-progress.component.mjs +21 -1
  287. package/esm2022/components/content-box/lib/content-box.component.mjs +4 -1
  288. package/esm2022/components/content-box/lib/directives/content-box-footer.directive.mjs +4 -1
  289. package/esm2022/components/content-box/lib/directives/content-box-header.directive.mjs +4 -1
  290. package/esm2022/components/datepicker/lib/datepicker.component.mjs +33 -1
  291. package/esm2022/components/datepicker/lib/datepicker.config.mjs +20 -1
  292. package/esm2022/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +31 -1
  293. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +3 -1
  294. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +2 -1
  295. package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +65 -1
  296. package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +20 -1
  297. package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +31 -1
  298. package/esm2022/components/daterangepicker/lib/range.validator.mjs +16 -1
  299. package/esm2022/components/daterangepicker/lib/required.validator.mjs +15 -1
  300. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.mjs +3 -1
  301. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.mjs +2 -1
  302. package/esm2022/components/dropdown/lib/dropdown.component.mjs +8 -1
  303. package/esm2022/components/dropdown/lib/dropdown.directive.mjs +55 -1
  304. package/esm2022/components/dropdown/lib/helpers/close-current-dropdown.mjs +6 -1
  305. package/esm2022/components/error-page/lib/error-page.component.mjs +8 -1
  306. package/esm2022/components/error-page/lib/error-page.config.mjs +9 -1
  307. package/esm2022/components/footer/lib/footer.component.mjs +10 -7
  308. package/esm2022/components/footer/lib/footer.config.mjs +3 -1
  309. package/esm2022/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +14 -1
  310. package/esm2022/components/form-field/lib/components/form-group/form-group.component.mjs +13 -1
  311. package/esm2022/components/form-field/lib/directives/form-field-control.directive.mjs +6 -1
  312. package/esm2022/components/form-field/lib/directives/form-field-error.directive.mjs +4 -1
  313. package/esm2022/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -1
  314. package/esm2022/components/form-field/lib/directives/form-field-label.directive.mjs +4 -1
  315. package/esm2022/components/form-field/lib/directives/form.directive.mjs +14 -1
  316. package/esm2022/components/form-field/lib/form-field.component.mjs +14 -1
  317. package/esm2022/components/form-field/lib/form-field.service.mjs +43 -1
  318. package/esm2022/components/form-field/lib/services/form-field-error.service.mjs +25 -1
  319. package/esm2022/components/header/lib/directives/header-avatar.directive.mjs +5 -1
  320. package/esm2022/components/header/lib/directives/header-title.directive.mjs +4 -1
  321. package/esm2022/components/header/lib/header.component.mjs +4 -1
  322. package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +4 -1
  323. package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +4 -1
  324. package/esm2022/components/icon/lib/helpers/unpack-icon-identifier.mjs +15 -1
  325. package/esm2022/components/icon/lib/icon.component.mjs +25 -1
  326. package/esm2022/components/icon/lib/icon.config.mjs +20 -1
  327. package/esm2022/components/inline-message/lib/inline-message.component.mjs +14 -1
  328. package/esm2022/components/link/link.directive.mjs +4 -1
  329. package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +7 -1
  330. package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +18 -2
  331. package/esm2022/components/list/lib/list.component.mjs +6 -1
  332. package/esm2022/components/loading-spinner/lib/loading-spinner.component.mjs +10 -2
  333. package/esm2022/components/loading-spinner/lib/loading-spinner.directive.mjs +23 -1
  334. package/esm2022/components/logo/logo.directive.mjs +16 -1
  335. package/esm2022/components/main-menu/lib/directives/main-menu-button.directive.mjs +5 -1
  336. package/esm2022/components/main-menu/lib/directives/main-menu-close.directive.mjs +4 -1
  337. package/esm2022/components/main-menu/lib/directives/main-menu-item.directive.mjs +17 -1
  338. package/esm2022/components/main-menu/lib/helpers/create-main-menu-links.mjs +2 -1
  339. package/esm2022/components/main-menu/lib/main-menu.component.mjs +37 -1
  340. package/esm2022/components/main-menu/lib/main-menu.config.mjs +32 -1
  341. package/esm2022/components/main-menu/lib/main-menu.service.mjs +29 -1
  342. package/esm2022/components/mainfilter-group/lib/mainfilter-group.component.mjs +5 -1
  343. package/esm2022/components/menu/lib/directives/menu-item.directive.mjs +7 -1
  344. package/esm2022/components/menu/lib/menu.component.mjs +13 -1
  345. package/esm2022/components/menu/lib/menu.directive.mjs +19 -1
  346. package/esm2022/components/modal/lib/components/basic-modal/basic-modal.component.mjs +15 -1
  347. package/esm2022/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -1
  348. package/esm2022/components/modal/lib/components/modal-header/modal-header.component.mjs +4 -1
  349. package/esm2022/components/modal/lib/components/modal-hero/modal-hero.component.mjs +12 -1
  350. package/esm2022/components/modal/lib/directives/modal-close.directive.mjs +25 -1
  351. package/esm2022/components/modal/lib/directives/modal-content.directive.mjs +4 -1
  352. package/esm2022/components/modal/lib/directives/modal-dismiss.directive.mjs +18 -1
  353. package/esm2022/components/modal/lib/helpers/inject-modal-ref.mjs +22 -1
  354. package/esm2022/components/modal/lib/helpers/provide-modal-ref.mjs +10 -1
  355. package/esm2022/components/modal/lib/modal.component.mjs +21 -2
  356. package/esm2022/components/modal/lib/modal.config.mjs +34 -1
  357. package/esm2022/components/modal/lib/modal.directive.mjs +25 -1
  358. package/esm2022/components/modal/lib/modal.service.mjs +39 -1
  359. package/esm2022/components/modal/lib/models/modal-ref.mjs +34 -1
  360. package/esm2022/components/navigation-back/lib/navigation-back.component.mjs +4 -1
  361. package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +1 -3
  362. package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +19 -5
  363. package/esm2022/components/notification/lib/helpers/get-notifications-by-tag.mjs +2 -1
  364. package/esm2022/components/notification/lib/helpers/sort-notifications.mjs +2 -1
  365. package/esm2022/components/notification/lib/helpers/to-notification-collection.mjs +2 -1
  366. package/esm2022/components/notification/lib/models/notification-feature.mjs +16 -1
  367. package/esm2022/components/notification/lib/notification.config.mjs +45 -1
  368. package/esm2022/components/notification/lib/notification.logger.mjs +2 -1
  369. package/esm2022/components/notification/lib/notification.service.mjs +56 -1
  370. package/esm2022/components/notification/lib/notification.tokens.mjs +4 -1
  371. package/esm2022/components/notification/lib/services/notification-center.service.mjs +10 -1
  372. package/esm2022/components/paginator/lib/paginator.component.mjs +90 -1
  373. package/esm2022/components/paginator/lib/paginator.config.mjs +29 -1
  374. package/esm2022/components/progress/lib/progress.component.mjs +16 -1
  375. package/esm2022/components/radio-group/lib/radio-group.component.mjs +13 -2
  376. package/esm2022/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +17 -1
  377. package/esm2022/components/rail-navigation/lib/rail-navigation.component.mjs +27 -1
  378. package/esm2022/components/rich-list/lib/components/rich-list-content/rich-list-content.component.mjs +5 -1
  379. package/esm2022/components/rich-list/lib/components/rich-list-header/rich-list-header.component.mjs +5 -1
  380. package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +10 -2
  381. package/esm2022/components/rich-list/lib/rich-list.component.mjs +10 -3
  382. package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +47 -6
  383. package/esm2022/components/select/lib/directives/select-input-control.directive.mjs +12 -2
  384. package/esm2022/components/select/lib/pipes/select-search-filter.pipe.mjs +11 -1
  385. package/esm2022/components/select/lib/select.component.mjs +56 -2
  386. package/esm2022/components/slider/lib/slider.directive.mjs +20 -1
  387. package/esm2022/components/spinbox/lib/spinbox.component.mjs +17 -1
  388. package/esm2022/components/switch/lib/switch.component.mjs +11 -1
  389. package/esm2022/components/switch/lib/switch.validator.mjs +13 -1
  390. package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +29 -1
  391. package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +70 -1
  392. package/esm2022/components/table/lib/components/check-cell/check-cell.component.mjs +19 -1
  393. package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +30 -2
  394. package/esm2022/components/table/lib/directives/table-cell.directive.mjs +5 -1
  395. package/esm2022/components/table/lib/directives/table-row.directive.mjs +5 -1
  396. package/esm2022/components/table/lib/table.component.mjs +30 -1
  397. package/esm2022/components/timepicker/lib/timepicker.component.mjs +15 -6
  398. package/esm2022/components/timepicker/lib/utils/generate-time-stamps.mjs +5 -3
  399. package/esm2022/components/timepicker/lib/utils/ngx-mask-helper.mjs +3 -3
  400. package/esm2022/components/toast/lib/toast.config.mjs +27 -1
  401. package/esm2022/components/toast/lib/toast.service.mjs +36 -1
  402. package/esm2022/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +12 -1
  403. package/esm2022/components/toggle-button-group/lib/toggle-button-group.component.mjs +14 -2
  404. package/esm2022/components/tooltip/lib/tooltip.component.mjs +18 -1
  405. package/esm2022/components/tooltip/lib/tooltip.directive.mjs +36 -1
  406. package/esm2022/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +35 -1
  407. package/esm2022/components/wizard/lib/wizard.component.mjs +21 -1
  408. package/esm2022/internal/translate/lib/translate.config.mjs +32 -1
  409. package/esm2022/internal/translate/lib/translate.service.mjs +30 -1
  410. package/esm2022/lib/controllers/controller.mjs +26 -1
  411. package/esm2022/lib/controllers/disabled.controller.mjs +60 -1
  412. package/esm2022/lib/controllers/readonly.controller.mjs +57 -1
  413. package/esm2022/lib/directives/click-outside.directive.mjs +30 -1
  414. package/esm2022/lib/directives/delegate-focus.directive.mjs +15 -1
  415. package/esm2022/lib/services/window-ref.mjs +67 -1
  416. package/esm2022/lib/tokens/identity-matcher.mjs +25 -1
  417. package/esm2022/lib/tokens/string-search-handler.mjs +25 -1
  418. package/esm2022/lib/tokens/stringify.mjs +26 -1
  419. package/esm2022/localization/lib/features/with-http-language-header.mjs +54 -1
  420. package/esm2022/localization/lib/features/with-http-language-query-param.mjs +52 -1
  421. package/esm2022/localization/lib/loaders/browser-language-loader.mjs +33 -1
  422. package/esm2022/localization/lib/localization.config.mjs +71 -1
  423. package/esm2022/localization/lib/localization.service.mjs +42 -3
  424. package/esm2022/rxjs/index.mjs +2 -2
  425. package/esm2022/rxjs/lib/delay-until.mjs +23 -1
  426. package/esm2022/rxjs/lib/from-element-mutation.mjs +22 -1
  427. package/esm2022/rxjs/lib/from-element-resize.mjs +25 -1
  428. package/esm2022/rxjs/lib/from-events.mjs +25 -1
  429. package/esm2022/rxjs/lib/from-query-list.mjs +24 -0
  430. package/esm2022/sdk/lib/application-environment.mjs +51 -1
  431. package/esm2022/theming/lib/helpers/prefers-dark-theme.mjs +19 -1
  432. package/esm2022/theming/lib/helpers/resolve-theme.mjs +26 -1
  433. package/esm2022/theming/lib/helpers/theme-storage.mjs +43 -1
  434. package/esm2022/theming/lib/theming.config.mjs +34 -1
  435. package/esm2022/theming/lib/theming.service.mjs +32 -1
  436. package/esm2022/utils/lib/decorators/pure.mjs +52 -1
  437. package/esm2022/utils/lib/helpers/angular.mjs +37 -1
  438. package/esm2022/utils/lib/helpers/array.mjs +5 -1
  439. package/esm2022/utils/lib/helpers/build-url.mjs +21 -1
  440. package/esm2022/utils/lib/helpers/build-website-url.mjs +3 -2
  441. package/esm2022/utils/lib/helpers/cache-storage-client.mjs +52 -1
  442. package/esm2022/utils/lib/helpers/coercion.mjs +18 -1
  443. package/esm2022/utils/lib/helpers/debounce.mjs +28 -1
  444. package/esm2022/utils/lib/helpers/defer-fn.mjs +21 -1
  445. package/esm2022/utils/lib/helpers/dom.mjs +71 -1
  446. package/esm2022/utils/lib/helpers/get-axis.mjs +21 -1
  447. package/esm2022/utils/lib/helpers/get-language-code.mjs +18 -1
  448. package/esm2022/utils/lib/helpers/get-opposite-side.mjs +22 -1
  449. package/esm2022/utils/lib/helpers/get-side.mjs +18 -1
  450. package/esm2022/utils/lib/helpers/get-unique-id.mjs +34 -1
  451. package/esm2022/utils/lib/helpers/match-url.mjs +41 -1
  452. package/esm2022/utils/lib/helpers/ng-changes.mjs +30 -1
  453. package/esm2022/utils/lib/helpers/provide-config.mjs +57 -1
  454. package/esm2022/utils/lib/helpers/queue.mjs +84 -1
  455. package/esm2022/utils/lib/helpers/type-guards.mjs +58 -1
  456. package/esm2022/utils/lib/helpers/until-destroyed.mjs +39 -1
  457. package/fesm2022/odx-angular-animations.mjs +173 -0
  458. package/fesm2022/odx-angular-animations.mjs.map +1 -1
  459. package/fesm2022/odx-angular-breakpoints.mjs +136 -0
  460. package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
  461. package/fesm2022/odx-angular-cdk-a11y.mjs +71 -0
  462. package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
  463. package/fesm2022/odx-angular-cdk-active-indicator.mjs +63 -0
  464. package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
  465. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +38 -0
  466. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  467. package/fesm2022/odx-angular-cdk-checkbox-control.mjs +3 -0
  468. package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  469. package/fesm2022/odx-angular-cdk-connected-overlay.mjs +103 -0
  470. package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  471. package/fesm2022/odx-angular-cdk-custom-form-control.mjs +183 -2
  472. package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  473. package/fesm2022/odx-angular-cdk-dynamic-view.mjs +188 -0
  474. package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  475. package/fesm2022/odx-angular-cdk-event-plugins.mjs +135 -0
  476. package/fesm2022/odx-angular-cdk-event-plugins.mjs.map +1 -1
  477. package/fesm2022/odx-angular-cdk-expandable.mjs +88 -0
  478. package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
  479. package/fesm2022/odx-angular-cdk-option-control.mjs +47 -0
  480. package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
  481. package/fesm2022/odx-angular-cdk-radio-group-control.mjs +19 -0
  482. package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  483. package/fesm2022/odx-angular-components-accordion.mjs +41 -0
  484. package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
  485. package/fesm2022/odx-angular-components-action-group.mjs +6 -0
  486. package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
  487. package/fesm2022/odx-angular-components-area-header.mjs +14 -0
  488. package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
  489. package/fesm2022/odx-angular-components-autocomplete.mjs +17 -0
  490. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  491. package/fesm2022/odx-angular-components-avatar.mjs +8 -0
  492. package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
  493. package/fesm2022/odx-angular-components-badge.mjs +25 -0
  494. package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
  495. package/fesm2022/odx-angular-components-bar.mjs +13 -0
  496. package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
  497. package/fesm2022/odx-angular-components-breadcrumbs.mjs +3 -0
  498. package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
  499. package/fesm2022/odx-angular-components-button-group.mjs +15 -0
  500. package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
  501. package/fesm2022/odx-angular-components-button.mjs +10 -0
  502. package/fesm2022/odx-angular-components-button.mjs.map +1 -1
  503. package/fesm2022/odx-angular-components-calendar.mjs +232 -0
  504. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  505. package/fesm2022/odx-angular-components-checkbox.mjs +55 -0
  506. package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
  507. package/fesm2022/odx-angular-components-chip.mjs +20 -0
  508. package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
  509. package/fesm2022/odx-angular-components-circular-progress.mjs +20 -0
  510. package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
  511. package/fesm2022/odx-angular-components-content-box.mjs +9 -0
  512. package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
  513. package/fesm2022/odx-angular-components-datepicker.mjs +84 -0
  514. package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
  515. package/fesm2022/odx-angular-components-daterangepicker.mjs +145 -0
  516. package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
  517. package/fesm2022/odx-angular-components-dropdown.mjs +66 -0
  518. package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
  519. package/fesm2022/odx-angular-components-error-page.mjs +15 -0
  520. package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
  521. package/fesm2022/odx-angular-components-footer.mjs +11 -6
  522. package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
  523. package/fesm2022/odx-angular-components-form-field.mjs +131 -0
  524. package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
  525. package/fesm2022/odx-angular-components-header-navigation.mjs +6 -0
  526. package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
  527. package/fesm2022/odx-angular-components-header.mjs +10 -0
  528. package/fesm2022/odx-angular-components-header.mjs.map +1 -1
  529. package/fesm2022/odx-angular-components-icon.mjs +57 -0
  530. package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
  531. package/fesm2022/odx-angular-components-inline-message.mjs +13 -0
  532. package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
  533. package/fesm2022/odx-angular-components-link.mjs +3 -0
  534. package/fesm2022/odx-angular-components-link.mjs.map +1 -1
  535. package/fesm2022/odx-angular-components-list.mjs +28 -1
  536. package/fesm2022/odx-angular-components-list.mjs.map +1 -1
  537. package/fesm2022/odx-angular-components-loading-spinner.mjs +30 -0
  538. package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
  539. package/fesm2022/odx-angular-components-logo.mjs +15 -0
  540. package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
  541. package/fesm2022/odx-angular-components-main-menu.mjs +119 -0
  542. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  543. package/fesm2022/odx-angular-components-mainfilter-group.mjs +4 -0
  544. package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
  545. package/fesm2022/odx-angular-components-menu.mjs +36 -0
  546. package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
  547. package/fesm2022/odx-angular-components-modal.mjs +252 -0
  548. package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
  549. package/fesm2022/odx-angular-components-navigation-back.mjs +3 -0
  550. package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
  551. package/fesm2022/odx-angular-components-notification.mjs +148 -6
  552. package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
  553. package/fesm2022/odx-angular-components-paginator.mjs +117 -0
  554. package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
  555. package/fesm2022/odx-angular-components-progress.mjs +15 -0
  556. package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
  557. package/fesm2022/odx-angular-components-radio-group.mjs +11 -0
  558. package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
  559. package/fesm2022/odx-angular-components-rail-navigation.mjs +42 -0
  560. package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
  561. package/fesm2022/odx-angular-components-rich-list.mjs +26 -3
  562. package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
  563. package/fesm2022/odx-angular-components-select.mjs +122 -7
  564. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  565. package/fesm2022/odx-angular-components-slider.mjs +19 -0
  566. package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
  567. package/fesm2022/odx-angular-components-spinbox.mjs +16 -0
  568. package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
  569. package/fesm2022/odx-angular-components-switch.mjs +22 -0
  570. package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
  571. package/fesm2022/odx-angular-components-tab-bar.mjs +97 -0
  572. package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
  573. package/fesm2022/odx-angular-components-table.mjs +84 -1
  574. package/fesm2022/odx-angular-components-table.mjs.map +1 -1
  575. package/fesm2022/odx-angular-components-timepicker.mjs +20 -9
  576. package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
  577. package/fesm2022/odx-angular-components-toast.mjs +61 -0
  578. package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
  579. package/fesm2022/odx-angular-components-toggle-button-group.mjs +23 -0
  580. package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
  581. package/fesm2022/odx-angular-components-tooltip.mjs +52 -0
  582. package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
  583. package/fesm2022/odx-angular-components-wizard.mjs +54 -0
  584. package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
  585. package/fesm2022/odx-angular-internal-translate.mjs +60 -0
  586. package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
  587. package/fesm2022/odx-angular-localization.mjs +247 -2
  588. package/fesm2022/odx-angular-localization.mjs.map +1 -1
  589. package/fesm2022/odx-angular-rxjs.mjs +115 -5
  590. package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
  591. package/fesm2022/odx-angular-sdk.mjs +50 -0
  592. package/fesm2022/odx-angular-sdk.mjs.map +1 -1
  593. package/fesm2022/odx-angular-theming.mjs +149 -0
  594. package/fesm2022/odx-angular-theming.mjs.map +1 -1
  595. package/fesm2022/odx-angular-utils.mjs +709 -1
  596. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  597. package/fesm2022/odx-angular.mjs +322 -0
  598. package/fesm2022/odx-angular.mjs.map +1 -1
  599. package/internal/translate/lib/translate.config.d.ts +31 -0
  600. package/internal/translate/lib/translate.service.d.ts +29 -0
  601. package/lib/controllers/controller.d.ts +25 -0
  602. package/lib/controllers/disabled.controller.d.ts +59 -0
  603. package/lib/controllers/readonly.controller.d.ts +56 -0
  604. package/lib/directives/click-outside.directive.d.ts +29 -0
  605. package/lib/directives/delegate-focus.directive.d.ts +14 -0
  606. package/lib/services/window-ref.d.ts +66 -0
  607. package/lib/tokens/identity-matcher.d.ts +41 -0
  608. package/lib/tokens/string-search-handler.d.ts +39 -0
  609. package/lib/tokens/stringify.d.ts +42 -0
  610. package/localization/lib/features/with-http-language-header.d.ts +63 -0
  611. package/localization/lib/features/with-http-language-query-param.d.ts +61 -0
  612. package/localization/lib/loaders/browser-language-loader.d.ts +32 -0
  613. package/localization/lib/localization.config.d.ts +81 -0
  614. package/localization/lib/localization.service.d.ts +39 -0
  615. package/package.json +1 -1
  616. package/rxjs/index.d.ts +1 -1
  617. package/rxjs/lib/delay-until.d.ts +22 -0
  618. package/rxjs/lib/from-element-mutation.d.ts +21 -0
  619. package/rxjs/lib/from-element-resize.d.ts +24 -0
  620. package/rxjs/lib/from-events.d.ts +24 -0
  621. package/rxjs/lib/from-query-list.d.ts +22 -0
  622. package/sdk/lib/application-environment.d.ts +59 -0
  623. package/theming/lib/helpers/prefers-dark-theme.d.ts +18 -0
  624. package/theming/lib/helpers/resolve-theme.d.ts +25 -0
  625. package/theming/lib/helpers/theme-storage.d.ts +42 -0
  626. package/theming/lib/theming.config.d.ts +46 -0
  627. package/theming/lib/theming.service.d.ts +31 -0
  628. package/utils/lib/decorators/pure.d.ts +51 -0
  629. package/utils/lib/helpers/angular.d.ts +36 -0
  630. package/utils/lib/helpers/array.d.ts +4 -0
  631. package/utils/lib/helpers/build-url.d.ts +20 -0
  632. package/utils/lib/helpers/build-website-url.d.ts +2 -1
  633. package/utils/lib/helpers/cache-storage-client.d.ts +51 -0
  634. package/utils/lib/helpers/coercion.d.ts +17 -0
  635. package/utils/lib/helpers/debounce.d.ts +27 -0
  636. package/utils/lib/helpers/defer-fn.d.ts +20 -0
  637. package/utils/lib/helpers/dom.d.ts +70 -0
  638. package/utils/lib/helpers/get-axis.d.ts +20 -0
  639. package/utils/lib/helpers/get-language-code.d.ts +17 -0
  640. package/utils/lib/helpers/get-opposite-side.d.ts +21 -0
  641. package/utils/lib/helpers/get-side.d.ts +17 -0
  642. package/utils/lib/helpers/get-unique-id.d.ts +33 -0
  643. package/utils/lib/helpers/match-url.d.ts +40 -0
  644. package/utils/lib/helpers/ng-changes.d.ts +52 -0
  645. package/utils/lib/helpers/provide-config.d.ts +56 -0
  646. package/utils/lib/helpers/queue.d.ts +83 -0
  647. package/utils/lib/helpers/type-guards.d.ts +57 -0
  648. package/utils/lib/helpers/until-destroyed.d.ts +38 -0
  649. package/esm2022/rxjs/lib/form-query-list.mjs +0 -5
  650. package/rxjs/lib/form-query-list.d.ts +0 -3
@@ -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==
@@ -2,14 +2,36 @@ import { Directive } from '@angular/core';
2
2
  import { DisabledController } from '@odx/angular';
3
3
  import { injectElement } from '@odx/angular/utils';
4
4
  import * as i0 from "@angular/core";
5
+ /**
6
+ * Directive to make an element focusable as part of a list, integrating with Angular CDK's FocusKeyManager.
7
+ * It listens to the disabled state controlled by `DisabledController` to manage focus correctly based on
8
+ * the enabled state of the element.
9
+ *
10
+ * @example
11
+ * In a component template, apply this directive to list items that should be focusable and managed by a FocusKeyManager:
12
+ * ```html
13
+ * <li odxListFocusManagerOption *ngFor="let item of items">
14
+ * {{ item }}
15
+ * </li>
16
+ * ```
17
+ */
5
18
  export class ListFocusManagerOptionDirective {
6
19
  constructor() {
7
20
  this.disabledController = DisabledController.inject();
8
21
  this.element = injectElement();
9
22
  }
23
+ /**
24
+ * Reflects the disabled state of the element, managed by `DisabledController`.
25
+ * If disabled, the element is not focusable.
26
+ *
27
+ * @returns {boolean} True if the directive's host element is disabled.
28
+ */
10
29
  get disabled() {
11
30
  return !!this.disabledController?.disabled;
12
31
  }
32
+ /**
33
+ * Focuses the host element. If the element is disabled, it will not be focused.
34
+ */
13
35
  focus() {
14
36
  this.element.nativeElement.focus();
15
37
  }
@@ -23,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
23
45
  standalone: true,
24
46
  }]
25
47
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1mb2N1cy1tYW5hZ2VyLW9wdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2ExMXkvc3JjL2xpYi9kaXJlY3RpdmVzL2xpc3QtZm9jdXMtbWFuYWdlci1vcHRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLCtCQUErQjtJQUo1QztRQUttQix1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7S0FTNUM7SUFQQyxJQUFXLFFBQVE7UUFDakIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQztJQUM3QyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7K0dBVlUsK0JBQStCO21HQUEvQiwrQkFBK0I7OzRGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNhYmxlT3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNhYmxlZENvbnRyb2xsZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgaW5qZWN0RWxlbWVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tvZHhMaXN0Rm9jdXNNYW5hZ2VyT3B0aW9uXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIExpc3RGb2N1c01hbmFnZXJPcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBGb2N1c2FibGVPcHRpb24ge1xuICBwcml2YXRlIHJlYWRvbmx5IGRpc2FibGVkQ29udHJvbGxlciA9IERpc2FibGVkQ29udHJvbGxlci5pbmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kaXNhYmxlZENvbnRyb2xsZXI/LmRpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1mb2N1cy1tYW5hZ2VyLW9wdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2ExMXkvc3JjL2xpYi9kaXJlY3RpdmVzL2xpc3QtZm9jdXMtbWFuYWdlci1vcHRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFbkQ7Ozs7Ozs7Ozs7OztHQVlHO0FBS0gsTUFBTSxPQUFPLCtCQUErQjtJQUo1QztRQUttQix1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7S0FrQjVDO0lBaEJDOzs7OztPQUtHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7K0dBbkJVLCtCQUErQjttR0FBL0IsK0JBQStCOzs0RkFBL0IsK0JBQStCO2tCQUozQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzYWJsZWRDb250cm9sbGVyIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0byBtYWtlIGFuIGVsZW1lbnQgZm9jdXNhYmxlIGFzIHBhcnQgb2YgYSBsaXN0LCBpbnRlZ3JhdGluZyB3aXRoIEFuZ3VsYXIgQ0RLJ3MgRm9jdXNLZXlNYW5hZ2VyLlxuICogSXQgbGlzdGVucyB0byB0aGUgZGlzYWJsZWQgc3RhdGUgY29udHJvbGxlZCBieSBgRGlzYWJsZWRDb250cm9sbGVyYCB0byBtYW5hZ2UgZm9jdXMgY29ycmVjdGx5IGJhc2VkIG9uXG4gKiB0aGUgZW5hYmxlZCBzdGF0ZSBvZiB0aGUgZWxlbWVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogSW4gYSBjb21wb25lbnQgdGVtcGxhdGUsIGFwcGx5IHRoaXMgZGlyZWN0aXZlIHRvIGxpc3QgaXRlbXMgdGhhdCBzaG91bGQgYmUgZm9jdXNhYmxlIGFuZCBtYW5hZ2VkIGJ5IGEgRm9jdXNLZXlNYW5hZ2VyOlxuICogYGBgaHRtbFxuICogPGxpIG9keExpc3RGb2N1c01hbmFnZXJPcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAqICAge3sgaXRlbSB9fVxuICogPC9saT5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbb2R4TGlzdEZvY3VzTWFuYWdlck9wdGlvbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBMaXN0Rm9jdXNNYW5hZ2VyT3B0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgRm9jdXNhYmxlT3B0aW9uIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkaXNhYmxlZENvbnRyb2xsZXIgPSBEaXNhYmxlZENvbnRyb2xsZXIuaW5qZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICAvKipcbiAgICogUmVmbGVjdHMgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBlbGVtZW50LCBtYW5hZ2VkIGJ5IGBEaXNhYmxlZENvbnRyb2xsZXJgLlxuICAgKiBJZiBkaXNhYmxlZCwgdGhlIGVsZW1lbnQgaXMgbm90IGZvY3VzYWJsZS5cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlIGRpcmVjdGl2ZSdzIGhvc3QgZWxlbWVudCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kaXNhYmxlZENvbnRyb2xsZXI/LmRpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIGhvc3QgZWxlbWVudC4gSWYgdGhlIGVsZW1lbnQgaXMgZGlzYWJsZWQsIGl0IHdpbGwgbm90IGJlIGZvY3VzZWQuXG4gICAqL1xuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIl19
@@ -3,6 +3,23 @@ import { ContentChildren, Directive, HostListener, QueryList } from '@angular/co
3
3
  import { deferFn } from '@odx/angular/utils';
4
4
  import { ListFocusManagerOptionDirective } from './list-focus-manager-option.directive';
5
5
  import * as i0 from "@angular/core";
6
+ /**
7
+ * Directive that sets up keyboard navigation for a list or a group of focusable elements.
8
+ * Utilizes `FocusKeyManager` from Angular CDK to manage focus among items.
9
+ * It automatically skips disabled items and wraps around when navigating past the first or last item.
10
+ * Handles keydown events to navigate through the focusable options.
11
+ *
12
+ * @example
13
+ * In a component template, use this directive on a container element and `odxListFocusManagerOption`
14
+ * on each focusable list item:
15
+ * ```html
16
+ * <ul odxListFocusManager>
17
+ * <li odxListFocusManagerOption *ngFor="let item of items">
18
+ * {{ item }}
19
+ * </li>
20
+ * </ul>
21
+ * ```
22
+ */
6
23
  export class ListFocusManagerDirective {
7
24
  constructor() {
8
25
  this.keyManager = null;
@@ -37,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
37
54
  type: HostListener,
38
55
  args: ['keydown', ['$event']]
39
56
  }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1mb2N1cy1tYW5hZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvYTExeS9zcmMvbGliL2RpcmVjdGl2ZXMvbGlzdC1mb2N1cy1tYW5hZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFvQixlQUFlLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQU14RixNQUFNLE9BQU8seUJBQXlCO0lBSnRDO1FBS1UsZUFBVSxHQUE0RCxJQUFJLENBQUM7S0FzQnBGO0lBakJRLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDaEQsY0FBYyxFQUFFO2FBQ2hCLFFBQVEsRUFBRTthQUNWLGFBQWEsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFHUyxTQUFTLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0F0QlUseUJBQXlCO21HQUF6Qix5QkFBeUIsa0tBR25CLCtCQUErQjs7NEZBSHJDLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBS1csT0FBTztzQkFEaEIsZUFBZTt1QkFBQywrQkFBK0I7Z0JBaUJ0QyxTQUFTO3NCQURsQixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWZlckZuIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IExpc3RGb2N1c01hbmFnZXJPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2xpc3QtZm9jdXMtbWFuYWdlci1vcHRpb24uZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW29keExpc3RGb2N1c01hbmFnZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGlzdEZvY3VzTWFuYWdlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUga2V5TWFuYWdlcjogRm9jdXNLZXlNYW5hZ2VyPExpc3RGb2N1c01hbmFnZXJPcHRpb25EaXJlY3RpdmU+IHwgbnVsbCA9IG51bGw7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0Rm9jdXNNYW5hZ2VyT3B0aW9uRGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgb3B0aW9ucyE6IFF1ZXJ5TGlzdDxMaXN0Rm9jdXNNYW5hZ2VyT3B0aW9uRGlyZWN0aXZlPjtcblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMua2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5vcHRpb25zKVxuICAgICAgLndpdGhIb21lQW5kRW5kKClcbiAgICAgIC53aXRoV3JhcCgpXG4gICAgICAuc2tpcFByZWRpY2F0ZSgoaXRlbSkgPT4gaXRlbS5kaXNhYmxlZCk7XG4gICAgZGVmZXJGbigoKSA9PiB0aGlzLmtleU1hbmFnZXI/LnNldEZpcnN0SXRlbUFjdGl2ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXI/LmRlc3Ryb3koKTtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBudWxsO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXI/Lm9uS2V5ZG93bihldmVudCk7XG4gIH1cbn1cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1mb2N1cy1tYW5hZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvYTExeS9zcmMvbGliL2RpcmVjdGl2ZXMvbGlzdC1mb2N1cy1tYW5hZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFvQixlQUFlLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQUV4Rjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUtILE1BQU0sT0FBTyx5QkFBeUI7SUFKdEM7UUFLVSxlQUFVLEdBQTRELElBQUksQ0FBQztLQXNCcEY7SUFqQlEsa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUNoRCxjQUFjLEVBQUU7YUFDaEIsUUFBUSxFQUFFO2FBQ1YsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUdTLFNBQVMsQ0FBQyxLQUFvQjtRQUN0QyxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDOytHQXRCVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixrS0FHbkIsK0JBQStCOzs0RkFIckMseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFLVyxPQUFPO3NCQURoQixlQUFlO3VCQUFDLCtCQUErQjtnQkFpQnRDLFNBQVM7c0JBRGxCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlZmVyRm4gfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgTGlzdEZvY3VzTWFuYWdlck9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vbGlzdC1mb2N1cy1tYW5hZ2VyLW9wdGlvbi5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IHNldHMgdXAga2V5Ym9hcmQgbmF2aWdhdGlvbiBmb3IgYSBsaXN0IG9yIGEgZ3JvdXAgb2YgZm9jdXNhYmxlIGVsZW1lbnRzLlxuICogVXRpbGl6ZXMgYEZvY3VzS2V5TWFuYWdlcmAgZnJvbSBBbmd1bGFyIENESyB0byBtYW5hZ2UgZm9jdXMgYW1vbmcgaXRlbXMuXG4gKiBJdCBhdXRvbWF0aWNhbGx5IHNraXBzIGRpc2FibGVkIGl0ZW1zIGFuZCB3cmFwcyBhcm91bmQgd2hlbiBuYXZpZ2F0aW5nIHBhc3QgdGhlIGZpcnN0IG9yIGxhc3QgaXRlbS5cbiAqIEhhbmRsZXMga2V5ZG93biBldmVudHMgdG8gbmF2aWdhdGUgdGhyb3VnaCB0aGUgZm9jdXNhYmxlIG9wdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIEluIGEgY29tcG9uZW50IHRlbXBsYXRlLCB1c2UgdGhpcyBkaXJlY3RpdmUgb24gYSBjb250YWluZXIgZWxlbWVudCBhbmQgYG9keExpc3RGb2N1c01hbmFnZXJPcHRpb25gXG4gKiBvbiBlYWNoIGZvY3VzYWJsZSBsaXN0IGl0ZW06XG4gKiBgYGBodG1sXG4gKiA8dWwgb2R4TGlzdEZvY3VzTWFuYWdlcj5cbiAqICAgPGxpIG9keExpc3RGb2N1c01hbmFnZXJPcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAqICAgICB7eyBpdGVtIH19XG4gKiAgIDwvbGk+XG4gKiA8L3VsPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tvZHhMaXN0Rm9jdXNNYW5hZ2VyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIExpc3RGb2N1c01hbmFnZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGtleU1hbmFnZXI6IEZvY3VzS2V5TWFuYWdlcjxMaXN0Rm9jdXNNYW5hZ2VyT3B0aW9uRGlyZWN0aXZlPiB8IG51bGwgPSBudWxsO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTGlzdEZvY3VzTWFuYWdlck9wdGlvbkRpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIG9wdGlvbnMhOiBRdWVyeUxpc3Q8TGlzdEZvY3VzTWFuYWdlck9wdGlvbkRpcmVjdGl2ZT47XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHRoaXMub3B0aW9ucylcbiAgICAgIC53aXRoSG9tZUFuZEVuZCgpXG4gICAgICAud2l0aFdyYXAoKVxuICAgICAgLnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+IGl0ZW0uZGlzYWJsZWQpO1xuICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5rZXlNYW5hZ2VyPy5zZXRGaXJzdEl0ZW1BY3RpdmUoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgdGhpcy5rZXlNYW5hZ2VyID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICB9XG59XG4iXX0=