@odx/angular 1.0.0-rc.8 → 1.0.0

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