@odx/angular 1.0.0-rc.8 → 1.0.0-rc.9

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 (549) hide show
  1. package/README.md +6 -6
  2. package/cdk/a11y/README.md +3 -0
  3. package/cdk/a11y/index.d.ts +2 -0
  4. package/cdk/a11y/lib/a11y.module.d.ts +11 -0
  5. package/cdk/a11y/lib/directives/index.d.ts +3 -0
  6. package/cdk/a11y/lib/directives/interactive.directive.d.ts +11 -0
  7. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +11 -0
  8. package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +12 -0
  9. package/cdk/active-indicator/lib/active-indicator.directive.d.ts +2 -2
  10. package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +1 -1
  11. package/cdk/connected-overlay/lib/connected-overlay.component.d.ts +1 -1
  12. package/cdk/connected-overlay/lib/models/connected-overlay-options.d.ts +1 -0
  13. package/cdk/custom-form-control/lib/control.directive.d.ts +1 -1
  14. package/cdk/custom-form-control/lib/custom-form-control.d.ts +1 -1
  15. package/cdk/dynamic-view/lib/dynamic-view.component.d.ts +1 -1
  16. package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +1 -1
  17. package/cdk/expandable/index.d.ts +1 -0
  18. package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +2 -2
  19. package/cdk/expandable/lib/directives/extandable-container.directive.d.ts +2 -2
  20. package/cdk/expandable/lib/expandable.tokens.d.ts +3 -0
  21. package/cdk/expandable/lib/facade/expandable-container.d.ts +4 -4
  22. package/cdk/expandable/lib/facade/expandable-item.d.ts +6 -6
  23. package/cdk/radio-group-control/lib/radio-control.directive.d.ts +1 -1
  24. package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +1 -1
  25. package/components/accordion/lib/accordion.component.d.ts +1 -1
  26. package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +1 -1
  27. package/components/accordion/lib/directives/accordion-item-title.d.ts +1 -1
  28. package/components/action-group/action-group.component.d.ts +1 -1
  29. package/components/area-header/area-header.component.d.ts +1 -1
  30. package/components/area-header/directives/area-header-content.directive.d.ts +1 -1
  31. package/components/area-header/directives/area-header-subtitle.directive.d.ts +1 -1
  32. package/components/avatar/lib/avatar.component.d.ts +1 -1
  33. package/components/badge/lib/badge.component.d.ts +1 -1
  34. package/components/badge/lib/badge.directive.d.ts +1 -1
  35. package/components/bar/README.md +3 -0
  36. package/components/bar/index.d.ts +5 -0
  37. package/components/bar/lib/bar.component.d.ts +6 -0
  38. package/components/bar/lib/bar.module.d.ts +10 -0
  39. package/components/bar/lib/directives/bar-button.directive.d.ts +10 -0
  40. package/components/bar/lib/directives/bar-label.directive.d.ts +6 -0
  41. package/components/bar/lib/models/bar-button-variant.d.ts +5 -0
  42. package/components/breadcrumbs/README.md +3 -0
  43. package/components/breadcrumbs/index.d.ts +1 -0
  44. package/components/breadcrumbs/lib/breadcrumbs.component.d.ts +17 -0
  45. package/components/button/lib/button.component.d.ts +3 -4
  46. package/components/button-group/lib/button-group.component.d.ts +1 -1
  47. package/components/checkbox/lib/checkbox.component.d.ts +2 -1
  48. package/components/checkbox/lib/checkbox.validator.d.ts +1 -1
  49. package/components/chip/lib/chip.component.d.ts +1 -1
  50. package/components/circular-progress/lib/circular-progress.component.d.ts +1 -1
  51. package/components/content-box/lib/content-box.component.d.ts +1 -1
  52. package/components/content-box/lib/directives/content-box-footer-directive.d.ts +1 -1
  53. package/components/content-box/lib/directives/content-box-header-directive.d.ts +1 -1
  54. package/components/dropdown/index.d.ts +1 -0
  55. package/components/dropdown/lib/dropdown.component.d.ts +2 -1
  56. package/components/dropdown/lib/dropdown.directive.d.ts +9 -4
  57. package/components/dropdown/lib/helpers/close-current-dropdown.d.ts +1 -0
  58. package/components/dropdown/lib/helpers/index.d.ts +1 -0
  59. package/components/dropdown/lib/models/close-dropdown-event.d.ts +4 -0
  60. package/components/dropdown/lib/models/index.d.ts +1 -0
  61. package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +1 -1
  62. package/components/form-field/lib/components/form-group/form-group.component.d.ts +1 -1
  63. package/components/form-field/lib/directives/form-field-control.directive.d.ts +1 -1
  64. package/components/form-field/lib/directives/form-field-error.directive.d.ts +1 -1
  65. package/components/form-field/lib/directives/form-field-hint.directive.d.ts +1 -1
  66. package/components/form-field/lib/directives/form-field-label.directive.d.ts +1 -1
  67. package/components/form-field/lib/directives/form.directive.d.ts +1 -1
  68. package/components/form-field/lib/form-field.component.d.ts +2 -1
  69. package/components/header/lib/directives/header-avatar.directive.d.ts +1 -1
  70. package/components/header/lib/directives/header-title.directive.d.ts +1 -1
  71. package/components/header/lib/header.component.d.ts +1 -1
  72. package/components/header/lib/header.module.d.ts +2 -3
  73. package/components/icon/lib/icon.component.d.ts +1 -1
  74. package/components/icon/lib/models/icon-size.d.ts +2 -1
  75. package/components/inline-message/index.d.ts +1 -1
  76. package/components/inline-message/lib/inline-message.component.d.ts +2 -2
  77. package/components/inline-message/lib/models/index.d.ts +1 -0
  78. package/components/launch-tile/index.d.ts +1 -3
  79. package/components/launch-tile/lib/components/index.d.ts +2 -0
  80. package/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.d.ts +1 -1
  81. package/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.d.ts +1 -1
  82. package/components/launch-tile/lib/launch-tile.component.d.ts +9 -7
  83. package/components/launch-tile/lib/launch-tile.module.d.ts +8 -10
  84. package/components/link/link.directive.d.ts +2 -4
  85. package/components/list/lib/components/index.d.ts +1 -1
  86. package/components/list/lib/components/{list-item.component.d.ts → list-item/list-item.component.d.ts} +2 -4
  87. package/components/list/lib/list.component.d.ts +2 -1
  88. package/components/list/lib/list.module.d.ts +1 -1
  89. package/components/loading-spinner/lib/loading-spinner.component.d.ts +1 -1
  90. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +2 -2
  91. package/components/logo/logo.directive.d.ts +1 -1
  92. package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +1 -1
  93. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +2 -4
  94. package/components/main-menu/lib/main-menu.component.d.ts +1 -1
  95. package/components/menu/README.md +3 -0
  96. package/components/menu/index.d.ts +4 -0
  97. package/components/menu/lib/directives/index.d.ts +1 -0
  98. package/components/menu/lib/directives/menu-item.directive.d.ts +9 -0
  99. package/components/menu/lib/menu.component.d.ts +8 -0
  100. package/components/menu/lib/menu.directive.d.ts +16 -0
  101. package/components/menu/lib/menu.module.d.ts +10 -0
  102. package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +10 -0
  103. package/components/modal/lib/components/index.d.ts +2 -0
  104. package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +1 -1
  105. package/components/modal/lib/components/modal-header/modal-header.component.d.ts +1 -1
  106. package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +11 -0
  107. package/components/modal/lib/directives/modal-close.directive.d.ts +2 -2
  108. package/components/modal/lib/directives/modal-content.directive.d.ts +1 -1
  109. package/components/modal/lib/directives/modal-dismiss.directive.d.ts +1 -1
  110. package/components/modal/lib/helpers/inject-modal-ref.d.ts +1 -1
  111. package/components/modal/lib/modal.component.d.ts +7 -3
  112. package/components/modal/lib/modal.directive.d.ts +1 -1
  113. package/components/modal/lib/modal.module.d.ts +9 -8
  114. package/components/modal/lib/modal.service.d.ts +2 -1
  115. package/components/modal/lib/models/basic-modal-options.d.ts +17 -0
  116. package/components/modal/lib/models/index.d.ts +2 -0
  117. package/components/modal/lib/models/modal-hero-variant.d.ts +7 -0
  118. package/components/progress/lib/progress.component.d.ts +2 -2
  119. package/components/radio-group/lib/components/radio-button/radio-button.component.d.ts +2 -2
  120. package/components/radio-group/lib/radio-group.component.d.ts +1 -1
  121. package/components/rail-navigation/lib/components/rail-navigation-item.component.d.ts +2 -4
  122. package/components/rail-navigation/lib/rail-navigation.component.d.ts +1 -1
  123. package/components/select/lib/components/option/option.component.d.ts +1 -1
  124. package/components/select/lib/directives/select-search-field.directive.d.ts +1 -1
  125. package/components/select/lib/select.component.d.ts +4 -4
  126. package/components/slider/lib/slider.directive.d.ts +2 -3
  127. package/components/spinbox/lib/spinbox.component.d.ts +2 -2
  128. package/components/switch/lib/switch.component.d.ts +2 -1
  129. package/components/switch/lib/switch.validator.d.ts +1 -1
  130. package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +1 -1
  131. package/components/tab-bar/lib/tab-bar.component.d.ts +3 -3
  132. package/components/toast/README.md +3 -0
  133. package/components/toast/index.d.ts +5 -0
  134. package/components/toast/lib/components/index.d.ts +2 -0
  135. package/components/toast/lib/components/toast-container/toast-container.component.d.ts +23 -0
  136. package/components/toast/lib/components/toast-item/toast-item.component.d.ts +20 -0
  137. package/components/toast/lib/models/index.d.ts +5 -0
  138. package/components/toast/lib/models/toast-action.d.ts +7 -0
  139. package/components/toast/lib/models/toast-ref.d.ts +7 -0
  140. package/components/toast/lib/models/toast-variant.d.ts +7 -0
  141. package/components/toast/lib/models/toast.d.ts +10 -0
  142. package/components/toast/lib/models/toast.options.d.ts +4 -0
  143. package/components/toast/lib/toast.config.d.ts +3 -0
  144. package/components/toast/lib/toast.module.d.ts +13 -0
  145. package/components/toast/lib/toast.service.d.ts +16 -0
  146. package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +1 -1
  147. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +2 -2
  148. package/components/tooltip/lib/tooltip.component.d.ts +1 -1
  149. package/components/tooltip/lib/tooltip.directive.d.ts +1 -1
  150. package/esm2020/animations/lib/expand.mjs +6 -4
  151. package/esm2020/cdk/a11y/index.mjs +3 -0
  152. package/esm2020/cdk/a11y/lib/a11y.module.mjs +19 -0
  153. package/esm2020/cdk/a11y/lib/directives/index.mjs +4 -0
  154. package/esm2020/cdk/a11y/lib/directives/interactive.directive.mjs +49 -0
  155. package/esm2020/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +28 -0
  156. package/esm2020/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +40 -0
  157. package/esm2020/cdk/a11y/odx-angular-cdk-a11y.mjs +5 -0
  158. package/esm2020/cdk/active-indicator/lib/active-indicator.directive.mjs +4 -4
  159. package/esm2020/cdk/checkbox-control/lib/checkbox-control.directive.mjs +4 -4
  160. package/esm2020/cdk/connected-overlay/lib/connected-overlay.component.mjs +8 -4
  161. package/esm2020/cdk/connected-overlay/lib/connected-overlay.service.mjs +4 -4
  162. package/esm2020/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +3 -3
  163. package/esm2020/cdk/connected-overlay/lib/models/connected-overlay-options.mjs +2 -1
  164. package/esm2020/cdk/custom-form-control/lib/control.directive.mjs +4 -4
  165. package/esm2020/cdk/custom-form-control/lib/custom-form-control.mjs +4 -4
  166. package/esm2020/cdk/dynamic-view/lib/dynamic-view.component.mjs +4 -4
  167. package/esm2020/cdk/dynamic-view/lib/dynamic-view.directive.mjs +4 -4
  168. package/esm2020/cdk/dynamic-view/lib/dynamic-view.service.mjs +4 -4
  169. package/esm2020/cdk/expandable/index.mjs +2 -1
  170. package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +7 -8
  171. package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +5 -7
  172. package/esm2020/cdk/expandable/lib/expandable.module.mjs +5 -5
  173. package/esm2020/cdk/expandable/lib/expandable.tokens.mjs +3 -0
  174. package/esm2020/cdk/expandable/lib/facade/expandable-container.mjs +2 -3
  175. package/esm2020/cdk/expandable/lib/facade/expandable-item.mjs +2 -3
  176. package/esm2020/cdk/radio-group-control/lib/radio-control.directive.mjs +4 -4
  177. package/esm2020/cdk/radio-group-control/lib/radio-group-control.directive.mjs +4 -4
  178. package/esm2020/cdk/radio-group-control/lib/radio-group-control.module.mjs +5 -5
  179. package/esm2020/components/accordion/lib/accordion.component.mjs +6 -6
  180. package/esm2020/components/accordion/lib/accordion.module.mjs +5 -5
  181. package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +8 -6
  182. package/esm2020/components/accordion/lib/directives/accordion-item-title.mjs +4 -4
  183. package/esm2020/components/action-group/action-group.component.mjs +4 -4
  184. package/esm2020/components/area-header/area-header.component.mjs +4 -4
  185. package/esm2020/components/area-header/area-header.module.mjs +5 -5
  186. package/esm2020/components/area-header/directives/area-header-content.directive.mjs +4 -4
  187. package/esm2020/components/area-header/directives/area-header-subtitle.directive.mjs +4 -4
  188. package/esm2020/components/avatar/lib/avatar.component.mjs +4 -4
  189. package/esm2020/components/badge/lib/badge.component.mjs +4 -4
  190. package/esm2020/components/badge/lib/badge.directive.mjs +4 -4
  191. package/esm2020/components/bar/index.mjs +6 -0
  192. package/esm2020/components/bar/lib/bar.component.mjs +21 -0
  193. package/esm2020/components/bar/lib/bar.module.mjs +20 -0
  194. package/esm2020/components/bar/lib/directives/bar-button.directive.mjs +39 -0
  195. package/esm2020/components/bar/lib/directives/bar-label.directive.mjs +24 -0
  196. package/esm2020/components/bar/lib/models/bar-button-variant.mjs +5 -0
  197. package/esm2020/components/bar/odx-angular-components-bar.mjs +5 -0
  198. package/esm2020/components/breadcrumbs/index.mjs +2 -0
  199. package/esm2020/components/breadcrumbs/lib/breadcrumbs.component.mjs +50 -0
  200. package/esm2020/components/breadcrumbs/odx-angular-components-breadcrumbs.mjs +5 -0
  201. package/esm2020/components/button/lib/button.component.mjs +8 -12
  202. package/esm2020/components/button-group/lib/button-group.component.mjs +4 -4
  203. package/esm2020/components/checkbox/lib/checkbox.component.mjs +7 -6
  204. package/esm2020/components/checkbox/lib/checkbox.module.mjs +5 -5
  205. package/esm2020/components/checkbox/lib/checkbox.validator.mjs +4 -4
  206. package/esm2020/components/chip/lib/chip.component.mjs +4 -4
  207. package/esm2020/components/circular-progress/lib/circular-progress.component.mjs +5 -5
  208. package/esm2020/components/content-box/lib/content-box.component.mjs +4 -4
  209. package/esm2020/components/content-box/lib/content-box.module.mjs +5 -5
  210. package/esm2020/components/content-box/lib/directives/content-box-footer-directive.mjs +4 -4
  211. package/esm2020/components/content-box/lib/directives/content-box-header-directive.mjs +4 -4
  212. package/esm2020/components/dropdown/index.mjs +2 -1
  213. package/esm2020/components/dropdown/lib/dropdown.component.mjs +15 -6
  214. package/esm2020/components/dropdown/lib/dropdown.directive.mjs +33 -16
  215. package/esm2020/components/dropdown/lib/dropdown.module.mjs +5 -5
  216. package/esm2020/components/dropdown/lib/helpers/close-current-dropdown.mjs +5 -0
  217. package/esm2020/components/dropdown/lib/helpers/index.mjs +2 -0
  218. package/esm2020/components/dropdown/lib/models/close-dropdown-event.mjs +7 -0
  219. package/esm2020/components/dropdown/lib/models/index.mjs +2 -1
  220. package/esm2020/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +4 -4
  221. package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +4 -4
  222. package/esm2020/components/form-field/lib/directives/form-field-control.directive.mjs +4 -4
  223. package/esm2020/components/form-field/lib/directives/form-field-error.directive.mjs +4 -4
  224. package/esm2020/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -4
  225. package/esm2020/components/form-field/lib/directives/form-field-label.directive.mjs +4 -4
  226. package/esm2020/components/form-field/lib/directives/form.directive.mjs +4 -4
  227. package/esm2020/components/form-field/lib/form-field.component.mjs +8 -7
  228. package/esm2020/components/form-field/lib/form-field.module.mjs +5 -5
  229. package/esm2020/components/form-field/lib/form-field.service.mjs +4 -4
  230. package/esm2020/components/form-field/lib/services/form-field-error.service.mjs +4 -4
  231. package/esm2020/components/header/lib/directives/header-avatar.directive.mjs +4 -4
  232. package/esm2020/components/header/lib/directives/header-title.directive.mjs +4 -4
  233. package/esm2020/components/header/lib/header.component.mjs +5 -6
  234. package/esm2020/components/header/lib/header.module.mjs +7 -11
  235. package/esm2020/components/icon/lib/icon.component.mjs +4 -4
  236. package/esm2020/components/icon/lib/models/icon-size.mjs +2 -1
  237. package/esm2020/components/inline-message/index.mjs +2 -2
  238. package/esm2020/components/inline-message/lib/inline-message.component.mjs +5 -5
  239. package/esm2020/components/inline-message/lib/models/index.mjs +2 -0
  240. package/esm2020/components/launch-tile/index.mjs +2 -4
  241. package/esm2020/components/launch-tile/lib/components/index.mjs +3 -0
  242. package/esm2020/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.mjs +4 -4
  243. package/esm2020/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.mjs +4 -4
  244. package/esm2020/components/launch-tile/lib/launch-tile.component.mjs +32 -21
  245. package/esm2020/components/launch-tile/lib/launch-tile.module.mjs +9 -45
  246. package/esm2020/components/link/link.directive.mjs +7 -14
  247. package/esm2020/components/list/lib/components/index.mjs +2 -2
  248. package/esm2020/components/list/lib/components/list-item/list-item.component.mjs +40 -0
  249. package/esm2020/components/list/lib/list.component.mjs +17 -9
  250. package/esm2020/components/list/lib/list.module.mjs +6 -6
  251. package/esm2020/components/loading-spinner/lib/loading-spinner.component.mjs +4 -4
  252. package/esm2020/components/loading-spinner/lib/loading-spinner.directive.mjs +9 -9
  253. package/esm2020/components/loading-spinner/lib/loading-spinner.module.mjs +5 -5
  254. package/esm2020/components/logo/logo.directive.mjs +4 -4
  255. package/esm2020/components/main-menu/lib/directives/main-menu-button.directive.mjs +4 -4
  256. package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +7 -13
  257. package/esm2020/components/main-menu/lib/main-menu.component.mjs +8 -8
  258. package/esm2020/components/main-menu/lib/main-menu.module.mjs +5 -5
  259. package/esm2020/components/main-menu/lib/main-menu.service.mjs +4 -4
  260. package/esm2020/components/menu/index.mjs +5 -0
  261. package/esm2020/components/menu/lib/directives/index.mjs +2 -0
  262. package/esm2020/components/menu/lib/directives/menu-item.directive.mjs +39 -0
  263. package/esm2020/components/menu/lib/menu.component.mjs +35 -0
  264. package/esm2020/components/menu/lib/menu.directive.mjs +51 -0
  265. package/esm2020/components/menu/lib/menu.module.mjs +20 -0
  266. package/esm2020/components/menu/odx-angular-components-menu.mjs +5 -0
  267. package/esm2020/components/modal/lib/components/basic-modal/basic-modal.component.mjs +42 -0
  268. package/esm2020/components/modal/lib/components/index.mjs +3 -1
  269. package/esm2020/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -4
  270. package/esm2020/components/modal/lib/components/modal-header/modal-header.component.mjs +4 -4
  271. package/esm2020/components/modal/lib/components/modal-hero/modal-hero.component.mjs +39 -0
  272. package/esm2020/components/modal/lib/directives/modal-close.directive.mjs +10 -5
  273. package/esm2020/components/modal/lib/directives/modal-content.directive.mjs +4 -4
  274. package/esm2020/components/modal/lib/directives/modal-dismiss.directive.mjs +4 -4
  275. package/esm2020/components/modal/lib/helpers/inject-modal-ref.mjs +1 -1
  276. package/esm2020/components/modal/lib/modal.component.mjs +19 -9
  277. package/esm2020/components/modal/lib/modal.directive.mjs +4 -4
  278. package/esm2020/components/modal/lib/modal.module.mjs +33 -7
  279. package/esm2020/components/modal/lib/modal.service.mjs +14 -5
  280. package/esm2020/components/modal/lib/models/basic-modal-options.mjs +2 -0
  281. package/esm2020/components/modal/lib/models/index.mjs +3 -1
  282. package/esm2020/components/modal/lib/models/modal-hero-variant.mjs +7 -0
  283. package/esm2020/components/modal/lib/services/open-modal-manager.service.mjs +4 -4
  284. package/esm2020/components/progress/lib/progress.component.mjs +6 -6
  285. package/esm2020/components/radio-group/lib/components/radio-button/radio-button.component.mjs +8 -9
  286. package/esm2020/components/radio-group/lib/radio-group.component.mjs +6 -6
  287. package/esm2020/components/radio-group/lib/radio-group.module.mjs +5 -5
  288. package/esm2020/components/rail-navigation/lib/components/rail-navigation-item.component.mjs +7 -12
  289. package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +4 -4
  290. package/esm2020/components/rail-navigation/lib/rail-navigation.module.mjs +5 -5
  291. package/esm2020/components/select/lib/components/option/option.component.mjs +5 -5
  292. package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +4 -4
  293. package/esm2020/components/select/lib/pipes/select-search-filter.pipe.mjs +4 -4
  294. package/esm2020/components/select/lib/select.component.mjs +13 -17
  295. package/esm2020/components/select/lib/select.module.mjs +5 -5
  296. package/esm2020/components/slider/lib/slider.directive.mjs +7 -10
  297. package/esm2020/components/spinbox/lib/spinbox.component.mjs +5 -5
  298. package/esm2020/components/switch/lib/switch.component.mjs +7 -6
  299. package/esm2020/components/switch/lib/switch.module.mjs +5 -5
  300. package/esm2020/components/switch/lib/switch.validator.mjs +4 -4
  301. package/esm2020/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +8 -8
  302. package/esm2020/components/tab-bar/lib/tab-bar.component.mjs +7 -8
  303. package/esm2020/components/tab-bar/lib/tab-bar.module.mjs +5 -5
  304. package/esm2020/components/toast/index.mjs +6 -0
  305. package/esm2020/components/toast/lib/components/index.mjs +3 -0
  306. package/esm2020/components/toast/lib/components/toast-container/toast-container.component.mjs +87 -0
  307. package/esm2020/components/toast/lib/components/toast-item/toast-item.component.mjs +74 -0
  308. package/esm2020/components/toast/lib/models/index.mjs +6 -0
  309. package/esm2020/components/toast/lib/models/toast-action.mjs +2 -0
  310. package/esm2020/components/toast/lib/models/toast-ref.mjs +2 -0
  311. package/esm2020/components/toast/lib/models/toast-variant.mjs +7 -0
  312. package/esm2020/components/toast/lib/models/toast.mjs +2 -0
  313. package/esm2020/components/toast/lib/models/toast.options.mjs +2 -0
  314. package/esm2020/components/toast/lib/toast.config.mjs +6 -0
  315. package/esm2020/components/toast/lib/toast.module.mjs +26 -0
  316. package/esm2020/components/toast/lib/toast.service.mjs +38 -0
  317. package/esm2020/components/toast/odx-angular-components-toast.mjs +5 -0
  318. package/esm2020/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +6 -10
  319. package/esm2020/components/toggle-button-group/lib/toggle-button-group.component.mjs +15 -7
  320. package/esm2020/components/toggle-button-group/lib/toggle-button-group.module.mjs +5 -5
  321. package/esm2020/components/tooltip/lib/tooltip.component.mjs +4 -4
  322. package/esm2020/components/tooltip/lib/tooltip.directive.mjs +4 -4
  323. package/esm2020/lib/controllers/controller.mjs +6 -6
  324. package/esm2020/lib/controllers/disabled.controller.mjs +21 -42
  325. package/esm2020/lib/controllers/readonly.controller.mjs +6 -6
  326. package/esm2020/lib/core.module.mjs +7 -7
  327. package/esm2020/lib/directives/click-outside.directive.mjs +7 -6
  328. package/esm2020/lib/directives/index.mjs +4 -1
  329. package/esm2020/lib/directives/let.directive.mjs +36 -0
  330. package/esm2020/lib/directives/with-disabled-state.directive.mjs +41 -0
  331. package/esm2020/lib/directives/with-tabindex.directive.mjs +23 -0
  332. package/esm2020/lib/services/window-ref.mjs +9 -5
  333. package/esm2020/utils/lib/helpers/dom.mjs +8 -1
  334. package/esm2020/utils/lib/helpers/event-manager.mjs +4 -4
  335. package/esm2020/utils/lib/helpers/get-unique-id.mjs +7 -0
  336. package/esm2020/utils/lib/helpers/index.mjs +3 -1
  337. package/esm2020/utils/lib/helpers/provide-module-config.mjs +1 -1
  338. package/esm2020/utils/lib/helpers/queue.mjs +24 -0
  339. package/fesm2015/odx-angular-animations.mjs +5 -3
  340. package/fesm2015/odx-angular-animations.mjs.map +1 -1
  341. package/fesm2015/odx-angular-cdk-a11y.mjs +132 -0
  342. package/fesm2015/odx-angular-cdk-a11y.mjs.map +1 -0
  343. package/fesm2015/odx-angular-cdk-active-indicator.mjs +3 -3
  344. package/fesm2015/odx-angular-cdk-active-indicator.mjs.map +1 -1
  345. package/fesm2015/odx-angular-cdk-checkbox-control.mjs +3 -3
  346. package/fesm2015/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  347. package/fesm2015/odx-angular-cdk-connected-overlay.mjs +13 -8
  348. package/fesm2015/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  349. package/fesm2015/odx-angular-cdk-custom-form-control.mjs +6 -6
  350. package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  351. package/fesm2015/odx-angular-cdk-dynamic-view.mjs +9 -9
  352. package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  353. package/fesm2015/odx-angular-cdk-expandable.mjs +16 -22
  354. package/fesm2015/odx-angular-cdk-expandable.mjs.map +1 -1
  355. package/fesm2015/odx-angular-cdk-radio-group-control.mjs +10 -10
  356. package/fesm2015/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  357. package/fesm2015/odx-angular-components-accordion.mjs +19 -17
  358. package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
  359. package/fesm2015/odx-angular-components-action-group.mjs +3 -3
  360. package/fesm2015/odx-angular-components-action-group.mjs.map +1 -1
  361. package/fesm2015/odx-angular-components-area-header.mjs +13 -13
  362. package/fesm2015/odx-angular-components-area-header.mjs.map +1 -1
  363. package/fesm2015/odx-angular-components-avatar.mjs +3 -3
  364. package/fesm2015/odx-angular-components-avatar.mjs.map +1 -1
  365. package/fesm2015/odx-angular-components-badge.mjs +6 -6
  366. package/fesm2015/odx-angular-components-badge.mjs.map +1 -1
  367. package/fesm2015/odx-angular-components-bar.mjs +96 -0
  368. package/fesm2015/odx-angular-components-bar.mjs.map +1 -0
  369. package/fesm2015/odx-angular-components-breadcrumbs.mjs +56 -0
  370. package/fesm2015/odx-angular-components-breadcrumbs.mjs.map +1 -0
  371. package/fesm2015/odx-angular-components-button-group.mjs +3 -3
  372. package/fesm2015/odx-angular-components-button-group.mjs.map +1 -1
  373. package/fesm2015/odx-angular-components-button.mjs +7 -11
  374. package/fesm2015/odx-angular-components-button.mjs.map +1 -1
  375. package/fesm2015/odx-angular-components-checkbox.mjs +13 -12
  376. package/fesm2015/odx-angular-components-checkbox.mjs.map +1 -1
  377. package/fesm2015/odx-angular-components-chip.mjs +3 -3
  378. package/fesm2015/odx-angular-components-chip.mjs.map +1 -1
  379. package/fesm2015/odx-angular-components-circular-progress.mjs +4 -4
  380. package/fesm2015/odx-angular-components-circular-progress.mjs.map +1 -1
  381. package/fesm2015/odx-angular-components-content-box.mjs +13 -13
  382. package/fesm2015/odx-angular-components-content-box.mjs.map +1 -1
  383. package/fesm2015/odx-angular-components-dropdown.mjs +60 -25
  384. package/fesm2015/odx-angular-components-dropdown.mjs.map +1 -1
  385. package/fesm2015/odx-angular-components-form-field.mjs +37 -36
  386. package/fesm2015/odx-angular-components-form-field.mjs.map +1 -1
  387. package/fesm2015/odx-angular-components-header.mjs +16 -20
  388. package/fesm2015/odx-angular-components-header.mjs.map +1 -1
  389. package/fesm2015/odx-angular-components-icon.mjs +4 -3
  390. package/fesm2015/odx-angular-components-icon.mjs.map +1 -1
  391. package/fesm2015/odx-angular-components-inline-message.mjs +3 -3
  392. package/fesm2015/odx-angular-components-inline-message.mjs.map +1 -1
  393. package/fesm2015/odx-angular-components-launch-tile.mjs +45 -83
  394. package/fesm2015/odx-angular-components-launch-tile.mjs.map +1 -1
  395. package/fesm2015/odx-angular-components-link.mjs +6 -14
  396. package/fesm2015/odx-angular-components-link.mjs.map +1 -1
  397. package/fesm2015/odx-angular-components-list.mjs +22 -25
  398. package/fesm2015/odx-angular-components-list.mjs.map +1 -1
  399. package/fesm2015/odx-angular-components-loading-spinner.mjs +15 -15
  400. package/fesm2015/odx-angular-components-loading-spinner.mjs.map +1 -1
  401. package/fesm2015/odx-angular-components-logo.mjs +3 -3
  402. package/fesm2015/odx-angular-components-logo.mjs.map +1 -1
  403. package/fesm2015/odx-angular-components-main-menu.mjs +22 -30
  404. package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
  405. package/fesm2015/odx-angular-components-menu.mjs +127 -0
  406. package/fesm2015/odx-angular-components-menu.mjs.map +1 -0
  407. package/fesm2015/odx-angular-components-modal.mjs +161 -55
  408. package/fesm2015/odx-angular-components-modal.mjs.map +1 -1
  409. package/fesm2015/odx-angular-components-progress.mjs +5 -5
  410. package/fesm2015/odx-angular-components-progress.mjs.map +1 -1
  411. package/fesm2015/odx-angular-components-radio-group.mjs +15 -16
  412. package/fesm2015/odx-angular-components-radio-group.mjs.map +1 -1
  413. package/fesm2015/odx-angular-components-rail-navigation.mjs +13 -19
  414. package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -1
  415. package/fesm2015/odx-angular-components-select.mjs +26 -30
  416. package/fesm2015/odx-angular-components-select.mjs.map +1 -1
  417. package/fesm2015/odx-angular-components-slider.mjs +6 -9
  418. package/fesm2015/odx-angular-components-slider.mjs.map +1 -1
  419. package/fesm2015/odx-angular-components-spinbox.mjs +5 -5
  420. package/fesm2015/odx-angular-components-spinbox.mjs.map +1 -1
  421. package/fesm2015/odx-angular-components-switch.mjs +13 -12
  422. package/fesm2015/odx-angular-components-switch.mjs.map +1 -1
  423. package/fesm2015/odx-angular-components-tab-bar.mjs +17 -18
  424. package/fesm2015/odx-angular-components-tab-bar.mjs.map +1 -1
  425. package/fesm2015/odx-angular-components-toast.mjs +221 -0
  426. package/fesm2015/odx-angular-components-toast.mjs.map +1 -0
  427. package/fesm2015/odx-angular-components-toggle-button-group.mjs +23 -19
  428. package/fesm2015/odx-angular-components-toggle-button-group.mjs.map +1 -1
  429. package/fesm2015/odx-angular-components-tooltip.mjs +6 -6
  430. package/fesm2015/odx-angular-components-tooltip.mjs.map +1 -1
  431. package/fesm2015/odx-angular-utils.mjs +41 -5
  432. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  433. package/fesm2015/odx-angular.mjs +140 -64
  434. package/fesm2015/odx-angular.mjs.map +1 -1
  435. package/fesm2020/odx-angular-animations.mjs +5 -3
  436. package/fesm2020/odx-angular-animations.mjs.map +1 -1
  437. package/fesm2020/odx-angular-cdk-a11y.mjs +128 -0
  438. package/fesm2020/odx-angular-cdk-a11y.mjs.map +1 -0
  439. package/fesm2020/odx-angular-cdk-active-indicator.mjs +3 -3
  440. package/fesm2020/odx-angular-cdk-active-indicator.mjs.map +1 -1
  441. package/fesm2020/odx-angular-cdk-checkbox-control.mjs +3 -3
  442. package/fesm2020/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  443. package/fesm2020/odx-angular-cdk-connected-overlay.mjs +13 -8
  444. package/fesm2020/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  445. package/fesm2020/odx-angular-cdk-custom-form-control.mjs +6 -6
  446. package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  447. package/fesm2020/odx-angular-cdk-dynamic-view.mjs +9 -9
  448. package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  449. package/fesm2020/odx-angular-cdk-expandable.mjs +16 -22
  450. package/fesm2020/odx-angular-cdk-expandable.mjs.map +1 -1
  451. package/fesm2020/odx-angular-cdk-radio-group-control.mjs +10 -10
  452. package/fesm2020/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  453. package/fesm2020/odx-angular-components-accordion.mjs +19 -17
  454. package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
  455. package/fesm2020/odx-angular-components-action-group.mjs +3 -3
  456. package/fesm2020/odx-angular-components-action-group.mjs.map +1 -1
  457. package/fesm2020/odx-angular-components-area-header.mjs +13 -13
  458. package/fesm2020/odx-angular-components-area-header.mjs.map +1 -1
  459. package/fesm2020/odx-angular-components-avatar.mjs +3 -3
  460. package/fesm2020/odx-angular-components-avatar.mjs.map +1 -1
  461. package/fesm2020/odx-angular-components-badge.mjs +6 -6
  462. package/fesm2020/odx-angular-components-badge.mjs.map +1 -1
  463. package/fesm2020/odx-angular-components-bar.mjs +96 -0
  464. package/fesm2020/odx-angular-components-bar.mjs.map +1 -0
  465. package/fesm2020/odx-angular-components-breadcrumbs.mjs +56 -0
  466. package/fesm2020/odx-angular-components-breadcrumbs.mjs.map +1 -0
  467. package/fesm2020/odx-angular-components-button-group.mjs +3 -3
  468. package/fesm2020/odx-angular-components-button-group.mjs.map +1 -1
  469. package/fesm2020/odx-angular-components-button.mjs +7 -11
  470. package/fesm2020/odx-angular-components-button.mjs.map +1 -1
  471. package/fesm2020/odx-angular-components-checkbox.mjs +13 -12
  472. package/fesm2020/odx-angular-components-checkbox.mjs.map +1 -1
  473. package/fesm2020/odx-angular-components-chip.mjs +3 -3
  474. package/fesm2020/odx-angular-components-chip.mjs.map +1 -1
  475. package/fesm2020/odx-angular-components-circular-progress.mjs +4 -4
  476. package/fesm2020/odx-angular-components-circular-progress.mjs.map +1 -1
  477. package/fesm2020/odx-angular-components-content-box.mjs +13 -13
  478. package/fesm2020/odx-angular-components-content-box.mjs.map +1 -1
  479. package/fesm2020/odx-angular-components-dropdown.mjs +60 -24
  480. package/fesm2020/odx-angular-components-dropdown.mjs.map +1 -1
  481. package/fesm2020/odx-angular-components-form-field.mjs +37 -36
  482. package/fesm2020/odx-angular-components-form-field.mjs.map +1 -1
  483. package/fesm2020/odx-angular-components-header.mjs +16 -20
  484. package/fesm2020/odx-angular-components-header.mjs.map +1 -1
  485. package/fesm2020/odx-angular-components-icon.mjs +4 -3
  486. package/fesm2020/odx-angular-components-icon.mjs.map +1 -1
  487. package/fesm2020/odx-angular-components-inline-message.mjs +3 -3
  488. package/fesm2020/odx-angular-components-inline-message.mjs.map +1 -1
  489. package/fesm2020/odx-angular-components-launch-tile.mjs +44 -82
  490. package/fesm2020/odx-angular-components-launch-tile.mjs.map +1 -1
  491. package/fesm2020/odx-angular-components-link.mjs +6 -13
  492. package/fesm2020/odx-angular-components-link.mjs.map +1 -1
  493. package/fesm2020/odx-angular-components-list.mjs +22 -24
  494. package/fesm2020/odx-angular-components-list.mjs.map +1 -1
  495. package/fesm2020/odx-angular-components-loading-spinner.mjs +15 -15
  496. package/fesm2020/odx-angular-components-loading-spinner.mjs.map +1 -1
  497. package/fesm2020/odx-angular-components-logo.mjs +3 -3
  498. package/fesm2020/odx-angular-components-logo.mjs.map +1 -1
  499. package/fesm2020/odx-angular-components-main-menu.mjs +22 -29
  500. package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
  501. package/fesm2020/odx-angular-components-menu.mjs +129 -0
  502. package/fesm2020/odx-angular-components-menu.mjs.map +1 -0
  503. package/fesm2020/odx-angular-components-modal.mjs +166 -55
  504. package/fesm2020/odx-angular-components-modal.mjs.map +1 -1
  505. package/fesm2020/odx-angular-components-progress.mjs +5 -5
  506. package/fesm2020/odx-angular-components-progress.mjs.map +1 -1
  507. package/fesm2020/odx-angular-components-radio-group.mjs +15 -16
  508. package/fesm2020/odx-angular-components-radio-group.mjs.map +1 -1
  509. package/fesm2020/odx-angular-components-rail-navigation.mjs +13 -18
  510. package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -1
  511. package/fesm2020/odx-angular-components-select.mjs +26 -30
  512. package/fesm2020/odx-angular-components-select.mjs.map +1 -1
  513. package/fesm2020/odx-angular-components-slider.mjs +6 -9
  514. package/fesm2020/odx-angular-components-slider.mjs.map +1 -1
  515. package/fesm2020/odx-angular-components-spinbox.mjs +5 -5
  516. package/fesm2020/odx-angular-components-spinbox.mjs.map +1 -1
  517. package/fesm2020/odx-angular-components-switch.mjs +13 -12
  518. package/fesm2020/odx-angular-components-switch.mjs.map +1 -1
  519. package/fesm2020/odx-angular-components-tab-bar.mjs +16 -17
  520. package/fesm2020/odx-angular-components-tab-bar.mjs.map +1 -1
  521. package/fesm2020/odx-angular-components-toast.mjs +220 -0
  522. package/fesm2020/odx-angular-components-toast.mjs.map +1 -0
  523. package/fesm2020/odx-angular-components-toggle-button-group.mjs +23 -19
  524. package/fesm2020/odx-angular-components-toggle-button-group.mjs.map +1 -1
  525. package/fesm2020/odx-angular-components-tooltip.mjs +6 -6
  526. package/fesm2020/odx-angular-components-tooltip.mjs.map +1 -1
  527. package/fesm2020/odx-angular-utils.mjs +42 -5
  528. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  529. package/fesm2020/odx-angular.mjs +137 -63
  530. package/fesm2020/odx-angular.mjs.map +1 -1
  531. package/lib/controllers/controller.d.ts +1 -1
  532. package/lib/controllers/disabled.controller.d.ts +4 -9
  533. package/lib/controllers/readonly.controller.d.ts +4 -2
  534. package/lib/core.module.d.ts +3 -2
  535. package/lib/directives/click-outside.directive.d.ts +1 -1
  536. package/lib/directives/index.d.ts +3 -0
  537. package/lib/directives/let.directive.d.ts +17 -0
  538. package/lib/directives/with-disabled-state.directive.d.ts +13 -0
  539. package/lib/directives/with-tabindex.directive.d.ts +7 -0
  540. package/lib/services/window-ref.d.ts +2 -0
  541. package/package.json +51 -11
  542. package/utils/lib/helpers/dom.d.ts +1 -0
  543. package/utils/lib/helpers/get-unique-id.d.ts +1 -0
  544. package/utils/lib/helpers/index.d.ts +2 -0
  545. package/utils/lib/helpers/provide-module-config.d.ts +1 -1
  546. package/utils/lib/helpers/queue.d.ts +11 -0
  547. package/components/launch-tile/lib/directives/launch-tile-menu/launch-tile-menu.directive.d.ts +0 -5
  548. package/esm2020/components/launch-tile/lib/directives/launch-tile-menu/launch-tile-menu.directive.mjs +0 -17
  549. package/esm2020/components/list/lib/components/list-item.component.mjs +0 -46
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-components-tooltip.mjs","sources":["../../../../libs/angular/components/tooltip/src/lib/helpers/resolve-tooltip-trigger-events.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-size.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-options.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.html","../../../../libs/angular/components/tooltip/src/lib/tooltip.directive.ts","../../../../libs/angular/components/tooltip/src/odx-angular-components-tooltip.ts"],"sourcesContent":["import { TooltipTrigger } from '../models';\n\nexport function resolveTooltipTriggerEvents(trigger: TooltipTrigger): [string, string | null] {\n if (trigger === 'click') {\n return ['click', null];\n } else {\n return ['mouseenter', 'mouseleave'];\n }\n}\n","export type TooltipSize = typeof TooltipSize[keyof typeof TooltipSize];\n\nexport const TooltipSize = {\n AUTO: 'auto',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","import { ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';\nimport { TooltipSize } from './tooltip-size';\nimport { TooltipTrigger } from './tooltip-trigger';\n\nexport interface TooltipOptions extends Pick<ConnectedOverlayOptions, 'position' | 'matchReferenceWidth'> {\n trigger: TooltipTrigger;\n delayIn: number;\n delayOut: number;\n size: TooltipSize;\n}\n\nexport const DefaultTooltipOptions: TooltipOptions = {\n matchReferenceWidth: false,\n size: TooltipSize.AUTO,\n trigger: 'hover',\n position: 'top',\n delayIn: 0,\n delayOut: 0,\n};\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { DynamicTextContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { getInjector, injectElement } from '@odx/angular/utils';\nimport { TooltipSize } from './models';\n\n@CSSComponent('tooltip')\n@Component({\n standalone: true,\n selector: 'odx-tooltip',\n imports: [DynamicViewDirective],\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n role: 'tooltip',\n },\n})\nexport class TooltipComponent {\n protected readonly injector = getInjector();\n public readonly element = injectElement();\n\n @Input()\n public id: string | null = null;\n\n @Input()\n public content?: DynamicTextContent | null;\n\n @CSSModifier()\n @Input()\n public size: TooltipSize = TooltipSize.AUTO;\n}\n","<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, inject, Input, OnChanges, OnInit } from '@angular/core';\nimport { ConnectedOverlayRef, ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';\nimport { DynamicTextContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { delayUntil } from '@odx/angular/rxjs';\nimport { EventManager, hasChanged, injectElement, NgChanges, Transform, untilDestroyed } from '@odx/angular/utils';\nimport { deepmerge } from 'deepmerge-ts';\nimport { filter, merge, Subject, tap } from 'rxjs';\nimport { resolveTooltipTriggerEvents } from './helpers';\nimport { DefaultTooltipOptions, TooltipOptions, TooltipSize } from './models';\nimport { TooltipComponent } from './tooltip.component';\n\n@CSSComponent('tooltip-host')\n@Directive({\n standalone: true,\n selector: '[odxTooltip]',\n exportAs: 'odxTooltip',\n providers: [EventManager],\n host: {\n '[attr.aria-describedby]': 'tooltipId',\n },\n})\nexport class TooltipDirective implements OnInit, OnChanges {\n private static ID = 0;\n\n public static ngAcceptInputType_disabled: BooleanInput;\n public static ngAcceptInputType_visible: BooleanInput;\n\n private readonly eventManager = inject(EventManager);\n private readonly connectedOverlayService = inject(ConnectedOverlayService);\n private readonly showTrigger$$ = new Subject<void>();\n private readonly hideTrigger$$ = new Subject<void>();\n private connectedOverlayRef: ConnectedOverlayRef | null = null;\n private tooltipOptions = DefaultTooltipOptions;\n\n protected tooltipId: string | null = null;\n public readonly element = injectElement();\n\n @Input('odxTooltip')\n public content?: DynamicTextContent | null = null;\n\n @Transform(coerceBooleanProperty)\n @Input('odxTooltipDisabled')\n public disabled = false;\n\n @Input('odxTooltipOptions')\n public set options(value: Partial<TooltipOptions> | null | undefined) {\n this.tooltipOptions = deepmerge(DefaultTooltipOptions, value) as TooltipOptions;\n }\n\n @Input('odxTooltipSize')\n public size?: TooltipSize | null = null;\n\n @Transform(coerceBooleanProperty)\n @Input('odxTooltipVisible')\n public visible = false;\n\n public get isOpen(): boolean {\n return this.connectedOverlayRef !== null;\n }\n\n constructor() {\n const takeUntilDestroyed = untilDestroyed();\n const show$ = this.showTrigger$$.pipe(\n filter(() => !this.isOpen),\n delayUntil(() => this.tooltipOptions.delayIn, this.hideTrigger$$),\n tap(() => this.show())\n );\n const hide$ = this.hideTrigger$$.pipe(\n filter(() => this.isOpen),\n delayUntil(() => this.tooltipOptions.delayOut, this.showTrigger$$),\n tap(() => this.hide())\n );\n merge(show$, hide$).pipe(takeUntilDestroyed()).subscribe();\n }\n\n public ngOnInit(): void {\n this.registerEvents();\n }\n\n public ngOnChanges(changes: NgChanges<TooltipDirective>): void {\n if (hasChanged(changes, 'disabled') && this.disabled) {\n this.hide();\n }\n if (hasChanged(changes, ['content', 'size'])) {\n this.connectedOverlayRef?.update({ context: { content: this.content, size: this.size } });\n }\n if (hasChanged(changes, 'options')) {\n this.connectedOverlayRef?.update(this.tooltipOptions);\n this.registerEvents();\n }\n if (this.visible && !this.disabled) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public show(): void {\n if (this.isOpen || this.disabled) return;\n this.tooltipId = `odx-tooltip-${TooltipDirective.ID++}`;\n this.connectedOverlayRef = this.connectedOverlayService.createOverlay(this.element.nativeElement, {\n ...this.tooltipOptions,\n containerClass: 'odx-tooltip-overlay',\n content: TooltipComponent,\n context: { content: this.content, size: this.size, id: this.tooltipId },\n showArrow: true,\n enableFallback: true,\n });\n }\n\n public hide(): void {\n if (!this.isOpen || (this.visible && !this.disabled)) return;\n this.connectedOverlayRef?.close();\n this.connectedOverlayRef = null;\n this.tooltipId = null;\n }\n\n private registerEvents(): void {\n const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);\n this.eventManager.destroyListeners();\n this.eventManager.register([openEvent, 'focusin'], () => this.showTrigger$$.next());\n this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());\n this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');\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-tooltip.mjs","sources":["../../../../libs/angular/components/tooltip/src/lib/helpers/resolve-tooltip-trigger-events.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-size.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-options.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.html","../../../../libs/angular/components/tooltip/src/lib/tooltip.directive.ts","../../../../libs/angular/components/tooltip/src/odx-angular-components-tooltip.ts"],"sourcesContent":["import { TooltipTrigger } from '../models';\n\nexport function resolveTooltipTriggerEvents(trigger: TooltipTrigger): [string, string | null] {\n if (trigger === 'click') {\n return ['click', null];\n } else {\n return ['mouseenter', 'mouseleave'];\n }\n}\n","export type TooltipSize = typeof TooltipSize[keyof typeof TooltipSize];\n\nexport const TooltipSize = {\n AUTO: 'auto',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","import { ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';\nimport { TooltipSize } from './tooltip-size';\nimport { TooltipTrigger } from './tooltip-trigger';\n\nexport interface TooltipOptions extends Pick<ConnectedOverlayOptions, 'position' | 'matchReferenceWidth'> {\n trigger: TooltipTrigger;\n delayIn: number;\n delayOut: number;\n size: TooltipSize;\n}\n\nexport const DefaultTooltipOptions: TooltipOptions = {\n matchReferenceWidth: false,\n size: TooltipSize.AUTO,\n trigger: 'hover',\n position: 'top',\n delayIn: 0,\n delayOut: 0,\n};\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { DynamicTextContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { getInjector, injectElement } from '@odx/angular/utils';\nimport { TooltipSize } from './models';\n\n@CSSComponent('tooltip')\n@Component({\n standalone: true,\n selector: 'odx-tooltip',\n imports: [DynamicViewDirective],\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n role: 'tooltip',\n },\n})\nexport class TooltipComponent {\n protected readonly injector = getInjector();\n public readonly element = injectElement();\n\n @Input()\n public id: string | null = null;\n\n @Input()\n public content?: DynamicTextContent | null;\n\n @CSSModifier()\n @Input()\n public size: TooltipSize = TooltipSize.AUTO;\n}\n","<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\"></ng-template>\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, inject, Input, OnChanges, OnInit } from '@angular/core';\nimport { ConnectedOverlayRef, ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';\nimport { DynamicTextContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { delayUntil } from '@odx/angular/rxjs';\nimport { EventManager, hasChanged, injectElement, NgChanges, Transform, untilDestroyed } from '@odx/angular/utils';\nimport { deepmerge } from 'deepmerge-ts';\nimport { filter, merge, Subject, tap } from 'rxjs';\nimport { resolveTooltipTriggerEvents } from './helpers';\nimport { DefaultTooltipOptions, TooltipOptions, TooltipSize } from './models';\nimport { TooltipComponent } from './tooltip.component';\n\n@CSSComponent('tooltip-host')\n@Directive({\n standalone: true,\n selector: '[odxTooltip]',\n exportAs: 'odxTooltip',\n providers: [EventManager],\n host: {\n '[attr.aria-describedby]': 'tooltipId',\n },\n})\nexport class TooltipDirective implements OnInit, OnChanges {\n private static ID = 0;\n\n public static ngAcceptInputType_disabled: BooleanInput;\n public static ngAcceptInputType_visible: BooleanInput;\n\n private readonly eventManager = inject(EventManager);\n private readonly connectedOverlayService = inject(ConnectedOverlayService);\n private readonly showTrigger$$ = new Subject<void>();\n private readonly hideTrigger$$ = new Subject<void>();\n private connectedOverlayRef: ConnectedOverlayRef | null = null;\n private tooltipOptions = DefaultTooltipOptions;\n\n protected tooltipId: string | null = null;\n public readonly element = injectElement();\n\n @Input('odxTooltip')\n public content?: DynamicTextContent | null = null;\n\n @Transform(coerceBooleanProperty)\n @Input('odxTooltipDisabled')\n public disabled = false;\n\n @Input('odxTooltipOptions')\n public set options(value: Partial<TooltipOptions> | null | undefined) {\n this.tooltipOptions = deepmerge(DefaultTooltipOptions, value) as TooltipOptions;\n }\n\n @Input('odxTooltipSize')\n public size?: TooltipSize | null = null;\n\n @Transform(coerceBooleanProperty)\n @Input('odxTooltipVisible')\n public visible = false;\n\n public get isOpen(): boolean {\n return this.connectedOverlayRef !== null;\n }\n\n constructor() {\n const takeUntilDestroyed = untilDestroyed();\n const show$ = this.showTrigger$$.pipe(\n filter(() => !this.isOpen),\n delayUntil(() => this.tooltipOptions.delayIn, this.hideTrigger$$),\n tap(() => this.show())\n );\n const hide$ = this.hideTrigger$$.pipe(\n filter(() => this.isOpen),\n delayUntil(() => this.tooltipOptions.delayOut, this.showTrigger$$),\n tap(() => this.hide())\n );\n merge(show$, hide$).pipe(takeUntilDestroyed()).subscribe();\n }\n\n public ngOnInit(): void {\n this.registerEvents();\n }\n\n public ngOnChanges(changes: NgChanges<TooltipDirective>): void {\n if (hasChanged(changes, 'disabled') && this.disabled) {\n this.hide();\n }\n if (hasChanged(changes, ['content', 'size'])) {\n this.connectedOverlayRef?.update({ context: { content: this.content, size: this.size } });\n }\n if (hasChanged(changes, 'options')) {\n this.connectedOverlayRef?.update(this.tooltipOptions);\n this.registerEvents();\n }\n if (this.visible && !this.disabled) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public show(): void {\n if (this.isOpen || this.disabled) return;\n this.tooltipId = `odx-tooltip-${TooltipDirective.ID++}`;\n this.connectedOverlayRef = this.connectedOverlayService.createOverlay(this.element.nativeElement, {\n ...this.tooltipOptions,\n containerClass: 'odx-tooltip-overlay',\n content: TooltipComponent,\n context: { content: this.content, size: this.size, id: this.tooltipId },\n showArrow: true,\n enableFallback: true,\n });\n }\n\n public hide(): void {\n if (!this.isOpen || (this.visible && !this.disabled)) return;\n this.connectedOverlayRef?.close();\n this.connectedOverlayRef = null;\n this.tooltipId = null;\n }\n\n private registerEvents(): void {\n const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);\n this.eventManager.destroyListeners();\n this.eventManager.register([openEvent, 'focusin'], () => this.showTrigger$$.next());\n this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());\n this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { ɵwithMultipleDescriptors } from '@odx/angular/internal';
2
2
  import * as i0 from '@angular/core';
3
3
  import { TemplateRef, inject, ChangeDetectorRef, Injector, ElementRef, Renderer2, Injectable, InjectionToken } from '@angular/core';
4
- import { Subject, takeUntil, tap } from 'rxjs';
4
+ import { Subject, takeUntil, tap, BehaviorSubject } from 'rxjs';
5
5
  import { deepmerge } from 'deepmerge-ts';
6
+ import { __rest } from 'tslib';
7
+ import { map, shareReplay } from 'rxjs/operators';
6
8
 
7
9
  function Pure(_target, propertyKey, { get, enumerable, value }) {
8
10
  if (get) {
@@ -126,6 +128,13 @@ function createResizeObserver(callback) {
126
128
  return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
127
129
  }
128
130
  }
131
+ function containsElement(parent, other, inclusive = true) {
132
+ if (!parent || !other)
133
+ return false;
134
+ if (!inclusive && parent === other)
135
+ return false;
136
+ return parent.contains(other);
137
+ }
129
138
 
130
139
  function untilDestroyed() {
131
140
  const destroyed$$ = new Subject();
@@ -197,12 +206,20 @@ class EventManager {
197
206
  this.destroyListeners();
198
207
  }
199
208
  }
200
- EventManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EventManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
201
- EventManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EventManager });
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: EventManager, decorators: [{
209
+ EventManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EventManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
210
+ EventManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EventManager });
211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: EventManager, decorators: [{
203
212
  type: Injectable
204
213
  }] });
205
214
 
215
+ const uniqueIdCache = {};
216
+ function getUniqueId(key = '') {
217
+ var _a;
218
+ const n = ((_a = uniqueIdCache[key]) !== null && _a !== void 0 ? _a : 0) + 1;
219
+ uniqueIdCache[key] = n;
220
+ return `${key}-${n}`;
221
+ }
222
+
206
223
  function hasChanged(changes, keyOrKeys, ignoreFirstChange = true) {
207
224
  if (Array.isArray(keyOrKeys)) {
208
225
  for (const key of keyOrKeys) {
@@ -236,9 +253,28 @@ function createModuleConfigTokens(name, prefix, defaultValue) {
236
253
  };
237
254
  }
238
255
 
256
+ class Queue {
257
+ constructor() {
258
+ this.queue = new BehaviorSubject({});
259
+ this.value$ = this.queue.pipe(map((values) => Object.values(values)), shareReplay({ bufferSize: 1, refCount: true }));
260
+ }
261
+ add(item) {
262
+ this.queue.next(Object.assign(Object.assign({}, this.queue.getValue()), { [item.id]: item }));
263
+ return item;
264
+ }
265
+ remove(item) {
266
+ const _a = this.queue.getValue(), _b = item.id, removedItem = _a[_b], queue = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
267
+ this.queue.next(queue);
268
+ return removedItem;
269
+ }
270
+ clear() {
271
+ this.queue.next({});
272
+ }
273
+ }
274
+
239
275
  /**
240
276
  * Generated bundle index. Do not edit.
241
277
  */
242
278
 
243
- export { EventManager, Pure, Transform, applyStyles, booleanToAttributeString, booleanToOptionalAttributeString, createModuleConfigTokens, createResizeObserver, cssTranslate, deferFn, disableCSSTransitions, forceLayoutReflow, getInjector, hasChanged, injectElement, isBoolean, isComponent, isFunction, isNonEmptyString, isNumber, isPresent, isString, isTemplateRef, isViewContainer, pluckFromArray, provideModuleConfig, px, reactiveAttributeBinding, reactiveClassBinding, setAttribute, untilDestroyed };
279
+ export { EventManager, Pure, Queue, Transform, applyStyles, booleanToAttributeString, booleanToOptionalAttributeString, containsElement, createModuleConfigTokens, createResizeObserver, cssTranslate, deferFn, disableCSSTransitions, forceLayoutReflow, getInjector, getUniqueId, hasChanged, injectElement, isBoolean, isComponent, isFunction, isNonEmptyString, isNumber, isPresent, isString, isTemplateRef, isViewContainer, pluckFromArray, provideModuleConfig, px, reactiveAttributeBinding, reactiveClassBinding, setAttribute, untilDestroyed };
244
280
  //# sourceMappingURL=odx-angular-utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-utils.mjs","sources":["../../../../libs/angular/utils/src/lib/decorators/pure.ts","../../../../libs/angular/utils/src/lib/decorators/transform.ts","../../../../libs/angular/utils/src/lib/helpers/type-guards.ts","../../../../libs/angular/utils/src/lib/helpers/dom.ts","../../../../libs/angular/utils/src/lib/helpers/until-destroyed.ts","../../../../libs/angular/utils/src/lib/helpers/angular.ts","../../../../libs/angular/utils/src/lib/helpers/array.ts","../../../../libs/angular/utils/src/lib/helpers/defer-fn.ts","../../../../libs/angular/utils/src/lib/helpers/event-manager.ts","../../../../libs/angular/utils/src/lib/helpers/ng-changes.ts","../../../../libs/angular/utils/src/lib/helpers/provide-module-config.ts","../../../../libs/angular/utils/src/odx-angular-utils.ts"],"sourcesContent":["export function Pure<T>(_target: object, propertyKey: string, { get, enumerable, value }: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T> {\n if (get) {\n return {\n enumerable,\n get(): T {\n const value = get.call(this);\n\n Object.defineProperty(this, propertyKey, { enumerable, value });\n\n return value;\n },\n };\n }\n\n if (typeof value !== 'function') {\n throw new Error('@Pure decorator can only be applied to functions or getters!');\n }\n\n const originalValue = value;\n\n return {\n enumerable,\n get(): T {\n let previousArgs: readonly unknown[] = [];\n let wasCalled = false;\n let pureValue: unknown;\n\n const patched = (...args: unknown[]): unknown => {\n const isPure = wasCalled && previousArgs.length === args.length && args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = originalValue.apply(this, args);\n wasCalled = true;\n\n return pureValue;\n };\n\n Object.defineProperty(this, propertyKey, { value: patched });\n\n return patched as unknown as T;\n },\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ɵwithMultipleDescriptors } from '@odx/angular/internal';\n\ntype TransformFn<Klass = any, R = any> = (this: Klass, value: R) => R;\n\nexport function Transform(transformer: TransformFn) {\n return (target: any, propertyKey: PropertyKey) => {\n const propertySymbol = Symbol(`__${propertyKey.toString()}ClassTmpl__`);\n const descriptors = ɵwithMultipleDescriptors(target, propertyKey, propertySymbol);\n\n function setter(this: any, value: any) {\n this[propertySymbol] = transformer.apply(this, [value]);\n }\n\n descriptors.addSetter(setter);\n descriptors.init();\n };\n}\n","import { TemplateRef, Type, ViewContainerRef } from '@angular/core';\n\nexport function isViewContainer(value: unknown): value is ViewContainerRef {\n return isFunction((value as ViewContainerRef)?.createComponent);\n}\n\nexport function isTemplateRef<T = unknown>(value: unknown): value is TemplateRef<T> {\n return value instanceof TemplateRef;\n}\n\nexport function isComponent<T = unknown>(value: unknown): value is Type<T> {\n return isFunction(value);\n}\n\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\nexport function isNonEmptyString(value: unknown): value is string {\n return isString(value) && value.length > 0;\n}\n\nexport function isBoolean(value: unknown): value is boolean {\n return value === true || value === false;\n}\n\nexport function isFunction(value: unknown): value is CallableFunction {\n return typeof value === 'function';\n}\n\nexport function isPresent<T>(value: T | null | undefined): value is NonNullable<T> {\n return value !== null && value !== undefined;\n}\n\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import { isNumber, isString } from './type-guards';\n\nexport function applyStyles(element: HTMLElement, styles: Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>): void {\n Object.assign(element.style, styles);\n}\n\nexport function booleanToAttributeString(state: boolean): string {\n return booleanToOptionalAttributeString(state) ?? 'false';\n}\n\nexport function booleanToOptionalAttributeString(state: boolean): string | null {\n return state ? 'true' : null;\n}\n\nexport function px(value: unknown): `${number}px` {\n return isNumber(value) ? `${Math.round(value)}px` : '0px';\n}\n\nexport function cssTranslate(x: string | 0, y: string | 0): `translate3d(${string | 0}, ${string | 0}, 0)` {\n return `translate3d(${x}, ${y}, 0)`;\n}\n\nexport function disableCSSTransitions(element: HTMLElement, disabled: boolean): void {\n if (disabled) {\n applyStyles(element, { transition: 'none' });\n } else {\n forceLayoutReflow(element);\n applyStyles(element, { transition: null });\n }\n}\n\nexport function forceLayoutReflow(element: HTMLElement): void {\n element.offsetHeight;\n}\n\nexport function setAttribute(element: HTMLElement, attribute: string, value?: unknown) {\n if (isString(value)) {\n element.setAttribute(attribute, value);\n } else {\n element.toggleAttribute(attribute, !!value);\n }\n}\n\nexport function createResizeObserver(callback: ResizeObserverCallback): ResizeObserver {\n try {\n return new ResizeObserver(callback);\n } catch {\n return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };\n }\n}\n","import { ChangeDetectorRef, inject, ViewRef } from '@angular/core';\nimport { MonoTypeOperatorFunction, Subject, takeUntil } from 'rxjs';\n\nexport function untilDestroyed(): <T>() => MonoTypeOperatorFunction<T> {\n const destroyed$$ = new Subject<void>();\n const viewRef = inject(ChangeDetectorRef) as ViewRef;\n\n function onDestroy() {\n destroyed$$.next();\n destroyed$$.complete();\n }\n\n Promise.resolve().then(() => (viewRef.destroyed ? onDestroy() : viewRef.onDestroy(onDestroy)));\n\n return <T>() => takeUntil<T>(destroyed$$.asObservable());\n}\n","import { ElementRef, inject, Injector } from '@angular/core';\nimport { MonoTypeOperatorFunction, Observable, tap } from 'rxjs';\nimport { setAttribute } from './dom';\nimport { untilDestroyed } from './until-destroyed';\n\nfunction reactiveBinding<T>(updateFn: (state: unknown) => void): MonoTypeOperatorFunction<T> {\n const takeUntilDestroyed = untilDestroyed();\n\n return (source$: Observable<T>) =>\n source$.pipe(\n tap((state) => updateFn(state)),\n takeUntilDestroyed()\n );\n}\n\nexport function reactiveClassBinding<T>(source$: Observable<T> | null | undefined, cssClass: string): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$.pipe(reactiveBinding((state) => nativeElement.classList.toggle(cssClass, !!state))).subscribe();\n }\n}\n\nexport function reactiveAttributeBinding<T>(source$: Observable<T> | null | undefined, ...attributes: string[]): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$\n .pipe(\n reactiveBinding((value) => {\n for (const attribute of attributes) {\n setAttribute(nativeElement, attribute, value);\n }\n })\n )\n .subscribe();\n }\n}\n\nexport function getInjector(): Injector {\n return inject(Injector);\n}\n\nexport function injectElement<T = HTMLElement>(): ElementRef<T> {\n return inject<ElementRef<T>>(ElementRef);\n}\n","export function pluckFromArray<T, K extends keyof T>(arr: T[], key: K): Array<T[K]> {\n return arr.map((value) => value[key]);\n}\n","export function deferFn(fn: () => void): void {\n setTimeout(fn, 0);\n}\n","import { inject, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { injectElement } from './angular';\n\n@Injectable()\nexport class EventManager implements OnDestroy {\n private readonly element = injectElement();\n private readonly renderer = inject(Renderer2);\n private readonly listeners: Array<() => void> = [];\n\n public destroyListeners(): void {\n while (this.listeners.length) this.listeners.pop()?.();\n }\n\n public register<T extends Event = Event>(\n eventNames: Array<string | null>,\n callback: (event?: T) => void,\n target?: 'document' | 'window' | EventTarget | null\n ): void {\n for (const eventName of eventNames) {\n if (eventName) {\n this.listeners.push(this.renderer.listen(target ?? this.element.nativeElement, eventName, (event) => callback(event)));\n }\n }\n }\n\n public ngOnDestroy(): void {\n this.destroyListeners();\n }\n}\n","import { GetProperties } from '../types';\n\nexport type NgChanges<C, Properties = GetProperties<C>> = {\n [Key in keyof Properties]: {\n previousValue: Properties[Key];\n currentValue: Properties[Key];\n firstChange: boolean;\n isFirstChange(): boolean;\n };\n};\n\nexport function hasChanged<U extends Record<string, unknown>, T extends NgChanges<U>, K extends keyof T>(\n changes: T,\n keyOrKeys: K | K[],\n ignoreFirstChange = true\n): boolean {\n if (Array.isArray(keyOrKeys)) {\n for (const key of keyOrKeys) {\n if (hasChanged(changes, key, ignoreFirstChange)) {\n return true;\n }\n }\n return false;\n } else {\n return keyOrKeys in changes && (!ignoreFirstChange || !changes[keyOrKeys].isFirstChange());\n }\n}\n","import { FactoryProvider, inject, InjectionToken, Type, ValueProvider } from '@angular/core';\nimport { deepmerge } from 'deepmerge-ts';\n\ninterface ModuleConfigFactoryProvider<T, D extends ModuleConfigDependencies> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useFactory: (...args: { [I in keyof D]: D[I] extends Type<unknown> ? InstanceType<D[I]> : D[I] extends InjectionToken<unknown> ? any : never }) => T;\n deps?: [...D];\n}\n\nexport type ModuleConfigDependencies<T = unknown> = ReadonlyArray<Type<T> | InjectionToken<T>>;\nexport type ModuleConfigProvider<T = unknown, D extends ModuleConfigDependencies = []> = ModuleConfigFactoryProvider<T, D> | T;\n\nexport function provideModuleConfig<T, D extends ModuleConfigDependencies = ModuleConfigDependencies>(\n token: InjectionToken<T> | string,\n config: ModuleConfigProvider<T, D>\n): FactoryProvider | ValueProvider {\n if ('useFactory' in config) {\n return { provide: token, useFactory: config.useFactory, deps: config.deps };\n }\n return { provide: token, useValue: config };\n}\n\nexport function createModuleConfigTokens<T, N extends string>(name: N, prefix: string, defaultValue: T) {\n const moduleConfig = `${name}ModuleConfig` as const;\n const defaultModuleConfig = `${name}DefaultModuleConfig` as const;\n const injectModuleConfig = `inject${name}ModuleConfig` as const;\n const tokenName = `${prefix}::${moduleConfig}`;\n const token = new InjectionToken<Partial<T>>(tokenName, { providedIn: 'root', factory: () => defaultValue });\n\n return {\n [moduleConfig]: token,\n [defaultModuleConfig]: defaultValue,\n [injectModuleConfig]: () => deepmerge(defaultValue, inject(token)),\n } as Record<typeof moduleConfig, InjectionToken<Partial<T>>> & Record<typeof defaultModuleConfig, T> & Record<typeof injectModuleConfig, () => T>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-utils.mjs","sources":["../../../../libs/angular/utils/src/lib/decorators/pure.ts","../../../../libs/angular/utils/src/lib/decorators/transform.ts","../../../../libs/angular/utils/src/lib/helpers/type-guards.ts","../../../../libs/angular/utils/src/lib/helpers/dom.ts","../../../../libs/angular/utils/src/lib/helpers/until-destroyed.ts","../../../../libs/angular/utils/src/lib/helpers/angular.ts","../../../../libs/angular/utils/src/lib/helpers/array.ts","../../../../libs/angular/utils/src/lib/helpers/defer-fn.ts","../../../../libs/angular/utils/src/lib/helpers/event-manager.ts","../../../../libs/angular/utils/src/lib/helpers/get-unique-id.ts","../../../../libs/angular/utils/src/lib/helpers/ng-changes.ts","../../../../libs/angular/utils/src/lib/helpers/provide-module-config.ts","../../../../libs/angular/utils/src/lib/helpers/queue.ts","../../../../libs/angular/utils/src/odx-angular-utils.ts"],"sourcesContent":["export function Pure<T>(_target: object, propertyKey: string, { get, enumerable, value }: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T> {\n if (get) {\n return {\n enumerable,\n get(): T {\n const value = get.call(this);\n\n Object.defineProperty(this, propertyKey, { enumerable, value });\n\n return value;\n },\n };\n }\n\n if (typeof value !== 'function') {\n throw new Error('@Pure decorator can only be applied to functions or getters!');\n }\n\n const originalValue = value;\n\n return {\n enumerable,\n get(): T {\n let previousArgs: readonly unknown[] = [];\n let wasCalled = false;\n let pureValue: unknown;\n\n const patched = (...args: unknown[]): unknown => {\n const isPure = wasCalled && previousArgs.length === args.length && args.every((arg, index) => arg === previousArgs[index]);\n\n if (isPure) {\n return pureValue;\n }\n\n previousArgs = args;\n pureValue = originalValue.apply(this, args);\n wasCalled = true;\n\n return pureValue;\n };\n\n Object.defineProperty(this, propertyKey, { value: patched });\n\n return patched as unknown as T;\n },\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ɵwithMultipleDescriptors } from '@odx/angular/internal';\n\ntype TransformFn<Klass = any, R = any> = (this: Klass, value: R) => R;\n\nexport function Transform(transformer: TransformFn) {\n return (target: any, propertyKey: PropertyKey) => {\n const propertySymbol = Symbol(`__${propertyKey.toString()}ClassTmpl__`);\n const descriptors = ɵwithMultipleDescriptors(target, propertyKey, propertySymbol);\n\n function setter(this: any, value: any) {\n this[propertySymbol] = transformer.apply(this, [value]);\n }\n\n descriptors.addSetter(setter);\n descriptors.init();\n };\n}\n","import { TemplateRef, Type, ViewContainerRef } from '@angular/core';\n\nexport function isViewContainer(value: unknown): value is ViewContainerRef {\n return isFunction((value as ViewContainerRef)?.createComponent);\n}\n\nexport function isTemplateRef<T = unknown>(value: unknown): value is TemplateRef<T> {\n return value instanceof TemplateRef;\n}\n\nexport function isComponent<T = unknown>(value: unknown): value is Type<T> {\n return isFunction(value);\n}\n\nexport function isString(value: unknown): value is string {\n return typeof value === 'string';\n}\n\nexport function isNonEmptyString(value: unknown): value is string {\n return isString(value) && value.length > 0;\n}\n\nexport function isBoolean(value: unknown): value is boolean {\n return value === true || value === false;\n}\n\nexport function isFunction(value: unknown): value is CallableFunction {\n return typeof value === 'function';\n}\n\nexport function isPresent<T>(value: T | null | undefined): value is NonNullable<T> {\n return value !== null && value !== undefined;\n}\n\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number';\n}\n","import { isNumber, isString } from './type-guards';\n\nexport function applyStyles(element: HTMLElement, styles: Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>): void {\n Object.assign(element.style, styles);\n}\n\nexport function booleanToAttributeString(state: boolean): string {\n return booleanToOptionalAttributeString(state) ?? 'false';\n}\n\nexport function booleanToOptionalAttributeString(state: boolean): string | null {\n return state ? 'true' : null;\n}\n\nexport function px(value: unknown): `${number}px` {\n return isNumber(value) ? `${Math.round(value)}px` : '0px';\n}\n\nexport function cssTranslate(x: string | 0, y: string | 0): `translate3d(${string | 0}, ${string | 0}, 0)` {\n return `translate3d(${x}, ${y}, 0)`;\n}\n\nexport function disableCSSTransitions(element: HTMLElement, disabled: boolean): void {\n if (disabled) {\n applyStyles(element, { transition: 'none' });\n } else {\n forceLayoutReflow(element);\n applyStyles(element, { transition: null });\n }\n}\n\nexport function forceLayoutReflow(element: HTMLElement): void {\n element.offsetHeight;\n}\n\nexport function setAttribute(element: HTMLElement, attribute: string, value?: unknown) {\n if (isString(value)) {\n element.setAttribute(attribute, value);\n } else {\n element.toggleAttribute(attribute, !!value);\n }\n}\n\nexport function createResizeObserver(callback: ResizeObserverCallback): ResizeObserver {\n try {\n return new ResizeObserver(callback);\n } catch {\n return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };\n }\n}\n\nexport function containsElement(parent?: Element | null, other?: Element | null, inclusive = true): boolean {\n if (!parent || !other) return false;\n if (!inclusive && parent === other) return false;\n return parent.contains(other);\n}\n","import { ChangeDetectorRef, inject, ViewRef } from '@angular/core';\nimport { MonoTypeOperatorFunction, Subject, takeUntil } from 'rxjs';\n\nexport function untilDestroyed(): <T>() => MonoTypeOperatorFunction<T> {\n const destroyed$$ = new Subject<void>();\n const viewRef = inject(ChangeDetectorRef) as ViewRef;\n\n function onDestroy() {\n destroyed$$.next();\n destroyed$$.complete();\n }\n\n Promise.resolve().then(() => (viewRef.destroyed ? onDestroy() : viewRef.onDestroy(onDestroy)));\n\n return <T>() => takeUntil<T>(destroyed$$.asObservable());\n}\n","import { ElementRef, inject, Injector } from '@angular/core';\nimport { MonoTypeOperatorFunction, Observable, tap } from 'rxjs';\nimport { setAttribute } from './dom';\nimport { untilDestroyed } from './until-destroyed';\n\nfunction reactiveBinding<T>(updateFn: (state: unknown) => void): MonoTypeOperatorFunction<T> {\n const takeUntilDestroyed = untilDestroyed();\n\n return (source$: Observable<T>) =>\n source$.pipe(\n tap((state) => updateFn(state)),\n takeUntilDestroyed()\n );\n}\n\nexport function reactiveClassBinding<T>(source$: Observable<T> | null | undefined, cssClass: string): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$.pipe(reactiveBinding((state) => nativeElement.classList.toggle(cssClass, !!state))).subscribe();\n }\n}\n\nexport function reactiveAttributeBinding<T>(source$: Observable<T> | null | undefined, ...attributes: string[]): void {\n const { nativeElement } = injectElement();\n\n if (source$) {\n source$\n .pipe(\n reactiveBinding((value) => {\n for (const attribute of attributes) {\n setAttribute(nativeElement, attribute, value);\n }\n })\n )\n .subscribe();\n }\n}\n\nexport function getInjector(): Injector {\n return inject(Injector);\n}\n\nexport function injectElement<T = HTMLElement>(): ElementRef<T> {\n return inject<ElementRef<T>>(ElementRef);\n}\n","export function pluckFromArray<T, K extends keyof T>(arr: T[], key: K): Array<T[K]> {\n return arr.map((value) => value[key]);\n}\n","export function deferFn(fn: () => void): void {\n setTimeout(fn, 0);\n}\n","import { inject, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { injectElement } from './angular';\n\n@Injectable()\nexport class EventManager implements OnDestroy {\n private readonly element = injectElement();\n private readonly renderer = inject(Renderer2);\n private readonly listeners: Array<() => void> = [];\n\n public destroyListeners(): void {\n while (this.listeners.length) this.listeners.pop()?.();\n }\n\n public register<T extends Event = Event>(\n eventNames: Array<string | null>,\n callback: (event?: T) => void,\n target?: 'document' | 'window' | EventTarget | null\n ): void {\n for (const eventName of eventNames) {\n if (eventName) {\n this.listeners.push(this.renderer.listen(target ?? this.element.nativeElement, eventName, (event) => callback(event)));\n }\n }\n }\n\n public ngOnDestroy(): void {\n this.destroyListeners();\n }\n}\n","const uniqueIdCache: { [key: string]: number } = {};\n\nexport function getUniqueId(key: string = ''): string {\n const n = (uniqueIdCache[key] ?? 0) + 1;\n uniqueIdCache[key] = n;\n\n return `${key}-${n}`;\n}\n","import { GetProperties } from '../types';\n\nexport type NgChanges<C, Properties = GetProperties<C>> = {\n [Key in keyof Properties]: {\n previousValue: Properties[Key];\n currentValue: Properties[Key];\n firstChange: boolean;\n isFirstChange(): boolean;\n };\n};\n\nexport function hasChanged<U extends Record<string, unknown>, T extends NgChanges<U>, K extends keyof T>(\n changes: T,\n keyOrKeys: K | K[],\n ignoreFirstChange = true\n): boolean {\n if (Array.isArray(keyOrKeys)) {\n for (const key of keyOrKeys) {\n if (hasChanged(changes, key, ignoreFirstChange)) {\n return true;\n }\n }\n return false;\n } else {\n return keyOrKeys in changes && (!ignoreFirstChange || !changes[keyOrKeys].isFirstChange());\n }\n}\n","import { FactoryProvider, inject, InjectionToken, Type, ValueProvider } from '@angular/core';\nimport { deepmerge } from 'deepmerge-ts';\n\ninterface ModuleConfigFactoryProvider<T, D extends ModuleConfigDependencies> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useFactory: (...args: { [I in keyof D]: D[I] extends Type<unknown> ? InstanceType<D[I]> : D[I] extends InjectionToken<unknown> ? any : never }) => T;\n deps?: [...D];\n}\n\nexport type ModuleConfigDependencies<T = unknown> = ReadonlyArray<Type<T> | InjectionToken<T>>;\nexport type ModuleConfigProvider<T = unknown, D extends ModuleConfigDependencies = []> = ModuleConfigFactoryProvider<T, D> | T;\n\nexport function provideModuleConfig<T extends object, D extends ModuleConfigDependencies = ModuleConfigDependencies>(\n token: InjectionToken<T> | string,\n config: ModuleConfigProvider<T, D>\n): FactoryProvider | ValueProvider {\n if ('useFactory' in config) {\n return { provide: token, useFactory: config.useFactory, deps: config.deps };\n }\n return { provide: token, useValue: config };\n}\n\nexport function createModuleConfigTokens<T, N extends string>(name: N, prefix: string, defaultValue: T) {\n const moduleConfig = `${name}ModuleConfig` as const;\n const defaultModuleConfig = `${name}DefaultModuleConfig` as const;\n const injectModuleConfig = `inject${name}ModuleConfig` as const;\n const tokenName = `${prefix}::${moduleConfig}`;\n const token = new InjectionToken<Partial<T>>(tokenName, { providedIn: 'root', factory: () => defaultValue });\n\n return {\n [moduleConfig]: token,\n [defaultModuleConfig]: defaultValue,\n [injectModuleConfig]: () => deepmerge(defaultValue, inject(token)),\n } as Record<typeof moduleConfig, InjectionToken<Partial<T>>> & Record<typeof defaultModuleConfig, T> & Record<typeof injectModuleConfig, () => T>;\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\ntype QueueItem<T> = T & { id: string };\ntype QueueDef<T> = Record<string, QueueItem<T>>;\n\nexport class Queue<T> {\n private readonly queue = new BehaviorSubject<QueueDef<T>>({});\n\n public readonly value$ = this.queue.pipe(\n map((values) => Object.values(values)),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n public add(item: QueueItem<T>): QueueItem<T> {\n this.queue.next({\n ...this.queue.getValue(),\n [item.id]: item,\n });\n\n return item;\n }\n\n public remove(item: QueueItem<T>): QueueItem<T> {\n const { [item.id]: removedItem, ...queue } = this.queue.getValue();\n this.queue.next(queue);\n\n return removedItem;\n }\n\n public clear(): void {\n this.queue.next({});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ChangeDetectorRef, Directive, InjectionToken, forwardRef, Input, EventEmitter, Output, NgModule, Injectable } from '@angular/core';
3
- import { pluckFromArray, isPresent, booleanToOptionalAttributeString } from '@odx/angular/utils';
4
- import { merge, tap, Subject, shareReplay, map, distinctUntilChanged, startWith } from 'rxjs';
2
+ import { inject, ChangeDetectorRef, Directive, InjectionToken, forwardRef, Input, EventEmitter, Output, NgModule, reflectComponentType, Injectable } from '@angular/core';
3
+ import { pluckFromArray, isPresent, Transform, deferFn, booleanToOptionalAttributeString } from '@odx/angular/utils';
4
+ import { merge, EMPTY, tap, Subject, shareReplay, map, distinctUntilChanged, startWith } from 'rxjs';
5
+ import { __decorate, __metadata } from 'tslib';
5
6
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
6
7
  import { CommonModule, DOCUMENT } from '@angular/common';
7
8
  import { fromEvents } from '@odx/angular/rxjs';
8
9
 
9
10
  function controllerChanges(controllers) {
10
11
  const changes$ = pluckFromArray(controllers.filter(isPresent), 'change$');
11
- return merge(...changes$);
12
+ return changes$.length > 0 ? merge(...changes$) : EMPTY;
12
13
  }
13
14
  function detectControllerChanges(...controllers) {
14
15
  const changeDetector = inject(ChangeDetectorRef);
@@ -35,46 +36,21 @@ class Controller {
35
36
  this.change$$.next();
36
37
  }
37
38
  }
38
- Controller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Controller, deps: [], target: i0.ɵɵFactoryTarget.Directive });
39
- Controller.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: Controller, usesOnChanges: true, ngImport: i0 });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Controller, decorators: [{
39
+ Controller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: Controller, deps: [], target: i0.ɵɵFactoryTarget.Directive });
40
+ Controller.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: Controller, usesOnChanges: true, ngImport: i0 });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: Controller, decorators: [{
41
42
  type: Directive
42
43
  }] });
43
44
 
44
- const ELEMENTS_WITH_DISABLED_ATTRIBUTE = {
45
- button: true,
46
- fieldset: true,
47
- input: true,
48
- optgroup: true,
49
- option: true,
50
- select: true,
51
- textarea: true,
52
- };
53
45
  const DISABLED_CONTROLLER = new InjectionToken('@odx/angular::DisabledWatchedController');
54
46
  const DISABLED_INTERNAL_CONTROLLER = new InjectionToken('@odx/angular::DisabledController', {
55
- factory: () => new DisabledController(null),
47
+ factory: () => new DisabledController(),
56
48
  });
57
49
  class DisabledController extends Controller {
58
- constructor(element) {
59
- var _a;
60
- super();
61
- this.isDisabled = false;
62
- this.hasDisabledAttribute = false;
63
- this.isDisabled$ = this.change$.pipe(map(() => this.isDisabled), distinctUntilChanged(), shareReplay({ refCount: true }));
64
- this.nodeName = (_a = element === null || element === void 0 ? void 0 : element.nativeElement.nodeName.toLowerCase()) !== null && _a !== void 0 ? _a : '';
65
- }
66
- set disabled(value) {
67
- const coercedValue = coerceBooleanProperty(value);
68
- if (this.isDisabled !== coercedValue) {
69
- this.isDisabled = coercedValue;
70
- this.hasDisabledAttribute = this.isDisabled && ELEMENTS_WITH_DISABLED_ATTRIBUTE[this.nodeName];
71
- }
72
- }
73
- get disabled() {
74
- return this.isDisabled;
75
- }
76
- get ariaDisabled() {
77
- return booleanToOptionalAttributeString(this.hasDisabledAttribute);
50
+ constructor() {
51
+ super(...arguments);
52
+ this.isDisabled$ = this.change$.pipe(map(() => this.disabled), distinctUntilChanged(), shareReplay({ refCount: true }));
53
+ this.disabled = false;
78
54
  }
79
55
  static inject() {
80
56
  return inject(DISABLED_CONTROLLER, { optional: true });
@@ -87,18 +63,24 @@ class DisabledController extends Controller {
87
63
  };
88
64
  }
89
65
  setDisabledState(state) {
90
- this.disabled = state;
91
- this.ngOnChanges();
66
+ if (this.disabled !== state) {
67
+ this.disabled = state;
68
+ this.ngOnChanges();
69
+ }
92
70
  }
93
71
  }
94
- DisabledController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DisabledController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
95
- DisabledController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DisabledController, isStandalone: true, selector: "[disabled]", inputs: { disabled: "disabled" }, host: { properties: { "attr.aria-disabled": "ariaDisabled", "attr.disabled": "hasDisabledAttribute || null" } }, providers: [
72
+ DisabledController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: DisabledController, deps: null, target: i0.ɵɵFactoryTarget.Directive });
73
+ DisabledController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: DisabledController, isStandalone: true, selector: "[disabled]", inputs: { disabled: "disabled" }, providers: [
96
74
  {
97
75
  provide: DISABLED_INTERNAL_CONTROLLER,
98
76
  useExisting: forwardRef(() => DisabledController),
99
77
  },
100
78
  ], usesInheritance: true, ngImport: i0 });
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DisabledController, decorators: [{
79
+ __decorate([
80
+ Transform(coerceBooleanProperty),
81
+ __metadata("design:type", Object)
82
+ ], DisabledController.prototype, "disabled", void 0);
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: DisabledController, decorators: [{
102
84
  type: Directive,
103
85
  args: [{
104
86
  standalone: true,
@@ -109,12 +91,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
109
91
  useExisting: forwardRef(() => DisabledController),
110
92
  },
111
93
  ],
112
- host: {
113
- '[attr.aria-disabled]': 'ariaDisabled',
114
- '[attr.disabled]': 'hasDisabledAttribute || null',
115
- },
116
94
  }]
117
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { disabled: [{
95
+ }], propDecorators: { disabled: [{
118
96
  type: Input
119
97
  }] } });
120
98
 
@@ -157,14 +135,14 @@ class ReadonlyController extends Controller {
157
135
  };
158
136
  }
159
137
  }
160
- ReadonlyController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ReadonlyController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
161
- ReadonlyController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ReadonlyController, isStandalone: true, selector: "[readonly]", inputs: { readonly: "readonly" }, host: { properties: { "attr.readonly": "hasReadonlyAttribute || null" } }, providers: [
138
+ ReadonlyController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ReadonlyController, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
139
+ ReadonlyController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: ReadonlyController, isStandalone: true, selector: "[readonly]", inputs: { readonly: "readonly" }, host: { properties: { "attr.readonly": "hasReadonlyAttribute || null" } }, providers: [
162
140
  {
163
141
  provide: READONLY_INTERNAL_CONTROLLER,
164
142
  useExisting: forwardRef(() => ReadonlyController),
165
143
  },
166
144
  ], usesInheritance: true, ngImport: i0 });
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ReadonlyController, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ReadonlyController, decorators: [{
168
146
  type: Directive,
169
147
  args: [{
170
148
  standalone: true,
@@ -216,7 +194,7 @@ class ClickOutsideDirective {
216
194
  }
217
195
  }
218
196
  registerHandler() {
219
- setTimeout(() => {
197
+ deferFn(() => {
220
198
  var _a;
221
199
  (_a = this.listener) !== null && _a !== void 0 ? _a : (this.listener = this.renderer.listen('document', 'click', (event) => {
222
200
  var _a, _b;
@@ -224,12 +202,12 @@ class ClickOutsideDirective {
224
202
  this.odxClickOutside.emit(event);
225
203
  }
226
204
  }));
227
- }, 0);
205
+ });
228
206
  }
229
207
  }
230
- ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
231
- ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ClickOutsideDirective, isStandalone: true, selector: "[odxClickOutside]", inputs: { odxClickOutsideActive: "odxClickOutsideActive" }, outputs: { odxClickOutside: "odxClickOutside" }, usesOnChanges: true, ngImport: i0 });
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ClickOutsideDirective, decorators: [{
208
+ ClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
209
+ ClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: ClickOutsideDirective, isStandalone: true, selector: "[odxClickOutside]", inputs: { odxClickOutsideActive: "odxClickOutsideActive" }, outputs: { odxClickOutside: "odxClickOutside" }, usesOnChanges: true, ngImport: i0 });
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ClickOutsideDirective, decorators: [{
233
211
  type: Directive,
234
212
  args: [{
235
213
  standalone: true,
@@ -241,14 +219,108 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
241
219
  type: Output
242
220
  }] } });
243
221
 
222
+ class LetContext {
223
+ constructor(directive) {
224
+ this.$implicit = directive.value;
225
+ this.odxLet = directive.value;
226
+ }
227
+ }
228
+ class LetDirective {
229
+ constructor(viewContainer, templateRef) {
230
+ this.viewRef = viewContainer.createEmbeddedView(templateRef, new LetContext(this));
231
+ }
232
+ static ngTemplateContextGuard(_dir, _ctx) {
233
+ return true;
234
+ }
235
+ ngOnChanges(changes) {
236
+ if (changes.value) {
237
+ const value = changes.value.currentValue;
238
+ this.viewRef.context.$implicit = value;
239
+ this.viewRef.context.odxLet = value;
240
+ }
241
+ }
242
+ }
243
+ LetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LetDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
244
+ LetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: LetDirective, isStandalone: true, selector: "ng-template[odxLet]", inputs: { value: ["odxLet", "value"] }, usesOnChanges: true, ngImport: i0 });
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LetDirective, decorators: [{
246
+ type: Directive,
247
+ args: [{
248
+ standalone: true,
249
+ selector: 'ng-template[odxLet]',
250
+ }]
251
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, propDecorators: { value: [{
252
+ type: Input,
253
+ args: ['odxLet']
254
+ }] } });
255
+
256
+ const ELEMENTS_WITH_DISABLED_ATTRIBUTE = {
257
+ button: true,
258
+ fieldset: true,
259
+ input: true,
260
+ optgroup: true,
261
+ option: true,
262
+ select: true,
263
+ textarea: true,
264
+ };
265
+ class WithDisabledState {
266
+ constructor(element) {
267
+ var _a;
268
+ this.disabledController = DisabledController.inject();
269
+ this.hasDisabledAttribute = ELEMENTS_WITH_DISABLED_ATTRIBUTE[(_a = element.nativeElement.nodeName.toLowerCase()) !== null && _a !== void 0 ? _a : ''];
270
+ this.hasAriaRole = element.nativeElement.hasAttribute('role');
271
+ }
272
+ get isDisabled() {
273
+ var _a;
274
+ return !!((_a = this.disabledController) === null || _a === void 0 ? void 0 : _a.disabled);
275
+ }
276
+ get ariaDisabled() {
277
+ return booleanToOptionalAttributeString(this.hasAriaRole && this.isDisabled);
278
+ }
279
+ }
280
+ WithDisabledState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithDisabledState, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
281
+ WithDisabledState.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: WithDisabledState, isStandalone: true, host: { properties: { "class.is-disabled": "isDisabled", "attr.aria-disabled": "ariaDisabled", "attr.disabled": "hasDisabledAttribute && isDisabled || null" } }, providers: [DisabledController.connect()], ngImport: i0 });
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithDisabledState, decorators: [{
283
+ type: Directive,
284
+ args: [{
285
+ standalone: true,
286
+ providers: [DisabledController.connect()],
287
+ host: {
288
+ '[class.is-disabled]': 'isDisabled',
289
+ '[attr.aria-disabled]': 'ariaDisabled',
290
+ '[attr.disabled]': 'hasDisabledAttribute && isDisabled || null',
291
+ },
292
+ }]
293
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
294
+
295
+ class WithTabIndex {
296
+ constructor() {
297
+ this.disabledController = DisabledController.inject();
298
+ }
299
+ get isDisabled() {
300
+ var _a;
301
+ return !!((_a = this.disabledController) === null || _a === void 0 ? void 0 : _a.disabled);
302
+ }
303
+ }
304
+ WithTabIndex.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithTabIndex, deps: [], target: i0.ɵɵFactoryTarget.Directive });
305
+ WithTabIndex.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: WithTabIndex, isStandalone: true, host: { properties: { "attr.tabindex": "isDisabled ? -1 : 0" } }, ngImport: i0 });
306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WithTabIndex, decorators: [{
307
+ type: Directive,
308
+ args: [{
309
+ standalone: true,
310
+ host: {
311
+ '[attr.tabindex]': 'isDisabled ? -1 : 0',
312
+ },
313
+ }]
314
+ }] });
315
+
244
316
  const controllers = [DisabledController, ReadonlyController];
245
- const modules = [ClickOutsideDirective];
317
+ const modules = [ClickOutsideDirective, LetDirective];
246
318
  class CoreModule {
247
319
  }
248
- CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
249
- CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: CoreModule, imports: [DisabledController, ReadonlyController, ClickOutsideDirective], exports: [CommonModule, DisabledController, ReadonlyController, ClickOutsideDirective] });
250
- CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CoreModule, imports: [CommonModule] });
251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CoreModule, decorators: [{
320
+ CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
321
+ CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, imports: [DisabledController, ReadonlyController, ClickOutsideDirective, LetDirective], exports: [CommonModule, DisabledController, ReadonlyController, ClickOutsideDirective, LetDirective] });
322
+ CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, imports: [CommonModule] });
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: CoreModule, decorators: [{
252
324
  type: NgModule,
253
325
  args: [{
254
326
  imports: [...controllers, ...modules],
@@ -274,10 +346,14 @@ class WindowRef {
274
346
  reloadPage() {
275
347
  return this.location.reload();
276
348
  }
349
+ queryByComponent(type) {
350
+ const componentType = reflectComponentType(type);
351
+ return componentType ? this.nativeWindow.document.querySelector(componentType.selector) : null;
352
+ }
277
353
  }
278
- WindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
279
- WindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WindowRef, providedIn: 'root' });
280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: WindowRef, decorators: [{
354
+ WindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
355
+ WindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WindowRef, providedIn: 'root' });
356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: WindowRef, decorators: [{
281
357
  type: Injectable,
282
358
  args: [{
283
359
  providedIn: 'root',
@@ -308,5 +384,5 @@ const ODX_STRINGIFY = new InjectionToken('@odx/angular::Stringify', {
308
384
  * Generated bundle index. Do not edit.
309
385
  */
310
386
 
311
- export { ClickOutsideDirective, Controller, CoreModule, DISABLED_CONTROLLER, DisabledController, ODX_IDENTITY_MATCHER, ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, ReadonlyController, WindowRef, detectControllerChanges };
387
+ export { ClickOutsideDirective, Controller, CoreModule, DISABLED_CONTROLLER, DISABLED_INTERNAL_CONTROLLER, DisabledController, LetContext, LetDirective, ODX_IDENTITY_MATCHER, ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, READONLY_CONTROLLER, READONLY_INTERNAL_CONTROLLER, ReadonlyController, WindowRef, WithDisabledState, WithTabIndex, detectControllerChanges };
312
388
  //# sourceMappingURL=odx-angular.mjs.map