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

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 (315) 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 +12 -0
  40. package/components/rail-navigation/lib/rail-navigation.module.d.ts +9 -0
  41. package/components/switch/index.d.ts +2 -0
  42. package/components/switch/lib/switch.module.d.ts +9 -0
  43. package/components/switch/lib/switch.validator.d.ts +6 -0
  44. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +5 -1
  45. package/esm2020/animations/index.mjs +2 -1
  46. package/esm2020/animations/lib/wait-for-child-animations.mjs +3 -0
  47. package/esm2020/cdk/active-indicator/index.mjs +3 -0
  48. package/esm2020/cdk/active-indicator/lib/active-indicator.directive.mjs +127 -0
  49. package/esm2020/cdk/active-indicator/lib/models/active-indicator-direction.mjs +5 -0
  50. package/esm2020/cdk/active-indicator/lib/models/active-indicator-position.mjs +6 -0
  51. package/esm2020/cdk/active-indicator/lib/models/index.mjs +3 -0
  52. package/esm2020/cdk/active-indicator/odx-angular-cdk-active-indicator.mjs +5 -0
  53. package/esm2020/cdk/checkbox-control/lib/checkbox-control.directive.mjs +11 -13
  54. package/esm2020/cdk/custom-form-control/lib/control.directive.mjs +4 -4
  55. package/esm2020/cdk/custom-form-control/lib/custom-form-control.mjs +20 -47
  56. package/esm2020/cdk/dynamic-view/lib/dynamic-view.component.mjs +4 -4
  57. package/esm2020/cdk/dynamic-view/lib/dynamic-view.directive.mjs +5 -5
  58. package/esm2020/cdk/dynamic-view/lib/dynamic-view.service.mjs +11 -9
  59. package/esm2020/cdk/dynamic-view/lib/facade/dynamic-view-ref.mjs +1 -1
  60. package/esm2020/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +12 -5
  61. package/esm2020/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +9 -5
  62. package/esm2020/cdk/dynamic-view/lib/models/dynamic-view-options.mjs +1 -1
  63. package/esm2020/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.mjs +10 -0
  64. package/esm2020/cdk/dynamic-view/lib/tokens/index.mjs +2 -1
  65. package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +4 -4
  66. package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +4 -4
  67. package/esm2020/cdk/expandable/lib/expandable.module.mjs +5 -5
  68. package/esm2020/cdk/radio-group-control/lib/radio-control.directive.mjs +5 -5
  69. package/esm2020/cdk/radio-group-control/lib/radio-group-control.directive.mjs +4 -4
  70. package/esm2020/cdk/radio-group-control/lib/radio-group-control.module.mjs +5 -5
  71. package/esm2020/components/accordion/lib/accordion.component.mjs +4 -4
  72. package/esm2020/components/accordion/lib/accordion.module.mjs +5 -5
  73. package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +4 -4
  74. package/esm2020/components/accordion/lib/directives/accordion-item-title.mjs +4 -4
  75. package/esm2020/components/action-group/action-group.component.mjs +4 -4
  76. package/esm2020/components/area-header/area-header.component.mjs +4 -4
  77. package/esm2020/components/area-header/area-header.module.mjs +5 -5
  78. package/esm2020/components/area-header/directives/area-header-content.directive.mjs +4 -4
  79. package/esm2020/components/area-header/directives/area-header-subtitle.directive.mjs +4 -4
  80. package/esm2020/components/avatar/lib/avatar.component.mjs +4 -4
  81. package/esm2020/components/badge/lib/badge.component.mjs +6 -6
  82. package/esm2020/components/badge/lib/badge.directive.mjs +7 -7
  83. package/esm2020/components/button/lib/button.component.mjs +5 -5
  84. package/esm2020/components/button-group/lib/button-group.component.mjs +4 -4
  85. package/esm2020/components/checkbox/index.mjs +3 -1
  86. package/esm2020/components/checkbox/lib/checkbox.component.mjs +5 -5
  87. package/esm2020/components/checkbox/lib/checkbox.module.mjs +19 -0
  88. package/esm2020/components/checkbox/lib/checkbox.validator.mjs +28 -0
  89. package/esm2020/components/chip/lib/chip.component.mjs +4 -4
  90. package/esm2020/components/circular-progress/lib/circular-progress.component.mjs +4 -4
  91. package/esm2020/components/content-box/lib/content-box.component.mjs +4 -4
  92. package/esm2020/components/content-box/lib/content-box.module.mjs +5 -5
  93. package/esm2020/components/content-box/lib/directives/content-box-footer-directive.mjs +4 -4
  94. package/esm2020/components/content-box/lib/directives/content-box-header-directive.mjs +4 -4
  95. package/esm2020/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +4 -4
  96. package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +11 -13
  97. package/esm2020/components/form-field/lib/directives/form-field-control.directive.mjs +20 -13
  98. package/esm2020/components/form-field/lib/directives/form-field-error.directive.mjs +4 -4
  99. package/esm2020/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -4
  100. package/esm2020/components/form-field/lib/directives/form-field-label.directive.mjs +4 -4
  101. package/esm2020/components/form-field/lib/directives/form.directive.mjs +4 -4
  102. package/esm2020/components/form-field/lib/form-field.component.mjs +4 -4
  103. package/esm2020/components/form-field/lib/form-field.config.mjs +1 -2
  104. package/esm2020/components/form-field/lib/form-field.module.mjs +5 -5
  105. package/esm2020/components/form-field/lib/form-field.service.mjs +4 -4
  106. package/esm2020/components/form-field/lib/services/form-field-error.service.mjs +4 -4
  107. package/esm2020/components/header/lib/directives/header-avatar.directive.mjs +4 -4
  108. package/esm2020/components/header/lib/directives/header-title.directive.mjs +4 -4
  109. package/esm2020/components/header/lib/header.component.mjs +4 -4
  110. package/esm2020/components/header/lib/header.module.mjs +5 -5
  111. package/esm2020/components/icon/lib/icon.component.mjs +4 -4
  112. package/esm2020/components/link/link.directive.mjs +4 -4
  113. package/esm2020/components/list/index.mjs +4 -0
  114. package/esm2020/components/list/lib/components/index.mjs +2 -0
  115. package/esm2020/components/list/lib/components/list-item.component.mjs +46 -0
  116. package/esm2020/components/list/lib/list.component.mjs +13 -0
  117. package/esm2020/components/list/lib/list.module.mjs +19 -0
  118. package/esm2020/components/list/odx-angular-components-list.mjs +5 -0
  119. package/esm2020/components/loading-spinner/lib/loading-spinner.component.mjs +4 -4
  120. package/esm2020/components/loading-spinner/lib/loading-spinner.directive.mjs +7 -7
  121. package/esm2020/components/loading-spinner/lib/loading-spinner.module.mjs +5 -5
  122. package/esm2020/components/loading-spinner/lib/loading-spinner.service.mjs +4 -4
  123. package/esm2020/components/logo/logo.directive.mjs +4 -4
  124. package/esm2020/components/main-menu/lib/directives/main-menu-button.directive.mjs +4 -4
  125. package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +4 -4
  126. package/esm2020/components/main-menu/lib/main-menu.component.mjs +4 -4
  127. package/esm2020/components/main-menu/lib/main-menu.module.mjs +5 -5
  128. package/esm2020/components/main-menu/lib/main-menu.service.mjs +4 -4
  129. package/esm2020/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -4
  130. package/esm2020/components/modal/lib/components/modal-header/modal-header.component.mjs +4 -4
  131. package/esm2020/components/modal/lib/directives/modal-close.directive.mjs +4 -4
  132. package/esm2020/components/modal/lib/directives/modal-content.directive.mjs +4 -4
  133. package/esm2020/components/modal/lib/directives/modal-dismiss.directive.mjs +4 -4
  134. package/esm2020/components/modal/lib/modal.component.mjs +23 -14
  135. package/esm2020/components/modal/lib/modal.config.mjs +3 -1
  136. package/esm2020/components/modal/lib/modal.directive.mjs +4 -4
  137. package/esm2020/components/modal/lib/modal.module.mjs +5 -5
  138. package/esm2020/components/modal/lib/modal.service.mjs +8 -21
  139. package/esm2020/components/modal/lib/models/index.mjs +2 -1
  140. package/esm2020/components/modal/lib/models/modal-options.mjs +1 -1
  141. package/esm2020/components/modal/lib/models/modal-variant.mjs +5 -0
  142. package/esm2020/components/modal/lib/services/open-modal-manager.service.mjs +4 -4
  143. package/esm2020/components/progress/lib/progress.component.mjs +4 -4
  144. package/esm2020/components/radio-group/lib/components/radio-button/radio-button.component.mjs +5 -5
  145. package/esm2020/components/radio-group/lib/radio-group.component.mjs +4 -4
  146. package/esm2020/components/radio-group/lib/radio-group.module.mjs +5 -5
  147. package/esm2020/components/rail-navigation/index.mjs +4 -0
  148. package/esm2020/components/rail-navigation/lib/components/rail-navigation-item.component.mjs +43 -0
  149. package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +41 -0
  150. package/esm2020/components/rail-navigation/lib/rail-navigation.module.mjs +19 -0
  151. package/esm2020/components/rail-navigation/odx-angular-components-rail-navigation.mjs +5 -0
  152. package/esm2020/components/switch/index.mjs +3 -1
  153. package/esm2020/components/switch/lib/switch.component.mjs +5 -5
  154. package/esm2020/components/switch/lib/switch.module.mjs +19 -0
  155. package/esm2020/components/switch/lib/switch.validator.mjs +28 -0
  156. package/esm2020/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +5 -5
  157. package/esm2020/components/toggle-button-group/lib/toggle-button-group.component.mjs +20 -11
  158. package/esm2020/components/toggle-button-group/lib/toggle-button-group.module.mjs +5 -5
  159. package/esm2020/lib/controllers/controller.mjs +10 -9
  160. package/esm2020/lib/controllers/disabled.controller.mjs +7 -6
  161. package/esm2020/lib/controllers/readonly.controller.mjs +7 -6
  162. package/esm2020/lib/core.module.mjs +5 -5
  163. package/esm2020/lib/directives/click-outside.directive.mjs +4 -4
  164. package/esm2020/lib/services/window-ref.mjs +4 -4
  165. package/esm2020/rxjs/index.mjs +2 -2
  166. package/esm2020/rxjs/lib/from-element-resize.mjs +14 -0
  167. package/esm2020/utils/lib/helpers/angular.mjs +5 -2
  168. package/esm2020/utils/lib/helpers/dom.mjs +24 -1
  169. package/fesm2015/odx-angular-animations.mjs +4 -2
  170. package/fesm2015/odx-angular-animations.mjs.map +1 -1
  171. package/fesm2015/odx-angular-cdk-active-indicator.mjs +142 -0
  172. package/fesm2015/odx-angular-cdk-active-indicator.mjs.map +1 -0
  173. package/fesm2015/odx-angular-cdk-checkbox-control.mjs +10 -12
  174. package/fesm2015/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  175. package/fesm2015/odx-angular-cdk-custom-form-control.mjs +24 -51
  176. package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  177. package/fesm2015/odx-angular-cdk-dynamic-view.mjs +46 -25
  178. package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  179. package/fesm2015/odx-angular-cdk-expandable.mjs +10 -10
  180. package/fesm2015/odx-angular-cdk-expandable.mjs.map +1 -1
  181. package/fesm2015/odx-angular-cdk-radio-group-control.mjs +11 -11
  182. package/fesm2015/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  183. package/fesm2015/odx-angular-components-accordion.mjs +13 -13
  184. package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
  185. package/fesm2015/odx-angular-components-action-group.mjs +3 -3
  186. package/fesm2015/odx-angular-components-action-group.mjs.map +1 -1
  187. package/fesm2015/odx-angular-components-area-header.mjs +13 -13
  188. package/fesm2015/odx-angular-components-area-header.mjs.map +1 -1
  189. package/fesm2015/odx-angular-components-avatar.mjs +3 -3
  190. package/fesm2015/odx-angular-components-avatar.mjs.map +1 -1
  191. package/fesm2015/odx-angular-components-badge.mjs +10 -10
  192. package/fesm2015/odx-angular-components-badge.mjs.map +1 -1
  193. package/fesm2015/odx-angular-components-button-group.mjs +3 -3
  194. package/fesm2015/odx-angular-components-button-group.mjs.map +1 -1
  195. package/fesm2015/odx-angular-components-button.mjs +4 -5
  196. package/fesm2015/odx-angular-components-button.mjs.map +1 -1
  197. package/fesm2015/odx-angular-components-checkbox.mjs +47 -7
  198. package/fesm2015/odx-angular-components-checkbox.mjs.map +1 -1
  199. package/fesm2015/odx-angular-components-chip.mjs +3 -3
  200. package/fesm2015/odx-angular-components-chip.mjs.map +1 -1
  201. package/fesm2015/odx-angular-components-circular-progress.mjs +3 -3
  202. package/fesm2015/odx-angular-components-circular-progress.mjs.map +1 -1
  203. package/fesm2015/odx-angular-components-content-box.mjs +13 -13
  204. package/fesm2015/odx-angular-components-content-box.mjs.map +1 -1
  205. package/fesm2015/odx-angular-components-form-field.mjs +52 -51
  206. package/fesm2015/odx-angular-components-form-field.mjs.map +1 -1
  207. package/fesm2015/odx-angular-components-header.mjs +13 -13
  208. package/fesm2015/odx-angular-components-header.mjs.map +1 -1
  209. package/fesm2015/odx-angular-components-icon.mjs +3 -3
  210. package/fesm2015/odx-angular-components-icon.mjs.map +1 -1
  211. package/fesm2015/odx-angular-components-link.mjs +3 -3
  212. package/fesm2015/odx-angular-components-link.mjs.map +1 -1
  213. package/fesm2015/odx-angular-components-list.mjs +79 -0
  214. package/fesm2015/odx-angular-components-list.mjs.map +1 -0
  215. package/fesm2015/odx-angular-components-loading-spinner.mjs +16 -16
  216. package/fesm2015/odx-angular-components-loading-spinner.mjs.map +1 -1
  217. package/fesm2015/odx-angular-components-logo.mjs +3 -3
  218. package/fesm2015/odx-angular-components-logo.mjs.map +1 -1
  219. package/fesm2015/odx-angular-components-main-menu.mjs +16 -16
  220. package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
  221. package/fesm2015/odx-angular-components-modal.mjs +61 -58
  222. package/fesm2015/odx-angular-components-modal.mjs.map +1 -1
  223. package/fesm2015/odx-angular-components-progress.mjs +3 -3
  224. package/fesm2015/odx-angular-components-progress.mjs.map +1 -1
  225. package/fesm2015/odx-angular-components-radio-group.mjs +11 -11
  226. package/fesm2015/odx-angular-components-radio-group.mjs.map +1 -1
  227. package/fesm2015/odx-angular-components-rail-navigation.mjs +97 -0
  228. package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -0
  229. package/fesm2015/odx-angular-components-switch.mjs +47 -7
  230. package/fesm2015/odx-angular-components-switch.mjs.map +1 -1
  231. package/fesm2015/odx-angular-components-toggle-button-group.mjs +26 -18
  232. package/fesm2015/odx-angular-components-toggle-button-group.mjs.map +1 -1
  233. package/fesm2015/odx-angular-rxjs.mjs +15 -6
  234. package/fesm2015/odx-angular-rxjs.mjs.map +1 -1
  235. package/fesm2015/odx-angular-utils.mjs +28 -2
  236. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  237. package/fesm2015/odx-angular.mjs +32 -28
  238. package/fesm2015/odx-angular.mjs.map +1 -1
  239. package/fesm2020/odx-angular-animations.mjs +4 -2
  240. package/fesm2020/odx-angular-animations.mjs.map +1 -1
  241. package/fesm2020/odx-angular-cdk-active-indicator.mjs +142 -0
  242. package/fesm2020/odx-angular-cdk-active-indicator.mjs.map +1 -0
  243. package/fesm2020/odx-angular-cdk-checkbox-control.mjs +10 -12
  244. package/fesm2020/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  245. package/fesm2020/odx-angular-cdk-custom-form-control.mjs +22 -49
  246. package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  247. package/fesm2020/odx-angular-cdk-dynamic-view.mjs +42 -22
  248. package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  249. package/fesm2020/odx-angular-cdk-expandable.mjs +10 -10
  250. package/fesm2020/odx-angular-cdk-expandable.mjs.map +1 -1
  251. package/fesm2020/odx-angular-cdk-radio-group-control.mjs +11 -11
  252. package/fesm2020/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  253. package/fesm2020/odx-angular-components-accordion.mjs +13 -13
  254. package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
  255. package/fesm2020/odx-angular-components-action-group.mjs +3 -3
  256. package/fesm2020/odx-angular-components-action-group.mjs.map +1 -1
  257. package/fesm2020/odx-angular-components-area-header.mjs +13 -13
  258. package/fesm2020/odx-angular-components-area-header.mjs.map +1 -1
  259. package/fesm2020/odx-angular-components-avatar.mjs +3 -3
  260. package/fesm2020/odx-angular-components-avatar.mjs.map +1 -1
  261. package/fesm2020/odx-angular-components-badge.mjs +10 -10
  262. package/fesm2020/odx-angular-components-badge.mjs.map +1 -1
  263. package/fesm2020/odx-angular-components-button-group.mjs +3 -3
  264. package/fesm2020/odx-angular-components-button-group.mjs.map +1 -1
  265. package/fesm2020/odx-angular-components-button.mjs +4 -4
  266. package/fesm2020/odx-angular-components-button.mjs.map +1 -1
  267. package/fesm2020/odx-angular-components-checkbox.mjs +47 -7
  268. package/fesm2020/odx-angular-components-checkbox.mjs.map +1 -1
  269. package/fesm2020/odx-angular-components-chip.mjs +3 -3
  270. package/fesm2020/odx-angular-components-chip.mjs.map +1 -1
  271. package/fesm2020/odx-angular-components-circular-progress.mjs +3 -3
  272. package/fesm2020/odx-angular-components-circular-progress.mjs.map +1 -1
  273. package/fesm2020/odx-angular-components-content-box.mjs +13 -13
  274. package/fesm2020/odx-angular-components-content-box.mjs.map +1 -1
  275. package/fesm2020/odx-angular-components-form-field.mjs +52 -51
  276. package/fesm2020/odx-angular-components-form-field.mjs.map +1 -1
  277. package/fesm2020/odx-angular-components-header.mjs +13 -13
  278. package/fesm2020/odx-angular-components-header.mjs.map +1 -1
  279. package/fesm2020/odx-angular-components-icon.mjs +3 -3
  280. package/fesm2020/odx-angular-components-icon.mjs.map +1 -1
  281. package/fesm2020/odx-angular-components-link.mjs +3 -3
  282. package/fesm2020/odx-angular-components-link.mjs.map +1 -1
  283. package/fesm2020/odx-angular-components-list.mjs +78 -0
  284. package/fesm2020/odx-angular-components-list.mjs.map +1 -0
  285. package/fesm2020/odx-angular-components-loading-spinner.mjs +16 -16
  286. package/fesm2020/odx-angular-components-loading-spinner.mjs.map +1 -1
  287. package/fesm2020/odx-angular-components-logo.mjs +3 -3
  288. package/fesm2020/odx-angular-components-logo.mjs.map +1 -1
  289. package/fesm2020/odx-angular-components-main-menu.mjs +16 -16
  290. package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
  291. package/fesm2020/odx-angular-components-modal.mjs +61 -58
  292. package/fesm2020/odx-angular-components-modal.mjs.map +1 -1
  293. package/fesm2020/odx-angular-components-progress.mjs +3 -3
  294. package/fesm2020/odx-angular-components-progress.mjs.map +1 -1
  295. package/fesm2020/odx-angular-components-radio-group.mjs +11 -11
  296. package/fesm2020/odx-angular-components-radio-group.mjs.map +1 -1
  297. package/fesm2020/odx-angular-components-rail-navigation.mjs +96 -0
  298. package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -0
  299. package/fesm2020/odx-angular-components-switch.mjs +47 -7
  300. package/fesm2020/odx-angular-components-switch.mjs.map +1 -1
  301. package/fesm2020/odx-angular-components-toggle-button-group.mjs +26 -18
  302. package/fesm2020/odx-angular-components-toggle-button-group.mjs.map +1 -1
  303. package/fesm2020/odx-angular-rxjs.mjs +15 -6
  304. package/fesm2020/odx-angular-rxjs.mjs.map +1 -1
  305. package/fesm2020/odx-angular-utils.mjs +28 -2
  306. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  307. package/fesm2020/odx-angular.mjs +32 -28
  308. package/fesm2020/odx-angular.mjs.map +1 -1
  309. package/package.json +26 -2
  310. package/rxjs/index.d.ts +1 -1
  311. package/rxjs/lib/from-element-resize.d.ts +2 -0
  312. package/utils/lib/helpers/angular.d.ts +2 -1
  313. package/utils/lib/helpers/dom.d.ts +5 -1
  314. package/esm2020/rxjs/lib/mark-for-check.mjs +0 -5
  315. package/rxjs/lib/mark-for-check.d.ts +0 -3
@@ -2,16 +2,15 @@ import * as i0 from '@angular/core';
2
2
  import { Injectable, Directive, inject, TemplateRef, Input, Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, ContentChild, NgModule } from '@angular/core';
3
3
  import { Controller, DisabledController, ReadonlyController, CoreModule } from '@odx/angular';
4
4
  import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
5
+ import { __decorate, __metadata } from 'tslib';
5
6
  import { Validators, NgControl, FormControl } from '@angular/forms';
7
+ import { CSSComponent } from '@odx/angular/internal';
6
8
  import { createModuleConfigTokens, isTemplateRef, isFunction, untilDestroyed, injectElement, reactiveAttributeBinding, booleanToOptionalAttributeString, reactiveClassBinding, provideModuleConfig } from '@odx/angular/utils';
7
9
  import { BehaviorSubject, shareReplay, map, switchMap, merge, of, distinctUntilChanged, tap, EMPTY, startWith, combineLatest, fromEvent, share, NEVER } from 'rxjs';
8
- import { __decorate, __metadata } from 'tslib';
9
- import { CSSComponent } from '@odx/angular/internal';
10
10
  import * as i1 from '@angular/common';
11
11
 
12
12
  const { FormFieldDefaultModuleConfig, FormFieldModuleConfig, injectFormFieldModuleConfig } = createModuleConfigTokens('FormField', '@odx/angular/components/form-field', {
13
13
  errors: {},
14
- blurPredicate: ({ tagName }) => ['input', 'select', 'textarea'].includes(tagName.toLowerCase()),
15
14
  updateOn: ['blur'],
16
15
  });
17
16
 
@@ -57,9 +56,9 @@ class FormFieldService extends Controller {
57
56
  }
58
57
  }
59
58
  FormFieldService.ID = 0;
60
- FormFieldService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
61
- FormFieldService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldService });
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldService, decorators: [{
59
+ FormFieldService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
60
+ FormFieldService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldService });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldService, decorators: [{
63
62
  type: Injectable
64
63
  }] });
65
64
 
@@ -109,9 +108,9 @@ class FormFieldErrorService {
109
108
  return isFunction(getMessage) ? { message: getMessage(context) } : null;
110
109
  }
111
110
  }
112
- FormFieldErrorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
113
- FormFieldErrorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldErrorService });
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldErrorService, decorators: [{
111
+ FormFieldErrorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
112
+ FormFieldErrorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldErrorService });
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldErrorService, decorators: [{
115
114
  type: Injectable
116
115
  }] });
117
116
 
@@ -123,12 +122,12 @@ let FormDirective = class FormDirective {
123
122
  this.reset$ = fromEvent(this.element.nativeElement, 'reset').pipe(this.takeUntilDestroyed(), share());
124
123
  }
125
124
  };
126
- FormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
127
- FormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: FormDirective, isStandalone: true, selector: "form[odxForm]", ngImport: i0 });
125
+ FormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
126
+ FormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: FormDirective, isStandalone: true, selector: "form[odxForm]", ngImport: i0 });
128
127
  FormDirective = __decorate([
129
128
  CSSComponent('form')
130
129
  ], FormDirective);
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormDirective, decorators: [{
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormDirective, decorators: [{
132
131
  type: Directive,
133
132
  args: [{
134
133
  standalone: true,
@@ -136,19 +135,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImpor
136
135
  }]
137
136
  }] });
138
137
 
139
- class FormFieldControlDirective {
138
+ let FormFieldControlDirective = class FormFieldControlDirective {
140
139
  constructor() {
141
140
  var _a, _b, _c, _d;
142
141
  this.config = injectFormFieldModuleConfig();
143
- this.element = injectElement();
144
142
  this.ngControl = inject(NgControl, { optional: true, self: true });
145
143
  this.form = inject(FormDirective, { optional: true, skipSelf: true });
146
144
  this.onFormReset$ = (_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.reset$) !== null && _b !== void 0 ? _b : EMPTY;
147
145
  this.onFormSubmit$ = (_d = (_c = this.form) === null || _c === void 0 ? void 0 : _c.submit$) !== null && _d !== void 0 ? _d : EMPTY;
148
146
  this.formFieldService = inject(FormFieldService);
149
147
  this.formFieldErrorService = inject(FormFieldErrorService);
150
- this.isInput = this.config.blurPredicate(this.element.nativeElement);
151
148
  this.takeUntilDestroyed = untilDestroyed();
149
+ this.element = injectElement();
152
150
  reactiveAttributeBinding(this.formFieldService.controlId$, 'id');
153
151
  reactiveAttributeBinding(this.formFieldService.controlHintId$, 'aria-describedby');
154
152
  reactiveAttributeBinding(this.formFieldService.isReadonly$, 'readonly');
@@ -168,17 +166,17 @@ class FormFieldControlDirective {
168
166
  const changes$ = merge(this.onFormReset$.pipe(tap(() => { var _a; return (_a = this.formFieldErrorService) === null || _a === void 0 ? void 0 : _a.setError(null); })), controlChanges$.pipe(tap(() => { var _a; return (_a = this.formFieldErrorService) === null || _a === void 0 ? void 0 : _a.setError(control.errors); })));
169
167
  changes$.pipe(this.takeUntilDestroyed()).subscribe();
170
168
  }
169
+ ngOnDestroy() {
170
+ this.formFieldService.removeControl();
171
+ }
171
172
  registerOnBlur({ valueChanges }) {
172
- if (this.config.updateOn.includes('blur') && this.isInput) {
173
+ if (this.config.updateOn.includes('blur')) {
173
174
  return fromEvent(this.element.nativeElement, 'focusout').pipe(switchMap(() => valueChanges.pipe(startWith(true))));
174
175
  }
175
176
  return EMPTY;
176
177
  }
177
- ngOnDestroy() {
178
- this.formFieldService.removeControl();
179
- }
180
178
  registerOnChange({ valueChanges }) {
181
- if (this.config.updateOn.includes('change') && this.isInput) {
179
+ if (this.config.updateOn.includes('change')) {
182
180
  return valueChanges;
183
181
  }
184
182
  return EMPTY;
@@ -186,14 +184,19 @@ class FormFieldControlDirective {
186
184
  registerOnSubmit({ statusChanges, valueChanges }) {
187
185
  return merge(this.onFormSubmit$, this.onFormReset$).pipe(switchMap(({ type }) => (type === 'submit' ? merge(statusChanges, valueChanges).pipe(startWith(true)) : NEVER)));
188
186
  }
189
- }
190
- FormFieldControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
191
- FormFieldControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: FormFieldControlDirective, isStandalone: true, selector: "[odxFormFieldControl]", ngImport: i0 });
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldControlDirective, decorators: [{
187
+ };
188
+ FormFieldControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
189
+ FormFieldControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: FormFieldControlDirective, isStandalone: true, selector: "[odxFormFieldControl]", exportAs: ["odxFormFieldControl"], ngImport: i0 });
190
+ FormFieldControlDirective = __decorate([
191
+ CSSComponent('form-field-control'),
192
+ __metadata("design:paramtypes", [])
193
+ ], FormFieldControlDirective);
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldControlDirective, decorators: [{
193
195
  type: Directive,
194
196
  args: [{
195
197
  standalone: true,
196
198
  selector: '[odxFormFieldControl]',
199
+ exportAs: 'odxFormFieldControl',
197
200
  }]
198
201
  }], ctorParameters: function () { return []; } });
199
202
 
@@ -206,9 +209,9 @@ class FormFieldErrorDirective {
206
209
  this.formFieldErrorService.registerCustomError(this.key, this.template);
207
210
  }
208
211
  }
209
- FormFieldErrorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldErrorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
210
- FormFieldErrorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: FormFieldErrorDirective, isStandalone: true, selector: "[odxFormFieldError]", inputs: { key: ["odxFormFieldError", "key"] }, ngImport: i0 });
211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldErrorDirective, decorators: [{
212
+ FormFieldErrorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldErrorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
213
+ FormFieldErrorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: FormFieldErrorDirective, isStandalone: true, selector: "[odxFormFieldError]", inputs: { key: ["odxFormFieldError", "key"] }, ngImport: i0 });
214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldErrorDirective, decorators: [{
212
215
  type: Directive,
213
216
  args: [{
214
217
  standalone: true,
@@ -225,9 +228,9 @@ class FormFieldHintDirective {
225
228
  reactiveAttributeBinding(inject(FormFieldService).controlHintId$, 'id');
226
229
  }
227
230
  }
228
- FormFieldHintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldHintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
229
- FormFieldHintDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: FormFieldHintDirective, isStandalone: true, selector: "odx-form-field-hint", host: { properties: { "class.odx-form-field__hint": "true" } }, ngImport: i0 });
230
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldHintDirective, decorators: [{
231
+ FormFieldHintDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldHintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
232
+ FormFieldHintDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: FormFieldHintDirective, isStandalone: true, selector: "odx-form-field-hint", host: { properties: { "class.odx-form-field__hint": "true" } }, ngImport: i0 });
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldHintDirective, decorators: [{
231
234
  type: Directive,
232
235
  args: [{
233
236
  standalone: true,
@@ -243,12 +246,12 @@ let FormFieldLabelDirective = class FormFieldLabelDirective {
243
246
  this.element = injectElement();
244
247
  }
245
248
  };
246
- FormFieldLabelDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
247
- FormFieldLabelDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: FormFieldLabelDirective, isStandalone: true, selector: "odx-form-field-label", ngImport: i0 });
249
+ FormFieldLabelDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
250
+ FormFieldLabelDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: FormFieldLabelDirective, isStandalone: true, selector: "odx-form-field-label", ngImport: i0 });
248
251
  FormFieldLabelDirective = __decorate([
249
252
  CSSComponent('form-field-label')
250
253
  ], FormFieldLabelDirective);
251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldLabelDirective, decorators: [{
254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldLabelDirective, decorators: [{
252
255
  type: Directive,
253
256
  args: [{
254
257
  standalone: true,
@@ -262,9 +265,9 @@ class FormFieldInfoComponent {
262
265
  this.error = null;
263
266
  }
264
267
  }
265
- FormFieldInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
266
- FormFieldInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: FormFieldInfoComponent, isStandalone: true, selector: "odx-form-field-info", inputs: { error: "error" }, host: { properties: { "class.odx-form-field__info": "true" } }, ngImport: i0, template: "<span class=\"odx-form-field-error\" [attr.id]=\"formFieldService.controlErrorId$ | async\" *ngIf=\"error; else hint\">\n <ng-template [odxDynamicView]=\"error.message\" [odxDynamicViewContext]=\"error.context\"></ng-template>\n</span>\n<ng-template #hint>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], encapsulation: i0.ViewEncapsulation.None });
267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldInfoComponent, decorators: [{
268
+ FormFieldInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
269
+ FormFieldInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: FormFieldInfoComponent, isStandalone: true, selector: "odx-form-field-info", inputs: { error: "error" }, host: { properties: { "class.odx-form-field__info": "true" } }, ngImport: i0, template: "<span class=\"odx-form-field-error\" [attr.id]=\"formFieldService.controlErrorId$ | async\" *ngIf=\"error; else hint\">\n <ng-template [odxDynamicView]=\"error.message\" [odxDynamicViewContext]=\"error.context\"></ng-template>\n</span>\n<ng-template #hint>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], encapsulation: i0.ViewEncapsulation.None });
270
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldInfoComponent, decorators: [{
268
271
  type: Component,
269
272
  args: [{ standalone: true, selector: 'odx-form-field-info', encapsulation: ViewEncapsulation.None, imports: [CoreModule, DynamicViewDirective, FormFieldHintDirective], host: {
270
273
  '[class.odx-form-field__info]': 'true',
@@ -277,22 +280,20 @@ let FormGroupComponent = class FormGroupComponent {
277
280
  constructor() {
278
281
  this.element = injectElement();
279
282
  this.error$ = null;
280
- reactiveClassBinding(inject(FormFieldService).isReadonly$, 'is-readonly');
281
283
  }
282
284
  ngAfterContentInit() {
283
285
  this.error$ = this.formFieldErrorServices.changes.pipe(startWith(this.formFieldErrorServices), switchMap((services) => combineLatest(services.map((service) => service.error$))), map((errors) => { var _a; return (_a = errors.find((error) => error !== null)) !== null && _a !== void 0 ? _a : null; }));
284
286
  }
285
287
  };
286
- FormGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
287
- FormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: FormGroupComponent, isStandalone: true, selector: "odx-form-group", providers: [FormFieldService, DisabledController.connect(), ReadonlyController.connect()], queries: [{ propertyName: "formFieldErrorServices", predicate: FormFieldErrorService }], ngImport: i0, template: "<div class=\"odx-form-group__content\" odxLayout=\"grid auto vertical-end\">\n <ng-content select=\"odx-form-field\"> </ng-content>\n</div>\n<odx-form-field-info [error]=\"error$ | async\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n</odx-form-field-info>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: FormFieldInfoComponent, selector: "odx-form-field-info", inputs: ["error"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
288
+ FormGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
289
+ FormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: FormGroupComponent, isStandalone: true, selector: "odx-form-group", providers: [FormFieldService], queries: [{ propertyName: "formFieldErrorServices", predicate: FormFieldErrorService }], ngImport: i0, template: "<div class=\"odx-form-group__content\" odxLayout=\"grid auto vertical-end\">\n <ng-content select=\"odx-form-field\"> </ng-content>\n</div>\n<odx-form-field-info [error]=\"error$ | async\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n</odx-form-field-info>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: FormFieldInfoComponent, selector: "odx-form-field-info", inputs: ["error"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
288
290
  FormGroupComponent = __decorate([
289
- CSSComponent('form-group'),
290
- __metadata("design:paramtypes", [])
291
+ CSSComponent('form-group')
291
292
  ], FormGroupComponent);
292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormGroupComponent, decorators: [{
293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormGroupComponent, decorators: [{
293
294
  type: Component,
294
- args: [{ standalone: true, selector: 'odx-form-group', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CoreModule, FormFieldInfoComponent], providers: [FormFieldService, DisabledController.connect(), ReadonlyController.connect()], template: "<div class=\"odx-form-group__content\" odxLayout=\"grid auto vertical-end\">\n <ng-content select=\"odx-form-field\"> </ng-content>\n</div>\n<odx-form-field-info [error]=\"error$ | async\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n</odx-form-field-info>\n" }]
295
- }], ctorParameters: function () { return []; }, propDecorators: { formFieldErrorServices: [{
295
+ args: [{ standalone: true, selector: 'odx-form-group', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CoreModule, FormFieldInfoComponent], providers: [FormFieldService], template: "<div class=\"odx-form-group__content\" odxLayout=\"grid auto vertical-end\">\n <ng-content select=\"odx-form-field\"> </ng-content>\n</div>\n<odx-form-field-info [error]=\"error$ | async\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n</odx-form-field-info>\n" }]
296
+ }], propDecorators: { formFieldErrorServices: [{
296
297
  type: ContentChildren,
297
298
  args: [FormFieldErrorService, { descendants: false }]
298
299
  }] } });
@@ -316,13 +317,13 @@ let FormFieldComponent = class FormFieldComponent {
316
317
  return !this.formGroup;
317
318
  }
318
319
  };
319
- FormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
320
- FormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: FormFieldComponent, isStandalone: true, selector: "odx-form-field", inputs: { label: "label" }, providers: [FormFieldService, FormFieldErrorService, DisabledController.connect(), ReadonlyController.connect()], queries: [{ propertyName: "labelDirective", first: true, predicate: FormFieldLabelDirective, descendants: true }], ngImport: i0, template: "<label class=\"odx-form-field__label\" [attr.for]=\"formFieldService.controlId$ | async\" [attr.aria-owns]=\"formFieldService.controlId$ | async\" *ngIf=\"hasLabel\">\n <odx-form-field-label *ngIf=\"label; else labelTemplate\">\n {{ label }}\n </odx-form-field-label>\n <ng-template #labelTemplate>\n <ng-content select=\"odx-form-field-label\"></ng-content>\n </ng-template>\n</label>\n<div class=\"odx-form-field__inner\">\n <div class=\"odx-form-field__control\">\n <div class=\"odx-form-field__prefix\">\n <ng-content select=\"[odxFormFieldPrefix]\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div class=\"odx-form-field__suffix\">\n <ng-content select=\"[odxFormFieldSuffix]\"></ng-content>\n </div>\n </div>\n <odx-form-field-info [error]=\"formFieldErrorService.error$ | async\" *ngIf=\"!formGroup\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n </odx-form-field-info>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: FormFieldInfoComponent, selector: "odx-form-field-info", inputs: ["error"] }, { kind: "directive", type: FormFieldLabelDirective, selector: "odx-form-field-label" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
320
+ FormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
321
+ FormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: FormFieldComponent, isStandalone: true, selector: "odx-form-field", inputs: { label: "label" }, providers: [FormFieldService, FormFieldErrorService, DisabledController.connect(), ReadonlyController.connect()], queries: [{ propertyName: "labelDirective", first: true, predicate: FormFieldLabelDirective, descendants: true }], ngImport: i0, template: "<label class=\"odx-form-field__label\" [attr.for]=\"formFieldService.controlId$ | async\" [attr.aria-owns]=\"formFieldService.controlId$ | async\" *ngIf=\"hasLabel\">\n <odx-form-field-label *ngIf=\"label; else labelTemplate\">\n {{ label }}\n </odx-form-field-label>\n <ng-template #labelTemplate>\n <ng-content select=\"odx-form-field-label\"></ng-content>\n </ng-template>\n</label>\n<div class=\"odx-form-field__inner\">\n <div class=\"odx-form-field__control\">\n <div class=\"odx-form-field__prefix\">\n <ng-content select=\"[odxFormFieldPrefix]\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div class=\"odx-form-field__suffix\">\n <ng-content select=\"[odxFormFieldSuffix]\"></ng-content>\n </div>\n </div>\n <odx-form-field-info [error]=\"formFieldErrorService.error$ | async\" *ngIf=\"!formGroup\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n </odx-form-field-info>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: FormFieldInfoComponent, selector: "odx-form-field-info", inputs: ["error"] }, { kind: "directive", type: FormFieldLabelDirective, selector: "odx-form-field-label" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
321
322
  FormFieldComponent = __decorate([
322
323
  CSSComponent('form-field'),
323
324
  __metadata("design:paramtypes", [])
324
325
  ], FormFieldComponent);
325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldComponent, decorators: [{
326
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldComponent, decorators: [{
326
327
  type: Component,
327
328
  args: [{ standalone: true, selector: 'odx-form-field', imports: [CoreModule, FormFieldInfoComponent, FormFieldLabelDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [FormFieldService, FormFieldErrorService, DisabledController.connect(), ReadonlyController.connect()], template: "<label class=\"odx-form-field__label\" [attr.for]=\"formFieldService.controlId$ | async\" [attr.aria-owns]=\"formFieldService.controlId$ | async\" *ngIf=\"hasLabel\">\n <odx-form-field-label *ngIf=\"label; else labelTemplate\">\n {{ label }}\n </odx-form-field-label>\n <ng-template #labelTemplate>\n <ng-content select=\"odx-form-field-label\"></ng-content>\n </ng-template>\n</label>\n<div class=\"odx-form-field__inner\">\n <div class=\"odx-form-field__control\">\n <div class=\"odx-form-field__prefix\">\n <ng-content select=\"[odxFormFieldPrefix]\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div class=\"odx-form-field__suffix\">\n <ng-content select=\"[odxFormFieldSuffix]\"></ng-content>\n </div>\n </div>\n <odx-form-field-info [error]=\"formFieldErrorService.error$ | async\" *ngIf=\"!formGroup\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n </odx-form-field-info>\n</div>\n" }]
328
329
  }], ctorParameters: function () { return []; }, propDecorators: { labelDirective: [{
@@ -349,8 +350,8 @@ class FormFieldModule {
349
350
  };
350
351
  }
351
352
  }
352
- FormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
353
- FormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.9", ngImport: i0, type: FormFieldModule, imports: [FormFieldComponent,
353
+ FormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
354
+ FormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: FormFieldModule, imports: [FormFieldComponent,
354
355
  FormGroupComponent,
355
356
  FormDirective,
356
357
  FormFieldControlDirective,
@@ -363,9 +364,9 @@ FormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
363
364
  FormFieldErrorDirective,
364
365
  FormFieldHintDirective,
365
366
  FormFieldLabelDirective] });
366
- FormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldModule, imports: [FormFieldComponent,
367
+ FormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldModule, imports: [FormFieldComponent,
367
368
  FormGroupComponent, CoreModule] });
368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: FormFieldModule, decorators: [{
369
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: FormFieldModule, decorators: [{
369
370
  type: NgModule,
370
371
  args: [{
371
372
  imports: modules,
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-form-field.mjs","sources":["../../../../libs/angular/components/form-field/src/lib/form-field.config.ts","../../../../libs/angular/components/form-field/src/lib/form-field.service.ts","../../../../libs/angular/components/form-field/src/lib/services/form-field-error.service.ts","../../../../libs/angular/components/form-field/src/lib/directives/form.directive.ts","../../../../libs/angular/components/form-field/src/lib/directives/form-field-control.directive.ts","../../../../libs/angular/components/form-field/src/lib/directives/form-field-error.directive.ts","../../../../libs/angular/components/form-field/src/lib/directives/form-field-hint.directive.ts","../../../../libs/angular/components/form-field/src/lib/directives/form-field-label.directive.ts","../../../../libs/angular/components/form-field/src/lib/components/form-field-info/form-field-info.component.ts","../../../../libs/angular/components/form-field/src/lib/components/form-field-info/form-field-info.component.html","../../../../libs/angular/components/form-field/src/lib/components/form-group/form-group.component.ts","../../../../libs/angular/components/form-field/src/lib/components/form-group/form-group.component.html","../../../../libs/angular/components/form-field/src/lib/form-field.component.ts","../../../../libs/angular/components/form-field/src/lib/form-field.component.html","../../../../libs/angular/components/form-field/src/lib/form-field.module.ts","../../../../libs/angular/components/form-field/src/odx-angular-components-form-field.ts"],"sourcesContent":["import { createModuleConfigTokens } from '@odx/angular/utils';\nimport { FormFieldErrorResolvers } from './models';\n\nexport interface FormFieldModuleConfig {\n /**\n * Object of error resolvers used to resolve error messages globally\n * @default {}\n */\n errors: FormFieldErrorResolvers;\n /**\n * Detect if native control element supports the `blur` event\n * @default ({ tagName }: Element) => ['input', 'select', 'textarea'].includes(tagName.toLowerCase())\n * */\n blurPredicate: (element: Element) => boolean;\n /**\n * Detect form field control changes on `blur` and/or `change`\n * @default ['blur']\n */\n updateOn: Array<'blur' | 'change'>;\n}\n\nexport const { FormFieldDefaultModuleConfig, FormFieldModuleConfig, injectFormFieldModuleConfig } = createModuleConfigTokens(\n 'FormField',\n '@odx/angular/components/form-field',\n {\n errors: {},\n blurPredicate: ({ tagName }: Element) => ['input', 'select', 'textarea'].includes(tagName.toLowerCase()),\n updateOn: ['blur'],\n } as FormFieldModuleConfig\n);\n","import { ElementRef, Injectable, OnDestroy } from '@angular/core';\nimport { AbstractControl, Validators } from '@angular/forms';\nimport { Controller, DisabledController, ReadonlyController } from '@odx/angular';\nimport { BehaviorSubject, distinctUntilChanged, EMPTY, map, merge, Observable, of, shareReplay, startWith, switchMap, tap } from 'rxjs';\n\ninterface FieldControl {\n control: AbstractControl;\n nativeElement: HTMLElement;\n}\n\n@Injectable()\nexport class FormFieldService extends Controller implements OnDestroy {\n private static ID = 0;\n\n private readonly disabledController = DisabledController.inject();\n private readonly readonlyController = ReadonlyController.inject();\n private readonly control$$ = new BehaviorSubject<FieldControl | null>(null);\n\n public readonly control$ = this.control$$.pipe(shareReplay({ refCount: true }));\n public readonly controlId$ = this.control$.pipe(\n map((control) => (control ? control.nativeElement.id || `odx-form-field-${FormFieldService.ID++}` : null)),\n shareReplay({ refCount: true })\n );\n public readonly controlHintId$ = this.controlId$.pipe(\n map((id) => (id ? `${id}-hint` : null)),\n shareReplay({ refCount: true })\n );\n public readonly controlErrorId$ = this.controlId$.pipe(\n map((id) => (id ? `${id}-error` : null)),\n shareReplay({ refCount: true })\n );\n public readonly isDisabled$ = this.control$.pipe(\n switchMap((control) => (control ? merge(this.updateControlDisabledState(control), this.getControlDisabledState(control)) : of(false))),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n public readonly isRequired$ = this.control$.pipe(\n map((control) => (control ? control.nativeElement.hasAttribute('required') || control.control.hasValidator(Validators.required) : false)),\n shareReplay({ refCount: true })\n );\n public readonly isReadonly$ = this.control$.pipe(\n switchMap((control) => (control && this.readonlyController ? this.readonlyController.isReadonly$ : of(false)))\n );\n\n public override ngOnDestroy(): void {\n this.control$$.complete();\n super.ngOnDestroy();\n }\n\n public registerControl(control: AbstractControl, { nativeElement }: ElementRef<HTMLElement>): void {\n this.control$$.next({ control, nativeElement });\n }\n\n public removeControl(): void {\n this.control$$.next(null);\n }\n\n private updateControlDisabledState({ control }: FieldControl): Observable<boolean> {\n if (this.disabledController) {\n return this.disabledController.isDisabled$.pipe(\n tap((state) => {\n if (state) {\n control.disable();\n } else {\n control.enable();\n }\n })\n );\n }\n return EMPTY;\n }\n\n private getControlDisabledState({ control }: FieldControl): Observable<boolean> {\n return control.statusChanges.pipe(\n startWith(control.status),\n map((status) => status === 'DISABLED'),\n distinctUntilChanged()\n );\n }\n}\n","import { Injectable, OnDestroy, TemplateRef } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { isFunction, isTemplateRef } from '@odx/angular/utils';\nimport { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { injectFormFieldModuleConfig } from '../form-field.config';\nimport { FormFieldError } from '../models';\n\nconst DEFAULT_CUSTOM_FORM_FIELD_ERROR = '@odx/angular/form-field/default-error';\n\ninterface NgFormFieldError {\n key: string;\n context: unknown;\n}\n\ntype CustomFormFieldErrors = Record<string, TemplateRef<unknown>>;\n\n@Injectable()\nexport class FormFieldErrorService implements OnDestroy {\n private readonly config = injectFormFieldModuleConfig();\n private readonly fieldError$$ = new BehaviorSubject<NgFormFieldError | null>(null);\n private readonly customErrors$$ = new BehaviorSubject<CustomFormFieldErrors>({});\n\n public readonly error$ = combineLatest([this.fieldError$$, this.customErrors$$]).pipe(\n map(([error, customErrors]) => this.resolveError(error, customErrors)),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n public readonly hasError$ = this.error$.pipe(map((error) => error !== null));\n\n public get hasError(): boolean {\n return this.fieldError$$.getValue() !== null;\n }\n\n public ngOnDestroy(): void {\n this.fieldError$$.next(null);\n this.customErrors$$.next({});\n this.fieldError$$.complete();\n this.customErrors$$.complete();\n }\n\n public setError(errors?: ValidationErrors | null): void {\n if (!errors) {\n this.fieldError$$.next(null);\n } else {\n const [key, context] = Object.entries(errors)[0];\n this.fieldError$$.next({ key, context });\n }\n }\n\n public registerCustomError(key: string | undefined, template: TemplateRef<unknown>): void {\n this.customErrors$$.next({ ...this.customErrors$$.getValue(), [key || DEFAULT_CUSTOM_FORM_FIELD_ERROR]: template });\n }\n\n private resolveError(error: NgFormFieldError | null, customErrors: CustomFormFieldErrors): FormFieldError | null {\n if (!error) return null;\n const { key, context } = error;\n const message = customErrors[key] ?? customErrors[DEFAULT_CUSTOM_FORM_FIELD_ERROR];\n if (isTemplateRef(message)) {\n return {\n message,\n context: { $implicit: context },\n };\n }\n\n const getMessage = this.config.errors[key] ?? null;\n return isFunction(getMessage) ? { message: getMessage(context) } : null;\n }\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { fromEvent, share } from 'rxjs';\n\n@CSSComponent('form')\n@Directive({\n standalone: true,\n selector: 'form[odxForm]',\n})\nexport class FormDirective {\n private readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement<HTMLFormElement>();\n public readonly submit$ = fromEvent<Event>(this.element.nativeElement, 'submit').pipe(this.takeUntilDestroyed(), share());\n public readonly reset$ = fromEvent<Event>(this.element.nativeElement, 'reset').pipe(this.takeUntilDestroyed(), share());\n}\n","import { Directive, inject, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, NgControl } from '@angular/forms';\nimport { booleanToOptionalAttributeString, injectElement, reactiveAttributeBinding, untilDestroyed } from '@odx/angular/utils';\nimport { EMPTY, fromEvent, map, merge, NEVER, Observable, of, startWith, switchMap, tap } from 'rxjs';\nimport { injectFormFieldModuleConfig } from '../form-field.config';\nimport { FormFieldService } from '../form-field.service';\nimport { FormFieldErrorService } from '../services';\nimport { FormDirective } from './form.directive';\n\n@Directive({\n standalone: true,\n selector: '[odxFormFieldControl]',\n})\nexport class FormFieldControlDirective implements OnInit, OnDestroy {\n private readonly config = injectFormFieldModuleConfig();\n private readonly element = injectElement();\n private readonly ngControl = inject(NgControl, { optional: true, self: true });\n private readonly form = inject(FormDirective, { optional: true, skipSelf: true });\n private readonly onFormReset$ = this.form?.reset$ ?? EMPTY;\n private readonly onFormSubmit$ = this.form?.submit$ ?? EMPTY;\n private readonly formFieldService = inject(FormFieldService);\n private readonly formFieldErrorService = inject(FormFieldErrorService);\n private readonly isInput = this.config.blurPredicate(this.element.nativeElement);\n private readonly takeUntilDestroyed = untilDestroyed();\n\n constructor() {\n reactiveAttributeBinding(this.formFieldService.controlId$, 'id');\n reactiveAttributeBinding(this.formFieldService.controlHintId$, 'aria-describedby');\n reactiveAttributeBinding(this.formFieldService.isReadonly$, 'readonly');\n reactiveAttributeBinding(this.formFieldService.isDisabled$.pipe(map(booleanToOptionalAttributeString)), 'aria-disabled');\n reactiveAttributeBinding(this.formFieldService.isReadonly$.pipe(map(booleanToOptionalAttributeString)), 'aria-readonly');\n reactiveAttributeBinding(this.formFieldService.isRequired$.pipe(map(booleanToOptionalAttributeString)), 'aria-required');\n reactiveAttributeBinding(this.formFieldErrorService.hasError$.pipe(map(booleanToOptionalAttributeString)), 'aria-invalid');\n reactiveAttributeBinding(\n this.formFieldErrorService.hasError$.pipe(switchMap((hasError) => (hasError ? this.formFieldService.controlErrorId$ : of(null)))),\n 'aria-errormessage'\n );\n }\n\n public ngOnInit() {\n const control = this.ngControl?.control;\n this.formFieldService.registerControl(control ?? new FormControl(), this.element);\n if (!control) return;\n\n const controlChanges$ = merge(this.registerOnBlur(control), this.registerOnChange(control), this.registerOnSubmit(control));\n const changes$ = merge(\n this.onFormReset$.pipe(tap(() => this.formFieldErrorService?.setError(null))),\n controlChanges$.pipe(tap(() => this.formFieldErrorService?.setError(control.errors)))\n );\n changes$.pipe(this.takeUntilDestroyed()).subscribe();\n }\n\n private registerOnBlur({ valueChanges }: AbstractControl): Observable<unknown> {\n if (this.config.updateOn.includes('blur') && this.isInput) {\n return fromEvent(this.element.nativeElement, 'focusout').pipe(switchMap(() => valueChanges.pipe(startWith(true))));\n }\n return EMPTY;\n }\n\n public ngOnDestroy(): void {\n this.formFieldService.removeControl();\n }\n\n private registerOnChange({ valueChanges }: AbstractControl): Observable<unknown> {\n if (this.config.updateOn.includes('change') && this.isInput) {\n return valueChanges;\n }\n return EMPTY;\n }\n\n private registerOnSubmit({ statusChanges, valueChanges }: AbstractControl): Observable<unknown> {\n return merge(this.onFormSubmit$, this.onFormReset$).pipe(\n switchMap(({ type }) => (type === 'submit' ? merge(statusChanges, valueChanges).pipe(startWith(true)) : NEVER))\n );\n }\n}\n","import { Directive, inject, Input, OnInit, TemplateRef } from '@angular/core';\nimport { FormFieldErrorService } from '../services';\n\n@Directive({\n standalone: true,\n selector: '[odxFormFieldError]',\n})\nexport class FormFieldErrorDirective implements OnInit {\n private readonly formFieldErrorService = inject(FormFieldErrorService, { skipSelf: true });\n private readonly template = inject(TemplateRef, { self: true });\n\n @Input('odxFormFieldError')\n public key?: string;\n\n public ngOnInit() {\n this.formFieldErrorService.registerCustomError(this.key, this.template);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { reactiveAttributeBinding } from '@odx/angular/utils';\nimport { FormFieldService } from '../form-field.service';\n\n@Directive({\n standalone: true,\n selector: 'odx-form-field-hint',\n host: {\n '[class.odx-form-field__hint]': 'true',\n },\n})\nexport class FormFieldHintDirective {\n protected readonly formFieldService = inject(FormFieldService, { skipSelf: true });\n\n constructor() {\n reactiveAttributeBinding(inject(FormFieldService).controlHintId$, 'id');\n }\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n@CSSComponent('form-field-label')\n@Directive({\n standalone: true,\n selector: 'odx-form-field-label',\n})\nexport class FormFieldLabelDirective {\n public readonly element = injectElement();\n}\n","import { Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { FormFieldHintDirective } from '../../directives';\nimport { FormFieldService } from '../../form-field.service';\nimport { FormFieldError } from '../../models';\n\n@Component({\n standalone: true,\n selector: 'odx-form-field-info',\n templateUrl: './form-field-info.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [CoreModule, DynamicViewDirective, FormFieldHintDirective],\n host: {\n '[class.odx-form-field__info]': 'true',\n },\n})\nexport class FormFieldInfoComponent {\n protected readonly formFieldService = inject(FormFieldService);\n\n @Input()\n public error: FormFieldError | null = null;\n}\n","<span class=\"odx-form-field-error\" [attr.id]=\"formFieldService.controlErrorId$ | async\" *ngIf=\"error; else hint\">\n <ng-template [odxDynamicView]=\"error.message\" [odxDynamicViewContext]=\"error.context\"></ng-template>\n</span>\n<ng-template #hint>\n <ng-content></ng-content>\n</ng-template>\n","import { AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, inject, QueryList, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, DisabledController, ReadonlyController } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement, reactiveClassBinding } from '@odx/angular/utils';\nimport { combineLatest, map, Observable, startWith, switchMap } from 'rxjs';\nimport { FormFieldService } from '../../form-field.service';\nimport { FormFieldError } from '../../models';\nimport { FormFieldErrorService } from '../../services';\nimport { FormFieldInfoComponent } from '../form-field-info/form-field-info.component';\n\n@CSSComponent('form-group')\n@Component({\n standalone: true,\n selector: 'odx-form-group',\n templateUrl: './form-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CoreModule, FormFieldInfoComponent],\n providers: [FormFieldService, DisabledController.connect(), ReadonlyController.connect()],\n})\nexport class FormGroupComponent implements AfterContentInit {\n public readonly element = injectElement();\n public error$: Observable<FormFieldError | null> | null = null;\n\n @ContentChildren(FormFieldErrorService, { descendants: false })\n public formFieldErrorServices!: QueryList<FormFieldErrorService>;\n\n constructor() {\n reactiveClassBinding(inject(FormFieldService).isReadonly$, 'is-readonly');\n }\n\n public ngAfterContentInit() {\n this.error$ = this.formFieldErrorServices.changes.pipe(\n startWith<QueryList<FormFieldErrorService>>(this.formFieldErrorServices),\n switchMap((services) => combineLatest(services.map((service) => service.error$))),\n map((errors) => errors.find((error) => error !== null) ?? null)\n );\n }\n}\n","<div class=\"odx-form-group__content\" odxLayout=\"grid auto vertical-end\">\n <ng-content select=\"odx-form-field\"> </ng-content>\n</div>\n<odx-form-field-info [error]=\"error$ | async\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n</odx-form-field-info>\n","import { ChangeDetectionStrategy, Component, ContentChild, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, DisabledController, ReadonlyController } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement, reactiveClassBinding } from '@odx/angular/utils';\nimport { FormFieldInfoComponent, FormGroupComponent } from './components';\nimport { FormFieldLabelDirective } from './directives';\nimport { FormFieldService } from './form-field.service';\nimport { FormFieldErrorService } from './services';\n\n@CSSComponent('form-field')\n@Component({\n standalone: true,\n selector: 'odx-form-field',\n imports: [CoreModule, FormFieldInfoComponent, FormFieldLabelDirective],\n templateUrl: './form-field.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [FormFieldService, FormFieldErrorService, DisabledController.connect(), ReadonlyController.connect()],\n})\nexport class FormFieldComponent {\n protected readonly formGroup = inject(FormGroupComponent, { optional: true, host: true });\n protected readonly formFieldService = inject(FormFieldService, { self: true });\n protected readonly formFieldErrorService = inject(FormFieldErrorService, { self: true });\n public readonly element = injectElement();\n\n @ContentChild(FormFieldLabelDirective)\n public labelDirective?: FormFieldLabelDirective;\n\n @Input()\n public label?: string | null = null;\n\n public get hasLabel(): boolean {\n return !!(this.labelDirective || this.label);\n }\n\n public get isStandalone(): boolean {\n return !this.formGroup;\n }\n\n constructor() {\n reactiveClassBinding(this.formFieldService.isRequired$, 'odx-form-field--required');\n reactiveClassBinding(this.formFieldService.isDisabled$, 'is-disabled');\n reactiveClassBinding(this.formFieldService.isReadonly$, 'is-readonly');\n reactiveClassBinding(this.formFieldErrorService.hasError$, 'has-error');\n }\n}\n","<label class=\"odx-form-field__label\" [attr.for]=\"formFieldService.controlId$ | async\" [attr.aria-owns]=\"formFieldService.controlId$ | async\" *ngIf=\"hasLabel\">\n <odx-form-field-label *ngIf=\"label; else labelTemplate\">\n {{ label }}\n </odx-form-field-label>\n <ng-template #labelTemplate>\n <ng-content select=\"odx-form-field-label\"></ng-content>\n </ng-template>\n</label>\n<div class=\"odx-form-field__inner\">\n <div class=\"odx-form-field__control\">\n <div class=\"odx-form-field__prefix\">\n <ng-content select=\"[odxFormFieldPrefix]\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div class=\"odx-form-field__suffix\">\n <ng-content select=\"[odxFormFieldSuffix]\"></ng-content>\n </div>\n </div>\n <odx-form-field-info [error]=\"formFieldErrorService.error$ | async\" *ngIf=\"!formGroup\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n </odx-form-field-info>\n</div>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { ModuleConfigDependencies, ModuleConfigProvider, provideModuleConfig } from '@odx/angular/utils';\nimport { FormGroupComponent } from './components';\nimport { FormDirective, FormFieldControlDirective, FormFieldErrorDirective, FormFieldHintDirective, FormFieldLabelDirective } from './directives';\nimport { FormFieldComponent } from './form-field.component';\nimport { FormFieldModuleConfig } from './form-field.config';\n\nconst modules = [\n FormFieldComponent,\n FormGroupComponent,\n FormDirective,\n FormFieldControlDirective,\n FormFieldErrorDirective,\n FormFieldHintDirective,\n FormFieldLabelDirective,\n];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class FormFieldModule {\n public static forRoot<D extends ModuleConfigDependencies>(\n config: ModuleConfigProvider<Partial<FormFieldModuleConfig>, D>\n ): ModuleWithProviders<FormFieldModule> {\n return {\n ngModule: FormFieldModule,\n providers: [provideModuleConfig(FormFieldModuleConfig, config)],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-components-form-field.mjs","sources":["../../../../libs/angular/components/form-field/src/lib/form-field.config.ts","../../../../libs/angular/components/form-field/src/lib/form-field.service.ts","../../../../libs/angular/components/form-field/src/lib/services/form-field-error.service.ts","../../../../libs/angular/components/form-field/src/lib/directives/form.directive.ts","../../../../libs/angular/components/form-field/src/lib/directives/form-field-control.directive.ts","../../../../libs/angular/components/form-field/src/lib/directives/form-field-error.directive.ts","../../../../libs/angular/components/form-field/src/lib/directives/form-field-hint.directive.ts","../../../../libs/angular/components/form-field/src/lib/directives/form-field-label.directive.ts","../../../../libs/angular/components/form-field/src/lib/components/form-field-info/form-field-info.component.ts","../../../../libs/angular/components/form-field/src/lib/components/form-field-info/form-field-info.component.html","../../../../libs/angular/components/form-field/src/lib/components/form-group/form-group.component.ts","../../../../libs/angular/components/form-field/src/lib/components/form-group/form-group.component.html","../../../../libs/angular/components/form-field/src/lib/form-field.component.ts","../../../../libs/angular/components/form-field/src/lib/form-field.component.html","../../../../libs/angular/components/form-field/src/lib/form-field.module.ts","../../../../libs/angular/components/form-field/src/odx-angular-components-form-field.ts"],"sourcesContent":["import { createModuleConfigTokens } from '@odx/angular/utils';\nimport { FormFieldErrorResolvers } from './models';\n\nexport interface FormFieldModuleConfig {\n /**\n * Object of error resolvers used to resolve error messages globally\n * @default {}\n */\n errors: FormFieldErrorResolvers;\n /**\n * Detect form field control changes on `blur` and/or `change`\n * @default ['blur']\n */\n updateOn: Array<'blur' | 'change'>;\n}\n\nexport const { FormFieldDefaultModuleConfig, FormFieldModuleConfig, injectFormFieldModuleConfig } = createModuleConfigTokens(\n 'FormField',\n '@odx/angular/components/form-field',\n {\n errors: {},\n updateOn: ['blur'],\n } as FormFieldModuleConfig\n);\n","import { ElementRef, Injectable, OnDestroy } from '@angular/core';\nimport { AbstractControl, Validators } from '@angular/forms';\nimport { Controller, DisabledController, ReadonlyController } from '@odx/angular';\nimport { BehaviorSubject, distinctUntilChanged, EMPTY, map, merge, Observable, of, shareReplay, startWith, switchMap, tap } from 'rxjs';\n\ninterface FieldControl {\n control: AbstractControl;\n nativeElement: HTMLElement;\n}\n\n@Injectable()\nexport class FormFieldService extends Controller implements OnDestroy {\n private static ID = 0;\n\n private readonly disabledController = DisabledController.inject();\n private readonly readonlyController = ReadonlyController.inject();\n private readonly control$$ = new BehaviorSubject<FieldControl | null>(null);\n\n public readonly control$ = this.control$$.pipe(shareReplay({ refCount: true }));\n public readonly controlId$ = this.control$.pipe(\n map((control) => (control ? control.nativeElement.id || `odx-form-field-${FormFieldService.ID++}` : null)),\n shareReplay({ refCount: true })\n );\n public readonly controlHintId$ = this.controlId$.pipe(\n map((id) => (id ? `${id}-hint` : null)),\n shareReplay({ refCount: true })\n );\n public readonly controlErrorId$ = this.controlId$.pipe(\n map((id) => (id ? `${id}-error` : null)),\n shareReplay({ refCount: true })\n );\n public readonly isDisabled$ = this.control$.pipe(\n switchMap((control) => (control ? merge(this.updateControlDisabledState(control), this.getControlDisabledState(control)) : of(false))),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n public readonly isRequired$ = this.control$.pipe(\n map((control) => (control ? control.nativeElement.hasAttribute('required') || control.control.hasValidator(Validators.required) : false)),\n shareReplay({ refCount: true })\n );\n public readonly isReadonly$ = this.control$.pipe(\n switchMap((control) => (control && this.readonlyController ? this.readonlyController.isReadonly$ : of(false)))\n );\n\n public override ngOnDestroy(): void {\n this.control$$.complete();\n super.ngOnDestroy();\n }\n\n public registerControl(control: AbstractControl, { nativeElement }: ElementRef<HTMLElement>): void {\n this.control$$.next({ control, nativeElement });\n }\n\n public removeControl(): void {\n this.control$$.next(null);\n }\n\n private updateControlDisabledState({ control }: FieldControl): Observable<boolean> {\n if (this.disabledController) {\n return this.disabledController.isDisabled$.pipe(\n tap((state) => {\n if (state) {\n control.disable();\n } else {\n control.enable();\n }\n })\n );\n }\n return EMPTY;\n }\n\n private getControlDisabledState({ control }: FieldControl): Observable<boolean> {\n return control.statusChanges.pipe(\n startWith(control.status),\n map((status) => status === 'DISABLED'),\n distinctUntilChanged()\n );\n }\n}\n","import { Injectable, OnDestroy, TemplateRef } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { isFunction, isTemplateRef } from '@odx/angular/utils';\nimport { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { injectFormFieldModuleConfig } from '../form-field.config';\nimport { FormFieldError } from '../models';\n\nconst DEFAULT_CUSTOM_FORM_FIELD_ERROR = '@odx/angular/form-field/default-error';\n\ninterface NgFormFieldError {\n key: string;\n context: unknown;\n}\n\ntype CustomFormFieldErrors = Record<string, TemplateRef<unknown>>;\n\n@Injectable()\nexport class FormFieldErrorService implements OnDestroy {\n private readonly config = injectFormFieldModuleConfig();\n private readonly fieldError$$ = new BehaviorSubject<NgFormFieldError | null>(null);\n private readonly customErrors$$ = new BehaviorSubject<CustomFormFieldErrors>({});\n\n public readonly error$ = combineLatest([this.fieldError$$, this.customErrors$$]).pipe(\n map(([error, customErrors]) => this.resolveError(error, customErrors)),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n public readonly hasError$ = this.error$.pipe(map((error) => error !== null));\n\n public get hasError(): boolean {\n return this.fieldError$$.getValue() !== null;\n }\n\n public ngOnDestroy(): void {\n this.fieldError$$.next(null);\n this.customErrors$$.next({});\n this.fieldError$$.complete();\n this.customErrors$$.complete();\n }\n\n public setError(errors?: ValidationErrors | null): void {\n if (!errors) {\n this.fieldError$$.next(null);\n } else {\n const [key, context] = Object.entries(errors)[0];\n this.fieldError$$.next({ key, context });\n }\n }\n\n public registerCustomError(key: string | undefined, template: TemplateRef<unknown>): void {\n this.customErrors$$.next({ ...this.customErrors$$.getValue(), [key || DEFAULT_CUSTOM_FORM_FIELD_ERROR]: template });\n }\n\n private resolveError(error: NgFormFieldError | null, customErrors: CustomFormFieldErrors): FormFieldError | null {\n if (!error) return null;\n const { key, context } = error;\n const message = customErrors[key] ?? customErrors[DEFAULT_CUSTOM_FORM_FIELD_ERROR];\n if (isTemplateRef(message)) {\n return {\n message,\n context: { $implicit: context },\n };\n }\n\n const getMessage = this.config.errors[key] ?? null;\n return isFunction(getMessage) ? { message: getMessage(context) } : null;\n }\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { fromEvent, share } from 'rxjs';\n\n@CSSComponent('form')\n@Directive({\n standalone: true,\n selector: 'form[odxForm]',\n})\nexport class FormDirective {\n private readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement<HTMLFormElement>();\n public readonly submit$ = fromEvent<Event>(this.element.nativeElement, 'submit').pipe(this.takeUntilDestroyed(), share());\n public readonly reset$ = fromEvent<Event>(this.element.nativeElement, 'reset').pipe(this.takeUntilDestroyed(), share());\n}\n","import { Directive, inject, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, NgControl } from '@angular/forms';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { booleanToOptionalAttributeString, injectElement, reactiveAttributeBinding, untilDestroyed } from '@odx/angular/utils';\nimport { EMPTY, fromEvent, map, merge, NEVER, Observable, of, startWith, switchMap, tap } from 'rxjs';\nimport { injectFormFieldModuleConfig } from '../form-field.config';\nimport { FormFieldService } from '../form-field.service';\nimport { FormFieldErrorService } from '../services';\nimport { FormDirective } from './form.directive';\n\n@CSSComponent('form-field-control')\n@Directive({\n standalone: true,\n selector: '[odxFormFieldControl]',\n exportAs: 'odxFormFieldControl',\n})\nexport class FormFieldControlDirective implements OnInit, OnDestroy {\n private readonly config = injectFormFieldModuleConfig();\n private readonly ngControl = inject(NgControl, { optional: true, self: true });\n private readonly form = inject(FormDirective, { optional: true, skipSelf: true });\n private readonly onFormReset$ = this.form?.reset$ ?? EMPTY;\n private readonly onFormSubmit$ = this.form?.submit$ ?? EMPTY;\n private readonly formFieldService = inject(FormFieldService);\n private readonly formFieldErrorService = inject(FormFieldErrorService);\n private readonly takeUntilDestroyed = untilDestroyed();\n public readonly element = injectElement();\n\n constructor() {\n reactiveAttributeBinding(this.formFieldService.controlId$, 'id');\n reactiveAttributeBinding(this.formFieldService.controlHintId$, 'aria-describedby');\n reactiveAttributeBinding(this.formFieldService.isReadonly$, 'readonly');\n reactiveAttributeBinding(this.formFieldService.isDisabled$.pipe(map(booleanToOptionalAttributeString)), 'aria-disabled');\n reactiveAttributeBinding(this.formFieldService.isReadonly$.pipe(map(booleanToOptionalAttributeString)), 'aria-readonly');\n reactiveAttributeBinding(this.formFieldService.isRequired$.pipe(map(booleanToOptionalAttributeString)), 'aria-required');\n reactiveAttributeBinding(this.formFieldErrorService.hasError$.pipe(map(booleanToOptionalAttributeString)), 'aria-invalid');\n reactiveAttributeBinding(\n this.formFieldErrorService.hasError$.pipe(switchMap((hasError) => (hasError ? this.formFieldService.controlErrorId$ : of(null)))),\n 'aria-errormessage'\n );\n }\n\n public ngOnInit() {\n const control = this.ngControl?.control;\n this.formFieldService.registerControl(control ?? new FormControl(), this.element);\n if (!control) return;\n\n const controlChanges$ = merge(this.registerOnBlur(control), this.registerOnChange(control), this.registerOnSubmit(control));\n const changes$ = merge(\n this.onFormReset$.pipe(tap(() => this.formFieldErrorService?.setError(null))),\n controlChanges$.pipe(tap(() => this.formFieldErrorService?.setError(control.errors)))\n );\n changes$.pipe(this.takeUntilDestroyed()).subscribe();\n }\n\n public ngOnDestroy(): void {\n this.formFieldService.removeControl();\n }\n\n private registerOnBlur({ valueChanges }: AbstractControl): Observable<unknown> {\n if (this.config.updateOn.includes('blur')) {\n return fromEvent(this.element.nativeElement, 'focusout').pipe(switchMap(() => valueChanges.pipe(startWith(true))));\n }\n return EMPTY;\n }\n\n private registerOnChange({ valueChanges }: AbstractControl): Observable<unknown> {\n if (this.config.updateOn.includes('change')) {\n return valueChanges;\n }\n return EMPTY;\n }\n\n private registerOnSubmit({ statusChanges, valueChanges }: AbstractControl): Observable<unknown> {\n return merge(this.onFormSubmit$, this.onFormReset$).pipe(\n switchMap(({ type }) => (type === 'submit' ? merge(statusChanges, valueChanges).pipe(startWith(true)) : NEVER))\n );\n }\n}\n","import { Directive, inject, Input, OnInit, TemplateRef } from '@angular/core';\nimport { FormFieldErrorService } from '../services';\n\n@Directive({\n standalone: true,\n selector: '[odxFormFieldError]',\n})\nexport class FormFieldErrorDirective implements OnInit {\n private readonly formFieldErrorService = inject(FormFieldErrorService, { skipSelf: true });\n private readonly template = inject(TemplateRef, { self: true });\n\n @Input('odxFormFieldError')\n public key?: string;\n\n public ngOnInit() {\n this.formFieldErrorService.registerCustomError(this.key, this.template);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { reactiveAttributeBinding } from '@odx/angular/utils';\nimport { FormFieldService } from '../form-field.service';\n\n@Directive({\n standalone: true,\n selector: 'odx-form-field-hint',\n host: {\n '[class.odx-form-field__hint]': 'true',\n },\n})\nexport class FormFieldHintDirective {\n protected readonly formFieldService = inject(FormFieldService, { skipSelf: true });\n\n constructor() {\n reactiveAttributeBinding(inject(FormFieldService).controlHintId$, 'id');\n }\n}\n","import { Directive } from '@angular/core';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n@CSSComponent('form-field-label')\n@Directive({\n standalone: true,\n selector: 'odx-form-field-label',\n})\nexport class FormFieldLabelDirective {\n public readonly element = injectElement();\n}\n","import { Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { FormFieldHintDirective } from '../../directives';\nimport { FormFieldService } from '../../form-field.service';\nimport { FormFieldError } from '../../models';\n\n@Component({\n standalone: true,\n selector: 'odx-form-field-info',\n templateUrl: './form-field-info.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [CoreModule, DynamicViewDirective, FormFieldHintDirective],\n host: {\n '[class.odx-form-field__info]': 'true',\n },\n})\nexport class FormFieldInfoComponent {\n protected readonly formFieldService = inject(FormFieldService);\n\n @Input()\n public error: FormFieldError | null = null;\n}\n","<span class=\"odx-form-field-error\" [attr.id]=\"formFieldService.controlErrorId$ | async\" *ngIf=\"error; else hint\">\n <ng-template [odxDynamicView]=\"error.message\" [odxDynamicViewContext]=\"error.context\"></ng-template>\n</span>\n<ng-template #hint>\n <ng-content></ng-content>\n</ng-template>\n","import { AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, QueryList, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { combineLatest, map, Observable, startWith, switchMap } from 'rxjs';\nimport { FormFieldService } from '../../form-field.service';\nimport { FormFieldError } from '../../models';\nimport { FormFieldErrorService } from '../../services';\nimport { FormFieldInfoComponent } from '../form-field-info/form-field-info.component';\n\n@CSSComponent('form-group')\n@Component({\n standalone: true,\n selector: 'odx-form-group',\n templateUrl: './form-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CoreModule, FormFieldInfoComponent],\n providers: [FormFieldService],\n})\nexport class FormGroupComponent implements AfterContentInit {\n public readonly element = injectElement();\n public error$: Observable<FormFieldError | null> | null = null;\n\n @ContentChildren(FormFieldErrorService, { descendants: false })\n public formFieldErrorServices!: QueryList<FormFieldErrorService>;\n\n public ngAfterContentInit() {\n this.error$ = this.formFieldErrorServices.changes.pipe(\n startWith<QueryList<FormFieldErrorService>>(this.formFieldErrorServices),\n switchMap((services) => combineLatest(services.map((service) => service.error$))),\n map((errors) => errors.find((error) => error !== null) ?? null)\n );\n }\n}\n","<div class=\"odx-form-group__content\" odxLayout=\"grid auto vertical-end\">\n <ng-content select=\"odx-form-field\"> </ng-content>\n</div>\n<odx-form-field-info [error]=\"error$ | async\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n</odx-form-field-info>\n","import { ChangeDetectionStrategy, Component, ContentChild, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, DisabledController, ReadonlyController } from '@odx/angular';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement, reactiveClassBinding } from '@odx/angular/utils';\nimport { FormFieldInfoComponent, FormGroupComponent } from './components';\nimport { FormFieldLabelDirective } from './directives';\nimport { FormFieldService } from './form-field.service';\nimport { FormFieldErrorService } from './services';\n\n@CSSComponent('form-field')\n@Component({\n standalone: true,\n selector: 'odx-form-field',\n imports: [CoreModule, FormFieldInfoComponent, FormFieldLabelDirective],\n templateUrl: './form-field.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [FormFieldService, FormFieldErrorService, DisabledController.connect(), ReadonlyController.connect()],\n})\nexport class FormFieldComponent {\n protected readonly formGroup = inject(FormGroupComponent, { optional: true, host: true });\n protected readonly formFieldService = inject(FormFieldService, { self: true });\n protected readonly formFieldErrorService = inject(FormFieldErrorService, { self: true });\n public readonly element = injectElement();\n\n @ContentChild(FormFieldLabelDirective)\n public labelDirective?: FormFieldLabelDirective;\n\n @Input()\n public label?: string | null = null;\n\n public get hasLabel(): boolean {\n return !!(this.labelDirective || this.label);\n }\n\n public get isStandalone(): boolean {\n return !this.formGroup;\n }\n\n constructor() {\n reactiveClassBinding(this.formFieldService.isRequired$, 'odx-form-field--required');\n reactiveClassBinding(this.formFieldService.isDisabled$, 'is-disabled');\n reactiveClassBinding(this.formFieldService.isReadonly$, 'is-readonly');\n reactiveClassBinding(this.formFieldErrorService.hasError$, 'has-error');\n }\n}\n","<label class=\"odx-form-field__label\" [attr.for]=\"formFieldService.controlId$ | async\" [attr.aria-owns]=\"formFieldService.controlId$ | async\" *ngIf=\"hasLabel\">\n <odx-form-field-label *ngIf=\"label; else labelTemplate\">\n {{ label }}\n </odx-form-field-label>\n <ng-template #labelTemplate>\n <ng-content select=\"odx-form-field-label\"></ng-content>\n </ng-template>\n</label>\n<div class=\"odx-form-field__inner\">\n <div class=\"odx-form-field__control\">\n <div class=\"odx-form-field__prefix\">\n <ng-content select=\"[odxFormFieldPrefix]\"></ng-content>\n </div>\n <ng-content></ng-content>\n <div class=\"odx-form-field__suffix\">\n <ng-content select=\"[odxFormFieldSuffix]\"></ng-content>\n </div>\n </div>\n <odx-form-field-info [error]=\"formFieldErrorService.error$ | async\" *ngIf=\"!formGroup\">\n <ng-content select=\"odx-form-field-hint\"></ng-content>\n </odx-form-field-info>\n</div>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { ModuleConfigDependencies, ModuleConfigProvider, provideModuleConfig } from '@odx/angular/utils';\nimport { FormGroupComponent } from './components';\nimport { FormDirective, FormFieldControlDirective, FormFieldErrorDirective, FormFieldHintDirective, FormFieldLabelDirective } from './directives';\nimport { FormFieldComponent } from './form-field.component';\nimport { FormFieldModuleConfig } from './form-field.config';\n\nconst modules = [\n FormFieldComponent,\n FormGroupComponent,\n FormDirective,\n FormFieldControlDirective,\n FormFieldErrorDirective,\n FormFieldHintDirective,\n FormFieldLabelDirective,\n];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class FormFieldModule {\n public static forRoot<D extends ModuleConfigDependencies>(\n config: ModuleConfigProvider<Partial<FormFieldModuleConfig>, D>\n ): ModuleWithProviders<FormFieldModule> {\n return {\n ngModule: FormFieldModule,\n providers: [provideModuleConfig(FormFieldModuleConfig, config)],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -14,9 +14,9 @@ import { MainMenuModule } from '@odx/angular/components/main-menu';
14
14
 
15
15
  class HeaderAvatarDirective {
16
16
  }
17
- HeaderAvatarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HeaderAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
- HeaderAvatarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: HeaderAvatarDirective, isStandalone: true, selector: "button[odxHeaderAvatar]", host: { properties: { "class.odx-header__avatar": "true" } }, ngImport: i0 });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HeaderAvatarDirective, decorators: [{
17
+ HeaderAvatarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: HeaderAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
+ HeaderAvatarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: HeaderAvatarDirective, isStandalone: true, selector: "button[odxHeaderAvatar]", host: { properties: { "class.odx-header__avatar": "true" } }, ngImport: i0 });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: HeaderAvatarDirective, decorators: [{
20
20
  type: Directive,
21
21
  args: [{
22
22
  standalone: true,
@@ -29,9 +29,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImpor
29
29
 
30
30
  class HeaderTitleDirective {
31
31
  }
32
- HeaderTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HeaderTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
33
- HeaderTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: HeaderTitleDirective, isStandalone: true, selector: "odx-header-title", host: { properties: { "class.odx-header__title": "true" } }, ngImport: i0 });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HeaderTitleDirective, decorators: [{
32
+ HeaderTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: HeaderTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
33
+ HeaderTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: HeaderTitleDirective, isStandalone: true, selector: "odx-header-title", host: { properties: { "class.odx-header__title": "true" } }, ngImport: i0 });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: HeaderTitleDirective, decorators: [{
35
35
  type: Directive,
36
36
  args: [{
37
37
  selector: 'odx-header-title',
@@ -47,12 +47,12 @@ let HeaderComponent = class HeaderComponent {
47
47
  this.element = injectElement();
48
48
  }
49
49
  };
50
- HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
- HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: HeaderComponent, isStandalone: true, selector: "odx-header", ngImport: i0, template: "<ng-content select=\"button[odxMainMenuButton]\"></ng-content>\n<ng-content select=\"odx-header-title\"></ng-content>\n<odx-logo></odx-logo>\n<ng-content select=\"odx-action-group\"></ng-content>\n<ng-content select=\"[odxHeaderAvatar]\"></ng-content>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
50
+ HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
+ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: HeaderComponent, isStandalone: true, selector: "odx-header", ngImport: i0, template: "<ng-content select=\"button[odxMainMenuButton]\"></ng-content>\n<ng-content select=\"odx-header-title\"></ng-content>\n<odx-logo></odx-logo>\n<ng-content select=\"odx-action-group\"></ng-content>\n<ng-content select=\"[odxHeaderAvatar]\"></ng-content>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
52
52
  HeaderComponent = __decorate([
53
53
  CSSComponent('header')
54
54
  ], HeaderComponent);
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HeaderComponent, decorators: [{
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: HeaderComponent, decorators: [{
56
56
  type: Component,
57
57
  args: [{ standalone: true, selector: 'odx-header', imports: [CommonModule, LogoDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"button[odxMainMenuButton]\"></ng-content>\n<ng-content select=\"odx-header-title\"></ng-content>\n<odx-logo></odx-logo>\n<ng-content select=\"odx-action-group\"></ng-content>\n<ng-content select=\"[odxHeaderAvatar]\"></ng-content>\n" }]
58
58
  }] });
@@ -70,8 +70,8 @@ const modules = [
70
70
  ];
71
71
  class HeaderModule {
72
72
  }
73
- HeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
74
- HeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.9", ngImport: i0, type: HeaderModule, imports: [HeaderComponent,
73
+ HeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: HeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
74
+ HeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: HeaderModule, imports: [HeaderComponent,
75
75
  HeaderTitleDirective,
76
76
  HeaderAvatarDirective,
77
77
  MainMenuModule,
@@ -88,13 +88,13 @@ HeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
88
88
  ButtonComponent,
89
89
  AvatarComponent,
90
90
  LogoDirective] });
91
- HeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HeaderModule, imports: [HeaderComponent,
91
+ HeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: HeaderModule, imports: [HeaderComponent,
92
92
  MainMenuModule,
93
93
  ActionGroupComponent,
94
94
  IconComponent,
95
95
  ButtonComponent,
96
96
  AvatarComponent, CoreModule, MainMenuModule] });
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HeaderModule, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: HeaderModule, decorators: [{
98
98
  type: NgModule,
99
99
  args: [{
100
100
  imports: modules,
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-header.mjs","sources":["../../../../libs/angular/components/header/src/lib/directives/header-avatar.directive.ts","../../../../libs/angular/components/header/src/lib/directives/header-title.directive.ts","../../../../libs/angular/components/header/src/lib/header.component.ts","../../../../libs/angular/components/header/src/lib/header.component.html","../../../../libs/angular/components/header/src/lib/header.module.ts","../../../../libs/angular/components/header/src/odx-angular-components-header.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'button[odxHeaderAvatar]',\n host: {\n '[class.odx-header__avatar]': 'true',\n },\n})\nexport class HeaderAvatarDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'odx-header-title',\n standalone: true,\n host: {\n '[class.odx-header__title]': 'true',\n },\n})\nexport class HeaderTitleDirective {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { LogoDirective } from '@odx/angular/components/logo';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n@CSSComponent('header')\n@Component({\n standalone: true,\n selector: 'odx-header',\n imports: [CommonModule, LogoDirective],\n templateUrl: './header.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderComponent {\n public readonly element = injectElement();\n}\n","<ng-content select=\"button[odxMainMenuButton]\"></ng-content>\n<ng-content select=\"odx-header-title\"></ng-content>\n<odx-logo></odx-logo>\n<ng-content select=\"odx-action-group\"></ng-content>\n<ng-content select=\"[odxHeaderAvatar]\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { AvatarComponent } from '@odx/angular/components/avatar';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { LogoDirective } from '@odx/angular/components/logo';\nimport { MainMenuModule } from '@odx/angular/components/main-menu';\nimport { HeaderAvatarDirective, HeaderTitleDirective } from './directives';\nimport { HeaderComponent } from './header.component';\n\nconst modules = [\n HeaderComponent,\n HeaderTitleDirective,\n HeaderAvatarDirective,\n MainMenuModule,\n ActionGroupComponent,\n IconComponent,\n ButtonComponent,\n AvatarComponent,\n LogoDirective,\n];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class HeaderModule {}\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-components-header.mjs","sources":["../../../../libs/angular/components/header/src/lib/directives/header-avatar.directive.ts","../../../../libs/angular/components/header/src/lib/directives/header-title.directive.ts","../../../../libs/angular/components/header/src/lib/header.component.ts","../../../../libs/angular/components/header/src/lib/header.component.html","../../../../libs/angular/components/header/src/lib/header.module.ts","../../../../libs/angular/components/header/src/odx-angular-components-header.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'button[odxHeaderAvatar]',\n host: {\n '[class.odx-header__avatar]': 'true',\n },\n})\nexport class HeaderAvatarDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'odx-header-title',\n standalone: true,\n host: {\n '[class.odx-header__title]': 'true',\n },\n})\nexport class HeaderTitleDirective {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { LogoDirective } from '@odx/angular/components/logo';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n@CSSComponent('header')\n@Component({\n standalone: true,\n selector: 'odx-header',\n imports: [CommonModule, LogoDirective],\n templateUrl: './header.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderComponent {\n public readonly element = injectElement();\n}\n","<ng-content select=\"button[odxMainMenuButton]\"></ng-content>\n<ng-content select=\"odx-header-title\"></ng-content>\n<odx-logo></odx-logo>\n<ng-content select=\"odx-action-group\"></ng-content>\n<ng-content select=\"[odxHeaderAvatar]\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { ActionGroupComponent } from '@odx/angular/components/action-group';\nimport { AvatarComponent } from '@odx/angular/components/avatar';\nimport { ButtonComponent } from '@odx/angular/components/button';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { LogoDirective } from '@odx/angular/components/logo';\nimport { MainMenuModule } from '@odx/angular/components/main-menu';\nimport { HeaderAvatarDirective, HeaderTitleDirective } from './directives';\nimport { HeaderComponent } from './header.component';\n\nconst modules = [\n HeaderComponent,\n HeaderTitleDirective,\n HeaderAvatarDirective,\n MainMenuModule,\n ActionGroupComponent,\n IconComponent,\n ButtonComponent,\n AvatarComponent,\n LogoDirective,\n];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class HeaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}