@odx/angular 1.0.0-rc.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (749) hide show
  1. package/README.md +6 -6
  2. package/cdk/a11y/README.md +3 -0
  3. package/cdk/a11y/index.d.ts +2 -0
  4. package/cdk/a11y/lib/a11y.module.d.ts +11 -0
  5. package/cdk/a11y/lib/directives/index.d.ts +3 -0
  6. package/cdk/a11y/lib/directives/interactive.directive.d.ts +11 -0
  7. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +10 -0
  8. package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +12 -0
  9. package/cdk/active-indicator/lib/active-indicator.directive.d.ts +2 -2
  10. package/cdk/active-indicator/lib/models/active-indicator-direction.d.ts +1 -1
  11. package/cdk/active-indicator/lib/models/active-indicator-position.d.ts +1 -1
  12. package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +3 -1
  13. package/cdk/connected-overlay/lib/connected-overlay.component.d.ts +3 -3
  14. package/cdk/connected-overlay/lib/helpers/index.d.ts +0 -2
  15. package/cdk/connected-overlay/lib/models/connected-overlay-options.d.ts +4 -2
  16. package/cdk/custom-form-control/lib/control.directive.d.ts +1 -1
  17. package/cdk/custom-form-control/lib/custom-form-control.d.ts +5 -1
  18. package/cdk/dynamic-view/lib/dynamic-view.component.d.ts +1 -1
  19. package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +1 -1
  20. package/cdk/dynamic-view/lib/facade/dynamic-content.d.ts +3 -3
  21. package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +1 -0
  22. package/cdk/expandable/index.d.ts +1 -0
  23. package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +2 -2
  24. package/cdk/expandable/lib/directives/extandable-container.directive.d.ts +2 -2
  25. package/cdk/expandable/lib/expandable.tokens.d.ts +3 -0
  26. package/cdk/expandable/lib/facade/expandable-container.d.ts +4 -4
  27. package/cdk/expandable/lib/facade/expandable-item.d.ts +6 -6
  28. package/cdk/radio-group-control/lib/radio-control.directive.d.ts +1 -1
  29. package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +3 -2
  30. package/components/accordion/lib/accordion.component.d.ts +1 -1
  31. package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +1 -1
  32. package/components/accordion/lib/directives/accordion-item-title.d.ts +1 -1
  33. package/components/action-group/action-group.component.d.ts +1 -1
  34. package/components/area-header/area-header.component.d.ts +1 -1
  35. package/components/area-header/directives/area-header-content.directive.d.ts +1 -1
  36. package/components/area-header/directives/area-header-subtitle.directive.d.ts +1 -1
  37. package/components/area-header/models/area-header-size.d.ts +1 -1
  38. package/components/avatar/lib/avatar.component.d.ts +3 -2
  39. package/components/avatar/lib/models/avatar-size.d.ts +1 -1
  40. package/components/avatar/lib/models/avatar-variant.d.ts +5 -0
  41. package/components/avatar/lib/models/index.d.ts +1 -0
  42. package/components/badge/lib/badge.component.d.ts +7 -17
  43. package/components/badge/lib/badge.directive.d.ts +17 -13
  44. package/components/badge/lib/models/badge-variant.d.ts +1 -1
  45. package/components/badge/lib/models/index.d.ts +0 -1
  46. package/components/bar/README.md +3 -0
  47. package/components/bar/index.d.ts +5 -0
  48. package/components/bar/lib/bar.component.d.ts +6 -0
  49. package/components/bar/lib/bar.module.d.ts +10 -0
  50. package/components/bar/lib/directives/bar-button.directive.d.ts +10 -0
  51. package/components/bar/lib/directives/bar-label.directive.d.ts +6 -0
  52. package/components/bar/lib/models/bar-button-variant.d.ts +5 -0
  53. package/components/breadcrumbs/README.md +3 -0
  54. package/components/breadcrumbs/index.d.ts +1 -0
  55. package/components/breadcrumbs/lib/breadcrumbs.component.d.ts +17 -0
  56. package/components/button/index.d.ts +1 -0
  57. package/components/button/lib/button.component.d.ts +3 -4
  58. package/components/button/lib/directives/index.d.ts +1 -0
  59. package/components/button/lib/directives/responsive-button.directive.d.ts +6 -0
  60. package/components/button/lib/models/button-size.d.ts +1 -1
  61. package/components/button/lib/models/button-variant.d.ts +1 -1
  62. package/components/button-group/lib/button-group.component.d.ts +1 -1
  63. package/components/card/README.md +3 -0
  64. package/components/card/index.d.ts +5 -0
  65. package/components/card/lib/card.component.d.ts +20 -0
  66. package/components/card/lib/card.module.d.ts +16 -0
  67. package/components/card/lib/components/card-footer/card-footer.component.d.ts +5 -0
  68. package/components/card/lib/components/index.d.ts +2 -0
  69. package/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.d.ts +5 -0
  70. package/components/card/lib/directives/card-content.directive.d.ts +5 -0
  71. package/components/card/lib/directives/card-title.directive.d.ts +5 -0
  72. package/components/card/lib/directives/index.d.ts +2 -0
  73. package/components/card/lib/models/card-variant.d.ts +6 -0
  74. package/components/card/lib/models/index.d.ts +1 -0
  75. package/components/checkbox/lib/checkbox.component.d.ts +2 -1
  76. package/components/checkbox/lib/checkbox.validator.d.ts +1 -1
  77. package/components/chip/lib/chip.component.d.ts +1 -1
  78. package/components/chip/lib/models/chip-size.d.ts +1 -1
  79. package/components/chip/lib/models/chip-variant.d.ts +1 -1
  80. package/components/circular-progress/lib/circular-progress.component.d.ts +3 -2
  81. package/components/circular-progress/lib/models/circular-progress-size.d.ts +1 -1
  82. package/components/content-box/lib/content-box.component.d.ts +1 -1
  83. package/components/content-box/lib/content-box.module.d.ts +2 -2
  84. package/components/content-box/lib/directives/{content-box-footer-directive.d.ts → content-box-footer.directive.d.ts} +1 -1
  85. package/components/content-box/lib/directives/{content-box-header-directive.d.ts → content-box-header.directive.d.ts} +1 -1
  86. package/components/content-box/lib/directives/index.d.ts +2 -2
  87. package/components/dropdown/index.d.ts +1 -0
  88. package/components/dropdown/lib/dropdown.component.d.ts +2 -1
  89. package/components/dropdown/lib/dropdown.directive.d.ts +11 -5
  90. package/components/dropdown/lib/helpers/close-current-dropdown.d.ts +1 -0
  91. package/components/dropdown/lib/helpers/index.d.ts +1 -0
  92. package/components/dropdown/lib/models/close-dropdown-event.d.ts +4 -0
  93. package/components/dropdown/lib/models/dropdown-options.d.ts +1 -1
  94. package/components/dropdown/lib/models/index.d.ts +1 -0
  95. package/components/form-field/index.d.ts +1 -0
  96. package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +1 -1
  97. package/components/form-field/lib/components/form-group/form-group.component.d.ts +1 -1
  98. package/components/form-field/lib/directives/form-field-control.directive.d.ts +1 -1
  99. package/components/form-field/lib/directives/form-field-error.directive.d.ts +1 -1
  100. package/components/form-field/lib/directives/form-field-hint.directive.d.ts +1 -1
  101. package/components/form-field/lib/directives/form-field-label.directive.d.ts +1 -1
  102. package/components/form-field/lib/directives/form.directive.d.ts +1 -1
  103. package/components/form-field/lib/form-field.component.d.ts +8 -2
  104. package/components/form-field/lib/form-field.config.d.ts +3 -2
  105. package/components/form-field/lib/form-field.module.d.ts +0 -4
  106. package/components/form-field/lib/models/form-field-error-resolver.d.ts +1 -1
  107. package/components/form-field/lib/models/form-field-error.d.ts +1 -0
  108. package/components/form-field/lib/models/form-field-variant.d.ts +5 -0
  109. package/components/form-field/lib/models/index.d.ts +1 -0
  110. package/components/form-field/lib/services/form-field-error.service.d.ts +1 -0
  111. package/components/header/lib/directives/header-avatar.directive.d.ts +5 -2
  112. package/components/header/lib/directives/header-title.directive.d.ts +1 -1
  113. package/components/header/lib/header.component.d.ts +1 -1
  114. package/components/header/lib/header.module.d.ts +2 -3
  115. package/components/icon/index.d.ts +1 -0
  116. package/components/icon/lib/icon.component.d.ts +3 -5
  117. package/components/icon/lib/icon.config.d.ts +4 -0
  118. package/components/icon/lib/models/icon-size.d.ts +2 -1
  119. package/components/inline-message/index.d.ts +1 -1
  120. package/components/inline-message/lib/inline-message.component.d.ts +2 -2
  121. package/components/inline-message/lib/models/index.d.ts +1 -0
  122. package/components/inline-message/lib/models/inline-message-variant.d.ts +1 -1
  123. package/components/link/link.directive.d.ts +2 -4
  124. package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +14 -0
  125. package/components/list/lib/components/index.d.ts +2 -1
  126. package/components/list/lib/components/{list-item.component.d.ts → list-item/list-item.component.d.ts} +2 -4
  127. package/components/list/lib/list.component.d.ts +5 -2
  128. package/components/list/lib/list.module.d.ts +4 -3
  129. package/components/loading-spinner/lib/loading-spinner.component.d.ts +1 -1
  130. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +5 -3
  131. package/components/logo/logo.directive.d.ts +1 -1
  132. package/components/logo/models/logo-size.d.ts +1 -1
  133. package/components/logo/models/logo-variant.d.ts +1 -1
  134. package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +1 -1
  135. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +4 -4
  136. package/components/main-menu/lib/main-menu.component.d.ts +1 -1
  137. package/components/mainfilter-group/README.md +3 -0
  138. package/components/mainfilter-group/index.d.ts +1 -0
  139. package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +6 -0
  140. package/components/menu/README.md +3 -0
  141. package/components/menu/index.d.ts +4 -0
  142. package/components/menu/lib/directives/index.d.ts +1 -0
  143. package/components/menu/lib/directives/menu-item.directive.d.ts +8 -0
  144. package/components/menu/lib/menu.component.d.ts +11 -0
  145. package/components/menu/lib/menu.directive.d.ts +17 -0
  146. package/components/menu/lib/menu.module.d.ts +10 -0
  147. package/components/modal/index.d.ts +1 -1
  148. package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +10 -0
  149. package/components/modal/lib/components/index.d.ts +2 -0
  150. package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +1 -1
  151. package/components/modal/lib/components/modal-header/modal-header.component.d.ts +1 -1
  152. package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +11 -0
  153. package/components/modal/lib/directives/modal-close.directive.d.ts +2 -2
  154. package/components/modal/lib/directives/modal-content.directive.d.ts +1 -1
  155. package/components/modal/lib/directives/modal-dismiss.directive.d.ts +1 -1
  156. package/components/modal/lib/helpers/inject-modal-ref.d.ts +1 -1
  157. package/components/modal/lib/modal.component.d.ts +7 -3
  158. package/components/modal/lib/modal.config.d.ts +2 -2
  159. package/components/modal/lib/modal.directive.d.ts +1 -1
  160. package/components/modal/lib/modal.module.d.ts +9 -12
  161. package/components/modal/lib/modal.service.d.ts +9 -4
  162. package/components/modal/lib/models/basic-modal-options.d.ts +17 -0
  163. package/components/modal/lib/models/index.d.ts +2 -0
  164. package/components/modal/lib/models/modal-hero-variant.d.ts +7 -0
  165. package/components/modal/lib/models/modal-options.d.ts +2 -1
  166. package/components/modal/lib/models/modal-ref.d.ts +6 -4
  167. package/components/modal/lib/models/modal-size.d.ts +2 -1
  168. package/components/modal/lib/models/modal-type.d.ts +1 -1
  169. package/components/modal/lib/models/modal-variant.d.ts +1 -1
  170. package/components/navigation-back/README.md +3 -0
  171. package/components/navigation-back/index.d.ts +1 -0
  172. package/components/navigation-back/lib/navigation-back.component.d.ts +6 -0
  173. package/components/progress/lib/progress.component.d.ts +2 -2
  174. package/components/radio-group/lib/components/radio-button/radio-button.component.d.ts +2 -2
  175. package/components/radio-group/lib/radio-group.component.d.ts +1 -1
  176. package/components/rail-navigation/lib/components/rail-navigation-item.component.d.ts +2 -4
  177. package/components/rail-navigation/lib/rail-navigation.component.d.ts +1 -1
  178. package/components/select/lib/abstract/select-control-option.d.ts +2 -0
  179. package/components/select/lib/abstract/select-control.d.ts +1 -0
  180. package/components/select/lib/components/option/option.component.d.ts +6 -2
  181. package/components/select/lib/directives/select-search-field.directive.d.ts +1 -1
  182. package/components/select/lib/select.component.d.ts +12 -7
  183. package/components/slider/lib/slider.directive.d.ts +2 -3
  184. package/components/spinbox/lib/spinbox.component.d.ts +2 -2
  185. package/components/switch/lib/switch.component.d.ts +2 -1
  186. package/components/switch/lib/switch.validator.d.ts +1 -1
  187. package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +6 -3
  188. package/components/tab-bar/lib/tab-bar.component.d.ts +3 -3
  189. package/components/toast/README.md +3 -0
  190. package/components/toast/index.d.ts +5 -0
  191. package/components/toast/lib/components/index.d.ts +2 -0
  192. package/components/toast/lib/components/toast-container/toast-container.component.d.ts +23 -0
  193. package/components/toast/lib/components/toast-item/toast-item.component.d.ts +20 -0
  194. package/components/toast/lib/models/index.d.ts +5 -0
  195. package/components/toast/lib/models/toast-action.d.ts +7 -0
  196. package/components/toast/lib/models/toast-ref.d.ts +7 -0
  197. package/components/toast/lib/models/toast-variant.d.ts +7 -0
  198. package/components/toast/lib/models/toast.d.ts +10 -0
  199. package/components/toast/lib/models/toast.options.d.ts +4 -0
  200. package/components/toast/lib/toast.config.d.ts +3 -0
  201. package/components/toast/lib/toast.module.d.ts +9 -0
  202. package/components/toast/lib/toast.service.d.ts +16 -0
  203. package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +5 -2
  204. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +9 -4
  205. package/components/tooltip/lib/models/tooltip-size.d.ts +1 -1
  206. package/components/tooltip/lib/models/tooltip-trigger.d.ts +1 -1
  207. package/components/tooltip/lib/tooltip.component.d.ts +4 -3
  208. package/components/tooltip/lib/tooltip.directive.d.ts +4 -4
  209. package/esm2020/animations/lib/expand.mjs +6 -4
  210. package/esm2020/cdk/a11y/index.mjs +3 -0
  211. package/esm2020/cdk/a11y/lib/a11y.module.mjs +19 -0
  212. package/esm2020/cdk/a11y/lib/directives/index.mjs +4 -0
  213. package/esm2020/cdk/a11y/lib/directives/interactive.directive.mjs +49 -0
  214. package/esm2020/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +26 -0
  215. package/esm2020/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +40 -0
  216. package/esm2020/cdk/a11y/odx-angular-cdk-a11y.mjs +5 -0
  217. package/esm2020/cdk/active-indicator/lib/active-indicator.directive.mjs +4 -4
  218. package/esm2020/cdk/checkbox-control/lib/checkbox-control.directive.mjs +16 -12
  219. package/esm2020/cdk/connected-overlay/lib/connected-overlay.component.mjs +12 -8
  220. package/esm2020/cdk/connected-overlay/lib/connected-overlay.service.mjs +5 -5
  221. package/esm2020/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +6 -8
  222. package/esm2020/cdk/connected-overlay/lib/helpers/index.mjs +1 -3
  223. package/esm2020/cdk/connected-overlay/lib/models/connected-overlay-options.mjs +4 -2
  224. package/esm2020/cdk/custom-form-control/lib/control.directive.mjs +4 -4
  225. package/esm2020/cdk/custom-form-control/lib/custom-form-control.mjs +44 -20
  226. package/esm2020/cdk/dynamic-view/lib/dynamic-view.component.mjs +4 -4
  227. package/esm2020/cdk/dynamic-view/lib/dynamic-view.directive.mjs +7 -5
  228. package/esm2020/cdk/dynamic-view/lib/dynamic-view.service.mjs +4 -4
  229. package/esm2020/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +15 -4
  230. package/esm2020/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +2 -2
  231. package/esm2020/cdk/expandable/index.mjs +2 -1
  232. package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +7 -8
  233. package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +5 -7
  234. package/esm2020/cdk/expandable/lib/expandable.module.mjs +5 -5
  235. package/esm2020/cdk/expandable/lib/expandable.tokens.mjs +3 -0
  236. package/esm2020/cdk/expandable/lib/facade/expandable-container.mjs +2 -3
  237. package/esm2020/cdk/expandable/lib/facade/expandable-item.mjs +2 -3
  238. package/esm2020/cdk/radio-group-control/lib/radio-control.directive.mjs +10 -10
  239. package/esm2020/cdk/radio-group-control/lib/radio-group-control.directive.mjs +14 -10
  240. package/esm2020/cdk/radio-group-control/lib/radio-group-control.module.mjs +5 -5
  241. package/esm2020/components/accordion/lib/accordion.component.mjs +7 -7
  242. package/esm2020/components/accordion/lib/accordion.module.mjs +5 -5
  243. package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +8 -6
  244. package/esm2020/components/accordion/lib/directives/accordion-item-title.mjs +4 -4
  245. package/esm2020/components/action-group/action-group.component.mjs +5 -5
  246. package/esm2020/components/area-header/area-header.component.mjs +7 -6
  247. package/esm2020/components/area-header/area-header.module.mjs +5 -5
  248. package/esm2020/components/area-header/directives/area-header-content.directive.mjs +4 -4
  249. package/esm2020/components/area-header/directives/area-header-subtitle.directive.mjs +4 -4
  250. package/esm2020/components/avatar/lib/avatar.component.mjs +14 -8
  251. package/esm2020/components/avatar/lib/models/avatar-variant.mjs +5 -0
  252. package/esm2020/components/avatar/lib/models/index.mjs +2 -1
  253. package/esm2020/components/badge/lib/badge.component.mjs +18 -65
  254. package/esm2020/components/badge/lib/badge.directive.mjs +50 -25
  255. package/esm2020/components/badge/lib/models/index.mjs +1 -2
  256. package/esm2020/components/bar/index.mjs +6 -0
  257. package/esm2020/components/bar/lib/bar.component.mjs +21 -0
  258. package/esm2020/components/bar/lib/bar.module.mjs +20 -0
  259. package/esm2020/components/bar/lib/directives/bar-button.directive.mjs +38 -0
  260. package/esm2020/components/bar/lib/directives/bar-label.directive.mjs +24 -0
  261. package/esm2020/components/bar/lib/models/bar-button-variant.mjs +5 -0
  262. package/esm2020/components/bar/odx-angular-components-bar.mjs +5 -0
  263. package/esm2020/components/breadcrumbs/index.mjs +2 -0
  264. package/esm2020/components/breadcrumbs/lib/breadcrumbs.component.mjs +50 -0
  265. package/esm2020/components/{launch-tile/odx-angular-components-launch-tile.mjs → breadcrumbs/odx-angular-components-breadcrumbs.mjs} +1 -1
  266. package/esm2020/components/button/index.mjs +2 -1
  267. package/esm2020/components/button/lib/button.component.mjs +12 -18
  268. package/esm2020/components/button/lib/directives/index.mjs +2 -0
  269. package/esm2020/components/button/lib/directives/responsive-button.directive.mjs +24 -0
  270. package/esm2020/components/button-group/lib/button-group.component.mjs +4 -4
  271. package/esm2020/components/card/index.mjs +6 -0
  272. package/esm2020/components/card/lib/card.component.mjs +67 -0
  273. package/esm2020/components/card/lib/card.module.mjs +53 -0
  274. package/esm2020/components/card/lib/components/card-footer/card-footer.component.mjs +13 -0
  275. package/esm2020/components/card/lib/components/index.mjs +3 -0
  276. package/esm2020/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.mjs +13 -0
  277. package/esm2020/components/card/lib/directives/card-content.directive.mjs +17 -0
  278. package/esm2020/components/card/lib/directives/card-title.directive.mjs +17 -0
  279. package/esm2020/components/card/lib/directives/index.mjs +3 -0
  280. package/esm2020/components/card/lib/models/card-variant.mjs +6 -0
  281. package/esm2020/components/card/lib/models/index.mjs +2 -0
  282. package/esm2020/components/card/odx-angular-components-card.mjs +5 -0
  283. package/esm2020/components/checkbox/lib/checkbox.component.mjs +8 -7
  284. package/esm2020/components/checkbox/lib/checkbox.module.mjs +5 -5
  285. package/esm2020/components/checkbox/lib/checkbox.validator.mjs +4 -4
  286. package/esm2020/components/chip/lib/chip.component.mjs +5 -5
  287. package/esm2020/components/circular-progress/lib/circular-progress.component.mjs +9 -7
  288. package/esm2020/components/content-box/lib/content-box.component.mjs +4 -4
  289. package/esm2020/components/content-box/lib/content-box.module.mjs +7 -7
  290. package/esm2020/components/content-box/lib/directives/{content-box-footer-directive.mjs → content-box-footer.directive.mjs} +4 -4
  291. package/esm2020/components/content-box/lib/directives/{content-box-header-directive.mjs → content-box-header.directive.mjs} +4 -4
  292. package/esm2020/components/content-box/lib/directives/index.mjs +3 -3
  293. package/esm2020/components/dropdown/index.mjs +2 -1
  294. package/esm2020/components/dropdown/lib/dropdown.component.mjs +15 -6
  295. package/esm2020/components/dropdown/lib/dropdown.directive.mjs +38 -18
  296. package/esm2020/components/dropdown/lib/dropdown.module.mjs +5 -5
  297. package/esm2020/components/dropdown/lib/helpers/close-current-dropdown.mjs +5 -0
  298. package/esm2020/components/dropdown/lib/helpers/index.mjs +2 -0
  299. package/esm2020/components/dropdown/lib/models/close-dropdown-event.mjs +7 -0
  300. package/esm2020/components/dropdown/lib/models/dropdown-options.mjs +3 -2
  301. package/esm2020/components/dropdown/lib/models/index.mjs +2 -1
  302. package/esm2020/components/form-field/index.mjs +2 -1
  303. package/esm2020/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +4 -4
  304. package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +4 -4
  305. package/esm2020/components/form-field/lib/directives/form-field-control.directive.mjs +6 -6
  306. package/esm2020/components/form-field/lib/directives/form-field-error.directive.mjs +4 -4
  307. package/esm2020/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -4
  308. package/esm2020/components/form-field/lib/directives/form-field-label.directive.mjs +4 -4
  309. package/esm2020/components/form-field/lib/directives/form.directive.mjs +4 -4
  310. package/esm2020/components/form-field/lib/form-field.component.mjs +29 -11
  311. package/esm2020/components/form-field/lib/form-field.config.mjs +4 -3
  312. package/esm2020/components/form-field/lib/form-field.module.mjs +5 -13
  313. package/esm2020/components/form-field/lib/form-field.service.mjs +4 -4
  314. package/esm2020/components/form-field/lib/models/form-field-error.mjs +1 -1
  315. package/esm2020/components/form-field/lib/models/form-field-variant.mjs +5 -0
  316. package/esm2020/components/form-field/lib/models/index.mjs +2 -1
  317. package/esm2020/components/form-field/lib/services/form-field-error.service.mjs +16 -16
  318. package/esm2020/components/header/lib/directives/header-avatar.directive.mjs +13 -6
  319. package/esm2020/components/header/lib/directives/header-title.directive.mjs +4 -4
  320. package/esm2020/components/header/lib/header.component.mjs +5 -6
  321. package/esm2020/components/header/lib/header.module.mjs +7 -11
  322. package/esm2020/components/icon/index.mjs +2 -1
  323. package/esm2020/components/icon/lib/icon.component.mjs +12 -21
  324. package/esm2020/components/icon/lib/icon.config.mjs +5 -0
  325. package/esm2020/components/icon/lib/models/icon-size.mjs +2 -1
  326. package/esm2020/components/inline-message/index.mjs +2 -2
  327. package/esm2020/components/inline-message/lib/inline-message.component.mjs +9 -10
  328. package/esm2020/components/inline-message/lib/models/index.mjs +2 -0
  329. package/esm2020/components/link/link.directive.mjs +7 -14
  330. package/esm2020/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +49 -0
  331. package/esm2020/components/list/lib/components/index.mjs +3 -2
  332. package/esm2020/components/list/lib/components/list-item/list-item.component.mjs +40 -0
  333. package/esm2020/components/list/lib/list.component.mjs +30 -11
  334. package/esm2020/components/list/lib/list.module.mjs +7 -7
  335. package/esm2020/components/loading-spinner/lib/loading-spinner.component.mjs +4 -4
  336. package/esm2020/components/loading-spinner/lib/loading-spinner.directive.mjs +18 -11
  337. package/esm2020/components/loading-spinner/lib/loading-spinner.module.mjs +5 -5
  338. package/esm2020/components/logo/logo.directive.mjs +8 -6
  339. package/esm2020/components/main-menu/lib/directives/main-menu-button.directive.mjs +4 -4
  340. package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +15 -13
  341. package/esm2020/components/main-menu/lib/main-menu.component.mjs +9 -9
  342. package/esm2020/components/main-menu/lib/main-menu.module.mjs +5 -5
  343. package/esm2020/components/main-menu/lib/main-menu.service.mjs +4 -4
  344. package/esm2020/components/mainfilter-group/index.mjs +2 -0
  345. package/esm2020/components/mainfilter-group/lib/mainfilter-group.component.mjs +21 -0
  346. package/esm2020/components/mainfilter-group/odx-angular-components-mainfilter-group.mjs +5 -0
  347. package/esm2020/components/menu/index.mjs +5 -0
  348. package/esm2020/components/menu/lib/directives/index.mjs +2 -0
  349. package/esm2020/components/menu/lib/directives/menu-item.directive.mjs +37 -0
  350. package/esm2020/components/menu/lib/menu.component.mjs +46 -0
  351. package/esm2020/components/menu/lib/menu.directive.mjs +58 -0
  352. package/esm2020/components/menu/lib/menu.module.mjs +20 -0
  353. package/esm2020/components/menu/odx-angular-components-menu.mjs +5 -0
  354. package/esm2020/components/modal/index.mjs +2 -2
  355. package/esm2020/components/modal/lib/components/basic-modal/basic-modal.component.mjs +42 -0
  356. package/esm2020/components/modal/lib/components/index.mjs +3 -1
  357. package/esm2020/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -4
  358. package/esm2020/components/modal/lib/components/modal-header/modal-header.component.mjs +5 -5
  359. package/esm2020/components/modal/lib/components/modal-hero/modal-hero.component.mjs +39 -0
  360. package/esm2020/components/modal/lib/directives/modal-close.directive.mjs +10 -5
  361. package/esm2020/components/modal/lib/directives/modal-content.directive.mjs +4 -4
  362. package/esm2020/components/modal/lib/directives/modal-dismiss.directive.mjs +4 -4
  363. package/esm2020/components/modal/lib/helpers/inject-modal-ref.mjs +1 -1
  364. package/esm2020/components/modal/lib/modal.component.mjs +20 -10
  365. package/esm2020/components/modal/lib/modal.config.mjs +4 -3
  366. package/esm2020/components/modal/lib/modal.directive.mjs +4 -4
  367. package/esm2020/components/modal/lib/modal.module.mjs +33 -15
  368. package/esm2020/components/modal/lib/modal.service.mjs +46 -26
  369. package/esm2020/components/modal/lib/models/basic-modal-options.mjs +2 -0
  370. package/esm2020/components/modal/lib/models/index.mjs +3 -1
  371. package/esm2020/components/modal/lib/models/modal-hero-variant.mjs +7 -0
  372. package/esm2020/components/modal/lib/models/modal-options.mjs +1 -1
  373. package/esm2020/components/modal/lib/models/modal-ref.mjs +20 -12
  374. package/esm2020/components/modal/lib/models/modal-size.mjs +2 -1
  375. package/esm2020/components/navigation-back/index.mjs +2 -0
  376. package/esm2020/components/navigation-back/lib/navigation-back.component.mjs +22 -0
  377. package/esm2020/components/navigation-back/odx-angular-components-navigation-back.mjs +5 -0
  378. package/esm2020/components/progress/lib/progress.component.mjs +6 -6
  379. package/esm2020/components/radio-group/lib/components/radio-button/radio-button.component.mjs +8 -9
  380. package/esm2020/components/radio-group/lib/radio-group.component.mjs +9 -9
  381. package/esm2020/components/radio-group/lib/radio-group.module.mjs +5 -5
  382. package/esm2020/components/rail-navigation/lib/components/rail-navigation-item.component.mjs +8 -13
  383. package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +4 -4
  384. package/esm2020/components/rail-navigation/lib/rail-navigation.module.mjs +5 -5
  385. package/esm2020/components/select/lib/abstract/select-control-option.mjs +1 -1
  386. package/esm2020/components/select/lib/abstract/select-control.mjs +1 -1
  387. package/esm2020/components/select/lib/components/option/option.component.mjs +38 -21
  388. package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +4 -4
  389. package/esm2020/components/select/lib/pipes/select-search-filter.pipe.mjs +4 -4
  390. package/esm2020/components/select/lib/select.component.mjs +85 -42
  391. package/esm2020/components/select/lib/select.module.mjs +5 -5
  392. package/esm2020/components/slider/lib/slider.directive.mjs +7 -10
  393. package/esm2020/components/spinbox/lib/spinbox.component.mjs +9 -9
  394. package/esm2020/components/switch/lib/switch.component.mjs +8 -7
  395. package/esm2020/components/switch/lib/switch.module.mjs +5 -5
  396. package/esm2020/components/switch/lib/switch.validator.mjs +4 -4
  397. package/esm2020/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +18 -9
  398. package/esm2020/components/tab-bar/lib/tab-bar.component.mjs +10 -11
  399. package/esm2020/components/tab-bar/lib/tab-bar.module.mjs +5 -5
  400. package/esm2020/components/toast/index.mjs +6 -0
  401. package/esm2020/components/toast/lib/components/index.mjs +3 -0
  402. package/esm2020/components/toast/lib/components/toast-container/toast-container.component.mjs +87 -0
  403. package/esm2020/components/toast/lib/components/toast-item/toast-item.component.mjs +75 -0
  404. package/esm2020/components/toast/lib/models/index.mjs +6 -0
  405. package/esm2020/components/toast/lib/models/toast-action.mjs +2 -0
  406. package/esm2020/components/toast/lib/models/toast-ref.mjs +2 -0
  407. package/esm2020/components/toast/lib/models/toast-variant.mjs +7 -0
  408. package/esm2020/components/toast/lib/models/toast.mjs +2 -0
  409. package/esm2020/components/toast/lib/models/toast.options.mjs +2 -0
  410. package/esm2020/components/toast/lib/toast.config.mjs +6 -0
  411. package/esm2020/components/toast/lib/toast.module.mjs +18 -0
  412. package/esm2020/components/toast/lib/toast.service.mjs +38 -0
  413. package/esm2020/components/toast/odx-angular-components-toast.mjs +5 -0
  414. package/esm2020/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +14 -12
  415. package/esm2020/components/toggle-button-group/lib/toggle-button-group.component.mjs +32 -13
  416. package/esm2020/components/toggle-button-group/lib/toggle-button-group.module.mjs +5 -5
  417. package/esm2020/components/tooltip/lib/tooltip.component.mjs +4 -4
  418. package/esm2020/components/tooltip/lib/tooltip.directive.mjs +11 -12
  419. package/esm2020/internal/decorators/css-component.mjs +3 -8
  420. package/esm2020/internal/decorators/css-modifier.mjs +21 -18
  421. package/esm2020/internal/helpers/decorator-property-name.mjs +4 -0
  422. package/esm2020/internal/helpers/deepmerge.mjs +6 -0
  423. package/esm2020/internal/helpers/index.mjs +3 -1
  424. package/esm2020/internal/helpers/with-mutiple-descriptors.mjs +22 -13
  425. package/esm2020/lib/controllers/controller.mjs +6 -6
  426. package/esm2020/lib/controllers/disabled.controller.mjs +29 -44
  427. package/esm2020/lib/controllers/readonly.controller.mjs +31 -22
  428. package/esm2020/lib/core.module.mjs +7 -6
  429. package/esm2020/lib/directives/click-outside.directive.mjs +17 -13
  430. package/esm2020/lib/directives/delegate-focus.directive.mjs +40 -0
  431. package/esm2020/lib/directives/index.mjs +4 -1
  432. package/esm2020/lib/directives/with-disabled-state.directive.mjs +41 -0
  433. package/esm2020/lib/directives/with-tabindex.directive.mjs +23 -0
  434. package/esm2020/lib/services/window-ref.mjs +18 -7
  435. package/esm2020/theming/index.mjs +5 -0
  436. package/esm2020/theming/lib/helpers/index.mjs +4 -0
  437. package/esm2020/theming/lib/helpers/prefers-dark-theme.mjs +4 -0
  438. package/esm2020/theming/lib/helpers/resolve-theme.mjs +5 -0
  439. package/esm2020/theming/lib/helpers/theme-storage.mjs +19 -0
  440. package/esm2020/theming/lib/models/index.mjs +2 -0
  441. package/esm2020/theming/lib/models/theme.mjs +6 -0
  442. package/esm2020/theming/lib/theming.config.mjs +21 -0
  443. package/esm2020/theming/lib/theming.service.mjs +42 -0
  444. package/esm2020/theming/odx-angular-theming.mjs +5 -0
  445. package/esm2020/utils/lib/decorators/transform.mjs +3 -3
  446. package/esm2020/utils/lib/helpers/build-url.mjs +4 -0
  447. package/esm2020/utils/lib/helpers/dom.mjs +9 -2
  448. package/esm2020/utils/lib/helpers/event-manager.mjs +4 -4
  449. package/esm2020/utils/lib/helpers/get-axis.mjs +14 -0
  450. package/esm2020/utils/lib/helpers/get-opposite-side.mjs +15 -0
  451. package/esm2020/utils/lib/helpers/get-side.mjs +4 -0
  452. package/esm2020/utils/lib/helpers/get-unique-id.mjs +7 -0
  453. package/esm2020/utils/lib/helpers/index.mjs +8 -2
  454. package/esm2020/utils/lib/helpers/provide-config.mjs +25 -0
  455. package/esm2020/utils/lib/helpers/queue.mjs +49 -0
  456. package/esm2020/utils/lib/types/axis.mjs +5 -0
  457. package/esm2020/utils/lib/types/index.mjs +4 -1
  458. package/esm2020/utils/lib/types/position.mjs +15 -0
  459. package/esm2020/utils/lib/types/side.mjs +7 -0
  460. package/fesm2015/odx-angular-animations.mjs +5 -3
  461. package/fesm2015/odx-angular-animations.mjs.map +1 -1
  462. package/fesm2015/odx-angular-cdk-a11y.mjs +131 -0
  463. package/fesm2015/odx-angular-cdk-a11y.mjs.map +1 -0
  464. package/fesm2015/odx-angular-cdk-active-indicator.mjs +3 -3
  465. package/fesm2015/odx-angular-cdk-active-indicator.mjs.map +1 -1
  466. package/fesm2015/odx-angular-cdk-checkbox-control.mjs +16 -12
  467. package/fesm2015/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  468. package/fesm2015/odx-angular-cdk-connected-overlay.mjs +20 -33
  469. package/fesm2015/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  470. package/fesm2015/odx-angular-cdk-custom-form-control.mjs +47 -24
  471. package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  472. package/fesm2015/odx-angular-cdk-dynamic-view.mjs +26 -12
  473. package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  474. package/fesm2015/odx-angular-cdk-expandable.mjs +16 -22
  475. package/fesm2015/odx-angular-cdk-expandable.mjs.map +1 -1
  476. package/fesm2015/odx-angular-cdk-radio-group-control.mjs +26 -23
  477. package/fesm2015/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  478. package/fesm2015/odx-angular-components-accordion.mjs +20 -18
  479. package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
  480. package/fesm2015/odx-angular-components-action-group.mjs +4 -4
  481. package/fesm2015/odx-angular-components-action-group.mjs.map +1 -1
  482. package/fesm2015/odx-angular-components-area-header.mjs +16 -15
  483. package/fesm2015/odx-angular-components-area-header.mjs.map +1 -1
  484. package/fesm2015/odx-angular-components-avatar.mjs +18 -7
  485. package/fesm2015/odx-angular-components-avatar.mjs.map +1 -1
  486. package/fesm2015/odx-angular-components-badge.mjs +63 -97
  487. package/fesm2015/odx-angular-components-badge.mjs.map +1 -1
  488. package/fesm2015/odx-angular-components-bar.mjs +95 -0
  489. package/fesm2015/odx-angular-components-bar.mjs.map +1 -0
  490. package/fesm2015/odx-angular-components-breadcrumbs.mjs +56 -0
  491. package/fesm2015/odx-angular-components-breadcrumbs.mjs.map +1 -0
  492. package/fesm2015/odx-angular-components-button-group.mjs +3 -3
  493. package/fesm2015/odx-angular-components-button-group.mjs.map +1 -1
  494. package/fesm2015/odx-angular-components-button.mjs +35 -19
  495. package/fesm2015/odx-angular-components-button.mjs.map +1 -1
  496. package/fesm2015/odx-angular-components-card.mjs +174 -0
  497. package/fesm2015/odx-angular-components-card.mjs.map +1 -0
  498. package/fesm2015/odx-angular-components-checkbox.mjs +14 -13
  499. package/fesm2015/odx-angular-components-checkbox.mjs.map +1 -1
  500. package/fesm2015/odx-angular-components-chip.mjs +4 -4
  501. package/fesm2015/odx-angular-components-chip.mjs.map +1 -1
  502. package/fesm2015/odx-angular-components-circular-progress.mjs +8 -6
  503. package/fesm2015/odx-angular-components-circular-progress.mjs.map +1 -1
  504. package/fesm2015/odx-angular-components-content-box.mjs +13 -13
  505. package/fesm2015/odx-angular-components-content-box.mjs.map +1 -1
  506. package/fesm2015/odx-angular-components-dropdown.mjs +66 -27
  507. package/fesm2015/odx-angular-components-dropdown.mjs.map +1 -1
  508. package/fesm2015/odx-angular-components-form-field.mjs +78 -61
  509. package/fesm2015/odx-angular-components-form-field.mjs.map +1 -1
  510. package/fesm2015/odx-angular-components-header.mjs +25 -23
  511. package/fesm2015/odx-angular-components-header.mjs.map +1 -1
  512. package/fesm2015/odx-angular-components-icon.mjs +17 -22
  513. package/fesm2015/odx-angular-components-icon.mjs.map +1 -1
  514. package/fesm2015/odx-angular-components-inline-message.mjs +7 -8
  515. package/fesm2015/odx-angular-components-inline-message.mjs.map +1 -1
  516. package/fesm2015/odx-angular-components-link.mjs +6 -14
  517. package/fesm2015/odx-angular-components-link.mjs.map +1 -1
  518. package/fesm2015/odx-angular-components-list.mjs +74 -27
  519. package/fesm2015/odx-angular-components-list.mjs.map +1 -1
  520. package/fesm2015/odx-angular-components-loading-spinner.mjs +26 -18
  521. package/fesm2015/odx-angular-components-loading-spinner.mjs.map +1 -1
  522. package/fesm2015/odx-angular-components-logo.mjs +7 -5
  523. package/fesm2015/odx-angular-components-logo.mjs.map +1 -1
  524. package/fesm2015/odx-angular-components-main-menu.mjs +59 -59
  525. package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
  526. package/fesm2015/odx-angular-components-mainfilter-group.mjs +27 -0
  527. package/fesm2015/odx-angular-components-mainfilter-group.mjs.map +1 -0
  528. package/fesm2015/odx-angular-components-menu.mjs +144 -0
  529. package/fesm2015/odx-angular-components-menu.mjs.map +1 -0
  530. package/fesm2015/odx-angular-components-modal.mjs +208 -129
  531. package/fesm2015/odx-angular-components-modal.mjs.map +1 -1
  532. package/fesm2015/odx-angular-components-navigation-back.mjs +28 -0
  533. package/fesm2015/odx-angular-components-navigation-back.mjs.map +1 -0
  534. package/fesm2015/odx-angular-components-progress.mjs +5 -5
  535. package/fesm2015/odx-angular-components-progress.mjs.map +1 -1
  536. package/fesm2015/odx-angular-components-radio-group.mjs +18 -19
  537. package/fesm2015/odx-angular-components-radio-group.mjs.map +1 -1
  538. package/fesm2015/odx-angular-components-rail-navigation.mjs +14 -20
  539. package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -1
  540. package/fesm2015/odx-angular-components-select.mjs +131 -77
  541. package/fesm2015/odx-angular-components-select.mjs.map +1 -1
  542. package/fesm2015/odx-angular-components-slider.mjs +6 -9
  543. package/fesm2015/odx-angular-components-slider.mjs.map +1 -1
  544. package/fesm2015/odx-angular-components-spinbox.mjs +10 -10
  545. package/fesm2015/odx-angular-components-spinbox.mjs.map +1 -1
  546. package/fesm2015/odx-angular-components-switch.mjs +14 -13
  547. package/fesm2015/odx-angular-components-switch.mjs.map +1 -1
  548. package/fesm2015/odx-angular-components-tab-bar.mjs +31 -23
  549. package/fesm2015/odx-angular-components-tab-bar.mjs.map +1 -1
  550. package/fesm2015/odx-angular-components-toast.mjs +215 -0
  551. package/fesm2015/odx-angular-components-toast.mjs.map +1 -0
  552. package/fesm2015/odx-angular-components-toggle-button-group.mjs +50 -26
  553. package/fesm2015/odx-angular-components-toggle-button-group.mjs.map +1 -1
  554. package/fesm2015/odx-angular-components-tooltip.mjs +13 -14
  555. package/fesm2015/odx-angular-components-tooltip.mjs.map +1 -1
  556. package/fesm2015/odx-angular-internal.mjs +69 -53
  557. package/fesm2015/odx-angular-internal.mjs.map +1 -1
  558. package/fesm2015/odx-angular-theming.mjs +99 -0
  559. package/fesm2015/odx-angular-theming.mjs.map +1 -0
  560. package/fesm2015/odx-angular-utils.mjs +148 -18
  561. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  562. package/fesm2015/odx-angular.mjs +200 -92
  563. package/fesm2015/odx-angular.mjs.map +1 -1
  564. package/fesm2020/odx-angular-animations.mjs +5 -3
  565. package/fesm2020/odx-angular-animations.mjs.map +1 -1
  566. package/fesm2020/odx-angular-cdk-a11y.mjs +127 -0
  567. package/fesm2020/odx-angular-cdk-a11y.mjs.map +1 -0
  568. package/fesm2020/odx-angular-cdk-active-indicator.mjs +3 -3
  569. package/fesm2020/odx-angular-cdk-active-indicator.mjs.map +1 -1
  570. package/fesm2020/odx-angular-cdk-checkbox-control.mjs +16 -12
  571. package/fesm2020/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  572. package/fesm2020/odx-angular-cdk-connected-overlay.mjs +20 -33
  573. package/fesm2020/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  574. package/fesm2020/odx-angular-cdk-custom-form-control.mjs +47 -24
  575. package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  576. package/fesm2020/odx-angular-cdk-dynamic-view.mjs +25 -12
  577. package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  578. package/fesm2020/odx-angular-cdk-expandable.mjs +16 -22
  579. package/fesm2020/odx-angular-cdk-expandable.mjs.map +1 -1
  580. package/fesm2020/odx-angular-cdk-radio-group-control.mjs +26 -23
  581. package/fesm2020/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  582. package/fesm2020/odx-angular-components-accordion.mjs +20 -18
  583. package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
  584. package/fesm2020/odx-angular-components-action-group.mjs +4 -4
  585. package/fesm2020/odx-angular-components-action-group.mjs.map +1 -1
  586. package/fesm2020/odx-angular-components-area-header.mjs +16 -15
  587. package/fesm2020/odx-angular-components-area-header.mjs.map +1 -1
  588. package/fesm2020/odx-angular-components-avatar.mjs +18 -7
  589. package/fesm2020/odx-angular-components-avatar.mjs.map +1 -1
  590. package/fesm2020/odx-angular-components-badge.mjs +60 -90
  591. package/fesm2020/odx-angular-components-badge.mjs.map +1 -1
  592. package/fesm2020/odx-angular-components-bar.mjs +95 -0
  593. package/fesm2020/odx-angular-components-bar.mjs.map +1 -0
  594. package/fesm2020/odx-angular-components-breadcrumbs.mjs +56 -0
  595. package/fesm2020/odx-angular-components-breadcrumbs.mjs.map +1 -0
  596. package/fesm2020/odx-angular-components-button-group.mjs +3 -3
  597. package/fesm2020/odx-angular-components-button-group.mjs.map +1 -1
  598. package/fesm2020/odx-angular-components-button.mjs +35 -19
  599. package/fesm2020/odx-angular-components-button.mjs.map +1 -1
  600. package/fesm2020/odx-angular-components-card.mjs +173 -0
  601. package/fesm2020/odx-angular-components-card.mjs.map +1 -0
  602. package/fesm2020/odx-angular-components-checkbox.mjs +14 -13
  603. package/fesm2020/odx-angular-components-checkbox.mjs.map +1 -1
  604. package/fesm2020/odx-angular-components-chip.mjs +4 -4
  605. package/fesm2020/odx-angular-components-chip.mjs.map +1 -1
  606. package/fesm2020/odx-angular-components-circular-progress.mjs +8 -6
  607. package/fesm2020/odx-angular-components-circular-progress.mjs.map +1 -1
  608. package/fesm2020/odx-angular-components-content-box.mjs +13 -13
  609. package/fesm2020/odx-angular-components-content-box.mjs.map +1 -1
  610. package/fesm2020/odx-angular-components-dropdown.mjs +67 -27
  611. package/fesm2020/odx-angular-components-dropdown.mjs.map +1 -1
  612. package/fesm2020/odx-angular-components-form-field.mjs +77 -61
  613. package/fesm2020/odx-angular-components-form-field.mjs.map +1 -1
  614. package/fesm2020/odx-angular-components-header.mjs +25 -23
  615. package/fesm2020/odx-angular-components-header.mjs.map +1 -1
  616. package/fesm2020/odx-angular-components-icon.mjs +17 -22
  617. package/fesm2020/odx-angular-components-icon.mjs.map +1 -1
  618. package/fesm2020/odx-angular-components-inline-message.mjs +7 -8
  619. package/fesm2020/odx-angular-components-inline-message.mjs.map +1 -1
  620. package/fesm2020/odx-angular-components-link.mjs +6 -13
  621. package/fesm2020/odx-angular-components-link.mjs.map +1 -1
  622. package/fesm2020/odx-angular-components-list.mjs +74 -27
  623. package/fesm2020/odx-angular-components-list.mjs.map +1 -1
  624. package/fesm2020/odx-angular-components-loading-spinner.mjs +25 -18
  625. package/fesm2020/odx-angular-components-loading-spinner.mjs.map +1 -1
  626. package/fesm2020/odx-angular-components-logo.mjs +7 -5
  627. package/fesm2020/odx-angular-components-logo.mjs.map +1 -1
  628. package/fesm2020/odx-angular-components-main-menu.mjs +58 -58
  629. package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
  630. package/fesm2020/odx-angular-components-mainfilter-group.mjs +27 -0
  631. package/fesm2020/odx-angular-components-mainfilter-group.mjs.map +1 -0
  632. package/fesm2020/odx-angular-components-menu.mjs +146 -0
  633. package/fesm2020/odx-angular-components-menu.mjs.map +1 -0
  634. package/fesm2020/odx-angular-components-modal.mjs +212 -127
  635. package/fesm2020/odx-angular-components-modal.mjs.map +1 -1
  636. package/fesm2020/odx-angular-components-navigation-back.mjs +28 -0
  637. package/fesm2020/odx-angular-components-navigation-back.mjs.map +1 -0
  638. package/fesm2020/odx-angular-components-progress.mjs +5 -5
  639. package/fesm2020/odx-angular-components-progress.mjs.map +1 -1
  640. package/fesm2020/odx-angular-components-radio-group.mjs +18 -19
  641. package/fesm2020/odx-angular-components-radio-group.mjs.map +1 -1
  642. package/fesm2020/odx-angular-components-rail-navigation.mjs +14 -19
  643. package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -1
  644. package/fesm2020/odx-angular-components-select.mjs +131 -71
  645. package/fesm2020/odx-angular-components-select.mjs.map +1 -1
  646. package/fesm2020/odx-angular-components-slider.mjs +6 -9
  647. package/fesm2020/odx-angular-components-slider.mjs.map +1 -1
  648. package/fesm2020/odx-angular-components-spinbox.mjs +9 -9
  649. package/fesm2020/odx-angular-components-spinbox.mjs.map +1 -1
  650. package/fesm2020/odx-angular-components-switch.mjs +14 -13
  651. package/fesm2020/odx-angular-components-switch.mjs.map +1 -1
  652. package/fesm2020/odx-angular-components-tab-bar.mjs +29 -22
  653. package/fesm2020/odx-angular-components-tab-bar.mjs.map +1 -1
  654. package/fesm2020/odx-angular-components-toast.mjs +214 -0
  655. package/fesm2020/odx-angular-components-toast.mjs.map +1 -0
  656. package/fesm2020/odx-angular-components-toggle-button-group.mjs +47 -26
  657. package/fesm2020/odx-angular-components-toggle-button-group.mjs.map +1 -1
  658. package/fesm2020/odx-angular-components-tooltip.mjs +13 -14
  659. package/fesm2020/odx-angular-components-tooltip.mjs.map +1 -1
  660. package/fesm2020/odx-angular-internal.mjs +67 -51
  661. package/fesm2020/odx-angular-internal.mjs.map +1 -1
  662. package/fesm2020/odx-angular-theming.mjs +96 -0
  663. package/fesm2020/odx-angular-theming.mjs.map +1 -0
  664. package/fesm2020/odx-angular-utils.mjs +143 -18
  665. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  666. package/fesm2020/odx-angular.mjs +193 -88
  667. package/fesm2020/odx-angular.mjs.map +1 -1
  668. package/internal/decorators/css-component.d.ts +1 -2
  669. package/internal/decorators/css-modifier.d.ts +0 -1
  670. package/internal/helpers/decorator-property-name.d.ts +1 -0
  671. package/internal/helpers/deepmerge.d.ts +10 -0
  672. package/internal/helpers/index.d.ts +2 -0
  673. package/internal/helpers/with-mutiple-descriptors.d.ts +1 -1
  674. package/lib/controllers/controller.d.ts +1 -1
  675. package/lib/controllers/disabled.controller.d.ts +5 -7
  676. package/lib/controllers/readonly.controller.d.ts +5 -2
  677. package/lib/core.module.d.ts +2 -1
  678. package/lib/directives/click-outside.directive.d.ts +3 -4
  679. package/lib/directives/delegate-focus.directive.d.ts +11 -0
  680. package/lib/directives/index.d.ts +3 -0
  681. package/lib/directives/with-disabled-state.directive.d.ts +13 -0
  682. package/lib/directives/with-tabindex.directive.d.ts +7 -0
  683. package/lib/services/window-ref.d.ts +5 -0
  684. package/lib/tokens/identity-matcher.d.ts +1 -1
  685. package/lib/tokens/string-search-handler.d.ts +1 -1
  686. package/lib/tokens/stringify.d.ts +1 -1
  687. package/package.json +85 -19
  688. package/theming/README.md +3 -0
  689. package/theming/index.d.ts +4 -0
  690. package/theming/lib/helpers/index.d.ts +3 -0
  691. package/theming/lib/helpers/prefers-dark-theme.d.ts +1 -0
  692. package/theming/lib/helpers/resolve-theme.d.ts +2 -0
  693. package/theming/lib/helpers/theme-storage.d.ts +4 -0
  694. package/theming/lib/models/index.d.ts +1 -0
  695. package/theming/lib/models/theme.d.ts +6 -0
  696. package/theming/lib/theming.config.d.ts +10 -0
  697. package/theming/lib/theming.service.d.ts +16 -0
  698. package/utils/lib/decorators/transform.d.ts +2 -2
  699. package/utils/lib/helpers/build-url.d.ts +1 -0
  700. package/utils/lib/helpers/dom.d.ts +1 -0
  701. package/utils/lib/helpers/get-axis.d.ts +2 -0
  702. package/utils/lib/helpers/get-opposite-side.d.ts +2 -0
  703. package/utils/lib/helpers/get-side.d.ts +2 -0
  704. package/utils/lib/helpers/get-unique-id.d.ts +1 -0
  705. package/utils/lib/helpers/index.d.ts +7 -1
  706. package/utils/lib/helpers/ng-changes.d.ts +1 -1
  707. package/utils/lib/helpers/provide-config.d.ts +12 -0
  708. package/utils/lib/helpers/queue.d.ts +22 -0
  709. package/utils/lib/types/axis.d.ts +5 -0
  710. package/utils/lib/types/get-properties.d.ts +2 -2
  711. package/utils/lib/types/index.d.ts +3 -0
  712. package/utils/lib/types/position.d.ts +15 -0
  713. package/utils/lib/types/side.d.ts +7 -0
  714. package/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.d.ts +0 -2
  715. package/cdk/connected-overlay/lib/helpers/get-overlay-side.d.ts +0 -2
  716. package/components/badge/lib/badge.config.d.ts +0 -3
  717. package/components/badge/lib/facade/badge-host.d.ts +0 -3
  718. package/components/badge/lib/facade/index.d.ts +0 -1
  719. package/components/badge/lib/models/badge-position.d.ts +0 -5
  720. package/components/launch-tile/README.md +0 -3
  721. package/components/launch-tile/index.d.ts +0 -5
  722. package/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.d.ts +0 -5
  723. package/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.d.ts +0 -5
  724. package/components/launch-tile/lib/directives/launch-tile-menu/launch-tile-menu.directive.d.ts +0 -5
  725. package/components/launch-tile/lib/launch-tile.component.d.ts +0 -11
  726. package/components/launch-tile/lib/launch-tile.module.d.ts +0 -16
  727. package/components/modal/lib/services/index.d.ts +0 -1
  728. package/components/modal/lib/services/open-modal-manager.service.d.ts +0 -15
  729. package/esm2020/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.mjs +0 -13
  730. package/esm2020/cdk/connected-overlay/lib/helpers/get-overlay-side.mjs +0 -4
  731. package/esm2020/components/badge/lib/badge.config.mjs +0 -3
  732. package/esm2020/components/badge/lib/facade/badge-host.mjs +0 -2
  733. package/esm2020/components/badge/lib/facade/index.mjs +0 -2
  734. package/esm2020/components/badge/lib/models/badge-position.mjs +0 -5
  735. package/esm2020/components/launch-tile/index.mjs +0 -6
  736. package/esm2020/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.mjs +0 -13
  737. package/esm2020/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.mjs +0 -13
  738. package/esm2020/components/launch-tile/lib/directives/launch-tile-menu/launch-tile-menu.directive.mjs +0 -17
  739. package/esm2020/components/launch-tile/lib/launch-tile.component.mjs +0 -40
  740. package/esm2020/components/launch-tile/lib/launch-tile.module.mjs +0 -59
  741. package/esm2020/components/list/lib/components/list-item.component.mjs +0 -46
  742. package/esm2020/components/modal/lib/services/index.mjs +0 -2
  743. package/esm2020/components/modal/lib/services/open-modal-manager.service.mjs +0 -42
  744. package/esm2020/utils/lib/helpers/provide-module-config.mjs +0 -21
  745. package/fesm2015/odx-angular-components-launch-tile.mjs +0 -133
  746. package/fesm2015/odx-angular-components-launch-tile.mjs.map +0 -1
  747. package/fesm2020/odx-angular-components-launch-tile.mjs +0 -132
  748. package/fesm2020/odx-angular-components-launch-tile.mjs.map +0 -1
  749. package/utils/lib/helpers/provide-module-config.d.ts +0 -12
@@ -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";
@@ -8,18 +8,9 @@ const ELEMENTS_WITH_READONLY_ATTRIBUTE = {
8
8
  textarea: true,
9
9
  select: true,
10
10
  };
11
- const READONLY_CONTROLLER = new InjectionToken('@odx/angular::ReadonlyWatchedController');
12
- const READONLY_INTERNAL_CONTROLLER = new InjectionToken('@odx/angular::ReadonlyController', {
13
- factory: () => new ReadonlyController(null),
14
- });
11
+ export const READONLY_CONTROLLER = new InjectionToken('@odx/angular::ReadonlyWatchedController');
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: "14.2.12", ngImport: i0, type: ReadonlyController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
45
- ReadonlyController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", 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: "14.2.12", 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: "14.2.12", ngImpo
66
75
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { readonly: [{
67
76
  type: Input
68
77
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHkuY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbnRyb2xsZXJzL3JlYWRvbmx5LmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRTFDLE1BQU0sZ0NBQWdDLEdBQUc7SUFDdkMsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLE1BQU0sRUFBRSxJQUFJO0NBQ2MsQ0FBQztBQUU3QixNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFxQix5Q0FBeUMsQ0FBQyxDQUFDO0FBQzlHLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQTRCLGtDQUFrQyxFQUFFO0lBQ3JILE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQztDQUM1QyxDQUFDLENBQUM7QUFlSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBVTtJQTBCaEQsWUFBWSxPQUF1QztRQUNqRCxLQUFLLEVBQUUsQ0FBQztRQXZCRixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRWpCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUV2QixnQkFBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUMxQixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDaEMsQ0FBQztRQWdCQSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBZkQsSUFDVyxRQUFRLENBQUMsS0FBYztRQUNoQyxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssWUFBWSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDO1lBQy9CLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoRztJQUNILENBQUM7SUFDRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFPTSxNQUFNLENBQUMsTUFBTTtRQUNsQixPQUFPLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTztRQUNuQixPQUFPO1lBQ0wsT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixVQUFVLEVBQUUsVUFBVSxDQUFDLEtBQUs7WUFDNUIsSUFBSSxFQUFFLENBQUMsNEJBQTRCLEVBQUUsaUJBQWlCLENBQUM7U0FDeEQsQ0FBQztJQUNKLENBQUM7O2dIQXpDVSxrQkFBa0I7b0dBQWxCLGtCQUFrQixzS0FWbEI7UUFDVDtZQUNFLE9BQU8sRUFBRSw0QkFBNEI7WUFDckMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUNsRDtLQUNGOzRGQUtVLGtCQUFrQjtrQkFiOUIsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzt5QkFDbEQ7cUJBQ0Y7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLGlCQUFpQixFQUFFLDhCQUE4QjtxQkFDbEQ7aUJBQ0Y7aUdBZ0JZLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBJbnB1dCwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyIH0gZnJvbSAnLi9jb250cm9sbGVyJztcblxuY29uc3QgRUxFTUVOVFNfV0lUSF9SRUFET05MWV9BVFRSSUJVVEUgPSB7XG4gIGlucHV0OiB0cnVlLFxuICB0ZXh0YXJlYTogdHJ1ZSxcbiAgc2VsZWN0OiB0cnVlLFxufSBhcyBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcblxuY29uc3QgUkVBRE9OTFlfQ09OVFJPTExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWFkb25seUNvbnRyb2xsZXI+KCdAb2R4L2FuZ3VsYXI6OlJlYWRvbmx5V2F0Y2hlZENvbnRyb2xsZXInKTtcbmNvbnN0IFJFQURPTkxZX0lOVEVSTkFMX0NPTlRST0xMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48UmVhZG9ubHlDb250cm9sbGVyIHwgbnVsbD4oJ0BvZHgvYW5ndWxhcjo6UmVhZG9ubHlDb250cm9sbGVyJywge1xuICBmYWN0b3J5OiAoKSA9PiBuZXcgUmVhZG9ubHlDb250cm9sbGVyKG51bGwpLFxufSk7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tyZWFkb25seV0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBSRUFET05MWV9JTlRFUk5BTF9DT05UUk9MTEVSLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmVhZG9ubHlDb250cm9sbGVyKSxcbiAgICB9LFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnJlYWRvbmx5XSc6ICdoYXNSZWFkb25seUF0dHJpYnV0ZSB8fCBudWxsJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgUmVhZG9ubHlDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlciB7XG4gIHB1YmxpYyBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcmVhZG9ubHk6IEJvb2xlYW5JbnB1dDtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgaXNSZWFkb25seSA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBoYXNSZWFkb25seUF0dHJpYnV0ZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSBpc1JlYWRvbmx5JCA9IHRoaXMuY2hhbmdlJC5waXBlKFxuICAgIG1hcCgoKSA9PiB0aGlzLmlzUmVhZG9ubHkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KVxuICApO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVhZG9ubHkodmFsdWU6IHVua25vd24pIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh0aGlzLmlzUmVhZG9ubHkgIT09IGNvZXJjZWRWYWx1ZSkge1xuICAgICAgdGhpcy5pc1JlYWRvbmx5ID0gY29lcmNlZFZhbHVlO1xuICAgICAgdGhpcy5oYXNSZWFkb25seUF0dHJpYnV0ZSA9IHRoaXMuaXNSZWFkb25seSAmJiBFTEVNRU5UU19XSVRIX1JFQURPTkxZX0FUVFJJQlVURVt0aGlzLm5vZGVOYW1lXTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1JlYWRvbmx5O1xuICB9XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm5vZGVOYW1lID0gZWxlbWVudD8ubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID8/ICcnO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpbmplY3QoKTogUmVhZG9ubHlDb250cm9sbGVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIGluamVjdChSRUFET05MWV9DT05UUk9MTEVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb25uZWN0KCk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvdmlkZTogUkVBRE9OTFlfQ09OVFJPTExFUixcbiAgICAgIHVzZUZhY3Rvcnk6IENvbnRyb2xsZXIuc2V0dXAsXG4gICAgICBkZXBzOiBbUkVBRE9OTFlfSU5URVJOQUxfQ09OVFJPTExFUiwgQ2hhbmdlRGV0ZWN0b3JSZWZdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHkuY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbnRyb2xsZXJzL3JlYWRvbmx5LmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRTFDLE1BQU0sZ0NBQWdDLEdBQUc7SUFDdkMsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLE1BQU0sRUFBRSxJQUFJO0NBQ2MsQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBcUIseUNBQXlDLENBQUMsQ0FBQztBQUNySCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FBNEIsa0NBQWtDLENBQUMsQ0FBQztBQWU5SCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBVTtJQWVoRCxJQUNXLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxZQUFZLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUM7WUFDL0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksZ0NBQWdDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hHO0lBQ0gsQ0FBQztJQUNELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUM7SUFDOUQsQ0FBQztJQUVELFlBQVksT0FBdUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUF6Qk8scUJBQWdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU1RixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRWpCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUV2QixnQkFBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUMxQixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDaEMsQ0FBQztRQWdCQSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU07UUFDbEIsT0FBTyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTztZQUNMO2dCQUNFLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLFVBQVUsRUFBRSxDQUFDLGNBQXlDLEVBQUUsVUFBNkIsRUFBRSxFQUFFLENBQUMsY0FBYyxJQUFJLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDO2dCQUM5SSxJQUFJLEVBQUU7b0JBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsa0JBQWtCLENBQUM7b0JBQ2hELENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxVQUFVLENBQUM7aUJBQzdCO2FBQ0Y7WUFDRDtnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixVQUFVLEVBQUUsVUFBVSxDQUFDLEtBQUs7Z0JBQzVCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLDRCQUE0QixDQUFDLEVBQUUsaUJBQWlCLENBQUM7YUFDdEY7U0FDRixDQUFDO0lBQ0osQ0FBQzs7K0dBcERVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNLQVZsQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLDRCQUE0QjtZQUNyQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1NBQ2xEO0tBQ0Y7MkZBS1Usa0JBQWtCO2tCQWI5QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSw0QkFBNEI7NEJBQ3JDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3lCQUNsRDtxQkFDRjtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osaUJBQWlCLEVBQUUsOEJBQThCO3FCQUNsRDtpQkFDRjtpR0FpQlksUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEhvc3QsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBPcHRpb25hbCwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250cm9sbGVyIH0gZnJvbSAnLi9jb250cm9sbGVyJztcblxuY29uc3QgRUxFTUVOVFNfV0lUSF9SRUFET05MWV9BVFRSSUJVVEUgPSB7XG4gIGlucHV0OiB0cnVlLFxuICB0ZXh0YXJlYTogdHJ1ZSxcbiAgc2VsZWN0OiB0cnVlLFxufSBhcyBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcblxuZXhwb3J0IGNvbnN0IFJFQURPTkxZX0NPTlRST0xMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48UmVhZG9ubHlDb250cm9sbGVyPignQG9keC9hbmd1bGFyOjpSZWFkb25seVdhdGNoZWRDb250cm9sbGVyJyk7XG5leHBvcnQgY29uc3QgUkVBRE9OTFlfSU5URVJOQUxfQ09OVFJPTExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWFkb25seUNvbnRyb2xsZXIgfCBudWxsPignQG9keC9hbmd1bGFyOjpSZWFkb25seUNvbnRyb2xsZXInKTtcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW3JlYWRvbmx5XScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJFQURPTkxZX0lOVEVSTkFMX0NPTlRST0xMRVIsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSZWFkb25seUNvbnRyb2xsZXIpLFxuICAgIH0sXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIucmVhZG9ubHldJzogJ2hhc1JlYWRvbmx5QXR0cmlidXRlIHx8IG51bGwnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBSZWFkb25seUNvbnRyb2xsZXIgZXh0ZW5kcyBDb250cm9sbGVyIHtcbiAgcHVibGljIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZWFkb25seTogQm9vbGVhbklucHV0O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50Q29udHJvbGxlciA9IGluamVjdChSRUFET05MWV9DT05UUk9MTEVSLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBub2RlTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIGlzUmVhZG9ubHkgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgaGFzUmVhZG9ubHlBdHRyaWJ1dGUgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaXNSZWFkb25seSQgPSB0aGlzLmNoYW5nZSQucGlwZShcbiAgICBtYXAoKCkgPT4gdGhpcy5pc1JlYWRvbmx5KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlYWRvbmx5KHZhbHVlOiB1bmtub3duKSB7XG4gICAgY29uc3QgY29lcmNlZFZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAodGhpcy5pc1JlYWRvbmx5ICE9PSBjb2VyY2VkVmFsdWUpIHtcbiAgICAgIHRoaXMuaXNSZWFkb25seSA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIHRoaXMuaGFzUmVhZG9ubHlBdHRyaWJ1dGUgPSB0aGlzLmlzUmVhZG9ubHkgJiYgRUxFTUVOVFNfV0lUSF9SRUFET05MWV9BVFRSSUJVVEVbdGhpcy5ub2RlTmFtZV07XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNSZWFkb25seSB8fCAhIXRoaXMucGFyZW50Q29udHJvbGxlcj8ucmVhZG9ubHk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGwpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubm9kZU5hbWUgPSBlbGVtZW50Py5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPz8gJyc7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGluamVjdCgpOiBSZWFkb25seUNvbnRyb2xsZXIgfCBudWxsIHtcbiAgICByZXR1cm4gaW5qZWN0KFJFQURPTkxZX0NPTlRST0xMRVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbm5lY3QoKTogUHJvdmlkZXIge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFJFQURPTkxZX0lOVEVSTkFMX0NPTlRST0xMRVIsXG4gICAgICAgIHVzZUZhY3Rvcnk6IChob3N0Q29udHJvbGxlcjogUmVhZG9ubHlDb250cm9sbGVyIHwgbnVsbCwgZWxlbWVudFJlZjogRWxlbWVudFJlZiB8IG51bGwpID0+IGhvc3RDb250cm9sbGVyID8/IG5ldyBSZWFkb25seUNvbnRyb2xsZXIoZWxlbWVudFJlZiksXG4gICAgICAgIGRlcHM6IFtcbiAgICAgICAgICBbbmV3IE9wdGlvbmFsKCksIG5ldyBIb3N0KCksIFJlYWRvbmx5Q29udHJvbGxlcl0sXG4gICAgICAgICAgW25ldyBPcHRpb25hbCgpLCBFbGVtZW50UmVmXSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFJFQURPTkxZX0NPTlRST0xMRVIsXG4gICAgICAgIHVzZUZhY3Rvcnk6IENvbnRyb2xsZXIuc2V0dXAsXG4gICAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBIb3N0KCksIFJFQURPTkxZX0lOVEVSTkFMX0NPTlRST0xMRVJdLCBDaGFuZ2VEZXRlY3RvclJlZl0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,6 @@
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
5
  import { ClickOutsideDirective } from './directives';
5
6
  import * as i0 from "@angular/core";
@@ -7,14 +8,14 @@ const controllers = [DisabledController, ReadonlyController];
7
8
  const modules = [ClickOutsideDirective];
8
9
  export class CoreModule {
9
10
  }
10
- CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: CoreModule, imports: [DisabledController, ReadonlyController, ClickOutsideDirective], exports: [CommonModule, DisabledController, ReadonlyController, ClickOutsideDirective] });
12
- CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CoreModule, imports: [CommonModule] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUVyRCxNQUFNLFdBQVcsR0FBRyxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFDN0QsTUFBTSxPQUFPLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBTXhDLE1BQU0sT0FBTyxVQUFVOzt3R0FBVixVQUFVO3lHQUFWLFVBQVUsWUFQRixrQkFBa0IsRUFBRSxrQkFBa0IsRUFDMUMscUJBQXFCLGFBSTFCLFlBQVksRUFMSCxrQkFBa0IsRUFBRSxrQkFBa0IsRUFDMUMscUJBQXFCO3lHQU16QixVQUFVLFlBRlgsWUFBWTs0RkFFWCxVQUFVO2tCQUp0QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUM7aUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNhYmxlZENvbnRyb2xsZXIsIFJlYWRvbmx5Q29udHJvbGxlciB9IGZyb20gJy4vY29udHJvbGxlcnMnO1xuaW1wb3J0IHsgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuY29uc3QgY29udHJvbGxlcnMgPSBbRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXJdO1xuY29uc3QgbW9kdWxlcyA9IFtDbGlja091dHNpZGVEaXJlY3RpdmVdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uY29udHJvbGxlcnMsIC4uLm1vZHVsZXNdLFxuICBleHBvcnRzOiBbQ29tbW9uTW9kdWxlLCAuLi5jb250cm9sbGVycywgLi4ubW9kdWxlc10sXG59KVxuZXhwb3J0IGNsYXNzIENvcmVNb2R1bGUge31cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFckQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0FBQzdELE1BQU0sT0FBTyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQU14QyxNQUFNLE9BQU8sVUFBVTs7dUdBQVYsVUFBVTt3R0FBVixVQUFVLFlBUEYsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQzFDLHFCQUFxQixhQUkxQixZQUFZLEVBQUUsU0FBUyxFQUxkLGtCQUFrQixFQUFFLGtCQUFrQixFQUMxQyxxQkFBcUI7d0dBTXpCLFVBQVUsWUFGWCxZQUFZLEVBQUUsU0FBUzsyRkFFdEIsVUFBVTtrQkFKdEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQztpQkFDL0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExldE1vZHVsZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNhYmxlZENvbnRyb2xsZXIsIFJlYWRvbmx5Q29udHJvbGxlciB9IGZyb20gJy4vY29udHJvbGxlcnMnO1xuaW1wb3J0IHsgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuY29uc3QgY29udHJvbGxlcnMgPSBbRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXJdO1xuY29uc3QgbW9kdWxlcyA9IFtDbGlja091dHNpZGVEaXJlY3RpdmVdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uY29udHJvbGxlcnMsIC4uLm1vZHVsZXNdLFxuICBleHBvcnRzOiBbQ29tbW9uTW9kdWxlLCBMZXRNb2R1bGUsIC4uLmNvbnRyb2xsZXJzLCAuLi5tb2R1bGVzXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZU1vZHVsZSB7fVxuIl19
@@ -1,12 +1,12 @@
1
- import { Directive, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';
1
+ import { Directive, EventEmitter, inject, Input, Output, Renderer2 } from '@angular/core';
2
+ import { deferFn, injectElement } from '@odx/angular/utils';
2
3
  import * as i0 from "@angular/core";
3
4
  export class ClickOutsideDirective {
4
- constructor(element, renderer) {
5
- this.element = element;
6
- this.renderer = renderer;
5
+ constructor() {
6
+ this.element = injectElement();
7
+ this.renderer = inject(Renderer2);
7
8
  this.odxClickOutsideActive = true;
8
9
  this.odxClickOutside = new EventEmitter();
9
- this.odxClickOutsideActive = true;
10
10
  }
11
11
  ngOnInit() {
12
12
  if (this.odxClickOutsideActive) {
@@ -33,26 +33,30 @@ export class ClickOutsideDirective {
33
33
  }
34
34
  }
35
35
  registerHandler() {
36
- setTimeout(() => {
36
+ deferFn(() => {
37
37
  this.listener ?? (this.listener = this.renderer.listen('document', 'click', (event) => {
38
- if (this.odxClickOutsideActive && this.element?.nativeElement.isConnected && !this.element?.nativeElement.contains(event.target)) {
38
+ if (!this.odxClickOutsideActive)
39
+ return;
40
+ const hostElement = this.element.nativeElement;
41
+ const targetElement = event.target;
42
+ if (hostElement.isConnected && targetElement.isConnected && !hostElement.contains(targetElement)) {
39
43
  this.odxClickOutside.emit(event);
40
44
  }
41
45
  }));
42
- }, 0);
46
+ });
43
47
  }
44
48
  }
45
- ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
46
- ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ClickOutsideDirective, isStandalone: true, selector: "[odxClickOutside]", inputs: { odxClickOutsideActive: "odxClickOutsideActive" }, outputs: { odxClickOutside: "odxClickOutside" }, usesOnChanges: true, ngImport: i0 });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ClickOutsideDirective, decorators: [{
49
+ ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
50
+ 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 });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ClickOutsideDirective, decorators: [{
48
52
  type: Directive,
49
53
  args: [{
50
54
  standalone: true,
51
55
  selector: '[odxClickOutside]',
52
56
  }]
53
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { odxClickOutsideActive: [{
57
+ }], propDecorators: { odxClickOutsideActive: [{
54
58
  type: Input
55
59
  }], odxClickOutside: [{
56
60
  type: Output
57
61
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzVILE1BQU0sT0FBTyxxQkFBcUI7SUFTaEMsWUFBNkIsT0FBZ0MsRUFBbUIsUUFBbUI7UUFBdEUsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFBbUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUw1RiwwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFHcEIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBRy9ELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRU0sV0FBVyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQW9DO1FBQ2hHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLElBQUksa0JBQWtCLEVBQUUsYUFBYSxLQUFLLGtCQUFrQixFQUFFLFlBQVksRUFBRTtZQUM5RyxJQUFJLGtCQUFrQixFQUFFLFlBQVksRUFBRTtnQkFDcEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3hCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNoQjtTQUNGO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyxPQUFPO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFTyxlQUFlO1FBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxLQUFiLElBQUksQ0FBQyxRQUFRLEdBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNwRSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNoSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDbEM7WUFDSCxDQUFDLENBQUMsRUFBQztRQUNMLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7O21IQWhEVSxxQkFBcUI7dUdBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUJBQW1CO2lCQUM5Qjt5SEFLUSxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSVUsZUFBZTtzQkFEOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2hhbmdlcyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhDbGlja091dHNpZGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgbGlzdGVuZXI/OiAoKSA9PiB2b2lkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvZHhDbGlja091dHNpZGVBY3RpdmUgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgb2R4Q2xpY2tPdXRzaWRlID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHRoaXMub2R4Q2xpY2tPdXRzaWRlQWN0aXZlID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vZHhDbGlja091dHNpZGVBY3RpdmUpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJIYW5kbGVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKHsgb2R4Q2xpY2tPdXRzaWRlQWN0aXZlOiBjbGlja091dHNpZGVBY3RpdmUgfTogTmdDaGFuZ2VzPENsaWNrT3V0c2lkZURpcmVjdGl2ZT4pOiB2b2lkIHtcbiAgICBpZiAoIWNsaWNrT3V0c2lkZUFjdGl2ZT8uZmlyc3RDaGFuZ2UgJiYgY2xpY2tPdXRzaWRlQWN0aXZlPy5wcmV2aW91c1ZhbHVlICE9PSBjbGlja091dHNpZGVBY3RpdmU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgaWYgKGNsaWNrT3V0c2lkZUFjdGl2ZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJIYW5kbGVyKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95KCk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMubGlzdGVuZXIpIHtcbiAgICAgIHRoaXMubGlzdGVuZXIoKTtcbiAgICAgIHRoaXMubGlzdGVuZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckhhbmRsZXIoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmxpc3RlbmVyID8/PSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub2R4Q2xpY2tPdXRzaWRlQWN0aXZlICYmIHRoaXMuZWxlbWVudD8ubmF0aXZlRWxlbWVudC5pc0Nvbm5lY3RlZCAmJiAhdGhpcy5lbGVtZW50Py5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICB0aGlzLm9keENsaWNrT3V0c2lkZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSwgMCk7XG4gIH1cbn1cbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQWEsTUFBTSxvQkFBb0IsQ0FBQzs7QUFNdkUsTUFBTSxPQUFPLHFCQUFxQjtJQUpsQztRQU1tQixZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUd2QywwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFHcEIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0tBMENsRTtJQXhDUSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVNLFdBQVcsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFvQztRQUNoRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxJQUFJLGtCQUFrQixFQUFFLGFBQWEsS0FBSyxrQkFBa0IsRUFBRSxZQUFZLEVBQUU7WUFDOUcsSUFBSSxrQkFBa0IsRUFBRSxZQUFZLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUN4QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDaEI7U0FDRjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8sZUFBZTtRQUNyQixPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFFBQVEsS0FBYixJQUFJLENBQUMsUUFBUSxHQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUI7b0JBQUUsT0FBTztnQkFDeEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7Z0JBQy9DLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFpQixDQUFDO2dCQUU5QyxJQUFJLFdBQVcsQ0FBQyxXQUFXLElBQUksYUFBYSxDQUFDLFdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQ2hHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNsQztZQUNILENBQUMsQ0FBQyxFQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEFsRFUscUJBQXFCO3NHQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7OEJBT1EscUJBQXFCO3NCQUQzQixLQUFLO2dCQUlVLGVBQWU7c0JBRDlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlZmVyRm4sIGluamVjdEVsZW1lbnQsIE5nQ2hhbmdlcyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhDbGlja091dHNpZGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgbGlzdGVuZXI/OiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb2R4Q2xpY2tPdXRzaWRlQWN0aXZlID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IG9keENsaWNrT3V0c2lkZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub2R4Q2xpY2tPdXRzaWRlQWN0aXZlKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVySGFuZGxlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyh7IG9keENsaWNrT3V0c2lkZUFjdGl2ZTogY2xpY2tPdXRzaWRlQWN0aXZlIH06IE5nQ2hhbmdlczxDbGlja091dHNpZGVEaXJlY3RpdmU+KTogdm9pZCB7XG4gICAgaWYgKCFjbGlja091dHNpZGVBY3RpdmU/LmZpcnN0Q2hhbmdlICYmIGNsaWNrT3V0c2lkZUFjdGl2ZT8ucHJldmlvdXNWYWx1ZSAhPT0gY2xpY2tPdXRzaWRlQWN0aXZlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIGlmIChjbGlja091dHNpZGVBY3RpdmU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVySGFuZGxlcigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmxpc3RlbmVyKCk7XG4gICAgICB0aGlzLmxpc3RlbmVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJIYW5kbGVyKCkge1xuICAgIGRlZmVyRm4oKCkgPT4ge1xuICAgICAgdGhpcy5saXN0ZW5lciA/Pz0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5vZHhDbGlja091dHNpZGVBY3RpdmUpIHJldHVybjtcbiAgICAgICAgY29uc3QgaG9zdEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBFbGVtZW50O1xuXG4gICAgICAgIGlmIChob3N0RWxlbWVudC5pc0Nvbm5lY3RlZCAmJiB0YXJnZXRFbGVtZW50LmlzQ29ubmVjdGVkICYmICFob3N0RWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KSkge1xuICAgICAgICAgIHRoaXMub2R4Q2xpY2tPdXRzaWRlLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -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,2 +1,5 @@
1
1
  export * from './click-outside.directive';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbiJdfQ==
2
+ export * from './delegate-focus.directive';
3
+ export * from './with-disabled-state.directive';
4
+ export * from './with-tabindex.directive';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGVsZWdhdGUtZm9jdXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1kaXNhYmxlZC1zdGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLXRhYmluZGV4LmRpcmVjdGl2ZSc7XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Directive, ElementRef } from '@angular/core';
2
+ import { booleanToOptionalAttributeString } from '@odx/angular/utils';
3
+ import { DisabledController } from '../controllers';
4
+ import * as i0 from "@angular/core";
5
+ const ELEMENTS_WITH_DISABLED_ATTRIBUTE = {
6
+ button: true,
7
+ fieldset: true,
8
+ input: true,
9
+ optgroup: true,
10
+ option: true,
11
+ select: true,
12
+ textarea: true,
13
+ };
14
+ export class WithDisabledState {
15
+ get isDisabled() {
16
+ return !!this.disabledController?.disabled;
17
+ }
18
+ get ariaDisabled() {
19
+ return booleanToOptionalAttributeString(this.hasAriaRole && this.isDisabled);
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
+ }
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
+ type: Directive,
31
+ args: [{
32
+ standalone: true,
33
+ providers: [DisabledController.connect()],
34
+ host: {
35
+ '[class.is-disabled]': 'isDisabled',
36
+ '[attr.aria-disabled]': 'ariaDisabled',
37
+ '[attr.disabled]': 'hasDisabledAttribute && isDisabled || null',
38
+ },
39
+ }]
40
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kaXNhYmxlZC1zdGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL3dpdGgtZGlzYWJsZWQtc3RhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVwRCxNQUFNLGdDQUFnQyxHQUFHO0lBQ3ZDLE1BQU0sRUFBRSxJQUFJO0lBQ1osUUFBUSxFQUFFLElBQUk7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLFFBQVEsRUFBRSxJQUFJO0lBQ2QsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFFBQVEsRUFBRSxJQUFJO0NBQ1ksQ0FBQztBQVc3QixNQUFNLE9BQU8saUJBQWlCO0lBSzVCLElBQWMsVUFBVTtRQUN0QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsWUFBWSxPQUFnQztRQVZ6Qix1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQVdsRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7OEdBaEJVLGlCQUFpQjtrR0FBakIsaUJBQWlCLG1NQVBqQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDOzJGQU85QixpQkFBaUI7a0JBVDdCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN6QyxJQUFJLEVBQUU7d0JBQ0oscUJBQXFCLEVBQUUsWUFBWTt3QkFDbkMsc0JBQXNCLEVBQUUsY0FBYzt3QkFDdEMsaUJBQWlCLEVBQUUsNENBQTRDO3FCQUNoRTtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYm9vbGVhblRvT3B0aW9uYWxBdHRyaWJ1dGVTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgRGlzYWJsZWRDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMnO1xuXG5jb25zdCBFTEVNRU5UU19XSVRIX0RJU0FCTEVEX0FUVFJJQlVURSA9IHtcbiAgYnV0dG9uOiB0cnVlLFxuICBmaWVsZHNldDogdHJ1ZSxcbiAgaW5wdXQ6IHRydWUsXG4gIG9wdGdyb3VwOiB0cnVlLFxuICBvcHRpb246IHRydWUsXG4gIHNlbGVjdDogdHJ1ZSxcbiAgdGV4dGFyZWE6IHRydWUsXG59IGFzIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbRGlzYWJsZWRDb250cm9sbGVyLmNvbm5lY3QoKV0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmlzLWRpc2FibGVkXSc6ICdpc0Rpc2FibGVkJyxcbiAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnYXJpYURpc2FibGVkJyxcbiAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ2hhc0Rpc2FibGVkQXR0cmlidXRlICYmIGlzRGlzYWJsZWQgfHwgbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFdpdGhEaXNhYmxlZFN0YXRlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc0FyaWFSb2xlOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzRGlzYWJsZWRBdHRyaWJ1dGU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCByZWFkb25seSBkaXNhYmxlZENvbnRyb2xsZXIgPSBEaXNhYmxlZENvbnRyb2xsZXIuaW5qZWN0KCk7XG5cbiAgcHJvdGVjdGVkIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZGlzYWJsZWRDb250cm9sbGVyPy5kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXJpYURpc2FibGVkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiBib29sZWFuVG9PcHRpb25hbEF0dHJpYnV0ZVN0cmluZyh0aGlzLmhhc0FyaWFSb2xlICYmIHRoaXMuaXNEaXNhYmxlZCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHRoaXMuaGFzRGlzYWJsZWRBdHRyaWJ1dGUgPSAhIUVMRU1FTlRTX1dJVEhfRElTQUJMRURfQVRUUklCVVRFW2VsZW1lbnQubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID8/ICcnXTtcbiAgICB0aGlzLmhhc0FyaWFSb2xlID0gZWxlbWVudC5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgncm9sZScpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { Directive } from '@angular/core';
2
+ import { DisabledController } from '../controllers';
3
+ import * as i0 from "@angular/core";
4
+ export class WithTabIndex {
5
+ constructor() {
6
+ this.disabledController = DisabledController.inject();
7
+ }
8
+ get isDisabled() {
9
+ return !!this.disabledController?.disabled;
10
+ }
11
+ }
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
+ type: Directive,
16
+ args: [{
17
+ standalone: true,
18
+ host: {
19
+ '[attr.tabindex]': 'isDisabled ? -1 : 0',
20
+ },
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC10YWJpbmRleC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL3dpdGgtdGFiaW5kZXguZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUXBELE1BQU0sT0FBTyxZQUFZO0lBTnpCO1FBT21CLHVCQUFrQixHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO0tBS25FO0lBSEMsSUFBYyxVQUFVO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUM7SUFDN0MsQ0FBQzs7eUdBTFUsWUFBWTs2RkFBWixZQUFZOzJGQUFaLFlBQVk7a0JBTnhCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixpQkFBaUIsRUFBRSxxQkFBcUI7cUJBQ3pDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNhYmxlZENvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICdpc0Rpc2FibGVkID8gLTEgOiAwJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgV2l0aFRhYkluZGV4IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkaXNhYmxlZENvbnRyb2xsZXIgPSBEaXNhYmxlZENvbnRyb2xsZXIuaW5qZWN0KCk7XG5cbiAgcHJvdGVjdGVkIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZGlzYWJsZWRDb250cm9sbGVyPy5kaXNhYmxlZDtcbiAgfVxufVxuIl19
@@ -1,16 +1,23 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
- import { inject, Injectable } from '@angular/core';
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
  }
@@ -20,13 +27,17 @@ export class WindowRef {
20
27
  reloadPage() {
21
28
  return this.location.reload();
22
29
  }
30
+ queryByComponent(type) {
31
+ const componentType = reflectComponentType(type);
32
+ return componentType ? this.nativeWindow.document.querySelector(componentType.selector) : null;
33
+ }
23
34
  }
24
- WindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
- WindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WindowRef, providedIn: 'root' });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", 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: [{
27
38
  type: Injectable,
28
39
  args: [{
29
40
  providedIn: 'root',
30
41
  }]
31
42
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3pFLE1BQU0sT0FBTyxTQUFTO0lBSHRCO1FBSWtCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7UUFDdEQsY0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ2pGLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQzdDLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO0tBaUJIO0lBZkMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDOUMsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7O3VHQXZCVSxTQUFTOzJHQUFULFNBQVMsY0FGUixNQUFNOzRGQUVQLFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnRzIH0gZnJvbSAnQG9keC9hbmd1bGFyL3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2luZG93UmVmIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hdGl2ZVdpbmRvdyA9IGluamVjdChET0NVTUVOVCkuZGVmYXVsdFZpZXcgPz8gd2luZG93O1xuICBwdWJsaWMgcmVhZG9ubHkgaXNPbmxpbmUkID0gZnJvbUV2ZW50cyh0aGlzLm5hdGl2ZVdpbmRvdywgJ29mZmxpbmUnLCAnb25saW5lJykucGlwZShcbiAgICBzdGFydFdpdGgobnVsbCksXG4gICAgbWFwKCgpID0+IHRoaXMubmF0aXZlV2luZG93Lm5hdmlnYXRvci5vbkxpbmUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KVxuICApO1xuXG4gIHB1YmxpYyBnZXQgbG9jYXRpb24oKTogTG9jYXRpb24ge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZVdpbmRvdy5sb2NhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZVdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3JpZ2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb24ub3JpZ2luO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZFBhZ2UoKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb24ucmVsb2FkKCk7XG4gIH1cbn1cbiJdfQ==
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==
@@ -0,0 +1,21 @@
1
+ import { ENVIRONMENT_INITIALIZER, inject, makeEnvironmentProviders } from '@angular/core';
2
+ import { createConfigTokens } from '@odx/angular/utils';
3
+ import { Theme } from './models';
4
+ import { ThemingService } from './theming.service';
5
+ export const { ThemingConfig, injectThemingConfig, provideThemingConfig } = createConfigTokens('Theming', '@odx/angular/theme', {
6
+ autoDetect: false,
7
+ defaultTheme: Theme.LIGHT,
8
+ storage: null,
9
+ });
10
+ export function provideTheming(config) {
11
+ return makeEnvironmentProviders([
12
+ provideThemingConfig(config),
13
+ {
14
+ provide: ENVIRONMENT_INITIALIZER,
15
+ useFactory: () => () => inject(ThemingService),
16
+ deps: [ThemingConfig],
17
+ multi: true,
18
+ },
19
+ ]);
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWluZy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdGhlbWluZy9zcmMvbGliL3RoZW1pbmcuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0IsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBc0Msa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVFuRCxNQUFNLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxvQkFBb0IsRUFBRTtJQUM5SCxVQUFVLEVBQUUsS0FBSztJQUNqQixZQUFZLEVBQUUsS0FBSyxDQUFDLEtBQUs7SUFDekIsT0FBTyxFQUFFLElBQUk7Q0FDRyxDQUFDLENBQUM7QUFFcEIsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsTUFBaUQ7SUFFakQsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QixvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDNUI7WUFDRSxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1lBQzlDLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUNyQixLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgaW5qZWN0LCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ0RlcGVuZGVuY2llcywgQ29uZmlnUHJvdmlkZXIsIGNyZWF0ZUNvbmZpZ1Rva2VucyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBUaGVtZSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFRoZW1pbmdTZXJ2aWNlIH0gZnJvbSAnLi90aGVtaW5nLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZW1pbmdDb25maWcge1xuICBhdXRvRGV0ZWN0OiBib29sZWFuO1xuICBkZWZhdWx0VGhlbWU6IFRoZW1lO1xuICBzdG9yYWdlPzogU3RvcmFnZSB8IG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCB7IFRoZW1pbmdDb25maWcsIGluamVjdFRoZW1pbmdDb25maWcsIHByb3ZpZGVUaGVtaW5nQ29uZmlnIH0gPSBjcmVhdGVDb25maWdUb2tlbnMoJ1RoZW1pbmcnLCAnQG9keC9hbmd1bGFyL3RoZW1lJywge1xuICBhdXRvRGV0ZWN0OiBmYWxzZSxcbiAgZGVmYXVsdFRoZW1lOiBUaGVtZS5MSUdIVCxcbiAgc3RvcmFnZTogbnVsbCxcbn0gYXMgVGhlbWluZ0NvbmZpZyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVGhlbWluZzxEIGV4dGVuZHMgQ29uZmlnRGVwZW5kZW5jaWVzID0gQ29uZmlnRGVwZW5kZW5jaWVzPFRoZW1pbmdDb25maWc+PihcbiAgY29uZmlnOiBDb25maWdQcm92aWRlcjxQYXJ0aWFsPFRoZW1pbmdDb25maWc+LCBEPlxuKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICBwcm92aWRlVGhlbWluZ0NvbmZpZyhjb25maWcpLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4gKCkgPT4gaW5qZWN0KFRoZW1pbmdTZXJ2aWNlKSxcbiAgICAgIGRlcHM6IFtUaGVtaW5nQ29uZmlnXSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0pO1xufVxuIl19
@@ -0,0 +1,42 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { WindowRef } from '@odx/angular';
4
+ import { BehaviorSubject, distinctUntilChanged, shareReplay } from 'rxjs';
5
+ import { prefersDarkTheme, readTheme, saveTheme } from './helpers';
6
+ import { Theme } from './models';
7
+ import { injectThemingConfig } from './theming.config';
8
+ import * as i0 from "@angular/core";
9
+ export const THEME_ATTRIBUTE_NAME = 'odxTheme';
10
+ export class ThemingService {
11
+ constructor() {
12
+ this.config = injectThemingConfig();
13
+ this.document = inject(DOCUMENT);
14
+ this.windowRef = inject(WindowRef);
15
+ this.theme$$ = new BehaviorSubject(this.getInitialTheme());
16
+ this.theme$ = this.theme$$.pipe(distinctUntilChanged(), shareReplay({ refCount: true }));
17
+ this.theme$.subscribe((theme) => {
18
+ this.document.body.setAttribute(THEME_ATTRIBUTE_NAME, theme);
19
+ saveTheme(this.config.storage, theme);
20
+ });
21
+ }
22
+ selectTheme(theme) {
23
+ this.theme$$.next(theme);
24
+ }
25
+ getSelectedTheme() {
26
+ return this.theme$$.getValue();
27
+ }
28
+ getInitialTheme() {
29
+ let selectedTheme = readTheme(this.config.storage);
30
+ if (!selectedTheme && this.config.autoDetect && prefersDarkTheme(this.windowRef.nativeWindow)) {
31
+ selectedTheme = Theme.DARK;
32
+ }
33
+ return selectedTheme ?? this.config.defaultTheme;
34
+ }
35
+ }
36
+ ThemingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ThemingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
37
+ ThemingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ThemingService, providedIn: 'root' });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ThemingService, decorators: [{
39
+ type: Injectable,
40
+ args: [{ providedIn: 'root' }]
41
+ }], ctorParameters: function () { return []; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3RoZW1pbmcvc3JjL2xpYi90aGVtaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFdkQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0FBRy9DLE1BQU0sT0FBTyxjQUFjO0lBUXpCO1FBUGlCLFdBQU0sR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQy9CLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQVEsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFFOUQsV0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUdsRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM3RCxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQVk7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzdGLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1NBQzVCO1FBRUQsT0FBTyxhQUFhLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDbkQsQ0FBQzs7MkdBL0JVLGNBQWM7K0dBQWQsY0FBYyxjQURELE1BQU07MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHByZWZlcnNEYXJrVGhlbWUsIHJlYWRUaGVtZSwgc2F2ZVRoZW1lIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IFRoZW1lIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgaW5qZWN0VGhlbWluZ0NvbmZpZyB9IGZyb20gJy4vdGhlbWluZy5jb25maWcnO1xuXG5leHBvcnQgY29uc3QgVEhFTUVfQVRUUklCVVRFX05BTUUgPSAnb2R4VGhlbWUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRoZW1pbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3RUaGVtaW5nQ29uZmlnKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZiA9IGluamVjdChXaW5kb3dSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRoZW1lJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lPih0aGlzLmdldEluaXRpYWxUaGVtZSgpKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGhlbWUkID0gdGhpcy50aGVtZSQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSB9KSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy50aGVtZSQuc3Vic2NyaWJlKCh0aGVtZSkgPT4ge1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZShUSEVNRV9BVFRSSUJVVEVfTkFNRSwgdGhlbWUpO1xuICAgICAgc2F2ZVRoZW1lKHRoaXMuY29uZmlnLnN0b3JhZ2UsIHRoZW1lKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RUaGVtZSh0aGVtZTogVGhlbWUpOiB2b2lkIHtcbiAgICB0aGlzLnRoZW1lJCQubmV4dCh0aGVtZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRUaGVtZSgpOiBUaGVtZSB7XG4gICAgcmV0dXJuIHRoaXMudGhlbWUkJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbml0aWFsVGhlbWUoKTogVGhlbWUge1xuICAgIGxldCBzZWxlY3RlZFRoZW1lID0gcmVhZFRoZW1lKHRoaXMuY29uZmlnLnN0b3JhZ2UpO1xuXG4gICAgaWYgKCFzZWxlY3RlZFRoZW1lICYmIHRoaXMuY29uZmlnLmF1dG9EZXRlY3QgJiYgcHJlZmVyc0RhcmtUaGVtZSh0aGlzLndpbmRvd1JlZi5uYXRpdmVXaW5kb3cpKSB7XG4gICAgICBzZWxlY3RlZFRoZW1lID0gVGhlbWUuREFSSztcbiAgICB9XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRUaGVtZSA/PyB0aGlzLmNvbmZpZy5kZWZhdWx0VGhlbWU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItdGhlbWluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci90aGVtaW5nL3NyYy9vZHgtYW5ndWxhci10aGVtaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { ɵwithMultipleDescriptors } from '@odx/angular/internal';
2
+ import { decoratorPropertyName, ɵwithMultipleDescriptors } from '@odx/angular/internal';
3
3
  export function Transform(transformer) {
4
4
  return (target, propertyKey) => {
5
- const propertySymbol = Symbol(`__${propertyKey.toString()}ClassTmpl__`);
5
+ const propertySymbol = decoratorPropertyName('Transform', propertyKey.toString());
6
6
  const descriptors = ɵwithMultipleDescriptors(target, propertyKey, propertySymbol);
7
7
  function setter(value) {
8
8
  this[propertySymbol] = transformer.apply(this, [value]);
@@ -11,4 +11,4 @@ export function Transform(transformer) {
11
11
  descriptors.init();
12
12
  };
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvZGVjb3JhdG9ycy90cmFuc2Zvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSWpFLE1BQU0sVUFBVSxTQUFTLENBQUMsV0FBd0I7SUFDaEQsT0FBTyxDQUFDLE1BQVcsRUFBRSxXQUF3QixFQUFFLEVBQUU7UUFDL0MsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssV0FBVyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN4RSxNQUFNLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRWxGLFNBQVMsTUFBTSxDQUFZLEtBQVU7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IMm1d2l0aE11bHRpcGxlRGVzY3JpcHRvcnMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuXG50eXBlIFRyYW5zZm9ybUZuPEtsYXNzID0gYW55LCBSID0gYW55PiA9ICh0aGlzOiBLbGFzcywgdmFsdWU6IFIpID0+IFI7XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmFuc2Zvcm0odHJhbnNmb3JtZXI6IFRyYW5zZm9ybUZuKSB7XG4gIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBQcm9wZXJ0eUtleSkgPT4ge1xuICAgIGNvbnN0IHByb3BlcnR5U3ltYm9sID0gU3ltYm9sKGBfXyR7cHJvcGVydHlLZXkudG9TdHJpbmcoKX1DbGFzc1RtcGxfX2ApO1xuICAgIGNvbnN0IGRlc2NyaXB0b3JzID0gybV3aXRoTXVsdGlwbGVEZXNjcmlwdG9ycyh0YXJnZXQsIHByb3BlcnR5S2V5LCBwcm9wZXJ0eVN5bWJvbCk7XG5cbiAgICBmdW5jdGlvbiBzZXR0ZXIodGhpczogYW55LCB2YWx1ZTogYW55KSB7XG4gICAgICB0aGlzW3Byb3BlcnR5U3ltYm9sXSA9IHRyYW5zZm9ybWVyLmFwcGx5KHRoaXMsIFt2YWx1ZV0pO1xuICAgIH1cblxuICAgIGRlc2NyaXB0b3JzLmFkZFNldHRlcihzZXR0ZXIpO1xuICAgIGRlc2NyaXB0b3JzLmluaXQoKTtcbiAgfTtcbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvZGVjb3JhdG9ycy90cmFuc2Zvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXhGLE1BQU0sVUFBVSxTQUFTLENBQUMsV0FBd0I7SUFDaEQsT0FBTyxDQUFDLE1BQVcsRUFBRSxXQUF3QixFQUFFLEVBQUU7UUFDL0MsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sV0FBVyxHQUFHLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFbEYsU0FBUyxNQUFNLENBQVksS0FBVTtZQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgZGVjb3JhdG9yUHJvcGVydHlOYW1lLCDJtXdpdGhNdWx0aXBsZURlc2NyaXB0b3JzIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcblxudHlwZSBUcmFuc2Zvcm1GbjxLbGFzcyA9IGFueSwgUiA9IGFueT4gPSAodGhpczogS2xhc3MsIHZhbHVlOiBSKSA9PiBSO1xuXG5leHBvcnQgZnVuY3Rpb24gVHJhbnNmb3JtKHRyYW5zZm9ybWVyOiBUcmFuc2Zvcm1Gbik6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IFByb3BlcnR5S2V5KSA9PiB7XG4gICAgY29uc3QgcHJvcGVydHlTeW1ib2wgPSBkZWNvcmF0b3JQcm9wZXJ0eU5hbWUoJ1RyYW5zZm9ybScsIHByb3BlcnR5S2V5LnRvU3RyaW5nKCkpO1xuICAgIGNvbnN0IGRlc2NyaXB0b3JzID0gybV3aXRoTXVsdGlwbGVEZXNjcmlwdG9ycyh0YXJnZXQsIHByb3BlcnR5S2V5LCBwcm9wZXJ0eVN5bWJvbCk7XG5cbiAgICBmdW5jdGlvbiBzZXR0ZXIodGhpczogYW55LCB2YWx1ZTogYW55KSB7XG4gICAgICB0aGlzW3Byb3BlcnR5U3ltYm9sXSA9IHRyYW5zZm9ybWVyLmFwcGx5KHRoaXMsIFt2YWx1ZV0pO1xuICAgIH1cblxuICAgIGRlc2NyaXB0b3JzLmFkZFNldHRlcihzZXR0ZXIpO1xuICAgIGRlc2NyaXB0b3JzLmluaXQoKTtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export function buildUrl(...args) {
2
+ return args.join('/').replace(/(^.*)(https?:\/\/)|(\/)+/g, '$2$3');
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9idWlsZC11cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFHLElBQXdEO0lBQ2xGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBidWlsZFVybCguLi5hcmdzOiBBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wgfCBudWxsIHwgdW5kZWZpbmVkPik6IHN0cmluZyB7XG4gIHJldHVybiBhcmdzLmpvaW4oJy8nKS5yZXBsYWNlKC8oXi4qKShodHRwcz86XFwvXFwvKXwoXFwvKSsvZywgJyQyJDMnKTtcbn1cbiJdfQ==