@odx/angular 1.0.0-rc.4 → 1.0.0-rc.6

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 (326) hide show
  1. package/animations/index.d.ts +1 -0
  2. package/animations/lib/wait-for-child-animations.d.ts +1 -0
  3. package/cdk/active-indicator/README.md +3 -0
  4. package/cdk/active-indicator/index.d.ts +2 -0
  5. package/cdk/active-indicator/lib/active-indicator.directive.d.ts +24 -0
  6. package/cdk/active-indicator/lib/models/active-indicator-direction.d.ts +5 -0
  7. package/cdk/active-indicator/lib/models/active-indicator-position.d.ts +6 -0
  8. package/cdk/active-indicator/lib/models/index.d.ts +2 -0
  9. package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +2 -3
  10. package/cdk/custom-form-control/lib/custom-form-control.d.ts +7 -14
  11. package/cdk/dynamic-view/lib/dynamic-view.service.d.ts +1 -0
  12. package/cdk/dynamic-view/lib/facade/dynamic-view-ref.d.ts +1 -0
  13. package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +1 -0
  14. package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +1 -0
  15. package/cdk/dynamic-view/lib/models/dynamic-view-options.d.ts +6 -3
  16. package/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.d.ts +3 -0
  17. package/cdk/dynamic-view/lib/tokens/index.d.ts +1 -0
  18. package/components/checkbox/index.d.ts +2 -0
  19. package/components/checkbox/lib/checkbox.module.d.ts +9 -0
  20. package/components/checkbox/lib/checkbox.validator.d.ts +6 -0
  21. package/components/form-field/lib/components/form-group/form-group.component.d.ts +0 -1
  22. package/components/form-field/lib/directives/form-field-control.directive.d.ts +3 -4
  23. package/components/form-field/lib/form-field.config.d.ts +0 -5
  24. package/components/list/README.md +3 -0
  25. package/components/list/index.d.ts +3 -0
  26. package/components/list/lib/components/index.d.ts +1 -0
  27. package/components/list/lib/components/list-item.component.d.ts +14 -0
  28. package/components/list/lib/list.component.d.ts +5 -0
  29. package/components/list/lib/list.module.d.ts +9 -0
  30. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +1 -1
  31. package/components/modal/lib/modal.component.d.ts +2 -2
  32. package/components/modal/lib/modal.service.d.ts +0 -2
  33. package/components/modal/lib/models/index.d.ts +1 -0
  34. package/components/modal/lib/models/modal-options.d.ts +2 -0
  35. package/components/modal/lib/models/modal-variant.d.ts +5 -0
  36. package/components/rail-navigation/README.md +3 -0
  37. package/components/rail-navigation/index.d.ts +3 -0
  38. package/components/rail-navigation/lib/components/rail-navigation-item.component.d.ts +15 -0
  39. package/components/rail-navigation/lib/rail-navigation.component.d.ts +14 -0
  40. package/components/rail-navigation/lib/rail-navigation.module.d.ts +9 -0
  41. package/components/slider/README.md +3 -0
  42. package/components/slider/index.d.ts +1 -0
  43. package/components/slider/lib/slider.directive.d.ts +13 -0
  44. package/components/switch/index.d.ts +2 -0
  45. package/components/switch/lib/switch.module.d.ts +9 -0
  46. package/components/switch/lib/switch.validator.d.ts +6 -0
  47. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +5 -1
  48. package/esm2020/animations/index.mjs +2 -1
  49. package/esm2020/animations/lib/expand.mjs +4 -4
  50. package/esm2020/animations/lib/wait-for-child-animations.mjs +3 -0
  51. package/esm2020/cdk/active-indicator/index.mjs +3 -0
  52. package/esm2020/cdk/active-indicator/lib/active-indicator.directive.mjs +127 -0
  53. package/esm2020/cdk/active-indicator/lib/models/active-indicator-direction.mjs +5 -0
  54. package/esm2020/cdk/active-indicator/lib/models/active-indicator-position.mjs +6 -0
  55. package/esm2020/cdk/active-indicator/lib/models/index.mjs +3 -0
  56. package/esm2020/cdk/active-indicator/odx-angular-cdk-active-indicator.mjs +5 -0
  57. package/esm2020/cdk/checkbox-control/lib/checkbox-control.directive.mjs +11 -13
  58. package/esm2020/cdk/custom-form-control/lib/control.directive.mjs +4 -4
  59. package/esm2020/cdk/custom-form-control/lib/custom-form-control.mjs +20 -47
  60. package/esm2020/cdk/dynamic-view/lib/dynamic-view.component.mjs +4 -4
  61. package/esm2020/cdk/dynamic-view/lib/dynamic-view.directive.mjs +5 -5
  62. package/esm2020/cdk/dynamic-view/lib/dynamic-view.service.mjs +11 -9
  63. package/esm2020/cdk/dynamic-view/lib/facade/dynamic-view-ref.mjs +1 -1
  64. package/esm2020/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +12 -5
  65. package/esm2020/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +9 -5
  66. package/esm2020/cdk/dynamic-view/lib/models/dynamic-view-options.mjs +1 -1
  67. package/esm2020/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.mjs +10 -0
  68. package/esm2020/cdk/dynamic-view/lib/tokens/index.mjs +2 -1
  69. package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +4 -4
  70. package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +4 -4
  71. package/esm2020/cdk/expandable/lib/expandable.module.mjs +5 -5
  72. package/esm2020/cdk/radio-group-control/lib/radio-control.directive.mjs +5 -5
  73. package/esm2020/cdk/radio-group-control/lib/radio-group-control.directive.mjs +4 -4
  74. package/esm2020/cdk/radio-group-control/lib/radio-group-control.module.mjs +5 -5
  75. package/esm2020/components/accordion/lib/accordion.component.mjs +4 -4
  76. package/esm2020/components/accordion/lib/accordion.module.mjs +5 -5
  77. package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +4 -4
  78. package/esm2020/components/accordion/lib/directives/accordion-item-title.mjs +4 -4
  79. package/esm2020/components/action-group/action-group.component.mjs +4 -4
  80. package/esm2020/components/area-header/area-header.component.mjs +5 -5
  81. package/esm2020/components/area-header/area-header.module.mjs +5 -5
  82. package/esm2020/components/area-header/directives/area-header-content.directive.mjs +4 -4
  83. package/esm2020/components/area-header/directives/area-header-subtitle.directive.mjs +4 -4
  84. package/esm2020/components/avatar/lib/avatar.component.mjs +4 -4
  85. package/esm2020/components/badge/lib/badge.component.mjs +6 -6
  86. package/esm2020/components/badge/lib/badge.directive.mjs +7 -7
  87. package/esm2020/components/button/lib/button.component.mjs +5 -5
  88. package/esm2020/components/button-group/lib/button-group.component.mjs +4 -4
  89. package/esm2020/components/checkbox/index.mjs +3 -1
  90. package/esm2020/components/checkbox/lib/checkbox.component.mjs +5 -5
  91. package/esm2020/components/checkbox/lib/checkbox.module.mjs +19 -0
  92. package/esm2020/components/checkbox/lib/checkbox.validator.mjs +28 -0
  93. package/esm2020/components/chip/lib/chip.component.mjs +4 -4
  94. package/esm2020/components/circular-progress/lib/circular-progress.component.mjs +4 -4
  95. package/esm2020/components/content-box/lib/content-box.component.mjs +4 -4
  96. package/esm2020/components/content-box/lib/content-box.module.mjs +5 -5
  97. package/esm2020/components/content-box/lib/directives/content-box-footer-directive.mjs +4 -4
  98. package/esm2020/components/content-box/lib/directives/content-box-header-directive.mjs +4 -4
  99. package/esm2020/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +4 -4
  100. package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +11 -13
  101. package/esm2020/components/form-field/lib/directives/form-field-control.directive.mjs +20 -13
  102. package/esm2020/components/form-field/lib/directives/form-field-error.directive.mjs +4 -4
  103. package/esm2020/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -4
  104. package/esm2020/components/form-field/lib/directives/form-field-label.directive.mjs +4 -4
  105. package/esm2020/components/form-field/lib/directives/form.directive.mjs +4 -4
  106. package/esm2020/components/form-field/lib/form-field.component.mjs +4 -4
  107. package/esm2020/components/form-field/lib/form-field.config.mjs +1 -2
  108. package/esm2020/components/form-field/lib/form-field.module.mjs +5 -5
  109. package/esm2020/components/form-field/lib/form-field.service.mjs +4 -4
  110. package/esm2020/components/form-field/lib/services/form-field-error.service.mjs +4 -4
  111. package/esm2020/components/header/lib/directives/header-avatar.directive.mjs +4 -4
  112. package/esm2020/components/header/lib/directives/header-title.directive.mjs +4 -4
  113. package/esm2020/components/header/lib/header.component.mjs +4 -4
  114. package/esm2020/components/header/lib/header.module.mjs +5 -5
  115. package/esm2020/components/icon/lib/icon.component.mjs +4 -4
  116. package/esm2020/components/link/link.directive.mjs +4 -4
  117. package/esm2020/components/list/index.mjs +4 -0
  118. package/esm2020/components/list/lib/components/index.mjs +2 -0
  119. package/esm2020/components/list/lib/components/list-item.component.mjs +46 -0
  120. package/esm2020/components/list/lib/list.component.mjs +13 -0
  121. package/esm2020/components/list/lib/list.module.mjs +19 -0
  122. package/esm2020/components/list/odx-angular-components-list.mjs +5 -0
  123. package/esm2020/components/loading-spinner/lib/loading-spinner.component.mjs +4 -4
  124. package/esm2020/components/loading-spinner/lib/loading-spinner.directive.mjs +7 -7
  125. package/esm2020/components/loading-spinner/lib/loading-spinner.module.mjs +5 -5
  126. package/esm2020/components/loading-spinner/lib/loading-spinner.service.mjs +4 -4
  127. package/esm2020/components/logo/logo.directive.mjs +4 -4
  128. package/esm2020/components/main-menu/lib/directives/main-menu-button.directive.mjs +4 -4
  129. package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +4 -4
  130. package/esm2020/components/main-menu/lib/main-menu.component.mjs +4 -4
  131. package/esm2020/components/main-menu/lib/main-menu.module.mjs +5 -5
  132. package/esm2020/components/main-menu/lib/main-menu.service.mjs +4 -4
  133. package/esm2020/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -4
  134. package/esm2020/components/modal/lib/components/modal-header/modal-header.component.mjs +4 -4
  135. package/esm2020/components/modal/lib/directives/modal-close.directive.mjs +4 -4
  136. package/esm2020/components/modal/lib/directives/modal-content.directive.mjs +4 -4
  137. package/esm2020/components/modal/lib/directives/modal-dismiss.directive.mjs +4 -4
  138. package/esm2020/components/modal/lib/modal.component.mjs +23 -14
  139. package/esm2020/components/modal/lib/modal.config.mjs +3 -1
  140. package/esm2020/components/modal/lib/modal.directive.mjs +4 -4
  141. package/esm2020/components/modal/lib/modal.module.mjs +5 -5
  142. package/esm2020/components/modal/lib/modal.service.mjs +8 -21
  143. package/esm2020/components/modal/lib/models/index.mjs +2 -1
  144. package/esm2020/components/modal/lib/models/modal-options.mjs +1 -1
  145. package/esm2020/components/modal/lib/models/modal-variant.mjs +5 -0
  146. package/esm2020/components/modal/lib/services/open-modal-manager.service.mjs +4 -4
  147. package/esm2020/components/progress/lib/progress.component.mjs +4 -4
  148. package/esm2020/components/radio-group/lib/components/radio-button/radio-button.component.mjs +5 -5
  149. package/esm2020/components/radio-group/lib/radio-group.component.mjs +4 -4
  150. package/esm2020/components/radio-group/lib/radio-group.module.mjs +5 -5
  151. package/esm2020/components/rail-navigation/index.mjs +4 -0
  152. package/esm2020/components/rail-navigation/lib/components/rail-navigation-item.component.mjs +43 -0
  153. package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +47 -0
  154. package/esm2020/components/rail-navigation/lib/rail-navigation.module.mjs +19 -0
  155. package/esm2020/components/rail-navigation/odx-angular-components-rail-navigation.mjs +5 -0
  156. package/esm2020/components/slider/index.mjs +2 -0
  157. package/esm2020/components/slider/lib/slider.directive.mjs +45 -0
  158. package/esm2020/components/slider/odx-angular-components-slider.mjs +5 -0
  159. package/esm2020/components/switch/index.mjs +3 -1
  160. package/esm2020/components/switch/lib/switch.component.mjs +5 -5
  161. package/esm2020/components/switch/lib/switch.module.mjs +19 -0
  162. package/esm2020/components/switch/lib/switch.validator.mjs +28 -0
  163. package/esm2020/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +5 -5
  164. package/esm2020/components/toggle-button-group/lib/toggle-button-group.component.mjs +20 -11
  165. package/esm2020/components/toggle-button-group/lib/toggle-button-group.module.mjs +5 -5
  166. package/esm2020/lib/controllers/controller.mjs +10 -9
  167. package/esm2020/lib/controllers/disabled.controller.mjs +7 -6
  168. package/esm2020/lib/controllers/readonly.controller.mjs +7 -6
  169. package/esm2020/lib/core.module.mjs +5 -5
  170. package/esm2020/lib/directives/click-outside.directive.mjs +4 -4
  171. package/esm2020/lib/services/window-ref.mjs +4 -4
  172. package/esm2020/rxjs/index.mjs +2 -2
  173. package/esm2020/rxjs/lib/from-element-resize.mjs +14 -0
  174. package/esm2020/utils/lib/helpers/angular.mjs +5 -2
  175. package/esm2020/utils/lib/helpers/dom.mjs +24 -1
  176. package/fesm2015/odx-angular-animations.mjs +7 -5
  177. package/fesm2015/odx-angular-animations.mjs.map +1 -1
  178. package/fesm2015/odx-angular-cdk-active-indicator.mjs +142 -0
  179. package/fesm2015/odx-angular-cdk-active-indicator.mjs.map +1 -0
  180. package/fesm2015/odx-angular-cdk-checkbox-control.mjs +10 -12
  181. package/fesm2015/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  182. package/fesm2015/odx-angular-cdk-custom-form-control.mjs +24 -51
  183. package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  184. package/fesm2015/odx-angular-cdk-dynamic-view.mjs +46 -25
  185. package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  186. package/fesm2015/odx-angular-cdk-expandable.mjs +10 -10
  187. package/fesm2015/odx-angular-cdk-expandable.mjs.map +1 -1
  188. package/fesm2015/odx-angular-cdk-radio-group-control.mjs +11 -11
  189. package/fesm2015/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  190. package/fesm2015/odx-angular-components-accordion.mjs +13 -13
  191. package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
  192. package/fesm2015/odx-angular-components-action-group.mjs +3 -3
  193. package/fesm2015/odx-angular-components-action-group.mjs.map +1 -1
  194. package/fesm2015/odx-angular-components-area-header.mjs +14 -14
  195. package/fesm2015/odx-angular-components-area-header.mjs.map +1 -1
  196. package/fesm2015/odx-angular-components-avatar.mjs +3 -3
  197. package/fesm2015/odx-angular-components-avatar.mjs.map +1 -1
  198. package/fesm2015/odx-angular-components-badge.mjs +10 -10
  199. package/fesm2015/odx-angular-components-badge.mjs.map +1 -1
  200. package/fesm2015/odx-angular-components-button-group.mjs +3 -3
  201. package/fesm2015/odx-angular-components-button-group.mjs.map +1 -1
  202. package/fesm2015/odx-angular-components-button.mjs +4 -5
  203. package/fesm2015/odx-angular-components-button.mjs.map +1 -1
  204. package/fesm2015/odx-angular-components-checkbox.mjs +47 -7
  205. package/fesm2015/odx-angular-components-checkbox.mjs.map +1 -1
  206. package/fesm2015/odx-angular-components-chip.mjs +3 -3
  207. package/fesm2015/odx-angular-components-chip.mjs.map +1 -1
  208. package/fesm2015/odx-angular-components-circular-progress.mjs +3 -3
  209. package/fesm2015/odx-angular-components-circular-progress.mjs.map +1 -1
  210. package/fesm2015/odx-angular-components-content-box.mjs +13 -13
  211. package/fesm2015/odx-angular-components-content-box.mjs.map +1 -1
  212. package/fesm2015/odx-angular-components-form-field.mjs +52 -51
  213. package/fesm2015/odx-angular-components-form-field.mjs.map +1 -1
  214. package/fesm2015/odx-angular-components-header.mjs +13 -13
  215. package/fesm2015/odx-angular-components-header.mjs.map +1 -1
  216. package/fesm2015/odx-angular-components-icon.mjs +3 -3
  217. package/fesm2015/odx-angular-components-icon.mjs.map +1 -1
  218. package/fesm2015/odx-angular-components-link.mjs +3 -3
  219. package/fesm2015/odx-angular-components-link.mjs.map +1 -1
  220. package/fesm2015/odx-angular-components-list.mjs +79 -0
  221. package/fesm2015/odx-angular-components-list.mjs.map +1 -0
  222. package/fesm2015/odx-angular-components-loading-spinner.mjs +16 -16
  223. package/fesm2015/odx-angular-components-loading-spinner.mjs.map +1 -1
  224. package/fesm2015/odx-angular-components-logo.mjs +3 -3
  225. package/fesm2015/odx-angular-components-logo.mjs.map +1 -1
  226. package/fesm2015/odx-angular-components-main-menu.mjs +16 -16
  227. package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
  228. package/fesm2015/odx-angular-components-modal.mjs +61 -58
  229. package/fesm2015/odx-angular-components-modal.mjs.map +1 -1
  230. package/fesm2015/odx-angular-components-progress.mjs +3 -3
  231. package/fesm2015/odx-angular-components-progress.mjs.map +1 -1
  232. package/fesm2015/odx-angular-components-radio-group.mjs +11 -11
  233. package/fesm2015/odx-angular-components-radio-group.mjs.map +1 -1
  234. package/fesm2015/odx-angular-components-rail-navigation.mjs +103 -0
  235. package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -0
  236. package/fesm2015/odx-angular-components-slider.mjs +51 -0
  237. package/fesm2015/odx-angular-components-slider.mjs.map +1 -0
  238. package/fesm2015/odx-angular-components-switch.mjs +47 -7
  239. package/fesm2015/odx-angular-components-switch.mjs.map +1 -1
  240. package/fesm2015/odx-angular-components-toggle-button-group.mjs +26 -18
  241. package/fesm2015/odx-angular-components-toggle-button-group.mjs.map +1 -1
  242. package/fesm2015/odx-angular-rxjs.mjs +15 -6
  243. package/fesm2015/odx-angular-rxjs.mjs.map +1 -1
  244. package/fesm2015/odx-angular-utils.mjs +28 -2
  245. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  246. package/fesm2015/odx-angular.mjs +32 -28
  247. package/fesm2015/odx-angular.mjs.map +1 -1
  248. package/fesm2020/odx-angular-animations.mjs +7 -5
  249. package/fesm2020/odx-angular-animations.mjs.map +1 -1
  250. package/fesm2020/odx-angular-cdk-active-indicator.mjs +142 -0
  251. package/fesm2020/odx-angular-cdk-active-indicator.mjs.map +1 -0
  252. package/fesm2020/odx-angular-cdk-checkbox-control.mjs +10 -12
  253. package/fesm2020/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  254. package/fesm2020/odx-angular-cdk-custom-form-control.mjs +22 -49
  255. package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  256. package/fesm2020/odx-angular-cdk-dynamic-view.mjs +42 -22
  257. package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  258. package/fesm2020/odx-angular-cdk-expandable.mjs +10 -10
  259. package/fesm2020/odx-angular-cdk-expandable.mjs.map +1 -1
  260. package/fesm2020/odx-angular-cdk-radio-group-control.mjs +11 -11
  261. package/fesm2020/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  262. package/fesm2020/odx-angular-components-accordion.mjs +13 -13
  263. package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
  264. package/fesm2020/odx-angular-components-action-group.mjs +3 -3
  265. package/fesm2020/odx-angular-components-action-group.mjs.map +1 -1
  266. package/fesm2020/odx-angular-components-area-header.mjs +14 -14
  267. package/fesm2020/odx-angular-components-area-header.mjs.map +1 -1
  268. package/fesm2020/odx-angular-components-avatar.mjs +3 -3
  269. package/fesm2020/odx-angular-components-avatar.mjs.map +1 -1
  270. package/fesm2020/odx-angular-components-badge.mjs +10 -10
  271. package/fesm2020/odx-angular-components-badge.mjs.map +1 -1
  272. package/fesm2020/odx-angular-components-button-group.mjs +3 -3
  273. package/fesm2020/odx-angular-components-button-group.mjs.map +1 -1
  274. package/fesm2020/odx-angular-components-button.mjs +4 -4
  275. package/fesm2020/odx-angular-components-button.mjs.map +1 -1
  276. package/fesm2020/odx-angular-components-checkbox.mjs +47 -7
  277. package/fesm2020/odx-angular-components-checkbox.mjs.map +1 -1
  278. package/fesm2020/odx-angular-components-chip.mjs +3 -3
  279. package/fesm2020/odx-angular-components-chip.mjs.map +1 -1
  280. package/fesm2020/odx-angular-components-circular-progress.mjs +3 -3
  281. package/fesm2020/odx-angular-components-circular-progress.mjs.map +1 -1
  282. package/fesm2020/odx-angular-components-content-box.mjs +13 -13
  283. package/fesm2020/odx-angular-components-content-box.mjs.map +1 -1
  284. package/fesm2020/odx-angular-components-form-field.mjs +52 -51
  285. package/fesm2020/odx-angular-components-form-field.mjs.map +1 -1
  286. package/fesm2020/odx-angular-components-header.mjs +13 -13
  287. package/fesm2020/odx-angular-components-header.mjs.map +1 -1
  288. package/fesm2020/odx-angular-components-icon.mjs +3 -3
  289. package/fesm2020/odx-angular-components-icon.mjs.map +1 -1
  290. package/fesm2020/odx-angular-components-link.mjs +3 -3
  291. package/fesm2020/odx-angular-components-link.mjs.map +1 -1
  292. package/fesm2020/odx-angular-components-list.mjs +78 -0
  293. package/fesm2020/odx-angular-components-list.mjs.map +1 -0
  294. package/fesm2020/odx-angular-components-loading-spinner.mjs +16 -16
  295. package/fesm2020/odx-angular-components-loading-spinner.mjs.map +1 -1
  296. package/fesm2020/odx-angular-components-logo.mjs +3 -3
  297. package/fesm2020/odx-angular-components-logo.mjs.map +1 -1
  298. package/fesm2020/odx-angular-components-main-menu.mjs +16 -16
  299. package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
  300. package/fesm2020/odx-angular-components-modal.mjs +61 -58
  301. package/fesm2020/odx-angular-components-modal.mjs.map +1 -1
  302. package/fesm2020/odx-angular-components-progress.mjs +3 -3
  303. package/fesm2020/odx-angular-components-progress.mjs.map +1 -1
  304. package/fesm2020/odx-angular-components-radio-group.mjs +11 -11
  305. package/fesm2020/odx-angular-components-radio-group.mjs.map +1 -1
  306. package/fesm2020/odx-angular-components-rail-navigation.mjs +102 -0
  307. package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -0
  308. package/fesm2020/odx-angular-components-slider.mjs +51 -0
  309. package/fesm2020/odx-angular-components-slider.mjs.map +1 -0
  310. package/fesm2020/odx-angular-components-switch.mjs +47 -7
  311. package/fesm2020/odx-angular-components-switch.mjs.map +1 -1
  312. package/fesm2020/odx-angular-components-toggle-button-group.mjs +26 -18
  313. package/fesm2020/odx-angular-components-toggle-button-group.mjs.map +1 -1
  314. package/fesm2020/odx-angular-rxjs.mjs +15 -6
  315. package/fesm2020/odx-angular-rxjs.mjs.map +1 -1
  316. package/fesm2020/odx-angular-utils.mjs +28 -2
  317. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  318. package/fesm2020/odx-angular.mjs +32 -28
  319. package/fesm2020/odx-angular.mjs.map +1 -1
  320. package/package.json +34 -2
  321. package/rxjs/index.d.ts +1 -1
  322. package/rxjs/lib/from-element-resize.d.ts +2 -0
  323. package/utils/lib/helpers/angular.d.ts +2 -1
  324. package/utils/lib/helpers/dom.d.ts +5 -1
  325. package/esm2020/rxjs/lib/mark-for-check.mjs +0 -5
  326. package/rxjs/lib/mark-for-check.d.ts +0 -3
@@ -1,16 +1,25 @@
1
- import { merge, fromEvent, tap } from 'rxjs';
1
+ import { createResizeObserver } from '@odx/angular/utils';
2
+ import { Observable, debounceTime, merge, fromEvent } from 'rxjs';
2
3
 
3
- function fromEvents(target, ...events) {
4
- return merge(...events.map((event) => fromEvent(target, event)));
4
+ function fromElementResize$(element, debounceDuration = 50) {
5
+ return new Observable((observer) => {
6
+ const resizeObserver = createResizeObserver((events) => {
7
+ if (events.length > 0) {
8
+ observer.next();
9
+ }
10
+ });
11
+ observer.add(() => resizeObserver.disconnect());
12
+ resizeObserver.observe(element);
13
+ }).pipe(debounceTime(debounceDuration));
5
14
  }
6
15
 
7
- function markForCheck(changeDetectorRef) {
8
- return tap(() => changeDetectorRef.markForCheck());
16
+ function fromEvents(target, ...events) {
17
+ return merge(...events.map((event) => fromEvent(target, event)));
9
18
  }
10
19
 
11
20
  /**
12
21
  * Generated bundle index. Do not edit.
13
22
  */
14
23
 
15
- export { fromEvents, markForCheck };
24
+ export { fromElementResize$, fromEvents };
16
25
  //# sourceMappingURL=odx-angular-rxjs.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-rxjs.mjs","sources":["../../../../libs/angular/rxjs/src/lib/from-events.ts","../../../../libs/angular/rxjs/src/lib/mark-for-check.ts","../../../../libs/angular/rxjs/src/odx-angular-rxjs.ts"],"sourcesContent":["import { fromEvent, merge, Observable } from 'rxjs';\nimport { HasEventTargetAddRemove } from 'rxjs/internal/observable/fromEvent';\n\nexport function fromEvents<T>(target: HasEventTargetAddRemove<T> | HasEventTargetAddRemove<T>[], ...events: string[]): Observable<T> {\n return merge(...events.map((event) => fromEvent(target, event)));\n}\n","import { ChangeDetectorRef } from '@angular/core';\nimport { MonoTypeOperatorFunction, tap } from 'rxjs';\n\nexport function markForCheck<T>(changeDetectorRef: ChangeDetectorRef): MonoTypeOperatorFunction<T> {\n return tap(() => changeDetectorRef.markForCheck());\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;SAGgB,UAAU,CAAI,MAAiE,EAAE,GAAG,MAAgB,EAAA;IAClH,OAAO,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnE;;ACFM,SAAU,YAAY,CAAI,iBAAoC,EAAA;IAClE,OAAO,GAAG,CAAC,MAAM,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC;AACrD;;ACLA;;AAEG;;;;"}
1
+ {"version":3,"file":"odx-angular-rxjs.mjs","sources":["../../../../libs/angular/rxjs/src/lib/from-element-resize.ts","../../../../libs/angular/rxjs/src/lib/from-events.ts","../../../../libs/angular/rxjs/src/odx-angular-rxjs.ts"],"sourcesContent":["import { createResizeObserver } from '@odx/angular/utils';\nimport { debounceTime, Observable } from 'rxjs';\n\nexport function fromElementResize$(element: Element, debounceDuration = 50): Observable<ResizeObserverEntry[]> {\n return new Observable<ResizeObserverEntry[]>((observer) => {\n const resizeObserver = createResizeObserver((events) => {\n if (events.length > 0) {\n observer.next();\n }\n });\n observer.add(() => resizeObserver.disconnect());\n resizeObserver.observe(element);\n }).pipe(debounceTime(debounceDuration));\n}\n","import { fromEvent, merge, Observable } from 'rxjs';\nimport { HasEventTargetAddRemove } from 'rxjs/internal/observable/fromEvent';\n\nexport function fromEvents<T>(target: HasEventTargetAddRemove<T> | HasEventTargetAddRemove<T>[], ...events: string[]): Observable<T> {\n return merge(...events.map((event) => fromEvent(target, event)));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAGgB,kBAAkB,CAAC,OAAgB,EAAE,gBAAgB,GAAG,EAAE,EAAA;AACxE,IAAA,OAAO,IAAI,UAAU,CAAwB,CAAC,QAAQ,KAAI;AACxD,QAAA,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,MAAM,KAAI;AACrD,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,QAAQ,CAAC,IAAI,EAAE,CAAC;AACjB,aAAA;AACH,SAAC,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;AAChD,QAAA,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACjC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC1C;;SCVgB,UAAU,CAAI,MAAiE,EAAE,GAAG,MAAgB,EAAA;IAClH,OAAO,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnE;;ACLA;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { ɵwithMultipleDescriptors } from '@odx/angular/internal';
2
- import { TemplateRef, inject, ChangeDetectorRef, ElementRef, InjectionToken } from '@angular/core';
2
+ import { TemplateRef, inject, ChangeDetectorRef, Injector, ElementRef, InjectionToken } from '@angular/core';
3
3
  import { Subject, takeUntil, tap } from 'rxjs';
4
4
  import { deepmerge } from 'deepmerge-ts';
5
5
 
@@ -57,6 +57,21 @@ function booleanToOptionalAttributeString(state) {
57
57
  function px(value) {
58
58
  return isNumber(value) ? `${Math.round(value)}px` : '0px';
59
59
  }
60
+ function cssTranslate(x, y) {
61
+ return `translate3d(${x}, ${y}, 0)`;
62
+ }
63
+ function disableCSSTransitions(element, disabled) {
64
+ if (disabled) {
65
+ applyStyles(element, { transition: 'none' });
66
+ }
67
+ else {
68
+ forceLayoutReflow(element);
69
+ applyStyles(element, { transition: null });
70
+ }
71
+ }
72
+ function forceLayoutReflow(element) {
73
+ element.offsetHeight;
74
+ }
60
75
  function setAttribute(element, attribute, value) {
61
76
  if (isString(value)) {
62
77
  element.setAttribute(attribute, value);
@@ -65,6 +80,14 @@ function setAttribute(element, attribute, value) {
65
80
  element.toggleAttribute(attribute, !!value);
66
81
  }
67
82
  }
83
+ function createResizeObserver(callback) {
84
+ try {
85
+ return new ResizeObserver(callback);
86
+ }
87
+ catch (_a) {
88
+ return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
89
+ }
90
+ }
68
91
 
69
92
  function untilDestroyed() {
70
93
  const destroyed$$ = new Subject();
@@ -99,6 +122,9 @@ function reactiveAttributeBinding(source$, ...attributes) {
99
122
  .subscribe();
100
123
  }
101
124
  }
125
+ function getInjector() {
126
+ return inject(Injector);
127
+ }
102
128
  function injectElement() {
103
129
  return inject(ElementRef);
104
130
  }
@@ -144,5 +170,5 @@ function createModuleConfigTokens(name, prefix, defaultValue) {
144
170
  * Generated bundle index. Do not edit.
145
171
  */
146
172
 
147
- export { Transform, applyStyles, booleanToAttributeString, booleanToOptionalAttributeString, createModuleConfigTokens, hasChanged, injectElement, isBoolean, isComponent, isFunction, isNonEmptyString, isNumber, isPresent, isString, isTemplateRef, isViewContainer, pluckFromArray, provideModuleConfig, px, reactiveAttributeBinding, reactiveClassBinding, setAttribute, untilDestroyed };
173
+ export { Transform, applyStyles, booleanToAttributeString, booleanToOptionalAttributeString, createModuleConfigTokens, createResizeObserver, cssTranslate, disableCSSTransitions, forceLayoutReflow, getInjector, hasChanged, injectElement, isBoolean, isComponent, isFunction, isNonEmptyString, isNumber, isPresent, isString, isTemplateRef, isViewContainer, pluckFromArray, provideModuleConfig, px, reactiveAttributeBinding, reactiveClassBinding, setAttribute, untilDestroyed };
148
174
  //# sourceMappingURL=odx-angular-utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-utils.mjs","sources":["../../../../libs/angular/utils/src/lib/decorators/transform.ts","../../../../libs/angular/utils/src/lib/helpers/type-guards.ts","../../../../libs/angular/utils/src/lib/helpers/dom.ts","../../../../libs/angular/utils/src/lib/helpers/until-destroyed.ts","../../../../libs/angular/utils/src/lib/helpers/angular.ts","../../../../libs/angular/utils/src/lib/helpers/array.ts","../../../../libs/angular/utils/src/lib/helpers/ng-changes.ts","../../../../libs/angular/utils/src/lib/helpers/provide-module-config.ts","../../../../libs/angular/utils/src/odx-angular-utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ɵwithMultipleDescriptors } from '@odx/angular/internal';\n\ntype TransformFn<Klass = any, R = any> = (this: Klass, value: R) => R;\n\nexport function Transform(transformer: TransformFn) {\n return (target: any, propertyKey: PropertyKey) => {\n const propertySymbol = Symbol(`__${propertyKey.toString()}ClassTmpl__`);\n const descriptors = ɵwithMultipleDescriptors(target, propertyKey, propertySymbol);\n\n function setter(this: any, value: any) {\n this[propertySymbol] = transformer.apply(this, [value]);\n }\n\n descriptors.addSetter(setter);\n descriptors.init();\n };\n}\n","import { TemplateRef, Type, ViewContainerRef } from '@angular/core';\n\nexport function isViewContainer(value: unknown): value is ViewContainerRef {\n return isFunction((value as ViewContainerRef)?.createComponent);\n}\n\nexport function isTemplateRef<T = unknown>(value: unknown): value is TemplateRef<T> {\n return value instanceof TemplateRef;\n}\n\nexport function isComponent<T = unknown>(value: unknown): value is Type<T> {\n return isFunction(value);\n}\n\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\nexport function isNonEmptyString(value: unknown): value is string {\n return isString(value) && value.length > 0;\n}\n\nexport function isBoolean(value: unknown): value is boolean {\n return value === true || value === false;\n}\n\nexport function isFunction(value: unknown): value is CallableFunction {\n return typeof value === 'function';\n}\n\nexport function isPresent<T>(value: T | null | undefined): value is NonNullable<T> {\n return value !== null && value !== undefined;\n}\n\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import { isNumber, isString } from './type-guards';\n\nexport function applyStyles(element: HTMLElement, styles: Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>): void {\n Object.assign(element.style, styles);\n}\n\nexport function booleanToAttributeString(state: boolean): string {\n return booleanToOptionalAttributeString(state) ?? 'false';\n}\n\nexport function booleanToOptionalAttributeString(state: boolean): string | null {\n return state ? 'true' : null;\n}\n\nexport function px(value: unknown): string {\n return isNumber(value) ? `${Math.round(value)}px` : '0px';\n}\n\nexport function setAttribute(element: HTMLElement, attribute: string, value?: unknown) {\n if (isString(value)) {\n element.setAttribute(attribute, value);\n } else {\n element.toggleAttribute(attribute, !!value);\n }\n}\n","import { ChangeDetectorRef, inject, ViewRef } from '@angular/core';\nimport { MonoTypeOperatorFunction, Subject, takeUntil } from 'rxjs';\n\nexport function untilDestroyed(): <T>() => MonoTypeOperatorFunction<T> {\n const destroyed$$ = new Subject<void>();\n const viewRef = inject(ChangeDetectorRef) as ViewRef;\n\n function onDestroy() {\n destroyed$$.next();\n destroyed$$.complete();\n }\n\n Promise.resolve().then(() => (viewRef.destroyed ? onDestroy() : viewRef.onDestroy(onDestroy)));\n\n return <T>() => takeUntil<T>(destroyed$$.asObservable());\n}\n","import { ElementRef, inject } from '@angular/core';\nimport { MonoTypeOperatorFunction, Observable, tap } from 'rxjs';\nimport { setAttribute } from './dom';\nimport { untilDestroyed } from './until-destroyed';\n\nfunction reactiveBinding<T>(updateFn: (state: unknown) => void): MonoTypeOperatorFunction<T> {\n const takeUntilDestroyed = untilDestroyed();\n\n return (source$: Observable<T>) =>\n source$.pipe(\n tap((state) => updateFn(state)),\n takeUntilDestroyed()\n );\n}\n\nexport function reactiveClassBinding<T>(source$: Observable<T> | null | undefined, cssClass: string): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$.pipe(reactiveBinding((state) => nativeElement.classList.toggle(cssClass, !!state))).subscribe();\n }\n}\n\nexport function reactiveAttributeBinding<T>(source$: Observable<T> | null | undefined, ...attributes: string[]): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$\n .pipe(\n reactiveBinding((value) => {\n for (const attribute of attributes) {\n setAttribute(nativeElement, attribute, value);\n }\n })\n )\n .subscribe();\n }\n}\n\nexport function injectElement<T = HTMLElement>(): ElementRef<T> {\n return inject<ElementRef<T>>(ElementRef);\n}\n","export function pluckFromArray<T, K extends keyof T>(arr: T[], key: K): Array<T[K]> {\n return arr.map((value) => value[key]);\n}\n","import { GetProperties } from '../types';\n\nexport type NgChanges<C, Properties = GetProperties<C>> = {\n [Key in keyof Properties]: {\n previousValue: Properties[Key];\n currentValue: Properties[Key];\n firstChange: boolean;\n isFirstChange(): boolean;\n };\n};\n\nexport function hasChanged<U extends Record<string, unknown>, T extends NgChanges<U>, K extends keyof T>(\n changes: T,\n keyOrKeys: K | K[],\n ignoreFirstChange = true\n): boolean {\n if (Array.isArray(keyOrKeys)) {\n for (const key of keyOrKeys) {\n if (hasChanged(changes, key, ignoreFirstChange)) {\n return true;\n }\n }\n return false;\n } else {\n return keyOrKeys in changes && (!ignoreFirstChange || !changes[keyOrKeys].isFirstChange());\n }\n}\n","import { FactoryProvider, inject, InjectionToken, Type, ValueProvider } from '@angular/core';\nimport { deepmerge } from 'deepmerge-ts';\n\ninterface ModuleConfigFactoryProvider<T, D extends ModuleConfigDependencies> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useFactory: (...args: { [I in keyof D]: D[I] extends Type<unknown> ? InstanceType<D[I]> : D[I] extends InjectionToken<unknown> ? any : never }) => T;\n deps?: [...D];\n}\n\nexport type ModuleConfigDependencies<T = unknown> = ReadonlyArray<Type<T> | InjectionToken<T>>;\nexport type ModuleConfigProvider<T = unknown, D extends ModuleConfigDependencies = []> = ModuleConfigFactoryProvider<T, D> | T;\n\nexport function provideModuleConfig<T, D extends ModuleConfigDependencies = ModuleConfigDependencies>(\n token: InjectionToken<T> | string,\n config: ModuleConfigProvider<T, D>\n): FactoryProvider | ValueProvider {\n if ('useFactory' in config) {\n return { provide: token, useFactory: config.useFactory, deps: config.deps };\n }\n return { provide: token, useValue: config };\n}\n\nexport function createModuleConfigTokens<T, N extends string>(name: N, prefix: string, defaultValue: T) {\n const moduleConfig = `${name}ModuleConfig` as const;\n const defaultModuleConfig = `${name}DefaultModuleConfig` as const;\n const injectModuleConfig = `inject${name}ModuleConfig` as const;\n const tokenName = `${prefix}::${moduleConfig}`;\n const token = new InjectionToken<Partial<T>>(tokenName, { providedIn: 'root', factory: () => defaultValue });\n\n return {\n [moduleConfig]: token,\n [defaultModuleConfig]: defaultValue,\n [injectModuleConfig]: () => deepmerge(defaultValue, inject(token)),\n } as Record<typeof moduleConfig, InjectionToken<Partial<T>>> & Record<typeof defaultModuleConfig, T> & Record<typeof injectModuleConfig, () => T>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA;AAKM,SAAU,SAAS,CAAC,WAAwB,EAAA;AAChD,IAAA,OAAO,CAAC,MAAW,EAAE,WAAwB,KAAI;QAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,CAAA,EAAA,EAAK,WAAW,CAAC,QAAQ,EAAE,CAAa,WAAA,CAAA,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QAElF,SAAS,MAAM,CAAY,KAAU,EAAA;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;SACzD;AAED,QAAA,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,WAAW,CAAC,IAAI,EAAE,CAAC;AACrB,KAAC,CAAC;AACJ;;ACfM,SAAU,eAAe,CAAC,KAAc,EAAA;IAC5C,OAAO,UAAU,CAAE,KAA0B,KAA1B,IAAA,IAAA,KAA0B,uBAA1B,KAA0B,CAAE,eAAe,CAAC,CAAC;AAClE,CAAC;AAEK,SAAU,aAAa,CAAc,KAAc,EAAA;IACvD,OAAO,KAAK,YAAY,WAAW,CAAC;AACtC,CAAC;AAEK,SAAU,WAAW,CAAc,KAAc,EAAA;AACrD,IAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAEK,SAAU,QAAQ,CAAC,KAAc,EAAA;AACrC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAEK,SAAU,gBAAgB,CAAC,KAAc,EAAA;IAC7C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7C,CAAC;AAEK,SAAU,SAAS,CAAC,KAAc,EAAA;AACtC,IAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC;AAC3C,CAAC;AAEK,SAAU,UAAU,CAAC,KAAc,EAAA;AACvC,IAAA,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAEK,SAAU,SAAS,CAAI,KAA2B,EAAA;AACtD,IAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAEK,SAAU,QAAQ,CAAC,KAAc,EAAA;AACrC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC;;AClCgB,SAAA,WAAW,CAAC,OAAoB,EAAE,MAAuF,EAAA;IACvI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAEK,SAAU,wBAAwB,CAAC,KAAc,EAAA;;AACrD,IAAA,OAAO,MAAA,gCAAgC,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,OAAO,CAAC;AAC5D,CAAC;AAEK,SAAU,gCAAgC,CAAC,KAAc,EAAA;IAC7D,OAAO,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAC/B,CAAC;AAEK,SAAU,EAAE,CAAC,KAAc,EAAA;AAC/B,IAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAG,EAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA,EAAA,CAAI,GAAG,KAAK,CAAC;AAC5D,CAAC;SAEe,YAAY,CAAC,OAAoB,EAAE,SAAiB,EAAE,KAAe,EAAA;AACnF,IAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnB,QAAA,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACxC,KAAA;AAAM,SAAA;QACL,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7C,KAAA;AACH;;SCrBgB,cAAc,GAAA;AAC5B,IAAA,MAAM,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;AACxC,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAY,CAAC;AAErD,IAAA,SAAS,SAAS,GAAA;QAChB,WAAW,CAAC,IAAI,EAAE,CAAC;QACnB,WAAW,CAAC,QAAQ,EAAE,CAAC;KACxB;AAED,IAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAE/F,OAAO,MAAS,SAAS,CAAI,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;AAC3D;;ACVA,SAAS,eAAe,CAAI,QAAkC,EAAA;AAC5D,IAAA,MAAM,kBAAkB,GAAG,cAAc,EAAE,CAAC;IAE5C,OAAO,CAAC,OAAsB,KAC5B,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAC/B,kBAAkB,EAAE,CACrB,CAAC;AACN,CAAC;AAEe,SAAA,oBAAoB,CAAI,OAAyC,EAAE,QAAgB,EAAA;AACjG,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC;AAE1C,IAAA,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACzG,KAAA;AACH,CAAC;SAEe,wBAAwB,CAAI,OAAyC,EAAE,GAAG,UAAoB,EAAA;AAC5G,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC;AAE1C,IAAA,IAAI,OAAO,EAAE;QACX,OAAO;AACJ,aAAA,IAAI,CACH,eAAe,CAAC,CAAC,KAAK,KAAI;AACxB,YAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAClC,gBAAA,YAAY,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC/C,aAAA;AACH,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;AAChB,KAAA;AACH,CAAC;SAEe,aAAa,GAAA;AAC3B,IAAA,OAAO,MAAM,CAAgB,UAAU,CAAC,CAAC;AAC3C;;ACzCgB,SAAA,cAAc,CAAuB,GAAQ,EAAE,GAAM,EAAA;AACnE,IAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC;;ACSM,SAAU,UAAU,CACxB,OAAU,EACV,SAAkB,EAClB,iBAAiB,GAAG,IAAI,EAAA;AAExB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC5B,QAAA,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;YAC3B,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE;AAC/C,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,SAAS,IAAI,OAAO,KAAK,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;AAC5F,KAAA;AACH;;ACdgB,SAAA,mBAAmB,CACjC,KAAiC,EACjC,MAAkC,EAAA;IAElC,IAAI,YAAY,IAAI,MAAM,EAAE;AAC1B,QAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC7E,KAAA;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9C,CAAC;SAEe,wBAAwB,CAAsB,IAAO,EAAE,MAAc,EAAE,YAAe,EAAA;AACpG,IAAA,MAAM,YAAY,GAAG,CAAG,EAAA,IAAI,cAAuB,CAAC;AACpD,IAAA,MAAM,mBAAmB,GAAG,CAAG,EAAA,IAAI,qBAA8B,CAAC;AAClE,IAAA,MAAM,kBAAkB,GAAG,CAAS,MAAA,EAAA,IAAI,cAAuB,CAAC;AAChE,IAAA,MAAM,SAAS,GAAG,CAAA,EAAG,MAAM,CAAK,EAAA,EAAA,YAAY,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,cAAc,CAAa,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,EAAE,CAAC,CAAC;IAE7G,OAAO;QACL,CAAC,YAAY,GAAG,KAAK;QACrB,CAAC,mBAAmB,GAAG,YAAY;AACnC,QAAA,CAAC,kBAAkB,GAAG,MAAM,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;KAC6E,CAAC;AACpJ;;AClCA;;AAEG;;;;"}
1
+ {"version":3,"file":"odx-angular-utils.mjs","sources":["../../../../libs/angular/utils/src/lib/decorators/transform.ts","../../../../libs/angular/utils/src/lib/helpers/type-guards.ts","../../../../libs/angular/utils/src/lib/helpers/dom.ts","../../../../libs/angular/utils/src/lib/helpers/until-destroyed.ts","../../../../libs/angular/utils/src/lib/helpers/angular.ts","../../../../libs/angular/utils/src/lib/helpers/array.ts","../../../../libs/angular/utils/src/lib/helpers/ng-changes.ts","../../../../libs/angular/utils/src/lib/helpers/provide-module-config.ts","../../../../libs/angular/utils/src/odx-angular-utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ɵwithMultipleDescriptors } from '@odx/angular/internal';\n\ntype TransformFn<Klass = any, R = any> = (this: Klass, value: R) => R;\n\nexport function Transform(transformer: TransformFn) {\n return (target: any, propertyKey: PropertyKey) => {\n const propertySymbol = Symbol(`__${propertyKey.toString()}ClassTmpl__`);\n const descriptors = ɵwithMultipleDescriptors(target, propertyKey, propertySymbol);\n\n function setter(this: any, value: any) {\n this[propertySymbol] = transformer.apply(this, [value]);\n }\n\n descriptors.addSetter(setter);\n descriptors.init();\n };\n}\n","import { TemplateRef, Type, ViewContainerRef } from '@angular/core';\n\nexport function isViewContainer(value: unknown): value is ViewContainerRef {\n return isFunction((value as ViewContainerRef)?.createComponent);\n}\n\nexport function isTemplateRef<T = unknown>(value: unknown): value is TemplateRef<T> {\n return value instanceof TemplateRef;\n}\n\nexport function isComponent<T = unknown>(value: unknown): value is Type<T> {\n return isFunction(value);\n}\n\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\nexport function isNonEmptyString(value: unknown): value is string {\n return isString(value) && value.length > 0;\n}\n\nexport function isBoolean(value: unknown): value is boolean {\n return value === true || value === false;\n}\n\nexport function isFunction(value: unknown): value is CallableFunction {\n return typeof value === 'function';\n}\n\nexport function isPresent<T>(value: T | null | undefined): value is NonNullable<T> {\n return value !== null && value !== undefined;\n}\n\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import { isNumber, isString } from './type-guards';\n\nexport function applyStyles(element: HTMLElement, styles: Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>): void {\n Object.assign(element.style, styles);\n}\n\nexport function booleanToAttributeString(state: boolean): string {\n return booleanToOptionalAttributeString(state) ?? 'false';\n}\n\nexport function booleanToOptionalAttributeString(state: boolean): string | null {\n return state ? 'true' : null;\n}\n\nexport function px(value: unknown): `${number}px` {\n return isNumber(value) ? `${Math.round(value)}px` : '0px';\n}\n\nexport function cssTranslate(x: string | 0, y: string | 0): `translate3d(${string | 0}, ${string | 0}, 0)` {\n return `translate3d(${x}, ${y}, 0)`;\n}\n\nexport function disableCSSTransitions(element: HTMLElement, disabled: boolean): void {\n if (disabled) {\n applyStyles(element, { transition: 'none' });\n } else {\n forceLayoutReflow(element);\n applyStyles(element, { transition: null });\n }\n}\n\nexport function forceLayoutReflow(element: HTMLElement): void {\n element.offsetHeight;\n}\n\nexport function setAttribute(element: HTMLElement, attribute: string, value?: unknown) {\n if (isString(value)) {\n element.setAttribute(attribute, value);\n } else {\n element.toggleAttribute(attribute, !!value);\n }\n}\n\nexport function createResizeObserver(callback: ResizeObserverCallback): ResizeObserver {\n try {\n return new ResizeObserver(callback);\n } catch {\n return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };\n }\n}\n","import { ChangeDetectorRef, inject, ViewRef } from '@angular/core';\nimport { MonoTypeOperatorFunction, Subject, takeUntil } from 'rxjs';\n\nexport function untilDestroyed(): <T>() => MonoTypeOperatorFunction<T> {\n const destroyed$$ = new Subject<void>();\n const viewRef = inject(ChangeDetectorRef) as ViewRef;\n\n function onDestroy() {\n destroyed$$.next();\n destroyed$$.complete();\n }\n\n Promise.resolve().then(() => (viewRef.destroyed ? onDestroy() : viewRef.onDestroy(onDestroy)));\n\n return <T>() => takeUntil<T>(destroyed$$.asObservable());\n}\n","import { ElementRef, inject, Injector } from '@angular/core';\nimport { MonoTypeOperatorFunction, Observable, tap } from 'rxjs';\nimport { setAttribute } from './dom';\nimport { untilDestroyed } from './until-destroyed';\n\nfunction reactiveBinding<T>(updateFn: (state: unknown) => void): MonoTypeOperatorFunction<T> {\n const takeUntilDestroyed = untilDestroyed();\n\n return (source$: Observable<T>) =>\n source$.pipe(\n tap((state) => updateFn(state)),\n takeUntilDestroyed()\n );\n}\n\nexport function reactiveClassBinding<T>(source$: Observable<T> | null | undefined, cssClass: string): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$.pipe(reactiveBinding((state) => nativeElement.classList.toggle(cssClass, !!state))).subscribe();\n }\n}\n\nexport function reactiveAttributeBinding<T>(source$: Observable<T> | null | undefined, ...attributes: string[]): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$\n .pipe(\n reactiveBinding((value) => {\n for (const attribute of attributes) {\n setAttribute(nativeElement, attribute, value);\n }\n })\n )\n .subscribe();\n }\n}\n\nexport function getInjector(): Injector {\n return inject(Injector);\n}\n\nexport function injectElement<T = HTMLElement>(): ElementRef<T> {\n return inject<ElementRef<T>>(ElementRef);\n}\n","export function pluckFromArray<T, K extends keyof T>(arr: T[], key: K): Array<T[K]> {\n return arr.map((value) => value[key]);\n}\n","import { GetProperties } from '../types';\n\nexport type NgChanges<C, Properties = GetProperties<C>> = {\n [Key in keyof Properties]: {\n previousValue: Properties[Key];\n currentValue: Properties[Key];\n firstChange: boolean;\n isFirstChange(): boolean;\n };\n};\n\nexport function hasChanged<U extends Record<string, unknown>, T extends NgChanges<U>, K extends keyof T>(\n changes: T,\n keyOrKeys: K | K[],\n ignoreFirstChange = true\n): boolean {\n if (Array.isArray(keyOrKeys)) {\n for (const key of keyOrKeys) {\n if (hasChanged(changes, key, ignoreFirstChange)) {\n return true;\n }\n }\n return false;\n } else {\n return keyOrKeys in changes && (!ignoreFirstChange || !changes[keyOrKeys].isFirstChange());\n }\n}\n","import { FactoryProvider, inject, InjectionToken, Type, ValueProvider } from '@angular/core';\nimport { deepmerge } from 'deepmerge-ts';\n\ninterface ModuleConfigFactoryProvider<T, D extends ModuleConfigDependencies> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useFactory: (...args: { [I in keyof D]: D[I] extends Type<unknown> ? InstanceType<D[I]> : D[I] extends InjectionToken<unknown> ? any : never }) => T;\n deps?: [...D];\n}\n\nexport type ModuleConfigDependencies<T = unknown> = ReadonlyArray<Type<T> | InjectionToken<T>>;\nexport type ModuleConfigProvider<T = unknown, D extends ModuleConfigDependencies = []> = ModuleConfigFactoryProvider<T, D> | T;\n\nexport function provideModuleConfig<T, D extends ModuleConfigDependencies = ModuleConfigDependencies>(\n token: InjectionToken<T> | string,\n config: ModuleConfigProvider<T, D>\n): FactoryProvider | ValueProvider {\n if ('useFactory' in config) {\n return { provide: token, useFactory: config.useFactory, deps: config.deps };\n }\n return { provide: token, useValue: config };\n}\n\nexport function createModuleConfigTokens<T, N extends string>(name: N, prefix: string, defaultValue: T) {\n const moduleConfig = `${name}ModuleConfig` as const;\n const defaultModuleConfig = `${name}DefaultModuleConfig` as const;\n const injectModuleConfig = `inject${name}ModuleConfig` as const;\n const tokenName = `${prefix}::${moduleConfig}`;\n const token = new InjectionToken<Partial<T>>(tokenName, { providedIn: 'root', factory: () => defaultValue });\n\n return {\n [moduleConfig]: token,\n [defaultModuleConfig]: defaultValue,\n [injectModuleConfig]: () => deepmerge(defaultValue, inject(token)),\n } as Record<typeof moduleConfig, InjectionToken<Partial<T>>> & Record<typeof defaultModuleConfig, T> & Record<typeof injectModuleConfig, () => T>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA;AAKM,SAAU,SAAS,CAAC,WAAwB,EAAA;AAChD,IAAA,OAAO,CAAC,MAAW,EAAE,WAAwB,KAAI;QAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,CAAA,EAAA,EAAK,WAAW,CAAC,QAAQ,EAAE,CAAa,WAAA,CAAA,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QAElF,SAAS,MAAM,CAAY,KAAU,EAAA;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;SACzD;AAED,QAAA,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,WAAW,CAAC,IAAI,EAAE,CAAC;AACrB,KAAC,CAAC;AACJ;;ACfM,SAAU,eAAe,CAAC,KAAc,EAAA;IAC5C,OAAO,UAAU,CAAE,KAA0B,KAA1B,IAAA,IAAA,KAA0B,uBAA1B,KAA0B,CAAE,eAAe,CAAC,CAAC;AAClE,CAAC;AAEK,SAAU,aAAa,CAAc,KAAc,EAAA;IACvD,OAAO,KAAK,YAAY,WAAW,CAAC;AACtC,CAAC;AAEK,SAAU,WAAW,CAAc,KAAc,EAAA;AACrD,IAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAEK,SAAU,QAAQ,CAAC,KAAc,EAAA;AACrC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC;AAEK,SAAU,gBAAgB,CAAC,KAAc,EAAA;IAC7C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7C,CAAC;AAEK,SAAU,SAAS,CAAC,KAAc,EAAA;AACtC,IAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC;AAC3C,CAAC;AAEK,SAAU,UAAU,CAAC,KAAc,EAAA;AACvC,IAAA,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAEK,SAAU,SAAS,CAAI,KAA2B,EAAA;AACtD,IAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAEK,SAAU,QAAQ,CAAC,KAAc,EAAA;AACrC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC;;AClCgB,SAAA,WAAW,CAAC,OAAoB,EAAE,MAAuF,EAAA;IACvI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAEK,SAAU,wBAAwB,CAAC,KAAc,EAAA;;AACrD,IAAA,OAAO,MAAA,gCAAgC,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,OAAO,CAAC;AAC5D,CAAC;AAEK,SAAU,gCAAgC,CAAC,KAAc,EAAA;IAC7D,OAAO,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAC/B,CAAC;AAEK,SAAU,EAAE,CAAC,KAAc,EAAA;AAC/B,IAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAG,EAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA,EAAA,CAAI,GAAG,KAAK,CAAC;AAC5D,CAAC;AAEe,SAAA,YAAY,CAAC,CAAa,EAAE,CAAa,EAAA;AACvD,IAAA,OAAO,CAAe,YAAA,EAAA,CAAC,CAAK,EAAA,EAAA,CAAC,MAAM,CAAC;AACtC,CAAC;AAEe,SAAA,qBAAqB,CAAC,OAAoB,EAAE,QAAiB,EAAA;AAC3E,IAAA,IAAI,QAAQ,EAAE;QACZ,WAAW,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9C,KAAA;AAAM,SAAA;QACL,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3B,WAAW,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5C,KAAA;AACH,CAAC;AAEK,SAAU,iBAAiB,CAAC,OAAoB,EAAA;IACpD,OAAO,CAAC,YAAY,CAAC;AACvB,CAAC;SAEe,YAAY,CAAC,OAAoB,EAAE,SAAiB,EAAE,KAAe,EAAA;AACnF,IAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnB,QAAA,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACxC,KAAA;AAAM,SAAA;QACL,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7C,KAAA;AACH,CAAC;AAEK,SAAU,oBAAoB,CAAC,QAAgC,EAAA;IACnE,IAAI;AACF,QAAA,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;AACrC,KAAA;IAAC,OAAM,EAAA,EAAA;QACN,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;AACrF,KAAA;AACH;;SC9CgB,cAAc,GAAA;AAC5B,IAAA,MAAM,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;AACxC,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAY,CAAC;AAErD,IAAA,SAAS,SAAS,GAAA;QAChB,WAAW,CAAC,IAAI,EAAE,CAAC;QACnB,WAAW,CAAC,QAAQ,EAAE,CAAC;KACxB;AAED,IAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAE/F,OAAO,MAAS,SAAS,CAAI,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;AAC3D;;ACVA,SAAS,eAAe,CAAI,QAAkC,EAAA;AAC5D,IAAA,MAAM,kBAAkB,GAAG,cAAc,EAAE,CAAC;IAE5C,OAAO,CAAC,OAAsB,KAC5B,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAC/B,kBAAkB,EAAE,CACrB,CAAC;AACN,CAAC;AAEe,SAAA,oBAAoB,CAAI,OAAyC,EAAE,QAAgB,EAAA;AACjG,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC;AAE1C,IAAA,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACzG,KAAA;AACH,CAAC;SAEe,wBAAwB,CAAI,OAAyC,EAAE,GAAG,UAAoB,EAAA;AAC5G,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC;AAE1C,IAAA,IAAI,OAAO,EAAE;QACX,OAAO;AACJ,aAAA,IAAI,CACH,eAAe,CAAC,CAAC,KAAK,KAAI;AACxB,YAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAClC,gBAAA,YAAY,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC/C,aAAA;AACH,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;AAChB,KAAA;AACH,CAAC;SAEe,WAAW,GAAA;AACzB,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;SAEe,aAAa,GAAA;AAC3B,IAAA,OAAO,MAAM,CAAgB,UAAU,CAAC,CAAC;AAC3C;;AC7CgB,SAAA,cAAc,CAAuB,GAAQ,EAAE,GAAM,EAAA;AACnE,IAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC;;ACSM,SAAU,UAAU,CACxB,OAAU,EACV,SAAkB,EAClB,iBAAiB,GAAG,IAAI,EAAA;AAExB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC5B,QAAA,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;YAC3B,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE;AAC/C,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,SAAS,IAAI,OAAO,KAAK,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;AAC5F,KAAA;AACH;;ACdgB,SAAA,mBAAmB,CACjC,KAAiC,EACjC,MAAkC,EAAA;IAElC,IAAI,YAAY,IAAI,MAAM,EAAE;AAC1B,QAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC7E,KAAA;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9C,CAAC;SAEe,wBAAwB,CAAsB,IAAO,EAAE,MAAc,EAAE,YAAe,EAAA;AACpG,IAAA,MAAM,YAAY,GAAG,CAAG,EAAA,IAAI,cAAuB,CAAC;AACpD,IAAA,MAAM,mBAAmB,GAAG,CAAG,EAAA,IAAI,qBAA8B,CAAC;AAClE,IAAA,MAAM,kBAAkB,GAAG,CAAS,MAAA,EAAA,IAAI,cAAuB,CAAC;AAChE,IAAA,MAAM,SAAS,GAAG,CAAA,EAAG,MAAM,CAAK,EAAA,EAAA,YAAY,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,cAAc,CAAa,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,EAAE,CAAC,CAAC;IAE7G,OAAO;QACL,CAAC,YAAY,GAAG,KAAK;QACrB,CAAC,mBAAmB,GAAG,YAAY;AACnC,QAAA,CAAC,kBAAkB,GAAG,MAAM,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;KAC6E,CAAC;AACpJ;;AClCA;;AAEG;;;;"}
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, ChangeDetectorRef, Directive, InjectionToken, forwardRef, Input, EventEmitter, Output, NgModule, Injectable } from '@angular/core';
3
- import { markForCheck, fromEvents } from '@odx/angular/rxjs';
4
3
  import { pluckFromArray, isPresent, booleanToOptionalAttributeString } from '@odx/angular/utils';
5
- import { merge, Subject, share, map, distinctUntilChanged, shareReplay, startWith } from 'rxjs';
4
+ import { merge, tap, Subject, shareReplay, map, distinctUntilChanged, startWith } from 'rxjs';
6
5
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
7
6
  import { CommonModule, DOCUMENT } from '@angular/common';
7
+ import { fromEvents } from '@odx/angular/rxjs';
8
8
 
9
9
  function controllerChanges(controllers) {
10
10
  const changes$ = pluckFromArray(controllers.filter(isPresent), 'change$');
@@ -12,15 +12,17 @@ function controllerChanges(controllers) {
12
12
  }
13
13
  function detectControllerChanges(...controllers) {
14
14
  const changeDetector = inject(ChangeDetectorRef);
15
- return controllerChanges(controllers).pipe(markForCheck(changeDetector));
15
+ return controllerChanges(controllers).pipe(tap(() => changeDetector.markForCheck()));
16
16
  }
17
17
  class Controller {
18
18
  constructor() {
19
19
  this.change$$ = new Subject();
20
- this.change$ = this.change$$.pipe(share());
20
+ this.change$ = this.change$$.pipe(shareReplay({ refCount: true }));
21
21
  }
22
22
  static setup(controller, changeDetector) {
23
- controllerChanges([controller]).pipe(markForCheck(changeDetector)).subscribe();
23
+ controllerChanges([controller])
24
+ .pipe(tap(() => changeDetector.markForCheck()))
25
+ .subscribe();
24
26
  return controller;
25
27
  }
26
28
  ngOnChanges() {
@@ -33,9 +35,9 @@ class Controller {
33
35
  this.change$$.next();
34
36
  }
35
37
  }
36
- Controller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: Controller, deps: [], target: i0.ɵɵFactoryTarget.Directive });
37
- Controller.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: Controller, usesOnChanges: true, ngImport: i0 });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: Controller, decorators: [{
38
+ Controller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Controller, deps: [], target: i0.ɵɵFactoryTarget.Directive });
39
+ Controller.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: Controller, usesOnChanges: true, ngImport: i0 });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Controller, decorators: [{
39
41
  type: Directive
40
42
  }] });
41
43
 
@@ -62,8 +64,9 @@ class DisabledController extends Controller {
62
64
  this.nodeName = (_a = element === null || element === void 0 ? void 0 : element.nativeElement.nodeName.toLowerCase()) !== null && _a !== void 0 ? _a : '';
63
65
  }
64
66
  set disabled(value) {
65
- if (this.isDisabled !== value) {
66
- this.isDisabled = coerceBooleanProperty(value);
67
+ const coercedValue = coerceBooleanProperty(value);
68
+ if (this.isDisabled !== coercedValue) {
69
+ this.isDisabled = coercedValue;
67
70
  this.hasDisabledAttribute = this.isDisabled && ELEMENTS_WITH_DISABLED_ATTRIBUTE[this.nodeName];
68
71
  }
69
72
  }
@@ -88,14 +91,14 @@ class DisabledController extends Controller {
88
91
  this.ngOnChanges();
89
92
  }
90
93
  }
91
- DisabledController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: DisabledController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
92
- DisabledController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: DisabledController, isStandalone: true, selector: "[disabled]", inputs: { disabled: "disabled" }, host: { properties: { "attr.aria-disabled": "ariaDisabled", "attr.disabled": "hasDisabledAttribute || null" } }, providers: [
94
+ DisabledController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DisabledController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
95
+ DisabledController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DisabledController, isStandalone: true, selector: "[disabled]", inputs: { disabled: "disabled" }, host: { properties: { "attr.aria-disabled": "ariaDisabled", "attr.disabled": "hasDisabledAttribute || null" } }, providers: [
93
96
  {
94
97
  provide: DISABLED_INTERNAL_CONTROLLER,
95
98
  useExisting: forwardRef(() => DisabledController),
96
99
  },
97
100
  ], usesInheritance: true, ngImport: i0 });
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: DisabledController, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DisabledController, decorators: [{
99
102
  type: Directive,
100
103
  args: [{
101
104
  standalone: true,
@@ -134,8 +137,9 @@ class ReadonlyController extends Controller {
134
137
  this.nodeName = (_a = element === null || element === void 0 ? void 0 : element.nativeElement.nodeName.toLowerCase()) !== null && _a !== void 0 ? _a : '';
135
138
  }
136
139
  set readonly(value) {
137
- if (this.isReadonly !== value) {
138
- this.isReadonly = coerceBooleanProperty(value);
140
+ const coercedValue = coerceBooleanProperty(value);
141
+ if (this.isReadonly !== coercedValue) {
142
+ this.isReadonly = coercedValue;
139
143
  this.hasReadonlyAttribute = this.isReadonly && ELEMENTS_WITH_READONLY_ATTRIBUTE[this.nodeName];
140
144
  }
141
145
  }
@@ -153,14 +157,14 @@ class ReadonlyController extends Controller {
153
157
  };
154
158
  }
155
159
  }
156
- ReadonlyController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ReadonlyController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
157
- ReadonlyController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: ReadonlyController, isStandalone: true, selector: "[readonly]", inputs: { readonly: "readonly" }, host: { properties: { "attr.readonly": "hasReadonlyAttribute || null" } }, providers: [
160
+ ReadonlyController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ReadonlyController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
161
+ ReadonlyController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ReadonlyController, isStandalone: true, selector: "[readonly]", inputs: { readonly: "readonly" }, host: { properties: { "attr.readonly": "hasReadonlyAttribute || null" } }, providers: [
158
162
  {
159
163
  provide: READONLY_INTERNAL_CONTROLLER,
160
164
  useExisting: forwardRef(() => ReadonlyController),
161
165
  },
162
166
  ], usesInheritance: true, ngImport: i0 });
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ReadonlyController, decorators: [{
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ReadonlyController, decorators: [{
164
168
  type: Directive,
165
169
  args: [{
166
170
  standalone: true,
@@ -223,9 +227,9 @@ class ClickOutsideDirective {
223
227
  }, 0);
224
228
  }
225
229
  }
226
- ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
227
- ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: ClickOutsideDirective, isStandalone: true, selector: "[odxClickOutside]", inputs: { odxClickOutsideActive: "odxClickOutsideActive" }, outputs: { odxClickOutside: "odxClickOutside" }, usesOnChanges: true, ngImport: i0 });
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ClickOutsideDirective, decorators: [{
230
+ ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
231
+ ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ClickOutsideDirective, isStandalone: true, selector: "[odxClickOutside]", inputs: { odxClickOutsideActive: "odxClickOutsideActive" }, outputs: { odxClickOutside: "odxClickOutside" }, usesOnChanges: true, ngImport: i0 });
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ClickOutsideDirective, decorators: [{
229
233
  type: Directive,
230
234
  args: [{
231
235
  standalone: true,
@@ -241,10 +245,10 @@ const controllers = [DisabledController, ReadonlyController];
241
245
  const modules = [ClickOutsideDirective];
242
246
  class CoreModule {
243
247
  }
244
- CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
245
- CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.9", ngImport: i0, type: CoreModule, imports: [DisabledController, ReadonlyController, ClickOutsideDirective], exports: [CommonModule, DisabledController, ReadonlyController, ClickOutsideDirective] });
246
- CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: CoreModule, imports: [CommonModule] });
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: CoreModule, decorators: [{
248
+ CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
249
+ CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: CoreModule, imports: [DisabledController, ReadonlyController, ClickOutsideDirective], exports: [CommonModule, DisabledController, ReadonlyController, ClickOutsideDirective] });
250
+ CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CoreModule, imports: [CommonModule] });
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CoreModule, decorators: [{
248
252
  type: NgModule,
249
253
  args: [{
250
254
  imports: [...controllers, ...modules],
@@ -271,9 +275,9 @@ class WindowRef {
271
275
  return this.location.reload();
272
276
  }
273
277
  }
274
- WindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
275
- WindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: WindowRef, providedIn: 'root' });
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: WindowRef, decorators: [{
278
+ WindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
279
+ WindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WindowRef, providedIn: 'root' });
280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WindowRef, decorators: [{
277
281
  type: Injectable,
278
282
  args: [{
279
283
  providedIn: 'root',
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular.mjs","sources":["../../../../libs/angular/src/lib/controllers/controller.ts","../../../../libs/angular/src/lib/controllers/disabled.controller.ts","../../../../libs/angular/src/lib/controllers/readonly.controller.ts","../../../../libs/angular/src/lib/directives/click-outside.directive.ts","../../../../libs/angular/src/lib/core.module.ts","../../../../libs/angular/src/lib/services/window-ref.ts","../../../../libs/angular/src/odx-angular.ts"],"sourcesContent":["import { ChangeDetectorRef, Directive, inject, OnChanges, OnDestroy } from '@angular/core';\nimport { markForCheck } from '@odx/angular/rxjs';\nimport { isPresent, pluckFromArray } from '@odx/angular/utils';\nimport { merge, Observable, share, Subject } from 'rxjs';\n\nfunction controllerChanges(controllers: Array<Controller | undefined | null>): Observable<void> {\n const changes$ = pluckFromArray(controllers.filter(isPresent), 'change$');\n\n return merge(...changes$);\n}\n\nexport function detectControllerChanges(...controllers: Array<Controller | undefined | null>): Observable<void> {\n const changeDetector = inject(ChangeDetectorRef);\n\n return controllerChanges(controllers).pipe(markForCheck(changeDetector));\n}\n\n@Directive()\nexport abstract class Controller implements OnChanges, OnDestroy {\n private readonly change$$ = new Subject<void>();\n\n public readonly change$ = this.change$$.pipe(share());\n\n public static setup(controller: Controller | null, changeDetector: ChangeDetectorRef): Controller | null {\n controllerChanges([controller]).pipe(markForCheck(changeDetector)).subscribe();\n\n return controller;\n }\n\n public ngOnChanges(): void {\n this.triggerControllerChange();\n }\n\n public ngOnDestroy(): void {\n this.change$$.complete();\n }\n\n protected triggerControllerChange() {\n this.change$$.next();\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectorRef, Directive, ElementRef, forwardRef, inject, InjectionToken, Input, Provider } from '@angular/core';\nimport { booleanToOptionalAttributeString } from '@odx/angular/utils';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { Controller } from './controller';\n\nconst ELEMENTS_WITH_DISABLED_ATTRIBUTE = {\n button: true,\n fieldset: true,\n input: true,\n optgroup: true,\n option: true,\n select: true,\n textarea: true,\n} as Record<string, boolean>;\n\nexport const DISABLED_CONTROLLER = new InjectionToken<DisabledController>('@odx/angular::DisabledWatchedController');\nconst DISABLED_INTERNAL_CONTROLLER = new InjectionToken<DisabledController | null>('@odx/angular::DisabledController', {\n factory: () => new DisabledController(null),\n});\n\n@Directive({\n standalone: true,\n selector: '[disabled]',\n providers: [\n {\n provide: DISABLED_INTERNAL_CONTROLLER,\n useExisting: forwardRef(() => DisabledController),\n },\n ],\n host: {\n '[attr.aria-disabled]': 'ariaDisabled',\n '[attr.disabled]': 'hasDisabledAttribute || null',\n },\n})\nexport class DisabledController extends Controller {\n public static ngAcceptInputType_disabled: BooleanInput;\n\n private readonly nodeName: string;\n private isDisabled = false;\n\n protected hasDisabledAttribute = false;\n public readonly isDisabled$ = this.change$.pipe(\n map(() => this.isDisabled),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n\n @Input()\n public set disabled(value: unknown) {\n if (this.isDisabled !== value) {\n this.isDisabled = coerceBooleanProperty(value);\n this.hasDisabledAttribute = this.isDisabled && ELEMENTS_WITH_DISABLED_ATTRIBUTE[this.nodeName];\n }\n }\n public get disabled(): boolean {\n return this.isDisabled;\n }\n\n public get ariaDisabled(): string | null {\n return booleanToOptionalAttributeString(this.hasDisabledAttribute);\n }\n\n constructor(element: ElementRef<HTMLElement> | null) {\n super();\n this.nodeName = element?.nativeElement.nodeName.toLowerCase() ?? '';\n }\n\n public static inject(): DisabledController | null {\n return inject(DISABLED_CONTROLLER, { optional: true });\n }\n\n public static connect(): Provider {\n return {\n provide: DISABLED_CONTROLLER,\n useFactory: Controller.setup,\n deps: [DISABLED_INTERNAL_CONTROLLER, ChangeDetectorRef],\n };\n }\n\n public setDisabledState(state: boolean): void {\n this.disabled = state;\n this.ngOnChanges();\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectorRef, Directive, ElementRef, forwardRef, inject, InjectionToken, Input, Provider } from '@angular/core';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { Controller } from './controller';\n\nconst ELEMENTS_WITH_READONLY_ATTRIBUTE = {\n input: true,\n textarea: true,\n select: true,\n} as Record<string, boolean>;\n\nconst READONLY_CONTROLLER = new InjectionToken<ReadonlyController>('@odx/angular::ReadonlyWatchedController');\nconst READONLY_INTERNAL_CONTROLLER = new InjectionToken<ReadonlyController | null>('@odx/angular::ReadonlyController', {\n factory: () => new ReadonlyController(null),\n});\n\n@Directive({\n standalone: true,\n selector: '[readonly]',\n providers: [\n {\n provide: READONLY_INTERNAL_CONTROLLER,\n useExisting: forwardRef(() => ReadonlyController),\n },\n ],\n host: {\n '[attr.readonly]': 'hasReadonlyAttribute || null',\n },\n})\nexport class ReadonlyController extends Controller {\n public static ngAcceptInputType_readonly: BooleanInput;\n\n private readonly nodeName: string;\n private isReadonly = false;\n\n protected hasReadonlyAttribute = false;\n\n public readonly isReadonly$ = this.change$.pipe(\n map(() => this.isReadonly),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n\n @Input()\n public set readonly(value: unknown) {\n if (this.isReadonly !== value) {\n this.isReadonly = coerceBooleanProperty(value);\n this.hasReadonlyAttribute = this.isReadonly && ELEMENTS_WITH_READONLY_ATTRIBUTE[this.nodeName];\n }\n }\n public get readonly(): boolean {\n return this.isReadonly;\n }\n\n constructor(element: ElementRef<HTMLElement> | null) {\n super();\n this.nodeName = element?.nativeElement.nodeName.toLowerCase() ?? '';\n }\n\n public static inject(): ReadonlyController | null {\n return inject(READONLY_CONTROLLER, { optional: true });\n }\n\n public static connect(): Provider {\n return {\n provide: READONLY_CONTROLLER,\n useFactory: Controller.setup,\n deps: [READONLY_INTERNAL_CONTROLLER, ChangeDetectorRef],\n };\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, Renderer2 } from '@angular/core';\nimport { NgChanges } from '@odx/angular/utils';\n\n@Directive({\n standalone: true,\n selector: '[odxClickOutside]',\n})\nexport class ClickOutsideDirective implements OnChanges, OnInit, OnDestroy {\n private listener?: () => void;\n\n @Input()\n public odxClickOutsideActive = true;\n\n @Output()\n public readonly odxClickOutside = new EventEmitter<MouseEvent>();\n\n constructor(private readonly element: ElementRef<HTMLElement>, private readonly renderer: Renderer2) {\n this.odxClickOutsideActive = true;\n }\n\n public ngOnInit(): void {\n if (this.odxClickOutsideActive) {\n this.registerHandler();\n }\n }\n\n public ngOnChanges({ odxClickOutsideActive: clickOutsideActive }: NgChanges<ClickOutsideDirective>): void {\n if (!clickOutsideActive?.firstChange && clickOutsideActive?.previousValue !== clickOutsideActive?.currentValue) {\n if (clickOutsideActive?.currentValue) {\n this.registerHandler();\n } else {\n this.destroy();\n }\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy();\n }\n\n private destroy() {\n if (this.listener) {\n this.listener();\n this.listener = undefined;\n }\n }\n\n private registerHandler() {\n setTimeout(() => {\n this.listener ??= this.renderer.listen('document', 'click', (event) => {\n if (this.odxClickOutsideActive && this.element?.nativeElement.isConnected && !this.element?.nativeElement.contains(event.target)) {\n this.odxClickOutside.emit(event);\n }\n });\n }, 0);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DisabledController, ReadonlyController } from './controllers';\nimport { ClickOutsideDirective } from './directives';\n\nconst controllers = [DisabledController, ReadonlyController];\nconst modules = [ClickOutsideDirective];\n\n@NgModule({\n imports: [...controllers, ...modules],\n exports: [CommonModule, ...controllers, ...modules],\n})\nexport class CoreModule {}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { fromEvents } from '@odx/angular/rxjs';\nimport { distinctUntilChanged, map, shareReplay, startWith } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WindowRef {\n public readonly nativeWindow = inject(DOCUMENT).defaultView ?? window;\n public readonly isOnline$ = fromEvents(this.nativeWindow, 'offline', 'online').pipe(\n startWith(null),\n map(() => this.nativeWindow.navigator.onLine),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n\n public get location(): Location {\n return this.nativeWindow.location;\n }\n\n public getLanguage(): string {\n return this.nativeWindow.navigator.language;\n }\n\n public getOrigin(): string {\n return this.location.origin;\n }\n\n public reloadPage(): void {\n return this.location.reload();\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.mjs","sources":["../../../../libs/angular/src/lib/controllers/controller.ts","../../../../libs/angular/src/lib/controllers/disabled.controller.ts","../../../../libs/angular/src/lib/controllers/readonly.controller.ts","../../../../libs/angular/src/lib/directives/click-outside.directive.ts","../../../../libs/angular/src/lib/core.module.ts","../../../../libs/angular/src/lib/services/window-ref.ts","../../../../libs/angular/src/odx-angular.ts"],"sourcesContent":["import { ChangeDetectorRef, Directive, inject, OnChanges, OnDestroy } from '@angular/core';\nimport { isPresent, pluckFromArray } from '@odx/angular/utils';\nimport { merge, Observable, shareReplay, Subject, tap } from 'rxjs';\n\nfunction controllerChanges(controllers: Array<Controller | undefined | null>): Observable<void> {\n const changes$ = pluckFromArray(controllers.filter(isPresent), 'change$');\n\n return merge(...changes$);\n}\n\nexport function detectControllerChanges(...controllers: Array<Controller | undefined | null>): Observable<void> {\n const changeDetector = inject(ChangeDetectorRef);\n\n return controllerChanges(controllers).pipe(tap(() => changeDetector.markForCheck()));\n}\n\n@Directive()\nexport abstract class Controller implements OnChanges, OnDestroy {\n private readonly change$$ = new Subject<void>();\n\n public readonly change$ = this.change$$.pipe(shareReplay({ refCount: true }));\n\n public static setup(controller: Controller | null, changeDetector: ChangeDetectorRef): Controller | null {\n controllerChanges([controller])\n .pipe(tap(() => changeDetector.markForCheck()))\n .subscribe();\n\n return controller;\n }\n\n public ngOnChanges(): void {\n this.triggerControllerChange();\n }\n\n public ngOnDestroy(): void {\n this.change$$.complete();\n }\n\n protected triggerControllerChange() {\n this.change$$.next();\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectorRef, Directive, ElementRef, forwardRef, inject, InjectionToken, Input, Provider } from '@angular/core';\nimport { booleanToOptionalAttributeString } from '@odx/angular/utils';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { Controller } from './controller';\n\nconst ELEMENTS_WITH_DISABLED_ATTRIBUTE = {\n button: true,\n fieldset: true,\n input: true,\n optgroup: true,\n option: true,\n select: true,\n textarea: true,\n} as Record<string, boolean>;\n\nexport const DISABLED_CONTROLLER = new InjectionToken<DisabledController>('@odx/angular::DisabledWatchedController');\nconst DISABLED_INTERNAL_CONTROLLER = new InjectionToken<DisabledController | null>('@odx/angular::DisabledController', {\n factory: () => new DisabledController(null),\n});\n\n@Directive({\n standalone: true,\n selector: '[disabled]',\n providers: [\n {\n provide: DISABLED_INTERNAL_CONTROLLER,\n useExisting: forwardRef(() => DisabledController),\n },\n ],\n host: {\n '[attr.aria-disabled]': 'ariaDisabled',\n '[attr.disabled]': 'hasDisabledAttribute || null',\n },\n})\nexport class DisabledController extends Controller {\n public static ngAcceptInputType_disabled: BooleanInput;\n\n private readonly nodeName: string;\n private isDisabled = false;\n\n protected hasDisabledAttribute = false;\n public readonly isDisabled$ = this.change$.pipe(\n map(() => this.isDisabled),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n\n @Input()\n public set disabled(value: unknown) {\n const coercedValue = coerceBooleanProperty(value);\n if (this.isDisabled !== coercedValue) {\n this.isDisabled = coercedValue;\n this.hasDisabledAttribute = this.isDisabled && ELEMENTS_WITH_DISABLED_ATTRIBUTE[this.nodeName];\n }\n }\n public get disabled(): boolean {\n return this.isDisabled;\n }\n\n public get ariaDisabled(): string | null {\n return booleanToOptionalAttributeString(this.hasDisabledAttribute);\n }\n\n constructor(element: ElementRef<HTMLElement> | null) {\n super();\n this.nodeName = element?.nativeElement.nodeName.toLowerCase() ?? '';\n }\n\n public static inject(): DisabledController | null {\n return inject(DISABLED_CONTROLLER, { optional: true });\n }\n\n public static connect(): Provider {\n return {\n provide: DISABLED_CONTROLLER,\n useFactory: Controller.setup,\n deps: [DISABLED_INTERNAL_CONTROLLER, ChangeDetectorRef],\n };\n }\n\n public setDisabledState(state: boolean): void {\n this.disabled = state;\n this.ngOnChanges();\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectorRef, Directive, ElementRef, forwardRef, inject, InjectionToken, Input, Provider } from '@angular/core';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { Controller } from './controller';\n\nconst ELEMENTS_WITH_READONLY_ATTRIBUTE = {\n input: true,\n textarea: true,\n select: true,\n} as Record<string, boolean>;\n\nconst READONLY_CONTROLLER = new InjectionToken<ReadonlyController>('@odx/angular::ReadonlyWatchedController');\nconst READONLY_INTERNAL_CONTROLLER = new InjectionToken<ReadonlyController | null>('@odx/angular::ReadonlyController', {\n factory: () => new ReadonlyController(null),\n});\n\n@Directive({\n standalone: true,\n selector: '[readonly]',\n providers: [\n {\n provide: READONLY_INTERNAL_CONTROLLER,\n useExisting: forwardRef(() => ReadonlyController),\n },\n ],\n host: {\n '[attr.readonly]': 'hasReadonlyAttribute || null',\n },\n})\nexport class ReadonlyController extends Controller {\n public static ngAcceptInputType_readonly: BooleanInput;\n\n private readonly nodeName: string;\n private isReadonly = false;\n\n protected hasReadonlyAttribute = false;\n\n public readonly isReadonly$ = this.change$.pipe(\n map(() => this.isReadonly),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n\n @Input()\n public set readonly(value: unknown) {\n const coercedValue = coerceBooleanProperty(value);\n if (this.isReadonly !== coercedValue) {\n this.isReadonly = coercedValue;\n this.hasReadonlyAttribute = this.isReadonly && ELEMENTS_WITH_READONLY_ATTRIBUTE[this.nodeName];\n }\n }\n public get readonly(): boolean {\n return this.isReadonly;\n }\n\n constructor(element: ElementRef<HTMLElement> | null) {\n super();\n this.nodeName = element?.nativeElement.nodeName.toLowerCase() ?? '';\n }\n\n public static inject(): ReadonlyController | null {\n return inject(READONLY_CONTROLLER, { optional: true });\n }\n\n public static connect(): Provider {\n return {\n provide: READONLY_CONTROLLER,\n useFactory: Controller.setup,\n deps: [READONLY_INTERNAL_CONTROLLER, ChangeDetectorRef],\n };\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, Renderer2 } from '@angular/core';\nimport { NgChanges } from '@odx/angular/utils';\n\n@Directive({\n standalone: true,\n selector: '[odxClickOutside]',\n})\nexport class ClickOutsideDirective implements OnChanges, OnInit, OnDestroy {\n private listener?: () => void;\n\n @Input()\n public odxClickOutsideActive = true;\n\n @Output()\n public readonly odxClickOutside = new EventEmitter<MouseEvent>();\n\n constructor(private readonly element: ElementRef<HTMLElement>, private readonly renderer: Renderer2) {\n this.odxClickOutsideActive = true;\n }\n\n public ngOnInit(): void {\n if (this.odxClickOutsideActive) {\n this.registerHandler();\n }\n }\n\n public ngOnChanges({ odxClickOutsideActive: clickOutsideActive }: NgChanges<ClickOutsideDirective>): void {\n if (!clickOutsideActive?.firstChange && clickOutsideActive?.previousValue !== clickOutsideActive?.currentValue) {\n if (clickOutsideActive?.currentValue) {\n this.registerHandler();\n } else {\n this.destroy();\n }\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy();\n }\n\n private destroy() {\n if (this.listener) {\n this.listener();\n this.listener = undefined;\n }\n }\n\n private registerHandler() {\n setTimeout(() => {\n this.listener ??= this.renderer.listen('document', 'click', (event) => {\n if (this.odxClickOutsideActive && this.element?.nativeElement.isConnected && !this.element?.nativeElement.contains(event.target)) {\n this.odxClickOutside.emit(event);\n }\n });\n }, 0);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DisabledController, ReadonlyController } from './controllers';\nimport { ClickOutsideDirective } from './directives';\n\nconst controllers = [DisabledController, ReadonlyController];\nconst modules = [ClickOutsideDirective];\n\n@NgModule({\n imports: [...controllers, ...modules],\n exports: [CommonModule, ...controllers, ...modules],\n})\nexport class CoreModule {}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { fromEvents } from '@odx/angular/rxjs';\nimport { distinctUntilChanged, map, shareReplay, startWith } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WindowRef {\n public readonly nativeWindow = inject(DOCUMENT).defaultView ?? window;\n public readonly isOnline$ = fromEvents(this.nativeWindow, 'offline', 'online').pipe(\n startWith(null),\n map(() => this.nativeWindow.navigator.onLine),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n\n public get location(): Location {\n return this.nativeWindow.location;\n }\n\n public getLanguage(): string {\n return this.nativeWindow.navigator.language;\n }\n\n public getOrigin(): string {\n return this.location.origin;\n }\n\n public reloadPage(): void {\n return this.location.reload();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAIA,SAAS,iBAAiB,CAAC,WAAiD,EAAA;AAC1E,IAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;AAE1E,IAAA,OAAO,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAEe,SAAA,uBAAuB,CAAC,GAAG,WAAiD,EAAA;AAC1F,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEjD,IAAA,OAAO,iBAAiB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACvF,CAAC;MAGqB,UAAU,CAAA;AADhC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEhC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;KAqB/E;AAnBQ,IAAA,OAAO,KAAK,CAAC,UAA6B,EAAE,cAAiC,EAAA;AAClF,QAAA,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;AAC9C,aAAA,SAAS,EAAE,CAAC;AAEf,QAAA,OAAO,UAAU,CAAC;KACnB;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;IAES,uBAAuB,GAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;;wGAvBmB,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAV,UAAU,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAD/B,SAAS;;;ACVV,MAAM,gCAAgC,GAAG;AACvC,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,QAAQ,EAAE,IAAI;CACY,CAAC;MAEhB,mBAAmB,GAAG,IAAI,cAAc,CAAqB,yCAAyC,EAAE;AACrH,MAAM,4BAA4B,GAAG,IAAI,cAAc,CAA4B,kCAAkC,EAAE;IACrH,OAAO,EAAE,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC;AAC5C,CAAA,CAAC,CAAC;AAgBG,MAAO,kBAAmB,SAAQ,UAAU,CAAA;AA6BhD,IAAA,WAAA,CAAY,OAAuC,EAAA;;AACjD,QAAA,KAAK,EAAE,CAAC;AA1BF,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAEjB,QAAA,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AACvB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAC7C,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAC1B,oBAAoB,EAAE,EACtB,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAChC,CAAC;AAoBA,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;KACrE;IAnBD,IACW,QAAQ,CAAC,KAAc,EAAA;AAChC,QAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClD,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,EAAE;AACpC,YAAA,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;AAC/B,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,IAAI,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChG,SAAA;KACF;AACD,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,gCAAgC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;KACpE;AAOM,IAAA,OAAO,MAAM,GAAA;QAClB,OAAO,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;KACxD;AAEM,IAAA,OAAO,OAAO,GAAA;QACnB,OAAO;AACL,YAAA,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,UAAU,CAAC,KAAK;AAC5B,YAAA,IAAI,EAAE,CAAC,4BAA4B,EAAE,iBAAiB,CAAC;SACxD,CAAC;KACH;AAEM,IAAA,gBAAgB,CAAC,KAAc,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;;gHAjDU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAXlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AAClD,SAAA;KACF,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAMU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAd9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AAClD,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,sBAAsB,EAAE,cAAc;AACtC,wBAAA,iBAAiB,EAAE,8BAA8B;AAClD,qBAAA;iBACF,CAAA;iGAeY,QAAQ,EAAA,CAAA;sBADlB,KAAK;;;AC3CR,MAAM,gCAAgC,GAAG;AACvC,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,MAAM,EAAE,IAAI;CACc,CAAC;AAE7B,MAAM,mBAAmB,GAAG,IAAI,cAAc,CAAqB,yCAAyC,CAAC,CAAC;AAC9G,MAAM,4BAA4B,GAAG,IAAI,cAAc,CAA4B,kCAAkC,EAAE;IACrH,OAAO,EAAE,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC;AAC5C,CAAA,CAAC,CAAC;AAeG,MAAO,kBAAmB,SAAQ,UAAU,CAAA;AA0BhD,IAAA,WAAA,CAAY,OAAuC,EAAA;;AACjD,QAAA,KAAK,EAAE,CAAC;AAvBF,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAEjB,QAAA,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAC7C,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAC1B,oBAAoB,EAAE,EACtB,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAChC,CAAC;AAgBA,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;KACrE;IAfD,IACW,QAAQ,CAAC,KAAc,EAAA;AAChC,QAAA,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClD,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,EAAE;AACpC,YAAA,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;AAC/B,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,IAAI,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChG,SAAA;KACF;AACD,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAOM,IAAA,OAAO,MAAM,GAAA;QAClB,OAAO,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;KACxD;AAEM,IAAA,OAAO,OAAO,GAAA;QACnB,OAAO;AACL,YAAA,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,UAAU,CAAC,KAAK;AAC5B,YAAA,IAAI,EAAE,CAAC,4BAA4B,EAAE,iBAAiB,CAAC;SACxD,CAAC;KACH;;gHAzCU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAVlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,4BAA4B;AACrC,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AAClD,SAAA;KACF,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAKU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAb9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AAClD,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,iBAAiB,EAAE,8BAA8B;AAClD,qBAAA;iBACF,CAAA;iGAgBY,QAAQ,EAAA,CAAA;sBADlB,KAAK;;;MCpCK,qBAAqB,CAAA;IAShC,WAA6B,CAAA,OAAgC,EAAmB,QAAmB,EAAA;AAAtE,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;AAAmB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AAL5F,QAAA,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;AAGpB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAc,CAAC;AAG/D,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACnC;IAEM,QAAQ,GAAA;QACb,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,SAAA;KACF;AAEM,IAAA,WAAW,CAAC,EAAE,qBAAqB,EAAE,kBAAkB,EAAoC,EAAA;AAChG,QAAA,IAAI,EAAC,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlB,kBAAkB,CAAE,WAAW,CAAA,IAAI,CAAA,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlB,kBAAkB,CAAE,aAAa,OAAK,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlB,kBAAkB,CAAE,YAAY,CAAA,EAAE;AAC9G,YAAA,IAAI,kBAAkB,KAAlB,IAAA,IAAA,kBAAkB,uBAAlB,kBAAkB,CAAE,YAAY,EAAE;gBACpC,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,OAAO,EAAE,CAAC;AAChB,aAAA;AACF,SAAA;KACF;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAEO,OAAO,GAAA;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC3B,SAAA;KACF;IAEO,eAAe,GAAA;QACrB,UAAU,CAAC,MAAK;;YACd,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAb,IAAI,CAAC,QAAQ,GAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,KAAK,KAAI;;AACpE,gBAAA,IAAI,IAAI,CAAC,qBAAqB,KAAI,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,CAAC,WAAW,CAAA,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA,EAAE;AAChI,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,iBAAA;aACF,CAAC,CAAC,CAAA;SACJ,EAAE,CAAC,CAAC,CAAC;KACP;;mHAhDU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,mBAAmB;iBAC9B,CAAA;yHAKQ,qBAAqB,EAAA,CAAA;sBAD3B,KAAK;gBAIU,eAAe,EAAA,CAAA;sBAD9B,MAAM;;;ACRT,MAAM,WAAW,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AAC7D,MAAM,OAAO,GAAG,CAAC,qBAAqB,CAAC,CAAC;MAM3B,UAAU,CAAA;;wGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EAPF,OAAA,EAAA,CAAA,kBAAkB,EAAE,kBAAkB,EAC1C,qBAAqB,CAI1B,EAAA,OAAA,EAAA,CAAA,YAAY,EALH,kBAAkB,EAAE,kBAAkB,EAC1C,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAMzB,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAFX,YAAY,CAAA,EAAA,CAAA,CAAA;4FAEX,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;oBACrC,OAAO,EAAE,CAAC,YAAY,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;iBACpD,CAAA;;;MCHY,SAAS,CAAA;AAHtB,IAAA,WAAA,GAAA;;AAIkB,QAAA,IAAY,CAAA,YAAA,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,MAAM,CAAC;QACtD,IAAS,CAAA,SAAA,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CACjF,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,EAC7C,oBAAoB,EAAE,EACtB,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAChC,CAAC;KAiBH;AAfC,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;KACnC;IAEM,WAAW,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC;KAC7C;IAEM,SAAS,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC7B;IAEM,UAAU,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KAC/B;;uGAvBU,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAT,SAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,cAFR,MAAM,EAAA,CAAA,CAAA;4FAEP,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACPD;;AAEG;;;;"}
@@ -1,4 +1,4 @@
1
- import { animation, style, animate } from '@angular/animations';
1
+ import { animation, style, animate, transition, query, animateChild } from '@angular/animations';
2
2
 
3
3
  const DEFAULT_ANIMATION_TIMING_FN = 'ease';
4
4
  const DEFAULT_ANIMATION_DURATION = '250ms';
@@ -9,12 +9,12 @@ const DEFAULT_ANIMATION_PARAMS = {
9
9
  };
10
10
 
11
11
  const expand = animation([
12
- style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0 }),
13
- animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: '*', paddingTop: '*', paddingBottom: '*' })),
12
+ style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0 }),
13
+ animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: '*', paddingTop: '*', paddingBottom: '*', opacity: 1 })),
14
14
  ], {
15
15
  params: DEFAULT_ANIMATION_PARAMS,
16
16
  });
17
- const collapse = animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0 }))], {
17
+ const collapse = animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0 }))], {
18
18
  params: DEFAULT_ANIMATION_PARAMS,
19
19
  });
20
20
 
@@ -57,9 +57,11 @@ const slideOutUp = slideOutY('-100%');
57
57
  const slideOutLeft = slideOutX('-100%');
58
58
  const slideOutRight = slideOutX('100%');
59
59
 
60
+ const waitForChildAnimations = transition(':enter, :leave', [query('@*', animateChild(), { optional: true })]);
61
+
60
62
  /**
61
63
  * Generated bundle index. Do not edit.
62
64
  */
63
65
 
64
- export { collapse, expand, fadeIn, fadeOut, slideInDown, slideInLeft, slideInRight, slideInUp, slideInX, slideInY, slideOutDown, slideOutLeft, slideOutRight, slideOutUp, slideOutX, slideOutY };
66
+ export { collapse, expand, fadeIn, fadeOut, slideInDown, slideInLeft, slideInRight, slideInUp, slideInX, slideInY, slideOutDown, slideOutLeft, slideOutRight, slideOutUp, slideOutX, slideOutY, waitForChildAnimations };
65
67
  //# sourceMappingURL=odx-angular-animations.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-animations.mjs","sources":["../../../../libs/angular/animations/src/lib/config.ts","../../../../libs/angular/animations/src/lib/expand.ts","../../../../libs/angular/animations/src/lib/fade.ts","../../../../libs/angular/animations/src/lib/slide.ts","../../../../libs/angular/animations/src/odx-angular-animations.ts"],"sourcesContent":["export const DEFAULT_ANIMATION_TIMING_FN = 'ease';\nexport const DEFAULT_ANIMATION_DURATION = '250ms';\nexport const DEFAULT_ANIMATION_PARAMS = {\n timingFn: DEFAULT_ANIMATION_TIMING_FN,\n duration: DEFAULT_ANIMATION_DURATION,\n delay: '0ms',\n};\n","import { animate, animation, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\nexport const expand = animation(\n [\n style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0 }),\n animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: '*', paddingTop: '*', paddingBottom: '*' })),\n ],\n {\n params: DEFAULT_ANIMATION_PARAMS,\n }\n);\n\nexport const collapse = animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0 }))], {\n params: DEFAULT_ANIMATION_PARAMS,\n});\n","import { animate, animation, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\nexport const fadeIn = (to = 1) =>\n animation([style({ opacity: 0 }), animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {\n params: DEFAULT_ANIMATION_PARAMS,\n });\n\nexport const fadeOut = (to = 0) =>\n animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {\n params: DEFAULT_ANIMATION_PARAMS,\n });\n","import { animate, animation, AnimationReferenceMetadata, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\nfunction createSlideInAnimation(from: string, direction: 'X' | 'Y'): AnimationReferenceMetadata {\n return animation(\n [\n style({ transform: `translate${direction}({{ from }})` }),\n animate('{{duration}} {{ delay }} {{ timingFn }}', style({ transform: `translate${direction}(0)` })),\n ],\n {\n params: {\n ...DEFAULT_ANIMATION_PARAMS,\n from,\n },\n }\n );\n}\n\nfunction createSlideOutAnimation(to: string, direction: 'X' | 'Y'): AnimationReferenceMetadata {\n return animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ transform: `translate${direction}({{ to }})` }))], {\n params: {\n ...DEFAULT_ANIMATION_PARAMS,\n to,\n },\n });\n}\n\nexport const slideInX = (from: string) => createSlideInAnimation(from, 'X');\nexport const slideInY = (from: string) => createSlideInAnimation(from, 'Y');\nexport const slideInDown = slideInY('-100%');\nexport const slideInUp = slideInY('100%');\nexport const slideInLeft = slideInX('-100%');\nexport const slideInRight = slideInX('100%');\n\nexport const slideOutX = (to: string) => createSlideOutAnimation(to, 'X');\nexport const slideOutY = (to: string) => createSlideOutAnimation(to, 'Y');\nexport const slideOutDown = slideOutY('100%');\nexport const slideOutUp = slideOutY('-100%');\nexport const slideOutLeft = slideOutX('-100%');\nexport const slideOutRight = slideOutX('100%');\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-animations.mjs","sources":["../../../../libs/angular/animations/src/lib/config.ts","../../../../libs/angular/animations/src/lib/expand.ts","../../../../libs/angular/animations/src/lib/fade.ts","../../../../libs/angular/animations/src/lib/slide.ts","../../../../libs/angular/animations/src/lib/wait-for-child-animations.ts","../../../../libs/angular/animations/src/odx-angular-animations.ts"],"sourcesContent":["export const DEFAULT_ANIMATION_TIMING_FN = 'ease';\nexport const DEFAULT_ANIMATION_DURATION = '250ms';\nexport const DEFAULT_ANIMATION_PARAMS = {\n timingFn: DEFAULT_ANIMATION_TIMING_FN,\n duration: DEFAULT_ANIMATION_DURATION,\n delay: '0ms',\n};\n","import { animate, animation, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\nexport const expand = animation(\n [\n style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0 }),\n animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: '*', paddingTop: '*', paddingBottom: '*', opacity: 1 })),\n ],\n {\n params: DEFAULT_ANIMATION_PARAMS,\n }\n);\n\nexport const collapse = animation(\n [animate('{{duration}} {{ delay }} {{ timingFn }}', style({ height: 0, minHeight: 0, paddingTop: 0, paddingBottom: 0, opacity: 0 }))],\n {\n params: DEFAULT_ANIMATION_PARAMS,\n }\n);\n","import { animate, animation, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\nexport const fadeIn = (to = 1) =>\n animation([style({ opacity: 0 }), animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {\n params: DEFAULT_ANIMATION_PARAMS,\n });\n\nexport const fadeOut = (to = 0) =>\n animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ opacity: to }))], {\n params: DEFAULT_ANIMATION_PARAMS,\n });\n","import { animate, animation, AnimationReferenceMetadata, style } from '@angular/animations';\nimport { DEFAULT_ANIMATION_PARAMS } from './config';\n\nfunction createSlideInAnimation(from: string, direction: 'X' | 'Y'): AnimationReferenceMetadata {\n return animation(\n [\n style({ transform: `translate${direction}({{ from }})` }),\n animate('{{duration}} {{ delay }} {{ timingFn }}', style({ transform: `translate${direction}(0)` })),\n ],\n {\n params: {\n ...DEFAULT_ANIMATION_PARAMS,\n from,\n },\n }\n );\n}\n\nfunction createSlideOutAnimation(to: string, direction: 'X' | 'Y'): AnimationReferenceMetadata {\n return animation([animate('{{duration}} {{ delay }} {{ timingFn }}', style({ transform: `translate${direction}({{ to }})` }))], {\n params: {\n ...DEFAULT_ANIMATION_PARAMS,\n to,\n },\n });\n}\n\nexport const slideInX = (from: string) => createSlideInAnimation(from, 'X');\nexport const slideInY = (from: string) => createSlideInAnimation(from, 'Y');\nexport const slideInDown = slideInY('-100%');\nexport const slideInUp = slideInY('100%');\nexport const slideInLeft = slideInX('-100%');\nexport const slideInRight = slideInX('100%');\n\nexport const slideOutX = (to: string) => createSlideOutAnimation(to, 'X');\nexport const slideOutY = (to: string) => createSlideOutAnimation(to, 'Y');\nexport const slideOutDown = slideOutY('100%');\nexport const slideOutUp = slideOutY('-100%');\nexport const slideOutLeft = slideOutX('-100%');\nexport const slideOutRight = slideOutX('100%');\n","import { animateChild, query, transition } from '@angular/animations';\n\nexport const waitForChildAnimations = transition(':enter, :leave', [query('@*', animateChild(), { optional: true })]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}