@odx/angular 1.0.0-rc.5 → 1.0.0-rc.7

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 (358) hide show
  1. package/cdk/connected-overlay/README.md +3 -0
  2. package/cdk/connected-overlay/index.d.ts +3 -0
  3. package/cdk/connected-overlay/lib/connected-overlay.component.d.ts +28 -0
  4. package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +10 -0
  5. package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +3 -0
  6. package/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.d.ts +2 -0
  7. package/cdk/connected-overlay/lib/helpers/get-overlay-side.d.ts +2 -0
  8. package/cdk/connected-overlay/lib/helpers/index.d.ts +3 -0
  9. package/cdk/connected-overlay/lib/models/connected-overlay-options.d.ts +23 -0
  10. package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +12 -0
  11. package/cdk/connected-overlay/lib/models/index.d.ts +2 -0
  12. package/cdk/dynamic-view/lib/models/dynamic-view-options.d.ts +1 -1
  13. package/components/circular-progress/lib/circular-progress.component.d.ts +1 -0
  14. package/components/dropdown/README.md +3 -0
  15. package/components/dropdown/index.d.ts +3 -0
  16. package/components/dropdown/lib/dropdown.component.d.ts +11 -0
  17. package/components/dropdown/lib/dropdown.directive.d.ts +32 -0
  18. package/components/dropdown/lib/dropdown.module.d.ts +8 -0
  19. package/components/dropdown/lib/models/dropdown-options.d.ts +3 -0
  20. package/components/dropdown/lib/models/index.d.ts +1 -0
  21. package/components/inline-message/README.md +3 -0
  22. package/components/inline-message/index.d.ts +2 -0
  23. package/components/inline-message/lib/inline-message.component.d.ts +9 -0
  24. package/components/inline-message/lib/models/inline-message-variant.d.ts +7 -0
  25. package/components/loading-spinner/lib/loading-spinner.component.d.ts +2 -2
  26. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +6 -7
  27. package/components/rail-navigation/lib/rail-navigation.component.d.ts +3 -1
  28. package/components/select/README.md +3 -0
  29. package/components/select/index.d.ts +7 -0
  30. package/components/select/lib/abstract/index.d.ts +2 -0
  31. package/components/select/lib/abstract/select-control-option.d.ts +7 -0
  32. package/components/select/lib/abstract/select-control.d.ts +11 -0
  33. package/components/select/lib/components/index.d.ts +1 -0
  34. package/components/select/lib/components/option/option.component.d.ts +22 -0
  35. package/components/select/lib/directives/index.d.ts +1 -0
  36. package/components/select/lib/directives/select-search-field.directive.d.ts +13 -0
  37. package/components/select/lib/pipes/index.d.ts +1 -0
  38. package/components/select/lib/pipes/select-search-filter.pipe.d.ts +13 -0
  39. package/components/select/lib/select.component.d.ts +50 -0
  40. package/components/select/lib/select.module.d.ts +11 -0
  41. package/components/select/lib/select.tokens.d.ts +3 -0
  42. package/components/slider/README.md +3 -0
  43. package/components/slider/index.d.ts +1 -0
  44. package/components/slider/lib/slider.directive.d.ts +13 -0
  45. package/components/spinbox/README.md +3 -0
  46. package/components/spinbox/index.d.ts +1 -0
  47. package/components/spinbox/lib/spinbox.component.d.ts +25 -0
  48. package/components/tooltip/README.md +3 -0
  49. package/components/tooltip/index.d.ts +3 -0
  50. package/components/tooltip/lib/helpers/index.d.ts +1 -0
  51. package/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.d.ts +2 -0
  52. package/components/tooltip/lib/models/index.d.ts +3 -0
  53. package/components/tooltip/lib/models/tooltip-options.d.ts +10 -0
  54. package/components/tooltip/lib/models/tooltip-size.d.ts +7 -0
  55. package/components/tooltip/lib/models/tooltip-trigger.d.ts +1 -0
  56. package/components/tooltip/lib/tooltip.component.d.ts +12 -0
  57. package/components/tooltip/lib/tooltip.directive.d.ts +33 -0
  58. package/esm2020/animations/lib/expand.mjs +4 -4
  59. package/esm2020/cdk/active-indicator/lib/active-indicator.directive.mjs +3 -3
  60. package/esm2020/cdk/checkbox-control/lib/checkbox-control.directive.mjs +3 -3
  61. package/esm2020/cdk/connected-overlay/index.mjs +4 -0
  62. package/esm2020/cdk/connected-overlay/lib/connected-overlay.component.mjs +112 -0
  63. package/esm2020/cdk/connected-overlay/lib/connected-overlay.service.mjs +25 -0
  64. package/esm2020/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +57 -0
  65. package/esm2020/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.mjs +13 -0
  66. package/esm2020/cdk/connected-overlay/lib/helpers/get-overlay-side.mjs +4 -0
  67. package/esm2020/cdk/connected-overlay/lib/helpers/index.mjs +4 -0
  68. package/esm2020/cdk/connected-overlay/lib/models/connected-overlay-options.mjs +10 -0
  69. package/esm2020/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +15 -0
  70. package/esm2020/cdk/connected-overlay/lib/models/index.mjs +3 -0
  71. package/esm2020/cdk/connected-overlay/odx-angular-cdk-connected-overlay.mjs +5 -0
  72. package/esm2020/cdk/custom-form-control/lib/control.directive.mjs +3 -3
  73. package/esm2020/cdk/custom-form-control/lib/custom-form-control.mjs +3 -3
  74. package/esm2020/cdk/dynamic-view/lib/dynamic-view.component.mjs +3 -3
  75. package/esm2020/cdk/dynamic-view/lib/dynamic-view.directive.mjs +3 -3
  76. package/esm2020/cdk/dynamic-view/lib/dynamic-view.service.mjs +3 -3
  77. package/esm2020/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +5 -3
  78. package/esm2020/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +4 -2
  79. package/esm2020/cdk/dynamic-view/lib/models/dynamic-view-options.mjs +1 -1
  80. package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +3 -3
  81. package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +3 -3
  82. package/esm2020/cdk/expandable/lib/expandable.module.mjs +4 -4
  83. package/esm2020/cdk/radio-group-control/lib/radio-control.directive.mjs +3 -3
  84. package/esm2020/cdk/radio-group-control/lib/radio-group-control.directive.mjs +3 -3
  85. package/esm2020/cdk/radio-group-control/lib/radio-group-control.module.mjs +4 -4
  86. package/esm2020/components/accordion/lib/accordion.component.mjs +3 -3
  87. package/esm2020/components/accordion/lib/accordion.module.mjs +4 -4
  88. package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +5 -5
  89. package/esm2020/components/accordion/lib/directives/accordion-item-title.mjs +3 -3
  90. package/esm2020/components/action-group/action-group.component.mjs +3 -3
  91. package/esm2020/components/area-header/area-header.component.mjs +5 -5
  92. package/esm2020/components/area-header/area-header.module.mjs +4 -4
  93. package/esm2020/components/area-header/directives/area-header-content.directive.mjs +3 -3
  94. package/esm2020/components/area-header/directives/area-header-subtitle.directive.mjs +3 -3
  95. package/esm2020/components/avatar/lib/avatar.component.mjs +3 -3
  96. package/esm2020/components/badge/lib/badge.component.mjs +3 -3
  97. package/esm2020/components/badge/lib/badge.directive.mjs +3 -3
  98. package/esm2020/components/button/lib/button.component.mjs +3 -3
  99. package/esm2020/components/button-group/lib/button-group.component.mjs +3 -3
  100. package/esm2020/components/checkbox/lib/checkbox.component.mjs +3 -3
  101. package/esm2020/components/checkbox/lib/checkbox.module.mjs +4 -4
  102. package/esm2020/components/checkbox/lib/checkbox.validator.mjs +3 -3
  103. package/esm2020/components/chip/lib/chip.component.mjs +3 -3
  104. package/esm2020/components/circular-progress/lib/circular-progress.component.mjs +14 -7
  105. package/esm2020/components/content-box/lib/content-box.component.mjs +3 -3
  106. package/esm2020/components/content-box/lib/content-box.module.mjs +4 -4
  107. package/esm2020/components/content-box/lib/directives/content-box-footer-directive.mjs +3 -3
  108. package/esm2020/components/content-box/lib/directives/content-box-header-directive.mjs +3 -3
  109. package/esm2020/components/dropdown/index.mjs +4 -0
  110. package/esm2020/components/dropdown/lib/dropdown.component.mjs +31 -0
  111. package/esm2020/components/dropdown/lib/dropdown.directive.mjs +123 -0
  112. package/esm2020/components/dropdown/lib/dropdown.module.mjs +18 -0
  113. package/esm2020/components/dropdown/lib/models/dropdown-options.mjs +7 -0
  114. package/esm2020/components/dropdown/lib/models/index.mjs +2 -0
  115. package/esm2020/components/dropdown/odx-angular-components-dropdown.mjs +5 -0
  116. package/esm2020/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +3 -3
  117. package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +3 -3
  118. package/esm2020/components/form-field/lib/directives/form-field-control.directive.mjs +3 -3
  119. package/esm2020/components/form-field/lib/directives/form-field-error.directive.mjs +3 -3
  120. package/esm2020/components/form-field/lib/directives/form-field-hint.directive.mjs +3 -3
  121. package/esm2020/components/form-field/lib/directives/form-field-label.directive.mjs +3 -3
  122. package/esm2020/components/form-field/lib/directives/form.directive.mjs +3 -3
  123. package/esm2020/components/form-field/lib/form-field.component.mjs +3 -3
  124. package/esm2020/components/form-field/lib/form-field.module.mjs +4 -4
  125. package/esm2020/components/form-field/lib/form-field.service.mjs +3 -3
  126. package/esm2020/components/form-field/lib/services/form-field-error.service.mjs +3 -3
  127. package/esm2020/components/header/lib/directives/header-avatar.directive.mjs +3 -3
  128. package/esm2020/components/header/lib/directives/header-title.directive.mjs +3 -3
  129. package/esm2020/components/header/lib/header.component.mjs +3 -3
  130. package/esm2020/components/header/lib/header.module.mjs +4 -4
  131. package/esm2020/components/icon/lib/icon.component.mjs +3 -3
  132. package/esm2020/components/inline-message/index.mjs +3 -0
  133. package/esm2020/components/inline-message/lib/inline-message.component.mjs +43 -0
  134. package/esm2020/components/inline-message/lib/models/inline-message-variant.mjs +7 -0
  135. package/esm2020/components/inline-message/odx-angular-components-inline-message.mjs +5 -0
  136. package/esm2020/components/link/link.directive.mjs +3 -3
  137. package/esm2020/components/list/lib/components/list-item.component.mjs +5 -5
  138. package/esm2020/components/list/lib/list.component.mjs +3 -3
  139. package/esm2020/components/list/lib/list.module.mjs +4 -4
  140. package/esm2020/components/loading-spinner/lib/loading-spinner.component.mjs +10 -10
  141. package/esm2020/components/loading-spinner/lib/loading-spinner.directive.mjs +30 -26
  142. package/esm2020/components/loading-spinner/lib/loading-spinner.module.mjs +4 -4
  143. package/esm2020/components/logo/logo.directive.mjs +3 -3
  144. package/esm2020/components/main-menu/lib/directives/main-menu-button.directive.mjs +3 -3
  145. package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +3 -3
  146. package/esm2020/components/main-menu/lib/main-menu.component.mjs +5 -5
  147. package/esm2020/components/main-menu/lib/main-menu.module.mjs +4 -4
  148. package/esm2020/components/main-menu/lib/main-menu.service.mjs +3 -3
  149. package/esm2020/components/modal/lib/components/modal-footer/modal-footer.component.mjs +3 -3
  150. package/esm2020/components/modal/lib/components/modal-header/modal-header.component.mjs +3 -3
  151. package/esm2020/components/modal/lib/directives/modal-close.directive.mjs +3 -3
  152. package/esm2020/components/modal/lib/directives/modal-content.directive.mjs +3 -3
  153. package/esm2020/components/modal/lib/directives/modal-dismiss.directive.mjs +3 -3
  154. package/esm2020/components/modal/lib/modal.component.mjs +3 -3
  155. package/esm2020/components/modal/lib/modal.directive.mjs +3 -3
  156. package/esm2020/components/modal/lib/modal.module.mjs +4 -4
  157. package/esm2020/components/modal/lib/modal.service.mjs +3 -3
  158. package/esm2020/components/modal/lib/services/open-modal-manager.service.mjs +3 -3
  159. package/esm2020/components/progress/lib/progress.component.mjs +3 -3
  160. package/esm2020/components/radio-group/lib/components/radio-button/radio-button.component.mjs +3 -3
  161. package/esm2020/components/radio-group/lib/radio-group.component.mjs +3 -3
  162. package/esm2020/components/radio-group/lib/radio-group.module.mjs +4 -4
  163. package/esm2020/components/rail-navigation/lib/components/rail-navigation-item.component.mjs +3 -3
  164. package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +11 -5
  165. package/esm2020/components/rail-navigation/lib/rail-navigation.module.mjs +4 -4
  166. package/esm2020/components/select/index.mjs +8 -0
  167. package/esm2020/components/select/lib/abstract/index.mjs +3 -0
  168. package/esm2020/components/select/lib/abstract/select-control-option.mjs +2 -0
  169. package/esm2020/components/select/lib/abstract/select-control.mjs +2 -0
  170. package/esm2020/components/select/lib/components/index.mjs +2 -0
  171. package/esm2020/components/select/lib/components/option/option.component.mjs +78 -0
  172. package/esm2020/components/select/lib/directives/index.mjs +2 -0
  173. package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +47 -0
  174. package/esm2020/components/select/lib/pipes/index.mjs +2 -0
  175. package/esm2020/components/select/lib/pipes/select-search-filter.pipe.mjs +51 -0
  176. package/esm2020/components/select/lib/select.component.mjs +190 -0
  177. package/esm2020/components/select/lib/select.module.mjs +21 -0
  178. package/esm2020/components/select/lib/select.tokens.mjs +3 -0
  179. package/esm2020/components/select/odx-angular-components-select.mjs +5 -0
  180. package/esm2020/components/slider/index.mjs +2 -0
  181. package/esm2020/components/slider/lib/slider.directive.mjs +45 -0
  182. package/esm2020/components/slider/odx-angular-components-slider.mjs +5 -0
  183. package/esm2020/components/spinbox/index.mjs +2 -0
  184. package/esm2020/components/spinbox/lib/spinbox.component.mjs +91 -0
  185. package/esm2020/components/spinbox/odx-angular-components-spinbox.mjs +5 -0
  186. package/esm2020/components/switch/lib/switch.component.mjs +3 -3
  187. package/esm2020/components/switch/lib/switch.module.mjs +4 -4
  188. package/esm2020/components/switch/lib/switch.validator.mjs +3 -3
  189. package/esm2020/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +3 -3
  190. package/esm2020/components/toggle-button-group/lib/toggle-button-group.component.mjs +6 -6
  191. package/esm2020/components/toggle-button-group/lib/toggle-button-group.module.mjs +4 -4
  192. package/esm2020/components/tooltip/index.mjs +4 -0
  193. package/esm2020/components/tooltip/lib/helpers/index.mjs +2 -0
  194. package/esm2020/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.mjs +9 -0
  195. package/esm2020/components/tooltip/lib/models/index.mjs +4 -0
  196. package/esm2020/components/tooltip/lib/models/tooltip-options.mjs +10 -0
  197. package/esm2020/components/tooltip/lib/models/tooltip-size.mjs +7 -0
  198. package/esm2020/components/tooltip/lib/models/tooltip-trigger.mjs +2 -0
  199. package/esm2020/components/tooltip/lib/tooltip.component.mjs +39 -0
  200. package/esm2020/components/tooltip/lib/tooltip.directive.mjs +132 -0
  201. package/esm2020/components/tooltip/odx-angular-components-tooltip.mjs +5 -0
  202. package/esm2020/index.mjs +2 -1
  203. package/esm2020/lib/controllers/controller.mjs +3 -3
  204. package/esm2020/lib/controllers/disabled.controller.mjs +3 -3
  205. package/esm2020/lib/controllers/readonly.controller.mjs +3 -3
  206. package/esm2020/lib/core.module.mjs +4 -4
  207. package/esm2020/lib/directives/click-outside.directive.mjs +3 -3
  208. package/esm2020/lib/services/window-ref.mjs +3 -3
  209. package/esm2020/lib/tokens/identity-matcher.mjs +7 -0
  210. package/esm2020/lib/tokens/index.mjs +4 -0
  211. package/esm2020/lib/tokens/string-search-handler.mjs +9 -0
  212. package/esm2020/lib/tokens/stringify.mjs +8 -0
  213. package/esm2020/rxjs/index.mjs +2 -1
  214. package/esm2020/rxjs/lib/delay-until.mjs +5 -0
  215. package/esm2020/utils/lib/decorators/index.mjs +2 -1
  216. package/esm2020/utils/lib/decorators/pure.mjs +37 -0
  217. package/esm2020/utils/lib/helpers/defer-fn.mjs +4 -0
  218. package/esm2020/utils/lib/helpers/event-manager.mjs +30 -0
  219. package/esm2020/utils/lib/helpers/index.mjs +3 -1
  220. package/fesm2015/odx-angular-animations.mjs +3 -3
  221. package/fesm2015/odx-angular-animations.mjs.map +1 -1
  222. package/fesm2015/odx-angular-cdk-active-indicator.mjs +3 -3
  223. package/fesm2015/odx-angular-cdk-checkbox-control.mjs +3 -3
  224. package/fesm2015/odx-angular-cdk-connected-overlay.mjs +234 -0
  225. package/fesm2015/odx-angular-cdk-connected-overlay.mjs.map +1 -0
  226. package/fesm2015/odx-angular-cdk-custom-form-control.mjs +6 -6
  227. package/fesm2015/odx-angular-cdk-dynamic-view.mjs +15 -12
  228. package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  229. package/fesm2015/odx-angular-cdk-expandable.mjs +10 -10
  230. package/fesm2015/odx-angular-cdk-radio-group-control.mjs +10 -10
  231. package/fesm2015/odx-angular-components-accordion.mjs +14 -14
  232. package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
  233. package/fesm2015/odx-angular-components-action-group.mjs +3 -3
  234. package/fesm2015/odx-angular-components-area-header.mjs +14 -14
  235. package/fesm2015/odx-angular-components-area-header.mjs.map +1 -1
  236. package/fesm2015/odx-angular-components-avatar.mjs +3 -3
  237. package/fesm2015/odx-angular-components-badge.mjs +6 -6
  238. package/fesm2015/odx-angular-components-button-group.mjs +3 -3
  239. package/fesm2015/odx-angular-components-button.mjs +3 -3
  240. package/fesm2015/odx-angular-components-checkbox.mjs +10 -10
  241. package/fesm2015/odx-angular-components-chip.mjs +3 -3
  242. package/fesm2015/odx-angular-components-circular-progress.mjs +13 -6
  243. package/fesm2015/odx-angular-components-circular-progress.mjs.map +1 -1
  244. package/fesm2015/odx-angular-components-content-box.mjs +13 -13
  245. package/fesm2015/odx-angular-components-dropdown.mjs +168 -0
  246. package/fesm2015/odx-angular-components-dropdown.mjs.map +1 -0
  247. package/fesm2015/odx-angular-components-form-field.mjs +34 -34
  248. package/fesm2015/odx-angular-components-header.mjs +13 -13
  249. package/fesm2015/odx-angular-components-icon.mjs +3 -3
  250. package/fesm2015/odx-angular-components-inline-message.mjs +55 -0
  251. package/fesm2015/odx-angular-components-inline-message.mjs.map +1 -0
  252. package/fesm2015/odx-angular-components-link.mjs +3 -3
  253. package/fesm2015/odx-angular-components-list.mjs +11 -11
  254. package/fesm2015/odx-angular-components-list.mjs.map +1 -1
  255. package/fesm2015/odx-angular-components-loading-spinner.mjs +81 -91
  256. package/fesm2015/odx-angular-components-loading-spinner.mjs.map +1 -1
  257. package/fesm2015/odx-angular-components-logo.mjs +3 -3
  258. package/fesm2015/odx-angular-components-main-menu.mjs +17 -17
  259. package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
  260. package/fesm2015/odx-angular-components-modal.mjs +31 -31
  261. package/fesm2015/odx-angular-components-progress.mjs +3 -3
  262. package/fesm2015/odx-angular-components-radio-group.mjs +10 -10
  263. package/fesm2015/odx-angular-components-rail-navigation.mjs +17 -11
  264. package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -1
  265. package/fesm2015/odx-angular-components-select.mjs +375 -0
  266. package/fesm2015/odx-angular-components-select.mjs.map +1 -0
  267. package/fesm2015/odx-angular-components-slider.mjs +51 -0
  268. package/fesm2015/odx-angular-components-slider.mjs.map +1 -0
  269. package/fesm2015/odx-angular-components-spinbox.mjs +100 -0
  270. package/fesm2015/odx-angular-components-spinbox.mjs.map +1 -0
  271. package/fesm2015/odx-angular-components-switch.mjs +10 -10
  272. package/fesm2015/odx-angular-components-toggle-button-group.mjs +12 -12
  273. package/fesm2015/odx-angular-components-toggle-button-group.mjs.map +1 -1
  274. package/fesm2015/odx-angular-components-tooltip.mjs +187 -0
  275. package/fesm2015/odx-angular-components-tooltip.mjs.map +1 -0
  276. package/fesm2015/odx-angular-rxjs.mjs +6 -2
  277. package/fesm2015/odx-angular-rxjs.mjs.map +1 -1
  278. package/fesm2015/odx-angular-utils.mjs +72 -2
  279. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  280. package/fesm2015/odx-angular.mjs +40 -20
  281. package/fesm2015/odx-angular.mjs.map +1 -1
  282. package/fesm2020/odx-angular-animations.mjs +3 -3
  283. package/fesm2020/odx-angular-animations.mjs.map +1 -1
  284. package/fesm2020/odx-angular-cdk-active-indicator.mjs +3 -3
  285. package/fesm2020/odx-angular-cdk-checkbox-control.mjs +3 -3
  286. package/fesm2020/odx-angular-cdk-connected-overlay.mjs +230 -0
  287. package/fesm2020/odx-angular-cdk-connected-overlay.mjs.map +1 -0
  288. package/fesm2020/odx-angular-cdk-custom-form-control.mjs +6 -6
  289. package/fesm2020/odx-angular-cdk-dynamic-view.mjs +15 -12
  290. package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  291. package/fesm2020/odx-angular-cdk-expandable.mjs +10 -10
  292. package/fesm2020/odx-angular-cdk-radio-group-control.mjs +10 -10
  293. package/fesm2020/odx-angular-components-accordion.mjs +14 -14
  294. package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
  295. package/fesm2020/odx-angular-components-action-group.mjs +3 -3
  296. package/fesm2020/odx-angular-components-area-header.mjs +14 -14
  297. package/fesm2020/odx-angular-components-area-header.mjs.map +1 -1
  298. package/fesm2020/odx-angular-components-avatar.mjs +3 -3
  299. package/fesm2020/odx-angular-components-badge.mjs +6 -6
  300. package/fesm2020/odx-angular-components-button-group.mjs +3 -3
  301. package/fesm2020/odx-angular-components-button.mjs +3 -3
  302. package/fesm2020/odx-angular-components-checkbox.mjs +10 -10
  303. package/fesm2020/odx-angular-components-chip.mjs +3 -3
  304. package/fesm2020/odx-angular-components-circular-progress.mjs +13 -6
  305. package/fesm2020/odx-angular-components-circular-progress.mjs.map +1 -1
  306. package/fesm2020/odx-angular-components-content-box.mjs +13 -13
  307. package/fesm2020/odx-angular-components-dropdown.mjs +172 -0
  308. package/fesm2020/odx-angular-components-dropdown.mjs.map +1 -0
  309. package/fesm2020/odx-angular-components-form-field.mjs +34 -34
  310. package/fesm2020/odx-angular-components-header.mjs +13 -13
  311. package/fesm2020/odx-angular-components-icon.mjs +3 -3
  312. package/fesm2020/odx-angular-components-inline-message.mjs +55 -0
  313. package/fesm2020/odx-angular-components-inline-message.mjs.map +1 -0
  314. package/fesm2020/odx-angular-components-link.mjs +3 -3
  315. package/fesm2020/odx-angular-components-list.mjs +11 -11
  316. package/fesm2020/odx-angular-components-list.mjs.map +1 -1
  317. package/fesm2020/odx-angular-components-loading-spinner.mjs +80 -90
  318. package/fesm2020/odx-angular-components-loading-spinner.mjs.map +1 -1
  319. package/fesm2020/odx-angular-components-logo.mjs +3 -3
  320. package/fesm2020/odx-angular-components-main-menu.mjs +17 -17
  321. package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
  322. package/fesm2020/odx-angular-components-modal.mjs +31 -31
  323. package/fesm2020/odx-angular-components-progress.mjs +3 -3
  324. package/fesm2020/odx-angular-components-radio-group.mjs +10 -10
  325. package/fesm2020/odx-angular-components-rail-navigation.mjs +17 -11
  326. package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -1
  327. package/fesm2020/odx-angular-components-select.mjs +362 -0
  328. package/fesm2020/odx-angular-components-select.mjs.map +1 -0
  329. package/fesm2020/odx-angular-components-slider.mjs +51 -0
  330. package/fesm2020/odx-angular-components-slider.mjs.map +1 -0
  331. package/fesm2020/odx-angular-components-spinbox.mjs +97 -0
  332. package/fesm2020/odx-angular-components-spinbox.mjs.map +1 -0
  333. package/fesm2020/odx-angular-components-switch.mjs +10 -10
  334. package/fesm2020/odx-angular-components-toggle-button-group.mjs +12 -12
  335. package/fesm2020/odx-angular-components-toggle-button-group.mjs.map +1 -1
  336. package/fesm2020/odx-angular-components-tooltip.mjs +192 -0
  337. package/fesm2020/odx-angular-components-tooltip.mjs.map +1 -0
  338. package/fesm2020/odx-angular-rxjs.mjs +6 -2
  339. package/fesm2020/odx-angular-rxjs.mjs.map +1 -1
  340. package/fesm2020/odx-angular-utils.mjs +71 -2
  341. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  342. package/fesm2020/odx-angular.mjs +40 -20
  343. package/fesm2020/odx-angular.mjs.map +1 -1
  344. package/index.d.ts +1 -0
  345. package/lib/tokens/identity-matcher.d.ts +3 -0
  346. package/lib/tokens/index.d.ts +3 -0
  347. package/lib/tokens/string-search-handler.d.ts +3 -0
  348. package/lib/tokens/stringify.d.ts +3 -0
  349. package/package.json +58 -2
  350. package/rxjs/index.d.ts +1 -0
  351. package/rxjs/lib/delay-until.d.ts +2 -0
  352. package/utils/lib/decorators/index.d.ts +1 -0
  353. package/utils/lib/decorators/pure.d.ts +1 -0
  354. package/utils/lib/helpers/defer-fn.d.ts +1 -0
  355. package/utils/lib/helpers/event-manager.d.ts +12 -0
  356. package/utils/lib/helpers/index.d.ts +2 -0
  357. package/components/loading-spinner/lib/loading-spinner.service.d.ts +0 -9
  358. package/esm2020/components/loading-spinner/lib/loading-spinner.service.mjs +0 -17
@@ -0,0 +1,230 @@
1
+ import { __decorate } from 'tslib';
2
+ import { trigger, transition, group, useAnimation } from '@angular/animations';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, Renderer2, NgZone, RendererStyleFlags2, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Input, Output, Injectable } from '@angular/core';
5
+ import { arrow, flip, computePosition, offset, shift, size, hide, autoUpdate } from '@floating-ui/dom';
6
+ import { CoreModule } from '@odx/angular';
7
+ import { waitForChildAnimations, slideInUp, fadeIn, slideOutUp, fadeOut, slideInLeft, slideOutRight, slideOutDown, slideInRight, slideOutLeft } from '@odx/angular/animations';
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';
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
+
31
+ async function computeOverlayPosition(referenceElement, overlayElement, contentElement, arrowElement, options) {
32
+ const { position, offset: offset$1, outerPadding, matchReferenceWidth, enableFallback, strategy, minHeight } = options;
33
+ const arrowSize = options.showArrow ? arrowElement.offsetWidth : 0;
34
+ const arrowMiddleware = options.showArrow ? [arrow({ element: arrowElement, padding: 8 })] : [];
35
+ const flipMiddleWare = enableFallback ? [flip()] : [];
36
+ return computePosition(referenceElement, overlayElement, {
37
+ strategy,
38
+ placement: position,
39
+ middleware: [
40
+ offset(Math.max(offset$1, arrowSize + offset$1)),
41
+ shift({ padding: outerPadding }),
42
+ ...flipMiddleWare,
43
+ size({
44
+ padding: outerPadding,
45
+ apply: ({ availableHeight, availableWidth, rects }) => {
46
+ applyStyles(contentElement, {
47
+ maxHeight: px(availableHeight),
48
+ maxWidth: px(availableWidth),
49
+ minHeight: minHeight ? px(Math.min(availableHeight, minHeight)) : null,
50
+ minWidth: matchReferenceWidth ? px(rects.reference.width) : null,
51
+ });
52
+ },
53
+ }),
54
+ ...arrowMiddleware,
55
+ hide(),
56
+ ],
57
+ }).then((result) => {
58
+ applyStyles(overlayElement, {
59
+ top: '0',
60
+ left: '0',
61
+ transform: cssTranslate(px(result.x), px(result.y)),
62
+ });
63
+ if (options.hiddenClass) {
64
+ overlayElement.classList.toggle(options.hiddenClass, !!result.middlewareData.hide?.referenceHidden);
65
+ }
66
+ if (options.showArrow) {
67
+ const overlaySide = getOverlaySide(result.placement);
68
+ const arrowSide = getOppositeOverlaySide(overlaySide);
69
+ applyStyles(arrowElement, {
70
+ display: null,
71
+ top: px(result.middlewareData.arrow?.y),
72
+ left: px(result.middlewareData.arrow?.x),
73
+ [arrowSide]: px(-arrowSize / 2),
74
+ [overlaySide]: null,
75
+ });
76
+ }
77
+ else {
78
+ applyStyles(arrowElement, { display: 'none' });
79
+ }
80
+ return result;
81
+ });
82
+ }
83
+
84
+ const DefaultConnectedOverlayOptions = {
85
+ hiddenClass: 'is-hidden',
86
+ enableFallback: false,
87
+ matchReferenceWidth: false,
88
+ offset: 4,
89
+ outerPadding: 12,
90
+ position: 'bottom',
91
+ strategy: 'fixed',
92
+ };
93
+
94
+ class ConnectedOverlayRef {
95
+ constructor(dynamicViewRef) {
96
+ this.dynamicViewRef = dynamicViewRef;
97
+ this.element = this.dynamicViewRef.getElement();
98
+ this.onClose$ = this.dynamicViewRef.getContext().closed ?? EMPTY;
99
+ }
100
+ update(options) {
101
+ this.dynamicViewRef.update({ options: options });
102
+ }
103
+ close() {
104
+ this.dynamicViewRef.destroy();
105
+ }
106
+ }
107
+
108
+ let ConnectedOverlayComponent = class ConnectedOverlayComponent {
109
+ constructor() {
110
+ this.renderer = inject(Renderer2);
111
+ this.zone = inject(NgZone);
112
+ this.positionUpdater = null;
113
+ this.injector = getInjector();
114
+ this.element = injectElement();
115
+ this.options = DefaultConnectedOverlayOptions;
116
+ this.closed = new Subject();
117
+ }
118
+ ngOnChanges(changes) {
119
+ if (hasChanged(changes, ['options'], false)) {
120
+ this.overlaySide = getOverlaySide(this.options.position);
121
+ }
122
+ if (hasChanged(changes, ['referenceElement', 'options'], false)) {
123
+ this.stopPositionUpdater();
124
+ this.startPositionUpdater();
125
+ }
126
+ }
127
+ ngOnDestroy() {
128
+ this.stopPositionUpdater();
129
+ }
130
+ onAnimationStart({ fromState }) {
131
+ if (fromState === 'void') {
132
+ this.renderer.setStyle(this.element.nativeElement, 'pointer-events', 'none', RendererStyleFlags2.Important);
133
+ this.options.hooks?.beforeOpen?.();
134
+ }
135
+ else {
136
+ this.options.hooks?.beforeClose?.();
137
+ }
138
+ }
139
+ onAnimationDone({ fromState }) {
140
+ if (fromState === 'void') {
141
+ this.options.hooks?.afterOpen?.();
142
+ this.renderer.removeStyle(this.element.nativeElement, 'pointer-events');
143
+ }
144
+ else {
145
+ this.options.hooks?.afterClose?.();
146
+ }
147
+ }
148
+ startPositionUpdater() {
149
+ 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);
151
+ })));
152
+ }
153
+ stopPositionUpdater() {
154
+ this.positionUpdater?.();
155
+ this.positionUpdater = null;
156
+ }
157
+ };
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: [
160
+ trigger('hostAnimation', [waitForChildAnimations]),
161
+ trigger('contentAnimation', [
162
+ transition('void => top', group([useAnimation(slideInUp, { params: { from: '-8px' } }), useAnimation(fadeIn())])),
163
+ transition('top => void', group([useAnimation(slideOutUp, { params: { to: '-8px' } }), useAnimation(fadeOut())])),
164
+ transition('void => right', group([useAnimation(slideInLeft, { params: { from: '8px' } }), useAnimation(fadeIn())])),
165
+ transition('right => void', group([useAnimation(slideOutRight, { params: { to: '8px' } }), useAnimation(fadeOut())])),
166
+ transition('void => bottom', group([useAnimation(slideInUp, { params: { from: '8px' } }), useAnimation(fadeIn())])),
167
+ transition('bottom => void', group([useAnimation(slideOutDown, { params: { to: '8px' } }), useAnimation(fadeOut())])),
168
+ transition('void => left', group([useAnimation(slideInRight, { params: { from: '-8px' } }), useAnimation(fadeIn())])),
169
+ transition('left => void', group([useAnimation(slideOutLeft, { params: { to: '-8px' } }), useAnimation(fadeOut())])),
170
+ ]),
171
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
172
+ ConnectedOverlayComponent = __decorate([
173
+ CSSComponent('cdk-connected-overlay')
174
+ ], ConnectedOverlayComponent);
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ConnectedOverlayComponent, decorators: [{
176
+ type: Component,
177
+ args: [{ standalone: true, selector: 'odx-connected-overlay', imports: [CoreModule, DynamicViewDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
178
+ '[@hostAnimation]': 'true',
179
+ }, animations: [
180
+ trigger('hostAnimation', [waitForChildAnimations]),
181
+ trigger('contentAnimation', [
182
+ transition('void => top', group([useAnimation(slideInUp, { params: { from: '-8px' } }), useAnimation(fadeIn())])),
183
+ transition('top => void', group([useAnimation(slideOutUp, { params: { to: '-8px' } }), useAnimation(fadeOut())])),
184
+ transition('void => right', group([useAnimation(slideInLeft, { params: { from: '8px' } }), useAnimation(fadeIn())])),
185
+ transition('right => void', group([useAnimation(slideOutRight, { params: { to: '8px' } }), useAnimation(fadeOut())])),
186
+ transition('void => bottom', group([useAnimation(slideInUp, { params: { from: '8px' } }), useAnimation(fadeIn())])),
187
+ transition('bottom => void', group([useAnimation(slideOutDown, { params: { to: '8px' } }), useAnimation(fadeOut())])),
188
+ transition('void => left', group([useAnimation(slideInRight, { params: { from: '-8px' } }), useAnimation(fadeIn())])),
189
+ transition('left => void', group([useAnimation(slideOutLeft, { params: { to: '-8px' } }), useAnimation(fadeOut())])),
190
+ ]),
191
+ ], 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" }]
192
+ }], propDecorators: { contentElement: [{
193
+ type: ViewChild,
194
+ args: ['content', { static: true }]
195
+ }], arrowElement: [{
196
+ type: ViewChild,
197
+ args: ['arrow', { static: true }]
198
+ }], referenceElement: [{
199
+ type: Input
200
+ }], options: [{
201
+ type: Input
202
+ }], closed: [{
203
+ type: Output
204
+ }] } });
205
+
206
+ class ConnectedOverlayService {
207
+ constructor() {
208
+ this.dynamicViewService = inject(DynamicViewService);
209
+ }
210
+ createOverlay(referenceElement, options, renderingOptions) {
211
+ const dynamicViewRef = this.dynamicViewService.createView(ConnectedOverlayComponent, {
212
+ ...renderingOptions,
213
+ context: { options: deepmerge(DefaultConnectedOverlayOptions, options), referenceElement },
214
+ });
215
+ return new ConnectedOverlayRef(dynamicViewRef);
216
+ }
217
+ }
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: [{
221
+ type: Injectable,
222
+ args: [{ providedIn: 'root' }]
223
+ }] });
224
+
225
+ /**
226
+ * Generated bundle index. Do not edit.
227
+ */
228
+
229
+ export { ConnectedOverlayComponent, ConnectedOverlayRef, ConnectedOverlayService, DefaultConnectedOverlayOptions };
230
+ //# sourceMappingURL=odx-angular-cdk-connected-overlay.mjs.map
@@ -0,0 +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: 4,\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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"}
@@ -9,9 +9,9 @@ class ControlDirective {
9
9
  this.element = injectElement();
10
10
  }
11
11
  }
12
- ControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
- ControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: ControlDirective, isStandalone: true, selector: "[odxControl]", exportAs: ["odxControl"], ngImport: i0 });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ControlDirective, decorators: [{
12
+ ControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
+ ControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ControlDirective, isStandalone: true, selector: "[odxControl]", exportAs: ["odxControl"], ngImport: i0 });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ControlDirective, decorators: [{
15
15
  type: Directive,
16
16
  args: [{
17
17
  standalone: true,
@@ -88,9 +88,9 @@ class CustomFormControl extends Controller {
88
88
  }
89
89
  }
90
90
  CustomFormControl.CURRENT_INDEX = 0;
91
- CustomFormControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: CustomFormControl, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
92
- CustomFormControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: CustomFormControl, inputs: { id: "id", name: "name" }, host: { properties: { "class.has-error": "hasError", "class.is-disabled": "isDisabled", "class.is-readonly": "isReadonly", "class.is-required": "required" } }, viewQueries: [{ propertyName: "control", first: true, predicate: ControlDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: CustomFormControl, decorators: [{
91
+ CustomFormControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomFormControl, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
92
+ CustomFormControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: CustomFormControl, inputs: { id: "id", name: "name" }, host: { properties: { "class.has-error": "hasError", "class.is-disabled": "isDisabled", "class.is-readonly": "isReadonly", "class.is-required": "required" } }, viewQueries: [{ propertyName: "control", first: true, predicate: ControlDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomFormControl, decorators: [{
94
94
  type: Directive,
95
95
  args: [{
96
96
  host: {
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, reflectComponentType, ApplicationRef, createComponent, EnvironmentInjector, InjectionToken, inject, Injector, Injectable, ViewContainerRef, TemplateRef, Directive } from '@angular/core';
3
3
  import { injectElement, isString, isViewContainer, getInjector, isTemplateRef, isComponent, hasChanged } from '@odx/angular/utils';
4
4
  import { isObservable, distinctUntilChanged } from 'rxjs';
5
+ import { deepmerge } from 'deepmerge-ts';
5
6
  import { DOCUMENT } from '@angular/common';
6
7
 
7
8
  class DynamicViewComponent {
@@ -28,9 +29,9 @@ class DynamicViewComponent {
28
29
  this.element.nativeElement.innerHTML = value;
29
30
  }
30
31
  }
31
- DynamicViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- DynamicViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: DynamicViewComponent, isStandalone: true, selector: "odx-dynamic-view", inputs: { content: "content" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewComponent, decorators: [{
32
+ DynamicViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DynamicViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
+ DynamicViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DynamicViewComponent, isStandalone: true, selector: "odx-dynamic-view", inputs: { content: "content" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DynamicViewComponent, decorators: [{
34
35
  type: Component,
35
36
  args: [{
36
37
  selector: 'odx-dynamic-view',
@@ -97,8 +98,9 @@ class DynamicComponentRef {
97
98
  return this.componentRef?.location.nativeElement ?? null;
98
99
  }
99
100
  update(context) {
100
- for (const key in context) {
101
- this.componentRef?.setInput(key, context[key]);
101
+ this.options.context = deepmerge(this.options.context, context);
102
+ for (const key in this.options.context) {
103
+ this.componentRef?.setInput(key, this.options.context[key]);
102
104
  }
103
105
  }
104
106
  getContext() {
@@ -134,8 +136,9 @@ class DynamicTemplateRef {
134
136
  return this.embeddedViewRef?.rootNodes?.[0] ?? null;
135
137
  }
136
138
  update(context) {
139
+ this.options.context = deepmerge(this.options.context, context);
137
140
  if (this.embeddedViewRef) {
138
- this.embeddedViewRef.context = context;
141
+ this.embeddedViewRef.context = this.options.context;
139
142
  this.detectChanges();
140
143
  }
141
144
  }
@@ -200,9 +203,9 @@ class DynamicViewService {
200
203
  throw new Error('Content type is not supported');
201
204
  }
202
205
  }
203
- DynamicViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
204
- DynamicViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewService, providedIn: 'root' });
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewService, decorators: [{
206
+ DynamicViewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DynamicViewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
207
+ DynamicViewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DynamicViewService, providedIn: 'root' });
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DynamicViewService, decorators: [{
206
209
  type: Injectable,
207
210
  args: [{ providedIn: 'root' }]
208
211
  }] });
@@ -275,9 +278,9 @@ class DynamicViewDirective {
275
278
  this.viewRef = null;
276
279
  }
277
280
  }
278
- DynamicViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
279
- DynamicViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: DynamicViewDirective, isStandalone: true, selector: "ng-template[odxDynamicView]", inputs: { content: ["odxDynamicView", "content"], injector: ["odxDynamicViewInjector", "injector"], context: ["odxDynamicViewContext", "context"] }, usesOnChanges: true, ngImport: i0 });
280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DynamicViewDirective, decorators: [{
281
+ DynamicViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DynamicViewDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
282
+ DynamicViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DynamicViewDirective, isStandalone: true, selector: "ng-template[odxDynamicView]", inputs: { content: ["odxDynamicView", "content"], injector: ["odxDynamicViewInjector", "injector"], context: ["odxDynamicViewContext", "context"] }, usesOnChanges: true, ngImport: i0 });
283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DynamicViewDirective, decorators: [{
281
284
  type: Directive,
282
285
  args: [{
283
286
  selector: 'ng-template[odxDynamicView]',
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-cdk-dynamic-view.mjs","sources":["../../../../libs/angular/cdk/dynamic-view/src/lib/dynamic-view.component.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/helpers/create-projectable-nodes.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/helpers/is-dynamic-text-content.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/models/dynamic-component-ref.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/models/dynamic-template-ref.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/helpers/is-dynamic-view.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/tokens/dynamic-view-context.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/tokens/dynamic-view-default-host.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/dynamic-view.service.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/dynamic-view.directive.ts","../../../../libs/angular/cdk/dynamic-view/src/odx-angular-cdk-dynamic-view.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { injectElement } from '@odx/angular/utils';\nimport { distinctUntilChanged, isObservable, Subscription } from 'rxjs';\nimport { DynamicTextContent } from './facade';\n\n@Component({\n selector: 'odx-dynamic-view',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n})\nexport class DynamicViewComponent implements OnDestroy {\n private readonly element = injectElement();\n private currentSubscription: Subscription | null = null;\n\n @Input()\n public set content(value: DynamicTextContent) {\n if (isObservable(value)) {\n this.ngOnDestroy();\n this.currentSubscription = value.pipe(distinctUntilChanged()).subscribe((innerValue) => {\n this.setContent(innerValue);\n });\n } else {\n this.setContent(value);\n }\n }\n\n public ngOnDestroy(): void {\n this.currentSubscription?.unsubscribe();\n this.currentSubscription = null;\n }\n\n private setContent(value: string): void {\n this.element.nativeElement.innerHTML = value;\n }\n}\n","import { reflectComponentType, Type } from '@angular/core';\n\nexport function createProjectableNodes(component: Type<unknown>, nodes: Node[]): Node[][] {\n const componentType = reflectComponentType(component);\n if (componentType && componentType.ngContentSelectors.length > 0) {\n return componentType.ngContentSelectors.map((selector) => (selector === '*' ? nodes : []));\n }\n return [];\n}\n","import { isString } from '@odx/angular/utils';\nimport { isObservable } from 'rxjs';\nimport { DynamicTextContent } from '../facade';\n\nexport function isDynamicTextContent(value: unknown): value is DynamicTextContent {\n return isString(value) || isObservable(value);\n}\n","import { ApplicationRef, ComponentRef, createComponent, EnvironmentInjector, Type, ViewRef } from '@angular/core';\nimport { isViewContainer } from '@odx/angular/utils';\nimport { GetDynamicViewContext } from '../facade';\nimport { DynamicViewRef } from '../facade/dynamic-view-ref';\nimport { DynamicViewOptions } from './dynamic-view-options';\n\nexport interface DynamicComponentOptions<T extends Type<unknown>> extends DynamicViewOptions<T> {\n component: T;\n}\n\nexport class DynamicComponentRef<T extends Type<unknown>, C extends GetDynamicViewContext<T>> implements DynamicViewRef<T> {\n private readonly application = this.options.injector.get(ApplicationRef);\n private componentRef: ComponentRef<T> | null = null;\n\n constructor(private readonly options: DynamicComponentOptions<T>) {\n const { component, context, injector, projectableNodes, host } = options;\n\n this.componentRef = createComponent(component as Type<T>, {\n environmentInjector: injector.get(EnvironmentInjector),\n elementInjector: injector,\n projectableNodes,\n });\n\n if (isViewContainer(host)) {\n host.insert(this.componentRef.hostView);\n } else {\n this.application.attachView(this.componentRef.hostView);\n if (host) {\n host.appendChild(this.getElement());\n }\n }\n if (context) {\n this.update(context as C);\n }\n }\n\n public detectChanges(): void {\n this.componentRef?.changeDetectorRef.detectChanges();\n }\n\n public destroy(): void {\n if (this.componentRef?.hostView.destroyed) {\n this.componentRef = null;\n return;\n }\n if (this.componentRef && !isViewContainer(this.options.host)) {\n this.application.detachView(this.componentRef.hostView);\n }\n this.componentRef?.destroy();\n this.componentRef = null;\n }\n\n public getElement(): Element {\n return this.componentRef?.location.nativeElement ?? null;\n }\n\n public update(context: C): void {\n for (const key in context) {\n this.componentRef?.setInput(key, context[key]);\n }\n }\n\n public getContext(): GetDynamicViewContext<T> {\n return this.options.context ?? {};\n }\n\n public getView(): ViewRef | null {\n return this.componentRef?.hostView ?? null;\n }\n}\n","import { ApplicationRef, EmbeddedViewRef, TemplateRef as NgTemplateRef, ViewRef } from '@angular/core';\nimport { isViewContainer } from '@odx/angular/utils';\nimport { DynamicViewRef, GetDynamicViewContext } from '../facade';\nimport { DynamicViewOptions } from './dynamic-view-options';\n\nexport interface DynamicTemplateOptions<T extends NgTemplateRef<unknown>> extends DynamicViewOptions<T> {\n template: T;\n}\n\nexport class DynamicTemplateRef<T extends NgTemplateRef<unknown> = NgTemplateRef<unknown>> implements DynamicViewRef<T> {\n private readonly application = this.options.injector.get(ApplicationRef);\n private embeddedViewRef: EmbeddedViewRef<unknown> | null = null;\n\n constructor(private readonly options: DynamicTemplateOptions<T>) {\n this.create(options);\n }\n\n public detectChanges(): void {\n this.embeddedViewRef?.detectChanges();\n }\n\n public destroy(): void {\n if (this.embeddedViewRef?.destroyed) {\n this.embeddedViewRef = null;\n return;\n }\n if (!isViewContainer(this.options.host) && this.embeddedViewRef) {\n this.application.detachView(this.embeddedViewRef);\n }\n this.embeddedViewRef?.destroy();\n this.embeddedViewRef = null;\n }\n\n public getElement(): Element {\n return this.embeddedViewRef?.rootNodes?.[0] ?? null;\n }\n\n public update(context: GetDynamicViewContext<T>): void {\n if (this.embeddedViewRef) {\n this.embeddedViewRef.context = context;\n this.detectChanges();\n }\n }\n\n public getContext(): GetDynamicViewContext<T> {\n return this.options.context ?? {};\n }\n\n public getView(): ViewRef | null {\n return this.embeddedViewRef;\n }\n\n private create({ context, template, host }: DynamicTemplateOptions<T>) {\n if (isViewContainer(host)) {\n this.embeddedViewRef = host.createEmbeddedView(template, context, { injector: this.options.injector });\n } else {\n this.embeddedViewRef = template.createEmbeddedView(context ?? {}, this.options.injector);\n this.application.attachView(this.embeddedViewRef);\n }\n }\n}\n","import { DynamicContent, DynamicViewRef } from '../facade';\nimport { DynamicComponentRef, DynamicTemplateRef } from '../models';\n\nexport function isDynamicView(value: unknown): value is DynamicViewRef<DynamicContent> {\n return value instanceof DynamicComponentRef || value instanceof DynamicTemplateRef;\n}\n","import { InjectionToken, TemplateRef } from '@angular/core';\n\nexport interface DynamicViewContextWithImplicitTemplate<T = unknown> {\n $implicit: TemplateRef<T>;\n}\n\nexport const DYNAMIC_VIEW_CONTEXT = new InjectionToken('@odx/angular/cdk/dynamic-view::DynamicViewContext');\n","import { DOCUMENT } from '@angular/common';\nimport { inject, InjectionToken } from '@angular/core';\n\nexport const ODX_DYNAMIC_VIEW_DEFAULT_HOST = new InjectionToken<Element>('@odx/angular/cdk/dynamic-view::DynamicViewDefaultHost', {\n providedIn: 'root',\n factory: () => inject(DOCUMENT).body,\n});\n\nexport function getDynamicViewDefaultHost(): Element {\n return inject(ODX_DYNAMIC_VIEW_DEFAULT_HOST);\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { getInjector, isComponent, isTemplateRef } from '@odx/angular/utils';\nimport { DynamicViewComponent } from './dynamic-view.component';\nimport { DynamicContent, DynamicViewRef } from './facade';\nimport { isDynamicTextContent } from './helpers';\nimport { DynamicComponentRef, DynamicViewOptions } from './models';\nimport { DynamicTemplateRef } from './models/dynamic-template-ref';\nimport { DYNAMIC_VIEW_CONTEXT, getDynamicViewDefaultHost } from './tokens';\n\n@Injectable({ providedIn: 'root' })\nexport class DynamicViewService {\n private readonly injector = getInjector();\n private readonly defaultHost = getDynamicViewDefaultHost();\n\n public createView<T extends DynamicContent>(content: T, options: Partial<DynamicViewOptions<T>> = {}): DynamicViewRef<T> {\n const viewOptions: DynamicViewOptions<T> = {\n ...options,\n host: options.host ?? this.defaultHost,\n injector: Injector.create({\n providers: [{ provide: DYNAMIC_VIEW_CONTEXT, useValue: options.context }, options.providers ?? []],\n parent: options.injector ?? this.injector,\n }),\n };\n if (isTemplateRef(content)) {\n return new DynamicTemplateRef({ ...viewOptions, template: content });\n }\n if (isComponent(content)) {\n return new DynamicComponentRef({ ...viewOptions, context: options.context, component: content });\n }\n if (isDynamicTextContent(content)) {\n return new DynamicComponentRef({\n ...viewOptions,\n component: DynamicViewComponent,\n context: { content },\n }) as never;\n }\n throw new Error('Content type is not supported');\n }\n}\n","import { Directive, EmbeddedViewRef, inject, Injector, Input, OnChanges, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { hasChanged, isComponent, NgChanges } from '@odx/angular/utils';\nimport { DynamicViewService } from './dynamic-view.service';\nimport { DynamicContent, DynamicViewRef, GetDynamicViewContext } from './facade';\nimport { createProjectableNodes, isDynamicTextContent, isDynamicView } from './helpers';\n\n@Directive({\n selector: 'ng-template[odxDynamicView]',\n standalone: true,\n})\nexport class DynamicViewDirective<T extends DynamicContent<unknown> = DynamicContent<unknown>> implements OnDestroy, OnInit, OnChanges {\n private readonly dynamicViewService = inject(DynamicViewService);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly template = inject(TemplateRef);\n private viewRef: DynamicViewRef<T> | null = null;\n private contentViewRef: DynamicViewRef<TemplateRef<unknown>> | null = null;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxDynamicView')\n public content?: T | DynamicViewRef<T> | null = null;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxDynamicViewInjector')\n public injector?: Injector;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxDynamicViewContext')\n public context?: GetDynamicViewContext<T>;\n\n public ngOnInit(): void {\n this.render();\n }\n\n public ngOnChanges(changes: NgChanges<DynamicViewDirective<DynamicContent>>): void {\n if (hasChanged(changes, 'injector')) {\n this.render();\n }\n if (hasChanged(changes, 'content')) {\n const hasChangedTextContent = isDynamicTextContent(changes.content?.previousValue) && isDynamicTextContent(changes.content?.currentValue);\n this.render(!hasChangedTextContent);\n }\n if (hasChanged(changes, 'context')) {\n this.viewRef?.update(changes.context?.currentValue ?? {});\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy();\n }\n\n public getView(): DynamicViewRef<T> | null {\n return this.viewRef;\n }\n\n private render(reRender = true) {\n if (!this.content) return;\n if (!reRender && this.viewRef) {\n this.viewRef?.update({ content: this.content } as object);\n return;\n }\n this.viewRef?.destroy();\n if (isDynamicView(this.content)) {\n this.viewRef = this.content;\n const hostView = this.viewRef.getView();\n if (hostView) {\n this.viewContainer.insert(hostView);\n }\n } else {\n let projectableNodes: Node[][] = [];\n if (isComponent(this.content)) {\n this.contentViewRef = this.dynamicViewService.createView(this.template, { injector: this.injector });\n const rootNodes = (this.contentViewRef.getView() as EmbeddedViewRef<unknown>).rootNodes;\n projectableNodes = createProjectableNodes(this.content, rootNodes);\n }\n this.viewRef = this.dynamicViewService.createView(this.content, {\n context: this.context ?? undefined,\n injector: this.injector ?? this.viewContainer.injector,\n projectableNodes,\n host: this.viewContainer,\n });\n }\n }\n\n private destroy() {\n this.contentViewRef?.destroy();\n this.viewRef?.destroy();\n this.contentViewRef = null;\n this.viewRef = null;\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-dynamic-view.mjs","sources":["../../../../libs/angular/cdk/dynamic-view/src/lib/dynamic-view.component.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/helpers/create-projectable-nodes.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/helpers/is-dynamic-text-content.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/models/dynamic-component-ref.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/models/dynamic-template-ref.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/helpers/is-dynamic-view.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/tokens/dynamic-view-context.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/tokens/dynamic-view-default-host.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/dynamic-view.service.ts","../../../../libs/angular/cdk/dynamic-view/src/lib/dynamic-view.directive.ts","../../../../libs/angular/cdk/dynamic-view/src/odx-angular-cdk-dynamic-view.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { injectElement } from '@odx/angular/utils';\nimport { distinctUntilChanged, isObservable, Subscription } from 'rxjs';\nimport { DynamicTextContent } from './facade';\n\n@Component({\n selector: 'odx-dynamic-view',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n})\nexport class DynamicViewComponent implements OnDestroy {\n private readonly element = injectElement();\n private currentSubscription: Subscription | null = null;\n\n @Input()\n public set content(value: DynamicTextContent) {\n if (isObservable(value)) {\n this.ngOnDestroy();\n this.currentSubscription = value.pipe(distinctUntilChanged()).subscribe((innerValue) => {\n this.setContent(innerValue);\n });\n } else {\n this.setContent(value);\n }\n }\n\n public ngOnDestroy(): void {\n this.currentSubscription?.unsubscribe();\n this.currentSubscription = null;\n }\n\n private setContent(value: string): void {\n this.element.nativeElement.innerHTML = value;\n }\n}\n","import { reflectComponentType, Type } from '@angular/core';\n\nexport function createProjectableNodes(component: Type<unknown>, nodes: Node[]): Node[][] {\n const componentType = reflectComponentType(component);\n if (componentType && componentType.ngContentSelectors.length > 0) {\n return componentType.ngContentSelectors.map((selector) => (selector === '*' ? nodes : []));\n }\n return [];\n}\n","import { isString } from '@odx/angular/utils';\nimport { isObservable } from 'rxjs';\nimport { DynamicTextContent } from '../facade';\n\nexport function isDynamicTextContent(value: unknown): value is DynamicTextContent {\n return isString(value) || isObservable(value);\n}\n","import { ApplicationRef, ComponentRef, createComponent, EnvironmentInjector, Type, ViewRef } from '@angular/core';\nimport { isViewContainer } from '@odx/angular/utils';\nimport { deepmerge } from 'deepmerge-ts';\nimport { GetDynamicViewContext } from '../facade';\nimport { DynamicViewRef } from '../facade/dynamic-view-ref';\nimport { DynamicViewOptions } from './dynamic-view-options';\n\nexport interface DynamicComponentOptions<T extends Type<unknown>> extends DynamicViewOptions<T> {\n component: T;\n}\n\nexport class DynamicComponentRef<T extends Type<unknown>, C extends GetDynamicViewContext<T>> implements DynamicViewRef<T> {\n private readonly application = this.options.injector.get(ApplicationRef);\n private componentRef: ComponentRef<T> | null = null;\n\n constructor(private readonly options: DynamicComponentOptions<T>) {\n const { component, context, injector, projectableNodes, host } = options;\n\n this.componentRef = createComponent(component as Type<T>, {\n environmentInjector: injector.get(EnvironmentInjector),\n elementInjector: injector,\n projectableNodes,\n });\n\n if (isViewContainer(host)) {\n host.insert(this.componentRef.hostView);\n } else {\n this.application.attachView(this.componentRef.hostView);\n if (host) {\n host.appendChild(this.getElement());\n }\n }\n if (context) {\n this.update(context as C);\n }\n }\n\n public detectChanges(): void {\n this.componentRef?.changeDetectorRef.detectChanges();\n }\n\n public destroy(): void {\n if (this.componentRef?.hostView.destroyed) {\n this.componentRef = null;\n return;\n }\n if (this.componentRef && !isViewContainer(this.options.host)) {\n this.application.detachView(this.componentRef.hostView);\n }\n this.componentRef?.destroy();\n this.componentRef = null;\n }\n\n public getElement(): Element {\n return this.componentRef?.location.nativeElement ?? null;\n }\n\n public update(context: C): void {\n this.options.context = deepmerge(this.options.context, context) as C;\n for (const key in this.options.context) {\n this.componentRef?.setInput(key, this.options.context[key]);\n }\n }\n\n public getContext(): GetDynamicViewContext<T> {\n return this.options.context ?? {};\n }\n\n public getView(): ViewRef | null {\n return this.componentRef?.hostView ?? null;\n }\n}\n","import { ApplicationRef, EmbeddedViewRef, TemplateRef as NgTemplateRef, ViewRef } from '@angular/core';\nimport { isViewContainer } from '@odx/angular/utils';\nimport { deepmerge } from 'deepmerge-ts';\nimport { DynamicViewRef, GetDynamicViewContext } from '../facade';\nimport { DynamicViewOptions } from './dynamic-view-options';\n\nexport interface DynamicTemplateOptions<T extends NgTemplateRef<unknown>> extends DynamicViewOptions<T> {\n template: T;\n}\n\nexport class DynamicTemplateRef<T extends NgTemplateRef<unknown> = NgTemplateRef<unknown>> implements DynamicViewRef<T> {\n private readonly application = this.options.injector.get(ApplicationRef);\n private embeddedViewRef: EmbeddedViewRef<unknown> | null = null;\n\n constructor(private readonly options: DynamicTemplateOptions<T>) {\n this.create(options);\n }\n\n public detectChanges(): void {\n this.embeddedViewRef?.detectChanges();\n }\n\n public destroy(): void {\n if (this.embeddedViewRef?.destroyed) {\n this.embeddedViewRef = null;\n return;\n }\n if (!isViewContainer(this.options.host) && this.embeddedViewRef) {\n this.application.detachView(this.embeddedViewRef);\n }\n this.embeddedViewRef?.destroy();\n this.embeddedViewRef = null;\n }\n\n public getElement(): Element {\n return this.embeddedViewRef?.rootNodes?.[0] ?? null;\n }\n\n public update(context: GetDynamicViewContext<T>): void {\n this.options.context = deepmerge(this.options.context, context) as GetDynamicViewContext<T>;\n if (this.embeddedViewRef) {\n this.embeddedViewRef.context = this.options.context;\n this.detectChanges();\n }\n }\n\n public getContext(): GetDynamicViewContext<T> {\n return this.options.context ?? {};\n }\n\n public getView(): ViewRef | null {\n return this.embeddedViewRef;\n }\n\n private create({ context, template, host }: DynamicTemplateOptions<T>) {\n if (isViewContainer(host)) {\n this.embeddedViewRef = host.createEmbeddedView(template, context, { injector: this.options.injector });\n } else {\n this.embeddedViewRef = template.createEmbeddedView(context ?? {}, this.options.injector);\n this.application.attachView(this.embeddedViewRef);\n }\n }\n}\n","import { DynamicContent, DynamicViewRef } from '../facade';\nimport { DynamicComponentRef, DynamicTemplateRef } from '../models';\n\nexport function isDynamicView(value: unknown): value is DynamicViewRef<DynamicContent> {\n return value instanceof DynamicComponentRef || value instanceof DynamicTemplateRef;\n}\n","import { InjectionToken, TemplateRef } from '@angular/core';\n\nexport interface DynamicViewContextWithImplicitTemplate<T = unknown> {\n $implicit: TemplateRef<T>;\n}\n\nexport const DYNAMIC_VIEW_CONTEXT = new InjectionToken('@odx/angular/cdk/dynamic-view::DynamicViewContext');\n","import { DOCUMENT } from '@angular/common';\nimport { inject, InjectionToken } from '@angular/core';\n\nexport const ODX_DYNAMIC_VIEW_DEFAULT_HOST = new InjectionToken<Element>('@odx/angular/cdk/dynamic-view::DynamicViewDefaultHost', {\n providedIn: 'root',\n factory: () => inject(DOCUMENT).body,\n});\n\nexport function getDynamicViewDefaultHost(): Element {\n return inject(ODX_DYNAMIC_VIEW_DEFAULT_HOST);\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { getInjector, isComponent, isTemplateRef } from '@odx/angular/utils';\nimport { DynamicViewComponent } from './dynamic-view.component';\nimport { DynamicContent, DynamicViewRef } from './facade';\nimport { isDynamicTextContent } from './helpers';\nimport { DynamicComponentRef, DynamicViewOptions } from './models';\nimport { DynamicTemplateRef } from './models/dynamic-template-ref';\nimport { DYNAMIC_VIEW_CONTEXT, getDynamicViewDefaultHost } from './tokens';\n\n@Injectable({ providedIn: 'root' })\nexport class DynamicViewService {\n private readonly injector = getInjector();\n private readonly defaultHost = getDynamicViewDefaultHost();\n\n public createView<T extends DynamicContent>(content: T, options: Partial<DynamicViewOptions<T>> = {}): DynamicViewRef<T> {\n const viewOptions: DynamicViewOptions<T> = {\n ...options,\n host: options.host ?? this.defaultHost,\n injector: Injector.create({\n providers: [{ provide: DYNAMIC_VIEW_CONTEXT, useValue: options.context }, options.providers ?? []],\n parent: options.injector ?? this.injector,\n }),\n };\n if (isTemplateRef(content)) {\n return new DynamicTemplateRef({ ...viewOptions, template: content });\n }\n if (isComponent(content)) {\n return new DynamicComponentRef({ ...viewOptions, context: options.context, component: content });\n }\n if (isDynamicTextContent(content)) {\n return new DynamicComponentRef({\n ...viewOptions,\n component: DynamicViewComponent,\n context: { content },\n }) as never;\n }\n throw new Error('Content type is not supported');\n }\n}\n","import { Directive, EmbeddedViewRef, inject, Injector, Input, OnChanges, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { hasChanged, isComponent, NgChanges } from '@odx/angular/utils';\nimport { DynamicViewService } from './dynamic-view.service';\nimport { DynamicContent, DynamicViewRef, GetDynamicViewContext } from './facade';\nimport { createProjectableNodes, isDynamicTextContent, isDynamicView } from './helpers';\n\n@Directive({\n selector: 'ng-template[odxDynamicView]',\n standalone: true,\n})\nexport class DynamicViewDirective<T extends DynamicContent<unknown> = DynamicContent<unknown>> implements OnDestroy, OnInit, OnChanges {\n private readonly dynamicViewService = inject(DynamicViewService);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly template = inject(TemplateRef);\n private viewRef: DynamicViewRef<T> | null = null;\n private contentViewRef: DynamicViewRef<TemplateRef<unknown>> | null = null;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxDynamicView')\n public content?: T | DynamicViewRef<T> | null = null;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxDynamicViewInjector')\n public injector?: Injector;\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxDynamicViewContext')\n public context?: GetDynamicViewContext<T>;\n\n public ngOnInit(): void {\n this.render();\n }\n\n public ngOnChanges(changes: NgChanges<DynamicViewDirective<DynamicContent>>): void {\n if (hasChanged(changes, 'injector')) {\n this.render();\n }\n if (hasChanged(changes, 'content')) {\n const hasChangedTextContent = isDynamicTextContent(changes.content?.previousValue) && isDynamicTextContent(changes.content?.currentValue);\n this.render(!hasChangedTextContent);\n }\n if (hasChanged(changes, 'context')) {\n this.viewRef?.update(changes.context?.currentValue ?? {});\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy();\n }\n\n public getView(): DynamicViewRef<T> | null {\n return this.viewRef;\n }\n\n private render(reRender = true) {\n if (!this.content) return;\n if (!reRender && this.viewRef) {\n this.viewRef?.update({ content: this.content } as object);\n return;\n }\n this.viewRef?.destroy();\n if (isDynamicView(this.content)) {\n this.viewRef = this.content;\n const hostView = this.viewRef.getView();\n if (hostView) {\n this.viewContainer.insert(hostView);\n }\n } else {\n let projectableNodes: Node[][] = [];\n if (isComponent(this.content)) {\n this.contentViewRef = this.dynamicViewService.createView(this.template, { injector: this.injector });\n const rootNodes = (this.contentViewRef.getView() as EmbeddedViewRef<unknown>).rootNodes;\n projectableNodes = createProjectableNodes(this.content, rootNodes);\n }\n this.viewRef = this.dynamicViewService.createView(this.content, {\n context: this.context ?? undefined,\n injector: this.injector ?? this.viewContainer.injector,\n projectableNodes,\n host: this.viewContainer,\n });\n }\n }\n\n private destroy() {\n this.contentViewRef?.destroy();\n this.viewRef?.destroy();\n this.contentViewRef = null;\n this.viewRef = null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAYa,oBAAoB,CAAA;AAPjC,IAAA,WAAA,GAAA;QAQmB,IAAO,CAAA,OAAA,GAAG,aAAa,EAAE,CAAC;QACnC,IAAmB,CAAA,mBAAA,GAAwB,IAAI,CAAC;AAsBzD,KAAA;IApBC,IACW,OAAO,CAAC,KAAyB,EAAA;AAC1C,QAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;YACvB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,KAAI;AACrF,gBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC9B,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;KACjC;AAEO,IAAA,UAAU,CAAC,KAAa,EAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC;KAC9C;;kHAvBU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,4GALrB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAKD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;8BAMY,OAAO,EAAA,CAAA;sBADjB,KAAK;;;ACdQ,SAAA,sBAAsB,CAAC,SAAwB,EAAE,KAAa,EAAA;AAC5E,IAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACtD,IAAI,aAAa,IAAI,aAAa,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;QAChE,OAAO,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAM,QAAQ,KAAK,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5F,KAAA;AACD,IAAA,OAAO,EAAE,CAAC;AACZ;;ACJM,SAAU,oBAAoB,CAAC,KAAc,EAAA;IACjD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AAChD;;MCKa,mBAAmB,CAAA;AAI9B,IAAA,WAAA,CAA6B,OAAmC,EAAA;QAAnC,IAAO,CAAA,OAAA,GAAP,OAAO,CAA4B;QAH/C,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjE,IAAY,CAAA,YAAA,GAA2B,IAAI,CAAC;AAGlD,QAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AAEzE,QAAA,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,SAAoB,EAAE;AACxD,YAAA,mBAAmB,EAAE,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC;AACtD,YAAA,eAAe,EAAE,QAAQ;YACzB,gBAAgB;AACjB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzC,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACxD,YAAA,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,aAAA;AACF,SAAA;AACD,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,MAAM,CAAC,OAAY,CAAC,CAAC;AAC3B,SAAA;KACF;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACtD;IAEM,OAAO,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,SAAS,EAAE;AACzC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO;AACR,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC5D,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzD,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC1B;IAEM,UAAU,GAAA;QACf,OAAO,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC;KAC1D;AAEM,IAAA,MAAM,CAAC,OAAU,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAM,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtC,YAAA,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,SAAA;KACF;IAEM,UAAU,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;KACnC;IAEM,OAAO,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,IAAI,CAAC;KAC5C;AACF;;MC7DY,kBAAkB,CAAA;AAI7B,IAAA,WAAA,CAA6B,OAAkC,EAAA;QAAlC,IAAO,CAAA,OAAA,GAAP,OAAO,CAA2B;QAH9C,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjE,IAAe,CAAA,eAAA,GAAoC,IAAI,CAAC;AAG9D,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACtB;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC;KACvC;IAEM,OAAO,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE;AACnC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE;YAC/D,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACnD,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC7B;IAEM,UAAU,GAAA;QACf,OAAO,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;KACrD;AAEM,IAAA,MAAM,CAAC,OAAiC,EAAA;AAC7C,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAA6B,CAAC;QAC5F,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACpD,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;KACF;IAEM,UAAU,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;KACnC;IAEM,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;AAEO,IAAA,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAA6B,EAAA;AACnE,QAAA,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxG,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACnD,SAAA;KACF;AACF;;AC3DK,SAAU,aAAa,CAAC,KAAc,EAAA;AAC1C,IAAA,OAAO,KAAK,YAAY,mBAAmB,IAAI,KAAK,YAAY,kBAAkB,CAAC;AACrF;;MCCa,oBAAoB,GAAG,IAAI,cAAc,CAAC,mDAAmD;;MCH7F,6BAA6B,GAAG,IAAI,cAAc,CAAU,uDAAuD,EAAE;AAChI,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI;AACrC,CAAA,EAAE;SAEa,yBAAyB,GAAA;AACvC,IAAA,OAAO,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAC/C;;MCAa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;QAEmB,IAAQ,CAAA,QAAA,GAAG,WAAW,EAAE,CAAC;QACzB,IAAW,CAAA,WAAA,GAAG,yBAAyB,EAAE,CAAC;AA0B5D,KAAA;AAxBQ,IAAA,UAAU,CAA2B,OAAU,EAAE,OAAA,GAA0C,EAAE,EAAA;AAClG,QAAA,MAAM,WAAW,GAA0B;AACzC,YAAA,GAAG,OAAO;AACV,YAAA,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW;AACtC,YAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;AACxB,gBAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;AAClG,gBAAA,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;aAC1C,CAAC;SACH,CAAC;AACF,QAAA,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;AAC1B,YAAA,OAAO,IAAI,kBAAkB,CAAC,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACtE,SAAA;AACD,QAAA,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;AACxB,YAAA,OAAO,IAAI,mBAAmB,CAAC,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AAClG,SAAA;AACD,QAAA,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE;YACjC,OAAO,IAAI,mBAAmB,CAAC;AAC7B,gBAAA,GAAG,WAAW;AACd,gBAAA,SAAS,EAAE,oBAAoB;gBAC/B,OAAO,EAAE,EAAE,OAAO,EAAE;AACrB,aAAA,CAAU,CAAC;AACb,SAAA;AACD,QAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;;gHA3BU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADL,MAAM,EAAA,CAAA,CAAA;4FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCCrB,oBAAoB,CAAA;AAJjC,IAAA,WAAA,GAAA;AAKmB,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACxC,IAAO,CAAA,OAAA,GAA6B,IAAI,CAAC;QACzC,IAAc,CAAA,cAAA,GAAgD,IAAI,CAAC;;QAIpE,IAAO,CAAA,OAAA,GAAkC,IAAI,CAAC;AAsEtD,KAAA;IA5DQ,QAAQ,GAAA;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;AAEM,IAAA,WAAW,CAAC,OAAwD,EAAA;AACzE,QAAA,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;YACnC,IAAI,CAAC,MAAM,EAAE,CAAC;AACf,SAAA;AACD,QAAA,IAAI,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;AAClC,YAAA,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC1I,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;AAC3D,SAAA;KACF;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAEM,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IAEO,MAAM,CAAC,QAAQ,GAAG,IAAI,EAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;AAC1B,QAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAY,CAAC,CAAC;YAC1D,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;AACxB,QAAA,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACxC,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrC,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,gBAAgB,GAAa,EAAE,CAAC;AACpC,YAAA,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrG,MAAM,SAAS,GAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAA+B,CAAC,SAAS,CAAC;gBACxF,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACpE,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE;AAC9D,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;gBAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ;gBACtD,gBAAgB;gBAChB,IAAI,EAAE,IAAI,CAAC,aAAa;AACzB,aAAA,CAAC,CAAC;AACJ,SAAA;KACF;IAEO,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACrB;;kHA9EU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;8BAUQ,OAAO,EAAA,CAAA;sBADb,KAAK;uBAAC,gBAAgB,CAAA;gBAKhB,QAAQ,EAAA,CAAA;sBADd,KAAK;uBAAC,wBAAwB,CAAA;gBAKxB,OAAO,EAAA,CAAA;sBADb,KAAK;uBAAC,uBAAuB,CAAA;;;AC1BhC;;AAEG;;;;"}
@@ -42,9 +42,9 @@ class ExpandableItemDirective extends ExpandableItem {
42
42
  }
43
43
  }
44
44
  ExpandableItemDirective.ID = 0;
45
- ExpandableItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ExpandableItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
46
- ExpandableItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: ExpandableItemDirective, isStandalone: true, selector: "[odxExpandableItem]", inputs: { expanded: "expanded" }, usesInheritance: true, ngImport: i0 });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ExpandableItemDirective, decorators: [{
45
+ ExpandableItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ExpandableItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
46
+ ExpandableItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ExpandableItemDirective, isStandalone: true, selector: "[odxExpandableItem]", inputs: { expanded: "expanded" }, usesInheritance: true, ngImport: i0 });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ExpandableItemDirective, decorators: [{
48
48
  type: Directive,
49
49
  args: [{
50
50
  standalone: true,
@@ -75,13 +75,13 @@ class ExpandableContainerDirective extends ExpandableContainer {
75
75
  this.openItems[item.id] = item;
76
76
  }
77
77
  }
78
- ExpandableContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ExpandableContainerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
79
- ExpandableContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: ExpandableContainerDirective, isStandalone: true, selector: "[odxExpandableContainer]", inputs: { multiple: "multiple" }, usesInheritance: true, ngImport: i0 });
78
+ ExpandableContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ExpandableContainerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
79
+ ExpandableContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ExpandableContainerDirective, isStandalone: true, selector: "[odxExpandableContainer]", inputs: { multiple: "multiple" }, usesInheritance: true, ngImport: i0 });
80
80
  __decorate([
81
81
  Transform(coerceBooleanProperty),
82
82
  __metadata("design:type", Object)
83
83
  ], ExpandableContainerDirective.prototype, "multiple", void 0);
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ExpandableContainerDirective, decorators: [{
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ExpandableContainerDirective, decorators: [{
85
85
  type: Directive,
86
86
  args: [{
87
87
  standalone: true,
@@ -94,10 +94,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
94
94
  const modules = [ExpandableContainerDirective, ExpandableItemDirective];
95
95
  class ExpandableModule {
96
96
  }
97
- ExpandableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ExpandableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
98
- ExpandableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: ExpandableModule, imports: [ExpandableContainerDirective, ExpandableItemDirective], exports: [ExpandableContainerDirective, ExpandableItemDirective] });
99
- ExpandableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ExpandableModule });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ExpandableModule, decorators: [{
97
+ ExpandableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ExpandableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
98
+ ExpandableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: ExpandableModule, imports: [ExpandableContainerDirective, ExpandableItemDirective], exports: [ExpandableContainerDirective, ExpandableItemDirective] });
99
+ ExpandableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ExpandableModule });
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ExpandableModule, decorators: [{
101
101
  type: NgModule,
102
102
  args: [{
103
103
  imports: modules,
@@ -13,8 +13,8 @@ class RadioGroupControlDirective extends CustomFormControl {
13
13
  this.onTouched();
14
14
  }
15
15
  }
16
- RadioGroupControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: RadioGroupControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
- RadioGroupControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: RadioGroupControlDirective, isStandalone: true, selector: "[odxRadioGroupControl]", host: { listeners: { "focusout": "onFocusOut()" } }, providers: [
16
+ RadioGroupControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RadioGroupControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
+ RadioGroupControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: RadioGroupControlDirective, isStandalone: true, selector: "[odxRadioGroupControl]", host: { listeners: { "focusout": "onFocusOut()" } }, providers: [
18
18
  {
19
19
  provide: RADIO_GROUP_CONTROL,
20
20
  useExisting: RadioGroupControlDirective,
@@ -23,7 +23,7 @@ RadioGroupControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0
23
23
  DisabledController.connect(),
24
24
  ReadonlyController.connect(),
25
25
  ], usesInheritance: true, ngImport: i0 });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: RadioGroupControlDirective, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RadioGroupControlDirective, decorators: [{
27
27
  type: Directive,
28
28
  args: [{
29
29
  standalone: true,
@@ -58,9 +58,9 @@ class RadioControlDirective {
58
58
  return this.radioGroupControl.value === this.value;
59
59
  }
60
60
  }
61
- RadioControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: RadioControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
62
- RadioControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: RadioControlDirective, isStandalone: true, selector: "[odxRadioControl]", inputs: { value: "value" }, host: { properties: { "class.is-active": "isActive", "class.is-disabled": "disabledController?.disabled", "class.is-readonly": "readonlyController?.readonly", "class.has-error": "radioGroupControl.hasError" } }, providers: [DisabledController.connect(), ReadonlyController.connect()], ngImport: i0 });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: RadioControlDirective, decorators: [{
61
+ RadioControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RadioControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
62
+ RadioControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: RadioControlDirective, isStandalone: true, selector: "[odxRadioControl]", inputs: { value: "value" }, host: { properties: { "class.is-active": "isActive", "class.is-disabled": "disabledController?.disabled", "class.is-readonly": "readonlyController?.readonly", "class.has-error": "radioGroupControl.hasError" } }, providers: [DisabledController.connect(), ReadonlyController.connect()], ngImport: i0 });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RadioControlDirective, decorators: [{
64
64
  type: Directive,
65
65
  args: [{
66
66
  standalone: true,
@@ -80,10 +80,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
80
80
  const modules = [RadioGroupControlDirective, RadioControlDirective];
81
81
  class RadioGroupControlModule {
82
82
  }
83
- RadioGroupControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: RadioGroupControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
84
- RadioGroupControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: RadioGroupControlModule, imports: [RadioGroupControlDirective, RadioControlDirective], exports: [CoreModule, RadioGroupControlDirective, RadioControlDirective] });
85
- RadioGroupControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: RadioGroupControlModule, imports: [CoreModule] });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: RadioGroupControlModule, decorators: [{
83
+ RadioGroupControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RadioGroupControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
84
+ RadioGroupControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: RadioGroupControlModule, imports: [RadioGroupControlDirective, RadioControlDirective], exports: [CoreModule, RadioGroupControlDirective, RadioControlDirective] });
85
+ RadioGroupControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RadioGroupControlModule, imports: [CoreModule] });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RadioGroupControlModule, decorators: [{
87
87
  type: NgModule,
88
88
  args: [{
89
89
  imports: modules,