@daffodil/design 0.78.0 → 0.79.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/atoms/form/form-field/form-field/form-field.component.d.ts +1 -1
  2. package/button/README.md +3 -3
  3. package/button/button/basic/button.component.d.ts +28 -0
  4. package/button/button/button-base.directive.d.ts +51 -0
  5. package/button/button/flat/flat.component.d.ts +28 -0
  6. package/button/button/icon/icon.component.d.ts +24 -0
  7. package/button/button/raised/raised.component.d.ts +28 -0
  8. package/button/button/stroked/stroked.component.d.ts +28 -0
  9. package/button/button/underline/underline.component.d.ts +28 -0
  10. package/button/button.d.ts +7 -2
  11. package/button/button.module.d.ts +8 -3
  12. package/button/public_api.d.ts +6 -1
  13. package/button/src/button/basic/button-theme.scss +145 -0
  14. package/button/src/button/button-base.scss +79 -0
  15. package/button/src/button/flat/flat-theme.scss +143 -0
  16. package/button/src/button/icon/icon-theme.scss +141 -0
  17. package/button/src/button/raised/raised-theme.scss +120 -0
  18. package/button/src/button/stroked/stroked-theme.scss +158 -0
  19. package/button/src/button/underline/underline-theme.scss +93 -0
  20. package/card/card.module.d.ts +1 -1
  21. package/container/container.module.d.ts +1 -1
  22. package/core/statusable/statusable.d.ts +5 -3
  23. package/core/statusable/statusable.directive.d.ts +6 -4
  24. package/esm2022/accordion/accordion/animation/accordion-animation.mjs +1 -4
  25. package/esm2022/atoms/form/form-field/form-field/form-field.component.mjs +2 -2
  26. package/esm2022/button/button/basic/button.component.mjs +48 -0
  27. package/esm2022/button/button/button-base.directive.mjs +105 -0
  28. package/esm2022/button/button/flat/flat.component.mjs +48 -0
  29. package/esm2022/button/button/icon/icon.component.mjs +44 -0
  30. package/esm2022/button/button/raised/raised.component.mjs +48 -0
  31. package/esm2022/button/button/stroked/stroked.component.mjs +48 -0
  32. package/esm2022/button/button/underline/underline.component.mjs +48 -0
  33. package/esm2022/button/button.mjs +12 -2
  34. package/esm2022/button/button.module.mjs +34 -4
  35. package/esm2022/button/examples/basic-button/basic-button.component.mjs +4 -6
  36. package/esm2022/button/examples/flat-button/flat-button.component.mjs +4 -6
  37. package/esm2022/button/examples/icon-button/icon-button.component.mjs +4 -6
  38. package/esm2022/button/examples/raised-button/raised-button.component.mjs +4 -6
  39. package/esm2022/button/examples/sizeable-button/sizeable-button.component.mjs +2 -2
  40. package/esm2022/button/examples/statusable-button/statusable-button.component.mjs +3 -3
  41. package/esm2022/button/examples/stroked-button/stroked-button.component.mjs +4 -6
  42. package/esm2022/button/examples/underline-button/underline-button.component.mjs +4 -6
  43. package/esm2022/button/public_api.mjs +7 -2
  44. package/esm2022/callout/examples/callout-text-alignment/callout-text-alignment.component.mjs +5 -7
  45. package/esm2022/callout/examples/callout-theming/callout-theming.component.mjs +5 -7
  46. package/esm2022/callout/examples/callout-with-grid/callout-with-grid.component.mjs +5 -6
  47. package/esm2022/callout/examples/compact-callout/compact-callout.component.mjs +4 -6
  48. package/esm2022/card/card.module.mjs +2 -2
  49. package/esm2022/card/examples/basic-card/basic-card.component.mjs +4 -6
  50. package/esm2022/card/examples/card-orientation/card-orientation.component.mjs +5 -7
  51. package/esm2022/checkbox/examples/basic-checkbox/basic-checkbox.component.mjs +4 -5
  52. package/esm2022/checkbox/examples/checkbox-set/checkbox-set.component.mjs +4 -5
  53. package/esm2022/container/container.module.mjs +2 -2
  54. package/esm2022/core/statusable/statusable.directive.mjs +7 -5
  55. package/esm2022/core/statusable/statusable.mjs +3 -2
  56. package/esm2022/hero/examples/compact-hero/compact-hero.component.mjs +4 -6
  57. package/esm2022/hero/examples/hero-text-alignment/hero-text-alignment.component.mjs +5 -7
  58. package/esm2022/hero/examples/hero-theming/hero-theming.component.mjs +5 -7
  59. package/esm2022/hero/examples/hero-with-grid/hero-with-grid.component.mjs +4 -6
  60. package/esm2022/hero/hero.module.mjs +2 -2
  61. package/esm2022/image/image.module.mjs +2 -2
  62. package/esm2022/link-set/link-set.module.mjs +2 -2
  63. package/esm2022/list/list.module.mjs +2 -2
  64. package/esm2022/loading-icon/examples/examples.mjs +1 -3
  65. package/esm2022/loading-icon/examples/loading-icon-color/loading-icon-color.component.mjs +2 -2
  66. package/esm2022/loading-icon/loading-icon/loading-icon.component.mjs +5 -20
  67. package/esm2022/loading-icon/loading-icon.module.mjs +2 -2
  68. package/esm2022/media-gallery/helpers/media-gallery-token.mjs +7 -3
  69. package/esm2022/media-gallery/media-gallery.module.mjs +2 -2
  70. package/esm2022/media-gallery/thumbnail/thumbnail-compat.token.mjs +8 -3
  71. package/esm2022/menu/examples/basic-menu/basic-menu.component.mjs +5 -7
  72. package/esm2022/modal/examples/basic-modal/basic-modal.component.mjs +4 -6
  73. package/esm2022/modal/examples/basic-modal/modal-content.component.mjs +4 -6
  74. package/esm2022/modal/modal-header/modal-header.component.mjs +4 -6
  75. package/esm2022/modal/modal.module.mjs +2 -2
  76. package/esm2022/navbar/examples/basic-navbar/basic-navbar.component.mjs +4 -6
  77. package/esm2022/navbar/examples/contained-navbar/contained-navbar.component.mjs +4 -6
  78. package/esm2022/navbar/examples/navbar-theming/navbar-theming.component.mjs +5 -7
  79. package/esm2022/navbar/examples/raised-navbar/raised-navbar.component.mjs +4 -6
  80. package/esm2022/navbar/navbar.module.mjs +2 -2
  81. package/esm2022/notification/examples/default-notification/default-notification.component.mjs +1 -3
  82. package/esm2022/notification/examples/notification-orientations/notification-orientations.component.mjs +1 -3
  83. package/esm2022/notification/examples/notification-status/notification-status.component.mjs +3 -5
  84. package/esm2022/notification/examples/notification-with-actions/notification-with-actions.component.mjs +4 -5
  85. package/esm2022/notification/notification/notification.component.mjs +3 -3
  86. package/esm2022/notification/notification.module.mjs +2 -2
  87. package/esm2022/paginator/paginator.module.mjs +2 -2
  88. package/esm2022/progress-bar/progress-bar.module.mjs +2 -2
  89. package/esm2022/sidebar/examples/over-and-under-sidebars/over-and-under-sidebars.component.mjs +5 -6
  90. package/esm2022/sidebar/sidebar-viewport/scroll-token/scroll.token.mjs +9 -3
  91. package/esm2022/sidebar/sidebar-viewport/sidebar-viewport.component.mjs +3 -3
  92. package/esm2022/sidebar/sidebar.module.mjs +2 -2
  93. package/esm2022/tabs/daffodil-design-tabs.mjs +5 -0
  94. package/esm2022/tabs/examples/basic-tabs/basic-tabs.component.mjs +22 -0
  95. package/esm2022/tabs/examples/custom-select-tabs/custom-select-tabs.component.mjs +34 -0
  96. package/esm2022/tabs/examples/daffodil-design-tabs-examples.mjs +5 -0
  97. package/esm2022/tabs/examples/disabled-tabs/disabled-tabs.component.mjs +22 -0
  98. package/esm2022/tabs/examples/index.mjs +2 -0
  99. package/esm2022/tabs/examples/initially-select-tab/initially-select-tab.component.mjs +22 -0
  100. package/esm2022/tabs/examples/public_api.mjs +11 -0
  101. package/esm2022/tabs/index.mjs +2 -0
  102. package/esm2022/tabs/public_api.mjs +6 -0
  103. package/esm2022/tabs/tabs/tab/tab.component.mjs +86 -0
  104. package/esm2022/tabs/tabs/tab-activator/tab-activator.component.mjs +83 -0
  105. package/esm2022/tabs/tabs/tab-label/tab-label.component.mjs +33 -0
  106. package/esm2022/tabs/tabs/tab-panel/tab-panel.component.mjs +68 -0
  107. package/esm2022/tabs/tabs/tabs.component.mjs +161 -0
  108. package/esm2022/tabs/tabs.mjs +13 -0
  109. package/esm2022/text-snippet/daffodil-design-text-snippet.mjs +5 -0
  110. package/esm2022/text-snippet/examples/basic-text-snippet/basic-text-snippet.component.mjs +14 -0
  111. package/esm2022/text-snippet/examples/daffodil-design-text-snippet-examples.mjs +5 -0
  112. package/esm2022/text-snippet/examples/index.mjs +2 -0
  113. package/esm2022/text-snippet/examples/public_api.mjs +5 -0
  114. package/esm2022/text-snippet/index.mjs +2 -0
  115. package/esm2022/text-snippet/public_api.mjs +2 -0
  116. package/esm2022/text-snippet/text-snippet.component.mjs +46 -0
  117. package/esm2022/toast/examples/default-toast/default-toast.component.mjs +4 -6
  118. package/esm2022/toast/examples/toast-positions/toast-positions.component.mjs +4 -6
  119. package/esm2022/toast/examples/toast-status/toast-status.component.mjs +8 -10
  120. package/esm2022/toast/examples/toast-with-custom-duration/toast-with-custom-duration.component.mjs +4 -6
  121. package/esm2022/toast/options/daff-toast-options.mjs +7 -7
  122. package/esm2022/toast/toast/toast-provider.mjs +2 -2
  123. package/esm2022/toast/toast/toast-template.component.mjs +2 -2
  124. package/esm2022/toast/toast.module.mjs +2 -2
  125. package/esm2022/tree/tree.module.mjs +2 -2
  126. package/fesm2022/daffodil-design-accordion.mjs +0 -3
  127. package/fesm2022/daffodil-design-accordion.mjs.map +1 -1
  128. package/fesm2022/daffodil-design-button-examples.mjs +16 -16
  129. package/fesm2022/daffodil-design-button-examples.mjs.map +1 -1
  130. package/fesm2022/daffodil-design-button.mjs +305 -131
  131. package/fesm2022/daffodil-design-button.mjs.map +1 -1
  132. package/fesm2022/daffodil-design-callout-examples.mjs +12 -13
  133. package/fesm2022/daffodil-design-callout-examples.mjs.map +1 -1
  134. package/fesm2022/daffodil-design-card-examples.mjs +10 -12
  135. package/fesm2022/daffodil-design-card-examples.mjs.map +1 -1
  136. package/fesm2022/daffodil-design-card.mjs +1 -1
  137. package/fesm2022/daffodil-design-card.mjs.map +1 -1
  138. package/fesm2022/daffodil-design-checkbox-examples.mjs +5 -6
  139. package/fesm2022/daffodil-design-checkbox-examples.mjs.map +1 -1
  140. package/fesm2022/daffodil-design-container.mjs +1 -1
  141. package/fesm2022/daffodil-design-container.mjs.map +1 -1
  142. package/fesm2022/daffodil-design-hero-examples.mjs +11 -13
  143. package/fesm2022/daffodil-design-hero-examples.mjs.map +1 -1
  144. package/fesm2022/daffodil-design-hero.mjs +1 -1
  145. package/fesm2022/daffodil-design-hero.mjs.map +1 -1
  146. package/fesm2022/daffodil-design-image.mjs +1 -1
  147. package/fesm2022/daffodil-design-image.mjs.map +1 -1
  148. package/fesm2022/daffodil-design-link-set.mjs +1 -1
  149. package/fesm2022/daffodil-design-link-set.mjs.map +1 -1
  150. package/fesm2022/daffodil-design-list.mjs +1 -1
  151. package/fesm2022/daffodil-design-list.mjs.map +1 -1
  152. package/fesm2022/daffodil-design-loading-icon-examples.mjs +1 -13
  153. package/fesm2022/daffodil-design-loading-icon-examples.mjs.map +1 -1
  154. package/fesm2022/daffodil-design-loading-icon.mjs +5 -20
  155. package/fesm2022/daffodil-design-loading-icon.mjs.map +1 -1
  156. package/fesm2022/daffodil-design-media-gallery.mjs +14 -4
  157. package/fesm2022/daffodil-design-media-gallery.mjs.map +1 -1
  158. package/fesm2022/daffodil-design-menu-examples.mjs +3 -5
  159. package/fesm2022/daffodil-design-menu-examples.mjs.map +1 -1
  160. package/fesm2022/daffodil-design-modal-examples.mjs +5 -7
  161. package/fesm2022/daffodil-design-modal-examples.mjs.map +1 -1
  162. package/fesm2022/daffodil-design-modal.mjs +4 -5
  163. package/fesm2022/daffodil-design-modal.mjs.map +1 -1
  164. package/fesm2022/daffodil-design-navbar-examples.mjs +11 -13
  165. package/fesm2022/daffodil-design-navbar-examples.mjs.map +1 -1
  166. package/fesm2022/daffodil-design-navbar.mjs +1 -1
  167. package/fesm2022/daffodil-design-navbar.mjs.map +1 -1
  168. package/fesm2022/daffodil-design-notification-examples.mjs +5 -9
  169. package/fesm2022/daffodil-design-notification-examples.mjs.map +1 -1
  170. package/fesm2022/daffodil-design-notification.mjs +3 -3
  171. package/fesm2022/daffodil-design-notification.mjs.map +1 -1
  172. package/fesm2022/daffodil-design-paginator.mjs +1 -1
  173. package/fesm2022/daffodil-design-paginator.mjs.map +1 -1
  174. package/fesm2022/daffodil-design-progress-bar.mjs +1 -1
  175. package/fesm2022/daffodil-design-progress-bar.mjs.map +1 -1
  176. package/fesm2022/daffodil-design-sidebar-examples.mjs +4 -5
  177. package/fesm2022/daffodil-design-sidebar-examples.mjs.map +1 -1
  178. package/fesm2022/daffodil-design-sidebar.mjs +11 -5
  179. package/fesm2022/daffodil-design-sidebar.mjs.map +1 -1
  180. package/fesm2022/daffodil-design-tabs-examples.mjs +93 -0
  181. package/fesm2022/daffodil-design-tabs-examples.mjs.map +1 -0
  182. package/fesm2022/daffodil-design-tabs.mjs +431 -0
  183. package/fesm2022/daffodil-design-tabs.mjs.map +1 -0
  184. package/fesm2022/daffodil-design-text-snippet-examples.mjs +25 -0
  185. package/fesm2022/daffodil-design-text-snippet-examples.mjs.map +1 -0
  186. package/fesm2022/daffodil-design-text-snippet.mjs +53 -0
  187. package/fesm2022/daffodil-design-text-snippet.mjs.map +1 -0
  188. package/fesm2022/daffodil-design-toast-examples.mjs +13 -15
  189. package/fesm2022/daffodil-design-toast-examples.mjs.map +1 -1
  190. package/fesm2022/daffodil-design-toast.mjs +11 -10
  191. package/fesm2022/daffodil-design-toast.mjs.map +1 -1
  192. package/fesm2022/daffodil-design-tree.mjs +1 -1
  193. package/fesm2022/daffodil-design-tree.mjs.map +1 -1
  194. package/fesm2022/daffodil-design.mjs +9 -6
  195. package/fesm2022/daffodil-design.mjs.map +1 -1
  196. package/hero/hero.module.d.ts +1 -1
  197. package/image/README.md +4 -1
  198. package/image/image.module.d.ts +1 -1
  199. package/link-set/README.md +1 -1
  200. package/link-set/link-set.module.d.ts +1 -1
  201. package/list/list.module.d.ts +1 -1
  202. package/loading-icon/README.md +0 -5
  203. package/loading-icon/examples/examples.d.ts +2 -2
  204. package/loading-icon/loading-icon/loading-icon.component.d.ts +1 -9
  205. package/loading-icon/loading-icon.module.d.ts +1 -1
  206. package/media-gallery/README.md +4 -1
  207. package/media-gallery/helpers/media-gallery-token.d.ts +1 -2
  208. package/media-gallery/media-gallery.module.d.ts +1 -1
  209. package/media-gallery/thumbnail/thumbnail-compat.token.d.ts +1 -5
  210. package/modal/modal.module.d.ts +1 -1
  211. package/navbar/navbar.module.d.ts +1 -1
  212. package/notification/README.md +2 -2
  213. package/notification/notification/notification.component.d.ts +1 -1
  214. package/notification/notification.module.d.ts +1 -1
  215. package/notification/src/notification-theme.scss +17 -13
  216. package/package.json +1 -1
  217. package/paginator/paginator.module.d.ts +1 -1
  218. package/progress-bar/progress-bar.module.d.ts +1 -1
  219. package/scss/theme.scss +13 -1
  220. package/scss/theming/_configure-theme.scss +60 -2
  221. package/scss/theming/_theme-css-variables.scss +1 -1
  222. package/sidebar/sidebar-viewport/scroll-token/scroll.token.d.ts +1 -7
  223. package/sidebar/sidebar-viewport/sidebar-viewport.component.d.ts +1 -1
  224. package/sidebar/sidebar.module.d.ts +1 -1
  225. package/tabs/README.md +19 -0
  226. package/tabs/examples/basic-tabs/basic-tabs.component.d.ts +6 -0
  227. package/tabs/examples/custom-select-tabs/custom-select-tabs.component.d.ts +11 -0
  228. package/tabs/examples/disabled-tabs/disabled-tabs.component.d.ts +6 -0
  229. package/tabs/examples/index.d.ts +1 -0
  230. package/tabs/examples/initially-select-tab/initially-select-tab.component.d.ts +6 -0
  231. package/tabs/examples/public_api.d.ts +2 -0
  232. package/tabs/index.d.ts +1 -0
  233. package/tabs/public_api.d.ts +5 -0
  234. package/tabs/src/tabs-theme.scss +22 -0
  235. package/tabs/tabs/tab/tab.component.d.ts +57 -0
  236. package/tabs/tabs/tab-activator/tab-activator.component.d.ts +37 -0
  237. package/tabs/tabs/tab-label/tab-label.component.d.ts +19 -0
  238. package/tabs/tabs/tab-panel/tab-panel.component.d.ts +38 -0
  239. package/tabs/tabs/tabs.component.d.ts +104 -0
  240. package/tabs/tabs.d.ts +6 -0
  241. package/text-snippet/README.md +2 -0
  242. package/text-snippet/examples/basic-text-snippet/basic-text-snippet.component.d.ts +5 -0
  243. package/text-snippet/examples/index.d.ts +1 -0
  244. package/text-snippet/examples/public_api.d.ts +2 -0
  245. package/text-snippet/index.d.ts +1 -0
  246. package/text-snippet/public_api.d.ts +1 -0
  247. package/text-snippet/text-snippet.component.d.ts +19 -0
  248. package/toast/README.md +5 -5
  249. package/toast/options/daff-toast-options.d.ts +1 -3
  250. package/toast/src/toast-theme.scss +14 -10
  251. package/toast/toast/toast-provider.d.ts +1 -1
  252. package/toast/toast.module.d.ts +1 -1
  253. package/tree/tree.module.d.ts +1 -1
  254. package/button/button/button.component.d.ts +0 -80
  255. package/button/src/button-theme-variants/button.scss +0 -26
  256. package/button/src/button-theme-variants/flat.scss +0 -25
  257. package/button/src/button-theme-variants/icon.scss +0 -21
  258. package/button/src/button-theme-variants/raised.scss +0 -36
  259. package/button/src/button-theme-variants/stroked.scss +0 -28
  260. package/button/src/button-theme-variants/underline.scss +0 -9
  261. package/button/src/button-theme.scss +0 -574
  262. package/esm2022/button/button/button.component.mjs +0 -212
  263. package/esm2022/loading-icon/examples/loading-icon-diameter/loading-icon-diameter.component.mjs +0 -15
  264. package/loading-icon/examples/loading-icon-diameter/loading-icon-diameter.component.d.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-design-toast.mjs","sources":["../../../libs/design/toast/src/options/daff-toast-options.ts","../../../libs/design/toast/src/service/position.service.ts","../../../libs/design/toast/src/service/changes-focus.ts","../../../libs/design/toast/src/toast-actions/toast-actions.directive.ts","../../../libs/design/toast/src/toast/toast.component.ts","../../../libs/design/toast/src/toast/toast.component.html","../../../libs/design/toast/src/toast-message/toast-message.directive.ts","../../../libs/design/toast/src/toast-title/toast-title.directive.ts","../../../libs/design/toast/src/toast.module.ts","../../../libs/design/toast/src/service/position-strategy.ts","../../../libs/design/toast/src/toast/toast-config.ts","../../../libs/design/toast/src/toast/toast-template.component.ts","../../../libs/design/toast/src/service/toast.service.ts","../../../libs/design/toast/src/toast/toast-provider.ts","../../../libs/design/toast/src/daffodil-design-toast.ts"],"sourcesContent":["import {\n InjectionToken,\n ValueProvider,\n} from '@angular/core';\n\ntype Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };\ntype XOR<T, U> = (T | U) extends Record<string,unknown> ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;\n\nexport interface VerticalPositionTypes { vertical: 'top' | 'bottom' };\n\nexport interface HorizontalPositionTypes { horizontal: 'left' | 'center' | 'right' };\n\nexport type DaffToastPosition = VerticalPositionTypes & HorizontalPositionTypes;\n\nexport interface DaffToastOptions {\n position: DaffToastPosition;\n useParent: boolean;\n}\n\nexport const daffToastDefaultOptions: DaffToastOptions = {\n position: {\n vertical: 'top',\n horizontal: 'right',\n },\n useParent: true,\n};\n\nexport const DAFF_TOAST_OPTIONS = new InjectionToken('DAFF_TOAST_OPTIONS', { providedIn: 'root', factory: () => daffToastDefaultOptions });\n\nexport const provideDaffToastOptions = (options: DaffToastOptions): ValueProvider => ({ provide: DAFF_TOAST_OPTIONS, useValue: {\n ...daffToastDefaultOptions,\n ...options,\n}});\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\n\nimport { DaffBreakpoints } from '@daffodil/design';\n\nimport {\n DaffToastOptions,\n DaffToastPosition,\n DAFF_TOAST_OPTIONS,\n} from '../options/daff-toast-options';\n\n@Injectable()\nexport class DaffToastPositionService {\n\n constructor(@Inject(DAFF_TOAST_OPTIONS) private options: DaffToastOptions, private mediaQuery: BreakpointObserver) {\n this._config = options.position;\n }\n\n private _config: DaffToastPosition;\n private _position: DaffToastPosition;\n\n get config(): DaffToastPosition {\n return this.mediaQuery.isMatched(DaffBreakpoints.MOBILE)\n ? this._position ?? this._config\n : <DaffToastPosition>{ vertical: 'bottom', horizontal: 'center' };\n }\n\n set config(val: DaffToastPosition) {\n this._config = val;\n }\n\n setPosition(position: DaffToastPosition) {\n this._position = position;\n }\n}\n","import { DaffToast } from '../interfaces/toast';\n\nexport const daffToastChangesFocus = (toast: DaffToast): boolean => toast.actions?.length > 0;\n","import {\n Directive,\n HostBinding,\n} from '@angular/core';\n\n@Directive({\n selector: '[daffToastActions]',\n standalone: true,\n})\n\nexport class DaffToastActionsDirective {\n\n @HostBinding('class.daff-toast__actions') class = true;\n}\n","import {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n} from '@angular/cdk/a11y';\nimport { NgIf } from '@angular/common';\nimport {\n Component,\n ElementRef,\n HostBinding,\n ContentChild,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n AfterViewInit,\n AfterContentInit,\n HostListener,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport {\n DaffArticleEncapsulatedDirective,\n DaffFocusStackService,\n DaffPrefixable,\n DaffPrefixDirective,\n DaffStatusableDirective,\n} from '@daffodil/design';\n\nimport { DaffToast } from '../interfaces/toast';\nimport { daffToastChangesFocus } from '../service/changes-focus';\nimport { DaffToastActionsDirective } from '../toast-actions/toast-actions.directive';\n\n/**\n * DaffToastComponent provides a way to display and\n * communicate information for user actions or system updates.\n */\n@Component({\n selector: 'daff-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n hostDirectives: [\n { directive: DaffArticleEncapsulatedDirective },\n {\n directive: DaffStatusableDirective,\n inputs: ['status'],\n },\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n NgIf,\n ],\n})\nexport class DaffToastComponent implements DaffPrefixable, AfterContentInit, AfterViewInit, OnDestroy {\n /** @docs-private */\n @HostBinding('class.daff-toast') class = true;\n\n @ContentChild(DaffToastActionsDirective)\n _actions: DaffToastActionsDirective;\n\n @ContentChild(DaffPrefixDirective)\n _prefix: DaffPrefixDirective;\n\n @Input() toast: DaffToast;\n\n /**\n * @docs-private\n */\n @HostListener('keydown.escape')\n onEscape() {\n this.toast.dismiss();\n }\n\n private _focusTrap: ConfigurableFocusTrap;\n\n constructor(\n private _elementRef: ElementRef,\n private _focusTrapFactory: ConfigurableFocusTrapFactory,\n private _focusStack: DaffFocusStackService,\n ) {\n }\n\n ngAfterContentInit() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusTrap = this._focusTrapFactory.create(\n this._elementRef.nativeElement,\n );\n }\n }\n\n ngAfterViewInit() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusStack.push();\n this._focusTrap.focusFirstTabbableElementWhenReady();\n }\n }\n\n ngOnDestroy() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusTrap.destroy();\n }\n }\n}\n","<ng-container *ngIf=\"_prefix\">\n <ng-content select=\"[daffPrefix]\"></ng-content>\n</ng-container>\n<div class=\"daff-toast__details\">\n <div class=\"daff-toast__content\">\n <ng-content select=\"[daffToastTitle]\"></ng-content>\n <ng-content select=\"[daffToastMessage]\"></ng-content>\n </div>\n <ng-content select=\"[daffToastActions]\"></ng-content>\n</div>\n<ng-content></ng-content>\n","import {\n Directive,\n HostBinding,\n} from '@angular/core';\n\n@Directive({\n selector: '[daffToastMessage]',\n standalone: true,\n})\n\nexport class DaffToastMessageDirective {\n\n @HostBinding('class.daff-toast__message') class = true;\n}\n","import {\n Directive,\n HostBinding,\n} from '@angular/core';\n\n@Directive({\n selector: '[daffToastTitle]',\n standalone: true,\n})\n\nexport class DaffToastTitleDirective {\n\n @HostBinding('class.daff-toast__title') class = true;\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nimport { DaffPrefixSuffixModule } from '@daffodil/design';\nimport { DaffButtonModule } from '@daffodil/design/button';\n\nimport { DaffToastPositionService } from './service/position.service';\nimport { DaffToastComponent } from './toast/toast.component';\nimport { DaffToastActionsDirective } from './toast-actions/toast-actions.directive';\nimport { DaffToastMessageDirective } from './toast-message/toast-message.directive';\nimport { DaffToastTitleDirective } from './toast-title/toast-title.directive';\n\n/**\n * @deprecated in favor of {@link daffProvideToast}\n */\n@NgModule({\n imports: [\n CommonModule,\n DaffPrefixSuffixModule,\n DaffButtonModule,\n FontAwesomeModule,\n PortalModule,\n OverlayModule,\n DaffToastComponent,\n DaffToastActionsDirective,\n DaffToastTitleDirective,\n DaffToastMessageDirective,\n ],\n exports: [\n DaffToastComponent,\n DaffToastActionsDirective,\n DaffToastTitleDirective,\n DaffToastMessageDirective,\n DaffPrefixSuffixModule,\n ],\n providers: [\n DaffToastPositionService,\n ],\n})\nexport class DaffToastModule { }\n","import {\n GlobalPositionStrategy,\n PositionStrategy,\n} from '@angular/cdk/overlay';\n\nimport { DaffToastPosition } from '../options/daff-toast-options';\n\nexport const createPositionStrategy = (position: DaffToastPosition): PositionStrategy => {\n const strat = new GlobalPositionStrategy();\n\n switch ( position.horizontal ) {\n case 'left':\n strat.left('48px');\n break;\n case 'right':\n strat.right('48px');\n break;\n case 'center':\n strat.centerHorizontally();\n break;\n default:\n strat.right('48px');\n }\n\n switch(position.vertical) {\n case 'top':\n strat.top('80px');\n break;\n case 'bottom':\n strat.bottom('48px');\n break;\n default:\n strat.top('80px');\n }\n\n return strat;\n};\n","export interface DaffToastConfiguration {\n /**\n * The duration (in milliseconds) that a toast is visible before it's dismissed.\n */\n duration?: number;\n}\n\nexport const daffDefaultToastConfiguration: DaffToastConfiguration = {};\n","import {\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n NgFor,\n NgIf,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgTemplateOutlet,\n SlicePipe,\n} from '@angular/common';\nimport {\n Input,\n ChangeDetectionStrategy,\n Component,\n ChangeDetectorRef,\n Inject,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\n\nimport { DAFF_BUTTON_COMPONENTS } from '@daffodil/design/button';\n\nimport { DaffToastComponent } from './toast.component';\nimport { DaffToast } from '../interfaces/toast';\nimport {\n DaffToastOptions,\n DAFF_TOAST_OPTIONS,\n} from '../options/daff-toast-options';\nimport { DaffToastPositionService } from '../service/position.service';\nimport { DaffToastActionsDirective } from '../toast-actions/toast-actions.directive';\nimport { DaffToastMessageDirective } from '../toast-message/toast-message.directive';\nimport { DaffToastTitleDirective } from '../toast-title/toast-title.directive';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <daff-toast\n *ngFor=\"let item of items | slice:0:3\"\n [toast]=\"item\"\n [status]=\"item.status ?? null\"\n (closeToast)=\"item.dismiss()\"\n [@slideIn]=\"slideAnimation\"\n [attr.role]=\"item.actions ? 'alertdialog' : 'status'\"\n [attr.aria-labelledby]=\"item.actions ? item.title : undefined\"\n [attr.aria-describedby]=\"item.actions ? item.message : undefined\">\n <div daffToastTitle>{{ item.title }}</div>\n <div daffToastMessage>{{ item.message }}</div>\n <div daffToastActions *ngIf=\"item.actions\">\n <ng-container *ngFor=\"let action of item.actions\">\n <ng-container *ngTemplateOutlet=\"button;context:{ action, item }\"></ng-container>\n </ng-container>\n </div>\n <button daff-icon-button color=\"theme-contrast\"\n *ngIf=\"item.dismissible\"\n aria-label=\"close button\"\n [attr.aria-hidden]=\"item.actions ? undefined : true\"\n (click)=\"onCloseToast(item.dismiss())\">\n <fa-icon [icon]=\"faTimes\" size=\"sm\" [fixedWidth]=\"true\"></fa-icon>\n </button>\n </daff-toast>\n\n <ng-template #button let-action=\"action\" let-item=\"item\">\n <ng-container [ngSwitch]=\"action.type\">\n <button type=\"button\" *ngSwitchDefault daff-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n <button type=\"button\" *ngSwitchCase=\"'stroked'\" daff-stroked-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n <button type=\"button\" *ngSwitchCase=\"'raised'\" daff-raised-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n <button type=\"button\" *ngSwitchCase=\"'flat'\" daff-flat-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n <button type=\"button\" *ngSwitchCase=\"'underline'\" daff-underline-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n </ng-container>\n </ng-template>\n `,\n animations: [\n trigger('slideIn', [\n transition(':enter', [\n style({ opacity: '0', transform: 'translate({{startX}}, {{startY}})' }),\n animate('300ms ease-out', style({ opacity: '1', transform: 'translate({{endX}}, {{endY}})' })),\n ],\n { params: {\n startX: '0',\n startY: '0',\n endX: '0',\n endY: '0',\n } }),\n ]),\n ],\n standalone: true,\n imports: [\n DAFF_BUTTON_COMPONENTS,\n DaffToastComponent,\n DaffToastActionsDirective,\n DaffToastTitleDirective,\n DaffToastMessageDirective,\n FaIconComponent,\n NgSwitch,\n NgFor,\n NgSwitchCase,\n NgSwitchDefault,\n NgIf,\n SlicePipe,\n NgTemplateOutlet,\n ],\n})\nexport class DaffToastTemplateComponent {\n faTimes = faTimes;\n\n private _items: DaffToast[] = [];\n\n constructor(\n private cd: ChangeDetectorRef,\n @Inject(DAFF_TOAST_OPTIONS)\n private options: DaffToastOptions,\n private toastPosition: DaffToastPositionService,\n ) { }\n\n @Output() closeToast: EventEmitter<void> = new EventEmitter();\n\n onCloseToast(event: Event) {\n this.closeToast.emit();\n }\n\n get slideAnimation(): any {\n switch (this.toastPosition.config.horizontal + '-' + this.toastPosition.config.vertical) {\n case 'left-top':\n case 'left-bottom':\n return {\n value: 0,\n params: {\n startX: '-100%',\n endX: '0',\n startY: '0',\n endY: '0',\n },\n };\n case 'right-top':\n case 'right-bottom':\n return {\n value: 0,\n params: {\n startX: '100%',\n endX: '0',\n startY: '0',\n endY: '0',\n },\n };\n\n case 'center-top':\n return {\n value: 0,\n params: {\n startX: '0',\n endX: '0',\n startY: '-100%',\n endY: '0',\n },\n };\n\n case 'center-bottom':\n return {\n value: 0,\n params: {\n startX: '0',\n endX: '0',\n startY: '100%',\n endY: '0',\n },\n };\n }\n }\n\n @Input()\n get items(): DaffToast[] {\n return this._items;\n }\n set items(value: DaffToast[]) {\n this._items = value;\n this.cd.markForCheck();\n }\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n EventEmitter,\n Inject,\n Injectable,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport {\n EMPTY,\n merge,\n of,\n Subscription,\n} from 'rxjs';\nimport {\n delay,\n filter,\n map,\n take,\n tap,\n} from 'rxjs/operators';\n\nimport {\n DaffBreakpoints,\n DaffFocusStackService,\n} from '@daffodil/design';\n\nimport { daffToastChangesFocus } from './changes-focus';\nimport { createPositionStrategy } from './position-strategy';\nimport { DaffToastPositionService } from './position.service';\nimport {\n DaffToast,\n DaffToastData,\n} from '../interfaces/toast';\nimport {\n DAFF_TOAST_OPTIONS,\n DaffToastOptions,\n} from '../options/daff-toast-options';\nimport {\n daffDefaultToastConfiguration,\n DaffToastConfiguration,\n} from '../toast/toast-config';\nimport { DaffToastTemplateComponent } from '../toast/toast-template.component';\n\n@Injectable()\nexport class DaffToastService implements OnDestroy {\n\n private _sub: Subscription;\n\n private _toasts: DaffToast[] = [];\n\n private _overlayRef?: OverlayRef;\n\n private _template?: ComponentRef<DaffToastTemplateComponent>;\n\n constructor(\n private overlay: Overlay,\n @Inject(DAFF_TOAST_OPTIONS) private options: DaffToastOptions,\n @Optional() @SkipSelf() private _parentToast: DaffToastService,\n private mediaQuery: BreakpointObserver,\n private toastPosition: DaffToastPositionService,\n private focusStack: DaffFocusStackService,\n private injector: Injector,\n ) {\n this._sub = this.mediaQuery.observe(DaffBreakpoints.MOBILE).pipe(\n filter(() => this._overlayRef !== undefined),\n map((position) => createPositionStrategy(this.toastPosition.config)),\n tap((strategy) => this._overlayRef.updatePositionStrategy(strategy)),\n ).subscribe();\n }\n\n ngOnDestroy(): void {\n this._sub.unsubscribe();\n }\n\n private _attachToastTemplate(\n overlayRef: OverlayRef,\n ): ComponentRef<DaffToastTemplateComponent> {\n const template = overlayRef.attach(new ComponentPortal(DaffToastTemplateComponent, null, this.injector));\n return template;\n }\n\n private _createOverlayRef(): OverlayRef {\n return this.overlay.create({\n hasBackdrop: false,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy: createPositionStrategy(this.toastPosition.config),\n });\n }\n\n open(\n toast: DaffToastData,\n configuration?: Partial<DaffToastConfiguration>,\n ): DaffToast {\n if(this._parentToast && this.options.useParent) {\n return this._parentToast.open(toast, configuration);\n }\n\n const config: DaffToastConfiguration = {\n ...daffDefaultToastConfiguration,\n // sets the default duration to 5000ms if a toast does not have actions\n duration: toast.actions?.length > 0 ? undefined : 5000,\n ...configuration,\n };\n if(this._toasts.length === 0) {\n this._overlayRef = this._createOverlayRef();\n this._template = this._attachToastTemplate(this._overlayRef);\n }\n const dismissEvent = new EventEmitter<void>();\n const _toastPlus: DaffToast = {\n dismissible: true,\n ...toast,\n dismiss: () => {\n dismissEvent.emit();\n },\n dismissalStream: merge(\n config.duration ? of(undefined).pipe(delay(config.duration)) : EMPTY,\n dismissEvent,\n ).pipe(\n take(1),\n ),\n };\n\n _toastPlus.dismissalStream.subscribe(() => {\n this.close(_toastPlus);\n });\n\n this._toasts = [\n _toastPlus,\n ...this._toasts,\n ];\n\n this._template.instance.items = this._toasts;\n\n return _toastPlus;\n }\n\n close(toast: DaffToast): void {\n if(this._parentToast && this.options.useParent) {\n this._parentToast.close(toast);\n return;\n }\n\n if(daffToastChangesFocus(toast)) {\n this.focusStack.pop();\n }\n\n const index = this._toasts.indexOf(toast);\n if (index === -1) {\n throw new Error(\n 'The Toast that you are trying to remove does not exist.',\n );\n }\n\n this._toasts = this._toasts.filter(m => m !== toast);\n this._template.instance.items = [...this._toasts];\n\n // This currently overrides the \":leave\" animation as we currently\n // remove the animating element immediately after there are no more toasts,\n // without waiting for the animation to complete.\n if(this._toasts.length === 0) {\n this._overlayRef.dispose();\n this._template.destroy();\n this._overlayRef = undefined;\n this._template = undefined;\n }\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { DaffToastPositionService } from '../service/position.service';\nimport { DaffToastService } from '../service/toast.service';\n\nexport const daffProvideToast = (): Provider[] => [\n DaffToastService,\n DaffToastPositionService,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.DaffToastPositionService","i2","i3","i3.DaffToastPositionService","i4"],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-design-toast.mjs","sources":["../../../libs/design/toast/src/options/daff-toast-options.ts","../../../libs/design/toast/src/service/position.service.ts","../../../libs/design/toast/src/service/changes-focus.ts","../../../libs/design/toast/src/toast-actions/toast-actions.directive.ts","../../../libs/design/toast/src/toast/toast.component.ts","../../../libs/design/toast/src/toast/toast.component.html","../../../libs/design/toast/src/toast-message/toast-message.directive.ts","../../../libs/design/toast/src/toast-title/toast-title.directive.ts","../../../libs/design/toast/src/toast.module.ts","../../../libs/design/toast/src/service/position-strategy.ts","../../../libs/design/toast/src/toast/toast-config.ts","../../../libs/design/toast/src/toast/toast-template.component.ts","../../../libs/design/toast/src/service/toast.service.ts","../../../libs/design/toast/src/toast/toast-provider.ts","../../../libs/design/toast/src/daffodil-design-toast.ts"],"sourcesContent":["import { createConfigInjectionToken } from '@daffodil/core';\n\ntype Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };\ntype XOR<T, U> = (T | U) extends Record<string,unknown> ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;\n\nexport interface VerticalPositionTypes { vertical: 'top' | 'bottom' };\n\nexport interface HorizontalPositionTypes { horizontal: 'left' | 'center' | 'right' };\n\nexport type DaffToastPosition = VerticalPositionTypes & HorizontalPositionTypes;\n\nexport interface DaffToastOptions {\n position: DaffToastPosition;\n useParent: boolean;\n}\n\nexport const daffToastDefaultOptions: DaffToastOptions = {\n position: {\n vertical: 'top',\n horizontal: 'right',\n },\n useParent: true,\n};\n\nexport const {\n token: DAFF_TOAST_OPTIONS,\n /**\n * Provider function for {@link DAFF_TOAST_OPTIONS}.\n */\n provider: provideDaffToastOptions,\n} = createConfigInjectionToken<DaffToastOptions>(daffToastDefaultOptions, 'DAFF_TOAST_OPTIONS');\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\n\nimport { DaffBreakpoints } from '@daffodil/design';\n\nimport {\n DaffToastOptions,\n DaffToastPosition,\n DAFF_TOAST_OPTIONS,\n} from '../options/daff-toast-options';\n\n@Injectable()\nexport class DaffToastPositionService {\n\n constructor(@Inject(DAFF_TOAST_OPTIONS) private options: DaffToastOptions, private mediaQuery: BreakpointObserver) {\n this._config = options.position;\n }\n\n private _config: DaffToastPosition;\n private _position: DaffToastPosition;\n\n get config(): DaffToastPosition {\n return this.mediaQuery.isMatched(DaffBreakpoints.MOBILE)\n ? this._position ?? this._config\n : <DaffToastPosition>{ vertical: 'bottom', horizontal: 'center' };\n }\n\n set config(val: DaffToastPosition) {\n this._config = val;\n }\n\n setPosition(position: DaffToastPosition) {\n this._position = position;\n }\n}\n","import { DaffToast } from '../interfaces/toast';\n\nexport const daffToastChangesFocus = (toast: DaffToast): boolean => toast.actions?.length > 0;\n","import {\n Directive,\n HostBinding,\n} from '@angular/core';\n\n@Directive({\n selector: '[daffToastActions]',\n standalone: true,\n})\n\nexport class DaffToastActionsDirective {\n\n @HostBinding('class.daff-toast__actions') class = true;\n}\n","import {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n} from '@angular/cdk/a11y';\nimport { NgIf } from '@angular/common';\nimport {\n Component,\n ElementRef,\n HostBinding,\n ContentChild,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n AfterViewInit,\n AfterContentInit,\n HostListener,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport {\n DaffArticleEncapsulatedDirective,\n DaffFocusStackService,\n DaffPrefixable,\n DaffPrefixDirective,\n DaffStatusableDirective,\n} from '@daffodil/design';\n\nimport { DaffToast } from '../interfaces/toast';\nimport { daffToastChangesFocus } from '../service/changes-focus';\nimport { DaffToastActionsDirective } from '../toast-actions/toast-actions.directive';\n\n/**\n * DaffToastComponent provides a way to display and\n * communicate information for user actions or system updates.\n */\n@Component({\n selector: 'daff-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n hostDirectives: [\n { directive: DaffArticleEncapsulatedDirective },\n {\n directive: DaffStatusableDirective,\n inputs: ['status'],\n },\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n NgIf,\n ],\n})\nexport class DaffToastComponent implements DaffPrefixable, AfterContentInit, AfterViewInit, OnDestroy {\n /** @docs-private */\n @HostBinding('class.daff-toast') class = true;\n\n @ContentChild(DaffToastActionsDirective)\n _actions: DaffToastActionsDirective;\n\n @ContentChild(DaffPrefixDirective)\n _prefix: DaffPrefixDirective;\n\n @Input() toast: DaffToast;\n\n /**\n * @docs-private\n */\n @HostListener('keydown.escape')\n onEscape() {\n this.toast.dismiss();\n }\n\n private _focusTrap: ConfigurableFocusTrap;\n\n constructor(\n private _elementRef: ElementRef,\n private _focusTrapFactory: ConfigurableFocusTrapFactory,\n private _focusStack: DaffFocusStackService,\n ) {\n }\n\n ngAfterContentInit() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusTrap = this._focusTrapFactory.create(\n this._elementRef.nativeElement,\n );\n }\n }\n\n ngAfterViewInit() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusStack.push();\n this._focusTrap.focusFirstTabbableElementWhenReady();\n }\n }\n\n ngOnDestroy() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusTrap.destroy();\n }\n }\n}\n","<ng-container *ngIf=\"_prefix\">\n <ng-content select=\"[daffPrefix]\"></ng-content>\n</ng-container>\n<div class=\"daff-toast__details\">\n <div class=\"daff-toast__content\">\n <ng-content select=\"[daffToastTitle]\"></ng-content>\n <ng-content select=\"[daffToastMessage]\"></ng-content>\n </div>\n <ng-content select=\"[daffToastActions]\"></ng-content>\n</div>\n<ng-content></ng-content>\n","import {\n Directive,\n HostBinding,\n} from '@angular/core';\n\n@Directive({\n selector: '[daffToastMessage]',\n standalone: true,\n})\n\nexport class DaffToastMessageDirective {\n\n @HostBinding('class.daff-toast__message') class = true;\n}\n","import {\n Directive,\n HostBinding,\n} from '@angular/core';\n\n@Directive({\n selector: '[daffToastTitle]',\n standalone: true,\n})\n\nexport class DaffToastTitleDirective {\n\n @HostBinding('class.daff-toast__title') class = true;\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nimport { DaffPrefixSuffixModule } from '@daffodil/design';\nimport { DaffButtonModule } from '@daffodil/design/button';\n\nimport { DaffToastPositionService } from './service/position.service';\nimport { DaffToastComponent } from './toast/toast.component';\nimport { DaffToastActionsDirective } from './toast-actions/toast-actions.directive';\nimport { DaffToastMessageDirective } from './toast-message/toast-message.directive';\nimport { DaffToastTitleDirective } from './toast-title/toast-title.directive';\n\n/**\n * @deprecated in favor of {@link provideDaffToast} Deprecated in version 0.78.0. Will be removed in version 0.81.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n DaffPrefixSuffixModule,\n DaffButtonModule,\n FontAwesomeModule,\n PortalModule,\n OverlayModule,\n DaffToastComponent,\n DaffToastActionsDirective,\n DaffToastTitleDirective,\n DaffToastMessageDirective,\n ],\n exports: [\n DaffToastComponent,\n DaffToastActionsDirective,\n DaffToastTitleDirective,\n DaffToastMessageDirective,\n DaffPrefixSuffixModule,\n ],\n providers: [\n DaffToastPositionService,\n ],\n})\nexport class DaffToastModule { }\n","import {\n GlobalPositionStrategy,\n PositionStrategy,\n} from '@angular/cdk/overlay';\n\nimport { DaffToastPosition } from '../options/daff-toast-options';\n\nexport const createPositionStrategy = (position: DaffToastPosition): PositionStrategy => {\n const strat = new GlobalPositionStrategy();\n\n switch ( position.horizontal ) {\n case 'left':\n strat.left('48px');\n break;\n case 'right':\n strat.right('48px');\n break;\n case 'center':\n strat.centerHorizontally();\n break;\n default:\n strat.right('48px');\n }\n\n switch(position.vertical) {\n case 'top':\n strat.top('80px');\n break;\n case 'bottom':\n strat.bottom('48px');\n break;\n default:\n strat.top('80px');\n }\n\n return strat;\n};\n","export interface DaffToastConfiguration {\n /**\n * The duration (in milliseconds) that a toast is visible before it's dismissed.\n */\n duration?: number;\n}\n\nexport const daffDefaultToastConfiguration: DaffToastConfiguration = {};\n","import {\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n NgFor,\n NgIf,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgTemplateOutlet,\n SlicePipe,\n} from '@angular/common';\nimport {\n Input,\n ChangeDetectionStrategy,\n Component,\n ChangeDetectorRef,\n Inject,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\n\nimport { DAFF_BUTTON_COMPONENTS } from '@daffodil/design/button';\n\nimport { DaffToastComponent } from './toast.component';\nimport { DaffToast } from '../interfaces/toast';\nimport {\n DaffToastOptions,\n DAFF_TOAST_OPTIONS,\n} from '../options/daff-toast-options';\nimport { DaffToastPositionService } from '../service/position.service';\nimport { DaffToastActionsDirective } from '../toast-actions/toast-actions.directive';\nimport { DaffToastMessageDirective } from '../toast-message/toast-message.directive';\nimport { DaffToastTitleDirective } from '../toast-title/toast-title.directive';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <daff-toast\n *ngFor=\"let item of items | slice:0:3\"\n [toast]=\"item\"\n [status]=\"item.status ?? null\"\n (closeToast)=\"item.dismiss()\"\n [@slideIn]=\"slideAnimation\"\n [attr.role]=\"item.actions ? 'alertdialog' : 'status'\"\n [attr.aria-labelledby]=\"item.actions ? item.title : undefined\"\n [attr.aria-describedby]=\"item.actions ? item.message : undefined\">\n <div daffToastTitle>{{ item.title }}</div>\n <div daffToastMessage>{{ item.message }}</div>\n <div daffToastActions *ngIf=\"item.actions\">\n <ng-container *ngFor=\"let action of item.actions\">\n <ng-container *ngTemplateOutlet=\"button;context:{ action, item }\"></ng-container>\n </ng-container>\n </div>\n <button daff-icon-button color=\"theme-contrast\"\n *ngIf=\"item.dismissible\"\n aria-label=\"close button\"\n [attr.aria-hidden]=\"item.actions ? undefined : true\"\n (click)=\"onCloseToast(item.dismiss())\">\n <fa-icon [icon]=\"faTimes\" size=\"sm\" [fixedWidth]=\"true\"></fa-icon>\n </button>\n </daff-toast>\n\n <ng-template #button let-action=\"action\" let-item=\"item\">\n <ng-container [ngSwitch]=\"action.type\">\n <button type=\"button\" *ngSwitchDefault daff-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n <button type=\"button\" *ngSwitchCase=\"'stroked'\" daff-stroked-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n <button type=\"button\" *ngSwitchCase=\"'raised'\" daff-raised-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n <button type=\"button\" *ngSwitchCase=\"'flat'\" daff-flat-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n <button type=\"button\" *ngSwitchCase=\"'underline'\" daff-underline-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n </ng-container>\n </ng-template>\n `,\n animations: [\n trigger('slideIn', [\n transition(':enter', [\n style({ opacity: '0', transform: 'translate({{startX}}, {{startY}})' }),\n animate('300ms ease-out', style({ opacity: '1', transform: 'translate({{endX}}, {{endY}})' })),\n ],\n { params: {\n startX: '0',\n startY: '0',\n endX: '0',\n endY: '0',\n } }),\n ]),\n ],\n standalone: true,\n imports: [\n DAFF_BUTTON_COMPONENTS,\n DaffToastComponent,\n DaffToastActionsDirective,\n DaffToastTitleDirective,\n DaffToastMessageDirective,\n FaIconComponent,\n NgSwitch,\n NgFor,\n NgSwitchCase,\n NgSwitchDefault,\n NgIf,\n SlicePipe,\n NgTemplateOutlet,\n ],\n})\nexport class DaffToastTemplateComponent {\n faTimes = faTimes;\n\n private _items: DaffToast[] = [];\n\n constructor(\n private cd: ChangeDetectorRef,\n @Inject(DAFF_TOAST_OPTIONS)\n private options: DaffToastOptions,\n private toastPosition: DaffToastPositionService,\n ) { }\n\n @Output() closeToast: EventEmitter<void> = new EventEmitter();\n\n onCloseToast(event: Event) {\n this.closeToast.emit();\n }\n\n get slideAnimation(): any {\n switch (this.toastPosition.config.horizontal + '-' + this.toastPosition.config.vertical) {\n case 'left-top':\n case 'left-bottom':\n return {\n value: 0,\n params: {\n startX: '-100%',\n endX: '0',\n startY: '0',\n endY: '0',\n },\n };\n case 'right-top':\n case 'right-bottom':\n return {\n value: 0,\n params: {\n startX: '100%',\n endX: '0',\n startY: '0',\n endY: '0',\n },\n };\n\n case 'center-top':\n return {\n value: 0,\n params: {\n startX: '0',\n endX: '0',\n startY: '-100%',\n endY: '0',\n },\n };\n\n case 'center-bottom':\n return {\n value: 0,\n params: {\n startX: '0',\n endX: '0',\n startY: '100%',\n endY: '0',\n },\n };\n }\n }\n\n @Input()\n get items(): DaffToast[] {\n return this._items;\n }\n set items(value: DaffToast[]) {\n this._items = value;\n this.cd.markForCheck();\n }\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n EventEmitter,\n Inject,\n Injectable,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport {\n EMPTY,\n merge,\n of,\n Subscription,\n} from 'rxjs';\nimport {\n delay,\n filter,\n map,\n take,\n tap,\n} from 'rxjs/operators';\n\nimport {\n DaffBreakpoints,\n DaffFocusStackService,\n} from '@daffodil/design';\n\nimport { daffToastChangesFocus } from './changes-focus';\nimport { createPositionStrategy } from './position-strategy';\nimport { DaffToastPositionService } from './position.service';\nimport {\n DaffToast,\n DaffToastData,\n} from '../interfaces/toast';\nimport {\n DAFF_TOAST_OPTIONS,\n DaffToastOptions,\n} from '../options/daff-toast-options';\nimport {\n daffDefaultToastConfiguration,\n DaffToastConfiguration,\n} from '../toast/toast-config';\nimport { DaffToastTemplateComponent } from '../toast/toast-template.component';\n\n@Injectable()\nexport class DaffToastService implements OnDestroy {\n\n private _sub: Subscription;\n\n private _toasts: DaffToast[] = [];\n\n private _overlayRef?: OverlayRef;\n\n private _template?: ComponentRef<DaffToastTemplateComponent>;\n\n constructor(\n private overlay: Overlay,\n @Inject(DAFF_TOAST_OPTIONS) private options: DaffToastOptions,\n @Optional() @SkipSelf() private _parentToast: DaffToastService,\n private mediaQuery: BreakpointObserver,\n private toastPosition: DaffToastPositionService,\n private focusStack: DaffFocusStackService,\n private injector: Injector,\n ) {\n this._sub = this.mediaQuery.observe(DaffBreakpoints.MOBILE).pipe(\n filter(() => this._overlayRef !== undefined),\n map((position) => createPositionStrategy(this.toastPosition.config)),\n tap((strategy) => this._overlayRef.updatePositionStrategy(strategy)),\n ).subscribe();\n }\n\n ngOnDestroy(): void {\n this._sub.unsubscribe();\n }\n\n private _attachToastTemplate(\n overlayRef: OverlayRef,\n ): ComponentRef<DaffToastTemplateComponent> {\n const template = overlayRef.attach(new ComponentPortal(DaffToastTemplateComponent, null, this.injector));\n return template;\n }\n\n private _createOverlayRef(): OverlayRef {\n return this.overlay.create({\n hasBackdrop: false,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy: createPositionStrategy(this.toastPosition.config),\n });\n }\n\n open(\n toast: DaffToastData,\n configuration?: Partial<DaffToastConfiguration>,\n ): DaffToast {\n if(this._parentToast && this.options.useParent) {\n return this._parentToast.open(toast, configuration);\n }\n\n const config: DaffToastConfiguration = {\n ...daffDefaultToastConfiguration,\n // sets the default duration to 5000ms if a toast does not have actions\n duration: toast.actions?.length > 0 ? undefined : 5000,\n ...configuration,\n };\n if(this._toasts.length === 0) {\n this._overlayRef = this._createOverlayRef();\n this._template = this._attachToastTemplate(this._overlayRef);\n }\n const dismissEvent = new EventEmitter<void>();\n const _toastPlus: DaffToast = {\n dismissible: true,\n ...toast,\n dismiss: () => {\n dismissEvent.emit();\n },\n dismissalStream: merge(\n config.duration ? of(undefined).pipe(delay(config.duration)) : EMPTY,\n dismissEvent,\n ).pipe(\n take(1),\n ),\n };\n\n _toastPlus.dismissalStream.subscribe(() => {\n this.close(_toastPlus);\n });\n\n this._toasts = [\n _toastPlus,\n ...this._toasts,\n ];\n\n this._template.instance.items = this._toasts;\n\n return _toastPlus;\n }\n\n close(toast: DaffToast): void {\n if(this._parentToast && this.options.useParent) {\n this._parentToast.close(toast);\n return;\n }\n\n if(daffToastChangesFocus(toast)) {\n this.focusStack.pop();\n }\n\n const index = this._toasts.indexOf(toast);\n if (index === -1) {\n throw new Error(\n 'The Toast that you are trying to remove does not exist.',\n );\n }\n\n this._toasts = this._toasts.filter(m => m !== toast);\n this._template.instance.items = [...this._toasts];\n\n // This currently overrides the \":leave\" animation as we currently\n // remove the animating element immediately after there are no more toasts,\n // without waiting for the animation to complete.\n if(this._toasts.length === 0) {\n this._overlayRef.dispose();\n this._template.destroy();\n this._overlayRef = undefined;\n this._template = undefined;\n }\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { DaffToastPositionService } from '../service/position.service';\nimport { DaffToastService } from '../service/toast.service';\n\nexport const provideDaffToast = (): Provider[] => [\n DaffToastService,\n DaffToastPositionService,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.DaffToastPositionService","i2","i3","i3.DaffToastPositionService","i4"],"mappings":"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"}
@@ -411,7 +411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
411
411
  }] } });
412
412
 
413
413
  /**
414
- * @deprecated in favor of {@link DAFF_TREE_COMPONENTS}
414
+ * @deprecated in favor of {@link DAFF_TREE_COMPONENTS} Deprecated in version 0.78.0. Will be removed in version 0.81.0.
415
415
  */
416
416
  class DaffTreeModule {
417
417
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-design-tree.mjs","sources":["../../../libs/design/tree/src/tree/tree-notifier.service.ts","../../../libs/design/tree/src/utils/flatten-tree.ts","../../../libs/design/tree/src/utils/traverse-tree.ts","../../../libs/design/tree/src/utils/hydrate-tree.ts","../../../libs/design/tree/src/tree/tree.component.ts","../../../libs/design/tree/src/tree/tree.component.html","../../../libs/design/tree/src/tree-item/tree-item.directive.ts","../../../libs/design/tree/src/tree.module.ts","../../../libs/design/tree/src/utils/transform.ts","../../../libs/design/tree/src/tree.ts","../../../libs/design/tree/src/daffodil-design-tree.ts"],"sourcesContent":["import {\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * This service is used by tree-items to notify their parent\n * that the tree has to be re-computed.\n *\n * This service is a multiton associated with each tree instance.\n * It follows the same lifecycle has the tree it is associated with.\n */\n@Inject({})\nexport class DaffTreeNotifierService implements OnDestroy {\n\n /**\n * @docs-private\n */\n private _notice: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * An observable that emits when the tree needs to be re-computed.\n */\n notice$ = this._notice.asObservable();\n\n /**\n * `notify` can be called to trigger a re-computation of the tree\n * if data has changed unexpectedly and a re-render did not occur.\n *\n * This should be used sparingly. Instead, prefer updating `data` on the tree\n * itself for performance reasons.\n */\n notify() {\n this._notice.next(true);\n }\n\n /**\n * Cleanup when the tree is destroyed.\n *\n * @docs-private\n */\n ngOnDestroy(): void {\n this._notice.complete();\n }\n}\n","import { collect } from '@daffodil/core';\n\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * A flattened node of a tree. This is used when translating the tree data\n * structure into an array.\n */\nexport interface DaffTreeFlatNode {\n id: number | string;\n title: string;\n url: string;\n level: number;\n hasChildren: boolean;\n data: unknown;\n visible: boolean;\n _treeRef: DaffTreeUi<unknown>;\n}\n\n/**\n * Flatten a DaffTreeUi<unknown> into an array, removing elements from the array\n * below nodes in the tree that are not open.\n */\nexport const flattenTree = (daffUiTree: DaffTreeUi<unknown>, removeNodes: boolean = false): DaffTreeFlatNode[] => {\n const tree: DaffTreeFlatNode[] = [];\n if(!daffUiTree) {\n return [];\n }\n\n let items = [\n {\n ...daffUiTree,\n level: 0,\n data: undefined,\n open: true,\n _treeRef: daffUiTree,\n },\n ];\n\n\n while(items) {\n const el = items.pop();\n if(!el) {\n break;\n }\n\n items = [\n ...items,\n ...el.items.map((i) => ({\n ...i,\n level:\n el.level + 1,\n _treeRef: i,\n })).reverse(),\n ];\n\n const hasClosedAncestor = el._treeRef.parent\n ? collect(el._treeRef.parent, (node) => node.parent ? [node.parent] : [], el.level).reduce(\n (acc, parent) => acc || !parent.open,\n false,\n )\n : false;\n\n if(!removeNodes && el._treeRef.parent) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: !hasClosedAncestor,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n } else if(removeNodes && el._treeRef.parent?.open) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: !hasClosedAncestor,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n }\n }\n\n return tree;\n};\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\n\n/**\n * Traverse the tree, pre-order, right-to-left\n */\nexport const traverse = <T extends Record<any, any>, V extends Record<any, any> = T>(\n tree: T,\n visit: (tree: T) => V,\n key: RecursiveTreeKeyOfType<T>,\n): V => {\n let stack = [\n tree,\n ];\n\n while(stack) {\n const el = stack.pop();\n if(!el) {\n break;\n }\n\n visit(el);\n\n stack = [\n ...stack,\n ...<T[]><unknown>el[key],\n ];\n }\n\n return tree;\n};\n","import { traverse } from './traverse-tree';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\nexport const daffDataTreeToUiTree = <T>(data: DaffTreeData<T>, parent: DaffTreeUi<T>, open: boolean = false): DaffTreeUi<T> => ({\n id: data.id ?? data.title,\n title: data.title,\n url: data.url,\n data: data.data,\n open,\n parent,\n items: [],\n});\n\n/**\n * This function translates the original data given to us by the client\n * to the internal representation of the tree used by the {@link DaffTreeComponent}\n */\nexport const hydrateTree = <T>(data: DaffTreeData<T>): DaffTreeUi<T> => {\n const tree = daffDataTreeToUiTree(data, undefined, true);\n\n let treeStack = [\n tree,\n ];\n\n traverse(data, (el) => {\n const treeEl = treeStack.pop();\n treeEl.items = el.items.map((i) => daffDataTreeToUiTree(i, treeEl, false));\n treeStack = [\n ...treeStack,\n ...treeEl.items,\n ];\n return el;\n }, 'items');\n\n return tree;\n};\n","import {\n NgFor,\n NgTemplateOutlet,\n} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { DaffArticleEncapsulatedDirective } from '@daffodil/design';\n\nimport { DaffTreeNotifierService } from './tree-notifier.service';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeRenderMode } from '../interfaces/tree-render-mode';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\nimport {\n DaffTreeFlatNode,\n flattenTree,\n} from '../utils/flatten-tree';\nimport { hydrateTree } from '../utils/hydrate-tree';\n\n/**\n * The `DaffTreeComponent` allows you to render tree structures as interactable ui.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData}.\n *\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ul[daff-tree]',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DaffTreeNotifierService,\n ],\n hostDirectives: [{\n directive: DaffArticleEncapsulatedDirective,\n }],\n standalone: true,\n imports: [\n NgFor,\n NgTemplateOutlet,\n ],\n})\nexport class DaffTreeComponent implements OnInit, OnChanges {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree') class = true;\n\n /**\n * The rendering mode for nodes in the tree.\n *\n * Default value is 'in-dom', which means nodes are present in the DOM.\n *\n * Generally, `not-in-dom` is faster as there are less DOM elements to render,\n * but there may be use-cases (like SEO) where having the tree in the DOM\n * is relevant.\n */\n @Input() renderMode: DaffTreeRenderMode;\n\n /**\n * The internal tree element.\n */\n private _tree: DaffTreeUi<unknown> = undefined;\n\n /**\n * The flattened tree data. You can iterate through this if you want to inspect\n * the resulting array structure we computed to render the tree.\n */\n public flatTree: DaffTreeFlatNode[] = [];\n\n /**\n * The tree data you would like to render.\n */\n @Input() tree: DaffTreeData<unknown>;\n\n /**\n * The template used to render tree-nodes that themselves have children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemWithChildrenTpl', { static: true })\n withChildrenTemplate: TemplateRef<any>;\n\n /**\n * The template used to render tree-nodes that have no children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemTpl', { static: true }) treeItemTemplate: TemplateRef<any>;\n\n constructor(private notifier: DaffTreeNotifierService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if(!changes.tree.currentValue) {\n this._tree = undefined;\n this.flatTree = [];\n return;\n }\n\n if(changes.renderMode && !changes.tree) {\n this.flatTree = flattenTree(this._tree, changes.renderMode.currentValue === 'not-in-dom');\n } else if(changes.renderMode || changes.tree) {\n this._tree = hydrateTree(changes.tree?.currentValue ?? this.tree);\n this.flatTree = flattenTree(this._tree, (changes.renderMode?.currentValue ?? this.renderMode) === 'not-in-dom');\n }\n }\n\n /**\n * The track-by function used to reduce tree-item re-renders\n */\n trackByTreeElement(index: number, el: any): any {\n return el.title;\n }\n\n /**\n * @docs-private\n */\n ngOnInit(): void {\n this.notifier.notice$.subscribe(() => {\n this.flatTree = flattenTree(this._tree, this.renderMode === 'not-in-dom');\n });\n }\n}\n","<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<ng-container>\n\t\t<li [attr.aria-level]=\"node.level\" [class.hidden]=\"!node.visible\">\n\t\t\t<ng-container\n\t\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate : treeItemTemplate; context: { $implicit: node }\">\n\t\t\t</ng-container>\n\t\t</li>\n\t</ng-container>\n</ng-container>","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\n\nimport { DaffTreeNotifierService } from '../tree/tree-notifier.service';\nimport { DaffTreeFlatNode } from '../utils/flatten-tree';\n\n/**\n * The `DaffTreeItemDirective` allows you to demarcate the elements which are\n * tree-children that interact with the parent tree.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData} and `daff-tree` is a {@link DaffTreeComponent}.\n *\n */\n@Directive({\n selector: '[daffTreeItem]',\n standalone: true,\n})\nexport class DaffTreeItemDirective {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree-item') class = true;\n\n /**\n * The css class of a DaffTreeItemDirective that has children.\n *\n * @docs-private\n */\n @HostBinding('class.parent') classParent = false;\n\n /**\n * The html `id` of the tree item. This is derived from the {@link DaffTreeData}.\n *\n * @docs-private\n */\n @HostBinding('attr.id') id;\n\n /**\n * Accessibility property, notifying users about whether\n * or not the tree item is open.\n *\n * @docs-private\n */\n @HostBinding('attr.aria-expanded') ariaExpanded: string;\n\n /**\n * A css variable indicating the depth of the tree.\n * You can use this to style your templates if you want to\n * use different designs at different depths.\n */\n @HostBinding('style.--depth') depth: number;\n\n /**\n * The CSS class indicating whether or not the tree is `selected`.\n */\n @HostBinding('class.selected') get selectedClass() {\n return this.selected;\n };\n\n /**\n * The CSS class indicating whether or not the tree is `open`.\n */\n @HostBinding('class.open') openClass = false;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n *\n * @docs-private\n */\n private _node: DaffTreeFlatNode;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n */\n @Input()\n get node() {\n return this._node;\n };\n set node(val: DaffTreeFlatNode) {\n this._node = val;\n this.id = 'tree-' + this._node.id;\n this.depth = this._node.level;\n this.classParent = this._node.hasChildren;\n this.openClass = this._node._treeRef.open;\n\n if(this._node.hasChildren) {\n this.ariaExpanded = this._node._treeRef.open ? 'true' : 'false';\n }\n }\n\n /**\n * Whether or not the tree item is the currently active item.\n * Note that there is no requirement there there only be one active item at a time.\n */\n @Input() selected = false;\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n private treeNotifier: DaffTreeNotifierService,\n ) {}\n\n /**\n * @docs-private\n */\n @HostListener('keydown.escape')\n onEscape() {\n this.toggleParent(this.node);\n }\n\n /**\n * @docs-private\n */\n @HostListener('click')\n onClick() {\n if(this.node.hasChildren) {\n this.toggleTree(this.node);\n }\n this.treeNotifier.notify();\n }\n\n /**\n * Toggle the open state of the tree's parent.\n */\n toggleParent(node: DaffTreeFlatNode) {\n if(node._treeRef?.parent.parent === undefined) {\n return;\n }\n node._treeRef.parent.open = !node._treeRef.parent.open;\n (<Document>this.document).getElementById('tree-' + node._treeRef.parent.id).focus();\n }\n\n /**\n * Toggle the open state of this specific subtree tree.\n */\n toggleTree(node: DaffTreeFlatNode) {\n if(node._treeRef.open === false) {\n node._treeRef.open = true;\n } else {\n node._treeRef.open = false;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffTreeComponent } from './tree/tree.component';\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\n\n/**\n * @deprecated in favor of {@link DAFF_TREE_COMPONENTS}\n */\n@NgModule({\n imports: [\n CommonModule,\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n exports: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n})\nexport class DaffTreeModule { }\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\nimport { DaffTreeData } from '../interfaces/tree-data';\n\n/**\n * Transform a tree-like structure into a {@link DaffTreeData}.\n *\n * @param tree - The data structure representing tree-like data.\n * @param transformFn - A user-supplied function that will transform the user\n * type into a {@link DaffTreeData}\n * @param key - The property of the your tree that indicates which\n * key contains the \"children\" of your tree structure.\n *\n */\nexport const daffTransformTree = <\n // eslint-disable-next-line @typescript-eslint/no-restricted-types\n T extends Record<any,any>,\n V\n>(\n tree: T,\n transformFn: (type: T) => DaffTreeData<V>,\n key: RecursiveTreeKeyOfType<T>,\n): DaffTreeData<V> => {\n\n const transformedTree: DaffTreeData<V> = transformFn(tree);\n\n const queue: { node: T; parent: DaffTreeData<V> }[] = [{ node: tree, parent: transformedTree }];\n\n while (queue.length > 0) {\n const { node, parent } = queue.shift();\n\n const childItems = node[key];\n for (const child of <T[]>childItems) {\n const transformedChild: DaffTreeData<V> = transformFn(child);\n parent.items.push(transformedChild);\n queue.push({ node: child, parent: transformedChild });\n }\n }\n\n return transformedTree;\n};\n","import { DaffTreeComponent } from './tree/tree.component';\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\n\nexport const DAFF_TREE_COMPONENTS = <const> [\n DaffTreeComponent,\n DaffTreeItemDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffTreeNotifierService"],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-design-tree.mjs","sources":["../../../libs/design/tree/src/tree/tree-notifier.service.ts","../../../libs/design/tree/src/utils/flatten-tree.ts","../../../libs/design/tree/src/utils/traverse-tree.ts","../../../libs/design/tree/src/utils/hydrate-tree.ts","../../../libs/design/tree/src/tree/tree.component.ts","../../../libs/design/tree/src/tree/tree.component.html","../../../libs/design/tree/src/tree-item/tree-item.directive.ts","../../../libs/design/tree/src/tree.module.ts","../../../libs/design/tree/src/utils/transform.ts","../../../libs/design/tree/src/tree.ts","../../../libs/design/tree/src/daffodil-design-tree.ts"],"sourcesContent":["import {\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * This service is used by tree-items to notify their parent\n * that the tree has to be re-computed.\n *\n * This service is a multiton associated with each tree instance.\n * It follows the same lifecycle has the tree it is associated with.\n */\n@Inject({})\nexport class DaffTreeNotifierService implements OnDestroy {\n\n /**\n * @docs-private\n */\n private _notice: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n /**\n * An observable that emits when the tree needs to be re-computed.\n */\n notice$ = this._notice.asObservable();\n\n /**\n * `notify` can be called to trigger a re-computation of the tree\n * if data has changed unexpectedly and a re-render did not occur.\n *\n * This should be used sparingly. Instead, prefer updating `data` on the tree\n * itself for performance reasons.\n */\n notify() {\n this._notice.next(true);\n }\n\n /**\n * Cleanup when the tree is destroyed.\n *\n * @docs-private\n */\n ngOnDestroy(): void {\n this._notice.complete();\n }\n}\n","import { collect } from '@daffodil/core';\n\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\n/**\n * A flattened node of a tree. This is used when translating the tree data\n * structure into an array.\n */\nexport interface DaffTreeFlatNode {\n id: number | string;\n title: string;\n url: string;\n level: number;\n hasChildren: boolean;\n data: unknown;\n visible: boolean;\n _treeRef: DaffTreeUi<unknown>;\n}\n\n/**\n * Flatten a DaffTreeUi<unknown> into an array, removing elements from the array\n * below nodes in the tree that are not open.\n */\nexport const flattenTree = (daffUiTree: DaffTreeUi<unknown>, removeNodes: boolean = false): DaffTreeFlatNode[] => {\n const tree: DaffTreeFlatNode[] = [];\n if(!daffUiTree) {\n return [];\n }\n\n let items = [\n {\n ...daffUiTree,\n level: 0,\n data: undefined,\n open: true,\n _treeRef: daffUiTree,\n },\n ];\n\n\n while(items) {\n const el = items.pop();\n if(!el) {\n break;\n }\n\n items = [\n ...items,\n ...el.items.map((i) => ({\n ...i,\n level:\n el.level + 1,\n _treeRef: i,\n })).reverse(),\n ];\n\n const hasClosedAncestor = el._treeRef.parent\n ? collect(el._treeRef.parent, (node) => node.parent ? [node.parent] : [], el.level).reduce(\n (acc, parent) => acc || !parent.open,\n false,\n )\n : false;\n\n if(!removeNodes && el._treeRef.parent) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: !hasClosedAncestor,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n } else if(removeNodes && el._treeRef.parent?.open) {\n tree.push({\n id: el.id,\n title: el.title,\n level: el.level,\n url : el.url,\n visible: !hasClosedAncestor,\n hasChildren: el.items.length > 0,\n data: undefined,\n _treeRef: el._treeRef,\n });\n }\n }\n\n return tree;\n};\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\n\n/**\n * Traverse the tree, pre-order, right-to-left\n */\nexport const traverse = <T extends Record<any, any>, V extends Record<any, any> = T>(\n tree: T,\n visit: (tree: T) => V,\n key: RecursiveTreeKeyOfType<T>,\n): V => {\n let stack = [\n tree,\n ];\n\n while(stack) {\n const el = stack.pop();\n if(!el) {\n break;\n }\n\n visit(el);\n\n stack = [\n ...stack,\n ...<T[]><unknown>el[key],\n ];\n }\n\n return tree;\n};\n","import { traverse } from './traverse-tree';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\n\nexport const daffDataTreeToUiTree = <T>(data: DaffTreeData<T>, parent: DaffTreeUi<T>, open: boolean = false): DaffTreeUi<T> => ({\n id: data.id ?? data.title,\n title: data.title,\n url: data.url,\n data: data.data,\n open,\n parent,\n items: [],\n});\n\n/**\n * This function translates the original data given to us by the client\n * to the internal representation of the tree used by the {@link DaffTreeComponent}\n */\nexport const hydrateTree = <T>(data: DaffTreeData<T>): DaffTreeUi<T> => {\n const tree = daffDataTreeToUiTree(data, undefined, true);\n\n let treeStack = [\n tree,\n ];\n\n traverse(data, (el) => {\n const treeEl = treeStack.pop();\n treeEl.items = el.items.map((i) => daffDataTreeToUiTree(i, treeEl, false));\n treeStack = [\n ...treeStack,\n ...treeEl.items,\n ];\n return el;\n }, 'items');\n\n return tree;\n};\n","import {\n NgFor,\n NgTemplateOutlet,\n} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { DaffArticleEncapsulatedDirective } from '@daffodil/design';\n\nimport { DaffTreeNotifierService } from './tree-notifier.service';\nimport { DaffTreeData } from '../interfaces/tree-data';\nimport { DaffTreeRenderMode } from '../interfaces/tree-render-mode';\nimport { DaffTreeUi } from '../interfaces/tree-ui';\nimport {\n DaffTreeFlatNode,\n flattenTree,\n} from '../utils/flatten-tree';\nimport { hydrateTree } from '../utils/hydrate-tree';\n\n/**\n * The `DaffTreeComponent` allows you to render tree structures as interactable ui.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData}.\n *\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ul[daff-tree]',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n DaffTreeNotifierService,\n ],\n hostDirectives: [{\n directive: DaffArticleEncapsulatedDirective,\n }],\n standalone: true,\n imports: [\n NgFor,\n NgTemplateOutlet,\n ],\n})\nexport class DaffTreeComponent implements OnInit, OnChanges {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree') class = true;\n\n /**\n * The rendering mode for nodes in the tree.\n *\n * Default value is 'in-dom', which means nodes are present in the DOM.\n *\n * Generally, `not-in-dom` is faster as there are less DOM elements to render,\n * but there may be use-cases (like SEO) where having the tree in the DOM\n * is relevant.\n */\n @Input() renderMode: DaffTreeRenderMode;\n\n /**\n * The internal tree element.\n */\n private _tree: DaffTreeUi<unknown> = undefined;\n\n /**\n * The flattened tree data. You can iterate through this if you want to inspect\n * the resulting array structure we computed to render the tree.\n */\n public flatTree: DaffTreeFlatNode[] = [];\n\n /**\n * The tree data you would like to render.\n */\n @Input() tree: DaffTreeData<unknown>;\n\n /**\n * The template used to render tree-nodes that themselves have children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemWithChildrenTpl', { static: true })\n withChildrenTemplate: TemplateRef<any>;\n\n /**\n * The template used to render tree-nodes that have no children.\n *\n * @docs-private\n */\n @ContentChild('daffTreeItemTpl', { static: true }) treeItemTemplate: TemplateRef<any>;\n\n constructor(private notifier: DaffTreeNotifierService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if(!changes.tree.currentValue) {\n this._tree = undefined;\n this.flatTree = [];\n return;\n }\n\n if(changes.renderMode && !changes.tree) {\n this.flatTree = flattenTree(this._tree, changes.renderMode.currentValue === 'not-in-dom');\n } else if(changes.renderMode || changes.tree) {\n this._tree = hydrateTree(changes.tree?.currentValue ?? this.tree);\n this.flatTree = flattenTree(this._tree, (changes.renderMode?.currentValue ?? this.renderMode) === 'not-in-dom');\n }\n }\n\n /**\n * The track-by function used to reduce tree-item re-renders\n */\n trackByTreeElement(index: number, el: any): any {\n return el.title;\n }\n\n /**\n * @docs-private\n */\n ngOnInit(): void {\n this.notifier.notice$.subscribe(() => {\n this.flatTree = flattenTree(this._tree, this.renderMode === 'not-in-dom');\n });\n }\n}\n","<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<ng-container>\n\t\t<li [attr.aria-level]=\"node.level\" [class.hidden]=\"!node.visible\">\n\t\t\t<ng-container\n\t\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate : treeItemTemplate; context: { $implicit: node }\">\n\t\t\t</ng-container>\n\t\t</li>\n\t</ng-container>\n</ng-container>","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n HostBinding,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\n\nimport { DaffTreeNotifierService } from '../tree/tree-notifier.service';\nimport { DaffTreeFlatNode } from '../utils/flatten-tree';\n\n/**\n * The `DaffTreeItemDirective` allows you to demarcate the elements which are\n * tree-children that interact with the parent tree.\n *\n * They can be used like:\n *\n * ```html\n * <ul daff-tree [tree]=\"tree\">\n * <ng-template #daffTreeItemWithChildrenTpl let-node>\n * <button daffTreeItem [node]=\"node\">{{ node.title }} </button>\n * </ng-template>\n *\n * <ng-template #daffTreeItemTpl let-node>\n * <a daffTreeItem [node]=\"node\" [routerLink]=\"node.url\">{{ node.title }}</a>\n * </ng-template>\n * </ul>\n * ```\n *\n * where `tree` is a {@link DaffTreeData} and `daff-tree` is a {@link DaffTreeComponent}.\n *\n */\n@Directive({\n selector: '[daffTreeItem]',\n standalone: true,\n})\nexport class DaffTreeItemDirective {\n\n /**\n * The css class of the daff-tree.\n *\n * @docs-private\n */\n @HostBinding('class.daff-tree-item') class = true;\n\n /**\n * The css class of a DaffTreeItemDirective that has children.\n *\n * @docs-private\n */\n @HostBinding('class.parent') classParent = false;\n\n /**\n * The html `id` of the tree item. This is derived from the {@link DaffTreeData}.\n *\n * @docs-private\n */\n @HostBinding('attr.id') id;\n\n /**\n * Accessibility property, notifying users about whether\n * or not the tree item is open.\n *\n * @docs-private\n */\n @HostBinding('attr.aria-expanded') ariaExpanded: string;\n\n /**\n * A css variable indicating the depth of the tree.\n * You can use this to style your templates if you want to\n * use different designs at different depths.\n */\n @HostBinding('style.--depth') depth: number;\n\n /**\n * The CSS class indicating whether or not the tree is `selected`.\n */\n @HostBinding('class.selected') get selectedClass() {\n return this.selected;\n };\n\n /**\n * The CSS class indicating whether or not the tree is `open`.\n */\n @HostBinding('class.open') openClass = false;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n *\n * @docs-private\n */\n private _node: DaffTreeFlatNode;\n\n /**\n * The {@link DaffTreeFlatNode} associated with this specific tree item.\n */\n @Input()\n get node() {\n return this._node;\n };\n set node(val: DaffTreeFlatNode) {\n this._node = val;\n this.id = 'tree-' + this._node.id;\n this.depth = this._node.level;\n this.classParent = this._node.hasChildren;\n this.openClass = this._node._treeRef.open;\n\n if(this._node.hasChildren) {\n this.ariaExpanded = this._node._treeRef.open ? 'true' : 'false';\n }\n }\n\n /**\n * Whether or not the tree item is the currently active item.\n * Note that there is no requirement there there only be one active item at a time.\n */\n @Input() selected = false;\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n private treeNotifier: DaffTreeNotifierService,\n ) {}\n\n /**\n * @docs-private\n */\n @HostListener('keydown.escape')\n onEscape() {\n this.toggleParent(this.node);\n }\n\n /**\n * @docs-private\n */\n @HostListener('click')\n onClick() {\n if(this.node.hasChildren) {\n this.toggleTree(this.node);\n }\n this.treeNotifier.notify();\n }\n\n /**\n * Toggle the open state of the tree's parent.\n */\n toggleParent(node: DaffTreeFlatNode) {\n if(node._treeRef?.parent.parent === undefined) {\n return;\n }\n node._treeRef.parent.open = !node._treeRef.parent.open;\n (<Document>this.document).getElementById('tree-' + node._treeRef.parent.id).focus();\n }\n\n /**\n * Toggle the open state of this specific subtree tree.\n */\n toggleTree(node: DaffTreeFlatNode) {\n if(node._treeRef.open === false) {\n node._treeRef.open = true;\n } else {\n node._treeRef.open = false;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DaffTreeComponent } from './tree/tree.component';\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\n\n/**\n * @deprecated in favor of {@link DAFF_TREE_COMPONENTS} Deprecated in version 0.78.0. Will be removed in version 0.81.0.\n */\n@NgModule({\n imports: [\n CommonModule,\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n exports: [\n DaffTreeComponent,\n DaffTreeItemDirective,\n ],\n})\nexport class DaffTreeModule { }\n","import { RecursiveTreeKeyOfType } from '../interfaces/recursive-key';\nimport { DaffTreeData } from '../interfaces/tree-data';\n\n/**\n * Transform a tree-like structure into a {@link DaffTreeData}.\n *\n * @param tree - The data structure representing tree-like data.\n * @param transformFn - A user-supplied function that will transform the user\n * type into a {@link DaffTreeData}\n * @param key - The property of the your tree that indicates which\n * key contains the \"children\" of your tree structure.\n *\n */\nexport const daffTransformTree = <\n // eslint-disable-next-line @typescript-eslint/no-restricted-types\n T extends Record<any,any>,\n V\n>(\n tree: T,\n transformFn: (type: T) => DaffTreeData<V>,\n key: RecursiveTreeKeyOfType<T>,\n): DaffTreeData<V> => {\n\n const transformedTree: DaffTreeData<V> = transformFn(tree);\n\n const queue: { node: T; parent: DaffTreeData<V> }[] = [{ node: tree, parent: transformedTree }];\n\n while (queue.length > 0) {\n const { node, parent } = queue.shift();\n\n const childItems = node[key];\n for (const child of <T[]>childItems) {\n const transformedChild: DaffTreeData<V> = transformFn(child);\n parent.items.push(transformedChild);\n queue.push({ node: child, parent: transformedChild });\n }\n }\n\n return transformedTree;\n};\n","import { DaffTreeComponent } from './tree/tree.component';\nimport { DaffTreeItemDirective } from './tree-item/tree-item.directive';\n\nexport const DAFF_TREE_COMPONENTS = <const> [\n DaffTreeComponent,\n DaffTreeItemDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffTreeNotifierService"],"mappings":"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"}
@@ -49,7 +49,7 @@ class DaffFormFieldComponent {
49
49
  * The tracking property used to determine if the parent form has been submitted,
50
50
  * and thus show an error message (even if the field hasn't been touched).
51
51
  *
52
- * @deprecated
52
+ * @deprecated Deprecated in version 0.78.0. Will be removed in version 0.81.0.
53
53
  */
54
54
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
55
55
  this.formSubmitted = false;
@@ -1606,15 +1606,16 @@ const SERVER_SAFE_BREAKPOINT_OBSERVER = new InjectionToken('SERVER_SAFE_BREAKPOI
1606
1606
  */
1607
1607
  var DaffStatusEnum;
1608
1608
  (function (DaffStatusEnum) {
1609
+ DaffStatusEnum["Info"] = "info";
1609
1610
  DaffStatusEnum["Warn"] = "warn";
1610
- DaffStatusEnum["Danger"] = "danger";
1611
+ DaffStatusEnum["Critical"] = "critical";
1611
1612
  DaffStatusEnum["Success"] = "success";
1612
1613
  })(DaffStatusEnum || (DaffStatusEnum = {}));
1613
1614
 
1614
1615
  /**
1615
1616
  * `DaffStatusableDirective` allows a component to conditionally apply status-specific
1616
1617
  * styles by setting CSS classes based on the specified status. This directive is useful
1617
- * for indicating different statuses such as warning, danger, or success states.
1618
+ * for indicating different statuses such as info, warning, critical, or success states.
1618
1619
  *
1619
1620
  * ## Usage
1620
1621
  *
@@ -1643,7 +1644,7 @@ var DaffStatusEnum;
1643
1644
  * ```scss
1644
1645
  * .custom-component {
1645
1646
  *
1646
- * &.daff-danger {
1647
+ * &.daff-critical {
1647
1648
  * background: daff-color($red, 10);
1648
1649
  * color: daff-color($red, 90);
1649
1650
  * }
@@ -1653,8 +1654,9 @@ var DaffStatusEnum;
1653
1654
  *
1654
1655
  * The directive applies the following CSS classes based on the status:
1655
1656
  *
1657
+ * - `daff-info`: Applied when the status is `info`.
1656
1658
  * - `daff-warn`: Applied when the status is `warn`.
1657
- * - `daff-danger`: Applied when the status is `danger`.
1659
+ * - `daff-critical`: Applied when the status is `critical`.
1658
1660
  * - `daff-success`: Applied when the status is `success`.
1659
1661
  */
1660
1662
  class DaffStatusableDirective {
@@ -1664,8 +1666,9 @@ class DaffStatusableDirective {
1664
1666
  */
1665
1667
  get class() {
1666
1668
  return {
1669
+ 'daff-info': this.status === DaffStatusEnum.Info,
1667
1670
  'daff-warn': this.status === DaffStatusEnum.Warn,
1668
- 'daff-danger': this.status === DaffStatusEnum.Danger,
1671
+ 'daff-critical': this.status === DaffStatusEnum.Critical,
1669
1672
  'daff-success': this.status === DaffStatusEnum.Success,
1670
1673
  };
1671
1674
  }