@odx/angular 1.0.0-rc.9 → 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 (597) hide show
  1. package/cdk/a11y/lib/directives/interactive.directive.d.ts +2 -2
  2. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +1 -2
  3. package/cdk/active-indicator/lib/models/active-indicator-direction.d.ts +1 -1
  4. package/cdk/active-indicator/lib/models/active-indicator-position.d.ts +1 -1
  5. package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +3 -1
  6. package/cdk/connected-overlay/lib/connected-overlay.component.d.ts +2 -2
  7. package/cdk/connected-overlay/lib/helpers/index.d.ts +0 -2
  8. package/cdk/connected-overlay/lib/models/connected-overlay-options.d.ts +3 -2
  9. package/cdk/custom-form-control/lib/custom-form-control.d.ts +5 -1
  10. package/cdk/dynamic-view/lib/facade/dynamic-content.d.ts +3 -3
  11. package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +1 -0
  12. package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +2 -1
  13. package/components/action-group/action-group.component.d.ts +1 -1
  14. package/components/area-header/area-header.component.d.ts +1 -1
  15. package/components/area-header/models/area-header-size.d.ts +1 -1
  16. package/components/avatar/lib/avatar.component.d.ts +3 -2
  17. package/components/avatar/lib/models/avatar-size.d.ts +1 -1
  18. package/components/avatar/lib/models/avatar-variant.d.ts +5 -0
  19. package/components/avatar/lib/models/index.d.ts +1 -0
  20. package/components/badge/lib/badge.component.d.ts +7 -17
  21. package/components/badge/lib/badge.directive.d.ts +16 -12
  22. package/components/badge/lib/models/badge-variant.d.ts +1 -1
  23. package/components/badge/lib/models/index.d.ts +0 -1
  24. package/components/bar/lib/models/bar-button-variant.d.ts +1 -1
  25. package/components/button/index.d.ts +1 -0
  26. package/components/button/lib/directives/index.d.ts +1 -0
  27. package/components/button/lib/directives/responsive-button.directive.d.ts +6 -0
  28. package/components/button/lib/models/button-size.d.ts +1 -1
  29. package/components/button/lib/models/button-variant.d.ts +1 -1
  30. package/components/card/README.md +3 -0
  31. package/components/card/index.d.ts +5 -0
  32. package/components/card/lib/card.component.d.ts +20 -0
  33. package/components/card/lib/card.module.d.ts +16 -0
  34. package/components/card/lib/components/card-footer/card-footer.component.d.ts +5 -0
  35. package/components/card/lib/components/index.d.ts +2 -0
  36. package/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.d.ts +5 -0
  37. package/components/card/lib/directives/card-content.directive.d.ts +5 -0
  38. package/components/card/lib/directives/card-title.directive.d.ts +5 -0
  39. package/components/card/lib/directives/index.d.ts +2 -0
  40. package/components/card/lib/models/card-variant.d.ts +6 -0
  41. package/components/card/lib/models/index.d.ts +1 -0
  42. package/components/chip/lib/models/chip-size.d.ts +1 -1
  43. package/components/chip/lib/models/chip-variant.d.ts +1 -1
  44. package/components/circular-progress/lib/circular-progress.component.d.ts +2 -1
  45. package/components/circular-progress/lib/models/circular-progress-size.d.ts +1 -1
  46. package/components/content-box/lib/content-box.module.d.ts +2 -2
  47. package/components/content-box/lib/directives/index.d.ts +2 -2
  48. package/components/dropdown/lib/dropdown.directive.d.ts +3 -2
  49. package/components/dropdown/lib/models/dropdown-options.d.ts +1 -1
  50. package/components/form-field/index.d.ts +1 -0
  51. package/components/form-field/lib/form-field.component.d.ts +8 -3
  52. package/components/form-field/lib/form-field.config.d.ts +3 -2
  53. package/components/form-field/lib/form-field.module.d.ts +0 -4
  54. package/components/form-field/lib/models/form-field-error-resolver.d.ts +1 -1
  55. package/components/form-field/lib/models/form-field-error.d.ts +1 -0
  56. package/components/form-field/lib/models/form-field-variant.d.ts +5 -0
  57. package/components/form-field/lib/models/index.d.ts +1 -0
  58. package/components/form-field/lib/services/form-field-error.service.d.ts +1 -0
  59. package/components/header/lib/directives/header-avatar.directive.d.ts +5 -2
  60. package/components/header/lib/header.component.d.ts +1 -1
  61. package/components/icon/index.d.ts +1 -0
  62. package/components/icon/lib/icon.component.d.ts +3 -5
  63. package/components/icon/lib/icon.config.d.ts +4 -0
  64. package/components/icon/lib/models/icon-size.d.ts +1 -1
  65. package/components/inline-message/lib/models/inline-message-variant.d.ts +1 -1
  66. package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +14 -0
  67. package/components/list/lib/components/index.d.ts +1 -0
  68. package/components/list/lib/list.component.d.ts +4 -2
  69. package/components/list/lib/list.module.d.ts +3 -2
  70. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +3 -1
  71. package/components/logo/models/logo-size.d.ts +1 -1
  72. package/components/logo/models/logo-variant.d.ts +1 -1
  73. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +2 -0
  74. package/components/mainfilter-group/README.md +3 -0
  75. package/components/mainfilter-group/index.d.ts +1 -0
  76. package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +6 -0
  77. package/components/menu/lib/directives/menu-item.directive.d.ts +1 -2
  78. package/components/menu/lib/menu.component.d.ts +4 -1
  79. package/components/menu/lib/menu.directive.d.ts +5 -4
  80. package/components/modal/index.d.ts +1 -1
  81. package/components/modal/lib/modal.config.d.ts +2 -2
  82. package/components/modal/lib/modal.module.d.ts +0 -4
  83. package/components/modal/lib/modal.service.d.ts +7 -3
  84. package/components/modal/lib/models/basic-modal-options.d.ts +1 -1
  85. package/components/modal/lib/models/modal-hero-variant.d.ts +1 -1
  86. package/components/modal/lib/models/modal-options.d.ts +2 -1
  87. package/components/modal/lib/models/modal-ref.d.ts +6 -4
  88. package/components/modal/lib/models/modal-size.d.ts +2 -1
  89. package/components/modal/lib/models/modal-type.d.ts +1 -1
  90. package/components/modal/lib/models/modal-variant.d.ts +1 -1
  91. package/components/navigation-back/README.md +3 -0
  92. package/components/navigation-back/index.d.ts +1 -0
  93. package/components/navigation-back/lib/navigation-back.component.d.ts +6 -0
  94. package/components/select/lib/abstract/select-control-option.d.ts +2 -0
  95. package/components/select/lib/abstract/select-control.d.ts +1 -0
  96. package/components/select/lib/components/option/option.component.d.ts +6 -2
  97. package/components/select/lib/select.component.d.ts +10 -5
  98. package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +5 -2
  99. package/components/toast/lib/components/toast-item/toast-item.component.d.ts +1 -1
  100. package/components/toast/lib/models/toast-variant.d.ts +1 -1
  101. package/components/toast/lib/toast.config.d.ts +2 -2
  102. package/components/toast/lib/toast.module.d.ts +0 -4
  103. package/components/toast/lib/toast.service.d.ts +1 -1
  104. package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +4 -1
  105. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +8 -3
  106. package/components/tooltip/lib/models/tooltip-size.d.ts +1 -1
  107. package/components/tooltip/lib/models/tooltip-trigger.d.ts +1 -1
  108. package/components/tooltip/lib/tooltip.component.d.ts +3 -2
  109. package/components/tooltip/lib/tooltip.directive.d.ts +3 -3
  110. package/esm2020/animations/lib/expand.mjs +3 -3
  111. package/esm2020/cdk/a11y/lib/a11y.module.mjs +4 -4
  112. package/esm2020/cdk/a11y/lib/directives/interactive.directive.mjs +4 -4
  113. package/esm2020/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +5 -7
  114. package/esm2020/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +3 -3
  115. package/esm2020/cdk/active-indicator/lib/active-indicator.directive.mjs +3 -3
  116. package/esm2020/cdk/checkbox-control/lib/checkbox-control.directive.mjs +16 -12
  117. package/esm2020/cdk/connected-overlay/lib/connected-overlay.component.mjs +8 -8
  118. package/esm2020/cdk/connected-overlay/lib/connected-overlay.service.mjs +5 -5
  119. package/esm2020/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +4 -6
  120. package/esm2020/cdk/connected-overlay/lib/helpers/index.mjs +1 -3
  121. package/esm2020/cdk/connected-overlay/lib/models/connected-overlay-options.mjs +3 -2
  122. package/esm2020/cdk/custom-form-control/lib/control.directive.mjs +3 -3
  123. package/esm2020/cdk/custom-form-control/lib/custom-form-control.mjs +44 -20
  124. package/esm2020/cdk/dynamic-view/lib/dynamic-view.component.mjs +3 -3
  125. package/esm2020/cdk/dynamic-view/lib/dynamic-view.directive.mjs +7 -5
  126. package/esm2020/cdk/dynamic-view/lib/dynamic-view.service.mjs +3 -3
  127. package/esm2020/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +15 -4
  128. package/esm2020/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +2 -2
  129. package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +3 -3
  130. package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +3 -3
  131. package/esm2020/cdk/expandable/lib/expandable.module.mjs +4 -4
  132. package/esm2020/cdk/radio-group-control/lib/radio-control.directive.mjs +10 -10
  133. package/esm2020/cdk/radio-group-control/lib/radio-group-control.directive.mjs +14 -10
  134. package/esm2020/cdk/radio-group-control/lib/radio-group-control.module.mjs +4 -4
  135. package/esm2020/components/accordion/lib/accordion.component.mjs +6 -6
  136. package/esm2020/components/accordion/lib/accordion.module.mjs +4 -4
  137. package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +5 -5
  138. package/esm2020/components/accordion/lib/directives/accordion-item-title.mjs +3 -3
  139. package/esm2020/components/action-group/action-group.component.mjs +5 -5
  140. package/esm2020/components/area-header/area-header.component.mjs +7 -6
  141. package/esm2020/components/area-header/area-header.module.mjs +4 -4
  142. package/esm2020/components/area-header/directives/area-header-content.directive.mjs +3 -3
  143. package/esm2020/components/area-header/directives/area-header-subtitle.directive.mjs +3 -3
  144. package/esm2020/components/avatar/lib/avatar.component.mjs +14 -8
  145. package/esm2020/components/avatar/lib/models/avatar-variant.mjs +5 -0
  146. package/esm2020/components/avatar/lib/models/index.mjs +2 -1
  147. package/esm2020/components/badge/lib/badge.component.mjs +18 -65
  148. package/esm2020/components/badge/lib/badge.directive.mjs +50 -25
  149. package/esm2020/components/badge/lib/models/index.mjs +1 -2
  150. package/esm2020/components/bar/lib/bar.component.mjs +3 -3
  151. package/esm2020/components/bar/lib/bar.module.mjs +4 -4
  152. package/esm2020/components/bar/lib/directives/bar-button.directive.mjs +6 -7
  153. package/esm2020/components/bar/lib/directives/bar-label.directive.mjs +3 -3
  154. package/esm2020/components/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  155. package/esm2020/components/button/index.mjs +2 -1
  156. package/esm2020/components/button/lib/button.component.mjs +8 -10
  157. package/esm2020/components/button/lib/directives/index.mjs +2 -0
  158. package/esm2020/components/button/lib/directives/responsive-button.directive.mjs +24 -0
  159. package/esm2020/components/button-group/lib/button-group.component.mjs +3 -3
  160. package/esm2020/components/card/index.mjs +6 -0
  161. package/esm2020/components/card/lib/card.component.mjs +67 -0
  162. package/esm2020/components/card/lib/card.module.mjs +53 -0
  163. package/esm2020/components/card/lib/components/card-footer/card-footer.component.mjs +13 -0
  164. package/esm2020/components/card/lib/components/index.mjs +3 -0
  165. package/esm2020/components/card/lib/components/launch-card-subtitle/launch-card-subtitle.component.mjs +13 -0
  166. package/esm2020/components/card/lib/directives/card-content.directive.mjs +17 -0
  167. package/esm2020/components/card/lib/directives/card-title.directive.mjs +17 -0
  168. package/esm2020/components/card/lib/directives/index.mjs +3 -0
  169. package/esm2020/components/card/lib/models/card-variant.mjs +6 -0
  170. package/esm2020/components/card/lib/models/index.mjs +2 -0
  171. package/esm2020/components/card/odx-angular-components-card.mjs +5 -0
  172. package/esm2020/components/checkbox/lib/checkbox.component.mjs +5 -5
  173. package/esm2020/components/checkbox/lib/checkbox.module.mjs +4 -4
  174. package/esm2020/components/checkbox/lib/checkbox.validator.mjs +3 -3
  175. package/esm2020/components/chip/lib/chip.component.mjs +5 -5
  176. package/esm2020/components/circular-progress/lib/circular-progress.component.mjs +8 -6
  177. package/esm2020/components/content-box/lib/content-box.component.mjs +3 -3
  178. package/esm2020/components/content-box/lib/content-box.module.mjs +7 -7
  179. package/esm2020/components/content-box/lib/directives/{content-box-footer-directive.mjs → content-box-footer.directive.mjs} +4 -4
  180. package/esm2020/components/content-box/lib/directives/{content-box-header-directive.mjs → content-box-header.directive.mjs} +4 -4
  181. package/esm2020/components/content-box/lib/directives/index.mjs +3 -3
  182. package/esm2020/components/dropdown/lib/dropdown.component.mjs +3 -3
  183. package/esm2020/components/dropdown/lib/dropdown.directive.mjs +10 -7
  184. package/esm2020/components/dropdown/lib/dropdown.module.mjs +4 -4
  185. package/esm2020/components/dropdown/lib/models/dropdown-options.mjs +3 -2
  186. package/esm2020/components/form-field/index.mjs +2 -1
  187. package/esm2020/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +3 -3
  188. package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +3 -3
  189. package/esm2020/components/form-field/lib/directives/form-field-control.directive.mjs +6 -6
  190. package/esm2020/components/form-field/lib/directives/form-field-error.directive.mjs +3 -3
  191. package/esm2020/components/form-field/lib/directives/form-field-hint.directive.mjs +3 -3
  192. package/esm2020/components/form-field/lib/directives/form-field-label.directive.mjs +3 -3
  193. package/esm2020/components/form-field/lib/directives/form.directive.mjs +3 -3
  194. package/esm2020/components/form-field/lib/form-field.component.mjs +32 -15
  195. package/esm2020/components/form-field/lib/form-field.config.mjs +4 -3
  196. package/esm2020/components/form-field/lib/form-field.module.mjs +5 -13
  197. package/esm2020/components/form-field/lib/form-field.service.mjs +3 -3
  198. package/esm2020/components/form-field/lib/models/form-field-error.mjs +1 -1
  199. package/esm2020/components/form-field/lib/models/form-field-variant.mjs +5 -0
  200. package/esm2020/components/form-field/lib/models/index.mjs +2 -1
  201. package/esm2020/components/form-field/lib/services/form-field-error.service.mjs +16 -16
  202. package/esm2020/components/header/lib/directives/header-avatar.directive.mjs +13 -6
  203. package/esm2020/components/header/lib/directives/header-title.directive.mjs +3 -3
  204. package/esm2020/components/header/lib/header.component.mjs +5 -5
  205. package/esm2020/components/header/lib/header.module.mjs +4 -4
  206. package/esm2020/components/icon/index.mjs +2 -1
  207. package/esm2020/components/icon/lib/icon.component.mjs +12 -21
  208. package/esm2020/components/icon/lib/icon.config.mjs +5 -0
  209. package/esm2020/components/inline-message/lib/inline-message.component.mjs +8 -9
  210. package/esm2020/components/link/link.directive.mjs +3 -3
  211. package/esm2020/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +49 -0
  212. package/esm2020/components/list/lib/components/index.mjs +2 -1
  213. package/esm2020/components/list/lib/components/list-item/list-item.component.mjs +3 -3
  214. package/esm2020/components/list/lib/list.component.mjs +22 -11
  215. package/esm2020/components/list/lib/list.module.mjs +7 -7
  216. package/esm2020/components/loading-spinner/lib/loading-spinner.component.mjs +3 -3
  217. package/esm2020/components/loading-spinner/lib/loading-spinner.directive.mjs +13 -6
  218. package/esm2020/components/loading-spinner/lib/loading-spinner.module.mjs +4 -4
  219. package/esm2020/components/logo/logo.directive.mjs +8 -6
  220. package/esm2020/components/main-menu/lib/directives/main-menu-button.directive.mjs +3 -3
  221. package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +13 -5
  222. package/esm2020/components/main-menu/lib/main-menu.component.mjs +5 -5
  223. package/esm2020/components/main-menu/lib/main-menu.module.mjs +4 -4
  224. package/esm2020/components/main-menu/lib/main-menu.service.mjs +3 -3
  225. package/esm2020/components/mainfilter-group/index.mjs +2 -0
  226. package/esm2020/components/mainfilter-group/lib/mainfilter-group.component.mjs +21 -0
  227. package/esm2020/components/mainfilter-group/odx-angular-components-mainfilter-group.mjs +5 -0
  228. package/esm2020/components/menu/lib/directives/menu-item.directive.mjs +6 -8
  229. package/esm2020/components/menu/lib/menu.component.mjs +22 -11
  230. package/esm2020/components/menu/lib/menu.directive.mjs +11 -4
  231. package/esm2020/components/menu/lib/menu.module.mjs +4 -4
  232. package/esm2020/components/modal/index.mjs +2 -2
  233. package/esm2020/components/modal/lib/components/basic-modal/basic-modal.component.mjs +3 -3
  234. package/esm2020/components/modal/lib/components/modal-footer/modal-footer.component.mjs +3 -3
  235. package/esm2020/components/modal/lib/components/modal-header/modal-header.component.mjs +5 -5
  236. package/esm2020/components/modal/lib/components/modal-hero/modal-hero.component.mjs +5 -5
  237. package/esm2020/components/modal/lib/directives/modal-close.directive.mjs +3 -3
  238. package/esm2020/components/modal/lib/directives/modal-content.directive.mjs +3 -3
  239. package/esm2020/components/modal/lib/directives/modal-dismiss.directive.mjs +3 -3
  240. package/esm2020/components/modal/lib/modal.component.mjs +5 -5
  241. package/esm2020/components/modal/lib/modal.config.mjs +4 -3
  242. package/esm2020/components/modal/lib/modal.directive.mjs +3 -3
  243. package/esm2020/components/modal/lib/modal.module.mjs +5 -13
  244. package/esm2020/components/modal/lib/modal.service.mjs +37 -26
  245. package/esm2020/components/modal/lib/models/modal-options.mjs +1 -1
  246. package/esm2020/components/modal/lib/models/modal-ref.mjs +20 -12
  247. package/esm2020/components/modal/lib/models/modal-size.mjs +2 -1
  248. package/esm2020/components/navigation-back/index.mjs +2 -0
  249. package/esm2020/components/navigation-back/lib/navigation-back.component.mjs +22 -0
  250. package/esm2020/components/navigation-back/odx-angular-components-navigation-back.mjs +5 -0
  251. package/esm2020/components/progress/lib/progress.component.mjs +3 -3
  252. package/esm2020/components/radio-group/lib/components/radio-button/radio-button.component.mjs +3 -3
  253. package/esm2020/components/radio-group/lib/radio-group.component.mjs +7 -7
  254. package/esm2020/components/radio-group/lib/radio-group.module.mjs +4 -4
  255. package/esm2020/components/rail-navigation/lib/components/rail-navigation-item.component.mjs +5 -5
  256. package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +3 -3
  257. package/esm2020/components/rail-navigation/lib/rail-navigation.module.mjs +4 -4
  258. package/esm2020/components/select/lib/abstract/select-control-option.mjs +1 -1
  259. package/esm2020/components/select/lib/abstract/select-control.mjs +1 -1
  260. package/esm2020/components/select/lib/components/option/option.component.mjs +37 -20
  261. package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +3 -3
  262. package/esm2020/components/select/lib/pipes/select-search-filter.pipe.mjs +3 -3
  263. package/esm2020/components/select/lib/select.component.mjs +82 -35
  264. package/esm2020/components/select/lib/select.module.mjs +4 -4
  265. package/esm2020/components/slider/lib/slider.directive.mjs +3 -3
  266. package/esm2020/components/spinbox/lib/spinbox.component.mjs +8 -8
  267. package/esm2020/components/switch/lib/switch.component.mjs +5 -5
  268. package/esm2020/components/switch/lib/switch.module.mjs +4 -4
  269. package/esm2020/components/switch/lib/switch.validator.mjs +3 -3
  270. package/esm2020/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +15 -6
  271. package/esm2020/components/tab-bar/lib/tab-bar.component.mjs +7 -7
  272. package/esm2020/components/tab-bar/lib/tab-bar.module.mjs +4 -4
  273. package/esm2020/components/toast/lib/components/toast-container/toast-container.component.mjs +3 -3
  274. package/esm2020/components/toast/lib/components/toast-item/toast-item.component.mjs +9 -8
  275. package/esm2020/components/toast/lib/toast.config.mjs +3 -3
  276. package/esm2020/components/toast/lib/toast.module.mjs +5 -13
  277. package/esm2020/components/toast/lib/toast.service.mjs +7 -7
  278. package/esm2020/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +13 -7
  279. package/esm2020/components/toggle-button-group/lib/toggle-button-group.component.mjs +23 -12
  280. package/esm2020/components/toggle-button-group/lib/toggle-button-group.module.mjs +4 -4
  281. package/esm2020/components/tooltip/lib/tooltip.component.mjs +4 -4
  282. package/esm2020/components/tooltip/lib/tooltip.directive.mjs +11 -12
  283. package/esm2020/internal/decorators/css-component.mjs +3 -8
  284. package/esm2020/internal/decorators/css-modifier.mjs +21 -18
  285. package/esm2020/internal/helpers/decorator-property-name.mjs +4 -0
  286. package/esm2020/internal/helpers/deepmerge.mjs +6 -0
  287. package/esm2020/internal/helpers/index.mjs +3 -1
  288. package/esm2020/internal/helpers/with-mutiple-descriptors.mjs +22 -13
  289. package/esm2020/lib/controllers/controller.mjs +3 -3
  290. package/esm2020/lib/controllers/disabled.controller.mjs +26 -20
  291. package/esm2020/lib/controllers/readonly.controller.mjs +30 -21
  292. package/esm2020/lib/core.module.mjs +9 -8
  293. package/esm2020/lib/directives/click-outside.directive.mjs +15 -12
  294. package/esm2020/lib/directives/delegate-focus.directive.mjs +40 -0
  295. package/esm2020/lib/directives/index.mjs +2 -2
  296. package/esm2020/lib/directives/with-disabled-state.directive.mjs +9 -9
  297. package/esm2020/lib/directives/with-tabindex.directive.mjs +3 -3
  298. package/esm2020/lib/services/window-ref.mjs +13 -6
  299. package/esm2020/theming/index.mjs +5 -0
  300. package/esm2020/theming/lib/helpers/index.mjs +4 -0
  301. package/esm2020/theming/lib/helpers/prefers-dark-theme.mjs +4 -0
  302. package/esm2020/theming/lib/helpers/resolve-theme.mjs +5 -0
  303. package/esm2020/theming/lib/helpers/theme-storage.mjs +19 -0
  304. package/esm2020/theming/lib/models/index.mjs +2 -0
  305. package/esm2020/theming/lib/models/theme.mjs +6 -0
  306. package/esm2020/theming/lib/theming.config.mjs +21 -0
  307. package/esm2020/theming/lib/theming.service.mjs +42 -0
  308. package/esm2020/theming/odx-angular-theming.mjs +5 -0
  309. package/esm2020/utils/lib/decorators/transform.mjs +3 -3
  310. package/esm2020/utils/lib/helpers/build-url.mjs +4 -0
  311. package/esm2020/utils/lib/helpers/dom.mjs +2 -2
  312. package/esm2020/utils/lib/helpers/event-manager.mjs +3 -3
  313. package/esm2020/utils/lib/helpers/get-axis.mjs +14 -0
  314. package/esm2020/utils/lib/helpers/get-opposite-side.mjs +15 -0
  315. package/esm2020/utils/lib/helpers/get-side.mjs +4 -0
  316. package/esm2020/utils/lib/helpers/index.mjs +6 -2
  317. package/esm2020/utils/lib/helpers/provide-config.mjs +25 -0
  318. package/esm2020/utils/lib/helpers/queue.mjs +36 -11
  319. package/esm2020/utils/lib/types/axis.mjs +5 -0
  320. package/esm2020/utils/lib/types/index.mjs +4 -1
  321. package/esm2020/utils/lib/types/position.mjs +15 -0
  322. package/esm2020/utils/lib/types/side.mjs +7 -0
  323. package/fesm2015/odx-angular-animations.mjs +2 -2
  324. package/fesm2015/odx-angular-animations.mjs.map +1 -1
  325. package/fesm2015/odx-angular-cdk-a11y.mjs +13 -14
  326. package/fesm2015/odx-angular-cdk-a11y.mjs.map +1 -1
  327. package/fesm2015/odx-angular-cdk-active-indicator.mjs +3 -3
  328. package/fesm2015/odx-angular-cdk-checkbox-control.mjs +16 -12
  329. package/fesm2015/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  330. package/fesm2015/odx-angular-cdk-connected-overlay.mjs +13 -31
  331. package/fesm2015/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  332. package/fesm2015/odx-angular-cdk-custom-form-control.mjs +47 -24
  333. package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  334. package/fesm2015/odx-angular-cdk-dynamic-view.mjs +26 -12
  335. package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  336. package/fesm2015/odx-angular-cdk-expandable.mjs +10 -10
  337. package/fesm2015/odx-angular-cdk-radio-group-control.mjs +26 -23
  338. package/fesm2015/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  339. package/fesm2015/odx-angular-components-accordion.mjs +16 -16
  340. package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
  341. package/fesm2015/odx-angular-components-action-group.mjs +4 -4
  342. package/fesm2015/odx-angular-components-action-group.mjs.map +1 -1
  343. package/fesm2015/odx-angular-components-area-header.mjs +16 -15
  344. package/fesm2015/odx-angular-components-area-header.mjs.map +1 -1
  345. package/fesm2015/odx-angular-components-avatar.mjs +18 -7
  346. package/fesm2015/odx-angular-components-avatar.mjs.map +1 -1
  347. package/fesm2015/odx-angular-components-badge.mjs +63 -97
  348. package/fesm2015/odx-angular-components-badge.mjs.map +1 -1
  349. package/fesm2015/odx-angular-components-bar.mjs +15 -16
  350. package/fesm2015/odx-angular-components-bar.mjs.map +1 -1
  351. package/fesm2015/odx-angular-components-breadcrumbs.mjs +3 -3
  352. package/fesm2015/odx-angular-components-button-group.mjs +3 -3
  353. package/fesm2015/odx-angular-components-button.mjs +31 -11
  354. package/fesm2015/odx-angular-components-button.mjs.map +1 -1
  355. package/fesm2015/odx-angular-components-card.mjs +174 -0
  356. package/fesm2015/odx-angular-components-card.mjs.map +1 -0
  357. package/fesm2015/odx-angular-components-checkbox.mjs +11 -11
  358. package/fesm2015/odx-angular-components-checkbox.mjs.map +1 -1
  359. package/fesm2015/odx-angular-components-chip.mjs +4 -4
  360. package/fesm2015/odx-angular-components-chip.mjs.map +1 -1
  361. package/fesm2015/odx-angular-components-circular-progress.mjs +7 -5
  362. package/fesm2015/odx-angular-components-circular-progress.mjs.map +1 -1
  363. package/fesm2015/odx-angular-components-content-box.mjs +13 -13
  364. package/fesm2015/odx-angular-components-content-box.mjs.map +1 -1
  365. package/fesm2015/odx-angular-components-dropdown.mjs +18 -14
  366. package/fesm2015/odx-angular-components-dropdown.mjs.map +1 -1
  367. package/fesm2015/odx-angular-components-form-field.mjs +80 -64
  368. package/fesm2015/odx-angular-components-form-field.mjs.map +1 -1
  369. package/fesm2015/odx-angular-components-header.mjs +23 -17
  370. package/fesm2015/odx-angular-components-header.mjs.map +1 -1
  371. package/fesm2015/odx-angular-components-icon.mjs +16 -22
  372. package/fesm2015/odx-angular-components-icon.mjs.map +1 -1
  373. package/fesm2015/odx-angular-components-inline-message.mjs +7 -8
  374. package/fesm2015/odx-angular-components-inline-message.mjs.map +1 -1
  375. package/fesm2015/odx-angular-components-link.mjs +3 -3
  376. package/fesm2015/odx-angular-components-list.mjs +70 -20
  377. package/fesm2015/odx-angular-components-list.mjs.map +1 -1
  378. package/fesm2015/odx-angular-components-loading-spinner.mjs +21 -13
  379. package/fesm2015/odx-angular-components-loading-spinner.mjs.map +1 -1
  380. package/fesm2015/odx-angular-components-logo.mjs +7 -5
  381. package/fesm2015/odx-angular-components-logo.mjs.map +1 -1
  382. package/fesm2015/odx-angular-components-main-menu.mjs +57 -49
  383. package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
  384. package/fesm2015/odx-angular-components-mainfilter-group.mjs +27 -0
  385. package/fesm2015/odx-angular-components-mainfilter-group.mjs.map +1 -0
  386. package/fesm2015/odx-angular-components-menu.mjs +41 -24
  387. package/fesm2015/odx-angular-components-menu.mjs.map +1 -1
  388. package/fesm2015/odx-angular-components-modal.mjs +91 -118
  389. package/fesm2015/odx-angular-components-modal.mjs.map +1 -1
  390. package/fesm2015/odx-angular-components-navigation-back.mjs +28 -0
  391. package/fesm2015/odx-angular-components-navigation-back.mjs.map +1 -0
  392. package/fesm2015/odx-angular-components-progress.mjs +3 -3
  393. package/fesm2015/odx-angular-components-radio-group.mjs +13 -13
  394. package/fesm2015/odx-angular-components-radio-group.mjs.map +1 -1
  395. package/fesm2015/odx-angular-components-rail-navigation.mjs +11 -11
  396. package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -1
  397. package/fesm2015/odx-angular-components-select.mjs +126 -68
  398. package/fesm2015/odx-angular-components-select.mjs.map +1 -1
  399. package/fesm2015/odx-angular-components-slider.mjs +3 -3
  400. package/fesm2015/odx-angular-components-spinbox.mjs +8 -8
  401. package/fesm2015/odx-angular-components-spinbox.mjs.map +1 -1
  402. package/fesm2015/odx-angular-components-switch.mjs +11 -11
  403. package/fesm2015/odx-angular-components-switch.mjs.map +1 -1
  404. package/fesm2015/odx-angular-components-tab-bar.mjs +25 -16
  405. package/fesm2015/odx-angular-components-tab-bar.mjs.map +1 -1
  406. package/fesm2015/odx-angular-components-toast.mjs +23 -29
  407. package/fesm2015/odx-angular-components-toast.mjs.map +1 -1
  408. package/fesm2015/odx-angular-components-toggle-button-group.mjs +40 -20
  409. package/fesm2015/odx-angular-components-toggle-button-group.mjs.map +1 -1
  410. package/fesm2015/odx-angular-components-tooltip.mjs +13 -14
  411. package/fesm2015/odx-angular-components-tooltip.mjs.map +1 -1
  412. package/fesm2015/odx-angular-internal.mjs +69 -53
  413. package/fesm2015/odx-angular-internal.mjs.map +1 -1
  414. package/fesm2015/odx-angular-theming.mjs +99 -0
  415. package/fesm2015/odx-angular-theming.mjs.map +1 -0
  416. package/fesm2015/odx-angular-utils.mjs +119 -25
  417. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  418. package/fesm2015/odx-angular.mjs +134 -102
  419. package/fesm2015/odx-angular.mjs.map +1 -1
  420. package/fesm2020/odx-angular-animations.mjs +2 -2
  421. package/fesm2020/odx-angular-animations.mjs.map +1 -1
  422. package/fesm2020/odx-angular-cdk-a11y.mjs +13 -14
  423. package/fesm2020/odx-angular-cdk-a11y.mjs.map +1 -1
  424. package/fesm2020/odx-angular-cdk-active-indicator.mjs +3 -3
  425. package/fesm2020/odx-angular-cdk-checkbox-control.mjs +16 -12
  426. package/fesm2020/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  427. package/fesm2020/odx-angular-cdk-connected-overlay.mjs +13 -31
  428. package/fesm2020/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  429. package/fesm2020/odx-angular-cdk-custom-form-control.mjs +47 -24
  430. package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  431. package/fesm2020/odx-angular-cdk-dynamic-view.mjs +25 -12
  432. package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  433. package/fesm2020/odx-angular-cdk-expandable.mjs +10 -10
  434. package/fesm2020/odx-angular-cdk-radio-group-control.mjs +26 -23
  435. package/fesm2020/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  436. package/fesm2020/odx-angular-components-accordion.mjs +16 -16
  437. package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
  438. package/fesm2020/odx-angular-components-action-group.mjs +4 -4
  439. package/fesm2020/odx-angular-components-action-group.mjs.map +1 -1
  440. package/fesm2020/odx-angular-components-area-header.mjs +16 -15
  441. package/fesm2020/odx-angular-components-area-header.mjs.map +1 -1
  442. package/fesm2020/odx-angular-components-avatar.mjs +18 -7
  443. package/fesm2020/odx-angular-components-avatar.mjs.map +1 -1
  444. package/fesm2020/odx-angular-components-badge.mjs +60 -90
  445. package/fesm2020/odx-angular-components-badge.mjs.map +1 -1
  446. package/fesm2020/odx-angular-components-bar.mjs +15 -16
  447. package/fesm2020/odx-angular-components-bar.mjs.map +1 -1
  448. package/fesm2020/odx-angular-components-breadcrumbs.mjs +3 -3
  449. package/fesm2020/odx-angular-components-button-group.mjs +3 -3
  450. package/fesm2020/odx-angular-components-button.mjs +31 -11
  451. package/fesm2020/odx-angular-components-button.mjs.map +1 -1
  452. package/fesm2020/odx-angular-components-card.mjs +173 -0
  453. package/fesm2020/odx-angular-components-card.mjs.map +1 -0
  454. package/fesm2020/odx-angular-components-checkbox.mjs +11 -11
  455. package/fesm2020/odx-angular-components-checkbox.mjs.map +1 -1
  456. package/fesm2020/odx-angular-components-chip.mjs +4 -4
  457. package/fesm2020/odx-angular-components-chip.mjs.map +1 -1
  458. package/fesm2020/odx-angular-components-circular-progress.mjs +7 -5
  459. package/fesm2020/odx-angular-components-circular-progress.mjs.map +1 -1
  460. package/fesm2020/odx-angular-components-content-box.mjs +13 -13
  461. package/fesm2020/odx-angular-components-content-box.mjs.map +1 -1
  462. package/fesm2020/odx-angular-components-dropdown.mjs +18 -14
  463. package/fesm2020/odx-angular-components-dropdown.mjs.map +1 -1
  464. package/fesm2020/odx-angular-components-form-field.mjs +79 -64
  465. package/fesm2020/odx-angular-components-form-field.mjs.map +1 -1
  466. package/fesm2020/odx-angular-components-header.mjs +23 -17
  467. package/fesm2020/odx-angular-components-header.mjs.map +1 -1
  468. package/fesm2020/odx-angular-components-icon.mjs +16 -22
  469. package/fesm2020/odx-angular-components-icon.mjs.map +1 -1
  470. package/fesm2020/odx-angular-components-inline-message.mjs +7 -8
  471. package/fesm2020/odx-angular-components-inline-message.mjs.map +1 -1
  472. package/fesm2020/odx-angular-components-link.mjs +3 -3
  473. package/fesm2020/odx-angular-components-list.mjs +69 -20
  474. package/fesm2020/odx-angular-components-list.mjs.map +1 -1
  475. package/fesm2020/odx-angular-components-loading-spinner.mjs +20 -13
  476. package/fesm2020/odx-angular-components-loading-spinner.mjs.map +1 -1
  477. package/fesm2020/odx-angular-components-logo.mjs +7 -5
  478. package/fesm2020/odx-angular-components-logo.mjs.map +1 -1
  479. package/fesm2020/odx-angular-components-main-menu.mjs +56 -49
  480. package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
  481. package/fesm2020/odx-angular-components-mainfilter-group.mjs +27 -0
  482. package/fesm2020/odx-angular-components-mainfilter-group.mjs.map +1 -0
  483. package/fesm2020/odx-angular-components-menu.mjs +41 -24
  484. package/fesm2020/odx-angular-components-menu.mjs.map +1 -1
  485. package/fesm2020/odx-angular-components-modal.mjs +90 -116
  486. package/fesm2020/odx-angular-components-modal.mjs.map +1 -1
  487. package/fesm2020/odx-angular-components-navigation-back.mjs +28 -0
  488. package/fesm2020/odx-angular-components-navigation-back.mjs.map +1 -0
  489. package/fesm2020/odx-angular-components-progress.mjs +3 -3
  490. package/fesm2020/odx-angular-components-radio-group.mjs +13 -13
  491. package/fesm2020/odx-angular-components-radio-group.mjs.map +1 -1
  492. package/fesm2020/odx-angular-components-rail-navigation.mjs +11 -11
  493. package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -1
  494. package/fesm2020/odx-angular-components-select.mjs +126 -62
  495. package/fesm2020/odx-angular-components-select.mjs.map +1 -1
  496. package/fesm2020/odx-angular-components-slider.mjs +3 -3
  497. package/fesm2020/odx-angular-components-spinbox.mjs +7 -7
  498. package/fesm2020/odx-angular-components-spinbox.mjs.map +1 -1
  499. package/fesm2020/odx-angular-components-switch.mjs +11 -11
  500. package/fesm2020/odx-angular-components-switch.mjs.map +1 -1
  501. package/fesm2020/odx-angular-components-tab-bar.mjs +24 -16
  502. package/fesm2020/odx-angular-components-tab-bar.mjs.map +1 -1
  503. package/fesm2020/odx-angular-components-toast.mjs +23 -29
  504. package/fesm2020/odx-angular-components-toast.mjs.map +1 -1
  505. package/fesm2020/odx-angular-components-toggle-button-group.mjs +37 -20
  506. package/fesm2020/odx-angular-components-toggle-button-group.mjs.map +1 -1
  507. package/fesm2020/odx-angular-components-tooltip.mjs +13 -14
  508. package/fesm2020/odx-angular-components-tooltip.mjs.map +1 -1
  509. package/fesm2020/odx-angular-internal.mjs +67 -51
  510. package/fesm2020/odx-angular-internal.mjs.map +1 -1
  511. package/fesm2020/odx-angular-theming.mjs +96 -0
  512. package/fesm2020/odx-angular-theming.mjs.map +1 -0
  513. package/fesm2020/odx-angular-utils.mjs +115 -27
  514. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  515. package/fesm2020/odx-angular.mjs +129 -98
  516. package/fesm2020/odx-angular.mjs.map +1 -1
  517. package/internal/decorators/css-component.d.ts +1 -2
  518. package/internal/decorators/css-modifier.d.ts +0 -1
  519. package/internal/helpers/decorator-property-name.d.ts +1 -0
  520. package/internal/helpers/deepmerge.d.ts +10 -0
  521. package/internal/helpers/index.d.ts +2 -0
  522. package/internal/helpers/with-mutiple-descriptors.d.ts +1 -1
  523. package/lib/controllers/disabled.controller.d.ts +5 -2
  524. package/lib/controllers/readonly.controller.d.ts +1 -0
  525. package/lib/core.module.d.ts +3 -3
  526. package/lib/directives/click-outside.directive.d.ts +2 -3
  527. package/lib/directives/delegate-focus.directive.d.ts +11 -0
  528. package/lib/directives/index.d.ts +1 -1
  529. package/lib/services/window-ref.d.ts +3 -0
  530. package/lib/tokens/identity-matcher.d.ts +1 -1
  531. package/lib/tokens/string-search-handler.d.ts +1 -1
  532. package/lib/tokens/stringify.d.ts +1 -1
  533. package/package.json +37 -11
  534. package/theming/README.md +3 -0
  535. package/theming/index.d.ts +4 -0
  536. package/theming/lib/helpers/index.d.ts +3 -0
  537. package/theming/lib/helpers/prefers-dark-theme.d.ts +1 -0
  538. package/theming/lib/helpers/resolve-theme.d.ts +2 -0
  539. package/theming/lib/helpers/theme-storage.d.ts +4 -0
  540. package/theming/lib/models/index.d.ts +1 -0
  541. package/theming/lib/models/theme.d.ts +6 -0
  542. package/theming/lib/theming.config.d.ts +10 -0
  543. package/theming/lib/theming.service.d.ts +16 -0
  544. package/utils/lib/decorators/transform.d.ts +2 -2
  545. package/utils/lib/helpers/build-url.d.ts +1 -0
  546. package/utils/lib/helpers/get-axis.d.ts +2 -0
  547. package/utils/lib/helpers/get-opposite-side.d.ts +2 -0
  548. package/utils/lib/helpers/get-side.d.ts +2 -0
  549. package/utils/lib/helpers/index.d.ts +5 -1
  550. package/utils/lib/helpers/ng-changes.d.ts +1 -1
  551. package/utils/lib/helpers/provide-config.d.ts +12 -0
  552. package/utils/lib/helpers/queue.d.ts +13 -2
  553. package/utils/lib/types/axis.d.ts +5 -0
  554. package/utils/lib/types/get-properties.d.ts +2 -2
  555. package/utils/lib/types/index.d.ts +3 -0
  556. package/utils/lib/types/position.d.ts +15 -0
  557. package/utils/lib/types/side.d.ts +7 -0
  558. package/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.d.ts +0 -2
  559. package/cdk/connected-overlay/lib/helpers/get-overlay-side.d.ts +0 -2
  560. package/components/badge/lib/badge.config.d.ts +0 -3
  561. package/components/badge/lib/facade/badge-host.d.ts +0 -3
  562. package/components/badge/lib/facade/index.d.ts +0 -1
  563. package/components/badge/lib/models/badge-position.d.ts +0 -5
  564. package/components/launch-tile/README.md +0 -3
  565. package/components/launch-tile/index.d.ts +0 -3
  566. package/components/launch-tile/lib/components/index.d.ts +0 -2
  567. package/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.d.ts +0 -5
  568. package/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.d.ts +0 -5
  569. package/components/launch-tile/lib/launch-tile.component.d.ts +0 -13
  570. package/components/launch-tile/lib/launch-tile.module.d.ts +0 -14
  571. package/components/modal/lib/services/index.d.ts +0 -1
  572. package/components/modal/lib/services/open-modal-manager.service.d.ts +0 -15
  573. package/esm2020/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.mjs +0 -13
  574. package/esm2020/cdk/connected-overlay/lib/helpers/get-overlay-side.mjs +0 -4
  575. package/esm2020/components/badge/lib/badge.config.mjs +0 -3
  576. package/esm2020/components/badge/lib/facade/badge-host.mjs +0 -2
  577. package/esm2020/components/badge/lib/facade/index.mjs +0 -2
  578. package/esm2020/components/badge/lib/models/badge-position.mjs +0 -5
  579. package/esm2020/components/launch-tile/index.mjs +0 -4
  580. package/esm2020/components/launch-tile/lib/components/index.mjs +0 -3
  581. package/esm2020/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.mjs +0 -13
  582. package/esm2020/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.mjs +0 -13
  583. package/esm2020/components/launch-tile/lib/launch-tile.component.mjs +0 -51
  584. package/esm2020/components/launch-tile/lib/launch-tile.module.mjs +0 -23
  585. package/esm2020/components/launch-tile/odx-angular-components-launch-tile.mjs +0 -5
  586. package/esm2020/components/modal/lib/services/index.mjs +0 -2
  587. package/esm2020/components/modal/lib/services/open-modal-manager.service.mjs +0 -42
  588. package/esm2020/lib/directives/let.directive.mjs +0 -36
  589. package/esm2020/utils/lib/helpers/provide-module-config.mjs +0 -21
  590. package/fesm2015/odx-angular-components-launch-tile.mjs +0 -95
  591. package/fesm2015/odx-angular-components-launch-tile.mjs.map +0 -1
  592. package/fesm2020/odx-angular-components-launch-tile.mjs +0 -94
  593. package/fesm2020/odx-angular-components-launch-tile.mjs.map +0 -1
  594. package/lib/directives/let.directive.d.ts +0 -17
  595. package/utils/lib/helpers/provide-module-config.d.ts +0 -12
  596. /package/components/content-box/lib/directives/{content-box-footer-directive.d.ts → content-box-footer.directive.d.ts} +0 -0
  597. /package/components/content-box/lib/directives/{content-box-header-directive.d.ts → content-box-header.directive.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-utils.mjs","sources":["../../../../libs/angular/utils/src/lib/decorators/pure.ts","../../../../libs/angular/utils/src/lib/decorators/transform.ts","../../../../libs/angular/utils/src/lib/helpers/type-guards.ts","../../../../libs/angular/utils/src/lib/helpers/dom.ts","../../../../libs/angular/utils/src/lib/helpers/until-destroyed.ts","../../../../libs/angular/utils/src/lib/helpers/angular.ts","../../../../libs/angular/utils/src/lib/helpers/array.ts","../../../../libs/angular/utils/src/lib/helpers/defer-fn.ts","../../../../libs/angular/utils/src/lib/helpers/event-manager.ts","../../../../libs/angular/utils/src/lib/helpers/get-unique-id.ts","../../../../libs/angular/utils/src/lib/helpers/ng-changes.ts","../../../../libs/angular/utils/src/lib/helpers/provide-module-config.ts","../../../../libs/angular/utils/src/lib/helpers/queue.ts","../../../../libs/angular/utils/src/odx-angular-utils.ts"],"sourcesContent":["export function Pure<T>(_target: object, propertyKey: string, { get, enumerable, value }: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T> {\n if (get) {\n return {\n enumerable,\n get(): T {\n const value = get.call(this);\n\n Object.defineProperty(this, propertyKey, { enumerable, value });\n\n return value;\n },\n };\n }\n\n if (typeof value !== 'function') {\n throw new Error('@Pure decorator can only be applied to functions or getters!');\n }\n\n const originalValue = value;\n\n return {\n enumerable,\n get(): T {\n let previousArgs: readonly unknown[] = [];\n let wasCalled = false;\n let pureValue: unknown;\n\n const patched = (...args: unknown[]): unknown => {\n const isPure = wasCalled && previousArgs.length === args.length && args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = originalValue.apply(this, args);\n wasCalled = true;\n\n return pureValue;\n };\n\n Object.defineProperty(this, propertyKey, { value: patched });\n\n return patched as unknown as T;\n },\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ɵwithMultipleDescriptors } from '@odx/angular/internal';\n\ntype TransformFn<Klass = any, R = any> = (this: Klass, value: R) => R;\n\nexport function Transform(transformer: TransformFn) {\n return (target: any, propertyKey: PropertyKey) => {\n const propertySymbol = Symbol(`__${propertyKey.toString()}ClassTmpl__`);\n const descriptors = ɵwithMultipleDescriptors(target, propertyKey, propertySymbol);\n\n function setter(this: any, value: any) {\n this[propertySymbol] = transformer.apply(this, [value]);\n }\n\n descriptors.addSetter(setter);\n descriptors.init();\n };\n}\n","import { TemplateRef, Type, ViewContainerRef } from '@angular/core';\n\nexport function isViewContainer(value: unknown): value is ViewContainerRef {\n return isFunction((value as ViewContainerRef)?.createComponent);\n}\n\nexport function isTemplateRef<T = unknown>(value: unknown): value is TemplateRef<T> {\n return value instanceof TemplateRef;\n}\n\nexport function isComponent<T = unknown>(value: unknown): value is Type<T> {\n return isFunction(value);\n}\n\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\nexport function isNonEmptyString(value: unknown): value is string {\n return isString(value) && value.length > 0;\n}\n\nexport function isBoolean(value: unknown): value is boolean {\n return value === true || value === false;\n}\n\nexport function isFunction(value: unknown): value is CallableFunction {\n return typeof value === 'function';\n}\n\nexport function isPresent<T>(value: T | null | undefined): value is NonNullable<T> {\n return value !== null && value !== undefined;\n}\n\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import { isNumber, isString } from './type-guards';\n\nexport function applyStyles(element: HTMLElement, styles: Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>): void {\n Object.assign(element.style, styles);\n}\n\nexport function booleanToAttributeString(state: boolean): string {\n return booleanToOptionalAttributeString(state) ?? 'false';\n}\n\nexport function booleanToOptionalAttributeString(state: boolean): string | null {\n return state ? 'true' : null;\n}\n\nexport function px(value: unknown): `${number}px` {\n return isNumber(value) ? `${Math.round(value)}px` : '0px';\n}\n\nexport function cssTranslate(x: string | 0, y: string | 0): `translate3d(${string | 0}, ${string | 0}, 0)` {\n return `translate3d(${x}, ${y}, 0)`;\n}\n\nexport function disableCSSTransitions(element: HTMLElement, disabled: boolean): void {\n if (disabled) {\n applyStyles(element, { transition: 'none' });\n } else {\n forceLayoutReflow(element);\n applyStyles(element, { transition: null });\n }\n}\n\nexport function forceLayoutReflow(element: HTMLElement): void {\n element.offsetHeight;\n}\n\nexport function setAttribute(element: HTMLElement, attribute: string, value?: unknown) {\n if (isString(value)) {\n element.setAttribute(attribute, value);\n } else {\n element.toggleAttribute(attribute, !!value);\n }\n}\n\nexport function createResizeObserver(callback: ResizeObserverCallback): ResizeObserver {\n try {\n return new ResizeObserver(callback);\n } catch {\n return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };\n }\n}\n\nexport function containsElement(parent?: Element | null, other?: Element | null, inclusive = true): boolean {\n if (!parent || !other) return false;\n if (!inclusive && parent === other) return false;\n return parent.contains(other);\n}\n","import { ChangeDetectorRef, inject, ViewRef } from '@angular/core';\nimport { MonoTypeOperatorFunction, Subject, takeUntil } from 'rxjs';\n\nexport function untilDestroyed(): <T>() => MonoTypeOperatorFunction<T> {\n const destroyed$$ = new Subject<void>();\n const viewRef = inject(ChangeDetectorRef) as ViewRef;\n\n function onDestroy() {\n destroyed$$.next();\n destroyed$$.complete();\n }\n\n Promise.resolve().then(() => (viewRef.destroyed ? onDestroy() : viewRef.onDestroy(onDestroy)));\n\n return <T>() => takeUntil<T>(destroyed$$.asObservable());\n}\n","import { ElementRef, inject, Injector } from '@angular/core';\nimport { MonoTypeOperatorFunction, Observable, tap } from 'rxjs';\nimport { setAttribute } from './dom';\nimport { untilDestroyed } from './until-destroyed';\n\nfunction reactiveBinding<T>(updateFn: (state: unknown) => void): MonoTypeOperatorFunction<T> {\n const takeUntilDestroyed = untilDestroyed();\n\n return (source$: Observable<T>) =>\n source$.pipe(\n tap((state) => updateFn(state)),\n takeUntilDestroyed()\n );\n}\n\nexport function reactiveClassBinding<T>(source$: Observable<T> | null | undefined, cssClass: string): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$.pipe(reactiveBinding((state) => nativeElement.classList.toggle(cssClass, !!state))).subscribe();\n }\n}\n\nexport function reactiveAttributeBinding<T>(source$: Observable<T> | null | undefined, ...attributes: string[]): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$\n .pipe(\n reactiveBinding((value) => {\n for (const attribute of attributes) {\n setAttribute(nativeElement, attribute, value);\n }\n })\n )\n .subscribe();\n }\n}\n\nexport function getInjector(): Injector {\n return inject(Injector);\n}\n\nexport function injectElement<T = HTMLElement>(): ElementRef<T> {\n return inject<ElementRef<T>>(ElementRef);\n}\n","export function pluckFromArray<T, K extends keyof T>(arr: T[], key: K): Array<T[K]> {\n return arr.map((value) => value[key]);\n}\n","export function deferFn(fn: () => void): void {\n setTimeout(fn, 0);\n}\n","import { inject, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { injectElement } from './angular';\n\n@Injectable()\nexport class EventManager implements OnDestroy {\n private readonly element = injectElement();\n private readonly renderer = inject(Renderer2);\n private readonly listeners: Array<() => void> = [];\n\n public destroyListeners(): void {\n while (this.listeners.length) this.listeners.pop()?.();\n }\n\n public register<T extends Event = Event>(\n eventNames: Array<string | null>,\n callback: (event?: T) => void,\n target?: 'document' | 'window' | EventTarget | null\n ): void {\n for (const eventName of eventNames) {\n if (eventName) {\n this.listeners.push(this.renderer.listen(target ?? this.element.nativeElement, eventName, (event) => callback(event)));\n }\n }\n }\n\n public ngOnDestroy(): void {\n this.destroyListeners();\n }\n}\n","const uniqueIdCache: { [key: string]: number } = {};\n\nexport function getUniqueId(key: string = ''): string {\n const n = (uniqueIdCache[key] ?? 0) + 1;\n uniqueIdCache[key] = n;\n\n return `${key}-${n}`;\n}\n","import { GetProperties } from '../types';\n\nexport type NgChanges<C, Properties = GetProperties<C>> = {\n [Key in keyof Properties]: {\n previousValue: Properties[Key];\n currentValue: Properties[Key];\n firstChange: boolean;\n isFirstChange(): boolean;\n };\n};\n\nexport function hasChanged<U extends Record<string, unknown>, T extends NgChanges<U>, K extends keyof T>(\n changes: T,\n keyOrKeys: K | K[],\n ignoreFirstChange = true\n): boolean {\n if (Array.isArray(keyOrKeys)) {\n for (const key of keyOrKeys) {\n if (hasChanged(changes, key, ignoreFirstChange)) {\n return true;\n }\n }\n return false;\n } else {\n return keyOrKeys in changes && (!ignoreFirstChange || !changes[keyOrKeys].isFirstChange());\n }\n}\n","import { FactoryProvider, inject, InjectionToken, Type, ValueProvider } from '@angular/core';\nimport { deepmerge } from 'deepmerge-ts';\n\ninterface ModuleConfigFactoryProvider<T, D extends ModuleConfigDependencies> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useFactory: (...args: { [I in keyof D]: D[I] extends Type<unknown> ? InstanceType<D[I]> : D[I] extends InjectionToken<unknown> ? any : never }) => T;\n deps?: [...D];\n}\n\nexport type ModuleConfigDependencies<T = unknown> = ReadonlyArray<Type<T> | InjectionToken<T>>;\nexport type ModuleConfigProvider<T = unknown, D extends ModuleConfigDependencies = []> = ModuleConfigFactoryProvider<T, D> | T;\n\nexport function provideModuleConfig<T extends object, D extends ModuleConfigDependencies = ModuleConfigDependencies>(\n token: InjectionToken<T> | string,\n config: ModuleConfigProvider<T, D>\n): FactoryProvider | ValueProvider {\n if ('useFactory' in config) {\n return { provide: token, useFactory: config.useFactory, deps: config.deps };\n }\n return { provide: token, useValue: config };\n}\n\nexport function createModuleConfigTokens<T, N extends string>(name: N, prefix: string, defaultValue: T) {\n const moduleConfig = `${name}ModuleConfig` as const;\n const defaultModuleConfig = `${name}DefaultModuleConfig` as const;\n const injectModuleConfig = `inject${name}ModuleConfig` as const;\n const tokenName = `${prefix}::${moduleConfig}`;\n const token = new InjectionToken<Partial<T>>(tokenName, { providedIn: 'root', factory: () => defaultValue });\n\n return {\n [moduleConfig]: token,\n [defaultModuleConfig]: defaultValue,\n [injectModuleConfig]: () => deepmerge(defaultValue, inject(token)),\n } as Record<typeof moduleConfig, InjectionToken<Partial<T>>> & Record<typeof defaultModuleConfig, T> & Record<typeof injectModuleConfig, () => T>;\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\ntype QueueItem<T> = T & { id: string };\ntype QueueDef<T> = Record<string, QueueItem<T>>;\n\nexport class Queue<T> {\n private readonly queue = new BehaviorSubject<QueueDef<T>>({});\n\n public readonly value$ = this.queue.pipe(\n map((values) => Object.values(values)),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n public add(item: QueueItem<T>): QueueItem<T> {\n this.queue.next({\n ...this.queue.getValue(),\n [item.id]: item,\n });\n\n return item;\n }\n\n public remove(item: QueueItem<T>): QueueItem<T> {\n const { [item.id]: removedItem, ...queue } = this.queue.getValue();\n this.queue.next(queue);\n\n return removedItem;\n }\n\n public clear(): void {\n this.queue.next({});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-utils.mjs","sources":["../../../../libs/angular/utils/src/lib/decorators/pure.ts","../../../../libs/angular/utils/src/lib/decorators/transform.ts","../../../../libs/angular/utils/src/lib/helpers/type-guards.ts","../../../../libs/angular/utils/src/lib/helpers/dom.ts","../../../../libs/angular/utils/src/lib/helpers/until-destroyed.ts","../../../../libs/angular/utils/src/lib/helpers/angular.ts","../../../../libs/angular/utils/src/lib/helpers/array.ts","../../../../libs/angular/utils/src/lib/helpers/build-url.ts","../../../../libs/angular/utils/src/lib/helpers/defer-fn.ts","../../../../libs/angular/utils/src/lib/helpers/event-manager.ts","../../../../libs/angular/utils/src/lib/types/axis.ts","../../../../libs/angular/utils/src/lib/types/position.ts","../../../../libs/angular/utils/src/lib/types/side.ts","../../../../libs/angular/utils/src/lib/helpers/get-side.ts","../../../../libs/angular/utils/src/lib/helpers/get-axis.ts","../../../../libs/angular/utils/src/lib/helpers/get-opposite-side.ts","../../../../libs/angular/utils/src/lib/helpers/get-unique-id.ts","../../../../libs/angular/utils/src/lib/helpers/ng-changes.ts","../../../../libs/angular/utils/src/lib/helpers/provide-config.ts","../../../../libs/angular/utils/src/lib/helpers/queue.ts","../../../../libs/angular/utils/src/odx-angular-utils.ts"],"sourcesContent":["export function Pure<T>(_target: object, propertyKey: string, { get, enumerable, value }: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T> {\n if (get) {\n return {\n enumerable,\n get(): T {\n const value = get.call(this);\n\n Object.defineProperty(this, propertyKey, { enumerable, value });\n\n return value;\n },\n };\n }\n\n if (typeof value !== 'function') {\n throw new Error('@Pure decorator can only be applied to functions or getters!');\n }\n\n const originalValue = value;\n\n return {\n enumerable,\n get(): T {\n let previousArgs: readonly unknown[] = [];\n let wasCalled = false;\n let pureValue: unknown;\n\n const patched = (...args: unknown[]): unknown => {\n const isPure = wasCalled && previousArgs.length === args.length && args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = originalValue.apply(this, args);\n wasCalled = true;\n\n return pureValue;\n };\n\n Object.defineProperty(this, propertyKey, { value: patched });\n\n return patched as unknown as T;\n },\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { decoratorPropertyName, ɵwithMultipleDescriptors } from '@odx/angular/internal';\n\ntype TransformFn<Klass = any, R = any> = (this: Klass, value: R) => R;\n\nexport function Transform(transformer: TransformFn): PropertyDecorator {\n return (target: any, propertyKey: PropertyKey) => {\n const propertySymbol = decoratorPropertyName('Transform', propertyKey.toString());\n const descriptors = ɵwithMultipleDescriptors(target, propertyKey, propertySymbol);\n\n function setter(this: any, value: any) {\n this[propertySymbol] = transformer.apply(this, [value]);\n }\n\n descriptors.addSetter(setter);\n descriptors.init();\n };\n}\n","import { TemplateRef, Type, ViewContainerRef } from '@angular/core';\n\nexport function isViewContainer(value: unknown): value is ViewContainerRef {\n return isFunction((value as ViewContainerRef)?.createComponent);\n}\n\nexport function isTemplateRef<T = unknown>(value: unknown): value is TemplateRef<T> {\n return value instanceof TemplateRef;\n}\n\nexport function isComponent<T = unknown>(value: unknown): value is Type<T> {\n return isFunction(value);\n}\n\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\nexport function isNonEmptyString(value: unknown): value is string {\n return isString(value) && value.length > 0;\n}\n\nexport function isBoolean(value: unknown): value is boolean {\n return value === true || value === false;\n}\n\nexport function isFunction(value: unknown): value is CallableFunction {\n return typeof value === 'function';\n}\n\nexport function isPresent<T>(value: T | null | undefined): value is NonNullable<T> {\n return value !== null && value !== undefined;\n}\n\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import { isNumber, isString } from './type-guards';\n\nexport function applyStyles(element: HTMLElement, styles: Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>): void {\n Object.assign(element.style, styles);\n}\n\nexport function booleanToAttributeString(state: boolean): string {\n return booleanToOptionalAttributeString(state) ?? 'false';\n}\n\nexport function booleanToOptionalAttributeString(state: boolean): string | null {\n return state ? 'true' : null;\n}\n\nexport function px(value: unknown): `${number}px` {\n return isNumber(value) ? `${value}px` : '0px';\n}\n\nexport function cssTranslate(x: string | 0, y: string | 0): `translate3d(${string | 0}, ${string | 0}, 0)` {\n return `translate3d(${x}, ${y}, 0)`;\n}\n\nexport function disableCSSTransitions(element: HTMLElement, disabled: boolean): void {\n if (disabled) {\n applyStyles(element, { transition: 'none' });\n } else {\n forceLayoutReflow(element);\n applyStyles(element, { transition: null });\n }\n}\n\nexport function forceLayoutReflow(element: HTMLElement): void {\n element.offsetHeight;\n}\n\nexport function setAttribute(element: HTMLElement, attribute: string, value?: unknown) {\n if (isString(value)) {\n element.setAttribute(attribute, value);\n } else {\n element.toggleAttribute(attribute, !!value);\n }\n}\n\nexport function createResizeObserver(callback: ResizeObserverCallback): ResizeObserver {\n try {\n return new ResizeObserver(callback);\n } catch {\n return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };\n }\n}\n\nexport function containsElement(parent?: Element | null, other?: Element | null, inclusive = true): boolean {\n if (!parent || !other) return false;\n if (!inclusive && parent === other) return false;\n return parent.contains(other);\n}\n","import { ChangeDetectorRef, inject, ViewRef } from '@angular/core';\nimport { MonoTypeOperatorFunction, Subject, takeUntil } from 'rxjs';\n\nexport function untilDestroyed(): <T>() => MonoTypeOperatorFunction<T> {\n const destroyed$$ = new Subject<void>();\n const viewRef = inject(ChangeDetectorRef) as ViewRef;\n\n function onDestroy() {\n destroyed$$.next();\n destroyed$$.complete();\n }\n\n Promise.resolve().then(() => (viewRef.destroyed ? onDestroy() : viewRef.onDestroy(onDestroy)));\n\n return <T>() => takeUntil<T>(destroyed$$.asObservable());\n}\n","import { ElementRef, inject, Injector } from '@angular/core';\nimport { MonoTypeOperatorFunction, Observable, tap } from 'rxjs';\nimport { setAttribute } from './dom';\nimport { untilDestroyed } from './until-destroyed';\n\nfunction reactiveBinding<T>(updateFn: (state: unknown) => void): MonoTypeOperatorFunction<T> {\n const takeUntilDestroyed = untilDestroyed();\n\n return (source$: Observable<T>) =>\n source$.pipe(\n tap((state) => updateFn(state)),\n takeUntilDestroyed()\n );\n}\n\nexport function reactiveClassBinding<T>(source$: Observable<T> | null | undefined, cssClass: string): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$.pipe(reactiveBinding((state) => nativeElement.classList.toggle(cssClass, !!state))).subscribe();\n }\n}\n\nexport function reactiveAttributeBinding<T>(source$: Observable<T> | null | undefined, ...attributes: string[]): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$\n .pipe(\n reactiveBinding((value) => {\n for (const attribute of attributes) {\n setAttribute(nativeElement, attribute, value);\n }\n })\n )\n .subscribe();\n }\n}\n\nexport function getInjector(): Injector {\n return inject(Injector);\n}\n\nexport function injectElement<T = HTMLElement>(): ElementRef<T> {\n return inject<ElementRef<T>>(ElementRef);\n}\n","export function pluckFromArray<T, K extends keyof T>(arr: T[], key: K): Array<T[K]> {\n return arr.map((value) => value[key]);\n}\n","export function buildUrl(...args: Array<string | number | symbol | null | undefined>): string {\n return args.join('/').replace(/(^.*)(https?:\\/\\/)|(\\/)+/g, '$2$3');\n}\n","export function deferFn(fn: () => void): void {\n setTimeout(fn, 0);\n}\n","import { inject, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { injectElement } from './angular';\n\n@Injectable()\nexport class EventManager implements OnDestroy {\n private readonly element = injectElement();\n private readonly renderer = inject(Renderer2);\n private readonly listeners: Array<() => void> = [];\n\n public destroyListeners(): void {\n while (this.listeners.length) this.listeners.pop()?.();\n }\n\n public register<T extends Event = Event>(\n eventNames: Array<string | null>,\n callback: (event?: T) => void,\n target?: 'document' | 'window' | EventTarget | null\n ): void {\n for (const eventName of eventNames) {\n if (eventName) {\n this.listeners.push(this.renderer.listen(target ?? this.element.nativeElement, eventName, (event) => callback(event)));\n }\n }\n }\n\n public ngOnDestroy(): void {\n this.destroyListeners();\n }\n}\n","export type Axis = (typeof Axis)[keyof typeof Axis];\n\nexport const Axis = {\n X: 'x',\n Y: 'y',\n} as const;\n","export type Position = (typeof Position)[keyof typeof Position];\n\nexport const Position = {\n TOP: 'top',\n TOP_START: 'top-start',\n TOP_END: 'top-end',\n\n RIGHT: 'right',\n RIGHT_START: 'right-start',\n RIGHT_END: 'right-end',\n\n BOTTOM: 'bottom',\n BOTTOM_START: 'bottom-start',\n BOTTOM_END: 'bottom-end',\n\n LEFT: 'left',\n LEFT_START: 'left-start',\n LEFT_END: 'left-end',\n} as const;\n","export type Side = (typeof Side)[keyof typeof Side];\n\nexport const Side = {\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n} as const;\n","import { Position, Side } from '../types';\n\nexport function getSide(position: Position): Side {\n return position.split('-')[0] as Side;\n}\n","import { Axis, Position, Side } from '../types';\nimport { getSide } from './get-side';\n\nexport function getAxis(position: Position): Axis {\n const side = getSide(position);\n\n switch (side) {\n case Side.TOP:\n case Side.BOTTOM:\n return Axis.Y;\n case Side.LEFT:\n case Side.RIGHT:\n return Axis.X;\n }\n}\n","import { Position, Side } from '../types';\nimport { getSide } from './get-side';\n\nexport function getOppositeSide(position: Position): Side {\n switch (getSide(position)) {\n case Side.TOP:\n return Side.BOTTOM;\n case Side.RIGHT:\n return Side.LEFT;\n case Side.BOTTOM:\n return Side.TOP;\n case Side.LEFT:\n return Side.RIGHT;\n }\n}\n","const uniqueIdCache: { [key: string]: number } = {};\n\nexport function getUniqueId(key: string = ''): string {\n const n = (uniqueIdCache[key] ?? 0) + 1;\n uniqueIdCache[key] = n;\n\n return `${key}-${n}`;\n}\n","import { GetProperties } from '../types';\n\nexport type NgChanges<C, Properties = GetProperties<C>> = {\n [Key in keyof Properties]: {\n previousValue: Properties[Key];\n currentValue: Properties[Key];\n firstChange: boolean;\n isFirstChange(): boolean;\n };\n};\n\nexport function hasChanged<U extends Record<string, unknown>, T extends NgChanges<U>, K extends keyof T>(\n changes: T,\n keyOrKeys: K | K[],\n ignoreFirstChange = true\n): boolean {\n if (Array.isArray(keyOrKeys)) {\n for (const key of keyOrKeys) {\n if (hasChanged(changes, key, ignoreFirstChange)) {\n return true;\n }\n }\n return false;\n } else {\n return keyOrKeys in changes && (!ignoreFirstChange || !changes[keyOrKeys].isFirstChange());\n }\n}\n","import { FactoryProvider, inject, InjectionToken, Type, ValueProvider } from '@angular/core';\n\nimport { deepmerge } from '@odx/angular/internal';\n\ninterface ConfigFactoryProvider<T, D extends ConfigDependencies> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useFactory: (...args: { [I in keyof D]: D[I] extends Type<unknown> ? InstanceType<D[I]> : D[I] extends InjectionToken<unknown> ? any : never }) => T;\n deps?: [...D];\n}\n\nexport type ConfigDependencies<T = unknown> = ReadonlyArray<Type<T> | InjectionToken<T>>;\nexport type ConfigProvider<T = unknown, D extends ConfigDependencies = []> = ConfigFactoryProvider<T, D> | T;\n\nexport function provideConfig<T extends object, D extends ConfigDependencies = ConfigDependencies>(\n token: InjectionToken<T> | string,\n config: ConfigProvider<T, D>\n): FactoryProvider | ValueProvider {\n if ('useFactory' in config) {\n return { provide: token, useFactory: config.useFactory, deps: config.deps };\n }\n return { provide: token, useValue: config };\n}\n\nexport function createConfigTokens<T, N extends string>(name: N, prefix: string, defaultValue: T) {\n type ConfigProviderFn = <D extends ConfigDependencies = ConfigDependencies<T>>(config: ConfigProvider<Partial<T>, D>) => FactoryProvider | ValueProvider;\n\n const configName = `${name}Config` as const;\n const defaultConfigName = `${name}DefaultConfig` as const;\n const injectConfigName = `inject${name}Config` as const;\n const provideConfigName = `provide${name}Config` as const;\n const tokenName = `${prefix}::${configName}`;\n const token = new InjectionToken<Partial<T>>(tokenName, { providedIn: 'root', factory: () => defaultValue });\n\n return {\n [configName]: token,\n [defaultConfigName]: defaultValue,\n [injectConfigName]: () => deepmerge(defaultValue, inject(token, { skipSelf: true, optional: true }) ?? {}, inject(token)),\n [provideConfigName]: (config: ConfigProvider<T>) => {\n return provideConfig(token, config);\n },\n } as Record<typeof configName, InjectionToken<Partial<T>>> &\n Record<typeof defaultConfigName, T> &\n Record<typeof injectConfigName, () => T> &\n Record<typeof provideConfigName, ConfigProviderFn>;\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\ntype QueueItemId = string | number;\ntype QueueItem<T> = T & { id: QueueItemId };\n\nexport class Queue<T> {\n private readonly queue = new Map<string, QueueItem<T>>();\n private readonly update$$ = new BehaviorSubject<void>(undefined);\n private values: QueueItem<T>[] = [];\n private firstItem: QueueItem<T> | null = null;\n private lastItem: QueueItem<T> | null = null;\n\n public readonly value$ = this.update$$.pipe(\n map(() => this.values),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n public get size(): number {\n return this.queue.size;\n }\n\n public isFirst({ id }: QueueItem<T>): boolean {\n return this.firstItem?.id === id;\n }\n\n public isLast({ id }: QueueItem<T>): boolean {\n return this.lastItem?.id === id;\n }\n\n public get(id: QueueItemId): QueueItem<T> | null {\n return this.queue.get(id.toString()) ?? null;\n }\n\n public add(item: QueueItem<T>): QueueItem<T> {\n this.remove(item);\n this.queue.set(item.id.toString(), item);\n this.notify();\n\n return item;\n }\n\n public remove(item: QueueItem<T>): QueueItem<T> {\n this.queue.delete(item.id.toString());\n this.notify();\n\n return item;\n }\n\n public clear(): void {\n this.queue.clear();\n this.notify();\n }\n\n public toArray(): QueueItem<T>[] {\n return this.values;\n }\n\n private notify(): void {\n this.values = Array.from(this.queue, ([_, item]) => item).reverse();\n this.firstItem = this.values[0] ?? null;\n this.lastItem = this.values[this.values.length - 1] ?? null;\n this.update$$.next(undefined);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ChangeDetectorRef, Directive, InjectionToken, forwardRef, Input, EventEmitter, Output, NgModule, reflectComponentType, Injectable } from '@angular/core';
3
- import { pluckFromArray, isPresent, Transform, deferFn, booleanToOptionalAttributeString } from '@odx/angular/utils';
4
- import { merge, EMPTY, tap, Subject, shareReplay, map, distinctUntilChanged, startWith } from 'rxjs';
5
- import { __decorate, __metadata } from 'tslib';
2
+ import { inject, ChangeDetectorRef, Directive, InjectionToken, Optional, Host, forwardRef, Input, ElementRef, Renderer2, EventEmitter, Output, HostListener, NgModule, reflectComponentType, Injectable } from '@angular/core';
3
+ import { pluckFromArray, isPresent, injectElement, deferFn, booleanToOptionalAttributeString } from '@odx/angular/utils';
4
+ import { merge, EMPTY, tap, Subject, shareReplay, map, distinctUntilChanged, startWith, filter, debounceTime } from 'rxjs';
6
5
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
7
6
  import { CommonModule, DOCUMENT } from '@angular/common';
7
+ import { LetModule } from '@ngrx/component';
8
+ import { Title } from '@angular/platform-browser';
9
+ import { Router, NavigationEnd } from '@angular/router';
8
10
  import { fromEvents } from '@odx/angular/rxjs';
9
11
 
10
12
  function controllerChanges(controllers) {
@@ -36,31 +38,43 @@ class Controller {
36
38
  this.change$$.next();
37
39
  }
38
40
  }
39
- Controller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: Controller, deps: [], target: i0.ɵɵFactoryTarget.Directive });
40
- Controller.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: Controller, usesOnChanges: true, ngImport: i0 });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: Controller, decorators: [{
41
+ Controller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Controller, deps: [], target: i0.ɵɵFactoryTarget.Directive });
42
+ Controller.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: Controller, usesOnChanges: true, ngImport: i0 });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Controller, decorators: [{
42
44
  type: Directive
43
45
  }] });
44
46
 
45
47
  const DISABLED_CONTROLLER = new InjectionToken('@odx/angular::DisabledWatchedController');
46
- const DISABLED_INTERNAL_CONTROLLER = new InjectionToken('@odx/angular::DisabledController', {
47
- factory: () => new DisabledController(),
48
- });
48
+ const DISABLED_INTERNAL_CONTROLLER = new InjectionToken('@odx/angular::DisabledController');
49
49
  class DisabledController extends Controller {
50
50
  constructor() {
51
51
  super(...arguments);
52
+ this.parentController = inject(DISABLED_CONTROLLER, { optional: true, skipSelf: true });
53
+ this.isDisabled = false;
52
54
  this.isDisabled$ = this.change$.pipe(map(() => this.disabled), distinctUntilChanged(), shareReplay({ refCount: true }));
53
- this.disabled = false;
55
+ }
56
+ set disabled(value) {
57
+ this.isDisabled = coerceBooleanProperty(value);
58
+ }
59
+ get disabled() {
60
+ return this.isDisabled || !!this.parentController?.disabled;
54
61
  }
55
62
  static inject() {
56
63
  return inject(DISABLED_CONTROLLER, { optional: true });
57
64
  }
58
65
  static connect() {
59
- return {
60
- provide: DISABLED_CONTROLLER,
61
- useFactory: Controller.setup,
62
- deps: [DISABLED_INTERNAL_CONTROLLER, ChangeDetectorRef],
63
- };
66
+ return [
67
+ {
68
+ provide: DISABLED_INTERNAL_CONTROLLER,
69
+ useFactory: (hostController) => hostController ?? new DisabledController(),
70
+ deps: [[new Optional(), new Host(), DisabledController]],
71
+ },
72
+ {
73
+ provide: DISABLED_CONTROLLER,
74
+ useFactory: Controller.setup,
75
+ deps: [[new Optional(), new Host(), DISABLED_INTERNAL_CONTROLLER], ChangeDetectorRef],
76
+ },
77
+ ];
64
78
  }
65
79
  setDisabledState(state) {
66
80
  if (this.disabled !== state) {
@@ -69,18 +83,14 @@ class DisabledController extends Controller {
69
83
  }
70
84
  }
71
85
  }
72
- DisabledController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: DisabledController, deps: null, target: i0.ɵɵFactoryTarget.Directive });
73
- DisabledController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: DisabledController, isStandalone: true, selector: "[disabled]", inputs: { disabled: "disabled" }, providers: [
86
+ DisabledController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DisabledController, deps: null, target: i0.ɵɵFactoryTarget.Directive });
87
+ DisabledController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: DisabledController, isStandalone: true, selector: "[disabled]", inputs: { disabled: "disabled" }, providers: [
74
88
  {
75
89
  provide: DISABLED_INTERNAL_CONTROLLER,
76
90
  useExisting: forwardRef(() => DisabledController),
77
91
  },
78
92
  ], usesInheritance: true, ngImport: i0 });
79
- __decorate([
80
- Transform(coerceBooleanProperty),
81
- __metadata("design:type", Object)
82
- ], DisabledController.prototype, "disabled", void 0);
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: DisabledController, decorators: [{
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DisabledController, decorators: [{
84
94
  type: Directive,
85
95
  args: [{
86
96
  standalone: true,
@@ -102,17 +112,8 @@ const ELEMENTS_WITH_READONLY_ATTRIBUTE = {
102
112
  select: true,
103
113
  };
104
114
  const READONLY_CONTROLLER = new InjectionToken('@odx/angular::ReadonlyWatchedController');
105
- const READONLY_INTERNAL_CONTROLLER = new InjectionToken('@odx/angular::ReadonlyController', {
106
- factory: () => new ReadonlyController(null),
107
- });
115
+ const READONLY_INTERNAL_CONTROLLER = new InjectionToken('@odx/angular::ReadonlyController');
108
116
  class ReadonlyController extends Controller {
109
- constructor(element) {
110
- super();
111
- this.isReadonly = false;
112
- this.hasReadonlyAttribute = false;
113
- this.isReadonly$ = this.change$.pipe(map(() => this.isReadonly), distinctUntilChanged(), shareReplay({ refCount: true }));
114
- this.nodeName = element?.nativeElement.nodeName.toLowerCase() ?? '';
115
- }
116
117
  set readonly(value) {
117
118
  const coercedValue = coerceBooleanProperty(value);
118
119
  if (this.isReadonly !== coercedValue) {
@@ -121,27 +122,45 @@ class ReadonlyController extends Controller {
121
122
  }
122
123
  }
123
124
  get readonly() {
124
- return this.isReadonly;
125
+ return this.isReadonly || !!this.parentController?.readonly;
126
+ }
127
+ constructor(element) {
128
+ super();
129
+ this.parentController = inject(READONLY_CONTROLLER, { optional: true, skipSelf: true });
130
+ this.isReadonly = false;
131
+ this.hasReadonlyAttribute = false;
132
+ this.isReadonly$ = this.change$.pipe(map(() => this.isReadonly), distinctUntilChanged(), shareReplay({ refCount: true }));
133
+ this.nodeName = element?.nativeElement.nodeName.toLowerCase() ?? '';
125
134
  }
126
135
  static inject() {
127
136
  return inject(READONLY_CONTROLLER, { optional: true });
128
137
  }
129
138
  static connect() {
130
- return {
131
- provide: READONLY_CONTROLLER,
132
- useFactory: Controller.setup,
133
- deps: [READONLY_INTERNAL_CONTROLLER, ChangeDetectorRef],
134
- };
139
+ return [
140
+ {
141
+ provide: READONLY_INTERNAL_CONTROLLER,
142
+ useFactory: (hostController, elementRef) => hostController ?? new ReadonlyController(elementRef),
143
+ deps: [
144
+ [new Optional(), new Host(), ReadonlyController],
145
+ [new Optional(), ElementRef],
146
+ ],
147
+ },
148
+ {
149
+ provide: READONLY_CONTROLLER,
150
+ useFactory: Controller.setup,
151
+ deps: [[new Optional(), new Host(), READONLY_INTERNAL_CONTROLLER], ChangeDetectorRef],
152
+ },
153
+ ];
135
154
  }
136
155
  }
137
- ReadonlyController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ReadonlyController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
138
- ReadonlyController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: ReadonlyController, isStandalone: true, selector: "[readonly]", inputs: { readonly: "readonly" }, host: { properties: { "attr.readonly": "hasReadonlyAttribute || null" } }, providers: [
156
+ ReadonlyController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ReadonlyController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
157
+ 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: [
139
158
  {
140
159
  provide: READONLY_INTERNAL_CONTROLLER,
141
160
  useExisting: forwardRef(() => ReadonlyController),
142
161
  },
143
162
  ], usesInheritance: true, ngImport: i0 });
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ReadonlyController, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ReadonlyController, decorators: [{
145
164
  type: Directive,
146
165
  args: [{
147
166
  standalone: true,
@@ -161,12 +180,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
161
180
  }] } });
162
181
 
163
182
  class ClickOutsideDirective {
164
- constructor(element, renderer) {
165
- this.element = element;
166
- this.renderer = renderer;
183
+ constructor() {
184
+ this.element = injectElement();
185
+ this.renderer = inject(Renderer2);
167
186
  this.odxClickOutsideActive = true;
168
187
  this.odxClickOutside = new EventEmitter();
169
- this.odxClickOutsideActive = true;
170
188
  }
171
189
  ngOnInit() {
172
190
  if (this.odxClickOutsideActive) {
@@ -195,59 +213,67 @@ class ClickOutsideDirective {
195
213
  registerHandler() {
196
214
  deferFn(() => {
197
215
  this.listener ?? (this.listener = this.renderer.listen('document', 'click', (event) => {
198
- if (this.odxClickOutsideActive && this.element?.nativeElement.isConnected && !this.element?.nativeElement.contains(event.target)) {
216
+ if (!this.odxClickOutsideActive)
217
+ return;
218
+ const hostElement = this.element.nativeElement;
219
+ const targetElement = event.target;
220
+ if (hostElement.isConnected && targetElement.isConnected && !hostElement.contains(targetElement)) {
199
221
  this.odxClickOutside.emit(event);
200
222
  }
201
223
  }));
202
224
  });
203
225
  }
204
226
  }
205
- ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
206
- ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: ClickOutsideDirective, isStandalone: true, selector: "[odxClickOutside]", inputs: { odxClickOutsideActive: "odxClickOutsideActive" }, outputs: { odxClickOutside: "odxClickOutside" }, usesOnChanges: true, ngImport: i0 });
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ClickOutsideDirective, decorators: [{
227
+ ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
228
+ 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 });
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ClickOutsideDirective, decorators: [{
208
230
  type: Directive,
209
231
  args: [{
210
232
  standalone: true,
211
233
  selector: '[odxClickOutside]',
212
234
  }]
213
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { odxClickOutsideActive: [{
235
+ }], propDecorators: { odxClickOutsideActive: [{
214
236
  type: Input
215
237
  }], odxClickOutside: [{
216
238
  type: Output
217
239
  }] } });
218
240
 
219
- class LetContext {
220
- constructor(directive) {
221
- this.$implicit = directive.value;
222
- this.odxLet = directive.value;
241
+ class DelegateFocusDirective {
242
+ constructor() {
243
+ this.tabindex = 0;
244
+ this.focused = new EventEmitter();
223
245
  }
224
- }
225
- class LetDirective {
226
- constructor(viewContainer, templateRef) {
227
- this.viewRef = viewContainer.createEmbeddedView(templateRef, new LetContext(this));
228
- }
229
- static ngTemplateContextGuard(_dir, _ctx) {
230
- return true;
231
- }
232
- ngOnChanges(changes) {
233
- if (changes.value) {
234
- const value = changes.value.currentValue;
235
- this.viewRef.context.$implicit = value;
236
- this.viewRef.context.odxLet = value;
237
- }
246
+ handleFocus() {
247
+ this.focused.next();
248
+ }
249
+ handleFocusIn() {
250
+ this.tabindex = -1;
251
+ }
252
+ handleFocusOut() {
253
+ this.tabindex = 0;
238
254
  }
239
255
  }
240
- LetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LetDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
241
- LetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: LetDirective, isStandalone: true, selector: "ng-template[odxLet]", inputs: { value: ["odxLet", "value"] }, usesOnChanges: true, ngImport: i0 });
242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LetDirective, decorators: [{
256
+ DelegateFocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DelegateFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
257
+ 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 });
258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DelegateFocusDirective, decorators: [{
243
259
  type: Directive,
244
260
  args: [{
245
261
  standalone: true,
246
- selector: 'ng-template[odxLet]',
262
+ host: {
263
+ '[attr.tabindex]': 'tabindex',
264
+ },
247
265
  }]
248
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, propDecorators: { value: [{
249
- type: Input,
250
- args: ['odxLet']
266
+ }], propDecorators: { focused: [{
267
+ type: Output
268
+ }], handleFocus: [{
269
+ type: HostListener,
270
+ args: ['focus']
271
+ }], handleFocusIn: [{
272
+ type: HostListener,
273
+ args: ['focusin']
274
+ }], handleFocusOut: [{
275
+ type: HostListener,
276
+ args: ['focusout']
251
277
  }] } });
252
278
 
253
279
  const ELEMENTS_WITH_DISABLED_ATTRIBUTE = {
@@ -260,21 +286,21 @@ const ELEMENTS_WITH_DISABLED_ATTRIBUTE = {
260
286
  textarea: true,
261
287
  };
262
288
  class WithDisabledState {
263
- constructor(element) {
264
- this.disabledController = DisabledController.inject();
265
- this.hasDisabledAttribute = ELEMENTS_WITH_DISABLED_ATTRIBUTE[element.nativeElement.nodeName.toLowerCase() ?? ''];
266
- this.hasAriaRole = element.nativeElement.hasAttribute('role');
267
- }
268
289
  get isDisabled() {
269
290
  return !!this.disabledController?.disabled;
270
291
  }
271
292
  get ariaDisabled() {
272
293
  return booleanToOptionalAttributeString(this.hasAriaRole && this.isDisabled);
273
294
  }
295
+ constructor(element) {
296
+ this.disabledController = DisabledController.inject();
297
+ this.hasDisabledAttribute = !!ELEMENTS_WITH_DISABLED_ATTRIBUTE[element.nativeElement.nodeName.toLowerCase() ?? ''];
298
+ this.hasAriaRole = element.nativeElement.hasAttribute('role');
299
+ }
274
300
  }
275
- WithDisabledState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithDisabledState, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
276
- WithDisabledState.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: WithDisabledState, isStandalone: true, host: { properties: { "class.is-disabled": "isDisabled", "attr.aria-disabled": "ariaDisabled", "attr.disabled": "hasDisabledAttribute && isDisabled || null" } }, providers: [DisabledController.connect()], ngImport: i0 });
277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithDisabledState, decorators: [{
301
+ WithDisabledState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WithDisabledState, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
302
+ 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 });
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WithDisabledState, decorators: [{
278
304
  type: Directive,
279
305
  args: [{
280
306
  standalone: true,
@@ -295,9 +321,9 @@ class WithTabIndex {
295
321
  return !!this.disabledController?.disabled;
296
322
  }
297
323
  }
298
- WithTabIndex.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithTabIndex, deps: [], target: i0.ɵɵFactoryTarget.Directive });
299
- WithTabIndex.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: WithTabIndex, isStandalone: true, host: { properties: { "attr.tabindex": "isDisabled ? -1 : 0" } }, ngImport: i0 });
300
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithTabIndex, decorators: [{
324
+ WithTabIndex.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WithTabIndex, deps: [], target: i0.ɵɵFactoryTarget.Directive });
325
+ 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 });
326
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WithTabIndex, decorators: [{
301
327
  type: Directive,
302
328
  args: [{
303
329
  standalone: true,
@@ -308,28 +334,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
308
334
  }] });
309
335
 
310
336
  const controllers = [DisabledController, ReadonlyController];
311
- const modules = [ClickOutsideDirective, LetDirective];
337
+ const modules = [ClickOutsideDirective];
312
338
  class CoreModule {
313
339
  }
314
- CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
315
- CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, imports: [DisabledController, ReadonlyController, ClickOutsideDirective, LetDirective], exports: [CommonModule, DisabledController, ReadonlyController, ClickOutsideDirective, LetDirective] });
316
- CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, imports: [CommonModule] });
317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, decorators: [{
340
+ CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
341
+ 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] });
342
+ CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CoreModule, imports: [CommonModule, LetModule] });
343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CoreModule, decorators: [{
318
344
  type: NgModule,
319
345
  args: [{
320
346
  imports: [...controllers, ...modules],
321
- exports: [CommonModule, ...controllers, ...modules],
347
+ exports: [CommonModule, LetModule, ...controllers, ...modules],
322
348
  }]
323
349
  }] });
324
350
 
325
351
  class WindowRef {
326
352
  constructor() {
353
+ this.title = inject(Title);
327
354
  this.nativeWindow = inject(DOCUMENT).defaultView ?? window;
328
- this.isOnline$ = fromEvents(this.nativeWindow, 'offline', 'online').pipe(startWith(null), map(() => this.nativeWindow.navigator.onLine), distinctUntilChanged(), shareReplay({ refCount: true }));
355
+ this.isOnline$ = fromEvents(this.nativeWindow, 'offline', 'online').pipe(startWith(null), map(() => this.isOnline()), distinctUntilChanged(), shareReplay({ refCount: true }));
356
+ 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 }));
329
357
  }
330
358
  get location() {
331
359
  return this.nativeWindow.location;
332
360
  }
361
+ isOnline() {
362
+ return this.nativeWindow.navigator.onLine;
363
+ }
333
364
  getLanguage() {
334
365
  return this.nativeWindow.navigator.language;
335
366
  }
@@ -344,9 +375,9 @@ class WindowRef {
344
375
  return componentType ? this.nativeWindow.document.querySelector(componentType.selector) : null;
345
376
  }
346
377
  }
347
- WindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
348
- WindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WindowRef, providedIn: 'root' });
349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WindowRef, decorators: [{
378
+ WindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
379
+ WindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WindowRef, providedIn: 'root' });
380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: WindowRef, decorators: [{
350
381
  type: Injectable,
351
382
  args: [{
352
383
  providedIn: 'root',
@@ -377,5 +408,5 @@ const ODX_STRINGIFY = new InjectionToken('@odx/angular::Stringify', {
377
408
  * Generated bundle index. Do not edit.
378
409
  */
379
410
 
380
- export { ClickOutsideDirective, Controller, CoreModule, DISABLED_CONTROLLER, DISABLED_INTERNAL_CONTROLLER, DisabledController, LetContext, LetDirective, ODX_IDENTITY_MATCHER, ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, READONLY_CONTROLLER, READONLY_INTERNAL_CONTROLLER, ReadonlyController, WindowRef, WithDisabledState, WithTabIndex, detectControllerChanges };
411
+ export { ClickOutsideDirective, Controller, CoreModule, DISABLED_CONTROLLER, DISABLED_INTERNAL_CONTROLLER, DelegateFocusDirective, DisabledController, ODX_IDENTITY_MATCHER, ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, READONLY_CONTROLLER, READONLY_INTERNAL_CONTROLLER, ReadonlyController, WindowRef, WithDisabledState, WithTabIndex, detectControllerChanges };
381
412
  //# sourceMappingURL=odx-angular.mjs.map