@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,127 @@
1
+ import { FocusKeyManager, A11yModule as A11yModule$1 } from '@angular/cdk/a11y';
2
+ import * as i0 from '@angular/core';
3
+ import { EventEmitter, Directive, Output, HostListener, ContentChildren, NgModule } from '@angular/core';
4
+ import * as i1 from '@odx/angular';
5
+ import { DisabledController, WithDisabledState, WithTabIndex, CoreModule } from '@odx/angular';
6
+ import { __decorate } from 'tslib';
7
+ import { CSSComponent } from '@odx/angular/internal';
8
+ import { injectElement, deferFn } from '@odx/angular/utils';
9
+
10
+ let InteractiveDirective = class InteractiveDirective {
11
+ constructor() {
12
+ this.disabledController = DisabledController.inject();
13
+ this.element = injectElement();
14
+ this.interact = new EventEmitter();
15
+ }
16
+ handleEvents(event) {
17
+ if (!this.disabledController?.disabled) {
18
+ this.interact.next(event);
19
+ }
20
+ }
21
+ };
22
+ InteractiveDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InteractiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
23
+ InteractiveDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: InteractiveDirective, isStandalone: true, selector: "[odxCdkInteractive]", outputs: { interact: "odxCdkInteractive" }, host: { attributes: { "role": "button" }, listeners: { "click": "handleEvents($event)", "keyup.enter": "handleEvents($event)", "keyup.space": "handleEvents($event)" } }, hostDirectives: [{ directive: i1.WithDisabledState }, { directive: i1.WithTabIndex }], ngImport: i0 });
24
+ InteractiveDirective = __decorate([
25
+ CSSComponent('cdk-interactive')
26
+ ], InteractiveDirective);
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InteractiveDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ selector: '[odxCdkInteractive]',
31
+ standalone: true,
32
+ hostDirectives: [WithDisabledState, WithTabIndex],
33
+ host: {
34
+ role: 'button',
35
+ },
36
+ }]
37
+ }], propDecorators: { interact: [{
38
+ type: Output,
39
+ args: ['odxCdkInteractive']
40
+ }], handleEvents: [{
41
+ type: HostListener,
42
+ args: ['click', ['$event']]
43
+ }, {
44
+ type: HostListener,
45
+ args: ['keyup.enter', ['$event']]
46
+ }, {
47
+ type: HostListener,
48
+ args: ['keyup.space', ['$event']]
49
+ }] } });
50
+
51
+ class ListFocusManagerOptionDirective {
52
+ constructor() {
53
+ this.disabledController = DisabledController.inject();
54
+ this.element = injectElement();
55
+ }
56
+ get disabled() {
57
+ return !!this.disabledController?.disabled;
58
+ }
59
+ focus() {
60
+ this.element.nativeElement.focus();
61
+ }
62
+ }
63
+ ListFocusManagerOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ListFocusManagerOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
64
+ ListFocusManagerOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: ListFocusManagerOptionDirective, isStandalone: true, selector: "[odxListFocusManager]", ngImport: i0 });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ListFocusManagerOptionDirective, decorators: [{
66
+ type: Directive,
67
+ args: [{
68
+ selector: '[odxListFocusManager]',
69
+ standalone: true,
70
+ }]
71
+ }] });
72
+
73
+ class ListFocusManagerDirective {
74
+ constructor() {
75
+ this.keyManager = null;
76
+ }
77
+ ngAfterContentInit() {
78
+ this.keyManager = new FocusKeyManager(this.options)
79
+ .withHomeAndEnd()
80
+ .withWrap()
81
+ .skipPredicate((item) => item.disabled);
82
+ deferFn(() => this.keyManager?.setFirstItemActive());
83
+ }
84
+ ngOnDestroy() {
85
+ this.keyManager?.destroy();
86
+ this.keyManager = null;
87
+ }
88
+ onKeyDown(event) {
89
+ this.keyManager?.onKeydown(event);
90
+ }
91
+ }
92
+ ListFocusManagerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ListFocusManagerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
93
+ ListFocusManagerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: ListFocusManagerDirective, isStandalone: true, selector: "[odxListFocusManager]", host: { listeners: { "keydown": "onKeyDown($event)" } }, queries: [{ propertyName: "options", predicate: ListFocusManagerOptionDirective }], ngImport: i0 });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ListFocusManagerDirective, decorators: [{
95
+ type: Directive,
96
+ args: [{
97
+ selector: '[odxListFocusManager]',
98
+ standalone: true,
99
+ }]
100
+ }], propDecorators: { options: [{
101
+ type: ContentChildren,
102
+ args: [ListFocusManagerOptionDirective]
103
+ }], onKeyDown: [{
104
+ type: HostListener,
105
+ args: ['keydown', ['$event']]
106
+ }] } });
107
+
108
+ const modules = [ListFocusManagerDirective, ListFocusManagerOptionDirective, InteractiveDirective];
109
+ class A11yModule {
110
+ }
111
+ A11yModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: A11yModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
112
+ A11yModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: A11yModule, imports: [A11yModule$1, ListFocusManagerDirective, ListFocusManagerOptionDirective, InteractiveDirective], exports: [CoreModule, A11yModule$1, ListFocusManagerDirective, ListFocusManagerOptionDirective, InteractiveDirective] });
113
+ A11yModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: A11yModule, imports: [A11yModule$1, CoreModule, A11yModule$1] });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: A11yModule, decorators: [{
115
+ type: NgModule,
116
+ args: [{
117
+ imports: [A11yModule$1, ...modules],
118
+ exports: [CoreModule, A11yModule$1, ...modules],
119
+ }]
120
+ }] });
121
+
122
+ /**
123
+ * Generated bundle index. Do not edit.
124
+ */
125
+
126
+ export { A11yModule, InteractiveDirective, ListFocusManagerDirective, ListFocusManagerOptionDirective };
127
+ //# sourceMappingURL=odx-angular-cdk-a11y.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"odx-angular-cdk-a11y.mjs","sources":["../../../../libs/angular/cdk/a11y/src/lib/directives/interactive.directive.ts","../../../../libs/angular/cdk/a11y/src/lib/directives/list-focus-manager-option.directive.ts","../../../../libs/angular/cdk/a11y/src/lib/directives/list-focus-manager.directive.ts","../../../../libs/angular/cdk/a11y/src/lib/a11y.module.ts","../../../../libs/angular/cdk/a11y/src/odx-angular-cdk-a11y.ts"],"sourcesContent":["import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\nimport { DisabledController, WithDisabledState, WithTabIndex } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n@CSSComponent('cdk-interactive')\n@Directive({\n selector: '[odxCdkInteractive]',\n standalone: true,\n hostDirectives: [WithDisabledState, WithTabIndex],\n host: {\n role: 'button',\n },\n})\nexport class InteractiveDirective {\n private readonly disabledController = DisabledController.inject();\n\n public readonly element = injectElement();\n\n @Output('odxCdkInteractive')\n public interact = new EventEmitter<MouseEvent | KeyboardEvent>();\n\n @HostListener('click', ['$event'])\n @HostListener('keyup.enter', ['$event'])\n @HostListener('keyup.space', ['$event'])\n protected handleEvents(event: MouseEvent | KeyboardEvent) {\n if (!this.disabledController?.disabled) {\n this.interact.next(event);\n }\n }\n}\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport { Directive } from '@angular/core';\nimport { DisabledController } from '@odx/angular';\nimport { injectElement } from '@odx/angular/utils';\n\n@Directive({\n selector: '[odxListFocusManager]',\n standalone: true,\n})\nexport class ListFocusManagerOptionDirective implements FocusableOption {\n private readonly disabledController = DisabledController.inject();\n private readonly element = injectElement();\n\n public get disabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n public focus(): void {\n this.element.nativeElement.focus();\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { AfterContentInit, ContentChildren, Directive, HostListener, OnDestroy, QueryList } from '@angular/core';\nimport { deferFn } from '@odx/angular/utils';\nimport { ListFocusManagerOptionDirective } from './list-focus-manager-option.directive';\n\n@Directive({\n selector: '[odxListFocusManager]',\n standalone: true,\n})\nexport class ListFocusManagerDirective implements AfterContentInit, OnDestroy {\n private keyManager: FocusKeyManager<ListFocusManagerOptionDirective> | null = null;\n\n @ContentChildren(ListFocusManagerOptionDirective)\n protected options!: QueryList<ListFocusManagerOptionDirective>;\n\n public ngAfterContentInit(): void {\n this.keyManager = new FocusKeyManager(this.options)\n .withHomeAndEnd()\n .withWrap()\n .skipPredicate((item) => item.disabled);\n deferFn(() => this.keyManager?.setFirstItemActive());\n }\n\n public ngOnDestroy(): void {\n this.keyManager?.destroy();\n this.keyManager = null;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeyDown(event: KeyboardEvent): void {\n this.keyManager?.onKeydown(event);\n }\n}\n","import { A11yModule as NgCdkA11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { InteractiveDirective, ListFocusManagerDirective, ListFocusManagerOptionDirective } from './directives';\n\nconst modules = [ListFocusManagerDirective, ListFocusManagerOptionDirective, InteractiveDirective];\n\n@NgModule({\n imports: [NgCdkA11yModule, ...modules],\n exports: [CoreModule, NgCdkA11yModule, ...modules],\n})\nexport class A11yModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NgCdkA11yModule"],"mappings":"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"}
@@ -102,8 +102,8 @@ let ActiveIndicatorDirective = class ActiveIndicatorDirective {
102
102
  }
103
103
  }
104
104
  };
105
- ActiveIndicatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ActiveIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
106
- ActiveIndicatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ActiveIndicatorDirective, isStandalone: true, selector: "[odxActiveIndicator]", inputs: { activeElement: ["odxActiveIndicator", "activeElement"], parent: ["odxActiveIndicatorParent", "parent"], direction: ["odxActiveIndicatorDirection", "direction"], position: ["odxActiveIndicatorPosition", "position"] }, usesOnChanges: true, ngImport: i0 });
105
+ ActiveIndicatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ActiveIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
106
+ ActiveIndicatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: ActiveIndicatorDirective, isStandalone: true, selector: "[odxActiveIndicator]", inputs: { activeElement: ["odxActiveIndicator", "activeElement"], parent: ["odxActiveIndicatorParent", "parent"], direction: ["odxActiveIndicatorDirection", "direction"], position: ["odxActiveIndicatorPosition", "position"] }, usesOnChanges: true, ngImport: i0 });
107
107
  __decorate([
108
108
  CSSModifier(),
109
109
  __metadata("design:type", Object)
@@ -115,7 +115,7 @@ __decorate([
115
115
  ActiveIndicatorDirective = __decorate([
116
116
  CSSComponent('cdk-active-indicator')
117
117
  ], ActiveIndicatorDirective);
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ActiveIndicatorDirective, decorators: [{
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ActiveIndicatorDirective, decorators: [{
119
119
  type: Directive,
120
120
  args: [{
121
121
  standalone: true,
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-cdk-active-indicator.mjs","sources":["../../../../libs/angular/cdk/active-indicator/src/lib/models/active-indicator-direction.ts","../../../../libs/angular/cdk/active-indicator/src/lib/models/active-indicator-position.ts","../../../../libs/angular/cdk/active-indicator/src/lib/active-indicator.directive.ts","../../../../libs/angular/cdk/active-indicator/src/odx-angular-cdk-active-indicator.ts"],"sourcesContent":["export type ActiveIndicatorDirection = typeof ActiveIndicatorDirection[keyof typeof ActiveIndicatorDirection];\n\nexport const ActiveIndicatorDirection = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n} as const;\n","export type ActiveIndicatorPosition = typeof ActiveIndicatorPosition[keyof typeof ActiveIndicatorPosition];\n\nexport const ActiveIndicatorPosition = {\n START: 'start',\n CENTER: 'center',\n END: 'end',\n} as const;\n","import { AfterViewInit, Directive, Input, OnChanges } from '@angular/core';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { fromElementResize$ } from '@odx/angular/rxjs';\nimport { applyStyles, disableCSSTransitions, hasChanged, injectElement, isPresent, NgChanges, px, untilDestroyed } from '@odx/angular/utils';\nimport { BehaviorSubject, distinctUntilChanged, EMPTY, switchMap } from 'rxjs';\nimport { ActiveIndicatorPosition } from './models';\nimport { ActiveIndicatorDirection } from './models/active-indicator-direction';\n\n@CSSComponent('cdk-active-indicator')\n@Directive({\n standalone: true,\n selector: '[odxActiveIndicator]',\n})\nexport class ActiveIndicatorDirective implements OnChanges, AfterViewInit {\n private readonly takeUntilDestroyed = untilDestroyed();\n private readonly parentElement$$ = new BehaviorSubject<HTMLElement | null>(null);\n private readonly onResize$ = this.parentElement$$.pipe(\n distinctUntilChanged(),\n switchMap((parentElement) => {\n return parentElement ? fromElementResize$(parentElement) : EMPTY;\n })\n );\n public readonly element = injectElement();\n\n @CSSModifier()\n protected isActive = false;\n\n @Input('odxActiveIndicator')\n public activeElement?: HTMLElement | null = null;\n\n @Input('odxActiveIndicatorParent')\n public set parent(value: HTMLElement | null) {\n this.parentElement$$.next(value);\n }\n public get parent(): HTMLElement | null {\n return this.parentElement$$.getValue();\n }\n\n @CSSModifier()\n @Input('odxActiveIndicatorDirection')\n public direction: ActiveIndicatorDirection = ActiveIndicatorDirection.HORIZONTAL;\n\n @Input('odxActiveIndicatorPosition')\n public position: ActiveIndicatorPosition = ActiveIndicatorPosition.CENTER;\n\n public ngAfterViewInit(): void {\n this.onResize$.pipe(this.takeUntilDestroyed()).subscribe(() => this.updateStyles());\n this.parent ??= this.element.nativeElement.parentElement;\n }\n\n public ngOnChanges(changes: NgChanges<ActiveIndicatorDirective>): void {\n if (hasChanged(changes, 'activeElement', false)) {\n this.isActive = !!this.activeElement;\n }\n if (hasChanged(changes, ['activeElement', 'direction', 'position'])) {\n this.updateStyles(!isPresent(changes.activeElement?.previousValue));\n }\n }\n\n private updateStyles(disableTransition = false): void {\n if (!this.activeElement) return;\n const isHorizontal = this.direction === ActiveIndicatorDirection.HORIZONTAL;\n const isVertical = this.direction === ActiveIndicatorDirection.VERTICAL;\n const relativeOffset = this.getIndicatorRelativeOffset();\n\n let transform = null;\n if (isHorizontal) {\n const positionX = this.getIndicatorPositionX(this.activeElement);\n transform = `translateX(${px(positionX)}) translateX(${relativeOffset}%)`;\n }\n if (isVertical) {\n const positionY = this.getIndicatorPositionY(this.activeElement);\n transform = `translateY(${px(positionY)}) translateY(${relativeOffset}%)`;\n }\n\n disableTransition && disableCSSTransitions(this.element.nativeElement, true);\n applyStyles(this.element.nativeElement, {\n transform,\n width: isHorizontal ? px(this.activeElement.offsetWidth) : null,\n height: isVertical ? px(this.activeElement.offsetHeight) : null,\n });\n disableTransition && disableCSSTransitions(this.element.nativeElement, false);\n }\n\n private getIndicatorPositionX(activeElement: HTMLElement): number {\n switch (this.position) {\n case ActiveIndicatorPosition.START:\n return activeElement.offsetLeft;\n case ActiveIndicatorPosition.CENTER:\n return activeElement.offsetLeft + activeElement.offsetWidth / 2;\n case ActiveIndicatorPosition.END:\n return activeElement.offsetLeft + activeElement.offsetWidth;\n }\n }\n\n private getIndicatorPositionY(activeElement: HTMLElement): number {\n switch (this.position) {\n case ActiveIndicatorPosition.START:\n return activeElement.offsetTop;\n case ActiveIndicatorPosition.CENTER:\n return activeElement.offsetTop + activeElement.offsetHeight / 2;\n case ActiveIndicatorPosition.END:\n return activeElement.offsetTop + activeElement.offsetHeight;\n }\n }\n\n private getIndicatorRelativeOffset(): number {\n switch (this.position) {\n case ActiveIndicatorPosition.START:\n return 0;\n case ActiveIndicatorPosition.CENTER:\n return -50;\n case ActiveIndicatorPosition.END:\n return -100;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-cdk-active-indicator.mjs","sources":["../../../../libs/angular/cdk/active-indicator/src/lib/models/active-indicator-direction.ts","../../../../libs/angular/cdk/active-indicator/src/lib/models/active-indicator-position.ts","../../../../libs/angular/cdk/active-indicator/src/lib/active-indicator.directive.ts","../../../../libs/angular/cdk/active-indicator/src/odx-angular-cdk-active-indicator.ts"],"sourcesContent":["export type ActiveIndicatorDirection = typeof ActiveIndicatorDirection[keyof typeof ActiveIndicatorDirection];\n\nexport const ActiveIndicatorDirection = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n} as const;\n","export type ActiveIndicatorPosition = typeof ActiveIndicatorPosition[keyof typeof ActiveIndicatorPosition];\n\nexport const ActiveIndicatorPosition = {\n START: 'start',\n CENTER: 'center',\n END: 'end',\n} as const;\n","import { AfterViewInit, Directive, Input, OnChanges } from '@angular/core';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { fromElementResize$ } from '@odx/angular/rxjs';\nimport { applyStyles, disableCSSTransitions, hasChanged, injectElement, isPresent, NgChanges, px, untilDestroyed } from '@odx/angular/utils';\nimport { BehaviorSubject, distinctUntilChanged, EMPTY, switchMap } from 'rxjs';\nimport { ActiveIndicatorPosition } from './models';\nimport { ActiveIndicatorDirection } from './models/active-indicator-direction';\n\n@CSSComponent('cdk-active-indicator')\n@Directive({\n standalone: true,\n selector: '[odxActiveIndicator]',\n})\nexport class ActiveIndicatorDirective implements OnChanges, AfterViewInit {\n private readonly takeUntilDestroyed = untilDestroyed();\n private readonly parentElement$$ = new BehaviorSubject<HTMLElement | null>(null);\n private readonly onResize$ = this.parentElement$$.pipe(\n distinctUntilChanged(),\n switchMap((parentElement) => {\n return parentElement ? fromElementResize$(parentElement) : EMPTY;\n })\n );\n\n public readonly element = injectElement();\n\n @CSSModifier()\n public isActive = false;\n\n @Input('odxActiveIndicator')\n public activeElement?: HTMLElement | null = null;\n\n @Input('odxActiveIndicatorParent')\n public set parent(value: HTMLElement | null) {\n this.parentElement$$.next(value);\n }\n public get parent(): HTMLElement | null {\n return this.parentElement$$.getValue();\n }\n\n @CSSModifier()\n @Input('odxActiveIndicatorDirection')\n public direction: ActiveIndicatorDirection = ActiveIndicatorDirection.HORIZONTAL;\n\n @Input('odxActiveIndicatorPosition')\n public position: ActiveIndicatorPosition = ActiveIndicatorPosition.CENTER;\n\n public ngAfterViewInit(): void {\n this.onResize$.pipe(this.takeUntilDestroyed()).subscribe(() => this.updateStyles());\n this.parent ??= this.element.nativeElement.parentElement;\n }\n\n public ngOnChanges(changes: NgChanges<ActiveIndicatorDirective>): void {\n if (hasChanged(changes, 'activeElement', false)) {\n this.isActive = !!this.activeElement;\n }\n if (hasChanged(changes, ['activeElement', 'direction', 'position'])) {\n this.updateStyles(!isPresent(changes.activeElement?.previousValue));\n }\n }\n\n private updateStyles(disableTransition = false): void {\n if (!this.activeElement) return;\n const isHorizontal = this.direction === ActiveIndicatorDirection.HORIZONTAL;\n const isVertical = this.direction === ActiveIndicatorDirection.VERTICAL;\n const relativeOffset = this.getIndicatorRelativeOffset();\n\n let transform = null;\n if (isHorizontal) {\n const positionX = this.getIndicatorPositionX(this.activeElement);\n transform = `translateX(${px(positionX)}) translateX(${relativeOffset}%)`;\n }\n if (isVertical) {\n const positionY = this.getIndicatorPositionY(this.activeElement);\n transform = `translateY(${px(positionY)}) translateY(${relativeOffset}%)`;\n }\n\n disableTransition && disableCSSTransitions(this.element.nativeElement, true);\n applyStyles(this.element.nativeElement, {\n transform,\n width: isHorizontal ? px(this.activeElement.offsetWidth) : null,\n height: isVertical ? px(this.activeElement.offsetHeight) : null,\n });\n disableTransition && disableCSSTransitions(this.element.nativeElement, false);\n }\n\n private getIndicatorPositionX(activeElement: HTMLElement): number {\n switch (this.position) {\n case ActiveIndicatorPosition.START:\n return activeElement.offsetLeft;\n case ActiveIndicatorPosition.CENTER:\n return activeElement.offsetLeft + activeElement.offsetWidth / 2;\n case ActiveIndicatorPosition.END:\n return activeElement.offsetLeft + activeElement.offsetWidth;\n }\n }\n\n private getIndicatorPositionY(activeElement: HTMLElement): number {\n switch (this.position) {\n case ActiveIndicatorPosition.START:\n return activeElement.offsetTop;\n case ActiveIndicatorPosition.CENTER:\n return activeElement.offsetTop + activeElement.offsetHeight / 2;\n case ActiveIndicatorPosition.END:\n return activeElement.offsetTop + activeElement.offsetHeight;\n }\n }\n\n private getIndicatorRelativeOffset(): number {\n switch (this.position) {\n case ActiveIndicatorPosition.START:\n return 0;\n case ActiveIndicatorPosition.CENTER:\n return -50;\n case ActiveIndicatorPosition.END:\n return -100;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,17 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Input } from '@angular/core';
2
+ import { EventEmitter, Directive, Input, Output } from '@angular/core';
3
3
  import { detectControllerChanges } from '@odx/angular';
4
4
  import { CustomFormControl } from '@odx/angular/cdk/custom-form-control';
5
- import { injectElement, booleanToAttributeString } from '@odx/angular/utils';
5
+ import { booleanToAttributeString, injectElement } from '@odx/angular/utils';
6
6
 
7
7
  class CheckBoxControl extends CustomFormControl {
8
- constructor() {
9
- super(false);
10
- this.element = injectElement();
11
- // eslint-disable-next-line @angular-eslint/no-input-rename
12
- this.controlValue = null;
13
- detectControllerChanges(this).subscribe();
14
- }
15
8
  set checked(value) {
16
9
  this.value = value;
17
10
  }
@@ -21,14 +14,23 @@ class CheckBoxControl extends CustomFormControl {
21
14
  get ariaChecked() {
22
15
  return booleanToAttributeString(this.checked);
23
16
  }
17
+ constructor() {
18
+ super(false);
19
+ this.element = injectElement();
20
+ // eslint-disable-next-line @angular-eslint/no-input-rename
21
+ this.controlValue = null;
22
+ this.checkedChange = new EventEmitter();
23
+ detectControllerChanges(this).subscribe();
24
+ }
24
25
  onChanged(event) {
25
26
  event.stopPropagation();
26
27
  super.updateValue(event.target.checked);
28
+ this.checkedChange.next(this.checked);
27
29
  }
28
30
  }
29
- CheckBoxControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CheckBoxControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
30
- CheckBoxControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: CheckBoxControl, selector: "[odxCheckBoxControl]", inputs: { checked: "checked", controlValue: ["value", "controlValue"] }, usesInheritance: true, ngImport: i0 });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CheckBoxControl, decorators: [{
31
+ CheckBoxControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CheckBoxControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
32
+ CheckBoxControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: CheckBoxControl, selector: "[odxCheckBoxControl]", inputs: { checked: "checked", controlValue: ["value", "controlValue"] }, outputs: { checkedChange: "checkedChange" }, usesInheritance: true, ngImport: i0 });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CheckBoxControl, decorators: [{
32
34
  type: Directive,
33
35
  args: [{
34
36
  selector: '[odxCheckBoxControl]',
@@ -38,6 +40,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
38
40
  }], controlValue: [{
39
41
  type: Input,
40
42
  args: ['value']
43
+ }], checkedChange: [{
44
+ type: Output
41
45
  }] } });
42
46
 
43
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-cdk-checkbox-control.mjs","sources":["../../../../libs/angular/cdk/checkbox-control/src/lib/checkbox-control.directive.ts","../../../../libs/angular/cdk/checkbox-control/src/odx-angular-cdk-checkbox-control.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, Input } from '@angular/core';\nimport { detectControllerChanges } from '@odx/angular';\nimport { CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { booleanToAttributeString, injectElement } from '@odx/angular/utils';\n\n@Directive({\n selector: '[odxCheckBoxControl]',\n})\nexport class CheckBoxControl extends CustomFormControl<boolean> {\n public static ngAcceptInputType_checked: BooleanInput;\n\n public readonly element = injectElement();\n\n @Input()\n public set checked(value: boolean) {\n this.value = value;\n }\n public get checked(): boolean {\n return this.value;\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('value')\n public controlValue: string | null = null;\n\n public get ariaChecked(): string {\n return booleanToAttributeString(this.checked);\n }\n\n constructor() {\n super(false);\n detectControllerChanges(this).subscribe();\n }\n\n public onChanged(event: Event): void {\n event.stopPropagation();\n super.updateValue((event.target as HTMLInputElement).checked);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AASM,MAAO,eAAgB,SAAQ,iBAA0B,CAAA;AAqB7D,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;QAnBC,IAAO,CAAA,OAAA,GAAG,aAAa,EAAE,CAAC;;QAYnC,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;AAQxC,QAAA,uBAAuB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;KAC3C;IAnBD,IACW,OAAO,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AACD,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAMD,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/C;AAOM,IAAA,SAAS,CAAC,KAAY,EAAA;QAC3B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,WAAW,CAAE,KAAK,CAAC,MAA2B,CAAC,OAAO,CAAC,CAAC;KAC/D;;6GA7BU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAf,eAAe,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,OAAA,EAAA,cAAA,CAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA,CAAA;0EAOY,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAUC,YAAY,EAAA,CAAA;sBADlB,KAAK;uBAAC,OAAO,CAAA;;;ACvBhB;;AAEG;;;;"}
1
+ {"version":3,"file":"odx-angular-cdk-checkbox-control.mjs","sources":["../../../../libs/angular/cdk/checkbox-control/src/lib/checkbox-control.directive.ts","../../../../libs/angular/cdk/checkbox-control/src/odx-angular-cdk-checkbox-control.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { detectControllerChanges } from '@odx/angular';\nimport { CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { booleanToAttributeString, injectElement } from '@odx/angular/utils';\n\n@Directive({\n selector: '[odxCheckBoxControl]',\n})\nexport class CheckBoxControl extends CustomFormControl<boolean> {\n public static ngAcceptInputType_checked: BooleanInput;\n\n public readonly element = injectElement();\n\n @Input()\n public set checked(value: boolean) {\n this.value = value;\n }\n public get checked(): boolean {\n return this.value;\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('value')\n public controlValue: string | null = null;\n\n @Output()\n public checkedChange = new EventEmitter<boolean>();\n\n public get ariaChecked(): string {\n return booleanToAttributeString(this.checked);\n }\n\n constructor() {\n super(false);\n detectControllerChanges(this).subscribe();\n }\n\n public onChanged(event: Event): void {\n event.stopPropagation();\n super.updateValue((event.target as HTMLInputElement).checked);\n this.checkedChange.next(this.checked);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AASM,MAAO,eAAgB,SAAQ,iBAA0B,CAAA;IAK7D,IACW,OAAO,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AACD,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AASD,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/C;AAED,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;QAtBC,IAAO,CAAA,OAAA,GAAG,aAAa,EAAE,CAAC;;QAYnC,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;AAGnC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW,CAAC;AAQjD,QAAA,uBAAuB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;KAC3C;AAEM,IAAA,SAAS,CAAC,KAAY,EAAA;QAC3B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,WAAW,CAAE,KAAK,CAAC,MAA2B,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;;4GAjCU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,OAAA,EAAA,cAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA,CAAA;0EAOY,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAUC,YAAY,EAAA,CAAA;sBADlB,KAAK;uBAAC,OAAO,CAAA;gBAIP,aAAa,EAAA,CAAA;sBADnB,MAAM;;;AC1BT;;AAEG;;;;"}
@@ -6,33 +6,15 @@ import { arrow, flip, computePosition, offset, shift, size, hide, autoUpdate } f
6
6
  import { CoreModule } from '@odx/angular';
7
7
  import { waitForChildAnimations, slideInUp, fadeIn, slideOutUp, fadeOut, slideInLeft, slideOutRight, slideOutDown, slideInRight, slideOutLeft } from '@odx/angular/animations';
8
8
  import { DynamicViewDirective, DynamicViewService } from '@odx/angular/cdk/dynamic-view';
9
- import { CSSComponent } from '@odx/angular/internal';
10
- import { applyStyles, px, cssTranslate, getInjector, injectElement, hasChanged } from '@odx/angular/utils';
9
+ import { CSSComponent, deepmerge } from '@odx/angular/internal';
10
+ import { applyStyles, px, cssTranslate, getSide, getOppositeSide, Position, getInjector, injectElement, hasChanged } from '@odx/angular/utils';
11
11
  import { EMPTY, Subject } from 'rxjs';
12
- import { deepmerge } from 'deepmerge-ts';
13
-
14
- function getOppositeOverlaySide(overlaySide) {
15
- switch (overlaySide) {
16
- case 'top':
17
- return 'bottom';
18
- case 'right':
19
- return 'left';
20
- case 'bottom':
21
- return 'top';
22
- case 'left':
23
- return 'right';
24
- }
25
- }
26
-
27
- function getOverlaySide(position) {
28
- return position.split('-')[0];
29
- }
30
12
 
31
13
  async function computeOverlayPosition(referenceElement, overlayElement, contentElement, arrowElement, options) {
32
- const { position, offset: offset$1, outerPadding, matchReferenceWidth, enableFallback, strategy, minHeight } = options;
14
+ const { position, offset: offset$1, outerPadding, matchReferenceWidth, enableFallback, fallbackAxisSideDirection, strategy, minHeight } = options;
33
15
  const arrowSize = options.showArrow ? arrowElement.offsetWidth : 0;
34
16
  const arrowMiddleware = options.showArrow ? [arrow({ element: arrowElement, padding: 8 })] : [];
35
- const flipMiddleWare = enableFallback ? [flip()] : [];
17
+ const flipMiddleWare = enableFallback ? [flip({ fallbackAxisSideDirection })] : [];
36
18
  return computePosition(referenceElement, overlayElement, {
37
19
  strategy,
38
20
  placement: position,
@@ -64,8 +46,8 @@ async function computeOverlayPosition(referenceElement, overlayElement, contentE
64
46
  overlayElement.classList.toggle(options.hiddenClass, !!result.middlewareData.hide?.referenceHidden);
65
47
  }
66
48
  if (options.showArrow) {
67
- const overlaySide = getOverlaySide(result.placement);
68
- const arrowSide = getOppositeOverlaySide(overlaySide);
49
+ const overlaySide = getSide(result.placement);
50
+ const arrowSide = getOppositeSide(result.placement);
69
51
  applyStyles(arrowElement, {
70
52
  display: null,
71
53
  top: px(result.middlewareData.arrow?.y),
@@ -84,10 +66,11 @@ async function computeOverlayPosition(referenceElement, overlayElement, contentE
84
66
  const DefaultConnectedOverlayOptions = {
85
67
  hiddenClass: 'is-hidden',
86
68
  enableFallback: false,
69
+ fallbackAxisSideDirection: 'start',
87
70
  matchReferenceWidth: false,
88
71
  offset: 8,
89
72
  outerPadding: 12,
90
- position: 'bottom',
73
+ position: Position.BOTTOM,
91
74
  strategy: 'fixed',
92
75
  };
93
76
 
@@ -117,7 +100,7 @@ let ConnectedOverlayComponent = class ConnectedOverlayComponent {
117
100
  }
118
101
  ngOnChanges(changes) {
119
102
  if (hasChanged(changes, ['options'], false)) {
120
- this.overlaySide = getOverlaySide(this.options.position);
103
+ this.overlaySide = getSide(this.options.position);
121
104
  }
122
105
  if (hasChanged(changes, ['referenceElement', 'options'], false)) {
123
106
  this.stopPositionUpdater();
@@ -128,6 +111,8 @@ let ConnectedOverlayComponent = class ConnectedOverlayComponent {
128
111
  this.stopPositionUpdater();
129
112
  }
130
113
  onAnimationStart({ fromState }) {
114
+ if (!fromState)
115
+ return;
131
116
  if (fromState === 'void') {
132
117
  this.renderer.setStyle(this.element.nativeElement, 'pointer-events', 'none', RendererStyleFlags2.Important);
133
118
  this.options.hooks?.beforeOpen?.();
@@ -137,6 +122,8 @@ let ConnectedOverlayComponent = class ConnectedOverlayComponent {
137
122
  }
138
123
  }
139
124
  onAnimationDone({ fromState }) {
125
+ if (!fromState)
126
+ return;
140
127
  if (fromState === 'void') {
141
128
  this.options.hooks?.afterOpen?.();
142
129
  this.renderer.removeStyle(this.element.nativeElement, 'pointer-events');
@@ -147,7 +134,7 @@ let ConnectedOverlayComponent = class ConnectedOverlayComponent {
147
134
  }
148
135
  startPositionUpdater() {
149
136
  this.positionUpdater = this.zone.runOutsideAngular(() => autoUpdate(this.referenceElement, this.element.nativeElement, () => computeOverlayPosition(this.referenceElement, this.element.nativeElement, this.contentElement.nativeElement, this.arrowElement.nativeElement, this.options).then(({ placement }) => {
150
- this.overlaySide = getOverlaySide(placement);
137
+ this.overlaySide = getSide(placement);
151
138
  })));
152
139
  }
153
140
  stopPositionUpdater() {
@@ -155,8 +142,8 @@ let ConnectedOverlayComponent = class ConnectedOverlayComponent {
155
142
  this.positionUpdater = null;
156
143
  }
157
144
  };
158
- ConnectedOverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ConnectedOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
159
- ConnectedOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ConnectedOverlayComponent, isStandalone: true, selector: "odx-connected-overlay", inputs: { referenceElement: "referenceElement", options: "options" }, outputs: { closed: "closed" }, host: { properties: { "@hostAnimation": "true" } }, viewQueries: [{ propertyName: "contentElement", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "arrowElement", first: true, predicate: ["arrow"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [@contentAnimation]=\"overlaySide\"\n (@contentAnimation.start)=\"onAnimationStart($event)\"\n (@contentAnimation.done)=\"onAnimationDone($event)\"\n class=\"odx-cdk-connected-overlay__content {{ options.containerClass }}\"\n #content\n>\n <ng-template [odxDynamicView]=\"options.content\" [odxDynamicViewContext]=\"options.context\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n <div class=\"odx-cdk-connected-overlay-arrow\" #arrow></div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], animations: [
145
+ ConnectedOverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConnectedOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
146
+ ConnectedOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: ConnectedOverlayComponent, isStandalone: true, selector: "odx-connected-overlay", inputs: { referenceElement: "referenceElement", options: "options" }, outputs: { closed: "closed" }, host: { properties: { "@hostAnimation": "true" } }, viewQueries: [{ propertyName: "contentElement", first: true, predicate: ["content"], descendants: true, static: true }, { propertyName: "arrowElement", first: true, predicate: ["arrow"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [@contentAnimation]=\"overlaySide\"\n (@contentAnimation.start)=\"onAnimationStart($event)\"\n (@contentAnimation.done)=\"onAnimationDone($event)\"\n class=\"odx-cdk-connected-overlay__content {{ options.containerClass }}\"\n #content\n>\n <ng-template [odxDynamicView]=\"options.content\" [odxDynamicViewContext]=\"options.context\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n <div class=\"odx-cdk-connected-overlay-arrow\" #arrow></div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], animations: [
160
147
  trigger('hostAnimation', [waitForChildAnimations]),
161
148
  trigger('contentAnimation', [
162
149
  transition('void => top', group([useAnimation(slideInUp, { params: { from: '-8px' } }), useAnimation(fadeIn())])),
@@ -172,7 +159,7 @@ ConnectedOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
172
159
  ConnectedOverlayComponent = __decorate([
173
160
  CSSComponent('cdk-connected-overlay')
174
161
  ], ConnectedOverlayComponent);
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ConnectedOverlayComponent, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConnectedOverlayComponent, decorators: [{
176
163
  type: Component,
177
164
  args: [{ standalone: true, selector: 'odx-connected-overlay', imports: [CoreModule, DynamicViewDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
178
165
  '[@hostAnimation]': 'true',
@@ -215,9 +202,9 @@ class ConnectedOverlayService {
215
202
  return new ConnectedOverlayRef(dynamicViewRef);
216
203
  }
217
204
  }
218
- ConnectedOverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ConnectedOverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
219
- ConnectedOverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ConnectedOverlayService, providedIn: 'root' });
220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ConnectedOverlayService, decorators: [{
205
+ ConnectedOverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConnectedOverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
206
+ ConnectedOverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConnectedOverlayService, providedIn: 'root' });
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConnectedOverlayService, decorators: [{
221
208
  type: Injectable,
222
209
  args: [{ providedIn: 'root' }]
223
210
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-cdk-connected-overlay.mjs","sources":["../../../../libs/angular/cdk/connected-overlay/src/lib/helpers/get-opposite-overlay-side.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/helpers/get-overlay-side.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/helpers/compute-overlay-position.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/models/connected-overlay-options.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/models/connected-overlay-ref.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.component.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.component.html","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.service.ts","../../../../libs/angular/cdk/connected-overlay/src/odx-angular-cdk-connected-overlay.ts"],"sourcesContent":["import { Side } from '@floating-ui/dom';\n\nexport function getOppositeOverlaySide(overlaySide: Side): Side {\n switch (overlaySide) {\n case 'top':\n return 'bottom';\n case 'right':\n return 'left';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n }\n}\n","import { Placement, Side } from '@floating-ui/dom';\n\nexport function getOverlaySide(position: Placement): Side {\n return position.split('-')[0] as Side;\n}\n","import { arrow, computePosition, ComputePositionReturn, flip, hide, offset as withOffset, shift, size, VirtualElement } from '@floating-ui/dom';\nimport { applyStyles, cssTranslate, px } from '@odx/angular/utils';\nimport { ConnectedOverlayOptions } from '../models';\nimport { getOppositeOverlaySide } from './get-opposite-overlay-side';\nimport { getOverlaySide } from './get-overlay-side';\n\nexport async function computeOverlayPosition(\n referenceElement: VirtualElement,\n overlayElement: HTMLElement,\n contentElement: HTMLElement,\n arrowElement: HTMLElement,\n options: ConnectedOverlayOptions\n): Promise<ComputePositionReturn> {\n const { position, offset, outerPadding, matchReferenceWidth, enableFallback, strategy, minHeight } = options;\n const arrowSize = options.showArrow ? arrowElement.offsetWidth : 0;\n const arrowMiddleware = options.showArrow ? [arrow({ element: arrowElement, padding: 8 })] : [];\n const flipMiddleWare = enableFallback ? [flip()] : [];\n\n return computePosition(referenceElement, overlayElement, {\n strategy,\n placement: position,\n middleware: [\n withOffset(Math.max(offset, arrowSize + offset)),\n shift({ padding: outerPadding }),\n ...flipMiddleWare,\n size({\n padding: outerPadding,\n apply: ({ availableHeight, availableWidth, rects }) => {\n applyStyles(contentElement, {\n maxHeight: px(availableHeight),\n maxWidth: px(availableWidth),\n minHeight: minHeight ? px(Math.min(availableHeight, minHeight)) : null,\n minWidth: matchReferenceWidth ? px(rects.reference.width) : null,\n });\n },\n }),\n ...arrowMiddleware,\n hide(),\n ],\n }).then((result) => {\n applyStyles(overlayElement, {\n top: '0',\n left: '0',\n transform: cssTranslate(px(result.x), px(result.y)),\n });\n if (options.hiddenClass) {\n overlayElement.classList.toggle(options.hiddenClass, !!result.middlewareData.hide?.referenceHidden);\n }\n if (options.showArrow) {\n const overlaySide = getOverlaySide(result.placement);\n const arrowSide = getOppositeOverlaySide(overlaySide);\n applyStyles(arrowElement, {\n display: null,\n top: px(result.middlewareData.arrow?.y),\n left: px(result.middlewareData.arrow?.x),\n [arrowSide]: px(-arrowSize / 2),\n [overlaySide]: null,\n });\n } else {\n applyStyles(arrowElement, { display: 'none' });\n }\n\n return result;\n });\n}\n","import { Placement, Strategy } from '@floating-ui/dom';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\n\nexport interface ConnectedOverlayOptions {\n content?: DynamicContent | null;\n context?: Record<string, unknown>;\n containerClass?: string | null;\n hiddenClass: string | null;\n enableFallback: boolean;\n matchReferenceWidth: boolean;\n minHeight?: number | null;\n offset: number;\n outerPadding: number;\n position: Placement;\n strategy: Strategy;\n showArrow?: boolean;\n hooks?: {\n beforeOpen?: () => void;\n afterOpen?: () => void;\n beforeClose?: () => void;\n afterClose?: () => void;\n };\n}\n\nexport const DefaultConnectedOverlayOptions: ConnectedOverlayOptions = {\n hiddenClass: 'is-hidden',\n enableFallback: false,\n matchReferenceWidth: false,\n offset: 8,\n outerPadding: 12,\n position: 'bottom',\n strategy: 'fixed',\n};\n","import { DynamicViewRef } from '@odx/angular/cdk/dynamic-view';\nimport { EMPTY, Observable } from 'rxjs';\nimport { ConnectedOverlayComponent } from '../connected-overlay.component';\nimport { ConnectedOverlayOptions } from './connected-overlay-options';\n\nexport class ConnectedOverlayRef {\n public readonly element = this.dynamicViewRef.getElement();\n public readonly onClose$: Observable<void> = this.dynamicViewRef.getContext().closed ?? EMPTY;\n\n constructor(private readonly dynamicViewRef: DynamicViewRef<typeof ConnectedOverlayComponent>) {}\n\n public update(options: Partial<ConnectedOverlayOptions>) {\n this.dynamicViewRef.update({ options: options as ConnectedOverlayOptions });\n }\n\n public close(): void {\n this.dynamicViewRef.destroy();\n }\n}\n","import { AnimationEvent, group, transition, trigger, useAnimation } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n RendererStyleFlags2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { autoUpdate, Side, VirtualElement } from '@floating-ui/dom';\nimport { CoreModule } from '@odx/angular';\nimport {\n fadeIn,\n fadeOut,\n slideInLeft,\n slideInRight,\n slideInUp,\n slideOutDown,\n slideOutLeft,\n slideOutRight,\n slideOutUp,\n waitForChildAnimations,\n} from '@odx/angular/animations';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { getInjector, hasChanged, injectElement, NgChanges } from '@odx/angular/utils';\nimport { Subject } from 'rxjs';\nimport { computeOverlayPosition, getOverlaySide } from './helpers';\nimport { ConnectedOverlayOptions, DefaultConnectedOverlayOptions } from './models';\n\n@CSSComponent('cdk-connected-overlay')\n@Component({\n standalone: true,\n selector: 'odx-connected-overlay',\n imports: [CoreModule, DynamicViewDirective],\n templateUrl: 'connected-overlay.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[@hostAnimation]': 'true',\n },\n animations: [\n trigger('hostAnimation', [waitForChildAnimations]),\n trigger('contentAnimation', [\n transition('void => top', group([useAnimation(slideInUp, { params: { from: '-8px' } }), useAnimation(fadeIn())])),\n transition('top => void', group([useAnimation(slideOutUp, { params: { to: '-8px' } }), useAnimation(fadeOut())])),\n transition('void => right', group([useAnimation(slideInLeft, { params: { from: '8px' } }), useAnimation(fadeIn())])),\n transition('right => void', group([useAnimation(slideOutRight, { params: { to: '8px' } }), useAnimation(fadeOut())])),\n transition('void => bottom', group([useAnimation(slideInUp, { params: { from: '8px' } }), useAnimation(fadeIn())])),\n transition('bottom => void', group([useAnimation(slideOutDown, { params: { to: '8px' } }), useAnimation(fadeOut())])),\n transition('void => left', group([useAnimation(slideInRight, { params: { from: '-8px' } }), useAnimation(fadeIn())])),\n transition('left => void', group([useAnimation(slideOutLeft, { params: { to: '-8px' } }), useAnimation(fadeOut())])),\n ]),\n ],\n})\nexport class ConnectedOverlayComponent implements OnChanges, OnDestroy {\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private positionUpdater: (() => void) | null = null;\n\n protected readonly injector = getInjector();\n protected overlaySide?: Side;\n\n @ViewChild('content', { static: true })\n protected contentElement!: ElementRef<HTMLElement>;\n\n @ViewChild('arrow', { static: true })\n protected arrowElement!: ElementRef<HTMLElement>;\n\n public readonly element = injectElement();\n\n @Input()\n public referenceElement!: VirtualElement;\n\n @Input()\n public options: ConnectedOverlayOptions = DefaultConnectedOverlayOptions;\n\n @Output()\n public closed = new Subject<void>();\n\n public ngOnChanges(changes: NgChanges<ConnectedOverlayComponent>): void {\n if (hasChanged(changes, ['options'], false)) {\n this.overlaySide = getOverlaySide(this.options.position);\n }\n if (hasChanged(changes, ['referenceElement', 'options'], false)) {\n this.stopPositionUpdater();\n this.startPositionUpdater();\n }\n }\n\n public ngOnDestroy(): void {\n this.stopPositionUpdater();\n }\n\n protected onAnimationStart({ fromState }: AnimationEvent): void {\n if (fromState === 'void') {\n this.renderer.setStyle(this.element.nativeElement, 'pointer-events', 'none', RendererStyleFlags2.Important);\n this.options.hooks?.beforeOpen?.();\n } else {\n this.options.hooks?.beforeClose?.();\n }\n }\n\n protected onAnimationDone({ fromState }: AnimationEvent): void {\n if (fromState === 'void') {\n this.options.hooks?.afterOpen?.();\n this.renderer.removeStyle(this.element.nativeElement, 'pointer-events');\n } else {\n this.options.hooks?.afterClose?.();\n }\n }\n\n private startPositionUpdater(): void {\n this.positionUpdater = this.zone.runOutsideAngular(() =>\n autoUpdate(this.referenceElement, this.element.nativeElement, () =>\n computeOverlayPosition(\n this.referenceElement,\n this.element.nativeElement,\n this.contentElement.nativeElement,\n this.arrowElement.nativeElement,\n this.options\n ).then(({ placement }) => {\n this.overlaySide = getOverlaySide(placement);\n })\n )\n );\n }\n\n private stopPositionUpdater(): void {\n this.positionUpdater?.();\n this.positionUpdater = null;\n }\n}\n","<div\n [@contentAnimation]=\"overlaySide\"\n (@contentAnimation.start)=\"onAnimationStart($event)\"\n (@contentAnimation.done)=\"onAnimationDone($event)\"\n class=\"odx-cdk-connected-overlay__content {{ options.containerClass }}\"\n #content\n>\n <ng-template [odxDynamicView]=\"options.content\" [odxDynamicViewContext]=\"options.context\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n <div class=\"odx-cdk-connected-overlay-arrow\" #arrow></div>\n</div>\n","import { inject, Injectable } from '@angular/core';\nimport { VirtualElement } from '@floating-ui/dom';\nimport { DynamicViewRenderingOptions, DynamicViewService } from '@odx/angular/cdk/dynamic-view';\nimport { deepmerge } from 'deepmerge-ts';\nimport { ConnectedOverlayComponent } from './connected-overlay.component';\nimport { ConnectedOverlayOptions, ConnectedOverlayRef, DefaultConnectedOverlayOptions } from './models';\n\n@Injectable({ providedIn: 'root' })\nexport class ConnectedOverlayService {\n private readonly dynamicViewService = inject(DynamicViewService);\n\n public createOverlay(\n referenceElement: VirtualElement,\n options?: Partial<ConnectedOverlayOptions>,\n renderingOptions?: Partial<DynamicViewRenderingOptions>\n ): ConnectedOverlayRef {\n const dynamicViewRef = this.dynamicViewService.createView(ConnectedOverlayComponent, {\n ...renderingOptions,\n context: { options: deepmerge(DefaultConnectedOverlayOptions, options) as ConnectedOverlayOptions, referenceElement },\n });\n\n return new ConnectedOverlayRef(dynamicViewRef);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["offset","withOffset"],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-cdk-connected-overlay.mjs","sources":["../../../../libs/angular/cdk/connected-overlay/src/lib/helpers/compute-overlay-position.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/models/connected-overlay-options.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/models/connected-overlay-ref.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.component.ts","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.component.html","../../../../libs/angular/cdk/connected-overlay/src/lib/connected-overlay.service.ts","../../../../libs/angular/cdk/connected-overlay/src/odx-angular-cdk-connected-overlay.ts"],"sourcesContent":["import { arrow, computePosition, ComputePositionReturn, flip, hide, offset as withOffset, shift, size, VirtualElement } from '@floating-ui/dom';\nimport { applyStyles, cssTranslate, getOppositeSide, getSide, px } from '@odx/angular/utils';\nimport { ConnectedOverlayOptions } from '../models';\n\nexport async function computeOverlayPosition(\n referenceElement: VirtualElement,\n overlayElement: HTMLElement,\n contentElement: HTMLElement,\n arrowElement: HTMLElement,\n options: ConnectedOverlayOptions\n): Promise<ComputePositionReturn> {\n const { position, offset, outerPadding, matchReferenceWidth, enableFallback, fallbackAxisSideDirection, strategy, minHeight } = options;\n const arrowSize = options.showArrow ? arrowElement.offsetWidth : 0;\n const arrowMiddleware = options.showArrow ? [arrow({ element: arrowElement, padding: 8 })] : [];\n const flipMiddleWare = enableFallback ? [flip({ fallbackAxisSideDirection })] : [];\n\n return computePosition(referenceElement, overlayElement, {\n strategy,\n placement: position,\n middleware: [\n withOffset(Math.max(offset, arrowSize + offset)),\n shift({ padding: outerPadding }),\n ...flipMiddleWare,\n size({\n padding: outerPadding,\n apply: ({ availableHeight, availableWidth, rects }) => {\n applyStyles(contentElement, {\n maxHeight: px(availableHeight),\n maxWidth: px(availableWidth),\n minHeight: minHeight ? px(Math.min(availableHeight, minHeight)) : null,\n minWidth: matchReferenceWidth ? px(rects.reference.width) : null,\n });\n },\n }),\n ...arrowMiddleware,\n hide(),\n ],\n }).then((result) => {\n applyStyles(overlayElement, {\n top: '0',\n left: '0',\n transform: cssTranslate(px(result.x), px(result.y)),\n });\n if (options.hiddenClass) {\n overlayElement.classList.toggle(options.hiddenClass, !!result.middlewareData.hide?.referenceHidden);\n }\n if (options.showArrow) {\n const overlaySide = getSide(result.placement);\n const arrowSide = getOppositeSide(result.placement);\n applyStyles(arrowElement, {\n display: null,\n top: px(result.middlewareData.arrow?.y),\n left: px(result.middlewareData.arrow?.x),\n [arrowSide]: px(-arrowSize / 2),\n [overlaySide]: null,\n });\n } else {\n applyStyles(arrowElement, { display: 'none' });\n }\n\n return result;\n });\n}\n","import { Strategy } from '@floating-ui/dom';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { Position } from '@odx/angular/utils';\n\nexport interface ConnectedOverlayOptions {\n content?: DynamicContent | null;\n context?: Record<string, unknown>;\n containerClass?: string | null;\n hiddenClass: string | null;\n enableFallback: boolean;\n fallbackAxisSideDirection: 'start' | 'end';\n matchReferenceWidth: boolean;\n minHeight?: number | null;\n offset: number;\n outerPadding: number;\n position: Position;\n strategy: Strategy;\n showArrow?: boolean;\n hooks?: {\n beforeOpen?: () => void;\n afterOpen?: () => void;\n beforeClose?: () => void;\n afterClose?: () => void;\n };\n}\n\nexport const DefaultConnectedOverlayOptions: ConnectedOverlayOptions = {\n hiddenClass: 'is-hidden',\n enableFallback: false,\n fallbackAxisSideDirection: 'start',\n matchReferenceWidth: false,\n offset: 8,\n outerPadding: 12,\n position: Position.BOTTOM,\n strategy: 'fixed',\n};\n","import { DynamicViewRef } from '@odx/angular/cdk/dynamic-view';\nimport { EMPTY, Observable } from 'rxjs';\nimport { ConnectedOverlayComponent } from '../connected-overlay.component';\nimport { ConnectedOverlayOptions } from './connected-overlay-options';\n\nexport class ConnectedOverlayRef {\n public readonly element = this.dynamicViewRef.getElement();\n public readonly onClose$: Observable<void> = this.dynamicViewRef.getContext().closed ?? EMPTY;\n\n constructor(private readonly dynamicViewRef: DynamicViewRef<typeof ConnectedOverlayComponent>) {}\n\n public update(options: Partial<ConnectedOverlayOptions>) {\n this.dynamicViewRef.update({ options: options as ConnectedOverlayOptions });\n }\n\n public close(): void {\n this.dynamicViewRef.destroy();\n }\n}\n","import { AnimationEvent, group, transition, trigger, useAnimation } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n RendererStyleFlags2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { autoUpdate, VirtualElement } from '@floating-ui/dom';\nimport { CoreModule } from '@odx/angular';\nimport {\n fadeIn,\n fadeOut,\n slideInLeft,\n slideInRight,\n slideInUp,\n slideOutDown,\n slideOutLeft,\n slideOutRight,\n slideOutUp,\n waitForChildAnimations,\n} from '@odx/angular/animations';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { getInjector, getSide, hasChanged, injectElement, NgChanges, Side } from '@odx/angular/utils';\nimport { Subject } from 'rxjs';\nimport { computeOverlayPosition } from './helpers';\nimport { ConnectedOverlayOptions, DefaultConnectedOverlayOptions } from './models';\n\n@CSSComponent('cdk-connected-overlay')\n@Component({\n standalone: true,\n selector: 'odx-connected-overlay',\n imports: [CoreModule, DynamicViewDirective],\n templateUrl: 'connected-overlay.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[@hostAnimation]': 'true',\n },\n animations: [\n trigger('hostAnimation', [waitForChildAnimations]),\n trigger('contentAnimation', [\n transition('void => top', group([useAnimation(slideInUp, { params: { from: '-8px' } }), useAnimation(fadeIn())])),\n transition('top => void', group([useAnimation(slideOutUp, { params: { to: '-8px' } }), useAnimation(fadeOut())])),\n transition('void => right', group([useAnimation(slideInLeft, { params: { from: '8px' } }), useAnimation(fadeIn())])),\n transition('right => void', group([useAnimation(slideOutRight, { params: { to: '8px' } }), useAnimation(fadeOut())])),\n transition('void => bottom', group([useAnimation(slideInUp, { params: { from: '8px' } }), useAnimation(fadeIn())])),\n transition('bottom => void', group([useAnimation(slideOutDown, { params: { to: '8px' } }), useAnimation(fadeOut())])),\n transition('void => left', group([useAnimation(slideInRight, { params: { from: '-8px' } }), useAnimation(fadeIn())])),\n transition('left => void', group([useAnimation(slideOutLeft, { params: { to: '-8px' } }), useAnimation(fadeOut())])),\n ]),\n ],\n})\nexport class ConnectedOverlayComponent implements OnChanges, OnDestroy {\n private readonly renderer = inject(Renderer2);\n private readonly zone = inject(NgZone);\n private positionUpdater: (() => void) | null = null;\n\n protected readonly injector = getInjector();\n protected overlaySide?: Side;\n\n @ViewChild('content', { static: true })\n protected contentElement!: ElementRef<HTMLElement>;\n\n @ViewChild('arrow', { static: true })\n protected arrowElement!: ElementRef<HTMLElement>;\n\n public readonly element = injectElement();\n\n @Input()\n public referenceElement!: VirtualElement;\n\n @Input()\n public options: ConnectedOverlayOptions = DefaultConnectedOverlayOptions;\n\n @Output()\n public closed = new Subject<void>();\n\n public ngOnChanges(changes: NgChanges<ConnectedOverlayComponent>): void {\n if (hasChanged(changes, ['options'], false)) {\n this.overlaySide = getSide(this.options.position);\n }\n if (hasChanged(changes, ['referenceElement', 'options'], false)) {\n this.stopPositionUpdater();\n this.startPositionUpdater();\n }\n }\n\n public ngOnDestroy(): void {\n this.stopPositionUpdater();\n }\n\n protected onAnimationStart({ fromState }: AnimationEvent): void {\n if (!fromState) return;\n if (fromState === 'void') {\n this.renderer.setStyle(this.element.nativeElement, 'pointer-events', 'none', RendererStyleFlags2.Important);\n this.options.hooks?.beforeOpen?.();\n } else {\n this.options.hooks?.beforeClose?.();\n }\n }\n\n protected onAnimationDone({ fromState }: AnimationEvent): void {\n if (!fromState) return;\n if (fromState === 'void') {\n this.options.hooks?.afterOpen?.();\n this.renderer.removeStyle(this.element.nativeElement, 'pointer-events');\n } else {\n this.options.hooks?.afterClose?.();\n }\n }\n\n private startPositionUpdater(): void {\n this.positionUpdater = this.zone.runOutsideAngular(() =>\n autoUpdate(this.referenceElement, this.element.nativeElement, () =>\n computeOverlayPosition(\n this.referenceElement,\n this.element.nativeElement,\n this.contentElement.nativeElement,\n this.arrowElement.nativeElement,\n this.options\n ).then(({ placement }) => {\n this.overlaySide = getSide(placement);\n })\n )\n );\n }\n\n private stopPositionUpdater(): void {\n this.positionUpdater?.();\n this.positionUpdater = null;\n }\n}\n","<div\n [@contentAnimation]=\"overlaySide\"\n (@contentAnimation.start)=\"onAnimationStart($event)\"\n (@contentAnimation.done)=\"onAnimationDone($event)\"\n class=\"odx-cdk-connected-overlay__content {{ options.containerClass }}\"\n #content\n>\n <ng-template [odxDynamicView]=\"options.content\" [odxDynamicViewContext]=\"options.context\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n <div class=\"odx-cdk-connected-overlay-arrow\" #arrow></div>\n</div>\n","import { inject, Injectable } from '@angular/core';\nimport { VirtualElement } from '@floating-ui/dom';\nimport { DynamicViewRenderingOptions, DynamicViewService } from '@odx/angular/cdk/dynamic-view';\nimport { deepmerge } from '@odx/angular/internal';\nimport { ConnectedOverlayComponent } from './connected-overlay.component';\nimport { ConnectedOverlayOptions, ConnectedOverlayRef, DefaultConnectedOverlayOptions } from './models';\n\n@Injectable({ providedIn: 'root' })\nexport class ConnectedOverlayService {\n private readonly dynamicViewService = inject(DynamicViewService);\n\n public createOverlay(\n referenceElement: VirtualElement,\n options?: Partial<ConnectedOverlayOptions>,\n renderingOptions?: Partial<DynamicViewRenderingOptions>\n ): ConnectedOverlayRef {\n const dynamicViewRef = this.dynamicViewService.createView(ConnectedOverlayComponent, {\n ...renderingOptions,\n context: { options: deepmerge(DefaultConnectedOverlayOptions, options) as ConnectedOverlayOptions, referenceElement },\n });\n\n return new ConnectedOverlayRef(dynamicViewRef);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["offset","withOffset"],"mappings":"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"}