@odx/angular 1.0.0-rc.9 → 1.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 (597) hide show
  1. package/cdk/a11y/lib/directives/interactive.directive.d.ts +2 -2
  2. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +1 -2
  3. package/cdk/active-indicator/lib/models/active-indicator-direction.d.ts +1 -1
  4. package/cdk/active-indicator/lib/models/active-indicator-position.d.ts +1 -1
  5. package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +3 -1
  6. package/cdk/connected-overlay/lib/connected-overlay.component.d.ts +2 -2
  7. package/cdk/connected-overlay/lib/helpers/index.d.ts +0 -2
  8. package/cdk/connected-overlay/lib/models/connected-overlay-options.d.ts +3 -2
  9. package/cdk/custom-form-control/lib/custom-form-control.d.ts +5 -1
  10. package/cdk/dynamic-view/lib/facade/dynamic-content.d.ts +3 -3
  11. package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +1 -0
  12. package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +2 -1
  13. package/components/action-group/action-group.component.d.ts +1 -1
  14. package/components/area-header/area-header.component.d.ts +1 -1
  15. package/components/area-header/models/area-header-size.d.ts +1 -1
  16. package/components/avatar/lib/avatar.component.d.ts +3 -2
  17. package/components/avatar/lib/models/avatar-size.d.ts +1 -1
  18. package/components/avatar/lib/models/avatar-variant.d.ts +5 -0
  19. package/components/avatar/lib/models/index.d.ts +1 -0
  20. package/components/badge/lib/badge.component.d.ts +7 -17
  21. package/components/badge/lib/badge.directive.d.ts +16 -12
  22. package/components/badge/lib/models/badge-variant.d.ts +1 -1
  23. package/components/badge/lib/models/index.d.ts +0 -1
  24. package/components/bar/lib/models/bar-button-variant.d.ts +1 -1
  25. package/components/button/index.d.ts +1 -0
  26. package/components/button/lib/directives/index.d.ts +1 -0
  27. package/components/button/lib/directives/responsive-button.directive.d.ts +6 -0
  28. package/components/button/lib/models/button-size.d.ts +1 -1
  29. package/components/button/lib/models/button-variant.d.ts +1 -1
  30. package/components/card/README.md +3 -0
  31. package/components/card/index.d.ts +5 -0
  32. package/components/card/lib/card.component.d.ts +20 -0
  33. package/components/card/lib/card.module.d.ts +16 -0
  34. package/components/card/lib/components/card-footer/card-footer.component.d.ts +5 -0
  35. package/components/card/lib/components/index.d.ts +2 -0
  36. package/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.d.ts +5 -0
  37. package/components/card/lib/directives/card-content.directive.d.ts +5 -0
  38. package/components/card/lib/directives/card-title.directive.d.ts +5 -0
  39. package/components/card/lib/directives/index.d.ts +2 -0
  40. package/components/card/lib/models/card-variant.d.ts +6 -0
  41. package/components/card/lib/models/index.d.ts +1 -0
  42. package/components/chip/lib/models/chip-size.d.ts +1 -1
  43. package/components/chip/lib/models/chip-variant.d.ts +1 -1
  44. package/components/circular-progress/lib/circular-progress.component.d.ts +2 -1
  45. package/components/circular-progress/lib/models/circular-progress-size.d.ts +1 -1
  46. package/components/content-box/lib/content-box.module.d.ts +2 -2
  47. package/components/content-box/lib/directives/index.d.ts +2 -2
  48. package/components/dropdown/lib/dropdown.directive.d.ts +3 -2
  49. package/components/dropdown/lib/models/dropdown-options.d.ts +1 -1
  50. package/components/form-field/index.d.ts +1 -0
  51. package/components/form-field/lib/form-field.component.d.ts +8 -3
  52. package/components/form-field/lib/form-field.config.d.ts +3 -2
  53. package/components/form-field/lib/form-field.module.d.ts +0 -4
  54. package/components/form-field/lib/models/form-field-error-resolver.d.ts +1 -1
  55. package/components/form-field/lib/models/form-field-error.d.ts +1 -0
  56. package/components/form-field/lib/models/form-field-variant.d.ts +5 -0
  57. package/components/form-field/lib/models/index.d.ts +1 -0
  58. package/components/form-field/lib/services/form-field-error.service.d.ts +1 -0
  59. package/components/header/lib/directives/header-avatar.directive.d.ts +5 -2
  60. package/components/header/lib/header.component.d.ts +1 -1
  61. package/components/icon/index.d.ts +1 -0
  62. package/components/icon/lib/icon.component.d.ts +3 -5
  63. package/components/icon/lib/icon.config.d.ts +4 -0
  64. package/components/icon/lib/models/icon-size.d.ts +1 -1
  65. package/components/inline-message/lib/models/inline-message-variant.d.ts +1 -1
  66. package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +14 -0
  67. package/components/list/lib/components/index.d.ts +1 -0
  68. package/components/list/lib/list.component.d.ts +4 -2
  69. package/components/list/lib/list.module.d.ts +3 -2
  70. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +3 -1
  71. package/components/logo/models/logo-size.d.ts +1 -1
  72. package/components/logo/models/logo-variant.d.ts +1 -1
  73. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +2 -0
  74. package/components/mainfilter-group/README.md +3 -0
  75. package/components/mainfilter-group/index.d.ts +1 -0
  76. package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +6 -0
  77. package/components/menu/lib/directives/menu-item.directive.d.ts +1 -2
  78. package/components/menu/lib/menu.component.d.ts +4 -1
  79. package/components/menu/lib/menu.directive.d.ts +5 -4
  80. package/components/modal/index.d.ts +1 -1
  81. package/components/modal/lib/modal.config.d.ts +2 -2
  82. package/components/modal/lib/modal.module.d.ts +0 -4
  83. package/components/modal/lib/modal.service.d.ts +7 -3
  84. package/components/modal/lib/models/basic-modal-options.d.ts +1 -1
  85. package/components/modal/lib/models/modal-hero-variant.d.ts +1 -1
  86. package/components/modal/lib/models/modal-options.d.ts +2 -1
  87. package/components/modal/lib/models/modal-ref.d.ts +6 -4
  88. package/components/modal/lib/models/modal-size.d.ts +2 -1
  89. package/components/modal/lib/models/modal-type.d.ts +1 -1
  90. package/components/modal/lib/models/modal-variant.d.ts +1 -1
  91. package/components/navigation-back/README.md +3 -0
  92. package/components/navigation-back/index.d.ts +1 -0
  93. package/components/navigation-back/lib/navigation-back.component.d.ts +6 -0
  94. package/components/select/lib/abstract/select-control-option.d.ts +2 -0
  95. package/components/select/lib/abstract/select-control.d.ts +1 -0
  96. package/components/select/lib/components/option/option.component.d.ts +6 -2
  97. package/components/select/lib/select.component.d.ts +10 -5
  98. package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +5 -2
  99. package/components/toast/lib/components/toast-item/toast-item.component.d.ts +1 -1
  100. package/components/toast/lib/models/toast-variant.d.ts +1 -1
  101. package/components/toast/lib/toast.config.d.ts +2 -2
  102. package/components/toast/lib/toast.module.d.ts +0 -4
  103. package/components/toast/lib/toast.service.d.ts +1 -1
  104. package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +4 -1
  105. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +8 -3
  106. package/components/tooltip/lib/models/tooltip-size.d.ts +1 -1
  107. package/components/tooltip/lib/models/tooltip-trigger.d.ts +1 -1
  108. package/components/tooltip/lib/tooltip.component.d.ts +3 -2
  109. package/components/tooltip/lib/tooltip.directive.d.ts +3 -3
  110. package/esm2020/animations/lib/expand.mjs +3 -3
  111. package/esm2020/cdk/a11y/lib/a11y.module.mjs +4 -4
  112. package/esm2020/cdk/a11y/lib/directives/interactive.directive.mjs +4 -4
  113. package/esm2020/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +5 -7
  114. package/esm2020/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +3 -3
  115. package/esm2020/cdk/active-indicator/lib/active-indicator.directive.mjs +3 -3
  116. package/esm2020/cdk/checkbox-control/lib/checkbox-control.directive.mjs +16 -12
  117. package/esm2020/cdk/connected-overlay/lib/connected-overlay.component.mjs +8 -8
  118. package/esm2020/cdk/connected-overlay/lib/connected-overlay.service.mjs +5 -5
  119. package/esm2020/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +4 -6
  120. package/esm2020/cdk/connected-overlay/lib/helpers/index.mjs +1 -3
  121. package/esm2020/cdk/connected-overlay/lib/models/connected-overlay-options.mjs +3 -2
  122. package/esm2020/cdk/custom-form-control/lib/control.directive.mjs +3 -3
  123. package/esm2020/cdk/custom-form-control/lib/custom-form-control.mjs +44 -20
  124. package/esm2020/cdk/dynamic-view/lib/dynamic-view.component.mjs +3 -3
  125. package/esm2020/cdk/dynamic-view/lib/dynamic-view.directive.mjs +7 -5
  126. package/esm2020/cdk/dynamic-view/lib/dynamic-view.service.mjs +3 -3
  127. package/esm2020/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +15 -4
  128. package/esm2020/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +2 -2
  129. package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +3 -3
  130. package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +3 -3
  131. package/esm2020/cdk/expandable/lib/expandable.module.mjs +4 -4
  132. package/esm2020/cdk/radio-group-control/lib/radio-control.directive.mjs +10 -10
  133. package/esm2020/cdk/radio-group-control/lib/radio-group-control.directive.mjs +14 -10
  134. package/esm2020/cdk/radio-group-control/lib/radio-group-control.module.mjs +4 -4
  135. package/esm2020/components/accordion/lib/accordion.component.mjs +6 -6
  136. package/esm2020/components/accordion/lib/accordion.module.mjs +4 -4
  137. package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +5 -5
  138. package/esm2020/components/accordion/lib/directives/accordion-item-title.mjs +3 -3
  139. package/esm2020/components/action-group/action-group.component.mjs +5 -5
  140. package/esm2020/components/area-header/area-header.component.mjs +7 -6
  141. package/esm2020/components/area-header/area-header.module.mjs +4 -4
  142. package/esm2020/components/area-header/directives/area-header-content.directive.mjs +3 -3
  143. package/esm2020/components/area-header/directives/area-header-subtitle.directive.mjs +3 -3
  144. package/esm2020/components/avatar/lib/avatar.component.mjs +14 -8
  145. package/esm2020/components/avatar/lib/models/avatar-variant.mjs +5 -0
  146. package/esm2020/components/avatar/lib/models/index.mjs +2 -1
  147. package/esm2020/components/badge/lib/badge.component.mjs +18 -65
  148. package/esm2020/components/badge/lib/badge.directive.mjs +50 -25
  149. package/esm2020/components/badge/lib/models/index.mjs +1 -2
  150. package/esm2020/components/bar/lib/bar.component.mjs +3 -3
  151. package/esm2020/components/bar/lib/bar.module.mjs +4 -4
  152. package/esm2020/components/bar/lib/directives/bar-button.directive.mjs +6 -7
  153. package/esm2020/components/bar/lib/directives/bar-label.directive.mjs +3 -3
  154. package/esm2020/components/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  155. package/esm2020/components/button/index.mjs +2 -1
  156. package/esm2020/components/button/lib/button.component.mjs +8 -10
  157. package/esm2020/components/button/lib/directives/index.mjs +2 -0
  158. package/esm2020/components/button/lib/directives/responsive-button.directive.mjs +24 -0
  159. package/esm2020/components/button-group/lib/button-group.component.mjs +3 -3
  160. package/esm2020/components/card/index.mjs +6 -0
  161. package/esm2020/components/card/lib/card.component.mjs +67 -0
  162. package/esm2020/components/card/lib/card.module.mjs +53 -0
  163. package/esm2020/components/card/lib/components/card-footer/card-footer.component.mjs +13 -0
  164. package/esm2020/components/card/lib/components/index.mjs +3 -0
  165. package/esm2020/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.mjs +13 -0
  166. package/esm2020/components/card/lib/directives/card-content.directive.mjs +17 -0
  167. package/esm2020/components/card/lib/directives/card-title.directive.mjs +17 -0
  168. package/esm2020/components/card/lib/directives/index.mjs +3 -0
  169. package/esm2020/components/card/lib/models/card-variant.mjs +6 -0
  170. package/esm2020/components/card/lib/models/index.mjs +2 -0
  171. package/esm2020/components/card/odx-angular-components-card.mjs +5 -0
  172. package/esm2020/components/checkbox/lib/checkbox.component.mjs +5 -5
  173. package/esm2020/components/checkbox/lib/checkbox.module.mjs +4 -4
  174. package/esm2020/components/checkbox/lib/checkbox.validator.mjs +3 -3
  175. package/esm2020/components/chip/lib/chip.component.mjs +5 -5
  176. package/esm2020/components/circular-progress/lib/circular-progress.component.mjs +8 -6
  177. package/esm2020/components/content-box/lib/content-box.component.mjs +3 -3
  178. package/esm2020/components/content-box/lib/content-box.module.mjs +7 -7
  179. package/esm2020/components/content-box/lib/directives/{content-box-footer-directive.mjs → content-box-footer.directive.mjs} +4 -4
  180. package/esm2020/components/content-box/lib/directives/{content-box-header-directive.mjs → content-box-header.directive.mjs} +4 -4
  181. package/esm2020/components/content-box/lib/directives/index.mjs +3 -3
  182. package/esm2020/components/dropdown/lib/dropdown.component.mjs +3 -3
  183. package/esm2020/components/dropdown/lib/dropdown.directive.mjs +10 -7
  184. package/esm2020/components/dropdown/lib/dropdown.module.mjs +4 -4
  185. package/esm2020/components/dropdown/lib/models/dropdown-options.mjs +3 -2
  186. package/esm2020/components/form-field/index.mjs +2 -1
  187. package/esm2020/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +3 -3
  188. package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +3 -3
  189. package/esm2020/components/form-field/lib/directives/form-field-control.directive.mjs +6 -6
  190. package/esm2020/components/form-field/lib/directives/form-field-error.directive.mjs +3 -3
  191. package/esm2020/components/form-field/lib/directives/form-field-hint.directive.mjs +3 -3
  192. package/esm2020/components/form-field/lib/directives/form-field-label.directive.mjs +3 -3
  193. package/esm2020/components/form-field/lib/directives/form.directive.mjs +3 -3
  194. package/esm2020/components/form-field/lib/form-field.component.mjs +32 -15
  195. package/esm2020/components/form-field/lib/form-field.config.mjs +4 -3
  196. package/esm2020/components/form-field/lib/form-field.module.mjs +5 -13
  197. package/esm2020/components/form-field/lib/form-field.service.mjs +3 -3
  198. package/esm2020/components/form-field/lib/models/form-field-error.mjs +1 -1
  199. package/esm2020/components/form-field/lib/models/form-field-variant.mjs +5 -0
  200. package/esm2020/components/form-field/lib/models/index.mjs +2 -1
  201. package/esm2020/components/form-field/lib/services/form-field-error.service.mjs +16 -16
  202. package/esm2020/components/header/lib/directives/header-avatar.directive.mjs +13 -6
  203. package/esm2020/components/header/lib/directives/header-title.directive.mjs +3 -3
  204. package/esm2020/components/header/lib/header.component.mjs +5 -5
  205. package/esm2020/components/header/lib/header.module.mjs +4 -4
  206. package/esm2020/components/icon/index.mjs +2 -1
  207. package/esm2020/components/icon/lib/icon.component.mjs +12 -21
  208. package/esm2020/components/icon/lib/icon.config.mjs +5 -0
  209. package/esm2020/components/inline-message/lib/inline-message.component.mjs +8 -9
  210. package/esm2020/components/link/link.directive.mjs +3 -3
  211. package/esm2020/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +49 -0
  212. package/esm2020/components/list/lib/components/index.mjs +2 -1
  213. package/esm2020/components/list/lib/components/list-item/list-item.component.mjs +3 -3
  214. package/esm2020/components/list/lib/list.component.mjs +22 -11
  215. package/esm2020/components/list/lib/list.module.mjs +7 -7
  216. package/esm2020/components/loading-spinner/lib/loading-spinner.component.mjs +3 -3
  217. package/esm2020/components/loading-spinner/lib/loading-spinner.directive.mjs +13 -6
  218. package/esm2020/components/loading-spinner/lib/loading-spinner.module.mjs +4 -4
  219. package/esm2020/components/logo/logo.directive.mjs +8 -6
  220. package/esm2020/components/main-menu/lib/directives/main-menu-button.directive.mjs +3 -3
  221. package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +13 -5
  222. package/esm2020/components/main-menu/lib/main-menu.component.mjs +5 -5
  223. package/esm2020/components/main-menu/lib/main-menu.module.mjs +4 -4
  224. package/esm2020/components/main-menu/lib/main-menu.service.mjs +3 -3
  225. package/esm2020/components/mainfilter-group/index.mjs +2 -0
  226. package/esm2020/components/mainfilter-group/lib/mainfilter-group.component.mjs +21 -0
  227. package/esm2020/components/mainfilter-group/odx-angular-components-mainfilter-group.mjs +5 -0
  228. package/esm2020/components/menu/lib/directives/menu-item.directive.mjs +6 -8
  229. package/esm2020/components/menu/lib/menu.component.mjs +22 -11
  230. package/esm2020/components/menu/lib/menu.directive.mjs +11 -4
  231. package/esm2020/components/menu/lib/menu.module.mjs +4 -4
  232. package/esm2020/components/modal/index.mjs +2 -2
  233. package/esm2020/components/modal/lib/components/basic-modal/basic-modal.component.mjs +3 -3
  234. package/esm2020/components/modal/lib/components/modal-footer/modal-footer.component.mjs +3 -3
  235. package/esm2020/components/modal/lib/components/modal-header/modal-header.component.mjs +5 -5
  236. package/esm2020/components/modal/lib/components/modal-hero/modal-hero.component.mjs +5 -5
  237. package/esm2020/components/modal/lib/directives/modal-close.directive.mjs +3 -3
  238. package/esm2020/components/modal/lib/directives/modal-content.directive.mjs +3 -3
  239. package/esm2020/components/modal/lib/directives/modal-dismiss.directive.mjs +3 -3
  240. package/esm2020/components/modal/lib/modal.component.mjs +5 -5
  241. package/esm2020/components/modal/lib/modal.config.mjs +4 -3
  242. package/esm2020/components/modal/lib/modal.directive.mjs +3 -3
  243. package/esm2020/components/modal/lib/modal.module.mjs +5 -13
  244. package/esm2020/components/modal/lib/modal.service.mjs +37 -26
  245. package/esm2020/components/modal/lib/models/modal-options.mjs +1 -1
  246. package/esm2020/components/modal/lib/models/modal-ref.mjs +20 -12
  247. package/esm2020/components/modal/lib/models/modal-size.mjs +2 -1
  248. package/esm2020/components/navigation-back/index.mjs +2 -0
  249. package/esm2020/components/navigation-back/lib/navigation-back.component.mjs +22 -0
  250. package/esm2020/components/navigation-back/odx-angular-components-navigation-back.mjs +5 -0
  251. package/esm2020/components/progress/lib/progress.component.mjs +3 -3
  252. package/esm2020/components/radio-group/lib/components/radio-button/radio-button.component.mjs +3 -3
  253. package/esm2020/components/radio-group/lib/radio-group.component.mjs +7 -7
  254. package/esm2020/components/radio-group/lib/radio-group.module.mjs +4 -4
  255. package/esm2020/components/rail-navigation/lib/components/rail-navigation-item.component.mjs +5 -5
  256. package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +3 -3
  257. package/esm2020/components/rail-navigation/lib/rail-navigation.module.mjs +4 -4
  258. package/esm2020/components/select/lib/abstract/select-control-option.mjs +1 -1
  259. package/esm2020/components/select/lib/abstract/select-control.mjs +1 -1
  260. package/esm2020/components/select/lib/components/option/option.component.mjs +37 -20
  261. package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +3 -3
  262. package/esm2020/components/select/lib/pipes/select-search-filter.pipe.mjs +3 -3
  263. package/esm2020/components/select/lib/select.component.mjs +82 -35
  264. package/esm2020/components/select/lib/select.module.mjs +4 -4
  265. package/esm2020/components/slider/lib/slider.directive.mjs +3 -3
  266. package/esm2020/components/spinbox/lib/spinbox.component.mjs +8 -8
  267. package/esm2020/components/switch/lib/switch.component.mjs +5 -5
  268. package/esm2020/components/switch/lib/switch.module.mjs +4 -4
  269. package/esm2020/components/switch/lib/switch.validator.mjs +3 -3
  270. package/esm2020/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +15 -6
  271. package/esm2020/components/tab-bar/lib/tab-bar.component.mjs +7 -7
  272. package/esm2020/components/tab-bar/lib/tab-bar.module.mjs +4 -4
  273. package/esm2020/components/toast/lib/components/toast-container/toast-container.component.mjs +3 -3
  274. package/esm2020/components/toast/lib/components/toast-item/toast-item.component.mjs +9 -8
  275. package/esm2020/components/toast/lib/toast.config.mjs +3 -3
  276. package/esm2020/components/toast/lib/toast.module.mjs +5 -13
  277. package/esm2020/components/toast/lib/toast.service.mjs +7 -7
  278. package/esm2020/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +13 -7
  279. package/esm2020/components/toggle-button-group/lib/toggle-button-group.component.mjs +23 -12
  280. package/esm2020/components/toggle-button-group/lib/toggle-button-group.module.mjs +4 -4
  281. package/esm2020/components/tooltip/lib/tooltip.component.mjs +4 -4
  282. package/esm2020/components/tooltip/lib/tooltip.directive.mjs +11 -12
  283. package/esm2020/internal/decorators/css-component.mjs +3 -8
  284. package/esm2020/internal/decorators/css-modifier.mjs +21 -18
  285. package/esm2020/internal/helpers/decorator-property-name.mjs +4 -0
  286. package/esm2020/internal/helpers/deepmerge.mjs +6 -0
  287. package/esm2020/internal/helpers/index.mjs +3 -1
  288. package/esm2020/internal/helpers/with-mutiple-descriptors.mjs +22 -13
  289. package/esm2020/lib/controllers/controller.mjs +3 -3
  290. package/esm2020/lib/controllers/disabled.controller.mjs +26 -20
  291. package/esm2020/lib/controllers/readonly.controller.mjs +30 -21
  292. package/esm2020/lib/core.module.mjs +9 -8
  293. package/esm2020/lib/directives/click-outside.directive.mjs +29 -17
  294. package/esm2020/lib/directives/delegate-focus.directive.mjs +40 -0
  295. package/esm2020/lib/directives/index.mjs +2 -2
  296. package/esm2020/lib/directives/with-disabled-state.directive.mjs +9 -9
  297. package/esm2020/lib/directives/with-tabindex.directive.mjs +3 -3
  298. package/esm2020/lib/services/window-ref.mjs +13 -6
  299. package/esm2020/theming/index.mjs +5 -0
  300. package/esm2020/theming/lib/helpers/index.mjs +4 -0
  301. package/esm2020/theming/lib/helpers/prefers-dark-theme.mjs +4 -0
  302. package/esm2020/theming/lib/helpers/resolve-theme.mjs +5 -0
  303. package/esm2020/theming/lib/helpers/theme-storage.mjs +19 -0
  304. package/esm2020/theming/lib/models/index.mjs +2 -0
  305. package/esm2020/theming/lib/models/theme.mjs +6 -0
  306. package/esm2020/theming/lib/theming.config.mjs +21 -0
  307. package/esm2020/theming/lib/theming.service.mjs +42 -0
  308. package/esm2020/theming/odx-angular-theming.mjs +5 -0
  309. package/esm2020/utils/lib/decorators/transform.mjs +3 -3
  310. package/esm2020/utils/lib/helpers/build-url.mjs +4 -0
  311. package/esm2020/utils/lib/helpers/dom.mjs +2 -2
  312. package/esm2020/utils/lib/helpers/event-manager.mjs +3 -3
  313. package/esm2020/utils/lib/helpers/get-axis.mjs +14 -0
  314. package/esm2020/utils/lib/helpers/get-opposite-side.mjs +15 -0
  315. package/esm2020/utils/lib/helpers/get-side.mjs +4 -0
  316. package/esm2020/utils/lib/helpers/index.mjs +6 -2
  317. package/esm2020/utils/lib/helpers/provide-config.mjs +25 -0
  318. package/esm2020/utils/lib/helpers/queue.mjs +36 -11
  319. package/esm2020/utils/lib/types/axis.mjs +5 -0
  320. package/esm2020/utils/lib/types/index.mjs +4 -1
  321. package/esm2020/utils/lib/types/position.mjs +15 -0
  322. package/esm2020/utils/lib/types/side.mjs +7 -0
  323. package/fesm2015/odx-angular-animations.mjs +2 -2
  324. package/fesm2015/odx-angular-animations.mjs.map +1 -1
  325. package/fesm2015/odx-angular-cdk-a11y.mjs +13 -14
  326. package/fesm2015/odx-angular-cdk-a11y.mjs.map +1 -1
  327. package/fesm2015/odx-angular-cdk-active-indicator.mjs +3 -3
  328. package/fesm2015/odx-angular-cdk-checkbox-control.mjs +16 -12
  329. package/fesm2015/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  330. package/fesm2015/odx-angular-cdk-connected-overlay.mjs +13 -31
  331. package/fesm2015/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  332. package/fesm2015/odx-angular-cdk-custom-form-control.mjs +47 -24
  333. package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  334. package/fesm2015/odx-angular-cdk-dynamic-view.mjs +26 -12
  335. package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  336. package/fesm2015/odx-angular-cdk-expandable.mjs +10 -10
  337. package/fesm2015/odx-angular-cdk-radio-group-control.mjs +26 -23
  338. package/fesm2015/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  339. package/fesm2015/odx-angular-components-accordion.mjs +16 -16
  340. package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
  341. package/fesm2015/odx-angular-components-action-group.mjs +4 -4
  342. package/fesm2015/odx-angular-components-action-group.mjs.map +1 -1
  343. package/fesm2015/odx-angular-components-area-header.mjs +16 -15
  344. package/fesm2015/odx-angular-components-area-header.mjs.map +1 -1
  345. package/fesm2015/odx-angular-components-avatar.mjs +18 -7
  346. package/fesm2015/odx-angular-components-avatar.mjs.map +1 -1
  347. package/fesm2015/odx-angular-components-badge.mjs +63 -97
  348. package/fesm2015/odx-angular-components-badge.mjs.map +1 -1
  349. package/fesm2015/odx-angular-components-bar.mjs +15 -16
  350. package/fesm2015/odx-angular-components-bar.mjs.map +1 -1
  351. package/fesm2015/odx-angular-components-breadcrumbs.mjs +3 -3
  352. package/fesm2015/odx-angular-components-button-group.mjs +3 -3
  353. package/fesm2015/odx-angular-components-button.mjs +31 -11
  354. package/fesm2015/odx-angular-components-button.mjs.map +1 -1
  355. package/fesm2015/odx-angular-components-card.mjs +174 -0
  356. package/fesm2015/odx-angular-components-card.mjs.map +1 -0
  357. package/fesm2015/odx-angular-components-checkbox.mjs +11 -11
  358. package/fesm2015/odx-angular-components-checkbox.mjs.map +1 -1
  359. package/fesm2015/odx-angular-components-chip.mjs +4 -4
  360. package/fesm2015/odx-angular-components-chip.mjs.map +1 -1
  361. package/fesm2015/odx-angular-components-circular-progress.mjs +7 -5
  362. package/fesm2015/odx-angular-components-circular-progress.mjs.map +1 -1
  363. package/fesm2015/odx-angular-components-content-box.mjs +13 -13
  364. package/fesm2015/odx-angular-components-content-box.mjs.map +1 -1
  365. package/fesm2015/odx-angular-components-dropdown.mjs +18 -14
  366. package/fesm2015/odx-angular-components-dropdown.mjs.map +1 -1
  367. package/fesm2015/odx-angular-components-form-field.mjs +80 -64
  368. package/fesm2015/odx-angular-components-form-field.mjs.map +1 -1
  369. package/fesm2015/odx-angular-components-header.mjs +23 -17
  370. package/fesm2015/odx-angular-components-header.mjs.map +1 -1
  371. package/fesm2015/odx-angular-components-icon.mjs +16 -22
  372. package/fesm2015/odx-angular-components-icon.mjs.map +1 -1
  373. package/fesm2015/odx-angular-components-inline-message.mjs +7 -8
  374. package/fesm2015/odx-angular-components-inline-message.mjs.map +1 -1
  375. package/fesm2015/odx-angular-components-link.mjs +3 -3
  376. package/fesm2015/odx-angular-components-list.mjs +70 -20
  377. package/fesm2015/odx-angular-components-list.mjs.map +1 -1
  378. package/fesm2015/odx-angular-components-loading-spinner.mjs +21 -13
  379. package/fesm2015/odx-angular-components-loading-spinner.mjs.map +1 -1
  380. package/fesm2015/odx-angular-components-logo.mjs +7 -5
  381. package/fesm2015/odx-angular-components-logo.mjs.map +1 -1
  382. package/fesm2015/odx-angular-components-main-menu.mjs +57 -49
  383. package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
  384. package/fesm2015/odx-angular-components-mainfilter-group.mjs +27 -0
  385. package/fesm2015/odx-angular-components-mainfilter-group.mjs.map +1 -0
  386. package/fesm2015/odx-angular-components-menu.mjs +41 -24
  387. package/fesm2015/odx-angular-components-menu.mjs.map +1 -1
  388. package/fesm2015/odx-angular-components-modal.mjs +91 -118
  389. package/fesm2015/odx-angular-components-modal.mjs.map +1 -1
  390. package/fesm2015/odx-angular-components-navigation-back.mjs +28 -0
  391. package/fesm2015/odx-angular-components-navigation-back.mjs.map +1 -0
  392. package/fesm2015/odx-angular-components-progress.mjs +3 -3
  393. package/fesm2015/odx-angular-components-radio-group.mjs +13 -13
  394. package/fesm2015/odx-angular-components-radio-group.mjs.map +1 -1
  395. package/fesm2015/odx-angular-components-rail-navigation.mjs +11 -11
  396. package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -1
  397. package/fesm2015/odx-angular-components-select.mjs +126 -68
  398. package/fesm2015/odx-angular-components-select.mjs.map +1 -1
  399. package/fesm2015/odx-angular-components-slider.mjs +3 -3
  400. package/fesm2015/odx-angular-components-spinbox.mjs +8 -8
  401. package/fesm2015/odx-angular-components-spinbox.mjs.map +1 -1
  402. package/fesm2015/odx-angular-components-switch.mjs +11 -11
  403. package/fesm2015/odx-angular-components-switch.mjs.map +1 -1
  404. package/fesm2015/odx-angular-components-tab-bar.mjs +25 -16
  405. package/fesm2015/odx-angular-components-tab-bar.mjs.map +1 -1
  406. package/fesm2015/odx-angular-components-toast.mjs +23 -29
  407. package/fesm2015/odx-angular-components-toast.mjs.map +1 -1
  408. package/fesm2015/odx-angular-components-toggle-button-group.mjs +40 -20
  409. package/fesm2015/odx-angular-components-toggle-button-group.mjs.map +1 -1
  410. package/fesm2015/odx-angular-components-tooltip.mjs +13 -14
  411. package/fesm2015/odx-angular-components-tooltip.mjs.map +1 -1
  412. package/fesm2015/odx-angular-internal.mjs +69 -53
  413. package/fesm2015/odx-angular-internal.mjs.map +1 -1
  414. package/fesm2015/odx-angular-theming.mjs +99 -0
  415. package/fesm2015/odx-angular-theming.mjs.map +1 -0
  416. package/fesm2015/odx-angular-utils.mjs +119 -25
  417. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  418. package/fesm2015/odx-angular.mjs +147 -108
  419. package/fesm2015/odx-angular.mjs.map +1 -1
  420. package/fesm2020/odx-angular-animations.mjs +2 -2
  421. package/fesm2020/odx-angular-animations.mjs.map +1 -1
  422. package/fesm2020/odx-angular-cdk-a11y.mjs +13 -14
  423. package/fesm2020/odx-angular-cdk-a11y.mjs.map +1 -1
  424. package/fesm2020/odx-angular-cdk-active-indicator.mjs +3 -3
  425. package/fesm2020/odx-angular-cdk-checkbox-control.mjs +16 -12
  426. package/fesm2020/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  427. package/fesm2020/odx-angular-cdk-connected-overlay.mjs +13 -31
  428. package/fesm2020/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  429. package/fesm2020/odx-angular-cdk-custom-form-control.mjs +47 -24
  430. package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  431. package/fesm2020/odx-angular-cdk-dynamic-view.mjs +25 -12
  432. package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  433. package/fesm2020/odx-angular-cdk-expandable.mjs +10 -10
  434. package/fesm2020/odx-angular-cdk-radio-group-control.mjs +26 -23
  435. package/fesm2020/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  436. package/fesm2020/odx-angular-components-accordion.mjs +16 -16
  437. package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
  438. package/fesm2020/odx-angular-components-action-group.mjs +4 -4
  439. package/fesm2020/odx-angular-components-action-group.mjs.map +1 -1
  440. package/fesm2020/odx-angular-components-area-header.mjs +16 -15
  441. package/fesm2020/odx-angular-components-area-header.mjs.map +1 -1
  442. package/fesm2020/odx-angular-components-avatar.mjs +18 -7
  443. package/fesm2020/odx-angular-components-avatar.mjs.map +1 -1
  444. package/fesm2020/odx-angular-components-badge.mjs +60 -90
  445. package/fesm2020/odx-angular-components-badge.mjs.map +1 -1
  446. package/fesm2020/odx-angular-components-bar.mjs +15 -16
  447. package/fesm2020/odx-angular-components-bar.mjs.map +1 -1
  448. package/fesm2020/odx-angular-components-breadcrumbs.mjs +3 -3
  449. package/fesm2020/odx-angular-components-button-group.mjs +3 -3
  450. package/fesm2020/odx-angular-components-button.mjs +31 -11
  451. package/fesm2020/odx-angular-components-button.mjs.map +1 -1
  452. package/fesm2020/odx-angular-components-card.mjs +173 -0
  453. package/fesm2020/odx-angular-components-card.mjs.map +1 -0
  454. package/fesm2020/odx-angular-components-checkbox.mjs +11 -11
  455. package/fesm2020/odx-angular-components-checkbox.mjs.map +1 -1
  456. package/fesm2020/odx-angular-components-chip.mjs +4 -4
  457. package/fesm2020/odx-angular-components-chip.mjs.map +1 -1
  458. package/fesm2020/odx-angular-components-circular-progress.mjs +7 -5
  459. package/fesm2020/odx-angular-components-circular-progress.mjs.map +1 -1
  460. package/fesm2020/odx-angular-components-content-box.mjs +13 -13
  461. package/fesm2020/odx-angular-components-content-box.mjs.map +1 -1
  462. package/fesm2020/odx-angular-components-dropdown.mjs +18 -14
  463. package/fesm2020/odx-angular-components-dropdown.mjs.map +1 -1
  464. package/fesm2020/odx-angular-components-form-field.mjs +79 -64
  465. package/fesm2020/odx-angular-components-form-field.mjs.map +1 -1
  466. package/fesm2020/odx-angular-components-header.mjs +23 -17
  467. package/fesm2020/odx-angular-components-header.mjs.map +1 -1
  468. package/fesm2020/odx-angular-components-icon.mjs +16 -22
  469. package/fesm2020/odx-angular-components-icon.mjs.map +1 -1
  470. package/fesm2020/odx-angular-components-inline-message.mjs +7 -8
  471. package/fesm2020/odx-angular-components-inline-message.mjs.map +1 -1
  472. package/fesm2020/odx-angular-components-link.mjs +3 -3
  473. package/fesm2020/odx-angular-components-list.mjs +69 -20
  474. package/fesm2020/odx-angular-components-list.mjs.map +1 -1
  475. package/fesm2020/odx-angular-components-loading-spinner.mjs +20 -13
  476. package/fesm2020/odx-angular-components-loading-spinner.mjs.map +1 -1
  477. package/fesm2020/odx-angular-components-logo.mjs +7 -5
  478. package/fesm2020/odx-angular-components-logo.mjs.map +1 -1
  479. package/fesm2020/odx-angular-components-main-menu.mjs +56 -49
  480. package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
  481. package/fesm2020/odx-angular-components-mainfilter-group.mjs +27 -0
  482. package/fesm2020/odx-angular-components-mainfilter-group.mjs.map +1 -0
  483. package/fesm2020/odx-angular-components-menu.mjs +41 -24
  484. package/fesm2020/odx-angular-components-menu.mjs.map +1 -1
  485. package/fesm2020/odx-angular-components-modal.mjs +90 -116
  486. package/fesm2020/odx-angular-components-modal.mjs.map +1 -1
  487. package/fesm2020/odx-angular-components-navigation-back.mjs +28 -0
  488. package/fesm2020/odx-angular-components-navigation-back.mjs.map +1 -0
  489. package/fesm2020/odx-angular-components-progress.mjs +3 -3
  490. package/fesm2020/odx-angular-components-radio-group.mjs +13 -13
  491. package/fesm2020/odx-angular-components-radio-group.mjs.map +1 -1
  492. package/fesm2020/odx-angular-components-rail-navigation.mjs +11 -11
  493. package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -1
  494. package/fesm2020/odx-angular-components-select.mjs +126 -62
  495. package/fesm2020/odx-angular-components-select.mjs.map +1 -1
  496. package/fesm2020/odx-angular-components-slider.mjs +3 -3
  497. package/fesm2020/odx-angular-components-spinbox.mjs +7 -7
  498. package/fesm2020/odx-angular-components-spinbox.mjs.map +1 -1
  499. package/fesm2020/odx-angular-components-switch.mjs +11 -11
  500. package/fesm2020/odx-angular-components-switch.mjs.map +1 -1
  501. package/fesm2020/odx-angular-components-tab-bar.mjs +24 -16
  502. package/fesm2020/odx-angular-components-tab-bar.mjs.map +1 -1
  503. package/fesm2020/odx-angular-components-toast.mjs +23 -29
  504. package/fesm2020/odx-angular-components-toast.mjs.map +1 -1
  505. package/fesm2020/odx-angular-components-toggle-button-group.mjs +37 -20
  506. package/fesm2020/odx-angular-components-toggle-button-group.mjs.map +1 -1
  507. package/fesm2020/odx-angular-components-tooltip.mjs +13 -14
  508. package/fesm2020/odx-angular-components-tooltip.mjs.map +1 -1
  509. package/fesm2020/odx-angular-internal.mjs +67 -51
  510. package/fesm2020/odx-angular-internal.mjs.map +1 -1
  511. package/fesm2020/odx-angular-theming.mjs +96 -0
  512. package/fesm2020/odx-angular-theming.mjs.map +1 -0
  513. package/fesm2020/odx-angular-utils.mjs +115 -27
  514. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  515. package/fesm2020/odx-angular.mjs +142 -103
  516. package/fesm2020/odx-angular.mjs.map +1 -1
  517. package/internal/decorators/css-component.d.ts +1 -2
  518. package/internal/decorators/css-modifier.d.ts +0 -1
  519. package/internal/helpers/decorator-property-name.d.ts +1 -0
  520. package/internal/helpers/deepmerge.d.ts +10 -0
  521. package/internal/helpers/index.d.ts +2 -0
  522. package/internal/helpers/with-mutiple-descriptors.d.ts +1 -1
  523. package/lib/controllers/disabled.controller.d.ts +5 -2
  524. package/lib/controllers/readonly.controller.d.ts +1 -0
  525. package/lib/core.module.d.ts +3 -3
  526. package/lib/directives/click-outside.directive.d.ts +5 -4
  527. package/lib/directives/delegate-focus.directive.d.ts +11 -0
  528. package/lib/directives/index.d.ts +1 -1
  529. package/lib/services/window-ref.d.ts +3 -0
  530. package/lib/tokens/identity-matcher.d.ts +1 -1
  531. package/lib/tokens/string-search-handler.d.ts +1 -1
  532. package/lib/tokens/stringify.d.ts +1 -1
  533. package/package.json +37 -11
  534. package/theming/README.md +3 -0
  535. package/theming/index.d.ts +4 -0
  536. package/theming/lib/helpers/index.d.ts +3 -0
  537. package/theming/lib/helpers/prefers-dark-theme.d.ts +1 -0
  538. package/theming/lib/helpers/resolve-theme.d.ts +2 -0
  539. package/theming/lib/helpers/theme-storage.d.ts +4 -0
  540. package/theming/lib/models/index.d.ts +1 -0
  541. package/theming/lib/models/theme.d.ts +6 -0
  542. package/theming/lib/theming.config.d.ts +10 -0
  543. package/theming/lib/theming.service.d.ts +16 -0
  544. package/utils/lib/decorators/transform.d.ts +2 -2
  545. package/utils/lib/helpers/build-url.d.ts +1 -0
  546. package/utils/lib/helpers/get-axis.d.ts +2 -0
  547. package/utils/lib/helpers/get-opposite-side.d.ts +2 -0
  548. package/utils/lib/helpers/get-side.d.ts +2 -0
  549. package/utils/lib/helpers/index.d.ts +5 -1
  550. package/utils/lib/helpers/ng-changes.d.ts +1 -1
  551. package/utils/lib/helpers/provide-config.d.ts +12 -0
  552. package/utils/lib/helpers/queue.d.ts +13 -2
  553. package/utils/lib/types/axis.d.ts +5 -0
  554. package/utils/lib/types/get-properties.d.ts +2 -2
  555. package/utils/lib/types/index.d.ts +3 -0
  556. package/utils/lib/types/position.d.ts +15 -0
  557. package/utils/lib/types/side.d.ts +7 -0
  558. package/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.d.ts +0 -2
  559. package/cdk/connected-overlay/lib/helpers/get-overlay-side.d.ts +0 -2
  560. package/components/badge/lib/badge.config.d.ts +0 -3
  561. package/components/badge/lib/facade/badge-host.d.ts +0 -3
  562. package/components/badge/lib/facade/index.d.ts +0 -1
  563. package/components/badge/lib/models/badge-position.d.ts +0 -5
  564. package/components/launch-tile/README.md +0 -3
  565. package/components/launch-tile/index.d.ts +0 -3
  566. package/components/launch-tile/lib/components/index.d.ts +0 -2
  567. package/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.d.ts +0 -5
  568. package/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.d.ts +0 -5
  569. package/components/launch-tile/lib/launch-tile.component.d.ts +0 -13
  570. package/components/launch-tile/lib/launch-tile.module.d.ts +0 -14
  571. package/components/modal/lib/services/index.d.ts +0 -1
  572. package/components/modal/lib/services/open-modal-manager.service.d.ts +0 -15
  573. package/esm2020/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.mjs +0 -13
  574. package/esm2020/cdk/connected-overlay/lib/helpers/get-overlay-side.mjs +0 -4
  575. package/esm2020/components/badge/lib/badge.config.mjs +0 -3
  576. package/esm2020/components/badge/lib/facade/badge-host.mjs +0 -2
  577. package/esm2020/components/badge/lib/facade/index.mjs +0 -2
  578. package/esm2020/components/badge/lib/models/badge-position.mjs +0 -5
  579. package/esm2020/components/launch-tile/index.mjs +0 -4
  580. package/esm2020/components/launch-tile/lib/components/index.mjs +0 -3
  581. package/esm2020/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.mjs +0 -13
  582. package/esm2020/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.mjs +0 -13
  583. package/esm2020/components/launch-tile/lib/launch-tile.component.mjs +0 -51
  584. package/esm2020/components/launch-tile/lib/launch-tile.module.mjs +0 -23
  585. package/esm2020/components/launch-tile/odx-angular-components-launch-tile.mjs +0 -5
  586. package/esm2020/components/modal/lib/services/index.mjs +0 -2
  587. package/esm2020/components/modal/lib/services/open-modal-manager.service.mjs +0 -42
  588. package/esm2020/lib/directives/let.directive.mjs +0 -36
  589. package/esm2020/utils/lib/helpers/provide-module-config.mjs +0 -21
  590. package/fesm2015/odx-angular-components-launch-tile.mjs +0 -95
  591. package/fesm2015/odx-angular-components-launch-tile.mjs.map +0 -1
  592. package/fesm2020/odx-angular-components-launch-tile.mjs +0 -94
  593. package/fesm2020/odx-angular-components-launch-tile.mjs.map +0 -1
  594. package/lib/directives/let.directive.d.ts +0 -17
  595. package/utils/lib/helpers/provide-module-config.d.ts +0 -12
  596. /package/components/content-box/lib/directives/{content-box-footer-directive.d.ts → content-box-footer.directive.d.ts} +0 -0
  597. /package/components/content-box/lib/directives/{content-box-header-directive.d.ts → content-box-header.directive.d.ts} +0 -0
@@ -1,29 +1,39 @@
1
- import { __decorate, __metadata } from "tslib";
2
1
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
- import { ChangeDetectorRef, Directive, forwardRef, inject, InjectionToken, Input } from '@angular/core';
4
- import { Transform } from '@odx/angular/utils';
2
+ import { ChangeDetectorRef, Directive, forwardRef, Host, inject, InjectionToken, Input, Optional } from '@angular/core';
5
3
  import { distinctUntilChanged, map, shareReplay } from 'rxjs';
6
4
  import { Controller } from './controller';
7
5
  import * as i0 from "@angular/core";
8
6
  export const DISABLED_CONTROLLER = new InjectionToken('@odx/angular::DisabledWatchedController');
9
- export const DISABLED_INTERNAL_CONTROLLER = new InjectionToken('@odx/angular::DisabledController', {
10
- factory: () => new DisabledController(),
11
- });
7
+ export const DISABLED_INTERNAL_CONTROLLER = new InjectionToken('@odx/angular::DisabledController');
12
8
  export class DisabledController extends Controller {
13
9
  constructor() {
14
10
  super(...arguments);
11
+ this.parentController = inject(DISABLED_CONTROLLER, { optional: true, skipSelf: true });
12
+ this.isDisabled = false;
15
13
  this.isDisabled$ = this.change$.pipe(map(() => this.disabled), distinctUntilChanged(), shareReplay({ refCount: true }));
16
- this.disabled = false;
14
+ }
15
+ set disabled(value) {
16
+ this.isDisabled = coerceBooleanProperty(value);
17
+ }
18
+ get disabled() {
19
+ return this.isDisabled || !!this.parentController?.disabled;
17
20
  }
18
21
  static inject() {
19
22
  return inject(DISABLED_CONTROLLER, { optional: true });
20
23
  }
21
24
  static connect() {
22
- return {
23
- provide: DISABLED_CONTROLLER,
24
- useFactory: Controller.setup,
25
- deps: [DISABLED_INTERNAL_CONTROLLER, ChangeDetectorRef],
26
- };
25
+ return [
26
+ {
27
+ provide: DISABLED_INTERNAL_CONTROLLER,
28
+ useFactory: (hostController) => hostController ?? new DisabledController(),
29
+ deps: [[new Optional(), new Host(), DisabledController]],
30
+ },
31
+ {
32
+ provide: DISABLED_CONTROLLER,
33
+ useFactory: Controller.setup,
34
+ deps: [[new Optional(), new Host(), DISABLED_INTERNAL_CONTROLLER], ChangeDetectorRef],
35
+ },
36
+ ];
27
37
  }
28
38
  setDisabledState(state) {
29
39
  if (this.disabled !== state) {
@@ -32,18 +42,14 @@ export class DisabledController extends Controller {
32
42
  }
33
43
  }
34
44
  }
35
- DisabledController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: DisabledController, deps: null, target: i0.ɵɵFactoryTarget.Directive });
36
- DisabledController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: DisabledController, isStandalone: true, selector: "[disabled]", inputs: { disabled: "disabled" }, providers: [
45
+ DisabledController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DisabledController, deps: null, target: i0.ɵɵFactoryTarget.Directive });
46
+ DisabledController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: DisabledController, isStandalone: true, selector: "[disabled]", inputs: { disabled: "disabled" }, providers: [
37
47
  {
38
48
  provide: DISABLED_INTERNAL_CONTROLLER,
39
49
  useExisting: forwardRef(() => DisabledController),
40
50
  },
41
51
  ], usesInheritance: true, ngImport: i0 });
42
- __decorate([
43
- Transform(coerceBooleanProperty),
44
- __metadata("design:type", Object)
45
- ], DisabledController.prototype, "disabled", void 0);
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: DisabledController, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DisabledController, decorators: [{
47
53
  type: Directive,
48
54
  args: [{
49
55
  standalone: true,
@@ -58,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
58
64
  }], propDecorators: { disabled: [{
59
65
  type: Input
60
66
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQuY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbnRyb2xsZXJzL2Rpc2FibGVkLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFMUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQXFCLHlDQUF5QyxDQUFDLENBQUM7QUFDckgsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQTRCLGtDQUFrQyxFQUFFO0lBQzVILE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLGtCQUFrQixFQUFFO0NBQ3hDLENBQUMsQ0FBQztBQVlILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxVQUFVO0lBVmxEOztRQWFrQixnQkFBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUN4QixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDaEMsQ0FBQztRQUlLLGFBQVEsR0FBRyxLQUFLLENBQUM7S0FvQnpCO0lBbEJRLE1BQU0sQ0FBQyxNQUFNO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPO1FBQ25CLE9BQU87WUFDTCxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFVBQVUsRUFBRSxVQUFVLENBQUMsS0FBSztZQUM1QixJQUFJLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxpQkFBaUIsQ0FBQztTQUN4RCxDQUFDO0lBQ0osQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQWM7UUFDcEMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDOzsrR0E5QlUsa0JBQWtCO21HQUFsQixrQkFBa0IsMkZBUGxCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsNEJBQTRCO1lBQ3JDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7U0FDbEQ7S0FDRjtBQVdEO0lBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDOztvREFFVDsyRkFYYixrQkFBa0I7a0JBVjlCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7eUJBQ2xEO3FCQUNGO2lCQUNGOzhCQVlRLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNmb3JtIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyIH0gZnJvbSAnLi9jb250cm9sbGVyJztcblxuZXhwb3J0IGNvbnN0IERJU0FCTEVEX0NPTlRST0xMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGlzYWJsZWRDb250cm9sbGVyPignQG9keC9hbmd1bGFyOjpEaXNhYmxlZFdhdGNoZWRDb250cm9sbGVyJyk7XG5leHBvcnQgY29uc3QgRElTQUJMRURfSU5URVJOQUxfQ09OVFJPTExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEaXNhYmxlZENvbnRyb2xsZXIgfCBudWxsPignQG9keC9hbmd1bGFyOjpEaXNhYmxlZENvbnRyb2xsZXInLCB7XG4gIGZhY3Rvcnk6ICgpID0+IG5ldyBEaXNhYmxlZENvbnRyb2xsZXIoKSxcbn0pO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbZGlzYWJsZWRdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRElTQUJMRURfSU5URVJOQUxfQ09OVFJPTExFUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERpc2FibGVkQ29udHJvbGxlciksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGlzYWJsZWRDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlciB7XG4gIHB1YmxpYyBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dDtcblxuICBwdWJsaWMgcmVhZG9ubHkgaXNEaXNhYmxlZCQgPSB0aGlzLmNoYW5nZSQucGlwZShcbiAgICBtYXAoKCkgPT4gdGhpcy5kaXNhYmxlZCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgQFRyYW5zZm9ybShjb2VyY2VCb29sZWFuUHJvcGVydHkpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzdGF0aWMgaW5qZWN0KCk6IERpc2FibGVkQ29udHJvbGxlciB8IG51bGwge1xuICAgIHJldHVybiBpbmplY3QoRElTQUJMRURfQ09OVFJPTExFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29ubmVjdCgpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGU6IERJU0FCTEVEX0NPTlRST0xMRVIsXG4gICAgICB1c2VGYWN0b3J5OiBDb250cm9sbGVyLnNldHVwLFxuICAgICAgZGVwczogW0RJU0FCTEVEX0lOVEVSTkFMX0NPTlRST0xMRVIsIENoYW5nZURldGVjdG9yUmVmXSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCAhPT0gc3RhdGUpIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBzdGF0ZTtcbiAgICAgIHRoaXMubmdPbkNoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQuY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbnRyb2xsZXJzL2Rpc2FibGVkLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFMUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQXFCLHlDQUF5QyxDQUFDLENBQUM7QUFDckgsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQTRCLGtDQUFrQyxDQUFDLENBQUM7QUFZOUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFVBQVU7SUFWbEQ7O1FBYW1CLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUYsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVYLGdCQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO0tBb0NIO0lBbENDLElBQ1csUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQztJQUM5RCxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU07UUFDbEIsT0FBTyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTztZQUNMO2dCQUNFLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLFVBQVUsRUFBRSxDQUFDLGNBQXlDLEVBQUUsRUFBRSxDQUFDLGNBQWMsSUFBSSxJQUFJLGtCQUFrQixFQUFFO2dCQUNyRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO2FBQ3pEO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjtnQkFDNUIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxLQUFLO2dCQUM1QixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSw0QkFBNEIsQ0FBQyxFQUFFLGlCQUFpQixDQUFDO2FBQ3RGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFjO1FBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQzs7K0dBN0NVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDJGQVBsQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1NBQ2xEO0tBQ0Y7MkZBRVUsa0JBQWtCO2tCQVY5QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3lCQUNsRDtxQkFDRjtpQkFDRjs4QkFjWSxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSG9zdCwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE9wdGlvbmFsLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRyb2xsZXIgfSBmcm9tICcuL2NvbnRyb2xsZXInO1xuXG5leHBvcnQgY29uc3QgRElTQUJMRURfQ09OVFJPTExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEaXNhYmxlZENvbnRyb2xsZXI+KCdAb2R4L2FuZ3VsYXI6OkRpc2FibGVkV2F0Y2hlZENvbnRyb2xsZXInKTtcbmV4cG9ydCBjb25zdCBESVNBQkxFRF9JTlRFUk5BTF9DT05UUk9MTEVSID0gbmV3IEluamVjdGlvblRva2VuPERpc2FibGVkQ29udHJvbGxlciB8IG51bGw+KCdAb2R4L2FuZ3VsYXI6OkRpc2FibGVkQ29udHJvbGxlcicpO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbZGlzYWJsZWRdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRElTQUJMRURfSU5URVJOQUxfQ09OVFJPTExFUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERpc2FibGVkQ29udHJvbGxlciksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGlzYWJsZWRDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlciB7XG4gIHB1YmxpYyBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudENvbnRyb2xsZXIgPSBpbmplY3QoRElTQUJMRURfQ09OVFJPTExFUiwgeyBvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWUgfSk7XG4gIHByaXZhdGUgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSBpc0Rpc2FibGVkJCA9IHRoaXMuY2hhbmdlJC5waXBlKFxuICAgIG1hcCgoKSA9PiB0aGlzLmRpc2FibGVkKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEaXNhYmxlZCB8fCAhIXRoaXMucGFyZW50Q29udHJvbGxlcj8uZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGluamVjdCgpOiBEaXNhYmxlZENvbnRyb2xsZXIgfCBudWxsIHtcbiAgICByZXR1cm4gaW5qZWN0KERJU0FCTEVEX0NPTlRST0xMRVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbm5lY3QoKTogUHJvdmlkZXJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogRElTQUJMRURfSU5URVJOQUxfQ09OVFJPTExFUixcbiAgICAgICAgdXNlRmFjdG9yeTogKGhvc3RDb250cm9sbGVyOiBEaXNhYmxlZENvbnRyb2xsZXIgfCBudWxsKSA9PiBob3N0Q29udHJvbGxlciA/PyBuZXcgRGlzYWJsZWRDb250cm9sbGVyKCksXG4gICAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBIb3N0KCksIERpc2FibGVkQ29udHJvbGxlcl1dLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogRElTQUJMRURfQ09OVFJPTExFUixcbiAgICAgICAgdXNlRmFjdG9yeTogQ29udHJvbGxlci5zZXR1cCxcbiAgICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IEhvc3QoKSwgRElTQUJMRURfSU5URVJOQUxfQ09OVFJPTExFUl0sIENoYW5nZURldGVjdG9yUmVmXSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgIT09IHN0YXRlKSB7XG4gICAgICB0aGlzLmRpc2FibGVkID0gc3RhdGU7XG4gICAgICB0aGlzLm5nT25DaGFuZ2VzKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
- import { ChangeDetectorRef, Directive, forwardRef, inject, InjectionToken, Input } from '@angular/core';
2
+ import { ChangeDetectorRef, Directive, ElementRef, forwardRef, Host, inject, InjectionToken, Input, Optional } from '@angular/core';
3
3
  import { distinctUntilChanged, map, shareReplay } from 'rxjs';
4
4
  import { Controller } from './controller';
5
5
  import * as i0 from "@angular/core";
@@ -9,17 +9,8 @@ const ELEMENTS_WITH_READONLY_ATTRIBUTE = {
9
9
  select: true,
10
10
  };
11
11
  export const READONLY_CONTROLLER = new InjectionToken('@odx/angular::ReadonlyWatchedController');
12
- export const READONLY_INTERNAL_CONTROLLER = new InjectionToken('@odx/angular::ReadonlyController', {
13
- factory: () => new ReadonlyController(null),
14
- });
12
+ export const READONLY_INTERNAL_CONTROLLER = new InjectionToken('@odx/angular::ReadonlyController');
15
13
  export class ReadonlyController extends Controller {
16
- constructor(element) {
17
- super();
18
- this.isReadonly = false;
19
- this.hasReadonlyAttribute = false;
20
- this.isReadonly$ = this.change$.pipe(map(() => this.isReadonly), distinctUntilChanged(), shareReplay({ refCount: true }));
21
- this.nodeName = element?.nativeElement.nodeName.toLowerCase() ?? '';
22
- }
23
14
  set readonly(value) {
24
15
  const coercedValue = coerceBooleanProperty(value);
25
16
  if (this.isReadonly !== coercedValue) {
@@ -28,27 +19,45 @@ export class ReadonlyController extends Controller {
28
19
  }
29
20
  }
30
21
  get readonly() {
31
- return this.isReadonly;
22
+ return this.isReadonly || !!this.parentController?.readonly;
23
+ }
24
+ constructor(element) {
25
+ super();
26
+ this.parentController = inject(READONLY_CONTROLLER, { optional: true, skipSelf: true });
27
+ this.isReadonly = false;
28
+ this.hasReadonlyAttribute = false;
29
+ this.isReadonly$ = this.change$.pipe(map(() => this.isReadonly), distinctUntilChanged(), shareReplay({ refCount: true }));
30
+ this.nodeName = element?.nativeElement.nodeName.toLowerCase() ?? '';
32
31
  }
33
32
  static inject() {
34
33
  return inject(READONLY_CONTROLLER, { optional: true });
35
34
  }
36
35
  static connect() {
37
- return {
38
- provide: READONLY_CONTROLLER,
39
- useFactory: Controller.setup,
40
- deps: [READONLY_INTERNAL_CONTROLLER, ChangeDetectorRef],
41
- };
36
+ return [
37
+ {
38
+ provide: READONLY_INTERNAL_CONTROLLER,
39
+ useFactory: (hostController, elementRef) => hostController ?? new ReadonlyController(elementRef),
40
+ deps: [
41
+ [new Optional(), new Host(), ReadonlyController],
42
+ [new Optional(), ElementRef],
43
+ ],
44
+ },
45
+ {
46
+ provide: READONLY_CONTROLLER,
47
+ useFactory: Controller.setup,
48
+ deps: [[new Optional(), new Host(), READONLY_INTERNAL_CONTROLLER], ChangeDetectorRef],
49
+ },
50
+ ];
42
51
  }
43
52
  }
44
- ReadonlyController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ReadonlyController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
45
- ReadonlyController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: ReadonlyController, isStandalone: true, selector: "[readonly]", inputs: { readonly: "readonly" }, host: { properties: { "attr.readonly": "hasReadonlyAttribute || null" } }, providers: [
53
+ ReadonlyController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ReadonlyController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
54
+ ReadonlyController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: ReadonlyController, isStandalone: true, selector: "[readonly]", inputs: { readonly: "readonly" }, host: { properties: { "attr.readonly": "hasReadonlyAttribute || null" } }, providers: [
46
55
  {
47
56
  provide: READONLY_INTERNAL_CONTROLLER,
48
57
  useExisting: forwardRef(() => ReadonlyController),
49
58
  },
50
59
  ], usesInheritance: true, ngImport: i0 });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ReadonlyController, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ReadonlyController, decorators: [{
52
61
  type: Directive,
53
62
  args: [{
54
63
  standalone: true,
@@ -66,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
66
75
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { readonly: [{
67
76
  type: Input
68
77
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHkuY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbnRyb2xsZXJzL3JlYWRvbmx5LmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRTFDLE1BQU0sZ0NBQWdDLEdBQUc7SUFDdkMsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLE1BQU0sRUFBRSxJQUFJO0NBQ2MsQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBcUIseUNBQXlDLENBQUMsQ0FBQztBQUNySCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FBNEIsa0NBQWtDLEVBQUU7SUFDNUgsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDO0NBQzVDLENBQUMsQ0FBQztBQWVILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxVQUFVO0lBMEJoRCxZQUFZLE9BQXVDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBdkJGLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFakIseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBRXZCLGdCQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQzFCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO1FBZ0JBLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFmRCxJQUNXLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxZQUFZLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUM7WUFDL0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksZ0NBQWdDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hHO0lBQ0gsQ0FBQztJQUNELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQU9NLE1BQU0sQ0FBQyxNQUFNO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPO1FBQ25CLE9BQU87WUFDTCxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFVBQVUsRUFBRSxVQUFVLENBQUMsS0FBSztZQUM1QixJQUFJLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxpQkFBaUIsQ0FBQztTQUN4RCxDQUFDO0lBQ0osQ0FBQzs7K0dBekNVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNLQVZsQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1NBQ2xEO0tBQ0Y7MkZBS1Usa0JBQWtCO2tCQWI5QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3lCQUNsRDtxQkFDRjtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osaUJBQWlCLEVBQUUsOEJBQThCO3FCQUNsRDtpQkFDRjtpR0FnQlksUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRyb2xsZXIgfSBmcm9tICcuL2NvbnRyb2xsZXInO1xuXG5jb25zdCBFTEVNRU5UU19XSVRIX1JFQURPTkxZX0FUVFJJQlVURSA9IHtcbiAgaW5wdXQ6IHRydWUsXG4gIHRleHRhcmVhOiB0cnVlLFxuICBzZWxlY3Q6IHRydWUsXG59IGFzIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuXG5leHBvcnQgY29uc3QgUkVBRE9OTFlfQ09OVFJPTExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWFkb25seUNvbnRyb2xsZXI+KCdAb2R4L2FuZ3VsYXI6OlJlYWRvbmx5V2F0Y2hlZENvbnRyb2xsZXInKTtcbmV4cG9ydCBjb25zdCBSRUFET05MWV9JTlRFUk5BTF9DT05UUk9MTEVSID0gbmV3IEluamVjdGlvblRva2VuPFJlYWRvbmx5Q29udHJvbGxlciB8IG51bGw+KCdAb2R4L2FuZ3VsYXI6OlJlYWRvbmx5Q29udHJvbGxlcicsIHtcbiAgZmFjdG9yeTogKCkgPT4gbmV3IFJlYWRvbmx5Q29udHJvbGxlcihudWxsKSxcbn0pO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbcmVhZG9ubHldJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUkVBRE9OTFlfSU5URVJOQUxfQ09OVFJPTExFUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJlYWRvbmx5Q29udHJvbGxlciksXG4gICAgfSxcbiAgXSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5yZWFkb25seV0nOiAnaGFzUmVhZG9ubHlBdHRyaWJ1dGUgfHwgbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRvbmx5Q29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXIge1xuICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3JlYWRvbmx5OiBCb29sZWFuSW5wdXQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBub2RlTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIGlzUmVhZG9ubHkgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgaGFzUmVhZG9ubHlBdHRyaWJ1dGUgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaXNSZWFkb25seSQgPSB0aGlzLmNoYW5nZSQucGlwZShcbiAgICBtYXAoKCkgPT4gdGhpcy5pc1JlYWRvbmx5KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlYWRvbmx5KHZhbHVlOiB1bmtub3duKSB7XG4gICAgY29uc3QgY29lcmNlZFZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAodGhpcy5pc1JlYWRvbmx5ICE9PSBjb2VyY2VkVmFsdWUpIHtcbiAgICAgIHRoaXMuaXNSZWFkb25seSA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIHRoaXMuaGFzUmVhZG9ubHlBdHRyaWJ1dGUgPSB0aGlzLmlzUmVhZG9ubHkgJiYgRUxFTUVOVFNfV0lUSF9SRUFET05MWV9BVFRSSUJVVEVbdGhpcy5ub2RlTmFtZV07XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNSZWFkb25seTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5ub2RlTmFtZSA9IGVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA/PyAnJztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaW5qZWN0KCk6IFJlYWRvbmx5Q29udHJvbGxlciB8IG51bGwge1xuICAgIHJldHVybiBpbmplY3QoUkVBRE9OTFlfQ09OVFJPTExFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29ubmVjdCgpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3ZpZGU6IFJFQURPTkxZX0NPTlRST0xMRVIsXG4gICAgICB1c2VGYWN0b3J5OiBDb250cm9sbGVyLnNldHVwLFxuICAgICAgZGVwczogW1JFQURPTkxZX0lOVEVSTkFMX0NPTlRST0xMRVIsIENoYW5nZURldGVjdG9yUmVmXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHkuY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbnRyb2xsZXJzL3JlYWRvbmx5LmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRTFDLE1BQU0sZ0NBQWdDLEdBQUc7SUFDdkMsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLE1BQU0sRUFBRSxJQUFJO0NBQ2MsQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBcUIseUNBQXlDLENBQUMsQ0FBQztBQUNySCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FBNEIsa0NBQWtDLENBQUMsQ0FBQztBQWU5SCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBVTtJQWVoRCxJQUNXLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxZQUFZLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUM7WUFDL0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksZ0NBQWdDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hHO0lBQ0gsQ0FBQztJQUNELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUM7SUFDOUQsQ0FBQztJQUVELFlBQVksT0FBdUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUF6Qk8scUJBQWdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU1RixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRWpCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUV2QixnQkFBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUMxQixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDaEMsQ0FBQztRQWdCQSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU07UUFDbEIsT0FBTyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTztZQUNMO2dCQUNFLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLFVBQVUsRUFBRSxDQUFDLGNBQXlDLEVBQUUsVUFBNkIsRUFBRSxFQUFFLENBQUMsY0FBYyxJQUFJLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDO2dCQUM5SSxJQUFJLEVBQUU7b0JBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsa0JBQWtCLENBQUM7b0JBQ2hELENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxVQUFVLENBQUM7aUJBQzdCO2FBQ0Y7WUFDRDtnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixVQUFVLEVBQUUsVUFBVSxDQUFDLEtBQUs7Z0JBQzVCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLDRCQUE0QixDQUFDLEVBQUUsaUJBQWlCLENBQUM7YUFDdEY7U0FDRixDQUFDO0lBQ0osQ0FBQzs7K0dBcERVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNLQVZsQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1NBQ2xEO0tBQ0Y7MkZBS1Usa0JBQWtCO2tCQWI5QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3lCQUNsRDtxQkFDRjtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osaUJBQWlCLEVBQUUsOEJBQThCO3FCQUNsRDtpQkFDRjtpR0FpQlksUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEhvc3QsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBPcHRpb25hbCwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyIH0gZnJvbSAnLi9jb250cm9sbGVyJztcblxuY29uc3QgRUxFTUVOVFNfV0lUSF9SRUFET05MWV9BVFRSSUJVVEUgPSB7XG4gIGlucHV0OiB0cnVlLFxuICB0ZXh0YXJlYTogdHJ1ZSxcbiAgc2VsZWN0OiB0cnVlLFxufSBhcyBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcblxuZXhwb3J0IGNvbnN0IFJFQURPTkxZX0NPTlRST0xMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48UmVhZG9ubHlDb250cm9sbGVyPignQG9keC9hbmd1bGFyOjpSZWFkb25seVdhdGNoZWRDb250cm9sbGVyJyk7XG5leHBvcnQgY29uc3QgUkVBRE9OTFlfSU5URVJOQUxfQ09OVFJPTExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWFkb25seUNvbnRyb2xsZXIgfCBudWxsPignQG9keC9hbmd1bGFyOjpSZWFkb25seUNvbnRyb2xsZXInKTtcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW3JlYWRvbmx5XScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJFQURPTkxZX0lOVEVSTkFMX0NPTlRST0xMRVIsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSZWFkb25seUNvbnRyb2xsZXIpLFxuICAgIH0sXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIucmVhZG9ubHldJzogJ2hhc1JlYWRvbmx5QXR0cmlidXRlIHx8IG51bGwnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBSZWFkb25seUNvbnRyb2xsZXIgZXh0ZW5kcyBDb250cm9sbGVyIHtcbiAgcHVibGljIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZWFkb25seTogQm9vbGVhbklucHV0O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50Q29udHJvbGxlciA9IGluamVjdChSRUFET05MWV9DT05UUk9MTEVSLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBub2RlTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIGlzUmVhZG9ubHkgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgaGFzUmVhZG9ubHlBdHRyaWJ1dGUgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaXNSZWFkb25seSQgPSB0aGlzLmNoYW5nZSQucGlwZShcbiAgICBtYXAoKCkgPT4gdGhpcy5pc1JlYWRvbmx5KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlYWRvbmx5KHZhbHVlOiB1bmtub3duKSB7XG4gICAgY29uc3QgY29lcmNlZFZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAodGhpcy5pc1JlYWRvbmx5ICE9PSBjb2VyY2VkVmFsdWUpIHtcbiAgICAgIHRoaXMuaXNSZWFkb25seSA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIHRoaXMuaGFzUmVhZG9ubHlBdHRyaWJ1dGUgPSB0aGlzLmlzUmVhZG9ubHkgJiYgRUxFTUVOVFNfV0lUSF9SRUFET05MWV9BVFRSSUJVVEVbdGhpcy5ub2RlTmFtZV07XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNSZWFkb25seSB8fCAhIXRoaXMucGFyZW50Q29udHJvbGxlcj8ucmVhZG9ubHk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGwpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubm9kZU5hbWUgPSBlbGVtZW50Py5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPz8gJyc7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGluamVjdCgpOiBSZWFkb25seUNvbnRyb2xsZXIgfCBudWxsIHtcbiAgICByZXR1cm4gaW5qZWN0KFJFQURPTkxZX0NPTlRST0xMRVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbm5lY3QoKTogUHJvdmlkZXIge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFJFQURPTkxZX0lOVEVSTkFMX0NPTlRST0xMRVIsXG4gICAgICAgIHVzZUZhY3Rvcnk6IChob3N0Q29udHJvbGxlcjogUmVhZG9ubHlDb250cm9sbGVyIHwgbnVsbCwgZWxlbWVudFJlZjogRWxlbWVudFJlZiB8IG51bGwpID0+IGhvc3RDb250cm9sbGVyID8/IG5ldyBSZWFkb25seUNvbnRyb2xsZXIoZWxlbWVudFJlZiksXG4gICAgICAgIGRlcHM6IFtcbiAgICAgICAgICBbbmV3IE9wdGlvbmFsKCksIG5ldyBIb3N0KCksIFJlYWRvbmx5Q29udHJvbGxlcl0sXG4gICAgICAgICAgW25ldyBPcHRpb25hbCgpLCBFbGVtZW50UmVmXSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFJFQURPTkxZX0NPTlRST0xMRVIsXG4gICAgICAgIHVzZUZhY3Rvcnk6IENvbnRyb2xsZXIuc2V0dXAsXG4gICAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBIb3N0KCksIFJFQURPTkxZX0lOVEVSTkFMX0NPTlRST0xMRVJdLCBDaGFuZ2VEZXRlY3RvclJlZl0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
@@ -1,20 +1,21 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
+ import { LetModule } from '@ngrx/component';
3
4
  import { DisabledController, ReadonlyController } from './controllers';
4
- import { ClickOutsideDirective, LetDirective } from './directives';
5
+ import { ClickOutsideDirective } from './directives';
5
6
  import * as i0 from "@angular/core";
6
7
  const controllers = [DisabledController, ReadonlyController];
7
- const modules = [ClickOutsideDirective, LetDirective];
8
+ const modules = [ClickOutsideDirective];
8
9
  export class CoreModule {
9
10
  }
10
- CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, imports: [DisabledController, ReadonlyController, ClickOutsideDirective, LetDirective], exports: [CommonModule, DisabledController, ReadonlyController, ClickOutsideDirective, LetDirective] });
12
- CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, imports: [CommonModule] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, decorators: [{
11
+ CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: CoreModule, imports: [DisabledController, ReadonlyController, ClickOutsideDirective], exports: [CommonModule, LetModule, DisabledController, ReadonlyController, ClickOutsideDirective] });
13
+ CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CoreModule, imports: [CommonModule, LetModule] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CoreModule, decorators: [{
14
15
  type: NgModule,
15
16
  args: [{
16
17
  imports: [...controllers, ...modules],
17
- exports: [CommonModule, ...controllers, ...modules],
18
+ exports: [CommonModule, LetModule, ...controllers, ...modules],
18
19
  }]
19
20
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFbkUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBQzdELE1BQU0sT0FBTyxHQUFHLENBQUMscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFNdEQsTUFBTSxPQUFPLFVBQVU7O3VHQUFWLFVBQVU7d0dBQVYsVUFBVSxZQVBGLGtCQUFrQixFQUFFLGtCQUFrQixFQUMxQyxxQkFBcUIsRUFBRSxZQUFZLGFBSXhDLFlBQVksRUFMSCxrQkFBa0IsRUFBRSxrQkFBa0IsRUFDMUMscUJBQXFCLEVBQUUsWUFBWTt3R0FNdkMsVUFBVSxZQUZYLFlBQVk7MkZBRVgsVUFBVTtrQkFKdEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLEdBQUcsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO2lCQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXIgfSBmcm9tICcuL2NvbnRyb2xsZXJzJztcbmltcG9ydCB7IENsaWNrT3V0c2lkZURpcmVjdGl2ZSwgTGV0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuY29uc3QgY29udHJvbGxlcnMgPSBbRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXJdO1xuY29uc3QgbW9kdWxlcyA9IFtDbGlja091dHNpZGVEaXJlY3RpdmUsIExldERpcmVjdGl2ZV07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5jb250cm9sbGVycywgLi4ubW9kdWxlc10sXG4gIGV4cG9ydHM6IFtDb21tb25Nb2R1bGUsIC4uLmNvbnRyb2xsZXJzLCAuLi5tb2R1bGVzXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZU1vZHVsZSB7fVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFckQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBQzdELE1BQU0sT0FBTyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQU14QyxNQUFNLE9BQU8sVUFBVTs7dUdBQVYsVUFBVTt3R0FBVixVQUFVLFlBUEYsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQzFDLHFCQUFxQixhQUkxQixZQUFZLEVBQUUsU0FBUyxFQUxkLGtCQUFrQixFQUFFLGtCQUFrQixFQUMxQyxxQkFBcUI7d0dBTXpCLFVBQVUsWUFGWCxZQUFZLEVBQUUsU0FBUzsyRkFFdEIsVUFBVTtrQkFKdEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQztpQkFDL0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExldE1vZHVsZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNhYmxlZENvbnRyb2xsZXIsIFJlYWRvbmx5Q29udHJvbGxlciB9IGZyb20gJy4vY29udHJvbGxlcnMnO1xuaW1wb3J0IHsgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuY29uc3QgY29udHJvbGxlcnMgPSBbRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXJdO1xuY29uc3QgbW9kdWxlcyA9IFtDbGlja091dHNpZGVEaXJlY3RpdmVdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uY29udHJvbGxlcnMsIC4uLm1vZHVsZXNdLFxuICBleHBvcnRzOiBbQ29tbW9uTW9kdWxlLCBMZXRNb2R1bGUsIC4uLmNvbnRyb2xsZXJzLCAuLi5tb2R1bGVzXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZU1vZHVsZSB7fVxuIl19
@@ -1,13 +1,21 @@
1
- import { Directive, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';
2
- import { deferFn } from '@odx/angular/utils';
1
+ import { Directive, EventEmitter, inject, Input, Output, Renderer2 } from '@angular/core';
2
+ import { deferFn, injectElement } from '@odx/angular/utils';
3
+ import { debounceTime, NEVER, Observable, switchMap, tap } from 'rxjs';
3
4
  import * as i0 from "@angular/core";
4
5
  export class ClickOutsideDirective {
5
- constructor(element, renderer) {
6
- this.element = element;
7
- this.renderer = renderer;
6
+ constructor() {
7
+ this.element = injectElement();
8
+ this.renderer = inject(Renderer2);
9
+ this.onOutsideClick$ = this.registerEventHandler('mousedown').pipe(switchMap((event) => {
10
+ if (!this.odxClickOutsideActive)
11
+ return NEVER;
12
+ const hostElement = this.element.nativeElement;
13
+ const targetElement = event.target;
14
+ const clickedOutside = hostElement.isConnected && targetElement.isConnected && !hostElement.contains(targetElement);
15
+ return this.registerEventHandler('mouseup').pipe(debounceTime(0), tap(() => clickedOutside && this.odxClickOutside.emit(event)));
16
+ }));
8
17
  this.odxClickOutsideActive = true;
9
18
  this.odxClickOutside = new EventEmitter();
10
- this.odxClickOutsideActive = true;
11
19
  }
12
20
  ngOnInit() {
13
21
  if (this.odxClickOutsideActive) {
@@ -29,31 +37,35 @@ export class ClickOutsideDirective {
29
37
  }
30
38
  destroy() {
31
39
  if (this.listener) {
32
- this.listener();
40
+ this.listener.unsubscribe();
33
41
  this.listener = undefined;
34
42
  }
35
43
  }
36
44
  registerHandler() {
37
45
  deferFn(() => {
38
- this.listener ?? (this.listener = this.renderer.listen('document', 'click', (event) => {
39
- if (this.odxClickOutsideActive && this.element?.nativeElement.isConnected && !this.element?.nativeElement.contains(event.target)) {
40
- this.odxClickOutside.emit(event);
41
- }
42
- }));
46
+ this.listener = this.onOutsideClick$.subscribe();
47
+ });
48
+ }
49
+ registerEventHandler(eventName) {
50
+ return new Observable((subscriber) => {
51
+ const listener = this.renderer.listen('document', eventName, (event) => {
52
+ subscriber.next(event);
53
+ });
54
+ subscriber.add(listener);
43
55
  });
44
56
  }
45
57
  }
46
- ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
47
- ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: ClickOutsideDirective, isStandalone: true, selector: "[odxClickOutside]", inputs: { odxClickOutsideActive: "odxClickOutsideActive" }, outputs: { odxClickOutside: "odxClickOutside" }, usesOnChanges: true, ngImport: i0 });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ClickOutsideDirective, decorators: [{
58
+ ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
59
+ ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: ClickOutsideDirective, isStandalone: true, selector: "[odxClickOutside]", inputs: { odxClickOutsideActive: "odxClickOutsideActive" }, outputs: { odxClickOutside: "odxClickOutside" }, usesOnChanges: true, ngImport: i0 });
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ClickOutsideDirective, decorators: [{
49
61
  type: Directive,
50
62
  args: [{
51
63
  standalone: true,
52
64
  selector: '[odxClickOutside]',
53
65
  }]
54
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { odxClickOutsideActive: [{
66
+ }], propDecorators: { odxClickOutsideActive: [{
55
67
  type: Input
56
68
  }], odxClickOutside: [{
57
69
  type: Output
58
70
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLE9BQU8sRUFBYSxNQUFNLG9CQUFvQixDQUFDOztBQU14RCxNQUFNLE9BQU8scUJBQXFCO0lBU2hDLFlBQTZCLE9BQWdDLEVBQW1CLFFBQW1CO1FBQXRFLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQW1CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFMNUYsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBR3BCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUcvRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVNLFdBQVcsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFvQztRQUNoRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxJQUFJLGtCQUFrQixFQUFFLGFBQWEsS0FBSyxrQkFBa0IsRUFBRSxZQUFZLEVBQUU7WUFDOUcsSUFBSSxrQkFBa0IsRUFBRSxZQUFZLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN4QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDaEI7U0FDRjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8sZUFBZTtRQUNyQixPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFFBQVEsS0FBYixJQUFJLENBQUMsUUFBUSxHQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDcEUsSUFBSSxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDaEksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2xDO1lBQ0gsQ0FBQyxDQUFDLEVBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2tIQWhEVSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUJBQW1CO2lCQUM5Qjt5SEFLUSxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSVUsZUFBZTtzQkFEOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlZmVyRm4sIE5nQ2hhbmdlcyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhDbGlja091dHNpZGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgbGlzdGVuZXI/OiAoKSA9PiB2b2lkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvZHhDbGlja091dHNpZGVBY3RpdmUgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgb2R4Q2xpY2tPdXRzaWRlID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHRoaXMub2R4Q2xpY2tPdXRzaWRlQWN0aXZlID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vZHhDbGlja091dHNpZGVBY3RpdmUpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJIYW5kbGVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKHsgb2R4Q2xpY2tPdXRzaWRlQWN0aXZlOiBjbGlja091dHNpZGVBY3RpdmUgfTogTmdDaGFuZ2VzPENsaWNrT3V0c2lkZURpcmVjdGl2ZT4pOiB2b2lkIHtcbiAgICBpZiAoIWNsaWNrT3V0c2lkZUFjdGl2ZT8uZmlyc3RDaGFuZ2UgJiYgY2xpY2tPdXRzaWRlQWN0aXZlPy5wcmV2aW91c1ZhbHVlICE9PSBjbGlja091dHNpZGVBY3RpdmU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgaWYgKGNsaWNrT3V0c2lkZUFjdGl2ZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJIYW5kbGVyKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95KCk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMubGlzdGVuZXIpIHtcbiAgICAgIHRoaXMubGlzdGVuZXIoKTtcbiAgICAgIHRoaXMubGlzdGVuZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckhhbmRsZXIoKSB7XG4gICAgZGVmZXJGbigoKSA9PiB7XG4gICAgICB0aGlzLmxpc3RlbmVyID8/PSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub2R4Q2xpY2tPdXRzaWRlQWN0aXZlICYmIHRoaXMuZWxlbWVudD8ubmF0aXZlRWxlbWVudC5pc0Nvbm5lY3RlZCAmJiAhdGhpcy5lbGVtZW50Py5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICB0aGlzLm9keENsaWNrT3V0c2lkZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQWEsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWdCLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTXJGLE1BQU0sT0FBTyxxQkFBcUI7SUFKbEM7UUFNbUIsWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0Isb0JBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUM1RSxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQjtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM5QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUMvQyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBaUIsQ0FBQztZQUM5QyxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsV0FBVyxJQUFJLGFBQWEsQ0FBQyxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BILE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDOUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDOUQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7UUFHSywwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFHcEIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO0tBMkM3RDtJQXpDUSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVNLFdBQVcsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFvQztRQUNoRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxJQUFJLGtCQUFrQixFQUFFLGFBQWEsS0FBSyxrQkFBa0IsRUFBRSxZQUFZLEVBQUU7WUFDOUcsSUFBSSxrQkFBa0IsRUFBRSxZQUFZLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN4QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDaEI7U0FDRjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVPLGVBQWU7UUFDckIsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0IsQ0FBa0IsU0FBaUI7UUFDN0QsT0FBTyxJQUFJLFVBQVUsQ0FBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBRTtnQkFDeEUsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztZQUNILFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEEvRFUscUJBQXFCO3NHQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7OEJBbUJRLHFCQUFxQjtzQkFEM0IsS0FBSztnQkFJVSxlQUFlO3NCQUQ5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWZlckZuLCBpbmplY3RFbGVtZW50LCBOZ0NoYW5nZXMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBORVZFUiwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbb2R4Q2xpY2tPdXRzaWRlXScsXG59KVxuZXhwb3J0IGNsYXNzIENsaWNrT3V0c2lkZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGxpc3RlbmVyPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvbk91dHNpZGVDbGljayQgPSB0aGlzLnJlZ2lzdGVyRXZlbnRIYW5kbGVyKCdtb3VzZWRvd24nKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoZXZlbnQpID0+IHtcbiAgICAgIGlmICghdGhpcy5vZHhDbGlja091dHNpZGVBY3RpdmUpIHJldHVybiBORVZFUjtcbiAgICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQ7XG4gICAgICBjb25zdCBjbGlja2VkT3V0c2lkZSA9IGhvc3RFbGVtZW50LmlzQ29ubmVjdGVkICYmIHRhcmdldEVsZW1lbnQuaXNDb25uZWN0ZWQgJiYgIWhvc3RFbGVtZW50LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xuICAgICAgcmV0dXJuIHRoaXMucmVnaXN0ZXJFdmVudEhhbmRsZXIoJ21vdXNldXAnKS5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgIHRhcCgoKSA9PiBjbGlja2VkT3V0c2lkZSAmJiB0aGlzLm9keENsaWNrT3V0c2lkZS5lbWl0KGV2ZW50KSlcbiAgICAgICk7XG4gICAgfSlcbiAgKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb2R4Q2xpY2tPdXRzaWRlQWN0aXZlID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IG9keENsaWNrT3V0c2lkZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9keENsaWNrT3V0c2lkZUFjdGl2ZSkge1xuICAgICAgdGhpcy5yZWdpc3RlckhhbmRsZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoeyBvZHhDbGlja091dHNpZGVBY3RpdmU6IGNsaWNrT3V0c2lkZUFjdGl2ZSB9OiBOZ0NoYW5nZXM8Q2xpY2tPdXRzaWRlRGlyZWN0aXZlPik6IHZvaWQge1xuICAgIGlmICghY2xpY2tPdXRzaWRlQWN0aXZlPy5maXJzdENoYW5nZSAmJiBjbGlja091dHNpZGVBY3RpdmU/LnByZXZpb3VzVmFsdWUgIT09IGNsaWNrT3V0c2lkZUFjdGl2ZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICBpZiAoY2xpY2tPdXRzaWRlQWN0aXZlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlckhhbmRsZXIoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5saXN0ZW5lcikge1xuICAgICAgdGhpcy5saXN0ZW5lci51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5saXN0ZW5lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVySGFuZGxlcigpIHtcbiAgICBkZWZlckZuKCgpID0+IHtcbiAgICAgIHRoaXMubGlzdGVuZXIgPSB0aGlzLm9uT3V0c2lkZUNsaWNrJC5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJFdmVudEhhbmRsZXI8VCBleHRlbmRzIEV2ZW50PihldmVudE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPigoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgY29uc3QgbGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCBldmVudE5hbWUsIChldmVudDogVCkgPT4ge1xuICAgICAgICBzdWJzY3JpYmVyLm5leHQoZXZlbnQpO1xuICAgICAgfSk7XG4gICAgICBzdWJzY3JpYmVyLmFkZChsaXN0ZW5lcik7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DelegateFocusDirective {
4
+ constructor() {
5
+ this.tabindex = 0;
6
+ this.focused = new EventEmitter();
7
+ }
8
+ handleFocus() {
9
+ this.focused.next();
10
+ }
11
+ handleFocusIn() {
12
+ this.tabindex = -1;
13
+ }
14
+ handleFocusOut() {
15
+ this.tabindex = 0;
16
+ }
17
+ }
18
+ DelegateFocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DelegateFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
19
+ DelegateFocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: DelegateFocusDirective, isStandalone: true, outputs: { focused: "focused" }, host: { listeners: { "focus": "handleFocus()", "focusin": "handleFocusIn()", "focusout": "handleFocusOut()" }, properties: { "attr.tabindex": "tabindex" } }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DelegateFocusDirective, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ standalone: true,
24
+ host: {
25
+ '[attr.tabindex]': 'tabindex',
26
+ },
27
+ }]
28
+ }], propDecorators: { focused: [{
29
+ type: Output
30
+ }], handleFocus: [{
31
+ type: HostListener,
32
+ args: ['focus']
33
+ }], handleFocusIn: [{
34
+ type: HostListener,
35
+ args: ['focusin']
36
+ }], handleFocusOut: [{
37
+ type: HostListener,
38
+ args: ['focusout']
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGUtZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZGlyZWN0aXZlcy9kZWxlZ2F0ZS1mb2N1cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFROUUsTUFBTSxPQUFPLHNCQUFzQjtJQU5uQztRQU9ZLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFHaEIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FnQjNDO0lBYlcsV0FBVztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFHUyxhQUFhO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUdTLGNBQWM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQzs7bUhBbkJVLHNCQUFzQjt1R0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBTmxDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixpQkFBaUIsRUFBRSxVQUFVO3FCQUM5QjtpQkFDRjs4QkFLUSxPQUFPO3NCQURiLE1BQU07Z0JBSUcsV0FBVztzQkFEcEIsWUFBWTt1QkFBQyxPQUFPO2dCQU1YLGFBQWE7c0JBRHRCLFlBQVk7dUJBQUMsU0FBUztnQkFNYixjQUFjO3NCQUR2QixZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIudGFiaW5kZXhdJzogJ3RhYmluZGV4JyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgRGVsZWdhdGVGb2N1c0RpcmVjdGl2ZSB7XG4gIHByb3RlY3RlZCB0YWJpbmRleCA9IDA7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgcHJvdGVjdGVkIGhhbmRsZUZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNlZC5uZXh0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJylcbiAgcHJvdGVjdGVkIGhhbmRsZUZvY3VzSW4oKTogdm9pZCB7XG4gICAgdGhpcy50YWJpbmRleCA9IC0xO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICBwcm90ZWN0ZWQgaGFuZGxlRm9jdXNPdXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJpbmRleCA9IDA7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  export * from './click-outside.directive';
2
- export * from './let.directive';
2
+ export * from './delegate-focus.directive';
3
3
  export * from './with-disabled-state.directive';
4
4
  export * from './with-tabindex.directive';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGV0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3dpdGgtZGlzYWJsZWQtc3RhdGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC10YWJpbmRleC5kaXJlY3RpdmUnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGVsZWdhdGUtZm9jdXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1kaXNhYmxlZC1zdGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLXRhYmluZGV4LmRpcmVjdGl2ZSc7XG4iXX0=
@@ -12,21 +12,21 @@ const ELEMENTS_WITH_DISABLED_ATTRIBUTE = {
12
12
  textarea: true,
13
13
  };
14
14
  export class WithDisabledState {
15
- constructor(element) {
16
- this.disabledController = DisabledController.inject();
17
- this.hasDisabledAttribute = ELEMENTS_WITH_DISABLED_ATTRIBUTE[element.nativeElement.nodeName.toLowerCase() ?? ''];
18
- this.hasAriaRole = element.nativeElement.hasAttribute('role');
19
- }
20
15
  get isDisabled() {
21
16
  return !!this.disabledController?.disabled;
22
17
  }
23
18
  get ariaDisabled() {
24
19
  return booleanToOptionalAttributeString(this.hasAriaRole && this.isDisabled);
25
20
  }
21
+ constructor(element) {
22
+ this.disabledController = DisabledController.inject();
23
+ this.hasDisabledAttribute = !!ELEMENTS_WITH_DISABLED_ATTRIBUTE[element.nativeElement.nodeName.toLowerCase() ?? ''];
24
+ this.hasAriaRole = element.nativeElement.hasAttribute('role');
25
+ }
26
26
  }
27
- WithDisabledState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithDisabledState, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
28
- WithDisabledState.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: WithDisabledState, isStandalone: true, host: { properties: { "class.is-disabled": "isDisabled", "attr.aria-disabled": "ariaDisabled", "attr.disabled": "hasDisabledAttribute && isDisabled || null" } }, providers: [DisabledController.connect()], ngImport: i0 });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithDisabledState, decorators: [{
27
+ WithDisabledState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WithDisabledState, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
28
+ WithDisabledState.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: WithDisabledState, isStandalone: true, host: { properties: { "class.is-disabled": "isDisabled", "attr.aria-disabled": "ariaDisabled", "attr.disabled": "hasDisabledAttribute && isDisabled || null" } }, providers: [DisabledController.connect()], ngImport: i0 });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WithDisabledState, decorators: [{
30
30
  type: Directive,
31
31
  args: [{
32
32
  standalone: true,
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
38
38
  },
39
39
  }]
40
40
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kaXNhYmxlZC1zdGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL3dpdGgtZGlzYWJsZWQtc3RhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVwRCxNQUFNLGdDQUFnQyxHQUFHO0lBQ3ZDLE1BQU0sRUFBRSxJQUFJO0lBQ1osUUFBUSxFQUFFLElBQUk7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSxJQUFJO0lBQ2QsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFFBQVEsRUFBRSxJQUFJO0NBQ1ksQ0FBQztBQVc3QixNQUFNLE9BQU8saUJBQWlCO0lBYTVCLFlBQVksT0FBZ0M7UUFWekIsdUJBQWtCLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFXbEUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pILElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQVhELElBQWMsVUFBVTtRQUN0QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvRSxDQUFDOzs4R0FYVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixtTUFQakIsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQzsyRkFPOUIsaUJBQWlCO2tCQVQ3QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDekMsSUFBSSxFQUFFO3dCQUNKLHFCQUFxQixFQUFFLFlBQVk7d0JBQ25DLHNCQUFzQixFQUFFLGNBQWM7d0JBQ3RDLGlCQUFpQixFQUFFLDRDQUE0QztxQkFDaEU7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGJvb2xlYW5Ub09wdGlvbmFsQXR0cmlidXRlU3RyaW5nIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IERpc2FibGVkQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzJztcblxuY29uc3QgRUxFTUVOVFNfV0lUSF9ESVNBQkxFRF9BVFRSSUJVVEUgPSB7XG4gIGJ1dHRvbjogdHJ1ZSxcbiAgZmllbGRzZXQ6IHRydWUsXG4gIGlucHV0OiB0cnVlLFxuICBvcHRncm91cDogdHJ1ZSxcbiAgb3B0aW9uOiB0cnVlLFxuICBzZWxlY3Q6IHRydWUsXG4gIHRleHRhcmVhOiB0cnVlLFxufSBhcyBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW0Rpc2FibGVkQ29udHJvbGxlci5jb25uZWN0KCldLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5pcy1kaXNhYmxlZF0nOiAnaXNEaXNhYmxlZCcsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2FyaWFEaXNhYmxlZCcsXG4gICAgJ1thdHRyLmRpc2FibGVkXSc6ICdoYXNEaXNhYmxlZEF0dHJpYnV0ZSAmJiBpc0Rpc2FibGVkIHx8IG51bGwnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBXaXRoRGlzYWJsZWRTdGF0ZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBoYXNBcmlhUm9sZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc0Rpc2FibGVkQXR0cmlidXRlOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzYWJsZWRDb250cm9sbGVyID0gRGlzYWJsZWRDb250cm9sbGVyLmluamVjdCgpO1xuXG4gIHByb3RlY3RlZCBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRpc2FibGVkQ29udHJvbGxlcj8uZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFyaWFEaXNhYmxlZCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gYm9vbGVhblRvT3B0aW9uYWxBdHRyaWJ1dGVTdHJpbmcodGhpcy5oYXNBcmlhUm9sZSAmJiB0aGlzLmlzRGlzYWJsZWQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICB0aGlzLmhhc0Rpc2FibGVkQXR0cmlidXRlID0gRUxFTUVOVFNfV0lUSF9ESVNBQkxFRF9BVFRSSUJVVEVbZWxlbWVudC5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPz8gJyddO1xuICAgIHRoaXMuaGFzQXJpYVJvbGUgPSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdyb2xlJyk7XG4gIH1cbn1cbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kaXNhYmxlZC1zdGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL3dpdGgtZGlzYWJsZWQtc3RhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVwRCxNQUFNLGdDQUFnQyxHQUFHO0lBQ3ZDLE1BQU0sRUFBRSxJQUFJO0lBQ1osUUFBUSxFQUFFLElBQUk7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSxJQUFJO0lBQ2QsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFFBQVEsRUFBRSxJQUFJO0NBQ1ksQ0FBQztBQVc3QixNQUFNLE9BQU8saUJBQWlCO0lBSzVCLElBQWMsVUFBVTtRQUN0QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsWUFBWSxPQUFnQztRQVZ6Qix1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQVdsRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7OEdBaEJVLGlCQUFpQjtrR0FBakIsaUJBQWlCLG1NQVBqQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDOzJGQU85QixpQkFBaUI7a0JBVDdCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN6QyxJQUFJLEVBQUU7d0JBQ0oscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMsc0JBQXNCLEVBQUUsY0FBYzt3QkFDdEMsaUJBQWlCLEVBQUUsNENBQTRDO3FCQUNoRTtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYm9vbGVhblRvT3B0aW9uYWxBdHRyaWJ1dGVTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgRGlzYWJsZWRDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMnO1xuXG5jb25zdCBFTEVNRU5UU19XSVRIX0RJU0FCTEVEX0FUVFJJQlVURSA9IHtcbiAgYnV0dG9uOiB0cnVlLFxuICBmaWVsZHNldDogdHJ1ZSxcbiAgaW5wdXQ6IHRydWUsXG4gIG9wdGdyb3VwOiB0cnVlLFxuICBvcHRpb246IHRydWUsXG4gIHNlbGVjdDogdHJ1ZSxcbiAgdGV4dGFyZWE6IHRydWUsXG59IGFzIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbRGlzYWJsZWRDb250cm9sbGVyLmNvbm5lY3QoKV0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmlzLWRpc2FibGVkXSc6ICdpc0Rpc2FibGVkJyxcbiAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnYXJpYURpc2FibGVkJyxcbiAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ2hhc0Rpc2FibGVkQXR0cmlidXRlICYmIGlzRGlzYWJsZWQgfHwgbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFdpdGhEaXNhYmxlZFN0YXRlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc0FyaWFSb2xlOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzRGlzYWJsZWRBdHRyaWJ1dGU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCByZWFkb25seSBkaXNhYmxlZENvbnRyb2xsZXIgPSBEaXNhYmxlZENvbnRyb2xsZXIuaW5qZWN0KCk7XG5cbiAgcHJvdGVjdGVkIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZGlzYWJsZWRDb250cm9sbGVyPy5kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXJpYURpc2FibGVkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiBib29sZWFuVG9PcHRpb25hbEF0dHJpYnV0ZVN0cmluZyh0aGlzLmhhc0FyaWFSb2xlICYmIHRoaXMuaXNEaXNhYmxlZCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHRoaXMuaGFzRGlzYWJsZWRBdHRyaWJ1dGUgPSAhIUVMRU1FTlRTX1dJVEhfRElTQUJMRURfQVRUUklCVVRFW2VsZW1lbnQubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID8/ICcnXTtcbiAgICB0aGlzLmhhc0FyaWFSb2xlID0gZWxlbWVudC5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgncm9sZScpO1xuICB9XG59XG4iXX0=
@@ -9,9 +9,9 @@ export class WithTabIndex {
9
9
  return !!this.disabledController?.disabled;
10
10
  }
11
11
  }
12
- WithTabIndex.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithTabIndex, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
- WithTabIndex.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: WithTabIndex, isStandalone: true, host: { properties: { "attr.tabindex": "isDisabled ? -1 : 0" } }, ngImport: i0 });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithTabIndex, decorators: [{
12
+ WithTabIndex.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WithTabIndex, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
+ WithTabIndex.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: WithTabIndex, isStandalone: true, host: { properties: { "attr.tabindex": "isDisabled ? -1 : 0" } }, ngImport: i0 });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WithTabIndex, decorators: [{
15
15
  type: Directive,
16
16
  args: [{
17
17
  standalone: true,
@@ -1,16 +1,23 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { inject, Injectable, reflectComponentType } from '@angular/core';
3
+ import { Title } from '@angular/platform-browser';
4
+ import { NavigationEnd, Router } from '@angular/router';
3
5
  import { fromEvents } from '@odx/angular/rxjs';
4
- import { distinctUntilChanged, map, shareReplay, startWith } from 'rxjs';
6
+ import { debounceTime, distinctUntilChanged, EMPTY, filter, map, shareReplay, startWith } from 'rxjs';
5
7
  import * as i0 from "@angular/core";
6
8
  export class WindowRef {
7
9
  constructor() {
10
+ this.title = inject(Title);
8
11
  this.nativeWindow = inject(DOCUMENT).defaultView ?? window;
9
- this.isOnline$ = fromEvents(this.nativeWindow, 'offline', 'online').pipe(startWith(null), map(() => this.nativeWindow.navigator.onLine), distinctUntilChanged(), shareReplay({ refCount: true }));
12
+ this.isOnline$ = fromEvents(this.nativeWindow, 'offline', 'online').pipe(startWith(null), map(() => this.isOnline()), distinctUntilChanged(), shareReplay({ refCount: true }));
13
+ this.pageTitle$ = (inject(Router, { optional: true })?.events ?? EMPTY).pipe(filter((event) => event instanceof NavigationEnd), startWith(null), debounceTime(0), map(() => this.title.getTitle()), shareReplay({ refCount: true }));
10
14
  }
11
15
  get location() {
12
16
  return this.nativeWindow.location;
13
17
  }
18
+ isOnline() {
19
+ return this.nativeWindow.navigator.onLine;
20
+ }
14
21
  getLanguage() {
15
22
  return this.nativeWindow.navigator.language;
16
23
  }
@@ -25,12 +32,12 @@ export class WindowRef {
25
32
  return componentType ? this.nativeWindow.document.querySelector(componentType.selector) : null;
26
33
  }
27
34
  }
28
- WindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
29
- WindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WindowRef, providedIn: 'root' });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WindowRef, decorators: [{
35
+ WindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
36
+ WindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WindowRef, providedIn: 'root' });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WindowRef, decorators: [{
31
38
  type: Injectable,
32
39
  args: [{
33
40
  providedIn: 'root',
34
41
  }]
35
42
  }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3pFLE1BQU0sT0FBTyxTQUFTO0lBSHRCO1FBSWtCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7UUFDdEQsY0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ2pGLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQzdDLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO0tBdUJIO0lBckJDLElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUksSUFBYTtRQUN0QyxNQUFNLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqRCxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pHLENBQUM7O3NHQTdCVSxTQUFTOzBHQUFULFNBQVMsY0FGUixNQUFNOzJGQUVQLFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCByZWZsZWN0Q29tcG9uZW50VHlwZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50cyB9IGZyb20gJ0BvZHgvYW5ndWxhci9yeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdpbmRvd1JlZiB7XG4gIHB1YmxpYyByZWFkb25seSBuYXRpdmVXaW5kb3cgPSBpbmplY3QoRE9DVU1FTlQpLmRlZmF1bHRWaWV3ID8/IHdpbmRvdztcbiAgcHVibGljIHJlYWRvbmx5IGlzT25saW5lJCA9IGZyb21FdmVudHModGhpcy5uYXRpdmVXaW5kb3csICdvZmZsaW5lJywgJ29ubGluZScpLnBpcGUoXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIG1hcCgoKSA9PiB0aGlzLm5hdGl2ZVdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcblxuICBwdWJsaWMgZ2V0IGxvY2F0aW9uKCk6IExvY2F0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cubG9jYXRpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlO1xuICB9XG5cbiAgcHVibGljIGdldE9yaWdpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLm9yaWdpbjtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRQYWdlKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5QnlDb21wb25lbnQ8VD4odHlwZTogVHlwZTxUPik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHJlZmxlY3RDb21wb25lbnRUeXBlKHR5cGUpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFR5cGUgPyB0aGlzLm5hdGl2ZVdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbXBvbmVudFR5cGUuc2VsZWN0b3IpIDogbnVsbDtcbiAgfVxufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RHLE1BQU0sT0FBTyxTQUFTO0lBSHRCO1FBSW1CLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsaUJBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQztRQUN0RCxjQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDakYsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDMUIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7UUFDYyxlQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckYsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLEVBQ2pELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ2YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDaEMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7S0EyQkg7SUF6QkMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLGdCQUFnQixDQUFJLElBQWE7UUFDdEMsTUFBTSxhQUFhLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakQsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRyxDQUFDOztzR0F6Q1UsU0FBUzswR0FBVCxTQUFTLGNBRlIsTUFBTTsyRkFFUCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgcmVmbGVjdENvbXBvbmVudFR5cGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZnJvbUV2ZW50cyB9IGZyb20gJ0BvZHgvYW5ndWxhci9yeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIEVNUFRZLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2luZG93UmVmIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZSA9IGluamVjdChUaXRsZSk7XG4gIHB1YmxpYyByZWFkb25seSBuYXRpdmVXaW5kb3cgPSBpbmplY3QoRE9DVU1FTlQpLmRlZmF1bHRWaWV3ID8/IHdpbmRvdztcbiAgcHVibGljIHJlYWRvbmx5IGlzT25saW5lJCA9IGZyb21FdmVudHModGhpcy5uYXRpdmVXaW5kb3csICdvZmZsaW5lJywgJ29ubGluZScpLnBpcGUoXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIG1hcCgoKSA9PiB0aGlzLmlzT25saW5lKCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFnZVRpdGxlJCA9IChpbmplY3QoUm91dGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5ldmVudHMgPz8gRU1QVFkpLnBpcGUoXG4gICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICBzdGFydFdpdGgobnVsbCksXG4gICAgZGVib3VuY2VUaW1lKDApLFxuICAgIG1hcCgoKSA9PiB0aGlzLnRpdGxlLmdldFRpdGxlKCkpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcblxuICBwdWJsaWMgZ2V0IGxvY2F0aW9uKCk6IExvY2F0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cubG9jYXRpb247XG4gIH1cblxuICBwdWJsaWMgaXNPbmxpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93Lm5hdmlnYXRvci5vbkxpbmU7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVXaW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlO1xuICB9XG5cbiAgcHVibGljIGdldE9yaWdpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLm9yaWdpbjtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRQYWdlKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5QnlDb21wb25lbnQ8VD4odHlwZTogVHlwZTxUPik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHJlZmxlY3RDb21wb25lbnRUeXBlKHR5cGUpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFR5cGUgPyB0aGlzLm5hdGl2ZVdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbXBvbmVudFR5cGUuc2VsZWN0b3IpIDogbnVsbDtcbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ export * from './lib/helpers';
2
+ export * from './lib/models';
3
+ export * from './lib/theming.config';
4
+ export * from './lib/theming.service';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdGhlbWluZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGhlbWluZy5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGhlbWluZy5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './prefers-dark-theme';
2
+ export * from './resolve-theme';
3
+ export * from './theme-storage';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdGhlbWluZy9zcmMvbGliL2hlbHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3ByZWZlcnMtZGFyay10aGVtZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmUtdGhlbWUnO1xuZXhwb3J0ICogZnJvbSAnLi90aGVtZS1zdG9yYWdlJztcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export function prefersDarkTheme(view) {
2
+ return !!view.matchMedia?.('(prefers-color-scheme: dark)')?.matches;
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVycy1kYXJrLXRoZW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3RoZW1pbmcvc3JjL2xpYi9oZWxwZXJzL3ByZWZlcnMtZGFyay10aGVtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWTtJQUMzQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsOEJBQThCLENBQUMsRUFBRSxPQUFPLENBQUM7QUFDdEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBwcmVmZXJzRGFya1RoZW1lKHZpZXc6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICByZXR1cm4gISF2aWV3Lm1hdGNoTWVkaWE/LignKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpPy5tYXRjaGVzO1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ import { availableThemes } from '../models';
2
+ export function resolveTheme(theme) {
3
+ return availableThemes.find((t) => t === theme) ?? null;
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS10aGVtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci90aGVtaW5nL3NyYy9saWIvaGVscGVycy9yZXNvbHZlLXRoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQVMsTUFBTSxXQUFXLENBQUM7QUFFbkQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFxQjtJQUNoRCxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF2YWlsYWJsZVRoZW1lcywgVGhlbWUgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVRoZW1lKHRoZW1lPzogc3RyaW5nIHwgbnVsbCk6IFRoZW1lIHwgbnVsbCB7XG4gIHJldHVybiBhdmFpbGFibGVUaGVtZXMuZmluZCgodCkgPT4gdCA9PT0gdGhlbWUpID8/IG51bGw7XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { resolveTheme } from './resolve-theme';
2
+ export const THEME_STORAGE_NAME = '@odx/angular/theming:SelectedTheme';
3
+ export function saveTheme(storage, theme) {
4
+ try {
5
+ storage?.setItem(THEME_STORAGE_NAME, theme);
6
+ }
7
+ catch {
8
+ //
9
+ }
10
+ }
11
+ export function readTheme(storage) {
12
+ try {
13
+ return resolveTheme(storage?.getItem(THEME_STORAGE_NAME)) ?? null;
14
+ }
15
+ catch {
16
+ return null;
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci90aGVtaW5nL3NyYy9saWIvaGVscGVycy90aGVtZS1zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxvQ0FBb0MsQ0FBQztBQUV2RSxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQW1DLEVBQUUsS0FBWTtJQUN6RSxJQUFJO1FBQ0YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUM3QztJQUFDLE1BQU07UUFDTixFQUFFO0tBQ0g7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUF3QjtJQUNoRCxJQUFJO1FBQ0YsT0FBTyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0tBQ25FO0lBQUMsTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDO0tBQ2I7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGhlbWUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgcmVzb2x2ZVRoZW1lIH0gZnJvbSAnLi9yZXNvbHZlLXRoZW1lJztcblxuZXhwb3J0IGNvbnN0IFRIRU1FX1NUT1JBR0VfTkFNRSA9ICdAb2R4L2FuZ3VsYXIvdGhlbWluZzpTZWxlY3RlZFRoZW1lJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVUaGVtZShzdG9yYWdlOiBTdG9yYWdlIHwgbnVsbCB8IHVuZGVmaW5lZCwgdGhlbWU6IFRoZW1lKTogdm9pZCB7XG4gIHRyeSB7XG4gICAgc3RvcmFnZT8uc2V0SXRlbShUSEVNRV9TVE9SQUdFX05BTUUsIHRoZW1lKTtcbiAgfSBjYXRjaCB7XG4gICAgLy9cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFRoZW1lKHN0b3JhZ2U/OiBTdG9yYWdlIHwgbnVsbCk6IFRoZW1lIHwgbnVsbCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHJlc29sdmVUaGVtZShzdG9yYWdlPy5nZXRJdGVtKFRIRU1FX1NUT1JBR0VfTkFNRSkpID8/IG51bGw7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './theme';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdGhlbWluZy9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGhlbWUnO1xuIl19
@@ -0,0 +1,6 @@
1
+ export const Theme = {
2
+ DARK: 'dark',
3
+ LIGHT: 'light',
4
+ };
5
+ export const availableThemes = Object.values(Theme);
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdGhlbWluZy9zcmMvbGliL21vZGVscy90aGVtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsT0FBTztDQUNOLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFRoZW1lID0gKHR5cGVvZiBUaGVtZSlba2V5b2YgdHlwZW9mIFRoZW1lXTtcbmV4cG9ydCBjb25zdCBUaGVtZSA9IHtcbiAgREFSSzogJ2RhcmsnLFxuICBMSUdIVDogJ2xpZ2h0Jyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBhdmFpbGFibGVUaGVtZXMgPSBPYmplY3QudmFsdWVzKFRoZW1lKTtcbiJdfQ==