@odx/angular 6.0.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (669) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/animations/lib/expand.d.ts +44 -0
  3. package/animations/lib/fade.d.ts +70 -0
  4. package/animations/lib/slide.d.ts +21 -0
  5. package/animations/lib/wait-for-child-animations.d.ts +38 -0
  6. package/breakpoints/lib/breakpoints.config.d.ts +38 -0
  7. package/breakpoints/lib/breakpoints.service.d.ts +43 -0
  8. package/breakpoints/lib/directives/match-breakpoints.directive.d.ts +36 -0
  9. package/breakpoints/lib/helpers/configure-breakpoint.d.ts +19 -0
  10. package/cdk/a11y/lib/directives/interactive.directive.d.ts +32 -0
  11. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +22 -0
  12. package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +17 -0
  13. package/cdk/active-indicator/lib/active-indicator.directive.d.ts +63 -0
  14. package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +53 -0
  15. package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +3 -0
  16. package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +44 -0
  17. package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +10 -0
  18. package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +49 -0
  19. package/cdk/custom-form-control/lib/custom-form-control.d.ts +108 -0
  20. package/cdk/custom-form-control/lib/input-control.directive.d.ts +75 -0
  21. package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +25 -0
  22. package/cdk/dynamic-view/lib/dynamic-view.service.d.ts +30 -0
  23. package/cdk/dynamic-view/lib/helpers/create-projectable-nodes.d.ts +22 -0
  24. package/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.d.ts +22 -0
  25. package/cdk/dynamic-view/lib/helpers/is-dynamic-view.d.ts +22 -0
  26. package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +39 -0
  27. package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +36 -0
  28. package/cdk/dynamic-view/lib/tokens/dynamic-view-context.d.ts +4 -0
  29. package/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.d.ts +10 -0
  30. package/cdk/event-plugins/lib/event-plugins.config.d.ts +35 -0
  31. package/cdk/event-plugins/lib/models/event-plugin.d.ts +57 -0
  32. package/cdk/event-plugins/lib/plugins/debounce-event-plugin.d.ts +32 -0
  33. package/cdk/event-plugins/lib/plugins/defer-event-plugin.d.ts +24 -0
  34. package/cdk/expandable/lib/directives/expandable-container.directive.d.ts +41 -0
  35. package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +47 -0
  36. package/cdk/option-control/lib/option-control.d.ts +47 -0
  37. package/cdk/radio-group-control/lib/radio-control.directive.d.ts +8 -0
  38. package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +11 -0
  39. package/components/accordion/lib/accordion.component.d.ts +8 -0
  40. package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +37 -1
  41. package/components/accordion/lib/directives/accordion-item-title.d.ts +3 -0
  42. package/components/action-group/action-group.component.d.ts +6 -0
  43. package/components/area-header/area-header.component.d.ts +8 -0
  44. package/components/area-header/directives/area-header-content.directive.d.ts +3 -0
  45. package/components/area-header/directives/area-header-subtitle.directive.d.ts +3 -0
  46. package/components/autocomplete/lib/autocomplete.component.d.ts +18 -0
  47. package/components/avatar/lib/avatar.component.d.ts +8 -0
  48. package/components/badge/lib/badge.component.d.ts +10 -0
  49. package/components/badge/lib/badge.directive.d.ts +15 -0
  50. package/components/bar/lib/bar.component.d.ts +7 -0
  51. package/components/bar/lib/directives/bar-button.directive.d.ts +3 -0
  52. package/components/bar/lib/directives/bar-label.directive.d.ts +3 -0
  53. package/components/breadcrumbs/lib/breadcrumbs.component.d.ts +3 -0
  54. package/components/button/lib/button.component.d.ts +10 -0
  55. package/components/button-group/lib/button-group.component.d.ts +15 -0
  56. package/components/calendar/lib/calendar.component.d.ts +48 -0
  57. package/components/calendar/lib/calendar.config.d.ts +17 -0
  58. package/components/calendar/lib/calendar.service.d.ts +48 -0
  59. package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +24 -0
  60. package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +6 -0
  61. package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +6 -0
  62. package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +6 -0
  63. package/components/calendar/lib/daterange.service.d.ts +16 -0
  64. package/components/calendar/lib/directives/calendar-cell.directive.d.ts +37 -0
  65. package/components/calendar/lib/directives/calendar-view.directive.d.ts +41 -0
  66. package/components/calendar/lib/pipes/date-label.pipe.d.ts +5 -0
  67. package/components/calendar/lib/services/calendar-month.service.d.ts +1 -0
  68. package/components/calendar/lib/services/calendar-year.service.d.ts +1 -0
  69. package/components/calendar/lib/services/calendar-years.service.d.ts +1 -0
  70. package/components/calendar/lib/utils/check-cell-in-range.d.ts +1 -0
  71. package/components/calendar/lib/utils/check-identical-date.d.ts +1 -0
  72. package/components/calendar/lib/utils/get-A11y-label.d.ts +1 -0
  73. package/components/calendar/lib/utils/is-date-disabled.d.ts +1 -0
  74. package/components/calendar/lib/utils/parse-date.d.ts +1 -0
  75. package/components/calendar/lib/utils/validate-daterange.d.ts +1 -0
  76. package/components/calendar/lib/utils/validate-max-date.d.ts +1 -0
  77. package/components/calendar/lib/utils/validate-min-date.d.ts +1 -0
  78. package/components/calendar/lib/utils/validate-next-date-set.d.ts +1 -0
  79. package/components/calendar/lib/utils/validate-previous-date-set.d.ts +1 -0
  80. package/components/checkbox/lib/checkbox.component.d.ts +32 -0
  81. package/components/checkbox/lib/checkbox.validator.d.ts +23 -0
  82. package/components/chip/lib/components/chip/chip.component.d.ts +14 -0
  83. package/components/chip/lib/components/chip-list/chip-list.component.d.ts +3 -0
  84. package/components/chip/lib/components/chip-list-row/chip-list-row.component.d.ts +3 -0
  85. package/components/circular-progress/lib/circular-progress.component.d.ts +20 -0
  86. package/components/content-box/lib/content-box.component.d.ts +3 -0
  87. package/components/content-box/lib/directives/content-box-footer.directive.d.ts +3 -0
  88. package/components/content-box/lib/directives/content-box-header.directive.d.ts +3 -0
  89. package/components/datepicker/lib/datepicker.component.d.ts +47 -0
  90. package/components/datepicker/lib/datepicker.config.d.ts +19 -0
  91. package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +30 -0
  92. package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +2 -0
  93. package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +1 -0
  94. package/components/daterangepicker/lib/daterangepicker.component.d.ts +89 -0
  95. package/components/daterangepicker/lib/daterangepicker.config.d.ts +19 -0
  96. package/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.d.ts +30 -0
  97. package/components/daterangepicker/lib/range.validator.d.ts +15 -0
  98. package/components/daterangepicker/lib/required.validator.d.ts +6 -0
  99. package/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.d.ts +2 -0
  100. package/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.d.ts +1 -0
  101. package/components/dropdown/lib/dropdown.component.d.ts +16 -0
  102. package/components/dropdown/lib/dropdown.directive.d.ts +67 -0
  103. package/components/dropdown/lib/helpers/close-current-dropdown.d.ts +5 -0
  104. package/components/error-page/lib/error-page.component.d.ts +7 -0
  105. package/components/error-page/lib/error-page.config.d.ts +18 -0
  106. package/components/footer/lib/footer.component.d.ts +9 -6
  107. package/components/footer/lib/footer.config.d.ts +2 -0
  108. package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +13 -0
  109. package/components/form-field/lib/components/form-group/form-group.component.d.ts +16 -0
  110. package/components/form-field/lib/directives/form-field-control.directive.d.ts +5 -0
  111. package/components/form-field/lib/directives/form-field-error.directive.d.ts +6 -0
  112. package/components/form-field/lib/directives/form-field-hint.directive.d.ts +3 -0
  113. package/components/form-field/lib/directives/form-field-label.directive.d.ts +3 -0
  114. package/components/form-field/lib/directives/form.directive.d.ts +13 -0
  115. package/components/form-field/lib/form-field.component.d.ts +20 -0
  116. package/components/form-field/lib/form-field.service.d.ts +42 -0
  117. package/components/form-field/lib/services/form-field-error.service.d.ts +24 -0
  118. package/components/header/lib/directives/header-avatar.directive.d.ts +4 -0
  119. package/components/header/lib/directives/header-title.directive.d.ts +3 -0
  120. package/components/header/lib/header.component.d.ts +3 -0
  121. package/components/header-navigation/lib/directives/header-navigation-link.directive.d.ts +3 -0
  122. package/components/header-navigation/lib/header-navigation.component.d.ts +6 -0
  123. package/components/icon/lib/helpers/unpack-icon-identifier.d.ts +14 -0
  124. package/components/icon/lib/icon.component.d.ts +24 -0
  125. package/components/icon/lib/icon.config.d.ts +26 -0
  126. package/components/inline-message/lib/inline-message.component.d.ts +13 -0
  127. package/components/link/link.directive.d.ts +3 -0
  128. package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +6 -0
  129. package/components/list/lib/components/list-item/list-item.component.d.ts +17 -1
  130. package/components/list/lib/list.component.d.ts +5 -0
  131. package/components/loading-spinner/lib/loading-spinner.component.d.ts +8 -0
  132. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +22 -0
  133. package/components/logo/logo.directive.d.ts +15 -0
  134. package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +5 -1
  135. package/components/main-menu/lib/directives/main-menu-close.directive.d.ts +3 -0
  136. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +16 -0
  137. package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +1 -0
  138. package/components/main-menu/lib/main-menu.component.d.ts +42 -0
  139. package/components/main-menu/lib/main-menu.config.d.ts +31 -0
  140. package/components/main-menu/lib/main-menu.service.d.ts +28 -0
  141. package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +4 -0
  142. package/components/menu/lib/directives/menu-item.directive.d.ts +6 -0
  143. package/components/menu/lib/menu.component.d.ts +13 -1
  144. package/components/menu/lib/menu.directive.d.ts +31 -0
  145. package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +14 -0
  146. package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +3 -0
  147. package/components/modal/lib/components/modal-header/modal-header.component.d.ts +9 -0
  148. package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +21 -0
  149. package/components/modal/lib/directives/modal-close.directive.d.ts +25 -1
  150. package/components/modal/lib/directives/modal-content.directive.d.ts +3 -0
  151. package/components/modal/lib/directives/modal-dismiss.directive.d.ts +18 -1
  152. package/components/modal/lib/helpers/inject-modal-ref.d.ts +21 -0
  153. package/components/modal/lib/helpers/provide-modal-ref.d.ts +9 -0
  154. package/components/modal/lib/modal.component.d.ts +25 -0
  155. package/components/modal/lib/modal.config.d.ts +33 -0
  156. package/components/modal/lib/modal.directive.d.ts +29 -0
  157. package/components/modal/lib/modal.service.d.ts +54 -0
  158. package/components/modal/lib/models/modal-ref.d.ts +34 -0
  159. package/components/navigation-back/lib/navigation-back.component.d.ts +3 -0
  160. package/components/notification/lib/components/notification-center/notification-center.component.d.ts +0 -2
  161. package/components/notification/lib/directives/notification-center.directive.d.ts +18 -4
  162. package/components/notification/lib/helpers/get-notifications-by-tag.d.ts +1 -0
  163. package/components/notification/lib/helpers/sort-notifications.d.ts +1 -0
  164. package/components/notification/lib/helpers/to-notification-collection.d.ts +1 -0
  165. package/components/notification/lib/models/notification-feature.d.ts +15 -0
  166. package/components/notification/lib/notification.config.d.ts +54 -0
  167. package/components/notification/lib/notification.logger.d.ts +1 -0
  168. package/components/notification/lib/notification.service.d.ts +55 -0
  169. package/components/notification/lib/notification.tokens.d.ts +3 -0
  170. package/components/notification/lib/services/notification-center.service.d.ts +9 -0
  171. package/components/paginator/lib/paginator.component.d.ts +89 -0
  172. package/components/paginator/lib/paginator.config.d.ts +24 -2
  173. package/components/progress/lib/progress.component.d.ts +15 -0
  174. package/components/radio-group/lib/components/radio-button/radio-button.component.d.ts +18 -1
  175. package/components/radio-group/lib/radio-group.component.d.ts +11 -0
  176. package/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.d.ts +19 -0
  177. package/components/rail-navigation/lib/rail-navigation.component.d.ts +26 -0
  178. package/components/rich-list/lib/components/rich-list-content/rich-list-content.component.d.ts +4 -0
  179. package/components/rich-list/lib/components/rich-list-header/rich-list-header.component.d.ts +4 -0
  180. package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +9 -1
  181. package/components/rich-list/lib/rich-list.component.d.ts +9 -2
  182. package/components/select/lib/components/select-option/select-option.component.d.ts +39 -2
  183. package/components/select/lib/directives/select-input-control.directive.d.ts +11 -0
  184. package/components/select/lib/pipes/select-search-filter.pipe.d.ts +10 -0
  185. package/components/select/lib/select.component.d.ts +59 -0
  186. package/components/slider/lib/slider.directive.d.ts +19 -0
  187. package/components/spinbox/lib/spinbox.component.d.ts +16 -0
  188. package/components/switch/lib/switch.component.d.ts +10 -0
  189. package/components/switch/lib/switch.validator.d.ts +12 -0
  190. package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +28 -0
  191. package/components/tab-bar/lib/tab-bar.component.d.ts +69 -0
  192. package/components/table/lib/components/check-cell/check-cell.component.d.ts +18 -0
  193. package/components/table/lib/components/header-title/header-title.component.d.ts +33 -1
  194. package/components/table/lib/directives/table-cell.directive.d.ts +4 -0
  195. package/components/table/lib/directives/table-row.directive.d.ts +4 -0
  196. package/components/table/lib/table.component.d.ts +36 -0
  197. package/components/timepicker/lib/timepicker.component.d.ts +11 -2
  198. package/components/timepicker/lib/utils/generate-time-stamps.d.ts +2 -1
  199. package/components/timepicker/lib/utils/ngx-mask-helper.d.ts +2 -2
  200. package/components/toast/lib/components/toast-item/toast-item.component.d.ts +5 -4
  201. package/components/toast/lib/models/toast.d.ts +4 -2
  202. package/components/toast/lib/toast.config.d.ts +26 -0
  203. package/components/toast/lib/toast.service.d.ts +35 -0
  204. package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +11 -0
  205. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +12 -0
  206. package/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.d.ts +7 -0
  207. package/components/tooltip/lib/tooltip.component.d.ts +20 -0
  208. package/components/tooltip/lib/tooltip.directive.d.ts +35 -0
  209. package/components/wizard/lib/components/wizard-step/wizard-step.component.d.ts +34 -0
  210. package/components/wizard/lib/wizard.component.d.ts +20 -0
  211. package/esm2022/animations/lib/expand.mjs +45 -1
  212. package/esm2022/animations/lib/fade.mjs +71 -1
  213. package/esm2022/animations/lib/slide.mjs +22 -1
  214. package/esm2022/animations/lib/wait-for-child-animations.mjs +39 -1
  215. package/esm2022/breakpoints/lib/breakpoints.config.mjs +39 -1
  216. package/esm2022/breakpoints/lib/breakpoints.service.mjs +44 -1
  217. package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +37 -1
  218. package/esm2022/breakpoints/lib/helpers/configure-breakpoint.mjs +20 -1
  219. package/esm2022/cdk/a11y/lib/directives/interactive.directive.mjs +33 -1
  220. package/esm2022/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +23 -1
  221. package/esm2022/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +18 -1
  222. package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +64 -1
  223. package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +40 -2
  224. package/esm2022/cdk/checkbox-control/lib/checkbox-control.directive.mjs +4 -1
  225. package/esm2022/cdk/connected-overlay/lib/connected-overlay.service.mjs +45 -1
  226. package/esm2022/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +11 -1
  227. package/esm2022/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +50 -1
  228. package/esm2022/cdk/custom-form-control/lib/custom-form-control.mjs +109 -3
  229. package/esm2022/cdk/custom-form-control/lib/input-control.directive.mjs +76 -1
  230. package/esm2022/cdk/dynamic-view/lib/dynamic-view.directive.mjs +18 -1
  231. package/esm2022/cdk/dynamic-view/lib/dynamic-view.service.mjs +31 -1
  232. package/esm2022/cdk/dynamic-view/lib/helpers/create-projectable-nodes.mjs +23 -1
  233. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.mjs +23 -1
  234. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-view.mjs +23 -1
  235. package/esm2022/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +40 -1
  236. package/esm2022/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +37 -1
  237. package/esm2022/cdk/dynamic-view/lib/tokens/dynamic-view-context.mjs +5 -1
  238. package/esm2022/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.mjs +11 -1
  239. package/esm2022/cdk/event-plugins/lib/event-plugins.config.mjs +36 -1
  240. package/esm2022/cdk/event-plugins/lib/models/event-plugin.mjs +45 -1
  241. package/esm2022/cdk/event-plugins/lib/plugins/debounce-event-plugin.mjs +33 -1
  242. package/esm2022/cdk/event-plugins/lib/plugins/defer-event-plugin.mjs +25 -1
  243. package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +42 -1
  244. package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +48 -1
  245. package/esm2022/cdk/option-control/lib/option-control.mjs +48 -1
  246. package/esm2022/cdk/radio-group-control/lib/radio-control.directive.mjs +9 -1
  247. package/esm2022/cdk/radio-group-control/lib/radio-group-control.directive.mjs +12 -1
  248. package/esm2022/components/accordion/lib/accordion.component.mjs +9 -1
  249. package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +31 -1
  250. package/esm2022/components/accordion/lib/directives/accordion-item-title.mjs +4 -1
  251. package/esm2022/components/action-group/action-group.component.mjs +7 -1
  252. package/esm2022/components/area-header/area-header.component.mjs +9 -1
  253. package/esm2022/components/area-header/directives/area-header-content.directive.mjs +4 -1
  254. package/esm2022/components/area-header/directives/area-header-subtitle.directive.mjs +4 -1
  255. package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +29 -5
  256. package/esm2022/components/avatar/lib/avatar.component.mjs +9 -1
  257. package/esm2022/components/badge/lib/badge.component.mjs +11 -1
  258. package/esm2022/components/badge/lib/badge.directive.mjs +16 -1
  259. package/esm2022/components/bar/lib/bar.component.mjs +8 -1
  260. package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +4 -1
  261. package/esm2022/components/bar/lib/directives/bar-label.directive.mjs +4 -1
  262. package/esm2022/components/breadcrumbs/lib/breadcrumbs.component.mjs +4 -1
  263. package/esm2022/components/button/lib/button.component.mjs +11 -1
  264. package/esm2022/components/button-group/lib/button-group.component.mjs +16 -1
  265. package/esm2022/components/calendar/lib/calendar.component.mjs +35 -1
  266. package/esm2022/components/calendar/lib/calendar.config.mjs +18 -1
  267. package/esm2022/components/calendar/lib/calendar.service.mjs +49 -1
  268. package/esm2022/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +19 -1
  269. package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +7 -1
  270. package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +7 -1
  271. package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +7 -1
  272. package/esm2022/components/calendar/lib/daterange.service.mjs +17 -1
  273. package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +26 -1
  274. package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +39 -1
  275. package/esm2022/components/calendar/lib/pipes/date-label.pipe.mjs +6 -1
  276. package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +2 -1
  277. package/esm2022/components/calendar/lib/services/calendar-year.service.mjs +2 -1
  278. package/esm2022/components/calendar/lib/services/calendar-years.service.mjs +2 -1
  279. package/esm2022/components/calendar/lib/utils/check-cell-in-range.mjs +2 -1
  280. package/esm2022/components/calendar/lib/utils/check-identical-date.mjs +2 -1
  281. package/esm2022/components/calendar/lib/utils/get-A11y-label.mjs +2 -1
  282. package/esm2022/components/calendar/lib/utils/is-date-disabled.mjs +2 -1
  283. package/esm2022/components/calendar/lib/utils/parse-date.mjs +2 -1
  284. package/esm2022/components/calendar/lib/utils/validate-daterange.mjs +2 -1
  285. package/esm2022/components/calendar/lib/utils/validate-max-date.mjs +2 -1
  286. package/esm2022/components/calendar/lib/utils/validate-min-date.mjs +2 -1
  287. package/esm2022/components/calendar/lib/utils/validate-next-date-set.mjs +2 -1
  288. package/esm2022/components/calendar/lib/utils/validate-previous-date-set.mjs +2 -1
  289. package/esm2022/components/checkbox/lib/checkbox.component.mjs +33 -1
  290. package/esm2022/components/checkbox/lib/checkbox.validator.mjs +24 -1
  291. package/esm2022/components/chip/lib/components/chip/chip.component.mjs +15 -1
  292. package/esm2022/components/chip/lib/components/chip-list/chip-list.component.mjs +4 -1
  293. package/esm2022/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +4 -1
  294. package/esm2022/components/circular-progress/lib/circular-progress.component.mjs +21 -1
  295. package/esm2022/components/content-box/lib/content-box.component.mjs +4 -1
  296. package/esm2022/components/content-box/lib/directives/content-box-footer.directive.mjs +4 -1
  297. package/esm2022/components/content-box/lib/directives/content-box-header.directive.mjs +4 -1
  298. package/esm2022/components/datepicker/lib/datepicker.component.mjs +33 -1
  299. package/esm2022/components/datepicker/lib/datepicker.config.mjs +20 -1
  300. package/esm2022/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +31 -1
  301. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +3 -1
  302. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +2 -1
  303. package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +65 -1
  304. package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +20 -1
  305. package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +31 -1
  306. package/esm2022/components/daterangepicker/lib/range.validator.mjs +16 -1
  307. package/esm2022/components/daterangepicker/lib/required.validator.mjs +15 -1
  308. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.mjs +3 -1
  309. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.mjs +2 -1
  310. package/esm2022/components/dropdown/lib/dropdown.component.mjs +8 -1
  311. package/esm2022/components/dropdown/lib/dropdown.directive.mjs +55 -1
  312. package/esm2022/components/dropdown/lib/helpers/close-current-dropdown.mjs +6 -1
  313. package/esm2022/components/error-page/lib/error-page.component.mjs +8 -1
  314. package/esm2022/components/error-page/lib/error-page.config.mjs +9 -1
  315. package/esm2022/components/footer/lib/footer.component.mjs +10 -7
  316. package/esm2022/components/footer/lib/footer.config.mjs +3 -1
  317. package/esm2022/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +14 -1
  318. package/esm2022/components/form-field/lib/components/form-group/form-group.component.mjs +13 -1
  319. package/esm2022/components/form-field/lib/directives/form-field-control.directive.mjs +6 -1
  320. package/esm2022/components/form-field/lib/directives/form-field-error.directive.mjs +4 -1
  321. package/esm2022/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -1
  322. package/esm2022/components/form-field/lib/directives/form-field-label.directive.mjs +4 -1
  323. package/esm2022/components/form-field/lib/directives/form.directive.mjs +14 -1
  324. package/esm2022/components/form-field/lib/form-field.component.mjs +14 -1
  325. package/esm2022/components/form-field/lib/form-field.service.mjs +43 -1
  326. package/esm2022/components/form-field/lib/services/form-field-error.service.mjs +25 -1
  327. package/esm2022/components/header/lib/directives/header-avatar.directive.mjs +5 -1
  328. package/esm2022/components/header/lib/directives/header-title.directive.mjs +4 -1
  329. package/esm2022/components/header/lib/header.component.mjs +4 -1
  330. package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +4 -1
  331. package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +4 -1
  332. package/esm2022/components/icon/lib/helpers/unpack-icon-identifier.mjs +15 -1
  333. package/esm2022/components/icon/lib/icon.component.mjs +25 -1
  334. package/esm2022/components/icon/lib/icon.config.mjs +20 -1
  335. package/esm2022/components/inline-message/lib/inline-message.component.mjs +14 -1
  336. package/esm2022/components/link/link.directive.mjs +4 -1
  337. package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +7 -1
  338. package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +18 -2
  339. package/esm2022/components/list/lib/list.component.mjs +6 -1
  340. package/esm2022/components/loading-spinner/lib/loading-spinner.component.mjs +10 -2
  341. package/esm2022/components/loading-spinner/lib/loading-spinner.directive.mjs +23 -1
  342. package/esm2022/components/logo/logo.directive.mjs +16 -1
  343. package/esm2022/components/main-menu/lib/directives/main-menu-button.directive.mjs +5 -1
  344. package/esm2022/components/main-menu/lib/directives/main-menu-close.directive.mjs +4 -1
  345. package/esm2022/components/main-menu/lib/directives/main-menu-item.directive.mjs +17 -1
  346. package/esm2022/components/main-menu/lib/helpers/create-main-menu-links.mjs +2 -1
  347. package/esm2022/components/main-menu/lib/main-menu.component.mjs +37 -1
  348. package/esm2022/components/main-menu/lib/main-menu.config.mjs +32 -1
  349. package/esm2022/components/main-menu/lib/main-menu.service.mjs +29 -1
  350. package/esm2022/components/mainfilter-group/lib/mainfilter-group.component.mjs +5 -1
  351. package/esm2022/components/menu/lib/directives/menu-item.directive.mjs +7 -1
  352. package/esm2022/components/menu/lib/menu.component.mjs +13 -1
  353. package/esm2022/components/menu/lib/menu.directive.mjs +19 -1
  354. package/esm2022/components/modal/lib/components/basic-modal/basic-modal.component.mjs +15 -1
  355. package/esm2022/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -1
  356. package/esm2022/components/modal/lib/components/modal-header/modal-header.component.mjs +4 -1
  357. package/esm2022/components/modal/lib/components/modal-hero/modal-hero.component.mjs +12 -1
  358. package/esm2022/components/modal/lib/directives/modal-close.directive.mjs +25 -1
  359. package/esm2022/components/modal/lib/directives/modal-content.directive.mjs +4 -1
  360. package/esm2022/components/modal/lib/directives/modal-dismiss.directive.mjs +18 -1
  361. package/esm2022/components/modal/lib/helpers/inject-modal-ref.mjs +22 -1
  362. package/esm2022/components/modal/lib/helpers/provide-modal-ref.mjs +10 -1
  363. package/esm2022/components/modal/lib/modal.component.mjs +21 -2
  364. package/esm2022/components/modal/lib/modal.config.mjs +34 -1
  365. package/esm2022/components/modal/lib/modal.directive.mjs +25 -1
  366. package/esm2022/components/modal/lib/modal.service.mjs +39 -1
  367. package/esm2022/components/modal/lib/models/modal-ref.mjs +34 -1
  368. package/esm2022/components/navigation-back/lib/navigation-back.component.mjs +4 -1
  369. package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +1 -3
  370. package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +19 -5
  371. package/esm2022/components/notification/lib/helpers/get-notifications-by-tag.mjs +2 -1
  372. package/esm2022/components/notification/lib/helpers/sort-notifications.mjs +2 -1
  373. package/esm2022/components/notification/lib/helpers/to-notification-collection.mjs +2 -1
  374. package/esm2022/components/notification/lib/models/notification-feature.mjs +16 -1
  375. package/esm2022/components/notification/lib/notification.config.mjs +45 -1
  376. package/esm2022/components/notification/lib/notification.logger.mjs +2 -1
  377. package/esm2022/components/notification/lib/notification.service.mjs +56 -1
  378. package/esm2022/components/notification/lib/notification.tokens.mjs +4 -1
  379. package/esm2022/components/notification/lib/services/notification-center.service.mjs +10 -1
  380. package/esm2022/components/paginator/lib/paginator.component.mjs +90 -1
  381. package/esm2022/components/paginator/lib/paginator.config.mjs +29 -1
  382. package/esm2022/components/progress/lib/progress.component.mjs +16 -1
  383. package/esm2022/components/radio-group/lib/components/radio-button/radio-button.component.mjs +20 -3
  384. package/esm2022/components/radio-group/lib/radio-group.component.mjs +13 -2
  385. package/esm2022/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +17 -1
  386. package/esm2022/components/rail-navigation/lib/rail-navigation.component.mjs +27 -1
  387. package/esm2022/components/rich-list/lib/components/rich-list-content/rich-list-content.component.mjs +5 -1
  388. package/esm2022/components/rich-list/lib/components/rich-list-header/rich-list-header.component.mjs +5 -1
  389. package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +10 -2
  390. package/esm2022/components/rich-list/lib/rich-list.component.mjs +10 -3
  391. package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +49 -7
  392. package/esm2022/components/select/lib/directives/select-input-control.directive.mjs +12 -2
  393. package/esm2022/components/select/lib/pipes/select-search-filter.pipe.mjs +11 -1
  394. package/esm2022/components/select/lib/select.component.mjs +59 -5
  395. package/esm2022/components/slider/lib/slider.directive.mjs +20 -1
  396. package/esm2022/components/spinbox/lib/spinbox.component.mjs +17 -1
  397. package/esm2022/components/switch/lib/switch.component.mjs +11 -1
  398. package/esm2022/components/switch/lib/switch.validator.mjs +13 -1
  399. package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +29 -1
  400. package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +71 -1
  401. package/esm2022/components/table/lib/components/check-cell/check-cell.component.mjs +19 -1
  402. package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +30 -2
  403. package/esm2022/components/table/lib/directives/table-cell.directive.mjs +5 -1
  404. package/esm2022/components/table/lib/directives/table-row.directive.mjs +5 -1
  405. package/esm2022/components/table/lib/table.component.mjs +30 -1
  406. package/esm2022/components/timepicker/lib/timepicker.component.mjs +15 -6
  407. package/esm2022/components/timepicker/lib/utils/generate-time-stamps.mjs +5 -3
  408. package/esm2022/components/timepicker/lib/utils/ngx-mask-helper.mjs +3 -3
  409. package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs +3 -3
  410. package/esm2022/components/toast/lib/components/toast-item/toast-item.component.mjs +5 -3
  411. package/esm2022/components/toast/lib/models/toast.mjs +1 -1
  412. package/esm2022/components/toast/lib/toast.config.mjs +27 -1
  413. package/esm2022/components/toast/lib/toast.service.mjs +36 -1
  414. package/esm2022/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +12 -1
  415. package/esm2022/components/toggle-button-group/lib/toggle-button-group.component.mjs +14 -2
  416. package/esm2022/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.mjs +8 -1
  417. package/esm2022/components/tooltip/lib/tooltip.component.mjs +18 -1
  418. package/esm2022/components/tooltip/lib/tooltip.directive.mjs +36 -1
  419. package/esm2022/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +35 -1
  420. package/esm2022/components/wizard/lib/wizard.component.mjs +21 -1
  421. package/esm2022/internal/lib/helpers/decorator-property-name.mjs +9 -1
  422. package/esm2022/internal/translate/lib/translate.config.mjs +32 -1
  423. package/esm2022/internal/translate/lib/translate.service.mjs +30 -1
  424. package/esm2022/lib/controllers/controller.mjs +26 -1
  425. package/esm2022/lib/controllers/disabled.controller.mjs +60 -1
  426. package/esm2022/lib/controllers/readonly.controller.mjs +57 -1
  427. package/esm2022/lib/directives/click-outside.directive.mjs +30 -1
  428. package/esm2022/lib/directives/delegate-focus.directive.mjs +15 -1
  429. package/esm2022/lib/services/window-ref.mjs +67 -1
  430. package/esm2022/lib/tokens/identity-matcher.mjs +25 -1
  431. package/esm2022/lib/tokens/string-search-handler.mjs +25 -1
  432. package/esm2022/lib/tokens/stringify.mjs +26 -1
  433. package/esm2022/localization/lib/features/with-http-language-header.mjs +54 -1
  434. package/esm2022/localization/lib/features/with-http-language-query-param.mjs +52 -1
  435. package/esm2022/localization/lib/loaders/browser-language-loader.mjs +33 -1
  436. package/esm2022/localization/lib/localization.config.mjs +71 -1
  437. package/esm2022/localization/lib/localization.service.mjs +42 -3
  438. package/esm2022/localization/lib/models/localization-feature.mjs +8 -1
  439. package/esm2022/rxjs/index.mjs +2 -2
  440. package/esm2022/rxjs/lib/delay-until.mjs +23 -1
  441. package/esm2022/rxjs/lib/from-element-mutation.mjs +22 -1
  442. package/esm2022/rxjs/lib/from-element-resize.mjs +25 -1
  443. package/esm2022/rxjs/lib/from-events.mjs +25 -1
  444. package/esm2022/rxjs/lib/from-query-list.mjs +24 -0
  445. package/esm2022/sdk/lib/application-environment.mjs +51 -1
  446. package/esm2022/theming/lib/helpers/prefers-dark-theme.mjs +19 -1
  447. package/esm2022/theming/lib/helpers/resolve-theme.mjs +26 -1
  448. package/esm2022/theming/lib/helpers/theme-storage.mjs +43 -1
  449. package/esm2022/theming/lib/theming.config.mjs +34 -1
  450. package/esm2022/theming/lib/theming.service.mjs +32 -1
  451. package/esm2022/utils/lib/decorators/pure.mjs +52 -1
  452. package/esm2022/utils/lib/helpers/angular.mjs +37 -1
  453. package/esm2022/utils/lib/helpers/array.mjs +5 -1
  454. package/esm2022/utils/lib/helpers/build-url.mjs +21 -1
  455. package/esm2022/utils/lib/helpers/build-website-url.mjs +3 -2
  456. package/esm2022/utils/lib/helpers/cache-storage-client.mjs +52 -1
  457. package/esm2022/utils/lib/helpers/coercion.mjs +18 -1
  458. package/esm2022/utils/lib/helpers/debounce.mjs +28 -1
  459. package/esm2022/utils/lib/helpers/defer-fn.mjs +21 -1
  460. package/esm2022/utils/lib/helpers/dom.mjs +71 -1
  461. package/esm2022/utils/lib/helpers/get-axis.mjs +21 -1
  462. package/esm2022/utils/lib/helpers/get-language-code.mjs +18 -1
  463. package/esm2022/utils/lib/helpers/get-opposite-side.mjs +22 -1
  464. package/esm2022/utils/lib/helpers/get-side.mjs +18 -1
  465. package/esm2022/utils/lib/helpers/get-unique-id.mjs +34 -1
  466. package/esm2022/utils/lib/helpers/match-url.mjs +41 -1
  467. package/esm2022/utils/lib/helpers/ng-changes.mjs +30 -1
  468. package/esm2022/utils/lib/helpers/provide-config.mjs +57 -1
  469. package/esm2022/utils/lib/helpers/queue.mjs +84 -1
  470. package/esm2022/utils/lib/helpers/type-guards.mjs +58 -1
  471. package/esm2022/utils/lib/helpers/until-destroyed.mjs +39 -1
  472. package/fesm2022/odx-angular-animations.mjs +173 -0
  473. package/fesm2022/odx-angular-animations.mjs.map +1 -1
  474. package/fesm2022/odx-angular-breakpoints.mjs +136 -0
  475. package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
  476. package/fesm2022/odx-angular-cdk-a11y.mjs +71 -0
  477. package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
  478. package/fesm2022/odx-angular-cdk-active-indicator.mjs +63 -0
  479. package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
  480. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +39 -1
  481. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  482. package/fesm2022/odx-angular-cdk-checkbox-control.mjs +3 -0
  483. package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  484. package/fesm2022/odx-angular-cdk-connected-overlay.mjs +103 -0
  485. package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  486. package/fesm2022/odx-angular-cdk-custom-form-control.mjs +183 -2
  487. package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  488. package/fesm2022/odx-angular-cdk-dynamic-view.mjs +202 -0
  489. package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  490. package/fesm2022/odx-angular-cdk-event-plugins.mjs +135 -0
  491. package/fesm2022/odx-angular-cdk-event-plugins.mjs.map +1 -1
  492. package/fesm2022/odx-angular-cdk-expandable.mjs +88 -0
  493. package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
  494. package/fesm2022/odx-angular-cdk-option-control.mjs +47 -0
  495. package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
  496. package/fesm2022/odx-angular-cdk-radio-group-control.mjs +19 -0
  497. package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  498. package/fesm2022/odx-angular-components-accordion.mjs +41 -0
  499. package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
  500. package/fesm2022/odx-angular-components-action-group.mjs +6 -0
  501. package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
  502. package/fesm2022/odx-angular-components-area-header.mjs +14 -0
  503. package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
  504. package/fesm2022/odx-angular-components-autocomplete.mjs +28 -4
  505. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  506. package/fesm2022/odx-angular-components-avatar.mjs +8 -0
  507. package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
  508. package/fesm2022/odx-angular-components-badge.mjs +25 -0
  509. package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
  510. package/fesm2022/odx-angular-components-bar.mjs +13 -0
  511. package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
  512. package/fesm2022/odx-angular-components-breadcrumbs.mjs +3 -0
  513. package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
  514. package/fesm2022/odx-angular-components-button-group.mjs +15 -0
  515. package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
  516. package/fesm2022/odx-angular-components-button.mjs +10 -0
  517. package/fesm2022/odx-angular-components-button.mjs.map +1 -1
  518. package/fesm2022/odx-angular-components-calendar.mjs +232 -0
  519. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  520. package/fesm2022/odx-angular-components-checkbox.mjs +55 -0
  521. package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
  522. package/fesm2022/odx-angular-components-chip.mjs +20 -0
  523. package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
  524. package/fesm2022/odx-angular-components-circular-progress.mjs +20 -0
  525. package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
  526. package/fesm2022/odx-angular-components-content-box.mjs +9 -0
  527. package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
  528. package/fesm2022/odx-angular-components-datepicker.mjs +84 -0
  529. package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
  530. package/fesm2022/odx-angular-components-daterangepicker.mjs +145 -0
  531. package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
  532. package/fesm2022/odx-angular-components-dropdown.mjs +66 -0
  533. package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
  534. package/fesm2022/odx-angular-components-error-page.mjs +15 -0
  535. package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
  536. package/fesm2022/odx-angular-components-footer.mjs +11 -6
  537. package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
  538. package/fesm2022/odx-angular-components-form-field.mjs +131 -0
  539. package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
  540. package/fesm2022/odx-angular-components-header-navigation.mjs +6 -0
  541. package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
  542. package/fesm2022/odx-angular-components-header.mjs +10 -0
  543. package/fesm2022/odx-angular-components-header.mjs.map +1 -1
  544. package/fesm2022/odx-angular-components-icon.mjs +57 -0
  545. package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
  546. package/fesm2022/odx-angular-components-inline-message.mjs +13 -0
  547. package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
  548. package/fesm2022/odx-angular-components-link.mjs +3 -0
  549. package/fesm2022/odx-angular-components-link.mjs.map +1 -1
  550. package/fesm2022/odx-angular-components-list.mjs +28 -1
  551. package/fesm2022/odx-angular-components-list.mjs.map +1 -1
  552. package/fesm2022/odx-angular-components-loading-spinner.mjs +30 -0
  553. package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
  554. package/fesm2022/odx-angular-components-logo.mjs +15 -0
  555. package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
  556. package/fesm2022/odx-angular-components-main-menu.mjs +119 -0
  557. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  558. package/fesm2022/odx-angular-components-mainfilter-group.mjs +4 -0
  559. package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
  560. package/fesm2022/odx-angular-components-menu.mjs +36 -0
  561. package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
  562. package/fesm2022/odx-angular-components-modal.mjs +252 -0
  563. package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
  564. package/fesm2022/odx-angular-components-navigation-back.mjs +3 -0
  565. package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
  566. package/fesm2022/odx-angular-components-notification.mjs +148 -6
  567. package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
  568. package/fesm2022/odx-angular-components-paginator.mjs +117 -0
  569. package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
  570. package/fesm2022/odx-angular-components-progress.mjs +15 -0
  571. package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
  572. package/fesm2022/odx-angular-components-radio-group.mjs +30 -2
  573. package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
  574. package/fesm2022/odx-angular-components-rail-navigation.mjs +42 -0
  575. package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
  576. package/fesm2022/odx-angular-components-rich-list.mjs +26 -3
  577. package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
  578. package/fesm2022/odx-angular-components-select.mjs +126 -11
  579. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  580. package/fesm2022/odx-angular-components-slider.mjs +19 -0
  581. package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
  582. package/fesm2022/odx-angular-components-spinbox.mjs +16 -0
  583. package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
  584. package/fesm2022/odx-angular-components-switch.mjs +22 -0
  585. package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
  586. package/fesm2022/odx-angular-components-tab-bar.mjs +98 -0
  587. package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
  588. package/fesm2022/odx-angular-components-table.mjs +84 -1
  589. package/fesm2022/odx-angular-components-table.mjs.map +1 -1
  590. package/fesm2022/odx-angular-components-timepicker.mjs +20 -9
  591. package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
  592. package/fesm2022/odx-angular-components-toast.mjs +67 -4
  593. package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
  594. package/fesm2022/odx-angular-components-toggle-button-group.mjs +23 -0
  595. package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
  596. package/fesm2022/odx-angular-components-tooltip.mjs +59 -0
  597. package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
  598. package/fesm2022/odx-angular-components-wizard.mjs +54 -0
  599. package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
  600. package/fesm2022/odx-angular-internal-translate.mjs +60 -0
  601. package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
  602. package/fesm2022/odx-angular-internal.mjs +8 -0
  603. package/fesm2022/odx-angular-internal.mjs.map +1 -1
  604. package/fesm2022/odx-angular-localization.mjs +254 -2
  605. package/fesm2022/odx-angular-localization.mjs.map +1 -1
  606. package/fesm2022/odx-angular-rxjs.mjs +115 -5
  607. package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
  608. package/fesm2022/odx-angular-sdk.mjs +50 -0
  609. package/fesm2022/odx-angular-sdk.mjs.map +1 -1
  610. package/fesm2022/odx-angular-theming.mjs +149 -0
  611. package/fesm2022/odx-angular-theming.mjs.map +1 -1
  612. package/fesm2022/odx-angular-utils.mjs +709 -1
  613. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  614. package/fesm2022/odx-angular.mjs +322 -0
  615. package/fesm2022/odx-angular.mjs.map +1 -1
  616. package/internal/lib/helpers/decorator-property-name.d.ts +8 -0
  617. package/internal/translate/lib/translate.config.d.ts +31 -0
  618. package/internal/translate/lib/translate.service.d.ts +29 -0
  619. package/lib/controllers/controller.d.ts +25 -0
  620. package/lib/controllers/disabled.controller.d.ts +59 -0
  621. package/lib/controllers/readonly.controller.d.ts +56 -0
  622. package/lib/directives/click-outside.directive.d.ts +29 -0
  623. package/lib/directives/delegate-focus.directive.d.ts +14 -0
  624. package/lib/services/window-ref.d.ts +66 -0
  625. package/lib/tokens/identity-matcher.d.ts +41 -0
  626. package/lib/tokens/string-search-handler.d.ts +39 -0
  627. package/lib/tokens/stringify.d.ts +42 -0
  628. package/localization/lib/features/with-http-language-header.d.ts +63 -0
  629. package/localization/lib/features/with-http-language-query-param.d.ts +61 -0
  630. package/localization/lib/loaders/browser-language-loader.d.ts +32 -0
  631. package/localization/lib/localization.config.d.ts +81 -0
  632. package/localization/lib/localization.service.d.ts +39 -0
  633. package/localization/lib/models/localization-feature.d.ts +7 -0
  634. package/package.json +1 -1
  635. package/rxjs/index.d.ts +1 -1
  636. package/rxjs/lib/delay-until.d.ts +22 -0
  637. package/rxjs/lib/from-element-mutation.d.ts +21 -0
  638. package/rxjs/lib/from-element-resize.d.ts +24 -0
  639. package/rxjs/lib/from-events.d.ts +24 -0
  640. package/rxjs/lib/from-query-list.d.ts +22 -0
  641. package/sdk/lib/application-environment.d.ts +59 -0
  642. package/theming/lib/helpers/prefers-dark-theme.d.ts +18 -0
  643. package/theming/lib/helpers/resolve-theme.d.ts +25 -0
  644. package/theming/lib/helpers/theme-storage.d.ts +42 -0
  645. package/theming/lib/theming.config.d.ts +46 -0
  646. package/theming/lib/theming.service.d.ts +31 -0
  647. package/utils/lib/decorators/pure.d.ts +51 -0
  648. package/utils/lib/helpers/angular.d.ts +36 -0
  649. package/utils/lib/helpers/array.d.ts +4 -0
  650. package/utils/lib/helpers/build-url.d.ts +20 -0
  651. package/utils/lib/helpers/build-website-url.d.ts +2 -1
  652. package/utils/lib/helpers/cache-storage-client.d.ts +51 -0
  653. package/utils/lib/helpers/coercion.d.ts +17 -0
  654. package/utils/lib/helpers/debounce.d.ts +27 -0
  655. package/utils/lib/helpers/defer-fn.d.ts +20 -0
  656. package/utils/lib/helpers/dom.d.ts +70 -0
  657. package/utils/lib/helpers/get-axis.d.ts +20 -0
  658. package/utils/lib/helpers/get-language-code.d.ts +17 -0
  659. package/utils/lib/helpers/get-opposite-side.d.ts +21 -0
  660. package/utils/lib/helpers/get-side.d.ts +17 -0
  661. package/utils/lib/helpers/get-unique-id.d.ts +33 -0
  662. package/utils/lib/helpers/match-url.d.ts +40 -0
  663. package/utils/lib/helpers/ng-changes.d.ts +52 -0
  664. package/utils/lib/helpers/provide-config.d.ts +56 -0
  665. package/utils/lib/helpers/queue.d.ts +83 -0
  666. package/utils/lib/helpers/type-guards.d.ts +57 -0
  667. package/utils/lib/helpers/until-destroyed.d.ts +38 -0
  668. package/esm2022/rxjs/lib/form-query-list.mjs +0 -5
  669. package/rxjs/lib/form-query-list.d.ts +0 -3
@@ -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=
@@ -7,6 +7,42 @@ import { BehaviorSubject, EMPTY, distinctUntilChanged, switchMap } from 'rxjs';
7
7
  import { ActiveIndicatorPosition } from './models';
8
8
  import { ActiveIndicatorDirection } from './models/active-indicator-direction';
9
9
  import * as i0 from "@angular/core";
10
+ /**
11
+ * `ActiveIndicatorDirective` is designed to adjust an indicator's position and size dynamically to highlight
12
+ * the active element within a container. It's useful for tabs, menus, or any list where an active state is visually represented.
13
+ * The directive can be customized to align the indicator based on the active element's position and supports
14
+ * both horizontal and vertical orientations.
15
+ *
16
+ * To use this directive, apply it to the element you want to use as an active indicator.
17
+ * Then, bind the active element using the `odxActiveIndicator` input. Optionally, specify
18
+ * the container element with `odxActiveIndicatorParent` if the container is not the immediate parent of the indicator.
19
+ *
20
+ * @example
21
+ * ```html
22
+ * <div class="tabs-container" #tabsContainer>
23
+ * <div class="tab" *ngFor="let tab of tabs" [class.active]="tab.isActive" #tabElement>{{ tab.label }}</div>
24
+ * <div class="indicator" [odxActiveIndicator]="activeTabElement" [odxActiveIndicatorParent]="tabsContainer"></div>
25
+ * </div>
26
+ * ```
27
+ *
28
+ * ```ts
29
+ * @Component({
30
+ * selector: 'app-tabs',
31
+ * templateUrl: './tabs.component.html',
32
+ * imports: [ActiveIndicatorDirective, NgForOf],
33
+ * })
34
+ * export class TabsComponent {
35
+ * tabs = [{ label: 'Tab 1', isActive: true }, { label: 'Tab 2', isActive: false }];
36
+ * @ViewChildren('tabElement') tabElements?: QueryList<ElementRef>;
37
+ * @ViewChild('tabsContainer') tabsContainer!: ElementRef;
38
+ *
39
+ * get activeTabElement(): HTMLElement {
40
+ * const activeTab = this.tabElements?.find((tab) => tab.nativeElement.classList.contains('active'));
41
+ * return activeTab ? activeTab.nativeElement : null;
42
+ * }
43
+ * }
44
+ * ```
45
+ */
10
46
  export let ActiveIndicatorDirective = class ActiveIndicatorDirective {
11
47
  constructor() {
12
48
  this.takeUntilDestroyed = untilDestroyed();
@@ -15,11 +51,38 @@ export let ActiveIndicatorDirective = class ActiveIndicatorDirective {
15
51
  return parentElement ? fromElementResize$(parentElement) : EMPTY;
16
52
  }));
17
53
  this.element = injectElement();
54
+ /**
55
+ * Indicates whether the element is active or not.
56
+ *
57
+ * @type {boolean}
58
+ */
18
59
  this.isActive = false;
60
+ /**
61
+ * The currently active element to which the indicator should align.
62
+ * It dynamically updates the indicator's position and size based on this element.
63
+ *
64
+ * @type {HTMLElement | null}
65
+ */
19
66
  this.activeElement = null;
67
+ /**
68
+ * The direction in which the indicator should move.
69
+ *
70
+ * @type {ActiveIndicatorDirection}
71
+ */
20
72
  this.direction = ActiveIndicatorDirection.HORIZONTAL;
73
+ /**
74
+ * The position of the indicator relative to the active element.
75
+ *
76
+ * @type {ActiveIndicatorPosition}
77
+ */
21
78
  this.position = ActiveIndicatorPosition.CENTER;
22
79
  }
80
+ /**
81
+ * The parent container element of the active elements.
82
+ * If not set, the indicator's immediate parent element is used.
83
+ *
84
+ * @type {HTMLElement | null}
85
+ */
23
86
  set parent(value) {
24
87
  this.parentElement$$.next(value);
25
88
  }
@@ -124,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
124
187
  type: Input,
125
188
  args: ['odxActiveIndicatorPosition']
126
189
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWluZGljYXRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2FjdGl2ZS1pbmRpY2F0b3Ivc3JjL2xpYi9hY3RpdmUtaW5kaWNhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFhLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFPeEUsV0FBTSx3QkFBd0IsR0FBOUIsTUFBTSx3QkFBd0I7SUFBOUI7UUFDWSx1QkFBa0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFxQixJQUFJLENBQUMsQ0FBQztRQUNoRSxjQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3BELG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzFCLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFYyxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFHbkMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFZMUMsY0FBUyxHQUE2Qix3QkFBd0IsQ0FBQyxVQUFVLENBQUM7UUFHMUUsYUFBUSxHQUE0Qix1QkFBdUIsQ0FBQyxNQUFNLENBQUM7S0F5RTNFO0lBdEZDLElBQ1csTUFBTSxDQUFDLEtBQXlCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQVNNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7SUFDM0QsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUE0QztRQUM3RCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDdEM7UUFDRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUU7WUFDbkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7U0FDckU7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLGlCQUFpQixHQUFHLEtBQUs7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUNoQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLHdCQUF3QixDQUFDLFVBQVUsQ0FBQztRQUM1RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLHdCQUF3QixDQUFDLFFBQVEsQ0FBQztRQUN4RSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUV6RCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNqRSxTQUFTLEdBQUcsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLGdCQUFnQixjQUFjLElBQUksQ0FBQztTQUMzRTtRQUNELElBQUksVUFBVSxFQUFFO1lBQ2QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNqRSxTQUFTLEdBQUcsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLGdCQUFnQixjQUFjLElBQUksQ0FBQztTQUMzRTtRQUVELGlCQUFpQixJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdFLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUN0QyxTQUFTO1lBQ1QsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDL0QsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7U0FDaEUsQ0FBQyxDQUFDO1FBQ0gsaUJBQWlCLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVPLHFCQUFxQixDQUFDLGFBQTBCO1FBQ3RELFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNyQixLQUFLLHVCQUF1QixDQUFDLEtBQUs7Z0JBQ2hDLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUNsQyxLQUFLLHVCQUF1QixDQUFDLE1BQU07Z0JBQ2pDLE9BQU8sYUFBYSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNsRSxLQUFLLHVCQUF1QixDQUFDLEdBQUc7Z0JBQzlCLE9BQU8sYUFBYSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO1NBQy9EO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQixDQUFDLGFBQTBCO1FBQ3RELFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNyQixLQUFLLHVCQUF1QixDQUFDLEtBQUs7Z0JBQ2hDLE9BQU8sYUFBYSxDQUFDLFNBQVMsQ0FBQztZQUNqQyxLQUFLLHVCQUF1QixDQUFDLE1BQU07Z0JBQ2pDLE9BQU8sYUFBYSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUNsRSxLQUFLLHVCQUF1QixDQUFDLEdBQUc7Z0JBQzlCLE9BQU8sYUFBYSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1NBQy9EO0lBQ0gsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckIsS0FBSyx1QkFBdUIsQ0FBQyxLQUFLO2dCQUNoQyxPQUFPLENBQUMsQ0FBQztZQUNYLEtBQUssdUJBQXVCLENBQUMsTUFBTTtnQkFDakMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNiLEtBQUssdUJBQXVCLENBQUMsR0FBRztnQkFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQztTQUNmO0lBQ0gsQ0FBQzsrR0F2R1Usd0JBQXdCO21HQUF4Qix3QkFBd0I7O0FBYTVCO0lBRE4sV0FBVyxFQUFFOzswREFDVTtBQWVqQjtJQUZOLFdBQVcsRUFBRTs7MkRBRW1FO0FBNUJ0RSx3QkFBd0I7SUFMcEMsWUFBWSxDQUFDLHNCQUFzQixDQUFDO0dBS3hCLHdCQUF3QixDQXdHcEM7NEZBeEdZLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakM7OEJBY1EsUUFBUSxNQUdSLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUloQixNQUFNO3NCQURoQixLQUFLO3VCQUFDLDBCQUEwQjtnQkFVMUIsU0FBUztzQkFEZixLQUFLO3VCQUFDLDZCQUE2QjtnQkFJN0IsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NNb2RpZmllciB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBmcm9tRWxlbWVudFJlc2l6ZSQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvcnhqcyc7XG5pbXBvcnQgeyBOZ0NoYW5nZXMsIGFwcGx5U3R5bGVzLCBkaXNhYmxlQ1NTVHJhbnNpdGlvbnMsIGhhc0NoYW5nZWQsIGluamVjdEVsZW1lbnQsIGlzUHJlc2VudCwgcHgsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGl2ZUluZGljYXRvclBvc2l0aW9uIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgQWN0aXZlSW5kaWNhdG9yRGlyZWN0aW9uIH0gZnJvbSAnLi9tb2RlbHMvYWN0aXZlLWluZGljYXRvci1kaXJlY3Rpb24nO1xuXG5AQ1NTQ29tcG9uZW50KCdjZGstYWN0aXZlLWluZGljYXRvcicpXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbb2R4QWN0aXZlSW5kaWNhdG9yXScsXG59KVxuZXhwb3J0IGNsYXNzIEFjdGl2ZUluZGljYXRvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRFbGVtZW50JCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb25SZXNpemUkID0gdGhpcy5wYXJlbnRFbGVtZW50JCQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHN3aXRjaE1hcCgocGFyZW50RWxlbWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHBhcmVudEVsZW1lbnQgPyBmcm9tRWxlbWVudFJlc2l6ZSQocGFyZW50RWxlbWVudCkgOiBFTVBUWTtcbiAgICB9KSxcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBAQ1NTTW9kaWZpZXIoKVxuICBwdWJsaWMgaXNBY3RpdmUgPSBmYWxzZTtcblxuICBASW5wdXQoJ29keEFjdGl2ZUluZGljYXRvcicpXG4gIHB1YmxpYyBhY3RpdmVFbGVtZW50PzogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoJ29keEFjdGl2ZUluZGljYXRvclBhcmVudCcpXG4gIHB1YmxpYyBzZXQgcGFyZW50KHZhbHVlOiBIVE1MRWxlbWVudCB8IG51bGwpIHtcbiAgICB0aGlzLnBhcmVudEVsZW1lbnQkJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHBhcmVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnBhcmVudEVsZW1lbnQkJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQENTU01vZGlmaWVyKClcbiAgQElucHV0KCdvZHhBY3RpdmVJbmRpY2F0b3JEaXJlY3Rpb24nKVxuICBwdWJsaWMgZGlyZWN0aW9uOiBBY3RpdmVJbmRpY2F0b3JEaXJlY3Rpb24gPSBBY3RpdmVJbmRpY2F0b3JEaXJlY3Rpb24uSE9SSVpPTlRBTDtcblxuICBASW5wdXQoJ29keEFjdGl2ZUluZGljYXRvclBvc2l0aW9uJylcbiAgcHVibGljIHBvc2l0aW9uOiBBY3RpdmVJbmRpY2F0b3JQb3NpdGlvbiA9IEFjdGl2ZUluZGljYXRvclBvc2l0aW9uLkNFTlRFUjtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub25SZXNpemUkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlU3R5bGVzKCkpO1xuICAgIHRoaXMucGFyZW50ID8/PSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IE5nQ2hhbmdlczxBY3RpdmVJbmRpY2F0b3JEaXJlY3RpdmU+KTogdm9pZCB7XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ2FjdGl2ZUVsZW1lbnQnLCBmYWxzZSkpIHtcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSAhIXRoaXMuYWN0aXZlRWxlbWVudDtcbiAgICB9XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgWydhY3RpdmVFbGVtZW50JywgJ2RpcmVjdGlvbicsICdwb3NpdGlvbiddKSkge1xuICAgICAgdGhpcy51cGRhdGVTdHlsZXMoIWlzUHJlc2VudChjaGFuZ2VzLmFjdGl2ZUVsZW1lbnQ/LnByZXZpb3VzVmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0eWxlcyhkaXNhYmxlVHJhbnNpdGlvbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZUVsZW1lbnQpIHJldHVybjtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSB0aGlzLmRpcmVjdGlvbiA9PT0gQWN0aXZlSW5kaWNhdG9yRGlyZWN0aW9uLkhPUklaT05UQUw7XG4gICAgY29uc3QgaXNWZXJ0aWNhbCA9IHRoaXMuZGlyZWN0aW9uID09PSBBY3RpdmVJbmRpY2F0b3JEaXJlY3Rpb24uVkVSVElDQUw7XG4gICAgY29uc3QgcmVsYXRpdmVPZmZzZXQgPSB0aGlzLmdldEluZGljYXRvclJlbGF0aXZlT2Zmc2V0KCk7XG5cbiAgICBsZXQgdHJhbnNmb3JtID0gbnVsbDtcbiAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICBjb25zdCBwb3NpdGlvblggPSB0aGlzLmdldEluZGljYXRvclBvc2l0aW9uWCh0aGlzLmFjdGl2ZUVsZW1lbnQpO1xuICAgICAgdHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHtweChwb3NpdGlvblgpfSkgdHJhbnNsYXRlWCgke3JlbGF0aXZlT2Zmc2V0fSUpYDtcbiAgICB9XG4gICAgaWYgKGlzVmVydGljYWwpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uWSA9IHRoaXMuZ2V0SW5kaWNhdG9yUG9zaXRpb25ZKHRoaXMuYWN0aXZlRWxlbWVudCk7XG4gICAgICB0cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWSgke3B4KHBvc2l0aW9uWSl9KSB0cmFuc2xhdGVZKCR7cmVsYXRpdmVPZmZzZXR9JSlgO1xuICAgIH1cblxuICAgIGRpc2FibGVUcmFuc2l0aW9uICYmIGRpc2FibGVDU1NUcmFuc2l0aW9ucyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdHJ1ZSk7XG4gICAgYXBwbHlTdHlsZXModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIHRyYW5zZm9ybSxcbiAgICAgIHdpZHRoOiBpc0hvcml6b250YWwgPyBweCh0aGlzLmFjdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIDogbnVsbCxcbiAgICAgIGhlaWdodDogaXNWZXJ0aWNhbCA/IHB4KHRoaXMuYWN0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpIDogbnVsbCxcbiAgICB9KTtcbiAgICBkaXNhYmxlVHJhbnNpdGlvbiAmJiBkaXNhYmxlQ1NTVHJhbnNpdGlvbnModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5kaWNhdG9yUG9zaXRpb25YKGFjdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24pIHtcbiAgICAgIGNhc2UgQWN0aXZlSW5kaWNhdG9yUG9zaXRpb24uU1RBUlQ6XG4gICAgICAgIHJldHVybiBhY3RpdmVFbGVtZW50Lm9mZnNldExlZnQ7XG4gICAgICBjYXNlIEFjdGl2ZUluZGljYXRvclBvc2l0aW9uLkNFTlRFUjpcbiAgICAgICAgcmV0dXJuIGFjdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCArIGFjdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLyAyO1xuICAgICAgY2FzZSBBY3RpdmVJbmRpY2F0b3JQb3NpdGlvbi5FTkQ6XG4gICAgICAgIHJldHVybiBhY3RpdmVFbGVtZW50Lm9mZnNldExlZnQgKyBhY3RpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5kaWNhdG9yUG9zaXRpb25ZKGFjdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24pIHtcbiAgICAgIGNhc2UgQWN0aXZlSW5kaWNhdG9yUG9zaXRpb24uU1RBUlQ6XG4gICAgICAgIHJldHVybiBhY3RpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgIGNhc2UgQWN0aXZlSW5kaWNhdG9yUG9zaXRpb24uQ0VOVEVSOlxuICAgICAgICByZXR1cm4gYWN0aXZlRWxlbWVudC5vZmZzZXRUb3AgKyBhY3RpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7XG4gICAgICBjYXNlIEFjdGl2ZUluZGljYXRvclBvc2l0aW9uLkVORDpcbiAgICAgICAgcmV0dXJuIGFjdGl2ZUVsZW1lbnQub2Zmc2V0VG9wICsgYWN0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRpY2F0b3JSZWxhdGl2ZU9mZnNldCgpOiBudW1iZXIge1xuICAgIHN3aXRjaCAodGhpcy5wb3NpdGlvbikge1xuICAgICAgY2FzZSBBY3RpdmVJbmRpY2F0b3JQb3NpdGlvbi5TVEFSVDpcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICBjYXNlIEFjdGl2ZUluZGljYXRvclBvc2l0aW9uLkNFTlRFUjpcbiAgICAgICAgcmV0dXJuIC01MDtcbiAgICAgIGNhc2UgQWN0aXZlSW5kaWNhdG9yUG9zaXRpb24uRU5EOlxuICAgICAgICByZXR1cm4gLTEwMDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWluZGljYXRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2FjdGl2ZS1pbmRpY2F0b3Ivc3JjL2xpYi9hY3RpdmUtaW5kaWNhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFhLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0ksT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFL0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUNHO0FBTUksV0FBTSx3QkFBd0IsR0FBOUIsTUFBTSx3QkFBd0I7SUFBOUI7UUFDWSx1QkFBa0IsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFxQixJQUFJLENBQUMsQ0FBQztRQUNoRSxjQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3BELG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzFCLE9BQU8sYUFBYSxDQUFDLENB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QUMsQ0FBQztZQUNYLEtBQUssdUJBQXVCLENBQUMsTUFBTTtnQkFDakMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNiLEtBQUssdUJBQXVCLENBQUMsR0FBRztnQkFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQztTQUNmO0lBQ0gsQ0FBQzsrR0FsSVUsd0JBQXdCO21HQUF4Qix3QkFBd0I7O0FBa0I1QjtJQUROLFdBQVcsRUFBRTs7MERBQ1U7QUFnQ2pCO0lBRk4sV0FBVyxFQUFFOzsyREFFbUU7QUFsRHRFLHdCQUF3QjtJQUxwQyxZQUFZLENBQUMsc0JBQXNCLENBQUM7R0FLeEIsd0JBQXdCLENBbUlwQzs0RkFuSVksd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzs4QkFtQlEsUUFBUSxNQVNSLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsb0JBQW9CO2dCQVVoQixNQUFNO3NCQURoQixLQUFLO3VCQUFDLDBCQUEwQjtnQkFlMUIsU0FBUztzQkFEZixLQUFLO3VCQUFDLDZCQUE2QjtnQkFTN0IsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NNb2RpZmllciB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBmcm9tRWxlbWVudFJlc2l6ZSQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvcnhqcyc7XG5pbXBvcnQgeyBOZ0NoYW5nZXMsIGFwcGx5U3R5bGVzLCBkaXNhYmxlQ1NTVHJhbnNpdGlvbnMsIGhhc0NoYW5nZWQsIGluamVjdEVsZW1lbnQsIGlzUHJlc2VudCwgcHgsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGl2ZUluZGljYXRvclBvc2l0aW9uIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgQWN0aXZlSW5kaWNhdG9yRGlyZWN0aW9uIH0gZnJvbSAnLi9tb2RlbHMvYWN0aXZlLWluZGljYXRvci1kaXJlY3Rpb24nO1xuXG4vKipcbiAqIGBBY3RpdmVJbmRpY2F0b3JEaXJlY3RpdmVgIGlzIGRlc2lnbmVkIHRvIGFkanVzdCBhbiBpbmRpY2F0b3IncyBwb3NpdGlvbiBhbmQgc2l6ZSBkeW5hbWljYWxseSB0byBoaWdobGlnaHRcbiAqIHRoZSBhY3RpdmUgZWxlbWVudCB3aXRoaW4gYSBjb250YWluZXIuIEl0J3MgdXNlZnVsIGZvciB0YWJzLCBtZW51cywgb3IgYW55IGxpc3Qgd2hlcmUgYW4gYWN0aXZlIHN0YXRlIGlzIHZpc3VhbGx5IHJlcHJlc2VudGVkLlxuICogVGhlIGRpcmVjdGl2ZSBjYW4gYmUgY3VzdG9taXplZCB0byBhbGlnbiB0aGUgaW5kaWNhdG9yIGJhc2VkIG9uIHRoZSBhY3RpdmUgZWxlbWVudCdzIHBvc2l0aW9uIGFuZCBzdXBwb3J0c1xuICogYm90aCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBvcmllbnRhdGlvbnMuXG4gKlxuICogVG8gdXNlIHRoaXMgZGlyZWN0aXZlLCBhcHBseSBpdCB0byB0aGUgZWxlbWVudCB5b3Ugd2FudCB0byB1c2UgYXMgYW4gYWN0aXZlIGluZGljYXRvci5cbiAqIFRoZW4sIGJpbmQgdGhlIGFjdGl2ZSBlbGVtZW50IHVzaW5nIHRoZSBgb2R4QWN0aXZlSW5kaWNhdG9yYCBpbnB1dC4gT3B0aW9uYWxseSwgc3BlY2lmeVxuICogdGhlIGNvbnRhaW5lciBlbGVtZW50IHdpdGggYG9keEFjdGl2ZUluZGljYXRvclBhcmVudGAgaWYgdGhlIGNvbnRhaW5lciBpcyBub3QgdGhlIGltbWVkaWF0ZSBwYXJlbnQgb2YgdGhlIGluZGljYXRvci5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGRpdiBjbGFzcz1cInRhYnMtY29udGFpbmVyXCIgI3RhYnNDb250YWluZXI+XG4gKiAgIDxkaXYgY2xhc3M9XCJ0YWJcIiAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIiBbY2xhc3MuYWN0aXZlXT1cInRhYi5pc0FjdGl2ZVwiICN0YWJFbGVtZW50Pnt7IHRhYi5sYWJlbCB9fTwvZGl2PlxuICogICA8ZGl2IGNsYXNzPVwiaW5kaWNhdG9yXCIgW29keEFjdGl2ZUluZGljYXRvcl09XCJhY3RpdmVUYWJFbGVtZW50XCIgW29keEFjdGl2ZUluZGljYXRvclBhcmVudF09XCJ0YWJzQ29udGFpbmVyXCI+PC9kaXY+XG4gKiA8L2Rpdj5cbiAqIGBgYFxuICpcbiAqIGBgYHRzXG4gKiBAQ29tcG9uZW50KHtcbiAqICAgc2VsZWN0b3I6ICdhcHAtdGFicycsXG4gKiAgIHRlbXBsYXRlVXJsOiAnLi90YWJzLmNvbXBvbmVudC5odG1sJyxcbiAqICAgaW1wb3J0czogW0FjdGl2ZUluZGljYXRvckRpcmVjdGl2ZSwgTmdGb3JPZl0sXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIFRhYnNDb21wb25lbnQge1xuICogICB0YWJzID0gW3sgbGFiZWw6ICdUYWIgMScsIGlzQWN0aXZlOiB0cnVlIH0sIHsgbGFiZWw6ICdUYWIgMicsIGlzQWN0aXZlOiBmYWxzZSB9XTtcbiAqICAgQFZpZXdDaGlsZHJlbigndGFiRWxlbWVudCcpIHRhYkVsZW1lbnRzPzogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICogICBAVmlld0NoaWxkKCd0YWJzQ29udGFpbmVyJykgdGFic0NvbnRhaW5lciE6IEVsZW1lbnRSZWY7XG4gKlxuICogICBnZXQgYWN0aXZlVGFiRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gKiAgICAgY29uc3QgYWN0aXZlVGFiID0gdGhpcy50YWJFbGVtZW50cz8uZmluZCgodGFiKSA9PiB0YWIubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKTtcbiAqICAgICByZXR1cm4gYWN0aXZlVGFiID8gYWN0aXZlVGFiLm5hdGl2ZUVsZW1lbnQgOiBudWxsO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuQENTU0NvbXBvbmVudCgnY2RrLWFjdGl2ZS1pbmRpY2F0b3InKVxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW29keEFjdGl2ZUluZGljYXRvcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBBY3RpdmVJbmRpY2F0b3JEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50RWxlbWVudCQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IG9uUmVzaXplJCA9IHRoaXMucGFyZW50RWxlbWVudCQkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzd2l0Y2hNYXAoKHBhcmVudEVsZW1lbnQpID0+IHtcbiAgICAgIHJldHVybiBwYXJlbnRFbGVtZW50ID8gZnJvbUVsZW1lbnRSZXNpemUkKHBhcmVudEVsZW1lbnQpIDogRU1QVFk7XG4gICAgfSksXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBlbGVtZW50IGlzIGFjdGl2ZSBvciBub3QuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgQENTU01vZGlmaWVyKClcbiAgcHVibGljIGlzQWN0aXZlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgYWN0aXZlIGVsZW1lbnQgdG8gd2hpY2ggdGhlIGluZGljYXRvciBzaG91bGQgYWxpZ24uXG4gICAqIEl0IGR5bmFtaWNhbGx5IHVwZGF0ZXMgdGhlIGluZGljYXRvcidzIHBvc2l0aW9uIGFuZCBzaXplIGJhc2VkIG9uIHRoaXMgZWxlbWVudC5cbiAgICpcbiAgICogQHR5cGUge0hUTUxFbGVtZW50IHwgbnVsbH1cbiAgICovXG4gIEBJbnB1dCgnb2R4QWN0aXZlSW5kaWNhdG9yJylcbiAgcHVibGljIGFjdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyZW50IGNvbnRhaW5lciBlbGVtZW50IG9mIHRoZSBhY3RpdmUgZWxlbWVudHMuXG4gICAqIElmIG5vdCBzZXQsIHRoZSBpbmRpY2F0b3IncyBpbW1lZGlhdGUgcGFyZW50IGVsZW1lbnQgaXMgdXNlZC5cbiAgICpcbiAgICogQHR5cGUge0hUTUxFbGVtZW50IHwgbnVsbH1cbiAgICovXG4gIEBJbnB1dCgnb2R4QWN0aXZlSW5kaWNhdG9yUGFyZW50JylcbiAgcHVibGljIHNldCBwYXJlbnQodmFsdWU6IEhUTUxFbGVtZW50IHwgbnVsbCkge1xuICAgIHRoaXMucGFyZW50RWxlbWVudCQkLm5leHQodmFsdWUpO1xuICB9XG4gIHB1YmxpYyBnZXQgcGFyZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50RWxlbWVudCQkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGRpcmVjdGlvbiBpbiB3aGljaCB0aGUgaW5kaWNhdG9yIHNob3VsZCBtb3ZlLlxuICAgKlxuICAgKiBAdHlwZSB7QWN0aXZlSW5kaWNhdG9yRGlyZWN0aW9ufVxuICAgKi9cbiAgQENTU01vZGlmaWVyKClcbiAgQElucHV0KCdvZHhBY3RpdmVJbmRpY2F0b3JEaXJlY3Rpb24nKVxuICBwdWJsaWMgZGlyZWN0aW9uOiBBY3RpdmVJbmRpY2F0b3JEaXJlY3Rpb24gPSBBY3RpdmVJbmRpY2F0b3JEaXJlY3Rpb24uSE9SSVpPTlRBTDtcblxuICAvKipcbiAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBpbmRpY2F0b3IgcmVsYXRpdmUgdG8gdGhlIGFjdGl2ZSBlbGVtZW50LlxuICAgKlxuICAgKiBAdHlwZSB7QWN0aXZlSW5kaWNhdG9yUG9zaXRpb259XG4gICAqL1xuICBASW5wdXQoJ29keEFjdGl2ZUluZGljYXRvclBvc2l0aW9uJylcbiAgcHVibGljIHBvc2l0aW9uOiBBY3RpdmVJbmRpY2F0b3JQb3NpdGlvbiA9IEFjdGl2ZUluZGljYXRvclBvc2l0aW9uLkNFTlRFUjtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub25SZXNpemUkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlU3R5bGVzKCkpO1xuICAgIHRoaXMucGFyZW50ID8/PSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IE5nQ2hhbmdlczxBY3RpdmVJbmRpY2F0b3JEaXJlY3RpdmU+KTogdm9pZCB7XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ2FjdGl2ZUVsZW1lbnQnLCBmYWxzZSkpIHtcbiAgICAgIHRoaXMuaXNBY3RpdmUgPSAhIXRoaXMuYWN0aXZlRWxlbWVudDtcbiAgICB9XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgWydhY3RpdmVFbGVtZW50JywgJ2RpcmVjdGlvbicsICdwb3NpdGlvbiddKSkge1xuICAgICAgdGhpcy51cGRhdGVTdHlsZXMoIWlzUHJlc2VudChjaGFuZ2VzLmFjdGl2ZUVsZW1lbnQ/LnByZXZpb3VzVmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0eWxlcyhkaXNhYmxlVHJhbnNpdGlvbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZUVsZW1lbnQpIHJldHVybjtcbiAgICBjb25zdCBpc0hvcml6b250YWwgPSB0aGlzLmRpcmVjdGlvbiA9PT0gQWN0aXZlSW5kaWNhdG9yRGlyZWN0aW9uLkhPUklaT05UQUw7XG4gICAgY29uc3QgaXNWZXJ0aWNhbCA9IHRoaXMuZGlyZWN0aW9uID09PSBBY3RpdmVJbmRpY2F0b3JEaXJlY3Rpb24uVkVSVElDQUw7XG4gICAgY29uc3QgcmVsYXRpdmVPZmZzZXQgPSB0aGlzLmdldEluZGljYXRvclJlbGF0aXZlT2Zmc2V0KCk7XG5cbiAgICBsZXQgdHJhbnNmb3JtID0gbnVsbDtcbiAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICBjb25zdCBwb3NpdGlvblggPSB0aGlzLmdldEluZGljYXRvclBvc2l0aW9uWCh0aGlzLmFjdGl2ZUVsZW1lbnQpO1xuICAgICAgdHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHtweChwb3NpdGlvblgpfSkgdHJhbnNsYXRlWCgke3JlbGF0aXZlT2Zmc2V0fSUpYDtcbiAgICB9XG4gICAgaWYgKGlzVmVydGljYWwpIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uWSA9IHRoaXMuZ2V0SW5kaWNhdG9yUG9zaXRpb25ZKHRoaXMuYWN0aXZlRWxlbWVudCk7XG4gICAgICB0cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWSgke3B4KHBvc2l0aW9uWSl9KSB0cmFuc2xhdGVZKCR7cmVsYXRpdmVPZmZzZXR9JSlgO1xuICAgIH1cblxuICAgIGRpc2FibGVUcmFuc2l0aW9uICYmIGRpc2FibGVDU1NUcmFuc2l0aW9ucyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdHJ1ZSk7XG4gICAgYXBwbHlTdHlsZXModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIHRyYW5zZm9ybSxcbiAgICAgIHdpZHRoOiBpc0hvcml6b250YWwgPyBweCh0aGlzLmFjdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIDogbnVsbCxcbiAgICAgIGhlaWdodDogaXNWZXJ0aWNhbCA/IHB4KHRoaXMuYWN0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpIDogbnVsbCxcbiAgICB9KTtcbiAgICBkaXNhYmxlVHJhbnNpdGlvbiAmJiBkaXNhYmxlQ1NTVHJhbnNpdGlvbnModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5kaWNhdG9yUG9zaXRpb25YKGFjdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24pIHtcbiAgICAgIGNhc2UgQWN0aXZlSW5kaWNhdG9yUG9zaXRpb24uU1RBUlQ6XG4gICAgICAgIHJldHVybiBhY3RpdmVFbGVtZW50Lm9mZnNldExlZnQ7XG4gICAgICBjYXNlIEFjdGl2ZUluZGljYXRvclBvc2l0aW9uLkNFTlRFUjpcbiAgICAgICAgcmV0dXJuIGFjdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCArIGFjdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLyAyO1xuICAgICAgY2FzZSBBY3RpdmVJbmRpY2F0b3JQb3NpdGlvbi5FTkQ6XG4gICAgICAgIHJldHVybiBhY3RpdmVFbGVtZW50Lm9mZnNldExlZnQgKyBhY3RpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5kaWNhdG9yUG9zaXRpb25ZKGFjdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24pIHtcbiAgICAgIGNhc2UgQWN0aXZlSW5kaWNhdG9yUG9zaXRpb24uU1RBUlQ6XG4gICAgICAgIHJldHVybiBhY3RpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgIGNhc2UgQWN0aXZlSW5kaWNhdG9yUG9zaXRpb24uQ0VOVEVSOlxuICAgICAgICByZXR1cm4gYWN0aXZlRWxlbWVudC5vZmZzZXRUb3AgKyBhY3RpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7XG4gICAgICBjYXNlIEFjdGl2ZUluZGljYXRvclBvc2l0aW9uLkVORDpcbiAgICAgICAgcmV0dXJuIGFjdGl2ZUVsZW1lbnQub2Zmc2V0VG9wICsgYWN0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRpY2F0b3JSZWxhdGl2ZU9mZnNldCgpOiBudW1iZXIge1xuICAgIHN3aXRjaCAodGhpcy5wb3NpdGlvbikge1xuICAgICAgY2FzZSBBY3RpdmVJbmRpY2F0b3JQb3NpdGlvbi5TVEFSVDpcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICBjYXNlIEFjdGl2ZUluZGljYXRvclBvc2l0aW9uLkNFTlRFUjpcbiAgICAgICAgcmV0dXJuIC01MDtcbiAgICAgIGNhc2UgQWN0aXZlSW5kaWNhdG9yUG9zaXRpb24uRU5EOlxuICAgICAgICByZXR1cm4gLTEwMDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -6,9 +6,24 @@ import { DropdownDirective } from '@odx/angular/components/dropdown';
6
6
  import { FormFieldComponent } from '@odx/angular/components/form-field';
7
7
  import { injectElement, isFunction, untilDestroyed } from '@odx/angular/utils';
8
8
  import * as i0 from "@angular/core";
9
+ /**
10
+ * `AutocompleteControl` is a base directive to enhance an input field with autocomplete functionality,
11
+ * providing keyboard navigation and selection for options displayed in a dropdown. It's designed to be extended
12
+ * for specific implementations.
13
+ * Extends `CustomFormControl` to provide form control behavior and state management.
14
+ *
15
+ * @see {CustomFormControl}
16
+ *
17
+ * This directive manages the open/close state of the dropdown, the loading state indication, and the interaction between
18
+ * the autocomplete input and the dropdown options. It utilizes `ActiveDescendantKeyManager` for keyboard navigation among options.
19
+ *
20
+ * Extend this directive to create a fully functional autocomplete control tailored to your data type and UI requirements.
21
+ *
22
+ * @template T - The type of the items displayed in the autocomplete dropdown.
23
+ */
9
24
  export class AutocompleteControl extends CustomFormControl {
10
25
  get dropdownReferenceElement() {
11
- return this.formField?.controlElement.nativeElement ?? this.element.nativeElement;
26
+ return this.formField?.controlElement?.nativeElement ?? this.element?.nativeElement;
12
27
  }
13
28
  get hasOptions() {
14
29
  return !!this.options?.length;
@@ -24,6 +39,18 @@ export class AutocompleteControl extends CustomFormControl {
24
39
  this.smoothScrollEnabled = false;
25
40
  this.element = injectElement();
26
41
  this.isLoading = false;
42
+ /**
43
+ * Emits the selected option when an option is selected from the dropdown.
44
+ *
45
+ * @emits {T} - The selected option.
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * autocompleteControl.optionSelected.subscribe((selectedOption) => {
50
+ * console.log('Selected option:', selectedOption);
51
+ * });
52
+ * ```
53
+ */
27
54
  this.optionSelected = new EventEmitter();
28
55
  detectControllerChanges(this).subscribe();
29
56
  }
@@ -34,6 +61,17 @@ export class AutocompleteControl extends CustomFormControl {
34
61
  this.handleQueryListOption(this.options);
35
62
  this.handleSearchFieldChanges();
36
63
  }
64
+ /**
65
+ * Scrolls the specified option element into view.
66
+ * @param {OptionControl<T>} option - The option control containing the element to scroll into view.
67
+ * @returns {void}
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * const optionControl: OptionControl<string> = { element: myOptionElement };
72
+ * scrollOptionIntoView(optionControl);
73
+ * ```
74
+ */
37
75
  scrollOptionIntoView({ element }) {
38
76
  const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;
39
77
  if (isFunction(element.nativeElement.scrollIntoView)) {
@@ -87,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
87
125
  type: HostListener,
88
126
  args: ['focusout', ['$event']]
89
127
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2F1dG9jb21wbGV0ZS1jb250cm9sL3NyYy9saWIvYXV0b2NvbXBsZXRlLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQXlCLE1BQU0sc0NBQXNDLENBQUM7QUFFaEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBUy9FLE1BQU0sT0FBZ0IsbUJBQXVCLFNBQVEsaUJBQTJCO0lBaUI5RSxJQUFXLHdCQUF3QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUNwRixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBV0Q7UUFDRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFwQ0ssbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxjQUFTLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsdUJBQWtCLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFHL0Msd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBT3RCLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQWVuQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBTWxCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQUk1Qyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRTFCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLG9CQUFvQixDQUFDLEVBQUUsT0FBTyxFQUFvQjtRQUN2RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2pFLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDcEQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDckU7SUFDSCxDQUFDO0lBUVMsY0FBYyxDQUFDLE9BQW9DO1FBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM3RSxDQUFDO0lBRVMsbUJBQW1CO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVTLGFBQWE7UUFDckIsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBR1MsY0FBYyxDQUFDLEtBQWlCO1FBQ3hDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7K0dBMUZtQixtQkFBbUI7bUdBQW5CLG1CQUFtQixzRUE2Qm5CLGdCQUFnQixvU0FuQnpCLGlCQUFpQjs7NEZBVlIsbUJBQW1CO2tCQVB4QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0osaUJBQWlCLEVBQUUsUUFBUTt3QkFDM0Isc0JBQXNCLEVBQUUsb0JBQW9CO3FCQUM3QztpQkFDRjswRUFZb0IsUUFBUTtzQkFEMUIsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBb0JyQixTQUFTO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSS9CLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxjQUFjO3NCQURwQixNQUFNO2dCQWtERyxjQUFjO3NCQUR2QixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXMsIFN0cmluZ2lmeUZuIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEN1c3RvbUZvcm1Db250cm9sLCBJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgT3B0aW9uQ29udHJvbCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvb3B0aW9uLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIGlzRnVuY3Rpb24sIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmlzLW9wZW5dJzogJ2lzT3BlbicsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQgfHwgbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbnRyb2w8VD4gZXh0ZW5kcyBDdXN0b21Gb3JtQ29udHJvbDxUIHwgbnVsbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IG9wdGlvbnM/OiBRdWVyeUxpc3Q8T3B0aW9uQ29udHJvbDxUPj47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1GaWVsZCA9IGluamVjdChGb3JtRmllbGRDb21wb25lbnQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHByb3RlY3RlZCBrZXlNYW5hZ2VyPzogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29udHJvbDxUPj47XG4gIHByb3RlY3RlZCBzbW9vdGhTY3JvbGxFbmFibGVkID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZChEcm9wZG93bkRpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyb3Bkb3duPzogRHJvcGRvd25EaXJlY3RpdmU7XG5cbiAgcHVibGljIGFic3RyYWN0IHNlYXJjaEZpZWxkPzogSW5wdXRDb250cm9sRGlyZWN0aXZlO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIHB1YmxpYyBnZXQgZHJvcGRvd25SZWZlcmVuY2VFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQ/LmNvbnRyb2xFbGVtZW50Lm5hdGl2ZUVsZW1lbnQgPz8gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc09wdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5vcHRpb25zPy5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRyb3Bkb3duPy5pc09wZW47XG4gIH1cblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdHJpbmdpZnk/OiBTdHJpbmdpZnlGbjxUPjtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKG51bGwpO1xuICAgIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzKHRoaXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucykgcmV0dXJuO1xuXG4gICAgdGhpcy5pbml0S2V5TWFuYWdlcih0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMuaGFuZGxlUXVlcnlMaXN0T3B0aW9uKHRoaXMub3B0aW9ucyk7XG4gICAgdGhpcy5oYW5kbGVTZWFyY2hGaWVsZENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGxPcHRpb25JbnRvVmlldyh7IGVsZW1lbnQgfTogT3B0aW9uQ29udHJvbDxUPik6IHZvaWQge1xuICAgIGNvbnN0IGJlaGF2aW9yID0gdGhpcy5zbW9vdGhTY3JvbGxFbmFibGVkID8gJ3Ntb290aCcgOiB1bmRlZmluZWQ7XG4gICAgaWYgKGlzRnVuY3Rpb24oZWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KSkge1xuICAgICAgZWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICdjZW50ZXInLCBiZWhhdmlvciB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaGFuZGxlUXVlcnlMaXN0T3B0aW9uKG9wdGlvbnM6IFF1ZXJ5TGlzdDxPcHRpb25Db250cm9sPFQ+Pik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGhhbmRsZVNlYXJjaEZpZWxkQ2hhbmdlcygpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGluaXRLZXlNYW5hZ2VyKG9wdGlvbnM6IFF1ZXJ5TGlzdDxPcHRpb25Db250cm9sPFQ+Pik6IHZvaWQge1xuICAgIHRoaXMua2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcihvcHRpb25zKS53aXRoSG9tZUFuZEVuZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc2FibGVTbW9vdGhTY3JvbGwoKTogdm9pZCB7XG4gICAgdGhpcy5zbW9vdGhTY3JvbGxFbmFibGVkID0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5hYmxlU21vb3RoU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuc21vb3RoU2Nyb2xsRW5hYmxlZCA9IHRydWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlbkRyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMuZHJvcGRvd24/Lm9wZW4oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMuZHJvcGRvd24/LmNsb3NlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBoYW5kbGVGb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cbn1cbiJdfQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2F1dG9jb21wbGV0ZS1jb250cm9sL3NyYy9saWIvYXV0b2NvbXBsZXRlLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQXlCLE1BQU0sc0NBQXNDLENBQUM7QUFFaEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRS9FOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBUUgsTUFBTSxPQUFnQixtQkFBdUIsU0FBUSxpQkFBMkI7SUFpQjlFLElBQVcsd0JBQXdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFR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IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXMsIFN0cmluZ2lmeUZuIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEN1c3RvbUZvcm1Db250cm9sLCBJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgT3B0aW9uQ29udHJvbCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvb3B0aW9uLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIGlzRnVuY3Rpb24sIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuLyoqXG4gKiBgQXV0b2NvbXBsZXRlQ29udHJvbGAgaXMgYSBiYXNlIGRpcmVjdGl2ZSB0byBlbmhhbmNlIGFuIGlucHV0IGZpZWxkIHdpdGggYXV0b2NvbXBsZXRlIGZ1bmN0aW9uYWxpdHksXG4gKiBwcm92aWRpbmcga2V5Ym9hcmQgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uIGZvciBvcHRpb25zIGRpc3BsYXllZCBpbiBhIGRyb3Bkb3duLiBJdCdzIGRlc2lnbmVkIHRvIGJlIGV4dGVuZGVkXG4gKiBmb3Igc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zLlxuICogRXh0ZW5kcyBgQ3VzdG9tRm9ybUNvbnRyb2xgIHRvIHByb3ZpZGUgZm9ybSBjb250cm9sIGJlaGF2aW9yIGFuZCBzdGF0ZSBtYW5hZ2VtZW50LlxuICpcbiAqIEBzZWUge0N1c3RvbUZvcm1Db250cm9sfVxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIG1hbmFnZXMgdGhlIG9wZW4vY2xvc2Ugc3RhdGUgb2YgdGhlIGRyb3Bkb3duLCB0aGUgbG9hZGluZyBzdGF0ZSBpbmRpY2F0aW9uLCBhbmQgdGhlIGludGVyYWN0aW9uIGJldHdlZW5cbiAqIHRoZSBhdXRvY29tcGxldGUgaW5wdXQgYW5kIHRoZSBkcm9wZG93biBvcHRpb25zLiBJdCB1dGlsaXplcyBgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXJgIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIGFtb25nIG9wdGlvbnMuXG4gKlxuICogRXh0ZW5kIHRoaXMgZGlyZWN0aXZlIHRvIGNyZWF0ZSBhIGZ1bGx5IGZ1bmN0aW9uYWwgYXV0b2NvbXBsZXRlIGNvbnRyb2wgdGFpbG9yZWQgdG8geW91ciBkYXRhIHR5cGUgYW5kIFVJIHJlcXVpcmVtZW50cy5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBpdGVtcyBkaXNwbGF5ZWQgaW4gdGhlIGF1dG9jb21wbGV0ZSBkcm9wZG93bi5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmlzLW9wZW5dJzogJ2lzT3BlbicsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQgfHwgbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbnRyb2w8VD4gZXh0ZW5kcyBDdXN0b21Gb3JtQ29udHJvbDxUIHwgbnVsbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IG9wdGlvbnM/OiBRdWVyeUxpc3Q8T3B0aW9uQ29udHJvbDxUPj47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1GaWVsZCA9IGluamVjdChGb3JtRmllbGRDb21wb25lbnQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHByb3RlY3RlZCBrZXlNYW5hZ2VyPzogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29udHJvbDxUPj47XG4gIHByb3RlY3RlZCBzbW9vdGhTY3JvbGxFbmFibGVkID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZChEcm9wZG93bkRpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyb3Bkb3duPzogRHJvcGRvd25EaXJlY3RpdmU7XG5cbiAgcHVibGljIGFic3RyYWN0IHNlYXJjaEZpZWxkPzogSW5wdXRDb250cm9sRGlyZWN0aXZlO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIHB1YmxpYyBnZXQgZHJvcGRvd25SZWZlcmVuY2VFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQ/LmNvbnRyb2xFbGVtZW50Py5uYXRpdmVFbGVtZW50ID8/IHRoaXMuZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzT3B0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm9wdGlvbnM/Lmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZHJvcGRvd24/LmlzT3BlbjtcbiAgfVxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBjb252ZXJ0cyBhbiBpdGVtIG9mIHR5cGUgVCB0byBhIHN0cmluZyByZXByZXNlbnRhdGlvbi5cbiAgICogVXNlZCBieSB0aGUgQXV0b2NvbXBsZXRlQ29udHJvbCBjb21wb25lbnQgdG8gZGlzcGxheSB0aGUgc2VsZWN0ZWQgaXRlbS5cbiAgICpcbiAgICogQHR5cGUge1N0cmluZ2lmeUZuPFQ+fVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiAvLyBEZWZpbmUgYSBzdHJpbmdpZnkgZnVuY3Rpb24gZm9yIGEgY3VzdG9tIHR5cGUgUGVyc29uXG4gICAqIGNvbnN0IHN0cmluZ2lmeVBlcnNvbjogU3RyaW5naWZ5Rm48UGVyc29uPiA9IChwZXJzb24pID0+IGAke3BlcnNvbi5maXJzdE5hbWV9ICR7cGVyc29uLmxhc3ROYW1lfWA7XG4gICAqXG4gICAqIC8vIEFzc2lnbiB0aGUgc3RyaW5naWZ5IGZ1bmN0aW9uIHRvIHRoZSBBdXRvY29tcGxldGVDb250cm9sXG4gICAqIGF1dG9jb21wbGV0ZUNvbnRyb2wuc3RyaW5naWZ5ID0gc3RyaW5naWZ5UGVyc29uO1xuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdHJpbmdpZnk/OiBTdHJpbmdpZnlGbjxUPjtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIG9wdGlvbiB3aGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZCBmcm9tIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQGVtaXRzIHtUfSAtIFRoZSBzZWxlY3RlZCBvcHRpb24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGF1dG9jb21wbGV0ZUNvbnRyb2wub3B0aW9uU2VsZWN0ZWQuc3Vic2NyaWJlKChzZWxlY3RlZE9wdGlvbikgPT4ge1xuICAgKiAgIGNvbnNvbGUubG9nKCdTZWxlY3RlZCBvcHRpb246Jywgc2VsZWN0ZWRPcHRpb24pO1xuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIG9wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKG51bGwpO1xuICAgIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzKHRoaXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucykgcmV0dXJuO1xuXG4gICAgdGhpcy5pbml0S2V5TWFuYWdlcih0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMuaGFuZGxlUXVlcnlMaXN0T3B0aW9uKHRoaXMub3B0aW9ucyk7XG4gICAgdGhpcy5oYW5kbGVTZWFyY2hGaWVsZENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSBzcGVjaWZpZWQgb3B0aW9uIGVsZW1lbnQgaW50byB2aWV3LlxuICAgKiBAcGFyYW0ge09wdGlvbkNvbnRyb2w8VD59IG9wdGlvbiAtIFRoZSBvcHRpb24gY29udHJvbCBjb250YWluaW5nIHRoZSBlbGVtZW50IHRvIHNjcm9sbCBpbnRvIHZpZXcuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBvcHRpb25Db250cm9sOiBPcHRpb25Db250cm9sPHN0cmluZz4gPSB7IGVsZW1lbnQ6IG15T3B0aW9uRWxlbWVudCB9O1xuICAgKiBzY3JvbGxPcHRpb25JbnRvVmlldyhvcHRpb25Db250cm9sKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgc2Nyb2xsT3B0aW9uSW50b1ZpZXcoeyBlbGVtZW50IH06IE9wdGlvbkNvbnRyb2w8VD4pOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvciA9IHRoaXMuc21vb3RoU2Nyb2xsRW5hYmxlZCA/ICdzbW9vdGgnIDogdW5kZWZpbmVkO1xuICAgIGlmIChpc0Z1bmN0aW9uKGVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldykpIHtcbiAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJywgYmVoYXZpb3IgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGhhbmRsZVF1ZXJ5TGlzdE9wdGlvbihvcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29udHJvbDxUPj4pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBoYW5kbGVTZWFyY2hGaWVsZENoYW5nZXMoKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYWN0aXZhdGVTZWxlY3RlZE9wdGlvbigpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBpbml0S2V5TWFuYWdlcihvcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29udHJvbDxUPj4pOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIob3B0aW9ucykud2l0aEhvbWVBbmRFbmQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNhYmxlU21vb3RoU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuc21vb3RoU2Nyb2xsRW5hYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuYWJsZVNtb290aFNjcm9sbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNtb290aFNjcm9sbEVuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9wZW5Ecm9wZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duPy5vcGVuKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duPy5jbG9zZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG59XG4iXX0=
@@ -3,6 +3,9 @@ import { detectControllerChanges } from '@odx/angular';
3
3
  import { CustomFormControl } from '@odx/angular/cdk/custom-form-control';
4
4
  import { booleanToAttributeString, injectElement } from '@odx/angular/utils';
5
5
  import * as i0 from "@angular/core";
6
+ /**
7
+ * `CheckBoxControl` is a directive that extends `CustomFormControl` to create a custom checkbox control. It integrates seamlessly with Angular forms and provides additional events and bindings for enhanced functionality.
8
+ */
6
9
  export class CheckBoxControl extends CustomFormControl {
7
10
  set checked(value) {
8
11
  this.value = value;
@@ -43,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
43
46
  }], checkedChange: [{
44
47
  type: Output
45
48
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtY29udHJvbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2NoZWNrYm94LWNvbnRyb2wvc3JjL2xpYi9jaGVja2JveC1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBSzdFLE1BQU0sT0FBTyxlQUFnQixTQUFRLGlCQUEwQjtJQUc3RCxJQUNXLE9BQU8sQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFTRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEO1FBQ0UsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBdEJDLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQVUxQywyREFBMkQ7UUFFcEQsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBR25DLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVFqRCx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQVk7UUFDM0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxXQUFXLENBQUUsS0FBSyxDQUFDLE1BQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBL0JVLGVBQWU7bUdBQWYsZUFBZSw4RUFHTixnQkFBZ0I7OzRGQUh6QixlQUFlO2tCQUgzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDOzBFQUtZLE9BQU87c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBVS9CLFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMsT0FBTztnQkFJUCxhQUFhO3NCQURuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEN1c3RvbUZvcm1Db250cm9sIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9jdXN0b20tZm9ybS1jb250cm9sJztcbmltcG9ydCB7IGJvb2xlYW5Ub0F0dHJpYnV0ZVN0cmluZywgaW5qZWN0RWxlbWVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tvZHhDaGVja0JveENvbnRyb2xdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tCb3hDb250cm9sIGV4dGVuZHMgQ3VzdG9tRm9ybUNvbnRyb2w8Ym9vbGVhbj4ge1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgndmFsdWUnKVxuICBwdWJsaWMgY29udHJvbFZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNoZWNrZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIGdldCBhcmlhQ2hlY2tlZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBib29sZWFuVG9BdHRyaWJ1dGVTdHJpbmcodGhpcy5jaGVja2VkKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKGZhbHNlKTtcbiAgICBkZXRlY3RDb250cm9sbGVyQ2hhbmdlcyh0aGlzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgc3VwZXIudXBkYXRlVmFsdWUoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkKTtcbiAgICB0aGlzLmNoZWNrZWRDaGFuZ2UubmV4dCh0aGlzLmNoZWNrZWQpO1xuICB9XG59XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtY29udHJvbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2NoZWNrYm94LWNvbnRyb2wvc3JjL2xpYi9jaGVja2JveC1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRTdFOztHQUVHO0FBSUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsaUJBQTBCO0lBRzdELElBQ1csT0FBTyxDQUFDLEtBQWM7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUNELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQVNELElBQVcsV0FBVztRQUNwQixPQUFPLHdCQUF3QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7UUFDRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUF0QkMsWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBVTFDLDJEQUEyRDtRQUVwRCxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFHbkMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBUWpELHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBWTtRQUMzQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLFdBQVcsQ0FBRSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQzsrR0EvQlUsZUFBZTttR0FBZixlQUFlLDhFQUdOLGdCQUFnQjs7NEZBSHpCLGVBQWU7a0JBSDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakM7MEVBS1ksT0FBTztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFVL0IsWUFBWTtzQkFEbEIsS0FBSzt1QkFBQyxPQUFPO2dCQUlQLGFBQWE7c0JBRG5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXMgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ3VzdG9tRm9ybUNvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgYm9vbGVhblRvQXR0cmlidXRlU3RyaW5nLCBpbmplY3RFbGVtZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuLyoqXG4gKiBgQ2hlY2tCb3hDb250cm9sYCBpcyBhIGRpcmVjdGl2ZSB0aGF0IGV4dGVuZHMgYEN1c3RvbUZvcm1Db250cm9sYCB0byBjcmVhdGUgYSBjdXN0b20gY2hlY2tib3ggY29udHJvbC4gSXQgaW50ZWdyYXRlcyBzZWFtbGVzc2x5IHdpdGggQW5ndWxhciBmb3JtcyBhbmQgcHJvdmlkZXMgYWRkaXRpb25hbCBldmVudHMgYW5kIGJpbmRpbmdzIGZvciBlbmhhbmNlZCBmdW5jdGlvbmFsaXR5LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbb2R4Q2hlY2tCb3hDb250cm9sXScsXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrQm94Q29udHJvbCBleHRlbmRzIEN1c3RvbUZvcm1Db250cm9sPGJvb2xlYW4+IHtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgY2hlY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3ZhbHVlJylcbiAgcHVibGljIGNvbnRyb2xWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjaGVja2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHB1YmxpYyBnZXQgYXJpYUNoZWNrZWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYm9vbGVhblRvQXR0cmlidXRlU3RyaW5nKHRoaXMuY2hlY2tlZCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihmYWxzZSk7XG4gICAgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXModGhpcykuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2VkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHN1cGVyLnVwZGF0ZVZhbHVlKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCk7XG4gICAgdGhpcy5jaGVja2VkQ2hhbmdlLm5leHQodGhpcy5jaGVja2VkKTtcbiAgfVxufVxuIl19
@@ -4,10 +4,54 @@ import { deepmerge } from '@odx/angular/internal';
4
4
  import { ConnectedOverlayComponent } from './connected-overlay.component';
5
5
  import { ConnectedOverlayRef, DefaultConnectedOverlayOptions } from './models';
6
6
  import * as i0 from "@angular/core";
7
+ /**
8
+ * Service for creating and managing connected overlays. These overlays are UI elements such as popovers, tooltips,
9
+ * or dropdown menus that are positioned relative to a reference element in the DOM. This service leverages the `DynamicViewService`
10
+ * for dynamic component rendering and provides a streamlined API for creating overlays with custom positioning and options.
11
+ *
12
+ * Use the `ConnectedOverlayService` to dynamically create an overlay next to a specific element in your Angular application.
13
+ * This example demonstrates creating a connected overlay next to a button element when the button is clicked.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { Component, ElementRef, ViewChild } from '@angular/core';
18
+ * import { ConnectedOverlayService, ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';
19
+ *
20
+ * @Component({
21
+ * selector: 'app-example',
22
+ * template: `<button #triggerElement>Click me</button>`,
23
+ * })
24
+ * class AppComponent {
25
+ * @ViewChild('triggerElement') triggerElementRef!: ElementRef;
26
+ *
27
+ * constructor(private connectedOverlayService: ConnectedOverlayService) {}
28
+ *
29
+ * showOverlay(): void {
30
+ * const options: Partial<ConnectedOverlayOptions> = {
31
+ * position: 'bottom-start',
32
+ * showArrow: true,
33
+ * content: 'Hello, world!',
34
+ * };
35
+ *
36
+ * this.connectedOverlayService.createOverlay(this.triggerElementRef.nativeElement, options);
37
+ * }
38
+ * }
39
+ * ```
40
+ *
41
+ * This service simplifies the process of creating dynamic, positionally aware overlays that enhance the interactivity
42
+ * and visual appeal of Angular applications.
43
+ */
7
44
  export class ConnectedOverlayService {
8
45
  constructor() {
9
46
  this.dynamicViewService = inject(DynamicViewService);
10
47
  }
48
+ /**
49
+ * Creates a connected overlay.
50
+ * @param referenceElement - The reference element to which the overlay will be connected.
51
+ * @param options - Optional configuration for the connected overlay.
52
+ * @param renderingOptions - Optional rendering options for the connected overlay.
53
+ * @returns {ConnectedOverlayRef} The created Connected Overlay reference instance.
54
+ */
11
55
  createOverlay(referenceElement, options, renderingOptions) {
12
56
  const dynamicViewRef = this.dynamicViewService.createView(ConnectedOverlayComponent, {
13
57
  ...renderingOptions,
@@ -22,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
22
66
  type: Injectable,
23
67
  args: [{ providedIn: 'root' }]
24
68
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGVkLW92ZXJsYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvY29ubmVjdGVkLW92ZXJsYXkvc3JjL2xpYi9jb25uZWN0ZWQtb3ZlcmxheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBK0Isa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUEyQixtQkFBbUIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHeEcsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUVtQix1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQWNsRTtJQVpRLGFBQWEsQ0FDbEIsZ0JBQWdDLEVBQ2hDLE9BQTBDLEVBQzFDLGdCQUF1RDtRQUV2RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLHlCQUF5QixFQUFFO1lBQ25GLEdBQUcsZ0JBQWdCO1lBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsOEJBQThCLEVBQUUsT0FBTyxDQUE0QixFQUFFLGdCQUFnQixFQUFFO1NBQ3RILENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxDQUFDOytHQWRVLHVCQUF1QjttSEFBdkIsdUJBQXVCLGNBRFYsTUFBTTs7NEZBQ25CLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpcnR1YWxFbGVtZW50IH0gZnJvbSAnQGZsb2F0aW5nLXVpL2RvbSc7XG5pbXBvcnQgeyBEeW5hbWljVmlld1JlbmRlcmluZ09wdGlvbnMsIER5bmFtaWNWaWV3U2VydmljZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IGRlZXBtZXJnZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5Q29tcG9uZW50IH0gZnJvbSAnLi9jb25uZWN0ZWQtb3ZlcmxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ubmVjdGVkT3ZlcmxheU9wdGlvbnMsIENvbm5lY3RlZE92ZXJsYXlSZWYsIERlZmF1bHRDb25uZWN0ZWRPdmVybGF5T3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb25uZWN0ZWRPdmVybGF5U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZHluYW1pY1ZpZXdTZXJ2aWNlID0gaW5qZWN0KER5bmFtaWNWaWV3U2VydmljZSk7XG5cbiAgcHVibGljIGNyZWF0ZU92ZXJsYXkoXG4gICAgcmVmZXJlbmNlRWxlbWVudDogVmlydHVhbEVsZW1lbnQsXG4gICAgb3B0aW9ucz86IFBhcnRpYWw8Q29ubmVjdGVkT3ZlcmxheU9wdGlvbnM+LFxuICAgIHJlbmRlcmluZ09wdGlvbnM/OiBQYXJ0aWFsPER5bmFtaWNWaWV3UmVuZGVyaW5nT3B0aW9ucz5cbiAgKTogQ29ubmVjdGVkT3ZlcmxheVJlZiB7XG4gICAgY29uc3QgZHluYW1pY1ZpZXdSZWYgPSB0aGlzLmR5bmFtaWNWaWV3U2VydmljZS5jcmVhdGVWaWV3KENvbm5lY3RlZE92ZXJsYXlDb21wb25lbnQsIHtcbiAgICAgIC4uLnJlbmRlcmluZ09wdGlvbnMsXG4gICAgICBjb250ZXh0OiB7IG9wdGlvbnM6IGRlZXBtZXJnZShEZWZhdWx0Q29ubmVjdGVkT3ZlcmxheU9wdGlvbnMsIG9wdGlvbnMpIGFzIENvbm5lY3RlZE92ZXJsYXlPcHRpb25zLCByZWZlcmVuY2VFbGVtZW50IH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IENvbm5lY3RlZE92ZXJsYXlSZWYoZHluYW1pY1ZpZXdSZWYpO1xuICB9XG59XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGVkLW92ZXJsYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvY29ubmVjdGVkLW92ZXJsYXkvc3JjL2xpYi9jb25uZWN0ZWQtb3ZlcmxheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBK0Isa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUEyQixtQkFBbUIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFFeEc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DRztBQUVILE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFbUIsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FxQmxFO0lBbkJDOzs7Ozs7T0FNRztJQUNJLGFBQWEsQ0FDbEIsZ0JBQWdDLEVBQ2hDLE9BQTBDLEVBQzFDLGdCQUF1RDtRQUV2RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLHlCQUF5QixFQUFFO1lBQ25GLEdBQUcsZ0JBQWdCO1lBQ25CLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsOEJBQThCLEVBQUUsT0FBTyxDQUE0QixFQUFFLGdCQUFnQixFQUFFO1NBQ3RILENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxDQUFDOytHQXJCVSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQURWLE1BQU07OzRGQUNuQix1QkFBdUI7a0JBRG5DLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWaXJ0dWFsRWxlbWVudCB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdSZW5kZXJpbmdPcHRpb25zLCBEeW5hbWljVmlld1NlcnZpY2UgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBkZWVwbWVyZ2UgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgQ29ubmVjdGVkT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vY29ubmVjdGVkLW92ZXJsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IENvbm5lY3RlZE92ZXJsYXlPcHRpb25zLCBDb25uZWN0ZWRPdmVybGF5UmVmLCBEZWZhdWx0Q29ubmVjdGVkT3ZlcmxheU9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgY3JlYXRpbmcgYW5kIG1hbmFnaW5nIGNvbm5lY3RlZCBvdmVybGF5cy4gVGhlc2Ugb3ZlcmxheXMgYXJlIFVJIGVsZW1lbnRzIHN1Y2ggYXMgcG9wb3ZlcnMsIHRvb2x0aXBzLFxuICogb3IgZHJvcGRvd24gbWVudXMgdGhhdCBhcmUgcG9zaXRpb25lZCByZWxhdGl2ZSB0byBhIHJlZmVyZW5jZSBlbGVtZW50IGluIHRoZSBET00uIFRoaXMgc2VydmljZSBsZXZlcmFnZXMgdGhlIGBEeW5hbWljVmlld1NlcnZpY2VgXG4gKiBmb3IgZHluYW1pYyBjb21wb25lbnQgcmVuZGVyaW5nIGFuZCBwcm92aWRlcyBhIHN0cmVhbWxpbmVkIEFQSSBmb3IgY3JlYXRpbmcgb3ZlcmxheXMgd2l0aCBjdXN0b20gcG9zaXRpb25pbmcgYW5kIG9wdGlvbnMuXG4gKlxuICogVXNlIHRoZSBgQ29ubmVjdGVkT3ZlcmxheVNlcnZpY2VgIHRvIGR5bmFtaWNhbGx5IGNyZWF0ZSBhbiBvdmVybGF5IG5leHQgdG8gYSBzcGVjaWZpYyBlbGVtZW50IGluIHlvdXIgQW5ndWxhciBhcHBsaWNhdGlvbi5cbiAqIFRoaXMgZXhhbXBsZSBkZW1vbnN0cmF0ZXMgY3JlYXRpbmcgYSBjb25uZWN0ZWQgb3ZlcmxheSBuZXh0IHRvIGEgYnV0dG9uIGVsZW1lbnQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICogaW1wb3J0IHsgQ29ubmVjdGVkT3ZlcmxheVNlcnZpY2UsIENvbm5lY3RlZE92ZXJsYXlPcHRpb25zIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9jb25uZWN0ZWQtb3ZlcmxheSc7XG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnYXBwLWV4YW1wbGUnLFxuICogICB0ZW1wbGF0ZTogYDxidXR0b24gI3RyaWdnZXJFbGVtZW50PkNsaWNrIG1lPC9idXR0b24+YCxcbiAqIH0pXG4gKiBjbGFzcyBBcHBDb21wb25lbnQge1xuICogICBAVmlld0NoaWxkKCd0cmlnZ2VyRWxlbWVudCcpIHRyaWdnZXJFbGVtZW50UmVmITogRWxlbWVudFJlZjtcbiAqXG4gKiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29ubmVjdGVkT3ZlcmxheVNlcnZpY2U6IENvbm5lY3RlZE92ZXJsYXlTZXJ2aWNlKSB7fVxuICpcbiAqICAgc2hvd092ZXJsYXkoKTogdm9pZCB7XG4gKiAgICAgY29uc3Qgb3B0aW9uczogUGFydGlhbDxDb25uZWN0ZWRPdmVybGF5T3B0aW9ucz4gPSB7XG4gKiAgICAgICBwb3NpdGlvbjogJ2JvdHRvbS1zdGFydCcsXG4gKiAgICAgICBzaG93QXJyb3c6IHRydWUsXG4gKiAgICAgICBjb250ZW50OiAnSGVsbG8sIHdvcmxkIScsXG4gKiAgICAgfTtcbiAqXG4gKiAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5U2VydmljZS5jcmVhdGVPdmVybGF5KHRoaXMudHJpZ2dlckVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIFRoaXMgc2VydmljZSBzaW1wbGlmaWVzIHRoZSBwcm9jZXNzIG9mIGNyZWF0aW5nIGR5bmFtaWMsIHBvc2l0aW9uYWxseSBhd2FyZSBvdmVybGF5cyB0aGF0IGVuaGFuY2UgdGhlIGludGVyYWN0aXZpdHlcbiAqIGFuZCB2aXN1YWwgYXBwZWFsIG9mIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIENvbm5lY3RlZE92ZXJsYXlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkeW5hbWljVmlld1NlcnZpY2UgPSBpbmplY3QoRHluYW1pY1ZpZXdTZXJ2aWNlKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGNvbm5lY3RlZCBvdmVybGF5LlxuICAgKiBAcGFyYW0gcmVmZXJlbmNlRWxlbWVudCAtIFRoZSByZWZlcmVuY2UgZWxlbWVudCB0byB3aGljaCB0aGUgb3ZlcmxheSB3aWxsIGJlIGNvbm5lY3RlZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgY29ubmVjdGVkIG92ZXJsYXkuXG4gICAqIEBwYXJhbSByZW5kZXJpbmdPcHRpb25zIC0gT3B0aW9uYWwgcmVuZGVyaW5nIG9wdGlvbnMgZm9yIHRoZSBjb25uZWN0ZWQgb3ZlcmxheS5cbiAgICogQHJldHVybnMge0Nvbm5lY3RlZE92ZXJsYXlSZWZ9IFRoZSBjcmVhdGVkIENvbm5lY3RlZCBPdmVybGF5IHJlZmVyZW5jZSBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVPdmVybGF5KFxuICAgIHJlZmVyZW5jZUVsZW1lbnQ6IFZpcnR1YWxFbGVtZW50LFxuICAgIG9wdGlvbnM/OiBQYXJ0aWFsPENvbm5lY3RlZE92ZXJsYXlPcHRpb25zPixcbiAgICByZW5kZXJpbmdPcHRpb25zPzogUGFydGlhbDxEeW5hbWljVmlld1JlbmRlcmluZ09wdGlvbnM+LFxuICApOiBDb25uZWN0ZWRPdmVybGF5UmVmIHtcbiAgICBjb25zdCBkeW5hbWljVmlld1JlZiA9IHRoaXMuZHluYW1pY1ZpZXdTZXJ2aWNlLmNyZWF0ZVZpZXcoQ29ubmVjdGVkT3ZlcmxheUNvbXBvbmVudCwge1xuICAgICAgLi4ucmVuZGVyaW5nT3B0aW9ucyxcbiAgICAgIGNvbnRleHQ6IHsgb3B0aW9uczogZGVlcG1lcmdlKERlZmF1bHRDb25uZWN0ZWRPdmVybGF5T3B0aW9ucywgb3B0aW9ucykgYXMgQ29ubmVjdGVkT3ZlcmxheU9wdGlvbnMsIHJlZmVyZW5jZUVsZW1lbnQgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgQ29ubmVjdGVkT3ZlcmxheVJlZihkeW5hbWljVmlld1JlZik7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,15 @@
1
1
  import { arrow, computePosition, flip, hide, shift, size, offset as withOffset } from '@floating-ui/dom';
2
2
  import { applyStyles, cssTranslate, getOppositeSide, getSide, px } from '@odx/angular/utils';
3
+ /**
4
+ * Computes the position of an overlay element relative to a reference element.
5
+ *
6
+ * @param referenceElement - The reference element to position the overlay relative to.
7
+ * @param overlayElement - The overlay element to be positioned.
8
+ * @param contentElement - The content element within the overlay.
9
+ * @param arrowElement - The arrow element within the overlay.
10
+ * @param options - The options for positioning the overlay.
11
+ * @returns A promise that resolves to the computed position of the overlay.
12
+ */
3
13
  export async function computeOverlayPosition(referenceElement, overlayElement, contentElement, arrowElement, options) {
4
14
  const { position, offset, outerPadding, matchReferenceWidth, enableFallback, fallbackAxisSideDirection, strategy, minHeight } = options;
5
15
  const arrowSize = options.showArrow ? arrowElement.offsetWidth : 0;
@@ -51,4 +61,4 @@ export async function computeOverlayPosition(referenceElement, overlayElement, c
51
61
  return result;
52
62
  });
53
63
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZS1vdmVybGF5LXBvc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9jb25uZWN0ZWQtb3ZlcmxheS9zcmMvbGliL2hlbHBlcnMvY29tcHV0ZS1vdmVybGF5LXBvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxJQUFJLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hKLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHN0YsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsZ0JBQWdDLEVBQ2hDLGNBQTJCLEVBQzNCLGNBQTJCLEVBQzNCLFlBQXlCLEVBQ3pCLE9BQWdDO0lBRWhDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUN4SSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRyxNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxD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RSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUNoRDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXB1dGVQb3NpdGlvblJldHVybiwgVmlydHVhbEVsZW1lbnQsIGFycm93LCBjb21wdXRlUG9zaXRpb24sIGZsaXAsIGhpZGUsIHNoaWZ0LCBzaXplLCBvZmZzZXQgYXMgd2l0aE9mZnNldCB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgYXBwbHlTdHlsZXMsIGNzc1RyYW5zbGF0ZSwgZ2V0T3Bwb3NpdGVTaWRlLCBnZXRTaWRlLCBweCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5T3B0aW9ucyB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb21wdXRlT3ZlcmxheVBvc2l0aW9uKFxuICByZWZlcmVuY2VFbGVtZW50OiBWaXJ0dWFsRWxlbWVudCxcbiAgb3ZlcmxheUVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBjb250ZW50RWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGFycm93RWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIG9wdGlvbnM6IENvbm5lY3RlZE92ZXJsYXlPcHRpb25zLFxuKTogUHJvbWlzZTxDb21wdXRlUG9zaXRpb25SZXR1cm4+IHtcbiAgY29uc3QgeyBwb3NpdGlvbiwgb2Zmc2V0LCBvdXRlclBhZGRpbmcsIG1hdGNoUmVmZXJlbmNlV2lkdGgsIGVuYWJsZUZhbGxiYWNrLCBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uLCBzdHJhdGVneSwgbWluSGVpZ2h0IH0gPSBvcHRpb25zO1xuICBjb25zdCBhcnJvd1NpemUgPSBvcHRpb25zLnNob3dBcnJvdyA/IGFycm93RWxlbWVudC5vZmZzZXRXaWR0aCA6IDA7XG4gIGNvbnN0IGFycm93TWlkZGxld2FyZSA9IG9wdGlvbnMuc2hvd0Fycm93ID8gW2Fycm93KHsgZWxlbWVudDogYXJyb3dFbGVtZW50LCBwYWRkaW5nOiA4IH0pXSA6IFtdO1xuICBjb25zdCBmbGlwTWlkZGxlV2FyZSA9IGVuYWJsZUZhbGxiYWNrID8gW2ZsaXAoeyBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uIH0pXSA6IFtdO1xuXG4gIHJldHVybiBjb21wdXRlUG9zaXRpb24ocmVmZXJlbmNlRWxlbWVudCwgb3ZlcmxheUVsZW1lbnQsIHtcbiAgICBzdHJhdGVneSxcbiAgICBwbGFjZW1lbnQ6IHBvc2l0aW9uLFxuICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgIHdpdGhPZmZzZXQoTWF0aC5tYXgob2Zmc2V0LCBhcnJvd1NpemUgKyBvZmZzZXQpKSxcbiAgICAgIHNoaWZ0KHsgcGFkZGluZzogb3V0ZXJQYWRkaW5nIH0pLFxuICAgICAgLi4uZmxpcE1pZGRsZVdhcmUsXG4gICAgICBzaXplKHtcbiAgICAgICAgcGFkZGluZzogb3V0ZXJQYWRkaW5nLFxuICAgICAgICBhcHBseTogKHsgYXZhaWxhYmxlSGVpZ2h0LCBhdmFpbGFibGVXaWR0aCwgcmVjdHMgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhcmlhYmxlUHJlZml4ID0gJy0tb2R4LWNkay1jb25uZWN0ZWQtb3ZlcmxheSc7XG4gICAgICAgICAgY29udGVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoYCR7dmFyaWFibGVQcmVmaXh9LW1heC1oZWlnaHRgLCBweChhdmFpbGFibGVIZWlnaHQpKTtcbiAgICAgICAgICBjb250ZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShgJHt2YXJpYWJsZVByZWZpeH0tbWF4LXdpZHRoYCwgcHgoYXZhaWxhYmxlV2lkdGgpKTtcbiAgICAgICAgICBjb250ZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShgJHt2YXJpYWJsZVByZWZpeH0tbWluLWhlaWdodGAsIG1pbkhlaWdodCA/IHB4KE1hdGgubWluKGF2YWlsYWJsZUhlaWdodCwgbWluSGVpZ2h0KSkgOiBudWxsKTtcbiAgICAgICAgICBjb250ZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShgJHt2YXJpYWJsZVByZWZpeH0tbWluLXdpZHRoYCwgbWF0Y2hSZWZlcmVuY2VXaWR0aCA/IHB4KHJlY3RzLnJlZmVyZW5jZS53aWR0aCkgOiBudWxsKTtcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgLi4uYXJyb3dNaWRkbGV3YXJlLFxuICAgICAgaGlkZSgpLFxuICAgIF0sXG4gIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgIGFwcGx5U3R5bGVzKG92ZXJsYXlFbGVtZW50LCB7XG4gICAgICB0b3A6ICcwJyxcbiAgICAgIGxlZnQ6ICcwJyxcbiAgICAgIHRyYW5zZm9ybTogY3NzVHJhbnNsYXRlKHB4KHJlc3VsdC54KSwgcHgocmVzdWx0LnkpKSxcbiAgICB9KTtcbiAgICBpZiAob3B0aW9ucy5oaWRkZW5DbGFzcykge1xuICAgICAgb3ZlcmxheUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShvcHRpb25zLmhpZGRlbkNsYXNzLCAhIXJlc3VsdC5taWRkbGV3YXJlRGF0YS5oaWRlPy5yZWZlcmVuY2VIaWRkZW4pO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5zaG93QXJyb3cpIHtcbiAgICAgIGNvbnN0IG92ZXJsYXlTaWRlID0gZ2V0U2lkZShyZXN1bHQucGxhY2VtZW50KTtcbiAgICAgIGNvbnN0IGFycm93U2lkZSA9IGdldE9wcG9zaXRlU2lkZShyZXN1bHQucGxhY2VtZW50KTtcbiAgICAgIGFwcGx5U3R5bGVzKGFycm93RWxlbWVudCwge1xuICAgICAgICBkaXNwbGF5OiBudWxsLFxuICAgICAgICB0b3A6IHB4KHJlc3VsdC5taWRkbGV3YXJlRGF0YS5hcnJvdz8ueSksXG4gICAgICAgIGxlZnQ6IHB4KHJlc3VsdC5taWRkbGV3YXJlRGF0YS5hcnJvdz8ueCksXG4gICAgICAgIFthcnJvd1NpZGVdOiBweCgtYXJyb3dTaXplIC8gMiksXG4gICAgICAgIFtvdmVybGF5U2lkZV06IG51bGwsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBwbHlTdHlsZXMoYXJyb3dFbGVtZW50LCB7IGRpc3BsYXk6ICdub25lJyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbn1cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZS1vdmVybGF5LXBvc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9jb25uZWN0ZWQtb3ZlcmxheS9zcmMvbGliL2hlbHBlcnMvY29tcHV0ZS1vdmVybGF5LXBvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxJQUFJLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hKLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHN0Y7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsZ0JBQWdDLEVBQ2hDLGNBQTJCLEVBQzNCLGNBQTJCLEVBQzNCLFlBQXlCLEVBQ3pCLE9BQWdDO0lBRWhDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUN4SSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRyxNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FB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Q0FBQyxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUNoRDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXB1dGVQb3NpdGlvblJldHVybiwgVmlydHVhbEVsZW1lbnQsIGFycm93LCBjb21wdXRlUG9zaXRpb24sIGZsaXAsIGhpZGUsIHNoaWZ0LCBzaXplLCBvZmZzZXQgYXMgd2l0aE9mZnNldCB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuaW1wb3J0IHsgYXBwbHlTdHlsZXMsIGNzc1RyYW5zbGF0ZSwgZ2V0T3Bwb3NpdGVTaWRlLCBnZXRTaWRlLCBweCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5T3B0aW9ucyB9IGZyb20gJy4uL21vZGVscyc7XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIHBvc2l0aW9uIG9mIGFuIG92ZXJsYXkgZWxlbWVudCByZWxhdGl2ZSB0byBhIHJlZmVyZW5jZSBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2VFbGVtZW50IC0gVGhlIHJlZmVyZW5jZSBlbGVtZW50IHRvIHBvc2l0aW9uIHRoZSBvdmVybGF5IHJlbGF0aXZlIHRvLlxuICogQHBhcmFtIG92ZXJsYXlFbGVtZW50IC0gVGhlIG92ZXJsYXkgZWxlbWVudCB0byBiZSBwb3NpdGlvbmVkLlxuICogQHBhcmFtIGNvbnRlbnRFbGVtZW50IC0gVGhlIGNvbnRlbnQgZWxlbWVudCB3aXRoaW4gdGhlIG92ZXJsYXkuXG4gKiBAcGFyYW0gYXJyb3dFbGVtZW50IC0gVGhlIGFycm93IGVsZW1lbnQgd2l0aGluIHRoZSBvdmVybGF5LlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcG9zaXRpb25pbmcgdGhlIG92ZXJsYXkuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgY29tcHV0ZWQgcG9zaXRpb24gb2YgdGhlIG92ZXJsYXkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb21wdXRlT3ZlcmxheVBvc2l0aW9uKFxuICByZWZlcmVuY2VFbGVtZW50OiBWaXJ0dWFsRWxlbWVudCxcbiAgb3ZlcmxheUVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICBjb250ZW50RWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGFycm93RWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIG9wdGlvbnM6IENvbm5lY3RlZE92ZXJsYXlPcHRpb25zLFxuKTogUHJvbWlzZTxDb21wdXRlUG9zaXRpb25SZXR1cm4+IHtcbiAgY29uc3QgeyBwb3NpdGlvbiwgb2Zmc2V0LCBvdXRlclBhZGRpbmcsIG1hdGNoUmVmZXJlbmNlV2lkdGgsIGVuYWJsZUZhbGxiYWNrLCBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uLCBzdHJhdGVneSwgbWluSGVpZ2h0IH0gPSBvcHRpb25zO1xuICBjb25zdCBhcnJvd1NpemUgPSBvcHRpb25zLnNob3dBcnJvdyA/IGFycm93RWxlbWVudC5vZmZzZXRXaWR0aCA6IDA7XG4gIGNvbnN0IGFycm93TWlkZGxld2FyZSA9IG9wdGlvbnMuc2hvd0Fycm93ID8gW2Fycm93KHsgZWxlbWVudDogYXJyb3dFbGVtZW50LCBwYWRkaW5nOiA4IH0pXSA6IFtdO1xuICBjb25zdCBmbGlwTWlkZGxlV2FyZSA9IGVuYWJsZUZhbGxiYWNrID8gW2ZsaXAoeyBmYWxsYmFja0F4aXNTaWRlRGlyZWN0aW9uIH0pXSA6IFtdO1xuXG4gIHJldHVybiBjb21wdXRlUG9zaXRpb24ocmVmZXJlbmNlRWxlbWVudCwgb3ZlcmxheUVsZW1lbnQsIHtcbiAgICBzdHJhdGVneSxcbiAgICBwbGFjZW1lbnQ6IHBvc2l0aW9uLFxuICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgIHdpdGhPZmZzZXQoTWF0aC5tYXgob2Zmc2V0LCBhcnJvd1NpemUgKyBvZmZzZXQpKSxcbiAgICAgIHNoaWZ0KHsgcGFkZGluZzogb3V0ZXJQYWRkaW5nIH0pLFxuICAgICAgLi4uZmxpcE1pZGRsZVdhcmUsXG4gICAgICBzaXplKHtcbiAgICAgICAgcGFkZGluZzogb3V0ZXJQYWRkaW5nLFxuICAgICAgICBhcHBseTogKHsgYXZhaWxhYmxlSGVpZ2h0LCBhdmFpbGFibGVXaWR0aCwgcmVjdHMgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhcmlhYmxlUHJlZml4ID0gJy0tb2R4LWNkay1jb25uZWN0ZWQtb3ZlcmxheSc7XG4gICAgICAgICAgY29udGVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoYCR7dmFyaWFibGVQcmVmaXh9LW1heC1oZWlnaHRgLCBweChhdmFpbGFibGVIZWlnaHQpKTtcbiAgICAgICAgICBjb250ZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShgJHt2YXJpYWJsZVByZWZpeH0tbWF4LXdpZHRoYCwgcHgoYXZhaWxhYmxlV2lkdGgpKTtcbiAgICAgICAgICBjb250ZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShgJHt2YXJpYWJsZVByZWZpeH0tbWluLWhlaWdodGAsIG1pbkhlaWdodCA/IHB4KE1hdGgubWluKGF2YWlsYWJsZUhlaWdodCwgbWluSGVpZ2h0KSkgOiBudWxsKTtcbiAgICAgICAgICBjb250ZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShgJHt2YXJpYWJsZVByZWZpeH0tbWluLXdpZHRoYCwgbWF0Y2hSZWZlcmVuY2VXaWR0aCA/IHB4KHJlY3RzLnJlZmVyZW5jZS53aWR0aCkgOiBudWxsKTtcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgLi4uYXJyb3dNaWRkbGV3YXJlLFxuICAgICAgaGlkZSgpLFxuICAgIF0sXG4gIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgIGFwcGx5U3R5bGVzKG92ZXJsYXlFbGVtZW50LCB7XG4gICAgICB0b3A6ICcwJyxcbiAgICAgIGxlZnQ6ICcwJyxcbiAgICAgIHRyYW5zZm9ybTogY3NzVHJhbnNsYXRlKHB4KHJlc3VsdC54KSwgcHgocmVzdWx0LnkpKSxcbiAgICB9KTtcbiAgICBpZiAob3B0aW9ucy5oaWRkZW5DbGFzcykge1xuICAgICAgb3ZlcmxheUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShvcHRpb25zLmhpZGRlbkNsYXNzLCAhIXJlc3VsdC5taWRkbGV3YXJlRGF0YS5oaWRlPy5yZWZlcmVuY2VIaWRkZW4pO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5zaG93QXJyb3cpIHtcbiAgICAgIGNvbnN0IG92ZXJsYXlTaWRlID0gZ2V0U2lkZShyZXN1bHQucGxhY2VtZW50KTtcbiAgICAgIGNvbnN0IGFycm93U2lkZSA9IGdldE9wcG9zaXRlU2lkZShyZXN1bHQucGxhY2VtZW50KTtcbiAgICAgIGFwcGx5U3R5bGVzKGFycm93RWxlbWVudCwge1xuICAgICAgICBkaXNwbGF5OiBudWxsLFxuICAgICAgICB0b3A6IHB4KHJlc3VsdC5taWRkbGV3YXJlRGF0YS5hcnJvdz8ueSksXG4gICAgICAgIGxlZnQ6IHB4KHJlc3VsdC5taWRkbGV3YXJlRGF0YS5hcnJvdz8ueCksXG4gICAgICAgIFthcnJvd1NpZGVdOiBweCgtYXJyb3dTaXplIC8gMiksXG4gICAgICAgIFtvdmVybGF5U2lkZV06IG51bGwsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBwbHlTdHlsZXMoYXJyb3dFbGVtZW50LCB7IGRpc3BsYXk6ICdub25lJyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbn1cbiJdfQ==
@@ -1,15 +1,64 @@
1
1
  import { EMPTY } from 'rxjs';
2
+ /**
3
+ * A reference to a connected overlay created by the `ConnectedOverlayService`. This class provides methods to interact
4
+ * with the overlay, such as updating its options or closing it. It encapsulates the `DynamicViewRef` for the overlay's instance,
5
+ * allowing for direct manipulation of the overlay's state and behavior.
6
+ *
7
+ * This example demonstrates how to use a `ConnectedOverlayRef` to update and close a connected overlay in response
8
+ * to user interactions.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * class MyComponent {
13
+ * private overlayRef?: ConnectedOverlayRef;
14
+ *
15
+ * constructor(private overlayService: ConnectedOverlayService) {}
16
+ *
17
+ * openOverlay() {
18
+ * this.overlayRef = this.overlayService.createOverlay(this.someElementRef.nativeElement, { position: 'bottom' });
19
+ * }
20
+ *
21
+ * updateOverlayPosition() {
22
+ * if (this.overlayRef) {
23
+ * this.overlayRef.update({ position: 'top' });
24
+ * }
25
+ * }
26
+ *
27
+ * closeOverlay() {
28
+ * this.overlayRef?.close();
29
+ * }
30
+ * }
31
+ * ```
32
+ *
33
+ * In this example, `MyComponent` uses the `ConnectedOverlayService` to create an overlay. It stores a reference to
34
+ * the created overlay in `overlayRef`, allowing it to update the overlay's position or close it when necessary.
35
+ */
2
36
  export class ConnectedOverlayRef {
3
37
  constructor(dynamicViewRef) {
4
38
  this.dynamicViewRef = dynamicViewRef;
5
39
  this.element = this.dynamicViewRef.getElement();
40
+ /**
41
+ * An Observable that emits when the overlay is closed.
42
+ *
43
+ * @emits {void} - Emits when the overlay is closed.
44
+ */
6
45
  this.onClose$ = this.dynamicViewRef.getContext().closed ?? EMPTY;
7
46
  }
47
+ /**
48
+ * Updates the connected overlay with new options.
49
+ *
50
+ * @param options - The new options to be applied to the connected overlay.
51
+ */
8
52
  update(options) {
9
53
  this.dynamicViewRef.update({ options: options });
10
54
  }
55
+ /**
56
+ * Closes the connected overlay.
57
+ *
58
+ * @returns {void}
59
+ */
11
60
  close() {
12
61
  this.dynamicViewRef.destroy();
13
62
  }
14
63
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGVkLW92ZXJsYXktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9jb25uZWN0ZWQtb3ZlcmxheS9zcmMvbGliL21vZGVscy9jb25uZWN0ZWQtb3ZlcmxheS1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUl6QyxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLFlBQTZCLGNBQWdFO1FBQWhFLG1CQUFjLEdBQWQsY0FBYyxDQUFrRDtRQUg3RSxZQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzQyxhQUFRLEdBQXFCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQztJQUVFLENBQUM7SUFFMUYsTUFBTSxDQUFDLE9BQXlDO1FBQ3JELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQWtDLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljVmlld1JlZiB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IEVNUFRZLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vY29ubmVjdGVkLW92ZXJsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IENvbm5lY3RlZE92ZXJsYXlPcHRpb25zIH0gZnJvbSAnLi9jb25uZWN0ZWQtb3ZlcmxheS1vcHRpb25zJztcblxuZXhwb3J0IGNsYXNzIENvbm5lY3RlZE92ZXJsYXlSZWYge1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IHRoaXMuZHluYW1pY1ZpZXdSZWYuZ2V0RWxlbWVudCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgb25DbG9zZSQ6IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLmR5bmFtaWNWaWV3UmVmLmdldENvbnRleHQoKS5jbG9zZWQgPz8gRU1QVFk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkeW5hbWljVmlld1JlZjogRHluYW1pY1ZpZXdSZWY8dHlwZW9mIENvbm5lY3RlZE92ZXJsYXlDb21wb25lbnQ+KSB7fVxuXG4gIHB1YmxpYyB1cGRhdGUob3B0aW9uczogUGFydGlhbDxDb25uZWN0ZWRPdmVybGF5T3B0aW9ucz4pIHtcbiAgICB0aGlzLmR5bmFtaWNWaWV3UmVmLnVwZGF0ZSh7IG9wdGlvbnM6IG9wdGlvbnMgYXMgQ29ubmVjdGVkT3ZlcmxheU9wdGlvbnMgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5keW5hbWljVmlld1JlZi5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGVkLW92ZXJsYXktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9jb25uZWN0ZWQtb3ZlcmxheS9zcmMvbGliL21vZGVscy9jb25uZWN0ZWQtb3ZlcmxheS1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUl6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQVU5QixZQUE2QixjQUFnRTtRQUFoRSxtQkFBYyxHQUFkLGNBQWMsQ0FBa0Q7UUFUN0UsWUFBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFM0Q7Ozs7V0FJRztRQUNhLGFBQVEsR0FBcUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO0lBRUUsQ0FBQztJQUVqRzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE9BQXlDO1FBQ3JELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQWtDLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY1ZpZXdSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29ubmVjdGVkT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4uL2Nvbm5lY3RlZC1vdmVybGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5T3B0aW9ucyB9IGZyb20gJy4vY29ubmVjdGVkLW92ZXJsYXktb3B0aW9ucyc7XG5cbi8qKlxuICogQSByZWZlcmVuY2UgdG8gYSBjb25uZWN0ZWQgb3ZlcmxheSBjcmVhdGVkIGJ5IHRoZSBgQ29ubmVjdGVkT3ZlcmxheVNlcnZpY2VgLiBUaGlzIGNsYXNzIHByb3ZpZGVzIG1ldGhvZHMgdG8gaW50ZXJhY3RcbiAqIHdpdGggdGhlIG92ZXJsYXksIHN1Y2ggYXMgdXBkYXRpbmcgaXRzIG9wdGlvbnMgb3IgY2xvc2luZyBpdC4gSXQgZW5jYXBzdWxhdGVzIHRoZSBgRHluYW1pY1ZpZXdSZWZgIGZvciB0aGUgb3ZlcmxheSdzIGluc3RhbmNlLFxuICogYWxsb3dpbmcgZm9yIGRpcmVjdCBtYW5pcHVsYXRpb24gb2YgdGhlIG92ZXJsYXkncyBzdGF0ZSBhbmQgYmVoYXZpb3IuXG4gKlxuICogVGhpcyBleGFtcGxlIGRlbW9uc3RyYXRlcyBob3cgdG8gdXNlIGEgYENvbm5lY3RlZE92ZXJsYXlSZWZgIHRvIHVwZGF0ZSBhbmQgY2xvc2UgYSBjb25uZWN0ZWQgb3ZlcmxheSBpbiByZXNwb25zZVxuICogdG8gdXNlciBpbnRlcmFjdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjbGFzcyBNeUNvbXBvbmVudCB7XG4gKiAgIHByaXZhdGUgb3ZlcmxheVJlZj86IENvbm5lY3RlZE92ZXJsYXlSZWY7XG4gKlxuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXlTZXJ2aWNlOiBDb25uZWN0ZWRPdmVybGF5U2VydmljZSkge31cbiAqXG4gKiAgIG9wZW5PdmVybGF5KCkge1xuICogICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlT3ZlcmxheSh0aGlzLnNvbWVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHsgcG9zaXRpb246ICdib3R0b20nIH0pO1xuICogICB9XG4gKlxuICogICB1cGRhdGVPdmVybGF5UG9zaXRpb24oKSB7XG4gKiAgICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICogICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZSh7IHBvc2l0aW9uOiAndG9wJyB9KTtcbiAqICAgICB9XG4gKiAgIH1cbiAqXG4gKiAgIGNsb3NlT3ZlcmxheSgpIHtcbiAqICAgICB0aGlzLm92ZXJsYXlSZWY/LmNsb3NlKCk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEluIHRoaXMgZXhhbXBsZSwgYE15Q29tcG9uZW50YCB1c2VzIHRoZSBgQ29ubmVjdGVkT3ZlcmxheVNlcnZpY2VgIHRvIGNyZWF0ZSBhbiBvdmVybGF5LiBJdCBzdG9yZXMgYSByZWZlcmVuY2UgdG9cbiAqIHRoZSBjcmVhdGVkIG92ZXJsYXkgaW4gYG92ZXJsYXlSZWZgLCBhbGxvd2luZyBpdCB0byB1cGRhdGUgdGhlIG92ZXJsYXkncyBwb3NpdGlvbiBvciBjbG9zZSBpdCB3aGVuIG5lY2Vzc2FyeS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbm5lY3RlZE92ZXJsYXlSZWYge1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IHRoaXMuZHluYW1pY1ZpZXdSZWYuZ2V0RWxlbWVudCgpO1xuXG4gIC8qKlxuICAgKiBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2hlbiB0aGUgb3ZlcmxheSBpcyBjbG9zZWQuXG4gICAqXG4gICAqIEBlbWl0cyB7dm9pZH0gLSBFbWl0cyB3aGVuIHRoZSBvdmVybGF5IGlzIGNsb3NlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvbkNsb3NlJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuZHluYW1pY1ZpZXdSZWYuZ2V0Q29udGV4dCgpLmNsb3NlZCA/PyBFTVBUWTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGR5bmFtaWNWaWV3UmVmOiBEeW5hbWljVmlld1JlZjx0eXBlb2YgQ29ubmVjdGVkT3ZlcmxheUNvbXBvbmVudD4pIHt9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGNvbm5lY3RlZCBvdmVybGF5IHdpdGggbmV3IG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG5ldyBvcHRpb25zIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGNvbm5lY3RlZCBvdmVybGF5LlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZShvcHRpb25zOiBQYXJ0aWFsPENvbm5lY3RlZE92ZXJsYXlPcHRpb25zPik6IHZvaWQge1xuICAgIHRoaXMuZHluYW1pY1ZpZXdSZWYudXBkYXRlKHsgb3B0aW9uczogb3B0aW9ucyBhcyBDb25uZWN0ZWRPdmVybGF5T3B0aW9ucyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGNvbm5lY3RlZCBvdmVybGF5LlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmR5bmFtaWNWaWV3UmVmLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19