@odx/angular 6.0.0 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/animations/lib/expand.d.ts +44 -0
  3. package/animations/lib/fade.d.ts +70 -0
  4. package/animations/lib/slide.d.ts +21 -0
  5. package/animations/lib/wait-for-child-animations.d.ts +38 -0
  6. package/breakpoints/lib/breakpoints.config.d.ts +38 -0
  7. package/breakpoints/lib/breakpoints.service.d.ts +43 -0
  8. package/breakpoints/lib/directives/match-breakpoints.directive.d.ts +36 -0
  9. package/breakpoints/lib/helpers/configure-breakpoint.d.ts +19 -0
  10. package/cdk/a11y/lib/directives/interactive.directive.d.ts +32 -0
  11. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +22 -0
  12. package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +17 -0
  13. package/cdk/active-indicator/lib/active-indicator.directive.d.ts +63 -0
  14. package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +53 -0
  15. package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +3 -0
  16. package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +44 -0
  17. package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +10 -0
  18. package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +49 -0
  19. package/cdk/custom-form-control/lib/custom-form-control.d.ts +108 -0
  20. package/cdk/custom-form-control/lib/input-control.directive.d.ts +75 -0
  21. package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +25 -0
  22. package/cdk/dynamic-view/lib/dynamic-view.service.d.ts +30 -0
  23. package/cdk/dynamic-view/lib/helpers/create-projectable-nodes.d.ts +22 -0
  24. package/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.d.ts +22 -0
  25. package/cdk/dynamic-view/lib/helpers/is-dynamic-view.d.ts +22 -0
  26. package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +39 -0
  27. package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +36 -0
  28. package/cdk/event-plugins/lib/event-plugins.config.d.ts +35 -0
  29. package/cdk/event-plugins/lib/models/event-plugin.d.ts +57 -0
  30. package/cdk/event-plugins/lib/plugins/debounce-event-plugin.d.ts +32 -0
  31. package/cdk/event-plugins/lib/plugins/defer-event-plugin.d.ts +24 -0
  32. package/cdk/expandable/lib/directives/expandable-container.directive.d.ts +41 -0
  33. package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +47 -0
  34. package/cdk/option-control/lib/option-control.d.ts +47 -0
  35. package/cdk/radio-group-control/lib/radio-control.directive.d.ts +8 -0
  36. package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +11 -0
  37. package/components/accordion/lib/accordion.component.d.ts +8 -0
  38. package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +37 -1
  39. package/components/accordion/lib/directives/accordion-item-title.d.ts +3 -0
  40. package/components/action-group/action-group.component.d.ts +6 -0
  41. package/components/area-header/area-header.component.d.ts +8 -0
  42. package/components/area-header/directives/area-header-content.directive.d.ts +3 -0
  43. package/components/area-header/directives/area-header-subtitle.directive.d.ts +3 -0
  44. package/components/autocomplete/lib/autocomplete.component.d.ts +17 -0
  45. package/components/avatar/lib/avatar.component.d.ts +8 -0
  46. package/components/badge/lib/badge.component.d.ts +10 -0
  47. package/components/badge/lib/badge.directive.d.ts +15 -0
  48. package/components/bar/lib/bar.component.d.ts +7 -0
  49. package/components/bar/lib/directives/bar-button.directive.d.ts +3 -0
  50. package/components/bar/lib/directives/bar-label.directive.d.ts +3 -0
  51. package/components/breadcrumbs/lib/breadcrumbs.component.d.ts +3 -0
  52. package/components/button/lib/button.component.d.ts +10 -0
  53. package/components/button-group/lib/button-group.component.d.ts +15 -0
  54. package/components/calendar/lib/calendar.component.d.ts +48 -0
  55. package/components/calendar/lib/calendar.config.d.ts +17 -0
  56. package/components/calendar/lib/calendar.service.d.ts +48 -0
  57. package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +24 -0
  58. package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +6 -0
  59. package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +6 -0
  60. package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +6 -0
  61. package/components/calendar/lib/daterange.service.d.ts +16 -0
  62. package/components/calendar/lib/directives/calendar-cell.directive.d.ts +37 -0
  63. package/components/calendar/lib/directives/calendar-view.directive.d.ts +41 -0
  64. package/components/calendar/lib/pipes/date-label.pipe.d.ts +5 -0
  65. package/components/calendar/lib/services/calendar-month.service.d.ts +1 -0
  66. package/components/calendar/lib/services/calendar-year.service.d.ts +1 -0
  67. package/components/calendar/lib/services/calendar-years.service.d.ts +1 -0
  68. package/components/calendar/lib/utils/check-cell-in-range.d.ts +1 -0
  69. package/components/calendar/lib/utils/check-identical-date.d.ts +1 -0
  70. package/components/calendar/lib/utils/get-A11y-label.d.ts +1 -0
  71. package/components/calendar/lib/utils/is-date-disabled.d.ts +1 -0
  72. package/components/calendar/lib/utils/parse-date.d.ts +1 -0
  73. package/components/calendar/lib/utils/validate-daterange.d.ts +1 -0
  74. package/components/calendar/lib/utils/validate-max-date.d.ts +1 -0
  75. package/components/calendar/lib/utils/validate-min-date.d.ts +1 -0
  76. package/components/calendar/lib/utils/validate-next-date-set.d.ts +1 -0
  77. package/components/calendar/lib/utils/validate-previous-date-set.d.ts +1 -0
  78. package/components/checkbox/lib/checkbox.component.d.ts +32 -0
  79. package/components/checkbox/lib/checkbox.validator.d.ts +23 -0
  80. package/components/chip/lib/components/chip/chip.component.d.ts +14 -0
  81. package/components/chip/lib/components/chip-list/chip-list.component.d.ts +3 -0
  82. package/components/chip/lib/components/chip-list-row/chip-list-row.component.d.ts +3 -0
  83. package/components/circular-progress/lib/circular-progress.component.d.ts +20 -0
  84. package/components/content-box/lib/content-box.component.d.ts +3 -0
  85. package/components/content-box/lib/directives/content-box-footer.directive.d.ts +3 -0
  86. package/components/content-box/lib/directives/content-box-header.directive.d.ts +3 -0
  87. package/components/datepicker/lib/datepicker.component.d.ts +47 -0
  88. package/components/datepicker/lib/datepicker.config.d.ts +19 -0
  89. package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +30 -0
  90. package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +2 -0
  91. package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +1 -0
  92. package/components/daterangepicker/lib/daterangepicker.component.d.ts +89 -0
  93. package/components/daterangepicker/lib/daterangepicker.config.d.ts +19 -0
  94. package/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.d.ts +30 -0
  95. package/components/daterangepicker/lib/range.validator.d.ts +15 -0
  96. package/components/daterangepicker/lib/required.validator.d.ts +6 -0
  97. package/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.d.ts +2 -0
  98. package/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.d.ts +1 -0
  99. package/components/dropdown/lib/dropdown.component.d.ts +16 -0
  100. package/components/dropdown/lib/dropdown.directive.d.ts +67 -0
  101. package/components/dropdown/lib/helpers/close-current-dropdown.d.ts +5 -0
  102. package/components/error-page/lib/error-page.component.d.ts +7 -0
  103. package/components/error-page/lib/error-page.config.d.ts +18 -0
  104. package/components/footer/lib/footer.component.d.ts +9 -6
  105. package/components/footer/lib/footer.config.d.ts +2 -0
  106. package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +13 -0
  107. package/components/form-field/lib/components/form-group/form-group.component.d.ts +16 -0
  108. package/components/form-field/lib/directives/form-field-control.directive.d.ts +5 -0
  109. package/components/form-field/lib/directives/form-field-error.directive.d.ts +6 -0
  110. package/components/form-field/lib/directives/form-field-hint.directive.d.ts +3 -0
  111. package/components/form-field/lib/directives/form-field-label.directive.d.ts +3 -0
  112. package/components/form-field/lib/directives/form.directive.d.ts +13 -0
  113. package/components/form-field/lib/form-field.component.d.ts +20 -0
  114. package/components/form-field/lib/form-field.service.d.ts +42 -0
  115. package/components/form-field/lib/services/form-field-error.service.d.ts +24 -0
  116. package/components/header/lib/directives/header-avatar.directive.d.ts +4 -0
  117. package/components/header/lib/directives/header-title.directive.d.ts +3 -0
  118. package/components/header/lib/header.component.d.ts +3 -0
  119. package/components/header-navigation/lib/directives/header-navigation-link.directive.d.ts +3 -0
  120. package/components/header-navigation/lib/header-navigation.component.d.ts +6 -0
  121. package/components/icon/lib/helpers/unpack-icon-identifier.d.ts +14 -0
  122. package/components/icon/lib/icon.component.d.ts +24 -0
  123. package/components/icon/lib/icon.config.d.ts +26 -0
  124. package/components/inline-message/lib/inline-message.component.d.ts +13 -0
  125. package/components/link/link.directive.d.ts +3 -0
  126. package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +6 -0
  127. package/components/list/lib/components/list-item/list-item.component.d.ts +17 -1
  128. package/components/list/lib/list.component.d.ts +5 -0
  129. package/components/loading-spinner/lib/loading-spinner.component.d.ts +8 -0
  130. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +22 -0
  131. package/components/logo/logo.directive.d.ts +15 -0
  132. package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +5 -1
  133. package/components/main-menu/lib/directives/main-menu-close.directive.d.ts +3 -0
  134. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +16 -0
  135. package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +1 -0
  136. package/components/main-menu/lib/main-menu.component.d.ts +42 -0
  137. package/components/main-menu/lib/main-menu.config.d.ts +31 -0
  138. package/components/main-menu/lib/main-menu.service.d.ts +28 -0
  139. package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +4 -0
  140. package/components/menu/lib/directives/menu-item.directive.d.ts +6 -0
  141. package/components/menu/lib/menu.component.d.ts +13 -1
  142. package/components/menu/lib/menu.directive.d.ts +31 -0
  143. package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +14 -0
  144. package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +3 -0
  145. package/components/modal/lib/components/modal-header/modal-header.component.d.ts +9 -0
  146. package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +21 -0
  147. package/components/modal/lib/directives/modal-close.directive.d.ts +25 -1
  148. package/components/modal/lib/directives/modal-content.directive.d.ts +3 -0
  149. package/components/modal/lib/directives/modal-dismiss.directive.d.ts +18 -1
  150. package/components/modal/lib/helpers/inject-modal-ref.d.ts +21 -0
  151. package/components/modal/lib/helpers/provide-modal-ref.d.ts +9 -0
  152. package/components/modal/lib/modal.component.d.ts +25 -0
  153. package/components/modal/lib/modal.config.d.ts +33 -0
  154. package/components/modal/lib/modal.directive.d.ts +29 -0
  155. package/components/modal/lib/modal.service.d.ts +54 -0
  156. package/components/modal/lib/models/modal-ref.d.ts +34 -0
  157. package/components/navigation-back/lib/navigation-back.component.d.ts +3 -0
  158. package/components/notification/lib/components/notification-center/notification-center.component.d.ts +0 -2
  159. package/components/notification/lib/directives/notification-center.directive.d.ts +18 -4
  160. package/components/notification/lib/helpers/get-notifications-by-tag.d.ts +1 -0
  161. package/components/notification/lib/helpers/sort-notifications.d.ts +1 -0
  162. package/components/notification/lib/helpers/to-notification-collection.d.ts +1 -0
  163. package/components/notification/lib/models/notification-feature.d.ts +15 -0
  164. package/components/notification/lib/notification.config.d.ts +54 -0
  165. package/components/notification/lib/notification.logger.d.ts +1 -0
  166. package/components/notification/lib/notification.service.d.ts +55 -0
  167. package/components/notification/lib/notification.tokens.d.ts +3 -0
  168. package/components/notification/lib/services/notification-center.service.d.ts +9 -0
  169. package/components/paginator/lib/paginator.component.d.ts +89 -0
  170. package/components/paginator/lib/paginator.config.d.ts +24 -2
  171. package/components/progress/lib/progress.component.d.ts +15 -0
  172. package/components/radio-group/lib/radio-group.component.d.ts +11 -0
  173. package/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.d.ts +19 -0
  174. package/components/rail-navigation/lib/rail-navigation.component.d.ts +26 -0
  175. package/components/rich-list/lib/components/rich-list-content/rich-list-content.component.d.ts +4 -0
  176. package/components/rich-list/lib/components/rich-list-header/rich-list-header.component.d.ts +4 -0
  177. package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +9 -1
  178. package/components/rich-list/lib/rich-list.component.d.ts +9 -2
  179. package/components/select/lib/components/select-option/select-option.component.d.ts +39 -2
  180. package/components/select/lib/directives/select-input-control.directive.d.ts +11 -0
  181. package/components/select/lib/pipes/select-search-filter.pipe.d.ts +10 -0
  182. package/components/select/lib/select.component.d.ts +59 -0
  183. package/components/slider/lib/slider.directive.d.ts +19 -0
  184. package/components/spinbox/lib/spinbox.component.d.ts +16 -0
  185. package/components/switch/lib/switch.component.d.ts +10 -0
  186. package/components/switch/lib/switch.validator.d.ts +12 -0
  187. package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +28 -0
  188. package/components/tab-bar/lib/tab-bar.component.d.ts +69 -0
  189. package/components/table/lib/components/check-cell/check-cell.component.d.ts +18 -0
  190. package/components/table/lib/components/header-title/header-title.component.d.ts +33 -1
  191. package/components/table/lib/directives/table-cell.directive.d.ts +4 -0
  192. package/components/table/lib/directives/table-row.directive.d.ts +4 -0
  193. package/components/table/lib/table.component.d.ts +36 -0
  194. package/components/timepicker/lib/timepicker.component.d.ts +11 -2
  195. package/components/timepicker/lib/utils/generate-time-stamps.d.ts +2 -1
  196. package/components/timepicker/lib/utils/ngx-mask-helper.d.ts +2 -2
  197. package/components/toast/lib/toast.config.d.ts +26 -0
  198. package/components/toast/lib/toast.service.d.ts +35 -0
  199. package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +11 -0
  200. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +12 -0
  201. package/components/tooltip/lib/tooltip.component.d.ts +20 -0
  202. package/components/tooltip/lib/tooltip.directive.d.ts +35 -0
  203. package/components/wizard/lib/components/wizard-step/wizard-step.component.d.ts +34 -0
  204. package/components/wizard/lib/wizard.component.d.ts +20 -0
  205. package/esm2022/animations/lib/expand.mjs +45 -1
  206. package/esm2022/animations/lib/fade.mjs +71 -1
  207. package/esm2022/animations/lib/slide.mjs +22 -1
  208. package/esm2022/animations/lib/wait-for-child-animations.mjs +39 -1
  209. package/esm2022/breakpoints/lib/breakpoints.config.mjs +39 -1
  210. package/esm2022/breakpoints/lib/breakpoints.service.mjs +44 -1
  211. package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +37 -1
  212. package/esm2022/breakpoints/lib/helpers/configure-breakpoint.mjs +20 -1
  213. package/esm2022/cdk/a11y/lib/directives/interactive.directive.mjs +33 -1
  214. package/esm2022/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +23 -1
  215. package/esm2022/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +18 -1
  216. package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +64 -1
  217. package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +39 -1
  218. package/esm2022/cdk/checkbox-control/lib/checkbox-control.directive.mjs +4 -1
  219. package/esm2022/cdk/connected-overlay/lib/connected-overlay.service.mjs +45 -1
  220. package/esm2022/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +11 -1
  221. package/esm2022/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +50 -1
  222. package/esm2022/cdk/custom-form-control/lib/custom-form-control.mjs +109 -3
  223. package/esm2022/cdk/custom-form-control/lib/input-control.directive.mjs +76 -1
  224. package/esm2022/cdk/dynamic-view/lib/dynamic-view.directive.mjs +18 -1
  225. package/esm2022/cdk/dynamic-view/lib/dynamic-view.service.mjs +31 -1
  226. package/esm2022/cdk/dynamic-view/lib/helpers/create-projectable-nodes.mjs +23 -1
  227. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.mjs +23 -1
  228. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-view.mjs +23 -1
  229. package/esm2022/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +40 -1
  230. package/esm2022/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +37 -1
  231. package/esm2022/cdk/event-plugins/lib/event-plugins.config.mjs +36 -1
  232. package/esm2022/cdk/event-plugins/lib/models/event-plugin.mjs +45 -1
  233. package/esm2022/cdk/event-plugins/lib/plugins/debounce-event-plugin.mjs +33 -1
  234. package/esm2022/cdk/event-plugins/lib/plugins/defer-event-plugin.mjs +25 -1
  235. package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +42 -1
  236. package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +48 -1
  237. package/esm2022/cdk/option-control/lib/option-control.mjs +48 -1
  238. package/esm2022/cdk/radio-group-control/lib/radio-control.directive.mjs +9 -1
  239. package/esm2022/cdk/radio-group-control/lib/radio-group-control.directive.mjs +12 -1
  240. package/esm2022/components/accordion/lib/accordion.component.mjs +9 -1
  241. package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +31 -1
  242. package/esm2022/components/accordion/lib/directives/accordion-item-title.mjs +4 -1
  243. package/esm2022/components/action-group/action-group.component.mjs +7 -1
  244. package/esm2022/components/area-header/area-header.component.mjs +9 -1
  245. package/esm2022/components/area-header/directives/area-header-content.directive.mjs +4 -1
  246. package/esm2022/components/area-header/directives/area-header-subtitle.directive.mjs +4 -1
  247. package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +18 -1
  248. package/esm2022/components/avatar/lib/avatar.component.mjs +9 -1
  249. package/esm2022/components/badge/lib/badge.component.mjs +11 -1
  250. package/esm2022/components/badge/lib/badge.directive.mjs +16 -1
  251. package/esm2022/components/bar/lib/bar.component.mjs +8 -1
  252. package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +4 -1
  253. package/esm2022/components/bar/lib/directives/bar-label.directive.mjs +4 -1
  254. package/esm2022/components/breadcrumbs/lib/breadcrumbs.component.mjs +4 -1
  255. package/esm2022/components/button/lib/button.component.mjs +11 -1
  256. package/esm2022/components/button-group/lib/button-group.component.mjs +16 -1
  257. package/esm2022/components/calendar/lib/calendar.component.mjs +35 -1
  258. package/esm2022/components/calendar/lib/calendar.config.mjs +18 -1
  259. package/esm2022/components/calendar/lib/calendar.service.mjs +49 -1
  260. package/esm2022/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +19 -1
  261. package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +7 -1
  262. package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +7 -1
  263. package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +7 -1
  264. package/esm2022/components/calendar/lib/daterange.service.mjs +17 -1
  265. package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +26 -1
  266. package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +39 -1
  267. package/esm2022/components/calendar/lib/pipes/date-label.pipe.mjs +6 -1
  268. package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +2 -1
  269. package/esm2022/components/calendar/lib/services/calendar-year.service.mjs +2 -1
  270. package/esm2022/components/calendar/lib/services/calendar-years.service.mjs +2 -1
  271. package/esm2022/components/calendar/lib/utils/check-cell-in-range.mjs +2 -1
  272. package/esm2022/components/calendar/lib/utils/check-identical-date.mjs +2 -1
  273. package/esm2022/components/calendar/lib/utils/get-A11y-label.mjs +2 -1
  274. package/esm2022/components/calendar/lib/utils/is-date-disabled.mjs +2 -1
  275. package/esm2022/components/calendar/lib/utils/parse-date.mjs +2 -1
  276. package/esm2022/components/calendar/lib/utils/validate-daterange.mjs +2 -1
  277. package/esm2022/components/calendar/lib/utils/validate-max-date.mjs +2 -1
  278. package/esm2022/components/calendar/lib/utils/validate-min-date.mjs +2 -1
  279. package/esm2022/components/calendar/lib/utils/validate-next-date-set.mjs +2 -1
  280. package/esm2022/components/calendar/lib/utils/validate-previous-date-set.mjs +2 -1
  281. package/esm2022/components/checkbox/lib/checkbox.component.mjs +33 -1
  282. package/esm2022/components/checkbox/lib/checkbox.validator.mjs +24 -1
  283. package/esm2022/components/chip/lib/components/chip/chip.component.mjs +15 -1
  284. package/esm2022/components/chip/lib/components/chip-list/chip-list.component.mjs +4 -1
  285. package/esm2022/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +4 -1
  286. package/esm2022/components/circular-progress/lib/circular-progress.component.mjs +21 -1
  287. package/esm2022/components/content-box/lib/content-box.component.mjs +4 -1
  288. package/esm2022/components/content-box/lib/directives/content-box-footer.directive.mjs +4 -1
  289. package/esm2022/components/content-box/lib/directives/content-box-header.directive.mjs +4 -1
  290. package/esm2022/components/datepicker/lib/datepicker.component.mjs +33 -1
  291. package/esm2022/components/datepicker/lib/datepicker.config.mjs +20 -1
  292. package/esm2022/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +31 -1
  293. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +3 -1
  294. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +2 -1
  295. package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +65 -1
  296. package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +20 -1
  297. package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +31 -1
  298. package/esm2022/components/daterangepicker/lib/range.validator.mjs +16 -1
  299. package/esm2022/components/daterangepicker/lib/required.validator.mjs +15 -1
  300. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.mjs +3 -1
  301. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.mjs +2 -1
  302. package/esm2022/components/dropdown/lib/dropdown.component.mjs +8 -1
  303. package/esm2022/components/dropdown/lib/dropdown.directive.mjs +55 -1
  304. package/esm2022/components/dropdown/lib/helpers/close-current-dropdown.mjs +6 -1
  305. package/esm2022/components/error-page/lib/error-page.component.mjs +8 -1
  306. package/esm2022/components/error-page/lib/error-page.config.mjs +9 -1
  307. package/esm2022/components/footer/lib/footer.component.mjs +10 -7
  308. package/esm2022/components/footer/lib/footer.config.mjs +3 -1
  309. package/esm2022/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +14 -1
  310. package/esm2022/components/form-field/lib/components/form-group/form-group.component.mjs +13 -1
  311. package/esm2022/components/form-field/lib/directives/form-field-control.directive.mjs +6 -1
  312. package/esm2022/components/form-field/lib/directives/form-field-error.directive.mjs +4 -1
  313. package/esm2022/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -1
  314. package/esm2022/components/form-field/lib/directives/form-field-label.directive.mjs +4 -1
  315. package/esm2022/components/form-field/lib/directives/form.directive.mjs +14 -1
  316. package/esm2022/components/form-field/lib/form-field.component.mjs +14 -1
  317. package/esm2022/components/form-field/lib/form-field.service.mjs +43 -1
  318. package/esm2022/components/form-field/lib/services/form-field-error.service.mjs +25 -1
  319. package/esm2022/components/header/lib/directives/header-avatar.directive.mjs +5 -1
  320. package/esm2022/components/header/lib/directives/header-title.directive.mjs +4 -1
  321. package/esm2022/components/header/lib/header.component.mjs +4 -1
  322. package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +4 -1
  323. package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +4 -1
  324. package/esm2022/components/icon/lib/helpers/unpack-icon-identifier.mjs +15 -1
  325. package/esm2022/components/icon/lib/icon.component.mjs +25 -1
  326. package/esm2022/components/icon/lib/icon.config.mjs +20 -1
  327. package/esm2022/components/inline-message/lib/inline-message.component.mjs +14 -1
  328. package/esm2022/components/link/link.directive.mjs +4 -1
  329. package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +7 -1
  330. package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +18 -2
  331. package/esm2022/components/list/lib/list.component.mjs +6 -1
  332. package/esm2022/components/loading-spinner/lib/loading-spinner.component.mjs +10 -2
  333. package/esm2022/components/loading-spinner/lib/loading-spinner.directive.mjs +23 -1
  334. package/esm2022/components/logo/logo.directive.mjs +16 -1
  335. package/esm2022/components/main-menu/lib/directives/main-menu-button.directive.mjs +5 -1
  336. package/esm2022/components/main-menu/lib/directives/main-menu-close.directive.mjs +4 -1
  337. package/esm2022/components/main-menu/lib/directives/main-menu-item.directive.mjs +17 -1
  338. package/esm2022/components/main-menu/lib/helpers/create-main-menu-links.mjs +2 -1
  339. package/esm2022/components/main-menu/lib/main-menu.component.mjs +37 -1
  340. package/esm2022/components/main-menu/lib/main-menu.config.mjs +32 -1
  341. package/esm2022/components/main-menu/lib/main-menu.service.mjs +29 -1
  342. package/esm2022/components/mainfilter-group/lib/mainfilter-group.component.mjs +5 -1
  343. package/esm2022/components/menu/lib/directives/menu-item.directive.mjs +7 -1
  344. package/esm2022/components/menu/lib/menu.component.mjs +13 -1
  345. package/esm2022/components/menu/lib/menu.directive.mjs +19 -1
  346. package/esm2022/components/modal/lib/components/basic-modal/basic-modal.component.mjs +15 -1
  347. package/esm2022/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -1
  348. package/esm2022/components/modal/lib/components/modal-header/modal-header.component.mjs +4 -1
  349. package/esm2022/components/modal/lib/components/modal-hero/modal-hero.component.mjs +12 -1
  350. package/esm2022/components/modal/lib/directives/modal-close.directive.mjs +25 -1
  351. package/esm2022/components/modal/lib/directives/modal-content.directive.mjs +4 -1
  352. package/esm2022/components/modal/lib/directives/modal-dismiss.directive.mjs +18 -1
  353. package/esm2022/components/modal/lib/helpers/inject-modal-ref.mjs +22 -1
  354. package/esm2022/components/modal/lib/helpers/provide-modal-ref.mjs +10 -1
  355. package/esm2022/components/modal/lib/modal.component.mjs +21 -2
  356. package/esm2022/components/modal/lib/modal.config.mjs +34 -1
  357. package/esm2022/components/modal/lib/modal.directive.mjs +25 -1
  358. package/esm2022/components/modal/lib/modal.service.mjs +39 -1
  359. package/esm2022/components/modal/lib/models/modal-ref.mjs +34 -1
  360. package/esm2022/components/navigation-back/lib/navigation-back.component.mjs +4 -1
  361. package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +1 -3
  362. package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +19 -5
  363. package/esm2022/components/notification/lib/helpers/get-notifications-by-tag.mjs +2 -1
  364. package/esm2022/components/notification/lib/helpers/sort-notifications.mjs +2 -1
  365. package/esm2022/components/notification/lib/helpers/to-notification-collection.mjs +2 -1
  366. package/esm2022/components/notification/lib/models/notification-feature.mjs +16 -1
  367. package/esm2022/components/notification/lib/notification.config.mjs +45 -1
  368. package/esm2022/components/notification/lib/notification.logger.mjs +2 -1
  369. package/esm2022/components/notification/lib/notification.service.mjs +56 -1
  370. package/esm2022/components/notification/lib/notification.tokens.mjs +4 -1
  371. package/esm2022/components/notification/lib/services/notification-center.service.mjs +10 -1
  372. package/esm2022/components/paginator/lib/paginator.component.mjs +90 -1
  373. package/esm2022/components/paginator/lib/paginator.config.mjs +29 -1
  374. package/esm2022/components/progress/lib/progress.component.mjs +16 -1
  375. package/esm2022/components/radio-group/lib/radio-group.component.mjs +13 -2
  376. package/esm2022/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +17 -1
  377. package/esm2022/components/rail-navigation/lib/rail-navigation.component.mjs +27 -1
  378. package/esm2022/components/rich-list/lib/components/rich-list-content/rich-list-content.component.mjs +5 -1
  379. package/esm2022/components/rich-list/lib/components/rich-list-header/rich-list-header.component.mjs +5 -1
  380. package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +10 -2
  381. package/esm2022/components/rich-list/lib/rich-list.component.mjs +10 -3
  382. package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +47 -6
  383. package/esm2022/components/select/lib/directives/select-input-control.directive.mjs +12 -2
  384. package/esm2022/components/select/lib/pipes/select-search-filter.pipe.mjs +11 -1
  385. package/esm2022/components/select/lib/select.component.mjs +56 -2
  386. package/esm2022/components/slider/lib/slider.directive.mjs +20 -1
  387. package/esm2022/components/spinbox/lib/spinbox.component.mjs +17 -1
  388. package/esm2022/components/switch/lib/switch.component.mjs +11 -1
  389. package/esm2022/components/switch/lib/switch.validator.mjs +13 -1
  390. package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +29 -1
  391. package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +70 -1
  392. package/esm2022/components/table/lib/components/check-cell/check-cell.component.mjs +19 -1
  393. package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +30 -2
  394. package/esm2022/components/table/lib/directives/table-cell.directive.mjs +5 -1
  395. package/esm2022/components/table/lib/directives/table-row.directive.mjs +5 -1
  396. package/esm2022/components/table/lib/table.component.mjs +30 -1
  397. package/esm2022/components/timepicker/lib/timepicker.component.mjs +15 -6
  398. package/esm2022/components/timepicker/lib/utils/generate-time-stamps.mjs +5 -3
  399. package/esm2022/components/timepicker/lib/utils/ngx-mask-helper.mjs +3 -3
  400. package/esm2022/components/toast/lib/toast.config.mjs +27 -1
  401. package/esm2022/components/toast/lib/toast.service.mjs +36 -1
  402. package/esm2022/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +12 -1
  403. package/esm2022/components/toggle-button-group/lib/toggle-button-group.component.mjs +14 -2
  404. package/esm2022/components/tooltip/lib/tooltip.component.mjs +18 -1
  405. package/esm2022/components/tooltip/lib/tooltip.directive.mjs +36 -1
  406. package/esm2022/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +35 -1
  407. package/esm2022/components/wizard/lib/wizard.component.mjs +21 -1
  408. package/esm2022/internal/translate/lib/translate.config.mjs +32 -1
  409. package/esm2022/internal/translate/lib/translate.service.mjs +30 -1
  410. package/esm2022/lib/controllers/controller.mjs +26 -1
  411. package/esm2022/lib/controllers/disabled.controller.mjs +60 -1
  412. package/esm2022/lib/controllers/readonly.controller.mjs +57 -1
  413. package/esm2022/lib/directives/click-outside.directive.mjs +30 -1
  414. package/esm2022/lib/directives/delegate-focus.directive.mjs +15 -1
  415. package/esm2022/lib/services/window-ref.mjs +67 -1
  416. package/esm2022/lib/tokens/identity-matcher.mjs +25 -1
  417. package/esm2022/lib/tokens/string-search-handler.mjs +25 -1
  418. package/esm2022/lib/tokens/stringify.mjs +26 -1
  419. package/esm2022/localization/lib/features/with-http-language-header.mjs +54 -1
  420. package/esm2022/localization/lib/features/with-http-language-query-param.mjs +52 -1
  421. package/esm2022/localization/lib/loaders/browser-language-loader.mjs +33 -1
  422. package/esm2022/localization/lib/localization.config.mjs +71 -1
  423. package/esm2022/localization/lib/localization.service.mjs +42 -3
  424. package/esm2022/rxjs/index.mjs +2 -2
  425. package/esm2022/rxjs/lib/delay-until.mjs +23 -1
  426. package/esm2022/rxjs/lib/from-element-mutation.mjs +22 -1
  427. package/esm2022/rxjs/lib/from-element-resize.mjs +25 -1
  428. package/esm2022/rxjs/lib/from-events.mjs +25 -1
  429. package/esm2022/rxjs/lib/from-query-list.mjs +24 -0
  430. package/esm2022/sdk/lib/application-environment.mjs +51 -1
  431. package/esm2022/theming/lib/helpers/prefers-dark-theme.mjs +19 -1
  432. package/esm2022/theming/lib/helpers/resolve-theme.mjs +26 -1
  433. package/esm2022/theming/lib/helpers/theme-storage.mjs +43 -1
  434. package/esm2022/theming/lib/theming.config.mjs +34 -1
  435. package/esm2022/theming/lib/theming.service.mjs +32 -1
  436. package/esm2022/utils/lib/decorators/pure.mjs +52 -1
  437. package/esm2022/utils/lib/helpers/angular.mjs +37 -1
  438. package/esm2022/utils/lib/helpers/array.mjs +5 -1
  439. package/esm2022/utils/lib/helpers/build-url.mjs +21 -1
  440. package/esm2022/utils/lib/helpers/build-website-url.mjs +3 -2
  441. package/esm2022/utils/lib/helpers/cache-storage-client.mjs +52 -1
  442. package/esm2022/utils/lib/helpers/coercion.mjs +18 -1
  443. package/esm2022/utils/lib/helpers/debounce.mjs +28 -1
  444. package/esm2022/utils/lib/helpers/defer-fn.mjs +21 -1
  445. package/esm2022/utils/lib/helpers/dom.mjs +71 -1
  446. package/esm2022/utils/lib/helpers/get-axis.mjs +21 -1
  447. package/esm2022/utils/lib/helpers/get-language-code.mjs +18 -1
  448. package/esm2022/utils/lib/helpers/get-opposite-side.mjs +22 -1
  449. package/esm2022/utils/lib/helpers/get-side.mjs +18 -1
  450. package/esm2022/utils/lib/helpers/get-unique-id.mjs +34 -1
  451. package/esm2022/utils/lib/helpers/match-url.mjs +41 -1
  452. package/esm2022/utils/lib/helpers/ng-changes.mjs +30 -1
  453. package/esm2022/utils/lib/helpers/provide-config.mjs +57 -1
  454. package/esm2022/utils/lib/helpers/queue.mjs +84 -1
  455. package/esm2022/utils/lib/helpers/type-guards.mjs +58 -1
  456. package/esm2022/utils/lib/helpers/until-destroyed.mjs +39 -1
  457. package/fesm2022/odx-angular-animations.mjs +173 -0
  458. package/fesm2022/odx-angular-animations.mjs.map +1 -1
  459. package/fesm2022/odx-angular-breakpoints.mjs +136 -0
  460. package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
  461. package/fesm2022/odx-angular-cdk-a11y.mjs +71 -0
  462. package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
  463. package/fesm2022/odx-angular-cdk-active-indicator.mjs +63 -0
  464. package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
  465. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +38 -0
  466. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  467. package/fesm2022/odx-angular-cdk-checkbox-control.mjs +3 -0
  468. package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  469. package/fesm2022/odx-angular-cdk-connected-overlay.mjs +103 -0
  470. package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  471. package/fesm2022/odx-angular-cdk-custom-form-control.mjs +183 -2
  472. package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  473. package/fesm2022/odx-angular-cdk-dynamic-view.mjs +188 -0
  474. package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  475. package/fesm2022/odx-angular-cdk-event-plugins.mjs +135 -0
  476. package/fesm2022/odx-angular-cdk-event-plugins.mjs.map +1 -1
  477. package/fesm2022/odx-angular-cdk-expandable.mjs +88 -0
  478. package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
  479. package/fesm2022/odx-angular-cdk-option-control.mjs +47 -0
  480. package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
  481. package/fesm2022/odx-angular-cdk-radio-group-control.mjs +19 -0
  482. package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  483. package/fesm2022/odx-angular-components-accordion.mjs +41 -0
  484. package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
  485. package/fesm2022/odx-angular-components-action-group.mjs +6 -0
  486. package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
  487. package/fesm2022/odx-angular-components-area-header.mjs +14 -0
  488. package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
  489. package/fesm2022/odx-angular-components-autocomplete.mjs +17 -0
  490. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  491. package/fesm2022/odx-angular-components-avatar.mjs +8 -0
  492. package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
  493. package/fesm2022/odx-angular-components-badge.mjs +25 -0
  494. package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
  495. package/fesm2022/odx-angular-components-bar.mjs +13 -0
  496. package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
  497. package/fesm2022/odx-angular-components-breadcrumbs.mjs +3 -0
  498. package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
  499. package/fesm2022/odx-angular-components-button-group.mjs +15 -0
  500. package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
  501. package/fesm2022/odx-angular-components-button.mjs +10 -0
  502. package/fesm2022/odx-angular-components-button.mjs.map +1 -1
  503. package/fesm2022/odx-angular-components-calendar.mjs +232 -0
  504. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  505. package/fesm2022/odx-angular-components-checkbox.mjs +55 -0
  506. package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
  507. package/fesm2022/odx-angular-components-chip.mjs +20 -0
  508. package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
  509. package/fesm2022/odx-angular-components-circular-progress.mjs +20 -0
  510. package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
  511. package/fesm2022/odx-angular-components-content-box.mjs +9 -0
  512. package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
  513. package/fesm2022/odx-angular-components-datepicker.mjs +84 -0
  514. package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
  515. package/fesm2022/odx-angular-components-daterangepicker.mjs +145 -0
  516. package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
  517. package/fesm2022/odx-angular-components-dropdown.mjs +66 -0
  518. package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
  519. package/fesm2022/odx-angular-components-error-page.mjs +15 -0
  520. package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
  521. package/fesm2022/odx-angular-components-footer.mjs +11 -6
  522. package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
  523. package/fesm2022/odx-angular-components-form-field.mjs +131 -0
  524. package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
  525. package/fesm2022/odx-angular-components-header-navigation.mjs +6 -0
  526. package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
  527. package/fesm2022/odx-angular-components-header.mjs +10 -0
  528. package/fesm2022/odx-angular-components-header.mjs.map +1 -1
  529. package/fesm2022/odx-angular-components-icon.mjs +57 -0
  530. package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
  531. package/fesm2022/odx-angular-components-inline-message.mjs +13 -0
  532. package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
  533. package/fesm2022/odx-angular-components-link.mjs +3 -0
  534. package/fesm2022/odx-angular-components-link.mjs.map +1 -1
  535. package/fesm2022/odx-angular-components-list.mjs +28 -1
  536. package/fesm2022/odx-angular-components-list.mjs.map +1 -1
  537. package/fesm2022/odx-angular-components-loading-spinner.mjs +30 -0
  538. package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
  539. package/fesm2022/odx-angular-components-logo.mjs +15 -0
  540. package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
  541. package/fesm2022/odx-angular-components-main-menu.mjs +119 -0
  542. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  543. package/fesm2022/odx-angular-components-mainfilter-group.mjs +4 -0
  544. package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
  545. package/fesm2022/odx-angular-components-menu.mjs +36 -0
  546. package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
  547. package/fesm2022/odx-angular-components-modal.mjs +252 -0
  548. package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
  549. package/fesm2022/odx-angular-components-navigation-back.mjs +3 -0
  550. package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
  551. package/fesm2022/odx-angular-components-notification.mjs +148 -6
  552. package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
  553. package/fesm2022/odx-angular-components-paginator.mjs +117 -0
  554. package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
  555. package/fesm2022/odx-angular-components-progress.mjs +15 -0
  556. package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
  557. package/fesm2022/odx-angular-components-radio-group.mjs +11 -0
  558. package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
  559. package/fesm2022/odx-angular-components-rail-navigation.mjs +42 -0
  560. package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
  561. package/fesm2022/odx-angular-components-rich-list.mjs +26 -3
  562. package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
  563. package/fesm2022/odx-angular-components-select.mjs +122 -7
  564. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  565. package/fesm2022/odx-angular-components-slider.mjs +19 -0
  566. package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
  567. package/fesm2022/odx-angular-components-spinbox.mjs +16 -0
  568. package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
  569. package/fesm2022/odx-angular-components-switch.mjs +22 -0
  570. package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
  571. package/fesm2022/odx-angular-components-tab-bar.mjs +97 -0
  572. package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
  573. package/fesm2022/odx-angular-components-table.mjs +84 -1
  574. package/fesm2022/odx-angular-components-table.mjs.map +1 -1
  575. package/fesm2022/odx-angular-components-timepicker.mjs +20 -9
  576. package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
  577. package/fesm2022/odx-angular-components-toast.mjs +61 -0
  578. package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
  579. package/fesm2022/odx-angular-components-toggle-button-group.mjs +23 -0
  580. package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
  581. package/fesm2022/odx-angular-components-tooltip.mjs +52 -0
  582. package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
  583. package/fesm2022/odx-angular-components-wizard.mjs +54 -0
  584. package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
  585. package/fesm2022/odx-angular-internal-translate.mjs +60 -0
  586. package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
  587. package/fesm2022/odx-angular-localization.mjs +247 -2
  588. package/fesm2022/odx-angular-localization.mjs.map +1 -1
  589. package/fesm2022/odx-angular-rxjs.mjs +115 -5
  590. package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
  591. package/fesm2022/odx-angular-sdk.mjs +50 -0
  592. package/fesm2022/odx-angular-sdk.mjs.map +1 -1
  593. package/fesm2022/odx-angular-theming.mjs +149 -0
  594. package/fesm2022/odx-angular-theming.mjs.map +1 -1
  595. package/fesm2022/odx-angular-utils.mjs +709 -1
  596. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  597. package/fesm2022/odx-angular.mjs +322 -0
  598. package/fesm2022/odx-angular.mjs.map +1 -1
  599. package/internal/translate/lib/translate.config.d.ts +31 -0
  600. package/internal/translate/lib/translate.service.d.ts +29 -0
  601. package/lib/controllers/controller.d.ts +25 -0
  602. package/lib/controllers/disabled.controller.d.ts +59 -0
  603. package/lib/controllers/readonly.controller.d.ts +56 -0
  604. package/lib/directives/click-outside.directive.d.ts +29 -0
  605. package/lib/directives/delegate-focus.directive.d.ts +14 -0
  606. package/lib/services/window-ref.d.ts +66 -0
  607. package/lib/tokens/identity-matcher.d.ts +41 -0
  608. package/lib/tokens/string-search-handler.d.ts +39 -0
  609. package/lib/tokens/stringify.d.ts +42 -0
  610. package/localization/lib/features/with-http-language-header.d.ts +63 -0
  611. package/localization/lib/features/with-http-language-query-param.d.ts +61 -0
  612. package/localization/lib/loaders/browser-language-loader.d.ts +32 -0
  613. package/localization/lib/localization.config.d.ts +81 -0
  614. package/localization/lib/localization.service.d.ts +39 -0
  615. package/package.json +1 -1
  616. package/rxjs/index.d.ts +1 -1
  617. package/rxjs/lib/delay-until.d.ts +22 -0
  618. package/rxjs/lib/from-element-mutation.d.ts +21 -0
  619. package/rxjs/lib/from-element-resize.d.ts +24 -0
  620. package/rxjs/lib/from-events.d.ts +24 -0
  621. package/rxjs/lib/from-query-list.d.ts +22 -0
  622. package/sdk/lib/application-environment.d.ts +59 -0
  623. package/theming/lib/helpers/prefers-dark-theme.d.ts +18 -0
  624. package/theming/lib/helpers/resolve-theme.d.ts +25 -0
  625. package/theming/lib/helpers/theme-storage.d.ts +42 -0
  626. package/theming/lib/theming.config.d.ts +46 -0
  627. package/theming/lib/theming.service.d.ts +31 -0
  628. package/utils/lib/decorators/pure.d.ts +51 -0
  629. package/utils/lib/helpers/angular.d.ts +36 -0
  630. package/utils/lib/helpers/array.d.ts +4 -0
  631. package/utils/lib/helpers/build-url.d.ts +20 -0
  632. package/utils/lib/helpers/build-website-url.d.ts +2 -1
  633. package/utils/lib/helpers/cache-storage-client.d.ts +51 -0
  634. package/utils/lib/helpers/coercion.d.ts +17 -0
  635. package/utils/lib/helpers/debounce.d.ts +27 -0
  636. package/utils/lib/helpers/defer-fn.d.ts +20 -0
  637. package/utils/lib/helpers/dom.d.ts +70 -0
  638. package/utils/lib/helpers/get-axis.d.ts +20 -0
  639. package/utils/lib/helpers/get-language-code.d.ts +17 -0
  640. package/utils/lib/helpers/get-opposite-side.d.ts +21 -0
  641. package/utils/lib/helpers/get-side.d.ts +17 -0
  642. package/utils/lib/helpers/get-unique-id.d.ts +33 -0
  643. package/utils/lib/helpers/match-url.d.ts +40 -0
  644. package/utils/lib/helpers/ng-changes.d.ts +52 -0
  645. package/utils/lib/helpers/provide-config.d.ts +56 -0
  646. package/utils/lib/helpers/queue.d.ts +83 -0
  647. package/utils/lib/helpers/type-guards.d.ts +57 -0
  648. package/utils/lib/helpers/until-destroyed.d.ts +38 -0
  649. package/esm2022/rxjs/lib/form-query-list.mjs +0 -5
  650. package/rxjs/lib/form-query-list.d.ts +0 -3
@@ -1,6 +1,17 @@
1
1
  import { ApplicationRef, createComponent, EnvironmentInjector, reflectComponentType } from '@angular/core';
2
2
  import { deepmerge } from '@odx/angular/internal';
3
3
  import { isViewContainer } from '@odx/angular/utils';
4
+ /**
5
+ * The DynamicComponentRef class is a powerful utility for dynamically creating and managing
6
+ * Angular components at runtime. It encapsulates the logic for component creation, input handling,
7
+ * and lifecycle management, making it easier to work with dynamic components in complex applications.
8
+ *
9
+ * A reference to a dynamically created component, providing methods to manage its lifecycle,
10
+ * detect changes, and update its inputs based on a context.
11
+ *
12
+ * @template T - The type of the component being managed.
13
+ * @template C - The type of the context used to update the component's inputs.
14
+ */
4
15
  export class DynamicComponentRef {
5
16
  constructor(options) {
6
17
  this.options = options;
@@ -31,9 +42,16 @@ export class DynamicComponentRef {
31
42
  this.update(context);
32
43
  }
33
44
  }
45
+ /**
46
+ * Triggers change detection for the dynamically created component, ensuring that any updates to inputs
47
+ * or internal state are reflected in the view.
48
+ */
34
49
  detectChanges() {
35
50
  this.componentRef?.changeDetectorRef.detectChanges();
36
51
  }
52
+ /**
53
+ * Destroys the dynamically created component, cleaning up resources and detaching it from the application view.
54
+ */
37
55
  destroy() {
38
56
  if (this.componentRef?.hostView.destroyed) {
39
57
  this.componentRef = null;
@@ -46,9 +64,20 @@ export class DynamicComponentRef {
46
64
  this.componentRef = null;
47
65
  this.componentInputs = null;
48
66
  }
67
+ /**
68
+ * Retrieves the native element associated with the dynamically created component's host view.
69
+ *
70
+ * @returns {Element} The native DOM element of the component.
71
+ */
49
72
  getElement() {
50
73
  return this.componentRef?.location.nativeElement ?? null;
51
74
  }
75
+ /**
76
+ * Updates the component's inputs based on the provided context. Merges the new context with the existing
77
+ * context and applies the combined context as inputs to the component.
78
+ *
79
+ * @param {C} context - The context containing new values for the component's inputs.
80
+ */
52
81
  update(context) {
53
82
  this.options.context = deepmerge({}, this.options.context, context);
54
83
  if (!this.componentRef)
@@ -59,11 +88,21 @@ export class DynamicComponentRef {
59
88
  }
60
89
  }
61
90
  }
91
+ /**
92
+ * Retrieves the current context used for the component's inputs.
93
+ *
94
+ * @returns {GetDynamicViewContext<T>} The current context object.
95
+ */
62
96
  getContext() {
63
97
  return this.options.context ?? {};
64
98
  }
99
+ /**
100
+ * Retrieves the view reference associated with the dynamically created component.
101
+ *
102
+ * @returns {ViewRef | null} The view reference, or null if the component has not been created or has been destroyed.
103
+ */
65
104
  getView() {
66
105
  return this.componentRef?.hostView ?? null;
67
106
  }
68
107
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcvc3JjL2xpYi9tb2RlbHMvZHluYW1pYy1jb21wb25lbnQtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWdCLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVNyRCxNQUFNLE9BQU8sbUJBQW1CO0lBSzlCLFlBQTZCLE9BQW1DO1FBQW5DLFlBQU8sR0FBUCxPQUFPLENBQTRCO1FBSi9DLGdCQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pFLGlCQUFZLEdBQTJCLElBQUksQ0FBQztRQUM1QyxvQkFBZSxHQUFnQyxJQUFJLENBQUM7UUFHMUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUV6RSxJQUFJLENBQUMsWUFBWSxHQUFHLGVBQWUsQ0FBQyxTQUFvQixFQUFFO1lBQ3hELG1CQUFtQixFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7WUFDdEQsZUFBZSxFQUFFLFFBQVE7WUFDekIsZ0JBQWdCO1NBQ2pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlO1lBQ2xCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FDbEUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO2dCQUNwQixHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsRUFDRCxFQUEwQixDQUMzQixJQUFJLElBQUksQ0FBQztRQUVaLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4RCxJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7UUFDRCxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBWSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsT0FBTztTQUNSO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6RDtRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7SUFDM0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFVO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFNLENBQUM7UUFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUMvQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM1RDtTQUNGO0lBQ0gsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDO0lBQzdDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRSZWYsIGNyZWF0ZUNvbXBvbmVudCwgRW52aXJvbm1lbnRJbmplY3RvciwgcmVmbGVjdENvbXBvbmVudFR5cGUsIFR5cGUsIFZpZXdSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlZXBtZXJnZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpc1ZpZXdDb250YWluZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgR2V0RHluYW1pY1ZpZXdDb250ZXh0IH0gZnJvbSAnLi4vZmFjYWRlJztcbmltcG9ydCB7IER5bmFtaWNWaWV3UmVmIH0gZnJvbSAnLi4vZmFjYWRlL2R5bmFtaWMtdmlldy1yZWYnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdPcHRpb25zIH0gZnJvbSAnLi9keW5hbWljLXZpZXctb3B0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0NvbXBvbmVudE9wdGlvbnM8VCBleHRlbmRzIFR5cGU8dW5rbm93bj4+IGV4dGVuZHMgRHluYW1pY1ZpZXdPcHRpb25zPFQ+IHtcbiAgY29tcG9uZW50OiBUO1xufVxuXG5leHBvcnQgY2xhc3MgRHluYW1pY0NvbXBvbmVudFJlZjxUIGV4dGVuZHMgVHlwZTx1bmtub3duPiwgQyBleHRlbmRzIEdldER5bmFtaWNWaWV3Q29udGV4dDxUPj4gaW1wbGVtZW50cyBEeW5hbWljVmlld1JlZjxUPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwbGljYXRpb24gPSB0aGlzLm9wdGlvbnMuaW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uUmVmKTtcbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNvbXBvbmVudElucHV0czogUmVjb3JkPHN0cmluZywgdHJ1ZT4gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IER5bmFtaWNDb21wb25lbnRPcHRpb25zPFQ+KSB7XG4gICAgY29uc3QgeyBjb21wb25lbnQsIGNvbnRleHQsIGluamVjdG9yLCBwcm9qZWN0YWJsZU5vZGVzLCBob3N0IH0gPSBvcHRpb25zO1xuXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQoY29tcG9uZW50IGFzIFR5cGU8VD4sIHtcbiAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IGluamVjdG9yLmdldChFbnZpcm9ubWVudEluamVjdG9yKSxcbiAgICAgIGVsZW1lbnRJbmplY3RvcjogaW5qZWN0b3IsXG4gICAgICBwcm9qZWN0YWJsZU5vZGVzLFxuICAgIH0pO1xuICAgIHRoaXMuY29tcG9uZW50SW5wdXRzID1cbiAgICAgIHJlZmxlY3RDb21wb25lbnRUeXBlKHRoaXMuY29tcG9uZW50UmVmLmNvbXBvbmVudFR5cGUpPy5pbnB1dHMucmVkdWNlKFxuICAgICAgICAoYWNjLCB7IHByb3BOYW1lIH0pID0+IHtcbiAgICAgICAgICBhY2NbcHJvcE5hbWVdID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCB0cnVlPixcbiAgICAgICkgPz8gbnVsbDtcblxuICAgIGlmIChpc1ZpZXdDb250YWluZXIoaG9zdCkpIHtcbiAgICAgIGhvc3QuaW5zZXJ0KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbi5hdHRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgIGlmIChob3N0KSB7XG4gICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQodGhpcy5nZXRFbGVtZW50KCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY29udGV4dCkge1xuICAgICAgdGhpcy51cGRhdGUoY29udGV4dCBhcyBDKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFJlZj8uY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmPy5ob3N0Vmlldy5kZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICYmICFpc1ZpZXdDb250YWluZXIodGhpcy5vcHRpb25zLmhvc3QpKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIH1cbiAgICB0aGlzLmNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICB0aGlzLmNvbXBvbmVudElucHV0cyA9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0RWxlbWVudCgpOiBFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRSZWY/LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQgPz8gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUoY29udGV4dDogQyk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucy5jb250ZXh0ID0gZGVlcG1lcmdlKHt9LCB0aGlzLm9wdGlvbnMuY29udGV4dCwgY29udGV4dCkgYXMgQztcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSByZXR1cm47XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5vcHRpb25zLmNvbnRleHQpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudElucHV0cz8uW2tleV0pIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuc2V0SW5wdXQoa2V5LCB0aGlzLm9wdGlvbnMuY29udGV4dFtrZXldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udGV4dCgpOiBHZXREeW5hbWljVmlld0NvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY29udGV4dCA/PyB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWaWV3KCk6IFZpZXdSZWYgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRSZWY/Lmhvc3RWaWV3ID8/IG51bGw7XG4gIH1cbn1cbiJdfQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcvc3JjL2xpYi9tb2RlbHMvZHluYW1pYy1jb21wb25lbnQtcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWdCLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVNyRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUE2QixPQUFtQztRQUFuQyxZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUovQyxnQkFBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRSxpQkFBWSxHQUEyQixJQUFJLENBQUM7UUFDNUMsb0JBQWUsR0FBZ0MsSUFBSSxDQUFDO1FBRzFELE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFekUsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsU0FBb0IsRUFBRTtZQUN4RCxtQkFBbUIsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1lBQ3RELGVBQWUsRUFBRSxRQUFRO1lBQ3pCLGdCQUFnQjtTQUNqQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZTtZQUNsQixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQ2xFLENBQUMsR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtnQkFDcEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDckIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLEVBQ0QsRUFBMEIsQ0FDM0IsSUFBSSxJQUFJLENBQUM7UUFFWixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekM7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEQsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQzthQUNyQztTQUNGO1FBQ0QsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQVksQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWE7UUFDbEIsSUFBSSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1osSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsT0FBTztTQUNSO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6RDtRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxPQUFVO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFNLENBQUM7UUFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUMvQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM1RDtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUM7SUFDN0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudFJlZiwgY3JlYXRlQ29tcG9uZW50LCBFbnZpcm9ubWVudEluamVjdG9yLCByZWZsZWN0Q29tcG9uZW50VHlwZSwgVHlwZSwgVmlld1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVlcG1lcmdlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGlzVmlld0NvbnRhaW5lciB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBHZXREeW5hbWljVmlld0NvbnRleHQgfSBmcm9tICcuLi9mYWNhZGUnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdSZWYgfSBmcm9tICcuLi9mYWNhZGUvZHluYW1pYy12aWV3LXJlZic7XG5pbXBvcnQgeyBEeW5hbWljVmlld09wdGlvbnMgfSBmcm9tICcuL2R5bmFtaWMtdmlldy1vcHRpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljQ29tcG9uZW50T3B0aW9uczxUIGV4dGVuZHMgVHlwZTx1bmtub3duPj4gZXh0ZW5kcyBEeW5hbWljVmlld09wdGlvbnM8VD4ge1xuICBjb21wb25lbnQ6IFQ7XG59XG5cbi8qKlxuICogVGhlIER5bmFtaWNDb21wb25lbnRSZWYgY2xhc3MgaXMgYSBwb3dlcmZ1bCB1dGlsaXR5IGZvciBkeW5hbWljYWxseSBjcmVhdGluZyBhbmQgbWFuYWdpbmdcbiAqIEFuZ3VsYXIgY29tcG9uZW50cyBhdCBydW50aW1lLiBJdCBlbmNhcHN1bGF0ZXMgdGhlIGxvZ2ljIGZvciBjb21wb25lbnQgY3JlYXRpb24sIGlucHV0IGhhbmRsaW5nLFxuICogYW5kIGxpZmVjeWNsZSBtYW5hZ2VtZW50LCBtYWtpbmcgaXQgZWFzaWVyIHRvIHdvcmsgd2l0aCBkeW5hbWljIGNvbXBvbmVudHMgaW4gY29tcGxleCBhcHBsaWNhdGlvbnMuXG4gKlxuICogQSByZWZlcmVuY2UgdG8gYSBkeW5hbWljYWxseSBjcmVhdGVkIGNvbXBvbmVudCwgcHJvdmlkaW5nIG1ldGhvZHMgdG8gbWFuYWdlIGl0cyBsaWZlY3ljbGUsXG4gKiBkZXRlY3QgY2hhbmdlcywgYW5kIHVwZGF0ZSBpdHMgaW5wdXRzIGJhc2VkIG9uIGEgY29udGV4dC5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBjb21wb25lbnQgYmVpbmcgbWFuYWdlZC5cbiAqIEB0ZW1wbGF0ZSBDIC0gVGhlIHR5cGUgb2YgdGhlIGNvbnRleHQgdXNlZCB0byB1cGRhdGUgdGhlIGNvbXBvbmVudCdzIGlucHV0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIER5bmFtaWNDb21wb25lbnRSZWY8VCBleHRlbmRzIFR5cGU8dW5rbm93bj4sIEMgZXh0ZW5kcyBHZXREeW5hbWljVmlld0NvbnRleHQ8VD4+IGltcGxlbWVudHMgRHluYW1pY1ZpZXdSZWY8VD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGxpY2F0aW9uID0gdGhpcy5vcHRpb25zLmluamVjdG9yLmdldChBcHBsaWNhdGlvblJlZik7XG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBjb21wb25lbnRJbnB1dHM6IFJlY29yZDxzdHJpbmcsIHRydWU+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBEeW5hbWljQ29tcG9uZW50T3B0aW9uczxUPikge1xuICAgIGNvbnN0IHsgY29tcG9uZW50LCBjb250ZXh0LCBpbmplY3RvciwgcHJvamVjdGFibGVOb2RlcywgaG9zdCB9ID0gb3B0aW9ucztcblxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCBhcyBUeXBlPFQ+LCB7XG4gICAgICBlbnZpcm9ubWVudEluamVjdG9yOiBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRJbmplY3RvciksXG4gICAgICBlbGVtZW50SW5qZWN0b3I6IGluamVjdG9yLFxuICAgICAgcHJvamVjdGFibGVOb2RlcyxcbiAgICB9KTtcbiAgICB0aGlzLmNvbXBvbmVudElucHV0cyA9XG4gICAgICByZWZsZWN0Q29tcG9uZW50VHlwZSh0aGlzLmNvbXBvbmVudFJlZi5jb21wb25lbnRUeXBlKT8uaW5wdXRzLnJlZHVjZShcbiAgICAgICAgKGFjYywgeyBwcm9wTmFtZSB9KSA9PiB7XG4gICAgICAgICAgYWNjW3Byb3BOYW1lXSA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgdHJ1ZT4sXG4gICAgICApID8/IG51bGw7XG5cbiAgICBpZiAoaXNWaWV3Q29udGFpbmVyKGhvc3QpKSB7XG4gICAgICBob3N0Lmluc2VydCh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb24uYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICBpZiAoaG9zdCkge1xuICAgICAgICBob3N0LmFwcGVuZENoaWxkKHRoaXMuZ2V0RWxlbWVudCgpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNvbnRleHQpIHtcbiAgICAgIHRoaXMudXBkYXRlKGNvbnRleHQgYXMgQyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJzIGNoYW5nZSBkZXRlY3Rpb24gZm9yIHRoZSBkeW5hbWljYWxseSBjcmVhdGVkIGNvbXBvbmVudCwgZW5zdXJpbmcgdGhhdCBhbnkgdXBkYXRlcyB0byBpbnB1dHNcbiAgICogb3IgaW50ZXJuYWwgc3RhdGUgYXJlIHJlZmxlY3RlZCBpbiB0aGUgdmlldy5cbiAgICovXG4gIHB1YmxpYyBkZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50UmVmPy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgdGhlIGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcG9uZW50LCBjbGVhbmluZyB1cCByZXNvdXJjZXMgYW5kIGRldGFjaGluZyBpdCBmcm9tIHRoZSBhcHBsaWNhdGlvbiB2aWV3LlxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmPy5ob3N0Vmlldy5kZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICYmICFpc1ZpZXdDb250YWluZXIodGhpcy5vcHRpb25zLmhvc3QpKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIH1cbiAgICB0aGlzLmNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICB0aGlzLmNvbXBvbmVudElucHV0cyA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBuYXRpdmUgZWxlbWVudCBhc3NvY2lhdGVkIHdpdGggdGhlIGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcG9uZW50J3MgaG9zdCB2aWV3LlxuICAgKlxuICAgKiBAcmV0dXJucyB7RWxlbWVudH0gVGhlIG5hdGl2ZSBET00gZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGdldEVsZW1lbnQoKTogRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50ID8/IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY29tcG9uZW50J3MgaW5wdXRzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb250ZXh0LiBNZXJnZXMgdGhlIG5ldyBjb250ZXh0IHdpdGggdGhlIGV4aXN0aW5nXG4gICAqIGNvbnRleHQgYW5kIGFwcGxpZXMgdGhlIGNvbWJpbmVkIGNvbnRleHQgYXMgaW5wdXRzIHRvIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7Q30gY29udGV4dCAtIFRoZSBjb250ZXh0IGNvbnRhaW5pbmcgbmV3IHZhbHVlcyBmb3IgdGhlIGNvbXBvbmVudCdzIGlucHV0cy5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGUoY29udGV4dDogQyk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucy5jb250ZXh0ID0gZGVlcG1lcmdlKHt9LCB0aGlzLm9wdGlvbnMuY29udGV4dCwgY29udGV4dCkgYXMgQztcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSByZXR1cm47XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5vcHRpb25zLmNvbnRleHQpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudElucHV0cz8uW2tleV0pIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuc2V0SW5wdXQoa2V5LCB0aGlzLm9wdGlvbnMuY29udGV4dFtrZXldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGNvbnRleHQgdXNlZCBmb3IgdGhlIGNvbXBvbmVudCdzIGlucHV0cy5cbiAgICpcbiAgICogQHJldHVybnMge0dldER5bmFtaWNWaWV3Q29udGV4dDxUPn0gVGhlIGN1cnJlbnQgY29udGV4dCBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29udGV4dCgpOiBHZXREeW5hbWljVmlld0NvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY29udGV4dCA/PyB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHZpZXcgcmVmZXJlbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZHluYW1pY2FsbHkgY3JlYXRlZCBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtWaWV3UmVmIHwgbnVsbH0gVGhlIHZpZXcgcmVmZXJlbmNlLCBvciBudWxsIGlmIHRoZSBjb21wb25lbnQgaGFzIG5vdCBiZWVuIGNyZWF0ZWQgb3IgaGFzIGJlZW4gZGVzdHJveWVkLlxuICAgKi9cbiAgcHVibGljIGdldFZpZXcoKTogVmlld1JlZiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlZj8uaG9zdFZpZXcgPz8gbnVsbDtcbiAgfVxufVxuIl19
@@ -1,6 +1,13 @@
1
1
  import { ApplicationRef } from '@angular/core';
2
2
  import { deepmerge } from '@odx/angular/internal';
3
3
  import { isViewContainer } from '@odx/angular/utils';
4
+ /**
5
+ * A reference to a dynamically created template, offering methods to manage its lifecycle,
6
+ * detect changes, and update its context. It encapsulates the logic for creating and manipulating
7
+ * an `EmbeddedViewRef` from a given `TemplateRef`.
8
+ *
9
+ * @template T - The type of the `NgTemplateRef` being managed.
10
+ */
4
11
  export class DynamicTemplateRef {
5
12
  constructor(options) {
6
13
  this.options = options;
@@ -8,9 +15,17 @@ export class DynamicTemplateRef {
8
15
  this.embeddedViewRef = null;
9
16
  this.create(options);
10
17
  }
18
+ /**
19
+ * Triggers change detection on the embedded view created from the template, ensuring that any updates
20
+ * to the context or internal state are reflected in the view.
21
+ */
11
22
  detectChanges() {
12
23
  this.embeddedViewRef?.detectChanges();
13
24
  }
25
+ /**
26
+ * Destroys the embedded view associated with the template, cleaning up resources and detaching it from the
27
+ * application view if necessary.
28
+ */
14
29
  destroy() {
15
30
  if (this.embeddedViewRef?.destroyed) {
16
31
  this.embeddedViewRef = null;
@@ -22,9 +37,20 @@ export class DynamicTemplateRef {
22
37
  this.embeddedViewRef?.destroy();
23
38
  this.embeddedViewRef = null;
24
39
  }
40
+ /**
41
+ * Retrieves the native element associated with the template's embedded view's root node.
42
+ *
43
+ * @returns {Element} The native DOM element of the embedded view's root node, if available.
44
+ */
25
45
  getElement() {
26
46
  return this.embeddedViewRef?.rootNodes?.[0] ?? null;
27
47
  }
48
+ /**
49
+ * Updates the context of the embedded view based on the provided context object. Merges the new context
50
+ * with the existing one and applies the combined context to the embedded view.
51
+ *
52
+ * @param {GetDynamicViewContext<T>} context - The context containing new values for the template's view.
53
+ */
28
54
  update(context) {
29
55
  this.options.context = deepmerge({}, this.options.context, context);
30
56
  if (this.embeddedViewRef) {
@@ -32,9 +58,19 @@ export class DynamicTemplateRef {
32
58
  this.detectChanges();
33
59
  }
34
60
  }
61
+ /**
62
+ * Retrieves the current context used for the template's view.
63
+ *
64
+ * @returns {GetDynamicViewContext<T>} The current context object.
65
+ */
35
66
  getContext() {
36
67
  return this.options.context ?? {};
37
68
  }
69
+ /**
70
+ * Retrieves the view reference (`ViewRef`) associated with the dynamically created template's embedded view.
71
+ *
72
+ * @returns {ViewRef | null} The view reference, or null if the template has not been instantiated or has been destroyed.
73
+ */
38
74
  getView() {
39
75
  return this.embeddedViewRef;
40
76
  }
@@ -48,4 +84,4 @@ export class DynamicTemplateRef {
48
84
  }
49
85
  }
50
86
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10ZW1wbGF0ZS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldy9zcmMvbGliL21vZGVscy9keW5hbWljLXRlbXBsYXRlLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUEwRCxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBUXJELE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsWUFBNkIsT0FBa0M7UUFBbEMsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFIOUMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakUsb0JBQWUsR0FBb0MsSUFBSSxDQUFDO1FBRzlELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFpQztRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBNkIsQ0FBQztRQUNoRyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRU8sTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQTZCO1FBQ25FLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3hHO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIEVtYmVkZGVkVmlld1JlZiwgVGVtcGxhdGVSZWYgYXMgTmdUZW1wbGF0ZVJlZiwgVmlld1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVlcG1lcmdlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGlzVmlld0NvbnRhaW5lciB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBEeW5hbWljVmlld1JlZiwgR2V0RHluYW1pY1ZpZXdDb250ZXh0IH0gZnJvbSAnLi4vZmFjYWRlJztcbmltcG9ydCB7IER5bmFtaWNWaWV3T3B0aW9ucyB9IGZyb20gJy4vZHluYW1pYy12aWV3LW9wdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNUZW1wbGF0ZU9wdGlvbnM8VCBleHRlbmRzIE5nVGVtcGxhdGVSZWY8dW5rbm93bj4+IGV4dGVuZHMgRHluYW1pY1ZpZXdPcHRpb25zPFQ+IHtcbiAgdGVtcGxhdGU6IFQ7XG59XG5cbmV4cG9ydCBjbGFzcyBEeW5hbWljVGVtcGxhdGVSZWY8VCBleHRlbmRzIE5nVGVtcGxhdGVSZWY8dW5rbm93bj4gPSBOZ1RlbXBsYXRlUmVmPHVua25vd24+PiBpbXBsZW1lbnRzIER5bmFtaWNWaWV3UmVmPFQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvbiA9IHRoaXMub3B0aW9ucy5pbmplY3Rvci5nZXQoQXBwbGljYXRpb25SZWYpO1xuICBwcml2YXRlIGVtYmVkZGVkVmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBEeW5hbWljVGVtcGxhdGVPcHRpb25zPFQ+KSB7XG4gICAgdGhpcy5jcmVhdGUob3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmVtYmVkZGVkVmlld1JlZj8uZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVmPy5kZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVmID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFpc1ZpZXdDb250YWluZXIodGhpcy5vcHRpb25zLmhvc3QpICYmIHRoaXMuZW1iZWRkZWRWaWV3UmVmKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uLmRldGFjaFZpZXcodGhpcy5lbWJlZGRlZFZpZXdSZWYpO1xuICAgIH1cbiAgICB0aGlzLmVtYmVkZGVkVmlld1JlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVmID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFbGVtZW50KCk6IEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVtYmVkZGVkVmlld1JlZj8ucm9vdE5vZGVzPy5bMF0gPz8gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUoY29udGV4dDogR2V0RHluYW1pY1ZpZXdDb250ZXh0PFQ+KTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25zLmNvbnRleHQgPSBkZWVwbWVyZ2Uoe30sIHRoaXMub3B0aW9ucy5jb250ZXh0LCBjb250ZXh0KSBhcyBHZXREeW5hbWljVmlld0NvbnRleHQ8VD47XG4gICAgaWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVmKSB7XG4gICAgICB0aGlzLmVtYmVkZGVkVmlld1JlZi5jb250ZXh0ID0gdGhpcy5vcHRpb25zLmNvbnRleHQ7XG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udGV4dCgpOiBHZXREeW5hbWljVmlld0NvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY29udGV4dCA/PyB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWaWV3KCk6IFZpZXdSZWYgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbWJlZGRlZFZpZXdSZWY7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZSh7IGNvbnRleHQsIHRlbXBsYXRlLCBob3N0IH06IER5bmFtaWNUZW1wbGF0ZU9wdGlvbnM8VD4pIHtcbiAgICBpZiAoaXNWaWV3Q29udGFpbmVyKGhvc3QpKSB7XG4gICAgICB0aGlzLmVtYmVkZGVkVmlld1JlZiA9IGhvc3QuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlLCBjb250ZXh0LCB7IGluamVjdG9yOiB0aGlzLm9wdGlvbnMuaW5qZWN0b3IgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVmID0gdGVtcGxhdGUuY3JlYXRlRW1iZWRkZWRWaWV3KGNvbnRleHQgPz8ge30sIHRoaXMub3B0aW9ucy5pbmplY3Rvcik7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uLmF0dGFjaFZpZXcodGhpcy5lbWJlZGRlZFZpZXdSZWYpO1xuICAgIH1cbiAgfVxufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10ZW1wbGF0ZS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldy9zcmMvbGliL21vZGVscy9keW5hbWljLXRlbXBsYXRlLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUEwRCxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBUXJEOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsWUFBNkIsT0FBa0M7UUFBbEMsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFIOUMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakUsb0JBQWUsR0FBb0MsSUFBSSxDQUFDO1FBRzlELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWE7UUFDbEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxPQUFpQztRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBNkIsQ0FBQztRQUNoRyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFTyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBNkI7UUFDbkUsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDeEc7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgRW1iZWRkZWRWaWV3UmVmLCBUZW1wbGF0ZVJlZiBhcyBOZ1RlbXBsYXRlUmVmLCBWaWV3UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWVwbWVyZ2UgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgaXNWaWV3Q29udGFpbmVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IER5bmFtaWNWaWV3UmVmLCBHZXREeW5hbWljVmlld0NvbnRleHQgfSBmcm9tICcuLi9mYWNhZGUnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdPcHRpb25zIH0gZnJvbSAnLi9keW5hbWljLXZpZXctb3B0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY1RlbXBsYXRlT3B0aW9uczxUIGV4dGVuZHMgTmdUZW1wbGF0ZVJlZjx1bmtub3duPj4gZXh0ZW5kcyBEeW5hbWljVmlld09wdGlvbnM8VD4ge1xuICB0ZW1wbGF0ZTogVDtcbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIGR5bmFtaWNhbGx5IGNyZWF0ZWQgdGVtcGxhdGUsIG9mZmVyaW5nIG1ldGhvZHMgdG8gbWFuYWdlIGl0cyBsaWZlY3ljbGUsXG4gKiBkZXRlY3QgY2hhbmdlcywgYW5kIHVwZGF0ZSBpdHMgY29udGV4dC4gSXQgZW5jYXBzdWxhdGVzIHRoZSBsb2dpYyBmb3IgY3JlYXRpbmcgYW5kIG1hbmlwdWxhdGluZ1xuICogYW4gYEVtYmVkZGVkVmlld1JlZmAgZnJvbSBhIGdpdmVuIGBUZW1wbGF0ZVJlZmAuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgYE5nVGVtcGxhdGVSZWZgIGJlaW5nIG1hbmFnZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEeW5hbWljVGVtcGxhdGVSZWY8VCBleHRlbmRzIE5nVGVtcGxhdGVSZWY8dW5rbm93bj4gPSBOZ1RlbXBsYXRlUmVmPHVua25vd24+PiBpbXBsZW1lbnRzIER5bmFtaWNWaWV3UmVmPFQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvbiA9IHRoaXMub3B0aW9ucy5pbmplY3Rvci5nZXQoQXBwbGljYXRpb25SZWYpO1xuICBwcml2YXRlIGVtYmVkZGVkVmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBEeW5hbWljVGVtcGxhdGVPcHRpb25zPFQ+KSB7XG4gICAgdGhpcy5jcmVhdGUob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgY2hhbmdlIGRldGVjdGlvbiBvbiB0aGUgZW1iZWRkZWQgdmlldyBjcmVhdGVkIGZyb20gdGhlIHRlbXBsYXRlLCBlbnN1cmluZyB0aGF0IGFueSB1cGRhdGVzXG4gICAqIHRvIHRoZSBjb250ZXh0IG9yIGludGVybmFsIHN0YXRlIGFyZSByZWZsZWN0ZWQgaW4gdGhlIHZpZXcuXG4gICAqL1xuICBwdWJsaWMgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmVtYmVkZGVkVmlld1JlZj8uZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIHRoZSBlbWJlZGRlZCB2aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGUgdGVtcGxhdGUsIGNsZWFuaW5nIHVwIHJlc291cmNlcyBhbmQgZGV0YWNoaW5nIGl0IGZyb20gdGhlXG4gICAqIGFwcGxpY2F0aW9uIHZpZXcgaWYgbmVjZXNzYXJ5LlxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVmPy5kZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVmID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFpc1ZpZXdDb250YWluZXIodGhpcy5vcHRpb25zLmhvc3QpICYmIHRoaXMuZW1iZWRkZWRWaWV3UmVmKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uLmRldGFjaFZpZXcodGhpcy5lbWJlZGRlZFZpZXdSZWYpO1xuICAgIH1cbiAgICB0aGlzLmVtYmVkZGVkVmlld1JlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuZW1iZWRkZWRWaWV3UmVmID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIG5hdGl2ZSBlbGVtZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgdGVtcGxhdGUncyBlbWJlZGRlZCB2aWV3J3Mgcm9vdCBub2RlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7RWxlbWVudH0gVGhlIG5hdGl2ZSBET00gZWxlbWVudCBvZiB0aGUgZW1iZWRkZWQgdmlldydzIHJvb3Qgbm9kZSwgaWYgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHVibGljIGdldEVsZW1lbnQoKTogRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZW1iZWRkZWRWaWV3UmVmPy5yb290Tm9kZXM/LlswXSA/PyBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGNvbnRleHQgb2YgdGhlIGVtYmVkZGVkIHZpZXcgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGNvbnRleHQgb2JqZWN0LiBNZXJnZXMgdGhlIG5ldyBjb250ZXh0XG4gICAqIHdpdGggdGhlIGV4aXN0aW5nIG9uZSBhbmQgYXBwbGllcyB0aGUgY29tYmluZWQgY29udGV4dCB0byB0aGUgZW1iZWRkZWQgdmlldy5cbiAgICpcbiAgICogQHBhcmFtIHtHZXREeW5hbWljVmlld0NvbnRleHQ8VD59IGNvbnRleHQgLSBUaGUgY29udGV4dCBjb250YWluaW5nIG5ldyB2YWx1ZXMgZm9yIHRoZSB0ZW1wbGF0ZSdzIHZpZXcuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlKGNvbnRleHQ6IEdldER5bmFtaWNWaWV3Q29udGV4dDxUPik6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucy5jb250ZXh0ID0gZGVlcG1lcmdlKHt9LCB0aGlzLm9wdGlvbnMuY29udGV4dCwgY29udGV4dCkgYXMgR2V0RHluYW1pY1ZpZXdDb250ZXh0PFQ+O1xuICAgIGlmICh0aGlzLmVtYmVkZGVkVmlld1JlZikge1xuICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYuY29udGV4dCA9IHRoaXMub3B0aW9ucy5jb250ZXh0O1xuICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBjb250ZXh0IHVzZWQgZm9yIHRoZSB0ZW1wbGF0ZSdzIHZpZXcuXG4gICAqXG4gICAqIEByZXR1cm5zIHtHZXREeW5hbWljVmlld0NvbnRleHQ8VD59IFRoZSBjdXJyZW50IGNvbnRleHQgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIGdldENvbnRleHQoKTogR2V0RHluYW1pY1ZpZXdDb250ZXh0PFQ+IHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmNvbnRleHQgPz8ge307XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSB2aWV3IHJlZmVyZW5jZSAoYFZpZXdSZWZgKSBhc3NvY2lhdGVkIHdpdGggdGhlIGR5bmFtaWNhbGx5IGNyZWF0ZWQgdGVtcGxhdGUncyBlbWJlZGRlZCB2aWV3LlxuICAgKlxuICAgKiBAcmV0dXJucyB7Vmlld1JlZiB8IG51bGx9IFRoZSB2aWV3IHJlZmVyZW5jZSwgb3IgbnVsbCBpZiB0aGUgdGVtcGxhdGUgaGFzIG5vdCBiZWVuIGluc3RhbnRpYXRlZCBvciBoYXMgYmVlbiBkZXN0cm95ZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmlldygpOiBWaWV3UmVmIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZW1iZWRkZWRWaWV3UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGUoeyBjb250ZXh0LCB0ZW1wbGF0ZSwgaG9zdCB9OiBEeW5hbWljVGVtcGxhdGVPcHRpb25zPFQ+KSB7XG4gICAgaWYgKGlzVmlld0NvbnRhaW5lcihob3N0KSkge1xuICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYgPSBob3N0LmNyZWF0ZUVtYmVkZGVkVmlldyh0ZW1wbGF0ZSwgY29udGV4dCwgeyBpbmplY3RvcjogdGhpcy5vcHRpb25zLmluamVjdG9yIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtYmVkZGVkVmlld1JlZiA9IHRlbXBsYXRlLmNyZWF0ZUVtYmVkZGVkVmlldyhjb250ZXh0ID8/IHt9LCB0aGlzLm9wdGlvbnMuaW5qZWN0b3IpO1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbi5hdHRhY2hWaWV3KHRoaXMuZW1iZWRkZWRWaWV3UmVmKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -7,7 +7,42 @@ export const EVENT_PLUGINS = PLUGINS.map((useClass) => ({
7
7
  useClass,
8
8
  multi: true,
9
9
  }));
10
+ /**
11
+ * Provides a set of custom event plugins to Angular's event handling system. This function
12
+ * registers custom event plugins like `DebounceEventPlugin` and `DeferEventPlugin`, enhancing
13
+ * the capabilities of Angular's native event management. By using `EVENT_MANAGER_PLUGINS`, these
14
+ * plugins are integrated into Angular's event system and can be utilized in templates and components
15
+ * to handle events with custom behaviors such as debouncing or deferring event execution.
16
+ *
17
+ * @example
18
+ * Registering the event plugins in an Angular module:
19
+ * ```ts
20
+ * @NgModule({
21
+ * imports: [
22
+ * BrowserModule,
23
+ * BrowserAnimationsModule,
24
+ * // other imports...
25
+ * ],
26
+ * declarations: [AppComponent],
27
+ * providers: [
28
+ * provideEventPlugins(),
29
+ * ],
30
+ * bootstrap: [AppComponent],
31
+ * })
32
+ * export class AppModule {}
33
+ * ```
34
+ * Assuming `DebounceEventPlugin` modifies event names with a `.debounce` modifier:
35
+ * ```html
36
+ * <button (click.debounce)="handleDebouncedClick($event)">Click Me</button>
37
+ * ```
38
+ * Assuming `DeferEventPlugin` modifies event names with a `.defer` modifier:
39
+ * ```html
40
+ * <div (mouseenter.defer)="handleDeferredMouseEnter($event)"></div>
41
+ * ```
42
+ *
43
+ * @returns {EnvironmentProviders} - A configuration object for Angular's DI system, to be used with `makeEnvironmentProviders`.
44
+ */
10
45
  export function provideEventPlugins() {
11
46
  return makeEnvironmentProviders(EVENT_PLUGINS);
12
47
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGx1Z2lucy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2V2ZW50LXBsdWdpbnMvc3JjL2xpYi9ldmVudC1wbHVnaW5zLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsRSxNQUFNLE9BQU8sR0FBRyxDQUFDLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFlLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEUsT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixRQUFRO0lBQ1IsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDLENBQUMsQ0FBQztBQUVKLE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLCBFbnZpcm9ubWVudFByb3ZpZGVycywgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVWRU5UX01BTkFHRVJfUExVR0lOUyB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRGVib3VuY2VFdmVudFBsdWdpbiwgRGVmZXJFdmVudFBsdWdpbiB9IGZyb20gJy4vcGx1Z2lucyc7XG5cbmNvbnN0IFBMVUdJTlMgPSBbRGVib3VuY2VFdmVudFBsdWdpbiwgRGVmZXJFdmVudFBsdWdpbl07XG5cbmV4cG9ydCBjb25zdCBFVkVOVF9QTFVHSU5TOiBQcm92aWRlcltdID0gUExVR0lOUy5tYXAoKHVzZUNsYXNzKSA9PiAoe1xuICBwcm92aWRlOiBFVkVOVF9NQU5BR0VSX1BMVUdJTlMsXG4gIHVzZUNsYXNzLFxuICBtdWx0aTogdHJ1ZSxcbn0pKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVFdmVudFBsdWdpbnMoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKEVWRU5UX1BMVUdJTlMpO1xufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGx1Z2lucy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2V2ZW50LXBsdWdpbnMvc3JjL2xpYi9ldmVudC1wbHVnaW5zLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsRSxNQUFNLE9BQU8sR0FBRyxDQUFDLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFlLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEUsT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixRQUFRO0lBQ1IsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDLENBQUMsQ0FBQztBQUVKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgUHJvdmlkZXIsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRVZFTlRfTUFOQUdFUl9QTFVHSU5TIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBEZWJvdW5jZUV2ZW50UGx1Z2luLCBEZWZlckV2ZW50UGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zJztcblxuY29uc3QgUExVR0lOUyA9IFtEZWJvdW5jZUV2ZW50UGx1Z2luLCBEZWZlckV2ZW50UGx1Z2luXTtcblxuZXhwb3J0IGNvbnN0IEVWRU5UX1BMVUdJTlM6IFByb3ZpZGVyW10gPSBQTFVHSU5TLm1hcCgodXNlQ2xhc3MpID0+ICh7XG4gIHByb3ZpZGU6IEVWRU5UX01BTkFHRVJfUExVR0lOUyxcbiAgdXNlQ2xhc3MsXG4gIG11bHRpOiB0cnVlLFxufSkpO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgc2V0IG9mIGN1c3RvbSBldmVudCBwbHVnaW5zIHRvIEFuZ3VsYXIncyBldmVudCBoYW5kbGluZyBzeXN0ZW0uIFRoaXMgZnVuY3Rpb25cbiAqIHJlZ2lzdGVycyBjdXN0b20gZXZlbnQgcGx1Z2lucyBsaWtlIGBEZWJvdW5jZUV2ZW50UGx1Z2luYCBhbmQgYERlZmVyRXZlbnRQbHVnaW5gLCBlbmhhbmNpbmdcbiAqIHRoZSBjYXBhYmlsaXRpZXMgb2YgQW5ndWxhcidzIG5hdGl2ZSBldmVudCBtYW5hZ2VtZW50LiBCeSB1c2luZyBgRVZFTlRfTUFOQUdFUl9QTFVHSU5TYCwgdGhlc2VcbiAqIHBsdWdpbnMgYXJlIGludGVncmF0ZWQgaW50byBBbmd1bGFyJ3MgZXZlbnQgc3lzdGVtIGFuZCBjYW4gYmUgdXRpbGl6ZWQgaW4gdGVtcGxhdGVzIGFuZCBjb21wb25lbnRzXG4gKiB0byBoYW5kbGUgZXZlbnRzIHdpdGggY3VzdG9tIGJlaGF2aW9ycyBzdWNoIGFzIGRlYm91bmNpbmcgb3IgZGVmZXJyaW5nIGV2ZW50IGV4ZWN1dGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogUmVnaXN0ZXJpbmcgdGhlIGV2ZW50IHBsdWdpbnMgaW4gYW4gQW5ndWxhciBtb2R1bGU6XG4gKiBgYGB0c1xuICogQE5nTW9kdWxlKHtcbiAqICAgaW1wb3J0czogW1xuICogICAgIEJyb3dzZXJNb2R1bGUsXG4gKiAgICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXG4gKiAgICAgLy8gb3RoZXIgaW1wb3J0cy4uLlxuICogICBdLFxuICogICBkZWNsYXJhdGlvbnM6IFtBcHBDb21wb25lbnRdLFxuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlRXZlbnRQbHVnaW5zKCksXG4gKiAgIF0sXG4gKiAgIGJvb3RzdHJhcDogW0FwcENvbXBvbmVudF0sXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7fVxuICogYGBgXG4gKiBBc3N1bWluZyBgRGVib3VuY2VFdmVudFBsdWdpbmAgbW9kaWZpZXMgZXZlbnQgbmFtZXMgd2l0aCBhIGAuZGVib3VuY2VgIG1vZGlmaWVyOlxuICogYGBgaHRtbFxuICogPGJ1dHRvbiAoY2xpY2suZGVib3VuY2UpPVwiaGFuZGxlRGVib3VuY2VkQ2xpY2soJGV2ZW50KVwiPkNsaWNrIE1lPC9idXR0b24+XG4gKiAgYGBgXG4gKiBBc3N1bWluZyBgRGVmZXJFdmVudFBsdWdpbmAgbW9kaWZpZXMgZXZlbnQgbmFtZXMgd2l0aCBhIGAuZGVmZXJgIG1vZGlmaWVyOlxuICogYGBgaHRtbFxuICogPGRpdiAobW91c2VlbnRlci5kZWZlcik9XCJoYW5kbGVEZWZlcnJlZE1vdXNlRW50ZXIoJGV2ZW50KVwiPjwvZGl2PlxuICogYGBgXG4gKlxuICogQHJldHVybnMge0Vudmlyb25tZW50UHJvdmlkZXJzfSAtIEEgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIEFuZ3VsYXIncyBESSBzeXN0ZW0sIHRvIGJlIHVzZWQgd2l0aCBgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVFdmVudFBsdWdpbnMoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKEVWRU5UX1BMVUdJTlMpO1xufVxuIl19
@@ -1,16 +1,60 @@
1
1
  import { isFunction } from '@odx/angular/utils';
2
+ /**
3
+ * An abstract class for implementing custom event plugins in Angular. This class provides
4
+ * the core functionality required to create a custom event listener with specific behavior,
5
+ * allowing developers to extend Angular's native event handling capabilities.
6
+ *
7
+ * @example
8
+ * Extending EventPlugin to create a custom event plugin:
9
+ * ```ts
10
+ * @Injectable()
11
+ * class CustomEventPlugin extends EventPlugin {
12
+ * public readonly modifier = /custom/;
13
+ *
14
+ * public addEventListener(element: HTMLElement, eventName: string, handler: EventListener): Function {
15
+ * // Custom logic for adding an event listener
16
+ * }
17
+ * }
18
+ * ```
19
+ *
20
+ * ```html
21
+ * <div (click.custom)="handleClick($event)"></div>
22
+ * ```
23
+ */
2
24
  export class EventPlugin {
25
+ /**
26
+ * Adds a global event listener.
27
+ *
28
+ * @returns {Function} - A function that does nothing.
29
+ */
3
30
  addGlobalEventListener() {
4
31
  return () => void 0;
5
32
  }
33
+ /**
34
+ * Checks if the event plugin supports the given event name.
35
+ *
36
+ * @param {string} eventName - The name of the event.
37
+ * @returns {boolean} - `true` if the event plugin supports the event, `false` otherwise.
38
+ */
6
39
  supports(eventName) {
7
40
  return this.modifier.test(eventName);
8
41
  }
42
+ /**
43
+ * Gets the NgZone instance from the event manager.
44
+ *
45
+ * @returns {NgZone} - The NgZone instance.
46
+ */
9
47
  getZone() {
10
48
  return this.manager.getZone();
11
49
  }
50
+ /**
51
+ * Tears down the event listener.
52
+ *
53
+ * @param {Function | null} listener - The event listener function.
54
+ * @returns {Function} - A function that can be called to clean up the listener.
55
+ */
12
56
  teardown(listener) {
13
57
  return () => (isFunction(listener) ? listener() : void 0);
14
58
  }
15
59
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9ldmVudC1wbHVnaW5zL3NyYy9saWIvbW9kZWxzL2V2ZW50LXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRaEQsTUFBTSxPQUFnQixXQUFXO0lBT3hCLHNCQUFzQjtRQUMzQixPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxRQUFRLENBQUMsU0FBaUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVMsT0FBTztRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRVMsUUFBUSxDQUFDLFFBQXlCO1FBQzFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXG5pbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5cbnR5cGUgRXZlbnRNYW5hZ2VyQXJnID0gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBFdmVudE1hbmFnZXI+WzBdWzBdO1xuXG50eXBlIEV2ZW50TWFuYWdlclBsdWdpbiA9IHtcbiAgW0sgaW4ga2V5b2YgRXZlbnRNYW5hZ2VyQXJnXTogRXZlbnRNYW5hZ2VyQXJnW0tdO1xufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEV2ZW50UGx1Z2luIGltcGxlbWVudHMgRXZlbnRNYW5hZ2VyUGx1Z2luIHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IG1vZGlmaWVyOiBSZWdFeHA7XG5cbiAgcHVibGljIG1hbmFnZXIhOiBFdmVudE1hbmFnZXI7XG5cbiAgcHVibGljIGFic3RyYWN0IGFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudDogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBoYW5kbGVyOiBFdmVudExpc3RlbmVyKTogRnVuY3Rpb247XG5cbiAgcHVibGljIGFkZEdsb2JhbEV2ZW50TGlzdGVuZXIoKTogRnVuY3Rpb24ge1xuICAgIHJldHVybiAoKSA9PiB2b2lkIDA7XG4gIH1cblxuICBwdWJsaWMgc3VwcG9ydHMoZXZlbnROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tb2RpZmllci50ZXN0KGV2ZW50TmFtZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Wm9uZSgpOiBOZ1pvbmUge1xuICAgIHJldHVybiB0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRlYXJkb3duKGxpc3RlbmVyOiBGdW5jdGlvbiB8IG51bGwpOiAoKSA9PiB2b2lkIHtcbiAgICByZXR1cm4gKCkgPT4gKGlzRnVuY3Rpb24obGlzdGVuZXIpID8gbGlzdGVuZXIoKSA6IHZvaWQgMCk7XG4gIH1cbn1cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9ldmVudC1wbHVnaW5zL3NyYy9saWIvbW9kZWxzL2V2ZW50LXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILE1BQU0sT0FBZ0IsV0FBVztJQW9CL0I7Ozs7T0FJRztJQUNJLHNCQUFzQjtRQUMzQixPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFFBQVEsQ0FBQyxTQUFpQjtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sT0FBTztRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTyxRQUFRLENBQUMsUUFBeUI7UUFDMUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cbmltcG9ydCB7IE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnRNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxudHlwZSBFdmVudE1hbmFnZXJBcmcgPSBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEV2ZW50TWFuYWdlcj5bMF1bMF07XG5cbnR5cGUgRXZlbnRNYW5hZ2VyUGx1Z2luID0ge1xuICBbSyBpbiBrZXlvZiBFdmVudE1hbmFnZXJBcmddOiBFdmVudE1hbmFnZXJBcmdbS107XG59O1xuXG4vKipcbiAqIEFuIGFic3RyYWN0IGNsYXNzIGZvciBpbXBsZW1lbnRpbmcgY3VzdG9tIGV2ZW50IHBsdWdpbnMgaW4gQW5ndWxhci4gVGhpcyBjbGFzcyBwcm92aWRlc1xuICogdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSByZXF1aXJlZCB0byBjcmVhdGUgYSBjdXN0b20gZXZlbnQgbGlzdGVuZXIgd2l0aCBzcGVjaWZpYyBiZWhhdmlvcixcbiAqIGFsbG93aW5nIGRldmVsb3BlcnMgdG8gZXh0ZW5kIEFuZ3VsYXIncyBuYXRpdmUgZXZlbnQgaGFuZGxpbmcgY2FwYWJpbGl0aWVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBFeHRlbmRpbmcgRXZlbnRQbHVnaW4gdG8gY3JlYXRlIGEgY3VzdG9tIGV2ZW50IHBsdWdpbjpcbiAqIGBgYHRzXG4gKiBASW5qZWN0YWJsZSgpXG4gKiBjbGFzcyBDdXN0b21FdmVudFBsdWdpbiBleHRlbmRzIEV2ZW50UGx1Z2luIHtcbiAqICAgcHVibGljIHJlYWRvbmx5IG1vZGlmaWVyID0gL2N1c3RvbS87XG4gKlxuICogICBwdWJsaWMgYWRkRXZlbnRMaXN0ZW5lcihlbGVtZW50OiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGhhbmRsZXI6IEV2ZW50TGlzdGVuZXIpOiBGdW5jdGlvbiB7XG4gKiAgICAgLy8gQ3VzdG9tIGxvZ2ljIGZvciBhZGRpbmcgYW4gZXZlbnQgbGlzdGVuZXJcbiAqICAgfVxuICogfVxuICogYGBgXG4gKlxuICogYGBgaHRtbFxuICogPGRpdiAoY2xpY2suY3VzdG9tKT1cImhhbmRsZUNsaWNrKCRldmVudClcIj48L2Rpdj5cbiAqIGBgYFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRXZlbnRQbHVnaW4gaW1wbGVtZW50cyBFdmVudE1hbmFnZXJQbHVnaW4ge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgbW9kaWZpZXI6IFJlZ0V4cDtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IG1hbmFnZXIgZm9yIGhhbmRsaW5nIGV2ZW50cy5cbiAgICpcbiAgICogQHR5cGUge0V2ZW50TWFuYWdlcn1cbiAgICovXG4gIHB1YmxpYyBtYW5hZ2VyITogRXZlbnRNYW5hZ2VyO1xuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBnaXZlbiBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50IC0gVGhlIGVsZW1lbnQgdG8gYXR0YWNoIHRoZSBldmVudCBsaXN0ZW5lciB0by5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIHtFdmVudExpc3RlbmVyfSBoYW5kbGVyIC0gVGhlIGV2ZW50IGxpc3RlbmVyIGZ1bmN0aW9uLlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IC0gQSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBjYWxsZWQgdG8gcmVtb3ZlIHRoZSBldmVudCBsaXN0ZW5lci5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRFdmVudExpc3RlbmVyKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgaGFuZGxlcjogRXZlbnRMaXN0ZW5lcik6IEZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgZ2xvYmFsIGV2ZW50IGxpc3RlbmVyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IC0gQSBmdW5jdGlvbiB0aGF0IGRvZXMgbm90aGluZy5cbiAgICovXG4gIHB1YmxpYyBhZGRHbG9iYWxFdmVudExpc3RlbmVyKCk6IEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gKCkgPT4gdm9pZCAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgZXZlbnQgcGx1Z2luIHN1cHBvcnRzIHRoZSBnaXZlbiBldmVudCBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBgdHJ1ZWAgaWYgdGhlIGV2ZW50IHBsdWdpbiBzdXBwb3J0cyB0aGUgZXZlbnQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIHN1cHBvcnRzKGV2ZW50TmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kaWZpZXIudGVzdChldmVudE5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIE5nWm9uZSBpbnN0YW5jZSBmcm9tIHRoZSBldmVudCBtYW5hZ2VyLlxuICAgKlxuICAgKiBAcmV0dXJucyB7Tmdab25lfSAtIFRoZSBOZ1pvbmUgaW5zdGFuY2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0Wm9uZSgpOiBOZ1pvbmUge1xuICAgIHJldHVybiB0aGlzLm1hbmFnZXIuZ2V0Wm9uZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRlYXJzIGRvd24gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9uIHwgbnVsbH0gbGlzdGVuZXIgLSBUaGUgZXZlbnQgbGlzdGVuZXIgZnVuY3Rpb24uXG4gICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gLSBBIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGNhbGxlZCB0byBjbGVhbiB1cCB0aGUgbGlzdGVuZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgdGVhcmRvd24obGlzdGVuZXI6IEZ1bmN0aW9uIHwgbnVsbCk6ICgpID0+IHZvaWQge1xuICAgIHJldHVybiAoKSA9PiAoaXNGdW5jdGlvbihsaXN0ZW5lcikgPyBsaXN0ZW5lcigpIDogdm9pZCAwKTtcbiAgfVxufVxuIl19
@@ -5,6 +5,38 @@ import { debounce } from '@odx/angular/utils';
5
5
  import { EventPlugin } from '../models';
6
6
  import * as i0 from "@angular/core";
7
7
  const DEFAULT_DELAY = 250;
8
+ /**
9
+ * A service that extends `EventPlugin` for debouncing events. This service wraps event listeners
10
+ * and ensures that they are triggered no more than once per specified delay period. It is
11
+ * particularly useful for handling events that fire frequently, such as mouse movements
12
+ * or keystrokes, in a performant manner.
13
+ *
14
+ * The delay period can be specified directly in the event name using the syntax
15
+ * `(eventName.debounce.delay)`, where `delay` is the debounce duration in milliseconds.
16
+ * If no delay is specified, a default delay of 250 milliseconds is used.
17
+ *
18
+ * @example
19
+ * Provide the `DebounceEventPlugin` in an Angular module:
20
+ * ```ts
21
+ * @NgModule({
22
+ * providers: [
23
+ * ...
24
+ * provideEventPlugins(),
25
+ * ...
26
+ * ],
27
+ * })
28
+ * export class AppModule {}
29
+ * ```
30
+ *
31
+ * In a component template, apply the debounce modifier to an event, specifying a custom delay:
32
+ * ```html
33
+ * <button (click.debounce.400)="handleClick($event)"></button>
34
+ * ```
35
+ * In a component template, apply the debounce modifier with the default delay:
36
+ * ```html
37
+ * <input (keyup.debounce)="onKeyUp($event)" placeholder="Type here...">
38
+ * ```
39
+ */
8
40
  export class DebounceEventPlugin extends EventPlugin {
9
41
  constructor() {
10
42
  super(...arguments);
@@ -32,4 +64,4 @@ export class DebounceEventPlugin extends EventPlugin {
32
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DebounceEventPlugin, decorators: [{
33
65
  type: Injectable
34
66
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UtZXZlbnQtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9ldmVudC1wbHVnaW5zL3NyYy9saWIvcGx1Z2lucy9kZWJvdW5jZS1ldmVudC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCO0FBQzFCLGlEQUFpRDtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFeEMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBRzFCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUFXO0lBRHBEOztRQUVrQixhQUFRLEdBQUcsVUFBVSxDQUFDO0tBdUJ2QztJQXJCUSxnQkFBZ0IsQ0FBQyxPQUFvQixFQUFFLFNBQWlCLEVBQUUsZUFBOEI7UUFDN0YsTUFBTSxDQUFDLElBQUksRUFBRSxBQUFELEVBQUcsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFFM0YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVPLGFBQWEsQ0FBQyxlQUE4QixFQUFFLEtBQWE7UUFDakUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFZLEVBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFckcsT0FBTyxRQUFRLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxXQUEyQjtRQUNuRCxJQUFJLFFBQVEsR0FBb0IsSUFBSSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBdkJVLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cbmltcG9ydCB7IEluamVjdGFibGUsIG51bWJlckF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgRXZlbnRQbHVnaW4gfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5jb25zdCBERUZBVUxUX0RFTEFZID0gMjUwO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGVib3VuY2VFdmVudFBsdWdpbiBleHRlbmRzIEV2ZW50UGx1Z2luIHtcbiAgcHVibGljIHJlYWRvbmx5IG1vZGlmaWVyID0gL2RlYm91bmNlLztcblxuICBwdWJsaWMgYWRkRXZlbnRMaXN0ZW5lcihlbGVtZW50OiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIG9yaWdpbmFsSGFuZGxlcjogRXZlbnRMaXN0ZW5lcik6IEZ1bmN0aW9uIHtcbiAgICBjb25zdCBbbmFtZSwgLCBkZWxheV0gPSBldmVudE5hbWUuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5jcmVhdGVIYW5kbGVyKG9yaWdpbmFsSGFuZGxlciwgbnVtYmVyQXR0cmlidXRlKGRlbGF5LCBERUZBVUxUX0RFTEFZKSk7XG5cbiAgICByZXR1cm4gdGhpcy5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLm1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihlbGVtZW50LCBuYW1lLCBoYW5kbGVyKSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUhhbmRsZXIob3JpZ2luYWxIYW5kbGVyOiBFdmVudExpc3RlbmVyLCBkZWxheTogbnVtYmVyKTogKGV2ZW50OiBFdmVudCkgPT4gdm9pZCB7XG4gICAgY29uc3QgaW5uZXJIYW5kbGVyID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4gdGhpcy5nZXRab25lKCkucnVuR3VhcmRlZCgoKSA9PiBvcmlnaW5hbEhhbmRsZXIoZXZlbnQpKTtcblxuICAgIHJldHVybiBkZWJvdW5jZShpbm5lckhhbmRsZXIsIGRlbGF5KTtcbiAgfVxuXG4gIHByaXZhdGUgcnVuT3V0c2lkZUFuZ3VsYXIoYWRkTGlzdGVuZXI6ICgpID0+IEZ1bmN0aW9uKTogKCkgPT4gdm9pZCB7XG4gICAgbGV0IGxpc3RlbmVyOiBGdW5jdGlvbiB8IG51bGwgPSBudWxsO1xuICAgIHRoaXMuZ2V0Wm9uZSgpLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGxpc3RlbmVyID0gYWRkTGlzdGVuZXIoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLnRlYXJkb3duKGxpc3RlbmVyKTtcbiAgfVxufVxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UtZXZlbnQtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9ldmVudC1wbHVnaW5zL3NyYy9saWIvcGx1Z2lucy9kZWJvdW5jZS1ldmVudC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCO0FBQzFCLGlEQUFpRDtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFeEMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBRTFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQVc7SUFEcEQ7O1FBRWtCLGFBQVEsR0FBRyxVQUFVLENBQUM7S0F1QnZDO0lBckJRLGdCQUFnQixDQUFDLE9BQW9CLEVBQUUsU0FBaUIsRUFBRSxlQUE4QjtRQUM3RixNQUFNLENBQUMsSUFBSSxFQUFFLEFBQUQsRUFBRyxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUUzRixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRU8sYUFBYSxDQUFDLGVBQThCLEVBQUUsS0FBYTtRQUNqRSxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQVksRUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVyRyxPQUFPLFFBQVEsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFdBQTJCO1FBQ25ELElBQUksUUFBUSxHQUFvQixJQUFJLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNwQyxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0F2QlUsbUJBQW1CO21IQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlcyAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgbnVtYmVyQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBFdmVudFBsdWdpbiB9IGZyb20gJy4uL21vZGVscyc7XG5cbmNvbnN0IERFRkFVTFRfREVMQVkgPSAyNTA7XG5cbi8qKlxuICogQSBzZXJ2aWNlIHRoYXQgZXh0ZW5kcyBgRXZlbnRQbHVnaW5gIGZvciBkZWJvdW5jaW5nIGV2ZW50cy4gVGhpcyBzZXJ2aWNlIHdyYXBzIGV2ZW50IGxpc3RlbmVyc1xuICogYW5kIGVuc3VyZXMgdGhhdCB0aGV5IGFyZSB0cmlnZ2VyZWQgbm8gbW9yZSB0aGFuIG9uY2UgcGVyIHNwZWNpZmllZCBkZWxheSBwZXJpb2QuIEl0IGlzXG4gKiBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBoYW5kbGluZyBldmVudHMgdGhhdCBmaXJlIGZyZXF1ZW50bHksIHN1Y2ggYXMgbW91c2UgbW92ZW1lbnRzXG4gKiBvciBrZXlzdHJva2VzLCBpbiBhIHBlcmZvcm1hbnQgbWFubmVyLlxuICpcbiAqIFRoZSBkZWxheSBwZXJpb2QgY2FuIGJlIHNwZWNpZmllZCBkaXJlY3RseSBpbiB0aGUgZXZlbnQgbmFtZSB1c2luZyB0aGUgc3ludGF4XG4gKiBgKGV2ZW50TmFtZS5kZWJvdW5jZS5kZWxheSlgLCB3aGVyZSBgZGVsYXlgIGlzIHRoZSBkZWJvdW5jZSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuXG4gKiBJZiBubyBkZWxheSBpcyBzcGVjaWZpZWQsIGEgZGVmYXVsdCBkZWxheSBvZiAyNTAgbWlsbGlzZWNvbmRzIGlzIHVzZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIFByb3ZpZGUgdGhlIGBEZWJvdW5jZUV2ZW50UGx1Z2luYCBpbiBhbiBBbmd1bGFyIG1vZHVsZTpcbiAqIGBgYHRzXG4gKiBATmdNb2R1bGUoe1xuICogIHByb3ZpZGVyczogW1xuICogICAuLi5cbiAqICAgcHJvdmlkZUV2ZW50UGx1Z2lucygpLFxuICogICAuLi5cbiAqICBdLFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBNb2R1bGUge31cbiAqIGBgYFxuICpcbiAqIEluIGEgY29tcG9uZW50IHRlbXBsYXRlLCBhcHBseSB0aGUgZGVib3VuY2UgbW9kaWZpZXIgdG8gYW4gZXZlbnQsIHNwZWNpZnlpbmcgYSBjdXN0b20gZGVsYXk6XG4gKiBgYGBodG1sXG4gKiA8YnV0dG9uIChjbGljay5kZWJvdW5jZS40MDApPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiPjwvYnV0dG9uPlxuICogYGBgXG4gKiBJbiBhIGNvbXBvbmVudCB0ZW1wbGF0ZSwgYXBwbHkgdGhlIGRlYm91bmNlIG1vZGlmaWVyIHdpdGggdGhlIGRlZmF1bHQgZGVsYXk6XG4gKiBgYGBodG1sXG4gKiA8aW5wdXQgKGtleXVwLmRlYm91bmNlKT1cIm9uS2V5VXAoJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiVHlwZSBoZXJlLi4uXCI+XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERlYm91bmNlRXZlbnRQbHVnaW4gZXh0ZW5kcyBFdmVudFBsdWdpbiB7XG4gIHB1YmxpYyByZWFkb25seSBtb2RpZmllciA9IC9kZWJvdW5jZS87XG5cbiAgcHVibGljIGFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudDogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBvcmlnaW5hbEhhbmRsZXI6IEV2ZW50TGlzdGVuZXIpOiBGdW5jdGlvbiB7XG4gICAgY29uc3QgW25hbWUsICwgZGVsYXldID0gZXZlbnROYW1lLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgaGFuZGxlciA9IHRoaXMuY3JlYXRlSGFuZGxlcihvcmlnaW5hbEhhbmRsZXIsIG51bWJlckF0dHJpYnV0ZShkZWxheSwgREVGQVVMVF9ERUxBWSkpO1xuXG4gICAgcmV0dXJuIHRoaXMucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5tYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudCwgbmFtZSwgaGFuZGxlcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIYW5kbGVyKG9yaWdpbmFsSGFuZGxlcjogRXZlbnRMaXN0ZW5lciwgZGVsYXk6IG51bWJlcik6IChldmVudDogRXZlbnQpID0+IHZvaWQge1xuICAgIGNvbnN0IGlubmVySGFuZGxlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHRoaXMuZ2V0Wm9uZSgpLnJ1bkd1YXJkZWQoKCkgPT4gb3JpZ2luYWxIYW5kbGVyKGV2ZW50KSk7XG5cbiAgICByZXR1cm4gZGVib3VuY2UoaW5uZXJIYW5kbGVyLCBkZWxheSk7XG4gIH1cblxuICBwcml2YXRlIHJ1bk91dHNpZGVBbmd1bGFyKGFkZExpc3RlbmVyOiAoKSA9PiBGdW5jdGlvbik6ICgpID0+IHZvaWQge1xuICAgIGxldCBsaXN0ZW5lcjogRnVuY3Rpb24gfCBudWxsID0gbnVsbDtcbiAgICB0aGlzLmdldFpvbmUoKS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBsaXN0ZW5lciA9IGFkZExpc3RlbmVyKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy50ZWFyZG93bihsaXN0ZW5lcik7XG4gIH1cbn1cbiJdfQ==
@@ -3,6 +3,30 @@
3
3
  import { Injectable } from '@angular/core';
4
4
  import { EventPlugin } from '../models';
5
5
  import * as i0 from "@angular/core";
6
+ /**
7
+ * A service that extends `EventPlugin` to allow event handlers to be deferred until the end of the current call stack.
8
+ * This can improve performance by avoiding triggering Angular's change detection unnecessarily.
9
+ *
10
+ * @example
11
+ * Provide the `DeferEventPlugin` in an Angular module:
12
+ * ```ts
13
+ * @NgModule({
14
+ * providers: [
15
+ * ...
16
+ * provideEventPlugins(),
17
+ * ...
18
+ * ],
19
+ * })
20
+ * export class AppModule {}
21
+ * ```
22
+ *
23
+ * In your Angular component:
24
+ * ```html
25
+ * <button (click.defer)="handleClick($event)"></button>
26
+ * ```
27
+ *
28
+ * The `.defer` modifier in the event name `click.defer` indicates that the event handler should be deferred.
29
+ */
6
30
  export class DeferEventPlugin extends EventPlugin {
7
31
  constructor() {
8
32
  super(...arguments);
@@ -24,4 +48,4 @@ export class DeferEventPlugin extends EventPlugin {
24
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DeferEventPlugin, decorators: [{
25
49
  type: Injectable
26
50
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmZXItZXZlbnQtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9ldmVudC1wbHVnaW5zL3NyYy9saWIvcGx1Z2lucy9kZWZlci1ldmVudC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCO0FBQzFCLGlEQUFpRDtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBR3hDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBRGpEOztRQUVrQixhQUFRLEdBQUcsT0FBTyxDQUFDO0tBY3BDO0lBWlEsZ0JBQWdCLENBQUMsT0FBb0IsRUFBRSxTQUFpQixFQUFFLGVBQThCO1FBQzdGLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFcEQsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVPLGFBQWEsQ0FBQyxlQUE4QjtRQUNsRCxPQUFPLENBQUMsS0FBWSxFQUFRLEVBQUU7WUFDNUIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0FkVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudFBsdWdpbiB9IGZyb20gJy4uL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZWZlckV2ZW50UGx1Z2luIGV4dGVuZHMgRXZlbnRQbHVnaW4ge1xuICBwdWJsaWMgcmVhZG9ubHkgbW9kaWZpZXIgPSAvZGVmZXIvO1xuXG4gIHB1YmxpYyBhZGRFdmVudExpc3RlbmVyKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgb3JpZ2luYWxIYW5kbGVyOiBFdmVudExpc3RlbmVyKTogRnVuY3Rpb24ge1xuICAgIGNvbnN0IFtuYW1lXSA9IGV2ZW50TmFtZS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmNyZWF0ZUhhbmRsZXIob3JpZ2luYWxIYW5kbGVyKTtcblxuICAgIHJldHVybiB0aGlzLmdldFpvbmUoKS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLm1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihlbGVtZW50LCBuYW1lLCBoYW5kbGVyKSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUhhbmRsZXIob3JpZ2luYWxIYW5kbGVyOiBFdmVudExpc3RlbmVyKTogKGV2ZW50OiBFdmVudCkgPT4gdm9pZCB7XG4gICAgcmV0dXJuIChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5nZXRab25lKCkucnVuR3VhcmRlZCgoKSA9PiBvcmlnaW5hbEhhbmRsZXIoZXZlbnQpKSwgMCk7XG4gICAgfTtcbiAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmZXItZXZlbnQtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9ldmVudC1wbHVnaW5zL3NyYy9saWIvcGx1Z2lucy9kZWZlci1ldmVudC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCO0FBQzFCLGlEQUFpRDtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRXhDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUVILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBRGpEOztRQUVrQixhQUFRLEdBQUcsT0FBTyxDQUFDO0tBY3BDO0lBWlEsZ0JBQWdCLENBQUMsT0FBb0IsRUFBRSxTQUFpQixFQUFFLGVBQThCO1FBQzdGLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFcEQsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVPLGFBQWEsQ0FBQyxlQUE4QjtRQUNsRCxPQUFPLENBQUMsS0FBWSxFQUFRLEVBQUU7WUFDNUIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0FkVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudFBsdWdpbiB9IGZyb20gJy4uL21vZGVscyc7XG5cbi8qKlxuICogQSBzZXJ2aWNlIHRoYXQgZXh0ZW5kcyBgRXZlbnRQbHVnaW5gIHRvIGFsbG93IGV2ZW50IGhhbmRsZXJzIHRvIGJlIGRlZmVycmVkIHVudGlsIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgY2FsbCBzdGFjay5cbiAqIFRoaXMgY2FuIGltcHJvdmUgcGVyZm9ybWFuY2UgYnkgYXZvaWRpbmcgdHJpZ2dlcmluZyBBbmd1bGFyJ3MgY2hhbmdlIGRldGVjdGlvbiB1bm5lY2Vzc2FyaWx5LlxuICpcbiAqIEBleGFtcGxlXG4gKiBQcm92aWRlIHRoZSBgRGVmZXJFdmVudFBsdWdpbmAgaW4gYW4gQW5ndWxhciBtb2R1bGU6XG4gKiBgYGB0c1xuICogQE5nTW9kdWxlKHtcbiAqICBwcm92aWRlcnM6IFtcbiAqICAgLi4uXG4gKiAgIHByb3ZpZGVFdmVudFBsdWdpbnMoKSxcbiAqICAgLi4uXG4gKiAgXSxcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKiBgYGBcbiAqXG4gKiBJbiB5b3VyIEFuZ3VsYXIgY29tcG9uZW50OlxuICogYGBgaHRtbFxuICogPGJ1dHRvbiAoY2xpY2suZGVmZXIpPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiPjwvYnV0dG9uPlxuICogYGBgXG4gKlxuICogVGhlIGAuZGVmZXJgIG1vZGlmaWVyIGluIHRoZSBldmVudCBuYW1lIGBjbGljay5kZWZlcmAgaW5kaWNhdGVzIHRoYXQgdGhlIGV2ZW50IGhhbmRsZXIgc2hvdWxkIGJlIGRlZmVycmVkLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGVmZXJFdmVudFBsdWdpbiBleHRlbmRzIEV2ZW50UGx1Z2luIHtcbiAgcHVibGljIHJlYWRvbmx5IG1vZGlmaWVyID0gL2RlZmVyLztcblxuICBwdWJsaWMgYWRkRXZlbnRMaXN0ZW5lcihlbGVtZW50OiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIG9yaWdpbmFsSGFuZGxlcjogRXZlbnRMaXN0ZW5lcik6IEZ1bmN0aW9uIHtcbiAgICBjb25zdCBbbmFtZV0gPSBldmVudE5hbWUuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5jcmVhdGVIYW5kbGVyKG9yaWdpbmFsSGFuZGxlcik7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRab25lKCkucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5tYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudCwgbmFtZSwgaGFuZGxlcikpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIYW5kbGVyKG9yaWdpbmFsSGFuZGxlcjogRXZlbnRMaXN0ZW5lcik6IChldmVudDogRXZlbnQpID0+IHZvaWQge1xuICAgIHJldHVybiAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZ2V0Wm9uZSgpLnJ1bkd1YXJkZWQoKCkgPT4gb3JpZ2luYWxIYW5kbGVyKGV2ZW50KSksIDApO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,11 +1,22 @@
1
1
  import { booleanAttribute, Directive, inject, Input } from '@angular/core';
2
2
  import { ODX_EXPANDABLE_CONTAINER, ODX_EXPANDABLE_ITEM } from '../expandable.tokens';
3
3
  import * as i0 from "@angular/core";
4
+ /**
5
+ * `ExpandableContainerDirective` provides a container for managing a group of expandable items,
6
+ * allowing them to expand or collapse. It supports the functionality to either allow multiple
7
+ * items to be expanded simultaneously or restrict to a single item at a time.
8
+ *
9
+ * This directive uses Angular's dependency injection to optionally inject a parent `ExpandableItem` or `ExpandableContainer`,
10
+ * enabling nested expandable structures. The `multiple` property can be set to dictate the expand/collapse behavior.
11
+ */
4
12
  export class ExpandableContainerDirective {
5
13
  constructor() {
6
14
  this.expandedItems = new Set();
7
15
  this.parentItem = inject(ODX_EXPANDABLE_ITEM, { optional: true, skipSelf: true });
8
16
  this.parentContainer = inject(ODX_EXPANDABLE_CONTAINER, { optional: true, skipSelf: true });
17
+ /**
18
+ * Determines whether multiple items can be expanded within the container.
19
+ */
9
20
  this.multiple = this.parentContainer?.multiple ?? false;
10
21
  }
11
22
  ngOnInit() {
@@ -14,18 +25,39 @@ export class ExpandableContainerDirective {
14
25
  ngOnDestroy() {
15
26
  this.parentItem?.removeChild(this);
16
27
  }
28
+ /**
29
+ * Collapses all the expanded items within the expandable container.
30
+ */
17
31
  collapseAll() {
18
32
  this.expandedItems.forEach((item) => item.collapse());
19
33
  }
34
+ /**
35
+ * Collapses the specified item.
36
+ *
37
+ * @param item - The item to collapse.
38
+ */
20
39
  collapse(item) {
21
40
  this.expandedItems.delete(item);
22
41
  }
42
+ /**
43
+ * Expands the specified item.
44
+ * If `multiple` is set to `false`, it collapses all other items before expanding the specified item.
45
+ * @param item - The item to expand.
46
+ */
23
47
  expand(item) {
24
48
  if (!this.multiple) {
25
49
  this.collapseAll();
26
50
  }
27
51
  this.expandedItems.add(item);
28
52
  }
53
+ /**
54
+ * Toggles the expansion state of the specified item.
55
+ * If `forceState` is provided, it will set the expansion state to the specified value.
56
+ * If `forceState` is not provided, it will toggle the expansion state of the item.
57
+ *
58
+ * @param item - The item to toggle the expansion state for.
59
+ * @param forceState - Optional. The desired expansion state to set for the item.
60
+ */
29
61
  toggle(item, forceState) {
30
62
  const shouldExpand = forceState ?? !this.isExpanded(item);
31
63
  if (shouldExpand) {
@@ -35,9 +67,18 @@ export class ExpandableContainerDirective {
35
67
  this.collapse(item);
36
68
  }
37
69
  }
70
+ /**
71
+ * Checks if the specified item is expanded.
72
+ * @param item - The item to check.
73
+ * @returns `true` if the item is expanded, `false` otherwise.
74
+ */
38
75
  isExpanded(item) {
39
76
  return this.expandedItems.has(item);
40
77
  }
78
+ /**
79
+ * Checks if there is any expanded item.
80
+ * @returns {boolean} True if there is at least one expanded item, false otherwise.
81
+ */
41
82
  hasExpandedItem() {
42
83
  return this.expandedItems.size > 0;
43
84
  }
@@ -56,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
56
97
  type: Input,
57
98
  args: [{ transform: booleanAttribute }]
58
99
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1jb250YWluZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9leHBhbmRhYmxlL3NyYy9saWIvZGlyZWN0aXZlcy9leHBhbmRhYmxlLWNvbnRhaW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFTckYsTUFBTSxPQUFPLDRCQUE0QjtJQU56QztRQU9tQixrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQzFDLGVBQVUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdFLG9CQUFlLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdqRyxhQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDO0tBeUMzRDtJQXZDUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxRQUFRLENBQUMsSUFBb0I7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFvQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQW9CLEVBQUUsVUFBb0I7UUFDdEQsTUFBTSxZQUFZLEdBQUcsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLFlBQVksRUFBRTtZQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFvQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBOUNVLDRCQUE0QjttR0FBNUIsNEJBQTRCLHlHQUtuQixnQkFBZ0IsZ0JBUHpCLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUM7OzRGQUVsRiw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsOEJBQThCLEVBQUUsQ0FBQztpQkFDOUY7OEJBT1EsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT0RYX0VYUEFOREFCTEVfQ09OVEFJTkVSLCBPRFhfRVhQQU5EQUJMRV9JVEVNIH0gZnJvbSAnLi4vZXhwYW5kYWJsZS50b2tlbnMnO1xuaW1wb3J0IHR5cGUgeyBFeHBhbmRhYmxlQ29udGFpbmVyLCBFeHBhbmRhYmxlSXRlbSB9IGZyb20gJy4uL2ZhY2FkZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhFeHBhbmRhYmxlQ29udGFpbmVyXScsXG4gIGV4cG9ydEFzOiAnb2R4RXhwYW5kYWJsZUNvbnRhaW5lcicsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogT0RYX0VYUEFOREFCTEVfQ09OVEFJTkVSLCB1c2VFeGlzdGluZzogRXhwYW5kYWJsZUNvbnRhaW5lckRpcmVjdGl2ZSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRXhwYW5kYWJsZUNvbnRhaW5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEV4cGFuZGFibGVDb250YWluZXIsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHBhbmRlZEl0ZW1zID0gbmV3IFNldDxFeHBhbmRhYmxlSXRlbT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRJdGVtID0gaW5qZWN0KE9EWF9FWFBBTkRBQkxFX0lURU0sIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudENvbnRhaW5lciA9IGluamVjdChPRFhfRVhQQU5EQUJMRV9DT05UQUlORVIsIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbXVsdGlwbGUgPSB0aGlzLnBhcmVudENvbnRhaW5lcj8ubXVsdGlwbGUgPz8gZmFsc2U7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucGFyZW50SXRlbT8uYWRkQ2hpbGQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5wYXJlbnRJdGVtPy5yZW1vdmVDaGlsZCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2xsYXBzZUFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5jb2xsYXBzZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2xsYXBzZShpdGVtOiBFeHBhbmRhYmxlSXRlbSk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWRJdGVtcy5kZWxldGUoaXRlbSk7XG4gIH1cblxuICBwdWJsaWMgZXhwYW5kKGl0ZW06IEV4cGFuZGFibGVJdGVtKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLmNvbGxhcHNlQWxsKCk7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kZWRJdGVtcy5hZGQoaXRlbSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKGl0ZW06IEV4cGFuZGFibGVJdGVtLCBmb3JjZVN0YXRlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHNob3VsZEV4cGFuZCA9IGZvcmNlU3RhdGUgPz8gIXRoaXMuaXNFeHBhbmRlZChpdGVtKTtcbiAgICBpZiAoc2hvdWxkRXhwYW5kKSB7XG4gICAgICB0aGlzLmV4cGFuZChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2xsYXBzZShpdGVtKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNFeHBhbmRlZChpdGVtOiBFeHBhbmRhYmxlSXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV4cGFuZGVkSXRlbXMuaGFzKGl0ZW0pO1xuICB9XG5cbiAgcHVibGljIGhhc0V4cGFuZGVkSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5leHBhbmRlZEl0ZW1zLnNpemUgPiAwO1xuICB9XG59XG4iXX0=
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS1jb250YWluZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9leHBhbmRhYmxlL3NyYy9saWIvZGlyZWN0aXZlcy9leHBhbmRhYmxlLWNvbnRhaW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHckY7Ozs7Ozs7R0FPRztBQU9ILE1BQU0sT0FBTyw0QkFBNEI7SUFOekM7UUFPbUIsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUMxQyxlQUFVLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFeEc7O1dBRUc7UUFFSSxhQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDO0tBdUUzRDtJQXJFUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsSUFBb0I7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsSUFBb0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsSUFBb0IsRUFBRSxVQUFvQjtRQUN0RCxNQUFNLFlBQVksR0FBRyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELElBQUksWUFBWSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkI7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxJQUFvQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBL0VVLDRCQUE0QjttR0FBNUIsNEJBQTRCLHlHQVFuQixnQkFBZ0IsZ0JBVnpCLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLENBQUM7OzRGQUVsRiw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsOEJBQThCLEVBQUUsQ0FBQztpQkFDOUY7OEJBVVEsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT0RYX0VYUEFOREFCTEVfQ09OVEFJTkVSLCBPRFhfRVhQQU5EQUJMRV9JVEVNIH0gZnJvbSAnLi4vZXhwYW5kYWJsZS50b2tlbnMnO1xuaW1wb3J0IHR5cGUgeyBFeHBhbmRhYmxlQ29udGFpbmVyLCBFeHBhbmRhYmxlSXRlbSB9IGZyb20gJy4uL2ZhY2FkZSc7XG5cbi8qKlxuICogYEV4cGFuZGFibGVDb250YWluZXJEaXJlY3RpdmVgIHByb3ZpZGVzIGEgY29udGFpbmVyIGZvciBtYW5hZ2luZyBhIGdyb3VwIG9mIGV4cGFuZGFibGUgaXRlbXMsXG4gKiBhbGxvd2luZyB0aGVtIHRvIGV4cGFuZCBvciBjb2xsYXBzZS4gSXQgc3VwcG9ydHMgdGhlIGZ1bmN0aW9uYWxpdHkgdG8gZWl0aGVyIGFsbG93IG11bHRpcGxlXG4gKiBpdGVtcyB0byBiZSBleHBhbmRlZCBzaW11bHRhbmVvdXNseSBvciByZXN0cmljdCB0byBhIHNpbmdsZSBpdGVtIGF0IGEgdGltZS5cbiAqXG4gKiBUaGlzIGRpcmVjdGl2ZSB1c2VzIEFuZ3VsYXIncyBkZXBlbmRlbmN5IGluamVjdGlvbiB0byBvcHRpb25hbGx5IGluamVjdCBhIHBhcmVudCBgRXhwYW5kYWJsZUl0ZW1gIG9yIGBFeHBhbmRhYmxlQ29udGFpbmVyYCxcbiAqIGVuYWJsaW5nIG5lc3RlZCBleHBhbmRhYmxlIHN0cnVjdHVyZXMuIFRoZSBgbXVsdGlwbGVgIHByb3BlcnR5IGNhbiBiZSBzZXQgdG8gZGljdGF0ZSB0aGUgZXhwYW5kL2NvbGxhcHNlIGJlaGF2aW9yLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbb2R4RXhwYW5kYWJsZUNvbnRhaW5lcl0nLFxuICBleHBvcnRBczogJ29keEV4cGFuZGFibGVDb250YWluZXInLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE9EWF9FWFBBTkRBQkxFX0NPTlRBSU5FUiwgdXNlRXhpc3Rpbmc6IEV4cGFuZGFibGVDb250YWluZXJEaXJlY3RpdmUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEV4cGFuZGFibGVDb250YWluZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBFeHBhbmRhYmxlQ29udGFpbmVyLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXhwYW5kZWRJdGVtcyA9IG5ldyBTZXQ8RXhwYW5kYWJsZUl0ZW0+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50SXRlbSA9IGluamVjdChPRFhfRVhQQU5EQUJMRV9JVEVNLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRDb250YWluZXIgPSBpbmplY3QoT0RYX0VYUEFOREFCTEVfQ09OVEFJTkVSLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIG11bHRpcGxlIGl0ZW1zIGNhbiBiZSBleHBhbmRlZCB3aXRoaW4gdGhlIGNvbnRhaW5lci5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbXVsdGlwbGUgPSB0aGlzLnBhcmVudENvbnRhaW5lcj8ubXVsdGlwbGUgPz8gZmFsc2U7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucGFyZW50SXRlbT8uYWRkQ2hpbGQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5wYXJlbnRJdGVtPy5yZW1vdmVDaGlsZCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsYXBzZXMgYWxsIHRoZSBleHBhbmRlZCBpdGVtcyB3aXRoaW4gdGhlIGV4cGFuZGFibGUgY29udGFpbmVyLlxuICAgKi9cbiAgcHVibGljIGNvbGxhcHNlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWRJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmNvbGxhcHNlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbGxhcHNlcyB0aGUgc3BlY2lmaWVkIGl0ZW0uXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtIC0gVGhlIGl0ZW0gdG8gY29sbGFwc2UuXG4gICAqL1xuICBwdWJsaWMgY29sbGFwc2UoaXRlbTogRXhwYW5kYWJsZUl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkSXRlbXMuZGVsZXRlKGl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cGFuZHMgdGhlIHNwZWNpZmllZCBpdGVtLlxuICAgKiBJZiBgbXVsdGlwbGVgIGlzIHNldCB0byBgZmFsc2VgLCBpdCBjb2xsYXBzZXMgYWxsIG90aGVyIGl0ZW1zIGJlZm9yZSBleHBhbmRpbmcgdGhlIHNwZWNpZmllZCBpdGVtLlxuICAgKiBAcGFyYW0gaXRlbSAtIFRoZSBpdGVtIHRvIGV4cGFuZC5cbiAgICovXG4gIHB1YmxpYyBleHBhbmQoaXRlbTogRXhwYW5kYWJsZUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuY29sbGFwc2VBbGwoKTtcbiAgICB9XG4gICAgdGhpcy5leHBhbmRlZEl0ZW1zLmFkZChpdGVtKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBleHBhbnNpb24gc3RhdGUgb2YgdGhlIHNwZWNpZmllZCBpdGVtLlxuICAgKiBJZiBgZm9yY2VTdGF0ZWAgaXMgcHJvdmlkZWQsIGl0IHdpbGwgc2V0IHRoZSBleHBhbnNpb24gc3RhdGUgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS5cbiAgICogSWYgYGZvcmNlU3RhdGVgIGlzIG5vdCBwcm92aWRlZCwgaXQgd2lsbCB0b2dnbGUgdGhlIGV4cGFuc2lvbiBzdGF0ZSBvZiB0aGUgaXRlbS5cbiAgICpcbiAgICogQHBhcmFtIGl0ZW0gLSBUaGUgaXRlbSB0byB0b2dnbGUgdGhlIGV4cGFuc2lvbiBzdGF0ZSBmb3IuXG4gICAqIEBwYXJhbSBmb3JjZVN0YXRlIC0gT3B0aW9uYWwuIFRoZSBkZXNpcmVkIGV4cGFuc2lvbiBzdGF0ZSB0byBzZXQgZm9yIHRoZSBpdGVtLlxuICAgKi9cbiAgcHVibGljIHRvZ2dsZShpdGVtOiBFeHBhbmRhYmxlSXRlbSwgZm9yY2VTdGF0ZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBzaG91bGRFeHBhbmQgPSBmb3JjZVN0YXRlID8/ICF0aGlzLmlzRXhwYW5kZWQoaXRlbSk7XG4gICAgaWYgKHNob3VsZEV4cGFuZCkge1xuICAgICAgdGhpcy5leHBhbmQoaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29sbGFwc2UoaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGl0ZW0gaXMgZXhwYW5kZWQuXG4gICAqIEBwYXJhbSBpdGVtIC0gVGhlIGl0ZW0gdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaXRlbSBpcyBleHBhbmRlZCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgaXNFeHBhbmRlZChpdGVtOiBFeHBhbmRhYmxlSXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV4cGFuZGVkSXRlbXMuaGFzKGl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGVyZSBpcyBhbnkgZXhwYW5kZWQgaXRlbS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGV4cGFuZGVkIGl0ZW0sIGZhbHNlIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBoYXNFeHBhbmRlZEl0ZW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRJdGVtcy5zaXplID4gMDtcbiAgfVxufVxuIl19