@fundamental-ngx/core 0.44.1-rc.3 → 0.45.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 (500) hide show
  1. package/action-sheet/action-sheet.module.d.ts +5 -6
  2. package/action-sheet/index.d.ts +0 -1
  3. package/avatar/avatar.component.d.ts +1 -6
  4. package/bar/bar.module.d.ts +4 -6
  5. package/bar/directives/bar-element.directive.d.ts +1 -6
  6. package/bar/index.d.ts +0 -2
  7. package/breadcrumb/breadcrumb.component.d.ts +1 -9
  8. package/breadcrumb/breadcrumb.module.d.ts +12 -13
  9. package/breadcrumb/index.d.ts +0 -1
  10. package/button/button.module.d.ts +4 -5
  11. package/button/index.d.ts +0 -1
  12. package/calendar/calendar.module.d.ts +5 -6
  13. package/calendar/index.d.ts +0 -1
  14. package/card/card.module.d.ts +6 -7
  15. package/card/index.d.ts +0 -1
  16. package/carousel/carousel.component.d.ts +1 -13
  17. package/checkbox/checkbox.module.d.ts +4 -5
  18. package/checkbox/index.d.ts +0 -1
  19. package/combobox/combobox.module.d.ts +12 -13
  20. package/combobox/index.d.ts +0 -1
  21. package/content-density/index.d.ts +0 -4
  22. package/date-picker/date-picker.component.d.ts +1 -62
  23. package/date-picker/date-picker.module.d.ts +12 -13
  24. package/date-picker/index.d.ts +0 -1
  25. package/datetime-picker/datetime-picker.component.d.ts +1 -49
  26. package/datetime-picker/datetime-picker.module.d.ts +14 -15
  27. package/datetime-picker/index.d.ts +0 -1
  28. package/dialog/dialog.module.d.ts +14 -16
  29. package/dialog/index.d.ts +0 -2
  30. package/dialog/utils/dialog-config.class.d.ts +0 -2
  31. package/dynamic-page/dynamic-page.module.d.ts +10 -11
  32. package/dynamic-page/index.d.ts +0 -1
  33. package/esm2022/action-sheet/action-sheet.module.mjs +3 -8
  34. package/esm2022/action-sheet/index.mjs +1 -2
  35. package/esm2022/avatar/avatar.component.mjs +3 -13
  36. package/esm2022/bar/bar.module.mjs +3 -13
  37. package/esm2022/bar/directives/bar-element.directive.mjs +3 -16
  38. package/esm2022/bar/index.mjs +1 -3
  39. package/esm2022/breadcrumb/breadcrumb.component.mjs +5 -19
  40. package/esm2022/breadcrumb/breadcrumb.module.mjs +6 -18
  41. package/esm2022/breadcrumb/index.mjs +1 -2
  42. package/esm2022/button/button.module.mjs +4 -5
  43. package/esm2022/button/index.mjs +1 -2
  44. package/esm2022/calendar/calendar.module.mjs +3 -8
  45. package/esm2022/calendar/index.mjs +1 -2
  46. package/esm2022/card/card.module.mjs +4 -8
  47. package/esm2022/card/index.mjs +1 -2
  48. package/esm2022/carousel/carousel.component.mjs +4 -30
  49. package/esm2022/checkbox/checkbox.module.mjs +4 -5
  50. package/esm2022/checkbox/index.mjs +1 -2
  51. package/esm2022/combobox/combobox-mobile/combobox-mobile.component.mjs +1 -1
  52. package/esm2022/combobox/combobox.component.mjs +1 -1
  53. package/esm2022/combobox/combobox.module.mjs +6 -8
  54. package/esm2022/combobox/index.mjs +1 -2
  55. package/esm2022/content-density/index.mjs +1 -5
  56. package/esm2022/date-picker/date-picker.component.mjs +4 -104
  57. package/esm2022/date-picker/date-picker.module.mjs +5 -6
  58. package/esm2022/date-picker/index.mjs +1 -2
  59. package/esm2022/datetime-picker/datetime-picker.component.mjs +4 -83
  60. package/esm2022/datetime-picker/datetime-picker.module.mjs +5 -6
  61. package/esm2022/datetime-picker/index.mjs +1 -2
  62. package/esm2022/dialog/dialog-default/dialog-default.component.mjs +1 -1
  63. package/esm2022/dialog/dialog-header/dialog-header.component.mjs +1 -1
  64. package/esm2022/dialog/dialog.component.mjs +3 -3
  65. package/esm2022/dialog/dialog.module.mjs +1 -9
  66. package/esm2022/dialog/index.mjs +1 -3
  67. package/esm2022/dialog/utils/dialog-config.class.mjs +1 -1
  68. package/esm2022/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.mjs +1 -1
  69. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +1 -1
  70. package/esm2022/dynamic-page/dynamic-page.module.mjs +3 -8
  71. package/esm2022/dynamic-page/index.mjs +1 -2
  72. package/esm2022/facets/facet/facet.component.mjs +1 -1
  73. package/esm2022/feed-list-item/components/item/feed-list-item.component.mjs +14 -40
  74. package/esm2022/file-uploader/file-uploader.module.mjs +4 -23
  75. package/esm2022/file-uploader/index.mjs +1 -2
  76. package/esm2022/form/form-control/form-control.module.mjs +4 -23
  77. package/esm2022/form/form-label/form-label.component.mjs +3 -40
  78. package/esm2022/form/form-message/form-message.component.mjs +1 -1
  79. package/esm2022/form/form-message/popover-form-message.service.mjs +1 -1
  80. package/esm2022/form/index.mjs +1 -2
  81. package/esm2022/fundamental-ngx.module.mjs +1 -5
  82. package/esm2022/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.mjs +1 -1
  83. package/esm2022/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.mjs +1 -1
  84. package/esm2022/index.mjs +1 -2
  85. package/esm2022/inline-help/inline-help.directive.mjs +3 -18
  86. package/esm2022/input-group/index.mjs +1 -2
  87. package/esm2022/input-group/input-group.component.mjs +6 -28
  88. package/esm2022/input-group/input-group.module.mjs +1 -6
  89. package/esm2022/link/link.component.mjs +5 -8
  90. package/esm2022/list/index.mjs +1 -2
  91. package/esm2022/list/list-item/list-item.component.mjs +3 -46
  92. package/esm2022/list/list-message.directive.mjs +1 -1
  93. package/esm2022/list/list.module.mjs +3 -8
  94. package/esm2022/menu/index.mjs +1 -2
  95. package/esm2022/menu/menu-mobile/menu-mobile.component.mjs +1 -1
  96. package/esm2022/menu/menu.module.mjs +3 -8
  97. package/esm2022/message-box/index.mjs +1 -3
  98. package/esm2022/message-box/message-box-default/message-box-default.component.mjs +1 -1
  99. package/esm2022/message-box/message-box-header/message-box-header.component.mjs +1 -1
  100. package/esm2022/message-box/message-box.module.mjs +3 -11
  101. package/esm2022/message-strip/alert/message-strip-alert/message-strip-alert.component.mjs +3 -3
  102. package/esm2022/message-strip/alert/message-strip-alert.service.mjs +8 -2
  103. package/esm2022/message-strip/message-strip.component.mjs +3 -16
  104. package/esm2022/micro-process-flow/index.mjs +1 -2
  105. package/esm2022/micro-process-flow/micro-process-flow.module.mjs +5 -10
  106. package/esm2022/multi-combobox/mobile/mobile-multi-combobox.component.mjs +1 -1
  107. package/esm2022/multi-combobox/multi-combobox.component.mjs +1 -1
  108. package/esm2022/multi-combobox/select-all-toggler/select-all-toggler.component.mjs +1 -1
  109. package/esm2022/multi-input/index.mjs +1 -2
  110. package/esm2022/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +1 -1
  111. package/esm2022/multi-input/multi-input.component.mjs +1 -1
  112. package/esm2022/multi-input/multi-input.module.mjs +6 -8
  113. package/esm2022/nested-list/index.mjs +1 -2
  114. package/esm2022/nested-list/nested-list.module.mjs +3 -8
  115. package/esm2022/object-number/object-number.component.mjs +3 -3
  116. package/esm2022/overflow-layout/overflow-layout.component.mjs +3 -3
  117. package/esm2022/pagination/index.mjs +1 -2
  118. package/esm2022/pagination/pagination.component.mjs +8 -186
  119. package/esm2022/pagination/pagination.module.mjs +6 -7
  120. package/esm2022/panel/index.mjs +1 -2
  121. package/esm2022/panel/panel.module.mjs +4 -15
  122. package/esm2022/popover/base/base-popover.class.mjs +2 -33
  123. package/esm2022/popover/popover.component.mjs +1 -19
  124. package/esm2022/product-switch/product-switch/product-switch.component.mjs +4 -17
  125. package/esm2022/product-switch/product-switch-body/product-switch-body.component.mjs +1 -1
  126. package/esm2022/product-switch/product-switch-body/product-switch.item.mjs +1 -1
  127. package/esm2022/quick-view/quick-view-group-item-label/quick-view-group-item-label.component.mjs +1 -1
  128. package/esm2022/quick-view/quick-view-title/quick-view-title.component.mjs +1 -1
  129. package/esm2022/radio/index.mjs +1 -2
  130. package/esm2022/radio/radio.module.mjs +4 -5
  131. package/esm2022/rating-indicator/components/rating-indicator.component.mjs +3 -3
  132. package/esm2022/select/index.mjs +1 -2
  133. package/esm2022/select/select.component.mjs +1 -1
  134. package/esm2022/select/select.module.mjs +5 -6
  135. package/esm2022/shellbar/index.mjs +1 -2
  136. package/esm2022/shellbar/shellbar-actions/shellbar-actions.component.mjs +3 -17
  137. package/esm2022/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.mjs +3 -5
  138. package/esm2022/shellbar/shellbar.module.mjs +3 -8
  139. package/esm2022/shellbar/user-menu/shellbar-user-menu.component.mjs +1 -1
  140. package/esm2022/slider/index.mjs +1 -2
  141. package/esm2022/slider/slider.component.mjs +3 -49
  142. package/esm2022/slider/slider.module.mjs +4 -5
  143. package/esm2022/split-button/index.mjs +1 -2
  144. package/esm2022/split-button/split-button.component.mjs +3 -27
  145. package/esm2022/split-button/split-button.module.mjs +4 -5
  146. package/esm2022/splitter/splitter-pagination/splitter-pagination.component.mjs +3 -10
  147. package/esm2022/splitter/splitter.component.mjs +2 -16
  148. package/esm2022/step-input/index.mjs +1 -2
  149. package/esm2022/step-input/step-input.component.mjs +5 -31
  150. package/esm2022/step-input/step-input.module.mjs +5 -6
  151. package/esm2022/switch/index.mjs +1 -2
  152. package/esm2022/switch/switch.component.mjs +5 -43
  153. package/esm2022/switch/switch.module.mjs +4 -5
  154. package/esm2022/table/index.mjs +1 -3
  155. package/esm2022/table/table.module.mjs +3 -13
  156. package/esm2022/tabs/index.mjs +1 -2
  157. package/esm2022/tabs/tab-item-expand/tab-item-expand.component.mjs +8 -22
  158. package/esm2022/tabs/tab-list.component.mjs +5 -18
  159. package/esm2022/tabs/tabs.module.mjs +3 -8
  160. package/esm2022/text/text.component.mjs +3 -29
  161. package/esm2022/time/index.mjs +1 -3
  162. package/esm2022/time/time.component.mjs +8 -65
  163. package/esm2022/time/time.module.mjs +5 -6
  164. package/esm2022/time-picker/index.mjs +1 -2
  165. package/esm2022/time-picker/time-picker.component.mjs +1 -1
  166. package/esm2022/time-picker/time-picker.module.mjs +6 -22
  167. package/esm2022/timeline/components/timeline-node-body/timeline-node-body.component.mjs +1 -1
  168. package/esm2022/timeline/timeline.component.mjs +1 -1
  169. package/esm2022/token/index.mjs +1 -2
  170. package/esm2022/token/token.component.mjs +4 -30
  171. package/esm2022/token/token.module.mjs +5 -24
  172. package/esm2022/token/tokenizer.component.mjs +3 -3
  173. package/esm2022/toolbar/toolbar.component.mjs +8 -24
  174. package/esm2022/tree/tree.component.mjs +1 -1
  175. package/esm2022/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +9 -87
  176. package/esm2022/upload-collection/upload-collection-form-item/upload-collection-form-item.component.mjs +9 -21
  177. package/esm2022/upload-collection/upload-collection-item.directive.mjs +4 -3
  178. package/esm2022/upload-collection/upload-collection-simple.directives.mjs +22 -15
  179. package/esm2022/upload-collection/upload-collection.component.mjs +5 -4
  180. package/esm2022/upload-collection/upload-collection.module.mjs +7 -13
  181. package/esm2022/wizard/index.mjs +1 -2
  182. package/esm2022/wizard/wizard.module.mjs +3 -8
  183. package/feed-list-item/components/item/feed-list-item.component.d.ts +9 -25
  184. package/fesm2022/fundamental-ngx-core-action-sheet.mjs +5 -36
  185. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  186. package/fesm2022/fundamental-ngx-core-avatar.mjs +2 -12
  187. package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
  188. package/fesm2022/fundamental-ngx-core-bar.mjs +7 -81
  189. package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
  190. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +11 -63
  191. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  192. package/fesm2022/fundamental-ngx-core-button.mjs +6 -33
  193. package/fesm2022/fundamental-ngx-core-button.mjs.map +1 -1
  194. package/fesm2022/fundamental-ngx-core-calendar.mjs +4 -35
  195. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  196. package/fesm2022/fundamental-ngx-core-card.mjs +6 -36
  197. package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
  198. package/fesm2022/fundamental-ngx-core-carousel.mjs +3 -29
  199. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  200. package/fesm2022/fundamental-ngx-core-checkbox.mjs +6 -33
  201. package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
  202. package/fesm2022/fundamental-ngx-core-combobox.mjs +9 -37
  203. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  204. package/fesm2022/fundamental-ngx-core-content-density.mjs +1 -148
  205. package/fesm2022/fundamental-ngx-core-content-density.mjs.map +1 -1
  206. package/fesm2022/fundamental-ngx-core-date-picker.mjs +10 -137
  207. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  208. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +10 -116
  209. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  210. package/fesm2022/fundamental-ngx-core-dialog.mjs +6 -57
  211. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  212. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +7 -38
  213. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  214. package/fesm2022/fundamental-ngx-core-facets.mjs +1 -1
  215. package/fesm2022/fundamental-ngx-core-facets.mjs.map +1 -1
  216. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +13 -39
  217. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  218. package/fesm2022/fundamental-ngx-core-file-uploader.mjs +5 -50
  219. package/fesm2022/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  220. package/fesm2022/fundamental-ngx-core-form.mjs +7 -88
  221. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  222. package/fesm2022/fundamental-ngx-core-grid-list.mjs +2 -2
  223. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  224. package/fesm2022/fundamental-ngx-core-inline-help.mjs +2 -17
  225. package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
  226. package/fesm2022/fundamental-ngx-core-input-group.mjs +8 -60
  227. package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
  228. package/fesm2022/fundamental-ngx-core-link.mjs +4 -7
  229. package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
  230. package/fesm2022/fundamental-ngx-core-list.mjs +6 -80
  231. package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
  232. package/fesm2022/fundamental-ngx-core-menu.mjs +7 -38
  233. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  234. package/fesm2022/fundamental-ngx-core-message-box.mjs +7 -59
  235. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  236. package/fesm2022/fundamental-ngx-core-message-strip.mjs +11 -19
  237. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  238. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +7 -38
  239. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
  240. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +3 -3
  241. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  242. package/fesm2022/fundamental-ngx-core-multi-input.mjs +9 -36
  243. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  244. package/fesm2022/fundamental-ngx-core-nested-list.mjs +4 -34
  245. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  246. package/fesm2022/fundamental-ngx-core-object-number.mjs +2 -2
  247. package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
  248. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +2 -2
  249. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  250. package/fesm2022/fundamental-ngx-core-pagination.mjs +14 -219
  251. package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
  252. package/fesm2022/fundamental-ngx-core-panel.mjs +6 -43
  253. package/fesm2022/fundamental-ngx-core-panel.mjs.map +1 -1
  254. package/fesm2022/fundamental-ngx-core-popover.mjs +2 -50
  255. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  256. package/fesm2022/fundamental-ngx-core-product-switch.mjs +6 -18
  257. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  258. package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
  259. package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
  260. package/fesm2022/fundamental-ngx-core-radio.mjs +6 -33
  261. package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
  262. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +2 -2
  263. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  264. package/fesm2022/fundamental-ngx-core-select.mjs +7 -34
  265. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  266. package/fesm2022/fundamental-ngx-core-shellbar.mjs +11 -57
  267. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  268. package/fesm2022/fundamental-ngx-core-slider.mjs +8 -70
  269. package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
  270. package/fesm2022/fundamental-ngx-core-split-button.mjs +8 -59
  271. package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
  272. package/fesm2022/fundamental-ngx-core-splitter.mjs +4 -24
  273. package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
  274. package/fesm2022/fundamental-ngx-core-step-input.mjs +11 -64
  275. package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
  276. package/fesm2022/fundamental-ngx-core-switch.mjs +9 -74
  277. package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
  278. package/fesm2022/fundamental-ngx-core-table.mjs +5 -65
  279. package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
  280. package/fesm2022/fundamental-ngx-core-tabs.mjs +14 -69
  281. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  282. package/fesm2022/fundamental-ngx-core-text.mjs +2 -28
  283. package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
  284. package/fesm2022/fundamental-ngx-core-time-picker.mjs +9 -51
  285. package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
  286. package/fesm2022/fundamental-ngx-core-time.mjs +12 -143
  287. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  288. package/fesm2022/fundamental-ngx-core-timeline.mjs +2 -2
  289. package/fesm2022/fundamental-ngx-core-timeline.mjs.map +1 -1
  290. package/fesm2022/fundamental-ngx-core-token.mjs +11 -82
  291. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  292. package/fesm2022/fundamental-ngx-core-toolbar.mjs +6 -22
  293. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  294. package/fesm2022/fundamental-ngx-core-tree.mjs +1 -1
  295. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  296. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +46 -131
  297. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  298. package/fesm2022/fundamental-ngx-core-wizard.mjs +5 -36
  299. package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
  300. package/fesm2022/fundamental-ngx-core.mjs +0 -5
  301. package/fesm2022/fundamental-ngx-core.mjs.map +1 -1
  302. package/file-uploader/file-uploader.module.d.ts +6 -7
  303. package/file-uploader/index.d.ts +0 -1
  304. package/form/form-control/form-control.module.d.ts +3 -4
  305. package/form/form-label/form-label.component.d.ts +1 -16
  306. package/form/form-message/form-message.component.d.ts +0 -2
  307. package/form/form-message/popover-form-message.service.d.ts +2 -2
  308. package/form/index.d.ts +0 -1
  309. package/fundamental-ngx-core-v0.45.0.tgz +0 -0
  310. package/fundamental-ngx.module.d.ts +89 -90
  311. package/index.d.ts +0 -1
  312. package/inline-help/inline-help.directive.d.ts +1 -7
  313. package/input-group/index.d.ts +0 -1
  314. package/input-group/input-group.component.d.ts +6 -13
  315. package/input-group/input-group.module.d.ts +6 -7
  316. package/link/link.component.d.ts +1 -1
  317. package/list/index.d.ts +0 -1
  318. package/list/list-item/list-item.component.d.ts +1 -25
  319. package/list/list-message.directive.d.ts +2 -2
  320. package/list/list.module.d.ts +5 -6
  321. package/menu/index.d.ts +0 -1
  322. package/menu/menu.module.d.ts +6 -7
  323. package/message-box/index.d.ts +0 -2
  324. package/message-box/message-box.module.d.ts +15 -17
  325. package/message-strip/message-strip.component.d.ts +1 -9
  326. package/micro-process-flow/index.d.ts +0 -1
  327. package/micro-process-flow/micro-process-flow.module.d.ts +4 -5
  328. package/multi-input/index.d.ts +0 -1
  329. package/multi-input/multi-input.module.d.ts +12 -13
  330. package/nested-list/index.d.ts +0 -1
  331. package/nested-list/nested-list.module.d.ts +6 -7
  332. package/package.json +3 -9
  333. package/pagination/index.d.ts +0 -1
  334. package/pagination/pagination.component.d.ts +2 -111
  335. package/pagination/pagination.module.d.ts +10 -11
  336. package/panel/index.d.ts +0 -1
  337. package/panel/panel.module.d.ts +4 -5
  338. package/popover/base/base-popover.class.d.ts +1 -16
  339. package/popover/popover.component.d.ts +0 -11
  340. package/product-switch/product-switch/product-switch.component.d.ts +1 -8
  341. package/product-switch/product-switch-body/product-switch.item.d.ts +0 -4
  342. package/radio/index.d.ts +0 -1
  343. package/radio/radio.module.d.ts +4 -5
  344. package/schematics/add-dependencies/index.js +4 -4
  345. package/select/index.d.ts +0 -1
  346. package/select/select.component.d.ts +0 -2
  347. package/select/select.module.d.ts +9 -10
  348. package/shellbar/index.d.ts +0 -1
  349. package/shellbar/shellbar-actions/shellbar-actions.component.d.ts +1 -9
  350. package/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.d.ts +3 -5
  351. package/shellbar/shellbar.module.d.ts +14 -15
  352. package/slider/index.d.ts +0 -1
  353. package/slider/slider.component.d.ts +1 -31
  354. package/slider/slider.module.d.ts +7 -8
  355. package/split-button/index.d.ts +0 -1
  356. package/split-button/split-button.component.d.ts +3 -12
  357. package/split-button/split-button.module.d.ts +6 -7
  358. package/splitter/splitter-pagination/splitter-pagination.component.d.ts +0 -5
  359. package/splitter/splitter.component.d.ts +1 -9
  360. package/step-input/index.d.ts +0 -1
  361. package/step-input/step-input.component.d.ts +1 -17
  362. package/step-input/step-input.module.d.ts +7 -8
  363. package/switch/index.d.ts +0 -1
  364. package/switch/switch.component.d.ts +1 -19
  365. package/switch/switch.module.d.ts +5 -6
  366. package/table/index.d.ts +0 -2
  367. package/table/table.module.d.ts +4 -6
  368. package/tabs/index.d.ts +0 -1
  369. package/tabs/tab-item-expand/tab-item-expand.component.d.ts +1 -8
  370. package/tabs/tab-list.component.d.ts +1 -9
  371. package/tabs/tabs.module.d.ts +12 -13
  372. package/text/text.component.d.ts +1 -17
  373. package/time/index.d.ts +0 -2
  374. package/time/time.component.d.ts +2 -15
  375. package/time/time.module.d.ts +9 -10
  376. package/time-picker/index.d.ts +0 -1
  377. package/time-picker/time-picker.module.d.ts +9 -10
  378. package/token/index.d.ts +0 -1
  379. package/token/token.component.d.ts +1 -17
  380. package/token/token.module.d.ts +8 -9
  381. package/toolbar/toolbar.component.d.ts +4 -12
  382. package/upload-collection/upload-collection-button-group/upload-collection-button-group.component.d.ts +2 -50
  383. package/upload-collection/upload-collection-form-item/upload-collection-form-item.component.d.ts +1 -9
  384. package/upload-collection/upload-collection-item.directive.d.ts +1 -1
  385. package/upload-collection/upload-collection-simple.directives.d.ts +7 -7
  386. package/upload-collection/upload-collection.component.d.ts +1 -1
  387. package/upload-collection/upload-collection.module.d.ts +1 -8
  388. package/wizard/index.d.ts +0 -1
  389. package/wizard/wizard.module.d.ts +8 -9
  390. package/action-sheet/deprecated-action-sheet-compact.directive.d.ts +0 -8
  391. package/alert/README.md +0 -25
  392. package/alert/alert-service/alert.service.d.ts +0 -41
  393. package/alert/alert-utils/alert-animations.d.ts +0 -8
  394. package/alert/alert-utils/alert-config.d.ts +0 -34
  395. package/alert/alert-utils/alert-container.component.d.ts +0 -14
  396. package/alert/alert-utils/alert-ref.d.ts +0 -26
  397. package/alert/alert.component.d.ts +0 -87
  398. package/alert/alert.module.d.ts +0 -18
  399. package/alert/index.d.ts +0 -7
  400. package/bar/deprecated-bar-button-content-density.directive.d.ts +0 -8
  401. package/bar/deprecated-bar-content-density.directive.d.ts +0 -8
  402. package/breadcrumb/deprecated-breadcrumbs-compact.directive.d.ts +0 -8
  403. package/button/deprecated-button-content-density.directive.d.ts +0 -8
  404. package/calendar/deprecated-calendar-content-density.directive.d.ts +0 -8
  405. package/card/deprecated-card-content-density.directive.d.ts +0 -8
  406. package/checkbox/deprecated-checkbox-content-density.directive.d.ts +0 -8
  407. package/combobox/deprecated-combobox-content-density.directive.d.ts +0 -10
  408. package/content-density/classes/deprecated-compact.directive.d.ts +0 -26
  409. package/content-density/classes/deprecated-condensed.directive.d.ts +0 -26
  410. package/content-density/classes/deprecated-content-density.directive.d.ts +0 -26
  411. package/content-density/classes/deprecated-cozy.directive.d.ts +0 -26
  412. package/date-picker/deprecated-date-picker-compact.directive.d.ts +0 -8
  413. package/datetime-picker/deprecated-date-time-picker-content-density.directive.d.ts +0 -8
  414. package/dialog/dialog-footer-button/dialog-footer-button.component.d.ts +0 -12
  415. package/dialog/directives/dialog-decisive-button.directive.d.ts +0 -11
  416. package/dynamic-page/deprecated-dynamic-page-compact.directive.d.ts +0 -8
  417. package/esm2022/action-sheet/deprecated-action-sheet-compact.directive.mjs +0 -30
  418. package/esm2022/alert/alert-service/alert.service.mjs +0 -85
  419. package/esm2022/alert/alert-utils/alert-animations.mjs +0 -38
  420. package/esm2022/alert/alert-utils/alert-config.mjs +0 -27
  421. package/esm2022/alert/alert-utils/alert-container.component.mjs +0 -29
  422. package/esm2022/alert/alert-utils/alert-ref.mjs +0 -29
  423. package/esm2022/alert/alert.component.mjs +0 -212
  424. package/esm2022/alert/alert.module.mjs +0 -33
  425. package/esm2022/alert/fundamental-ngx-core-alert.mjs +0 -5
  426. package/esm2022/alert/index.mjs +0 -8
  427. package/esm2022/bar/deprecated-bar-button-content-density.directive.mjs +0 -30
  428. package/esm2022/bar/deprecated-bar-content-density.directive.mjs +0 -29
  429. package/esm2022/breadcrumb/deprecated-breadcrumbs-compact.directive.mjs +0 -30
  430. package/esm2022/button/deprecated-button-content-density.directive.mjs +0 -30
  431. package/esm2022/calendar/deprecated-calendar-content-density.directive.mjs +0 -30
  432. package/esm2022/card/deprecated-card-content-density.directive.mjs +0 -30
  433. package/esm2022/checkbox/deprecated-checkbox-content-density.directive.mjs +0 -30
  434. package/esm2022/combobox/deprecated-combobox-content-density.directive.mjs +0 -31
  435. package/esm2022/content-density/classes/deprecated-compact.directive.mjs +0 -39
  436. package/esm2022/content-density/classes/deprecated-condensed.directive.mjs +0 -39
  437. package/esm2022/content-density/classes/deprecated-content-density.directive.mjs +0 -49
  438. package/esm2022/content-density/classes/deprecated-cozy.directive.mjs +0 -39
  439. package/esm2022/date-picker/deprecated-date-picker-compact.directive.mjs +0 -30
  440. package/esm2022/datetime-picker/deprecated-date-time-picker-content-density.directive.mjs +0 -30
  441. package/esm2022/dialog/dialog-footer-button/dialog-footer-button.component.mjs +0 -25
  442. package/esm2022/dialog/directives/dialog-decisive-button.directive.mjs +0 -26
  443. package/esm2022/dynamic-page/deprecated-dynamic-page-compact.directive.mjs +0 -30
  444. package/esm2022/file-uploader/deprecated-file-uploader-content-density.directive.mjs +0 -30
  445. package/esm2022/form/form-control/deprecated-form-control-content-density.directive.mjs +0 -29
  446. package/esm2022/input-group/deprecated-input-group-compact.directive.mjs +0 -30
  447. package/esm2022/list/deprecated-list-content-density,directive.mjs +0 -30
  448. package/esm2022/menu/directives/deprecated-menu-compact.directive.mjs +0 -30
  449. package/esm2022/message-box/directives/message-box-decisive-button.directive.mjs +0 -27
  450. package/esm2022/message-box/message-box-footer-button/message-box-footer-button.component.mjs +0 -25
  451. package/esm2022/micro-process-flow/components/micro-process-flow/deprecated-micro-process-flow-content-density.directive.mjs +0 -30
  452. package/esm2022/multi-input/deprecated-multi-input-compact.directive.mjs +0 -30
  453. package/esm2022/nested-list/deprecated-nested-list-compact.directive.mjs +0 -29
  454. package/esm2022/pagination/deprecated-pagination-compact.directive.mjs +0 -30
  455. package/esm2022/panel/deprecated-panel-compact.directive.mjs +0 -30
  456. package/esm2022/radio/deprecated-radio-button-compact.directive.mjs +0 -30
  457. package/esm2022/select/deprecated-select-compact.directive.mjs +0 -30
  458. package/esm2022/shellbar/deprecated-shellbar-compact.directive.mjs +0 -30
  459. package/esm2022/slider/deprecated-slider-cozy.directive.mjs +0 -20
  460. package/esm2022/split-button/deprecated-split-button-compact.directive.mjs +0 -30
  461. package/esm2022/step-input/deprecated-step-input-compact.directive.mjs +0 -30
  462. package/esm2022/switch/deprecated-switch-compact.directive.mjs +0 -30
  463. package/esm2022/table/deprecated-table-compact.directive.mjs +0 -29
  464. package/esm2022/table/deprecated-table-condensed.directive.mjs +0 -29
  465. package/esm2022/tabs/deprecated-tabs-compact.directive.mjs +0 -29
  466. package/esm2022/time/deprecated-time-content-density.directive.mjs +0 -30
  467. package/esm2022/time/i18n/time-i18n.mjs +0 -52
  468. package/esm2022/time-picker/deprecated-timepicker-compact.directive.mjs +0 -30
  469. package/esm2022/token/deprecated-tokenizer-content-density.directive.mjs +0 -30
  470. package/esm2022/wizard/deprecated-wizard-compact.directive.mjs +0 -30
  471. package/fesm2022/fundamental-ngx-core-alert.mjs +0 -437
  472. package/fesm2022/fundamental-ngx-core-alert.mjs.map +0 -1
  473. package/file-uploader/deprecated-file-uploader-content-density.directive.d.ts +0 -8
  474. package/form/form-control/deprecated-form-control-content-density.directive.d.ts +0 -8
  475. package/fundamental-ngx-core-v0.44.1-rc.3.tgz +0 -0
  476. package/input-group/deprecated-input-group-compact.directive.d.ts +0 -8
  477. package/list/deprecated-list-content-density,directive.d.ts +0 -8
  478. package/menu/directives/deprecated-menu-compact.directive.d.ts +0 -8
  479. package/message-box/directives/message-box-decisive-button.directive.d.ts +0 -11
  480. package/message-box/message-box-footer-button/message-box-footer-button.component.d.ts +0 -12
  481. package/micro-process-flow/components/micro-process-flow/deprecated-micro-process-flow-content-density.directive.d.ts +0 -8
  482. package/multi-input/deprecated-multi-input-compact.directive.d.ts +0 -8
  483. package/nested-list/deprecated-nested-list-compact.directive.d.ts +0 -8
  484. package/pagination/deprecated-pagination-compact.directive.d.ts +0 -8
  485. package/panel/deprecated-panel-compact.directive.d.ts +0 -8
  486. package/radio/deprecated-radio-button-compact.directive.d.ts +0 -8
  487. package/select/deprecated-select-compact.directive.d.ts +0 -8
  488. package/shellbar/deprecated-shellbar-compact.directive.d.ts +0 -8
  489. package/slider/deprecated-slider-cozy.directive.d.ts +0 -8
  490. package/split-button/deprecated-split-button-compact.directive.d.ts +0 -8
  491. package/step-input/deprecated-step-input-compact.directive.d.ts +0 -8
  492. package/switch/deprecated-switch-compact.directive.d.ts +0 -8
  493. package/table/deprecated-table-compact.directive.d.ts +0 -8
  494. package/table/deprecated-table-condensed.directive.d.ts +0 -8
  495. package/tabs/deprecated-tabs-compact.directive.d.ts +0 -8
  496. package/time/deprecated-time-content-density.directive.d.ts +0 -8
  497. package/time/i18n/time-i18n.d.ts +0 -42
  498. package/time-picker/deprecated-timepicker-compact.directive.d.ts +0 -8
  499. package/token/deprecated-tokenizer-content-density.directive.d.ts +0 -8
  500. package/wizard/deprecated-wizard-compact.directive.d.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-tree.mjs","sources":["../../../../libs/core/src/lib/tree/data-source/tree-data-source.ts","../../../../libs/core/src/lib/tree/data-source/tree-data-source-parser.ts","../../../../libs/core/src/lib/tree/directives/tree-item-def.directive.ts","../../../../libs/core/src/lib/tree/directives/tree-item.directive.ts","../../../../libs/core/src/lib/tree/models/base-tree-item.class.ts","../../../../libs/core/src/lib/tree/tree.service.ts","../../../../libs/core/src/lib/tree/tree.component.ts","../../../../libs/core/src/lib/tree/tree.component.html","../../../../libs/core/src/lib/tree/components/tree-item/tree-item.component.ts","../../../../libs/core/src/lib/tree/components/tree-item/tree-item.component.html","../../../../libs/core/src/lib/tree/directives/tree-item-icon.directive.ts","../../../../libs/core/src/lib/tree/directives/tree-item-button.directive.ts","../../../../libs/core/src/lib/tree/tree.module.ts","../../../../libs/core/src/lib/tree/tokens.ts","../../../../libs/core/src/lib/tree/fundamental-ngx-core-tree.ts"],"sourcesContent":["import { AbstractDataProvider, BaseDataSource, DataProvider } from '@fundamental-ngx/cdk/data-source';\nimport { Observable } from 'rxjs';\n\nexport class FdTreeDataSource<T> extends BaseDataSource<T> {\n /** @hidden */\n limitless = true;\n /** @hidden */\n constructor(public dataProvider: AbstractDataProvider<T>) {\n super(dataProvider);\n }\n}\n\nexport class ArrayTreeDataSource<T> extends FdTreeDataSource<T> {\n /** @hidden */\n constructor(data: T[]) {\n super(new DataProvider(data));\n }\n}\n\nexport class ObservableTreeDataSource<T> extends FdTreeDataSource<T> {\n /** @hidden */\n constructor(data: Observable<T[]>) {\n super(new DataProvider(data));\n }\n}\n\n/**\n * Type of acceptable objects as a datasource for the Multi-Combo Box component.\n */\nexport type FdTreeAcceptableDataSource<T = any> = FdTreeDataSource<T> | Observable<T[]> | T[];\nexport type FdTreeItemType<Type extends FdTreeAcceptableDataSource> = Type extends BaseDataSource<infer X>\n ? X\n : Type extends Array<infer X>\n ? X\n : Type extends Observable<infer X>\n ? X extends Array<infer V>\n ? V\n : X\n : Type;\n","import { DataSourceParser, isDataSource } from '@fundamental-ngx/cdk/data-source';\nimport { isObservable } from 'rxjs';\nimport {\n ArrayTreeDataSource,\n FdTreeAcceptableDataSource,\n FdTreeDataSource,\n ObservableTreeDataSource\n} from './tree-data-source';\n\nexport class TreeDataSourceParser<T> implements DataSourceParser<T, FdTreeDataSource<T>> {\n /**\n * Transforms plain array or observable into DataSource class.\n * @param source\n */\n parse(source: FdTreeAcceptableDataSource<T>): FdTreeDataSource<T> | undefined {\n if (isDataSource(source)) {\n return source as FdTreeDataSource<T>;\n }\n\n if (Array.isArray(source)) {\n return new ArrayTreeDataSource<T>(source);\n }\n\n if (isObservable(source)) {\n return new ObservableTreeDataSource<T>(source);\n }\n\n return undefined;\n }\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { TreeItem } from '../models/tree-item';\nimport { TreeItemDefContext } from '../models/tree-item-def-context';\n\n@Directive({\n selector: '[fdTreeItemDef]'\n})\nexport class TreeItemDefDirective<T extends TreeItem = TreeItem> {\n /**\n * @hidden\n * Used for type support.\n */\n @Input()\n fdTreeItemDefAs: T;\n /** @hidden */\n static ngTemplateContextGuard(dir: TreeItemDefDirective, ctx: TreeItemDefContext): ctx is TreeItemDefContext {\n return true;\n }\n\n /** @hidden */\n constructor(public templateRef: TemplateRef<TreeItemDefContext<T>>) {}\n}\n","import { Directive, Injector, OnDestroy } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BaseTreeItem } from '../models/base-tree-item.class';\nimport { TreeItem } from '../models/tree-item';\n\n@Directive({\n selector: '[fdTreeItem]',\n exportAs: 'fdTreeItem'\n})\nexport class TreeItemDirective<T extends TreeItem, P> implements OnDestroy {\n /** Tree item component instance. */\n treeItem: Nullable<BaseTreeItem<T, P>>;\n\n /** Injector to be used in a tree item component, to resolve a tree item directive. */\n readonly injector: Injector;\n\n /** @hidden */\n constructor(injector: Injector) {\n this.injector = Injector.create({ providers: [], parent: injector });\n }\n\n /** Sets tree item. */\n setTreeItem(item: Nullable<BaseTreeItem<T, P>>): void {\n this.treeItem = item;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.treeItem = null;\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { Nullable, SelectableItemToken } from '@fundamental-ngx/cdk/utils';\nimport { FdTreeAcceptableDataSource } from '../data-source/tree-data-source';\nimport { TreeItem, TreeItemState } from './tree-item';\n\n@Directive()\nexport abstract class BaseTreeItem<T extends TreeItem = TreeItem, P = any>\n implements Partial<SelectableItemToken<HTMLElement, P>>\n{\n /**\n * Tree item value.\n */\n abstract value: P;\n /**\n * Tree item ID.\n */\n abstract id: string;\n\n /**\n * Tree item parent ID.\n */\n abstract parentId: Nullable<string>;\n\n /**\n * Whether the tree item is navigatable.\n */\n abstract navigatable: boolean;\n\n /**\n * Tree item state.\n */\n abstract state: Nullable<TreeItemState>;\n\n /**\n * Tree item child nodes data source.\n */\n abstract childNodes: FdTreeAcceptableDataSource<T>;\n\n /**\n * Whether to wrap content.\n */\n abstract wrapContent: boolean;\n\n /**\n * Whether the tree item is expanded.\n */\n abstract expanded: boolean;\n\n /**\n * Tree item level.\n */\n abstract level: number;\n\n /**\n * Tree item children.\n */\n abstract children: T[];\n\n /**\n * Whether the tree item has content projected child nodes.\n */\n abstract hasProjectedChildren: boolean;\n\n /**\n * Whether the tree item has content projected child nodes or data source for children.\n */\n abstract hasChildren: boolean;\n\n /**\n * Focusable tree item container.\n */\n abstract itemContainer: Nullable<ElementRef>;\n\n /**\n * Whether the tree item is keyboard navigatable.\n */\n abstract keyboardAccessible: boolean;\n\n /**\n * Tree item selectable item.\n */\n abstract selectableListItem: SelectableItemToken;\n\n /**\n * Whether the tree item has Data Source children.\n */\n abstract hasDsChildren: boolean;\n\n /**\n * Whether the children nodes being loaded from the Data Source.\n */\n abstract childrenLoaded: boolean;\n\n abstract elementRef: ElementRef;\n\n /** Method to focus on the tree item. */\n abstract focus(): void;\n\n /** Method to set the position of the item in set. */\n abstract setPosition(totalItemsCount: number, currentIndex: number): void;\n\n /** Method for setting the focusable tabindex. */\n abstract setContainerTabIndex(value: number): void;\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Nullable, uuidv4 } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { BaseTreeItem } from './models/base-tree-item.class';\nimport { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\nimport { TreeItemDefContext } from './models/tree-item-def-context';\n\nexport interface SelectionModeModel {\n mode: SelectionType;\n placement: SelectionPlacement;\n}\n\n@Injectable()\nexport class TreeService {\n /** Tree item template ref. */\n treeItemTemplateRef: Nullable<TemplateRef<TreeItemDefContext>>;\n\n /** Currently focused tree item. */\n focusedTreeItem: Nullable<BaseTreeItem>;\n\n /** Current expanded level. */\n get expandedLevel(): Observable<number | undefined> {\n return this._expandedLevel.asObservable();\n }\n\n /** Tree selection mode. */\n get selectionMode(): Observable<SelectionModeModel> {\n return this._selectionMode$.asObservable();\n }\n\n /** Whether to show navigation indicator. */\n get navigationIndicator(): Observable<boolean> {\n return this._navigationIndicator$.asObservable();\n }\n\n /** @hidden */\n private readonly _expandableItems = new Map<number, { [key: string]: boolean }>();\n\n /** @hidden */\n private readonly _selectionMode$ = new BehaviorSubject<SelectionModeModel>({ mode: 'none', placement: 'none' });\n\n /** @hidden */\n private readonly _expandedLevel = new BehaviorSubject<number | undefined>(undefined);\n\n /** @hidden */\n private readonly _navigationIndicator$ = new BehaviorSubject<boolean>(false);\n\n /**\n * @hidden\n */\n readonly detectChanges = new Subject<void>();\n\n /** Sets whether the navigation indicator should be visible. */\n setNavigationIndicator(value: boolean): void {\n this._navigationIndicator$.next(value);\n }\n\n /** @hidden */\n normalizeTreeItems<T extends TreeItem = TreeItem>(\n items: Nullable<T[]>,\n parentId: string | null = null,\n level = 1\n ): TreeItem<TreeItemGeneric<T>>[] {\n if (!items) {\n return [];\n }\n return [...items].map((item: T) => ({\n ...item,\n ...{\n level,\n parentId,\n renderer: this.treeItemTemplateRef,\n id: item.id || uuidv4()\n }\n }));\n }\n\n /**\n * Adds expandable item to the object of expandable items.\n * @param id\n * @param level\n */\n addExpandableItem(id: string, level: number, expanded: boolean): void {\n const levelCollection = this._expandableItems.get(level) || {};\n levelCollection[id] = expanded;\n this._expandableItems.set(level, levelCollection);\n this._emitNewExpandedLevel();\n }\n\n /**\n * Removes expandable item from the object of expandable items.\n * @param id\n * @param level\n */\n removeExpandableItem(id: string, level: number): void {\n const levelCollection = this._expandableItems.get(level) || {};\n delete levelCollection[id];\n this._expandableItems.set(level, levelCollection);\n this._emitNewExpandedLevel();\n }\n\n /**\n * Sets selection mode and it's placement.\n * @param mode Selection mode.\n * @param placement Selection control placement.\n */\n setSelectionMode(mode: SelectionType, placement: SelectionPlacement): void {\n this._selectionMode$.next({ mode, placement });\n }\n\n /** @hidden */\n private _emitNewExpandedLevel(): void {\n // We need to go from level 1 to deeper level since level 4 may be expanded, yet level 2 not.\n const levels = Array.from(this._expandableItems.keys()).sort();\n let lastLevel: number | undefined;\n\n for (const level of levels) {\n const levelExpandableItems = this._expandableItems.get(level)!;\n\n if (Object.values(levelExpandableItems).every((v) => !v)) {\n break;\n }\n\n lastLevel = level;\n }\n\n this._expandedLevel.next(lastLevel);\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { DataSourceDirective, FD_DATA_SOURCE_TRANSFORMER } from '@fundamental-ngx/cdk/data-source';\nimport { CvaDirective } from '@fundamental-ngx/cdk/forms';\nimport {\n applyCssClass,\n CssClassBuilder,\n KeyUtil,\n Nullable,\n RtlService,\n SelectableListValueType,\n SelectComponentRootToken,\n SelectionService\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { distinctUntilChanged, filter, fromEvent, startWith, Subscription, switchMap } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource, FdTreeItemType } from './data-source/tree-data-source';\nimport { TreeDataSourceParser } from './data-source/tree-data-source-parser';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { BaseTreeItem } from './models/base-tree-item.class';\nimport { TreeService } from './tree.service';\nimport { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'fd-tree',\n templateUrl: './tree.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tree.component.scss'],\n hostDirectives: [\n {\n directive: DataSourceDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['dataSource'],\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['dataChanged']\n },\n {\n directive: CvaDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['name', 'id', 'state', 'stateMessage', 'disabled', 'readonly']\n }\n ],\n host: {\n role: 'tree'\n },\n providers: [\n contentDensityObserverProviders(),\n TreeService,\n SelectionService,\n {\n provide: FD_DATA_SOURCE_TRANSFORMER,\n useClass: TreeDataSourceParser\n }\n ]\n})\nexport class TreeComponent<P extends FdTreeAcceptableDataSource, T extends TreeItem = FdTreeItemType<P>>\n implements CssClassBuilder, OnInit, OnChanges, AfterViewInit, SelectComponentRootToken, OnDestroy\n{\n /** @hidden */\n @Input()\n class: string;\n\n /**\n * Whether the tree should be borderless.\n */\n @Input()\n noBorder = false;\n\n /** Type of tree items selection. */\n @Input()\n selection: SelectionType = 'none';\n\n /** Placement of the selection control. */\n @Input()\n selectionPlacement: SelectionPlacement = 'none';\n\n /**\n * Whether the sections should be dependent for selection mode.\n * If true, selection control will shift, according to the level.\n * If false, selection control will stay on the same place ignoring the item level.\n */\n @Input()\n independentSections = false;\n\n /**\n * Whether the Tree component has navigation indicators.\n */\n @Input()\n set navigationIndicator(value: boolean) {\n if (value === this._navigationIndicator) {\n return;\n }\n this._navigationIndicator = value;\n this._treeService.setNavigationIndicator(value);\n }\n\n get navigationIndicator(): boolean {\n return this._navigationIndicator;\n }\n\n /** @hidden */\n private _navigationIndicator = false;\n\n /** Event emitted when data loading is started. */\n @Output()\n dataRequested = new EventEmitter<boolean>();\n\n /** Event emitted when data loading is finished. */\n @Output()\n dataReceived = new EventEmitter<boolean>();\n\n /** Event emitted when selected state changed. */\n @Output()\n selectedChange = new EventEmitter<any>();\n\n /** @hidden */\n _items: TreeItem<TreeItemGeneric<T>>[] = [];\n\n /** Tree item template definition. */\n @ContentChild(TreeItemDefDirective)\n set treeItemDef(value: Nullable<TreeItemDefDirective>) {\n this._treeItemDef = value;\n // Set new renderer\n this._treeService.treeItemTemplateRef = value?.templateRef;\n this._items = this._treeService.normalizeTreeItems(this._items);\n }\n\n get treeItemDef(): Nullable<TreeItemDefDirective> {\n return this._treeItemDef;\n }\n\n /** @hidden */\n get multiple(): BooleanInput {\n return this.selection === 'multiple';\n }\n\n /** @hidden */\n get toggle(): BooleanInput {\n return true;\n }\n\n /**\n * @hidden\n * Used for skeleton to appear before first meaningful data being loaded.\n */\n _initialDataLoaded = false;\n\n /** @hidden */\n @ViewChildren(TreeItemDirective)\n _treeItemDirectives: QueryList<TreeItemDirective<TreeItem, any>>;\n\n /** @hidden */\n @ContentChildren(BaseTreeItem, { descendants: true })\n readonly _projectedTreeItems: QueryList<BaseTreeItem>;\n\n /** @hidden */\n private _treeItemDef: Nullable<TreeItemDefDirective>;\n\n /** @hidden */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n /** @hidden */\n private readonly _dataSourceDirective = inject<DataSourceDirective<T, FdTreeDataSource<T>>>(DataSourceDirective);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n public readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _treeService = inject(TreeService);\n\n /** @hidden */\n private readonly _selectionService = inject(SelectionService);\n\n /** @hidden */\n private readonly _rtl = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private readonly _cvaDirective = inject(CvaDirective);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _dsSubscription: Subscription | null = null;\n\n /** @hidden */\n private _expandedLevel: number | undefined;\n\n /** @hidden */\n private _focusKeyManager: FocusKeyManager<BaseTreeItem>;\n\n /**\n * @hidden\n * Sorted tree item components.\n */\n private _sortedTreeItems: BaseTreeItem[] = [];\n\n /**\n * @hidden\n * All tree item components.\n */\n private _allItems: BaseTreeItem[] = [];\n\n /** @hidden */\n private _eventSub: Subscription;\n\n /** @hidden */\n private _selectionSub: Subscription | undefined;\n\n /** @hidden */\n constructor() {\n this._selectionService.registerRootComponent(this);\n this._contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._openDataStream();\n this.buildComponentCssClass();\n\n this._treeService.expandedLevel\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))\n .subscribe((level) => {\n this._expandedLevel = level;\n this.buildComponentCssClass();\n this._cdr.detectChanges();\n });\n\n this._treeService.detectChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._cdr.detectChanges();\n });\n\n if (this.selection !== 'none') {\n this._selectionService.setValue(this._cvaDirective.value);\n\n this._cvaDirective.ngControl?.valueChanges?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._selectionService.setValue(this._cvaDirective.value);\n });\n }\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this.buildComponentCssClass();\n\n if ('selection' in changes || 'selectionPlacement' in changes) {\n this._treeService.setSelectionMode(this.selection, this.selectionPlacement);\n this._setSelectionListener();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenToTreeItemsChanges();\n this._listenToTreeItemDirectiveChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._dsSubscription?.unsubscribe();\n this._eventSub?.unsubscribe();\n this._selectionSub?.unsubscribe();\n }\n\n /** @hidden */\n private _setSelectionListener(): void {\n this._selectionSub?.unsubscribe();\n if (this.selection !== 'none') {\n this._selectionService.setValue(this._cvaDirective.value);\n\n this._selectionSub = this._cvaDirective.ngControl?.valueChanges\n ?.pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._selectionService.setValue(this._cvaDirective.value);\n });\n }\n }\n\n /** @hidden */\n private _listenToTreeItemDirectiveChanges(): void {\n this._treeItemDirectives.changes\n .pipe(\n startWith(null),\n filter(() => this.treeItemDef !== undefined),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._allItems = this._treeItemDirectives.toArray().map((item) => item.treeItem!);\n const flattenedItems = this._sortTreeItems(this._allItems);\n this._setFlattenedItems(flattenedItems);\n });\n }\n\n /** @hidden */\n private _listenToTreeItemsChanges(): void {\n this._projectedTreeItems.changes\n .pipe(\n startWith(null),\n filter(() => !this.treeItemDef),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._allItems = this._projectedTreeItems.toArray();\n const flattenedItems = this._sortTreeItems(this._allItems);\n this._setFlattenedItems(flattenedItems);\n });\n }\n\n /** @hidden */\n private _setFlattenedItems(items: BaseTreeItem[]): void {\n this._sortedTreeItems = items;\n\n const activeItem = this._focusKeyManager?.activeItem;\n const newActiveItemIndex = items.findIndex((item) => item === activeItem);\n this._focusKeyManager?.destroy();\n\n this._focusKeyManager = new FocusKeyManager(items)\n .withVerticalOrientation(true)\n .skipPredicate((item) => !item.keyboardAccessible);\n\n if (newActiveItemIndex > -1) {\n this._focusKeyManager.setActiveItem(newActiveItemIndex);\n }\n\n this._selectionService.initialize(this._sortedTreeItems.map((item) => item.selectableListItem));\n\n this._setupEventListeners();\n }\n\n /** @hidden */\n _onItemFocused(treeItem: BaseTreeItem): void {\n let focusedIndex = -1;\n this._sortedTreeItems.forEach((item, index) => {\n const isFocused = treeItem === item;\n item.setContainerTabIndex(isFocused ? 0 : -1);\n if (isFocused) {\n focusedIndex = index;\n }\n });\n\n if (focusedIndex === -1) {\n return;\n }\n\n this._focusKeyManager.setActiveItem(focusedIndex);\n }\n\n /** @hidden */\n private _setupEventListeners(): void {\n this._eventSub?.unsubscribe();\n this._eventSub = new Subscription();\n\n this._sortedTreeItems.forEach((item) => {\n this._eventSub.add(\n fromEvent<KeyboardEvent>(item.elementRef.nativeElement, 'keydown').subscribe((event) => {\n this._onItemKeyDown(event, item);\n })\n );\n this._eventSub.add(\n fromEvent(item.itemContainer?.nativeElement, 'focus').subscribe(() => {\n this._onItemFocused(item);\n })\n );\n });\n }\n\n /** @hidden */\n private _sortTreeItems(items: BaseTreeItem[]): BaseTreeItem[] {\n const components: BaseTreeItem[] = [];\n const rootItems = items.filter((item) => item.level === 1);\n\n rootItems.forEach((treeItem, index) => {\n treeItem.setPosition(rootItems.length, index + 1);\n });\n\n items.forEach((item) => {\n if (!item || components.includes(item)) {\n return;\n }\n\n components.push(item);\n\n if (item.children.length === 0) {\n return;\n }\n\n const childItems = this._sortTreeItems(this._allItems.filter((i) => i.parentId === item.id));\n\n childItems.forEach((treeItem, index) => {\n treeItem.setPosition(childItems.length, index + 1);\n });\n\n components.push(...childItems);\n });\n\n return components;\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class,\n this._expandedLevel ? `expanded-level-${this._expandedLevel}` : '',\n this.noBorder ? 'fd-tree--no-border' : '',\n this._items.length === 0 && this._initialDataLoaded ? 'fd-tree--no-data' : '',\n this.independentSections ? 'fd-tree--independent-multi-selection' : '',\n 'fd-tree'\n ];\n }\n\n /**\n * @hidden\n * Keyboard navigation\n * @param event Keyboard event.\n */\n @HostListener('keydown', ['$event'])\n private _onKeyUp(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n this._focusKeyManager?.onKeydown(event);\n }\n }\n\n /** @hidden */\n _onItemKeyDown(event: KeyboardEvent, treeItem: Nullable<BaseTreeItem>): void {\n if (!treeItem) {\n return;\n }\n\n const isRtl = !!this._rtl?.rtl.value;\n const expandKey = isRtl ? LEFT_ARROW : RIGHT_ARROW;\n const collapseKey = isRtl ? RIGHT_ARROW : LEFT_ARROW;\n\n if (KeyUtil.isKeyCode(event, expandKey) && (treeItem.hasDsChildren || treeItem.hasProjectedChildren)) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n\n this._expandTreeSection(treeItem);\n return;\n }\n\n if (KeyUtil.isKeyCode(event, collapseKey)) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n\n this._collapseTreeSection(treeItem);\n return;\n }\n }\n\n /** @hidden */\n _trackFn(index: number, item: TreeItem<TreeItemGeneric<T>>): string {\n return item.id;\n }\n\n /**\n * @hidden\n * Select list interface method implementation.\n * Sets value for control value accessor and emits it.\n * @param value value of the selection.\n */\n onChange(value: SelectableListValueType<any>): void {\n this._cvaDirective.setValue(value, true);\n }\n\n /** @hidden */\n private _expandTreeSection(treeItem: BaseTreeItem): void {\n if (treeItem.expanded) {\n // Shift focus on the first child item\n const itemIndex = this._sortedTreeItems.findIndex((item) => item.id === treeItem.id);\n const nextItem = this._sortedTreeItems[itemIndex + 1];\n if (nextItem?.parentId === treeItem.id) {\n this._focusKeyManager.setActiveItem(itemIndex + 1);\n }\n\n return;\n }\n\n treeItem.expanded = true;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _collapseTreeSection(treeItem: BaseTreeItem): void {\n if (!treeItem.expanded && treeItem.parentId) {\n const parentItemIndex = this._sortedTreeItems.findIndex((item) => item.id === treeItem.parentId);\n\n if (parentItemIndex > -1) {\n this._focusKeyManager.setActiveItem(parentItemIndex);\n return;\n }\n }\n treeItem.expanded = false;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _openDataStream(): void {\n this._dsSubscription?.unsubscribe();\n this._dsSubscription = new Subscription();\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataRequested.subscribe(this.dataRequested)\n );\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataReceived.subscribe(this.dataReceived)\n );\n\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataReceived\n .pipe(\n filter((received) => received),\n switchMap(() => this._dataSourceDirective.dataChanged$)\n )\n .subscribe((data) => {\n this._initialDataLoaded = true;\n this._items = this._treeService.normalizeTreeItems(data);\n this.buildComponentCssClass();\n\n this._cdr.markForCheck();\n })\n );\n\n this._dataSourceDirective.dataSourceProvider?.match();\n }\n}\n","<ng-template #dataSourceRenderer>\n <ng-template\n [ngTemplateOutlet]=\"!_initialDataLoaded ? loadingRenderer : dataLoadedTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: 1 }\"\n ></ng-template>\n\n <ng-template #loadingRenderer let-level>\n <div *fdkRepeat=\"5\" role=\"treeitem\" [attr.aria-level]=\"level\" class=\"fd-tree__item\">\n <div class=\"fd-tree__item-container\">\n <div class=\"fd-tree__content\">\n <span class=\"fd-tree__text\">\n <fd-skeleton type=\"text\" width=\"100px\" textLines=\"1\"></fd-skeleton>\n </span>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template #dataLoadedTpl>\n <ng-container *ngIf=\"_items.length > 0 && treeItemDef; else noDataTpl\">\n <ng-container *ngFor=\"let item of _items; trackBy: _trackFn\">\n <ng-template\n [ngTemplateOutlet]=\"renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template #renderer let-item>\n <ng-container fdTreeItem fdkSelectableItem #treeItemDirective=\"fdTreeItem\">\n <ng-template\n [ngTemplateOutlet]=\"item.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"treeItemDirective.injector\"\n ></ng-template>\n </ng-container>\n <ng-container\n *ngIf=\"\n treeItemDirective.treeItem?.hasDsChildren &&\n !!treeItemDirective.treeItem?.expanded &&\n !treeItemDirective.treeItem?.childrenLoaded\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"loadingRenderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item.level + 1 }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"treeItemDirective.treeItem?.children as childItems\">\n <div class=\"fd-tree\" *ngIf=\"childItems && childItems.length > 0 && !!treeItemDirective?.treeItem?.expanded\">\n <ng-container *ngFor=\"let child of childItems; trackBy: _trackFn\">\n <ng-template\n [ngTemplateOutlet]=\"renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-template>\n </ng-container>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #noDataTpl>\n <div role=\"treeitem\" aria-level=\"1\" class=\"fd-tree__item\">\n <div class=\"fd-tree__item-container\">\n <div class=\"fd-tree__content\">\n <span class=\"fd-tree__text\">{{ 'coreTree.noData' | fdTranslate }}</span>\n </div>\n </div>\n </div>\n </ng-template>\n</ng-template>\n<ng-template #projectedContentRenderer>\n <ng-content select=\"fd-tree-item\"></ng-content>\n</ng-template>\n\n<ng-template [ngTemplateOutlet]=\"treeItemDef ? dataSourceRenderer : projectedContentRenderer\"></ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { DataSource, DataSourceDirective } from '@fundamental-ngx/cdk/data-source';\nimport {\n FDK_SELECTABLE_ITEM_PROVIDER,\n Nullable,\n SelectableItemDirective,\n SelectableItemToken,\n uuidv4\n} from '@fundamental-ngx/cdk/utils';\nimport { distinctUntilChanged, filter, startWith, Subject, switchMap } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource } from '../../data-source/tree-data-source';\nimport { TreeItem, TreeItemState } from '../../models/tree-item';\nimport { SelectionModeModel, TreeService } from '../../tree.service';\nimport { BaseTreeItem } from '../../models/base-tree-item.class';\nimport { TreeItemDirective } from '../../directives/tree-item.directive';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'fd-tree-item',\n templateUrl: './tree-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [DataSourceDirective],\n host: {\n class: 'fd-tree__item',\n role: 'presentation'\n },\n providers: [\n {\n provide: FDK_SELECTABLE_ITEM_PROVIDER,\n useExisting: TreeItemComponent\n },\n {\n provide: BaseTreeItem,\n useExisting: TreeItemComponent\n }\n ]\n})\nexport class TreeItemComponent<T extends TreeItem = TreeItem, P = any>\n extends BaseTreeItem<T, P>\n implements Partial<SelectableItemToken<HTMLElement, P>>, OnInit, AfterViewInit, OnDestroy\n{\n /**\n * Tree item value.\n */\n @Input()\n value: P;\n /**\n * Tree item ID.\n */\n @Input()\n id = uuidv4();\n\n /**\n * Tree item aria label.\n */\n @HostBinding('attr.aria-label')\n @Input()\n ariaLabel: string;\n\n /**\n * Tree item parent ID.\n */\n @Input()\n set parentId(value: Nullable<string>) {\n this._parentId = value;\n }\n\n get parentId(): Nullable<string> {\n return this._parentId || this._parentTreeItem?.id;\n }\n\n /**\n * Whether the tree item is navigatable.\n */\n @Input()\n navigatable = false;\n\n /**\n * Tree item state.\n */\n @Input()\n state: Nullable<TreeItemState>;\n\n /**\n * Tree item child nodes data source.\n */\n @Input()\n childNodes: FdTreeAcceptableDataSource<T> = [];\n\n /**\n * Whether to wrap content.\n */\n @Input()\n wrapContent = false;\n\n /**\n * Tree item level.\n */\n @Input()\n @HostBinding('attr.aria-level')\n set level(value: number) {\n this._level = value;\n }\n\n get level(): number {\n return this._level || (this._parentTreeItem !== null ? this._parentTreeItem.level + 1 : 1);\n }\n\n /**\n * Whether the tree item is expanded.\n */\n @Input()\n set expanded(value: boolean) {\n if (value === this._expanded) {\n return;\n }\n this._treeService.addExpandableItem(this.id, this.level, value);\n this._expanded = value;\n\n if (value) {\n setTimeout(() => {\n this._treeService.detectChanges.next();\n this._dataSourceDirective.dataSourceProvider?.match();\n });\n } else {\n this.children = [];\n this.childrenLoaded = false;\n this._treeService.detectChanges.next();\n }\n\n this._cdr.detectChanges();\n }\n\n get expanded(): boolean {\n return this._expanded;\n }\n\n /**\n * Event emitted when user clicks on tree item.\n */\n @Output()\n readonly treeItemClick = new EventEmitter<MouseEvent | KeyboardEvent>();\n\n /**\n * Event emitted when `expanded` state changes.\n */\n @Output()\n expandedChange = new EventEmitter<boolean>();\n\n /** Tree item focusable container. */\n @ViewChild('itemContainer', { read: ElementRef })\n itemContainer: Nullable<ElementRef<HTMLElement>>;\n\n /** Selectable item. */\n @ViewChild(SelectableItemDirective)\n selectableListItem: SelectableItemToken;\n\n /** @hidden */\n @ContentChildren(BaseTreeItem)\n _projectedTreeItems: QueryList<BaseTreeItem>;\n\n /**\n * @hidden\n * Whether the tree item should have a navigation indicator.\n */\n _navigationIndicator = false;\n\n /**\n * @hidden\n * Selection state.\n */\n _selectionState = false;\n\n /** @hidden */\n children: T[] = [];\n\n /** @hidden */\n childrenLoaded = false;\n\n /** @hidden */\n _selectionModel: Nullable<SelectionModeModel>;\n\n /** @Hidden */\n _containerTabIndex = 0;\n\n /** @hidden */\n _setSize: number;\n /** @hidden */\n _currentPosition: number;\n\n /** @hidden */\n _totalChildrenLoaded = false;\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n private _parentId: Nullable<string>;\n\n /** @hidden */\n private _level: number;\n\n /** @hidden */\n private _expanded = false;\n\n /** Whether the tree item has any type of child nodes. */\n get hasChildren(): boolean {\n return !!this.childNodes || this.hasProjectedChildren;\n }\n\n /** Whether the tree item has content-projected child nodes. */\n get hasProjectedChildren(): boolean {\n return this._projectedTreeItems && this._projectedTreeItems.length > 0;\n }\n\n /** Whether the tree item has data source children. */\n get hasDsChildren(): boolean {\n return this._dsChildrenNumber > 0;\n }\n\n /** Whether the item is accessible via keyboard. */\n get keyboardAccessible(): boolean {\n return this._parentTreeItem === null\n ? true\n : this._parentTreeItem.keyboardAccessible && this._parentTreeItem.expanded;\n }\n\n /** @hidden */\n private _dsChildrenNumber = 0;\n\n /** @hidden */\n private readonly _clicked$ = new Subject<MouseEvent | KeyboardEvent>();\n\n /** Clicked behavior implementation. */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n clicked = this._clicked$.asObservable();\n\n /** @hidden */\n private readonly _treeItemDir = inject<TreeItemDirective<T, P>>(TreeItemDirective, {\n optional: true\n });\n\n /** @hidden */\n private readonly _treeService = inject(TreeService);\n\n /** @hidden */\n private readonly _dataSourceDirective = inject<DataSourceDirective<T, FdTreeDataSource<T>>>(DataSourceDirective);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _parentTreeItem = inject(TreeItemComponent, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n constructor() {\n super();\n this._treeItemDir?.setTreeItem(this);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._treeService.selectionMode.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((model) => {\n this._selectionModel = model;\n this._cdr.detectChanges();\n });\n\n this._treeService.navigationIndicator.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((value) => {\n this._navigationIndicator = value;\n this._cdr.detectChanges();\n });\n\n this._dataSourceDirective.dataSource = this.childNodes as DataSource<T, FdTreeDataSource<T>>;\n this._treeService.addExpandableItem(this.id, this.level, this.expanded);\n\n this._dataSourceDirective.dataSourceProvider\n ?.getTotalItems()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((totalItems) => {\n this._dsChildrenNumber = totalItems;\n this._totalChildrenLoaded = true;\n this._cdr.detectChanges();\n });\n\n this._dataSourceDirective.dataSourceProvider?.dataReceived\n .pipe(\n filter((received) => received),\n switchMap(() => this._dataSourceDirective.dataChanged$),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((data) => {\n this.children = this._treeService.normalizeTreeItems(data, this.id, this.level + 1) as T[];\n this.childrenLoaded = true;\n setTimeout(() => {\n this._treeService.detectChanges.next();\n this._cdr.detectChanges();\n });\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._projectedTreeItems.changes\n .pipe(startWith(null), distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._cdr.detectChanges();\n this._projectedTreeItems.forEach((treeItem, index) => {\n treeItem.setPosition(this._projectedTreeItems.length, index + 1);\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._treeService.removeExpandableItem(this.id, this.level!);\n }\n\n /**\n * Sets position of the current item in the set.\n * @param totalItems Total items amount in the set.\n * @param currentIndex Current item position in the set.\n */\n setPosition(totalItems: number, currentIndex: number): void {\n this._setSize = totalItems;\n this._currentPosition = currentIndex;\n }\n\n /** Method to focus on the tree item. */\n focus(): void {\n this.itemContainer?.nativeElement.focus();\n }\n\n /** Method for setting the focusable tabindex. */\n setContainerTabIndex(value: number): void {\n this._containerTabIndex = value;\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _toggleExpandState(event: MouseEvent): void {\n // Do not bubble up to selection change event.\n event.stopImmediatePropagation();\n this.expanded = !this.expanded;\n this.expandedChange.emit(this.expanded);\n this.focus();\n }\n\n /** @hidden */\n _onClick(event: MouseEvent | KeyboardEvent): void {\n event.stopImmediatePropagation();\n\n this._clicked$.next(event);\n this.treeItemClick.emit(event);\n }\n\n /** @hidden */\n _setSelected(selected: boolean): void {\n this._selectionState = selected;\n }\n}\n","<div\n class=\"fd-tree__item-container\"\n [attr.tabindex]=\"_containerTabIndex\"\n (fdkClicked)=\"_onClick($event)\"\n fdkSelectableItem\n (selected)=\"_setSelected($event)\"\n [value]=\"value\"\n [attr.aria-haspopup]=\"children.length > 0 || hasProjectedChildren\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-setsize]=\"_setSize\"\n [attr.aria-posinset]=\"_currentPosition\"\n role=\"treeitem\"\n [attr.aria-level]=\"level\"\n #itemContainer\n [ngClass]=\"[\n state ? 'has-highlight-indicator has-highlight-indicator--' + state : '',\n navigatable ? 'fd-tree__item-container--active' : '',\n wrapContent ? 'fd-tree__content--wrap' : ''\n ]\"\n>\n <ng-container *ngIf=\"_selectionModel?.placement === 'left'\">\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"hasChildren\">\n <span\n *ngIf=\"hasDsChildren || hasProjectedChildren\"\n (click)=\"_toggleExpandState($event)\"\n class=\"fd-tree__expander\"\n aria-hidden=\"true\"\n role=\"presentation\"\n [attr.aria-label]=\"(expanded ? 'coreTree.collapse' : 'coreTree.expand') | fdTranslate\"\n [class.is-expanded]=\"expanded\"\n >\n <fd-icon\n class=\"fd-tree__icon\"\n [glyph]=\"expanded ? 'navigation-down-arrow' : 'navigation-right-arrow'\"\n ></fd-icon>\n </span>\n <div class=\"fd-tree__expander fd-tree__expander--loading\" *ngIf=\"!_totalChildrenLoaded\">\n <fd-skeleton type=\"rectangle\" width=\"1rem\" height=\"1rem\"></fd-skeleton>\n </div>\n <ng-container *ngIf=\"_selectionModel?.placement === 'afterExpand'\">\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n </ng-container>\n </ng-container>\n <div class=\"fd-tree__content\">\n <ng-content select=\"[fdTreeItemIcon]\"></ng-content>\n <ng-content select=\"[fdTreeItemText]\"></ng-content>\n </div>\n <ng-content select=\"[fdTreeItemButton]\"></ng-content>\n <ng-container *ngIf=\"_selectionModel?.placement === 'right'\">\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n </ng-container>\n <fd-icon\n glyph=\"slim-arrow-right\"\n class=\"fd-tree__icon fd-tree__icon--navigation\"\n *ngIf=\"navigatable && _navigationIndicator\"\n ></fd-icon>\n</div>\n\n<ng-container *ngIf=\"hasProjectedChildren && expanded\">\n <div class=\"fd-tree\">\n <ng-content select=\"fd-tree-item\"></ng-content>\n </div>\n</ng-container>\n\n<ng-template #selection>\n <div class=\"fd-form-item\">\n <fd-checkbox\n [(ngModel)]=\"_selectionState\"\n [ngModelOptions]=\"{ standalone: true }\"\n [standalone]=\"true\"\n tabIndexValue=\"-1\"\n *ngIf=\"_selectionModel?.mode === 'multiple'\"\n ></fd-checkbox>\n <fd-radio-button\n [(ngModel)]=\"_selectionState\"\n [ngModelOptions]=\"{ standalone: true }\"\n [selectedValue]=\"_selectionState\"\n [value]=\"true\"\n tabIndex=\"-1\"\n [standalone]=\"true\"\n tabIndexValue=\"-1\"\n *ngIf=\"_selectionModel?.mode === 'single'\"\n ></fd-radio-button>\n </div>\n</ng-template>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemIcon]',\n host: {\n class: 'fd-tree__icon'\n }\n})\nexport class TreeItemIconDirective {\n /** @hidden */\n @HostBinding('attr.role')\n private readonly _role = 'presentation';\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n private readonly _ariaHidden = true;\n}\n\n@Directive({\n selector: '[fdTreeItemText]',\n host: {\n class: 'fd-tree__text'\n }\n})\nexport class TreeItemTextDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemButton]',\n host: {\n class: 'fd-tree__button'\n }\n})\nexport class TreeItemButtonDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ClickedBehaviorModule, RepeatDirective, SelectableItemDirective } from '@fundamental-ngx/cdk/utils';\nimport { CheckboxModule } from '@fundamental-ngx/core/checkbox';\nimport { RadioModule } from '@fundamental-ngx/core/radio';\nimport { SkeletonModule } from '@fundamental-ngx/core/skeleton';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { TreeComponent } from './tree.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { TreeItemComponent } from './components/tree-item/tree-item.component';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { TreeItemIconDirective, TreeItemTextDirective } from './directives/tree-item-icon.directive';\nimport { TreeItemButtonDirective } from './directives/tree-item-button.directive';\n\n@NgModule({\n declarations: [\n TreeComponent,\n TreeItemComponent,\n TreeItemDefDirective,\n TreeItemDirective,\n TreeItemIconDirective,\n TreeItemTextDirective,\n TreeItemButtonDirective\n ],\n imports: [\n CommonModule,\n ButtonModule,\n IconModule,\n PopoverModule,\n MenuModule,\n CheckboxModule,\n ClickedBehaviorModule.forRoot(),\n FormsModule,\n SelectableItemDirective,\n RadioModule,\n SkeletonModule,\n RepeatDirective,\n ReactiveFormsModule,\n I18nModule\n ],\n exports: [\n TreeComponent,\n TreeItemComponent,\n TreeItemDefDirective,\n TreeItemDirective,\n TreeItemIconDirective,\n TreeItemTextDirective,\n TreeItemButtonDirective\n ]\n})\nexport class TreeModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_TREE_ITEM = new InjectionToken('FdTreeItem');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i6.TreeItemDirective","i2","i3","i4","i5","i7","i8","i9"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-tree.mjs","sources":["../../../../libs/core/src/lib/tree/data-source/tree-data-source.ts","../../../../libs/core/src/lib/tree/data-source/tree-data-source-parser.ts","../../../../libs/core/src/lib/tree/directives/tree-item-def.directive.ts","../../../../libs/core/src/lib/tree/directives/tree-item.directive.ts","../../../../libs/core/src/lib/tree/models/base-tree-item.class.ts","../../../../libs/core/src/lib/tree/tree.service.ts","../../../../libs/core/src/lib/tree/tree.component.ts","../../../../libs/core/src/lib/tree/tree.component.html","../../../../libs/core/src/lib/tree/components/tree-item/tree-item.component.ts","../../../../libs/core/src/lib/tree/components/tree-item/tree-item.component.html","../../../../libs/core/src/lib/tree/directives/tree-item-icon.directive.ts","../../../../libs/core/src/lib/tree/directives/tree-item-button.directive.ts","../../../../libs/core/src/lib/tree/tree.module.ts","../../../../libs/core/src/lib/tree/tokens.ts","../../../../libs/core/src/lib/tree/fundamental-ngx-core-tree.ts"],"sourcesContent":["import { AbstractDataProvider, BaseDataSource, DataProvider } from '@fundamental-ngx/cdk/data-source';\nimport { Observable } from 'rxjs';\n\nexport class FdTreeDataSource<T> extends BaseDataSource<T> {\n /** @hidden */\n limitless = true;\n /** @hidden */\n constructor(public dataProvider: AbstractDataProvider<T>) {\n super(dataProvider);\n }\n}\n\nexport class ArrayTreeDataSource<T> extends FdTreeDataSource<T> {\n /** @hidden */\n constructor(data: T[]) {\n super(new DataProvider(data));\n }\n}\n\nexport class ObservableTreeDataSource<T> extends FdTreeDataSource<T> {\n /** @hidden */\n constructor(data: Observable<T[]>) {\n super(new DataProvider(data));\n }\n}\n\n/**\n * Type of acceptable objects as a datasource for the Multi-Combo Box component.\n */\nexport type FdTreeAcceptableDataSource<T = any> = FdTreeDataSource<T> | Observable<T[]> | T[];\nexport type FdTreeItemType<Type extends FdTreeAcceptableDataSource> = Type extends BaseDataSource<infer X>\n ? X\n : Type extends Array<infer X>\n ? X\n : Type extends Observable<infer X>\n ? X extends Array<infer V>\n ? V\n : X\n : Type;\n","import { DataSourceParser, isDataSource } from '@fundamental-ngx/cdk/data-source';\nimport { isObservable } from 'rxjs';\nimport {\n ArrayTreeDataSource,\n FdTreeAcceptableDataSource,\n FdTreeDataSource,\n ObservableTreeDataSource\n} from './tree-data-source';\n\nexport class TreeDataSourceParser<T> implements DataSourceParser<T, FdTreeDataSource<T>> {\n /**\n * Transforms plain array or observable into DataSource class.\n * @param source\n */\n parse(source: FdTreeAcceptableDataSource<T>): FdTreeDataSource<T> | undefined {\n if (isDataSource(source)) {\n return source as FdTreeDataSource<T>;\n }\n\n if (Array.isArray(source)) {\n return new ArrayTreeDataSource<T>(source);\n }\n\n if (isObservable(source)) {\n return new ObservableTreeDataSource<T>(source);\n }\n\n return undefined;\n }\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { TreeItem } from '../models/tree-item';\nimport { TreeItemDefContext } from '../models/tree-item-def-context';\n\n@Directive({\n selector: '[fdTreeItemDef]'\n})\nexport class TreeItemDefDirective<T extends TreeItem = TreeItem> {\n /**\n * @hidden\n * Used for type support.\n */\n @Input()\n fdTreeItemDefAs: T;\n /** @hidden */\n static ngTemplateContextGuard(dir: TreeItemDefDirective, ctx: TreeItemDefContext): ctx is TreeItemDefContext {\n return true;\n }\n\n /** @hidden */\n constructor(public templateRef: TemplateRef<TreeItemDefContext<T>>) {}\n}\n","import { Directive, Injector, OnDestroy } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BaseTreeItem } from '../models/base-tree-item.class';\nimport { TreeItem } from '../models/tree-item';\n\n@Directive({\n selector: '[fdTreeItem]',\n exportAs: 'fdTreeItem'\n})\nexport class TreeItemDirective<T extends TreeItem, P> implements OnDestroy {\n /** Tree item component instance. */\n treeItem: Nullable<BaseTreeItem<T, P>>;\n\n /** Injector to be used in a tree item component, to resolve a tree item directive. */\n readonly injector: Injector;\n\n /** @hidden */\n constructor(injector: Injector) {\n this.injector = Injector.create({ providers: [], parent: injector });\n }\n\n /** Sets tree item. */\n setTreeItem(item: Nullable<BaseTreeItem<T, P>>): void {\n this.treeItem = item;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.treeItem = null;\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { Nullable, SelectableItemToken } from '@fundamental-ngx/cdk/utils';\nimport { FdTreeAcceptableDataSource } from '../data-source/tree-data-source';\nimport { TreeItem, TreeItemState } from './tree-item';\n\n@Directive()\nexport abstract class BaseTreeItem<T extends TreeItem = TreeItem, P = any>\n implements Partial<SelectableItemToken<HTMLElement, P>>\n{\n /**\n * Tree item value.\n */\n abstract value: P;\n /**\n * Tree item ID.\n */\n abstract id: string;\n\n /**\n * Tree item parent ID.\n */\n abstract parentId: Nullable<string>;\n\n /**\n * Whether the tree item is navigatable.\n */\n abstract navigatable: boolean;\n\n /**\n * Tree item state.\n */\n abstract state: Nullable<TreeItemState>;\n\n /**\n * Tree item child nodes data source.\n */\n abstract childNodes: FdTreeAcceptableDataSource<T>;\n\n /**\n * Whether to wrap content.\n */\n abstract wrapContent: boolean;\n\n /**\n * Whether the tree item is expanded.\n */\n abstract expanded: boolean;\n\n /**\n * Tree item level.\n */\n abstract level: number;\n\n /**\n * Tree item children.\n */\n abstract children: T[];\n\n /**\n * Whether the tree item has content projected child nodes.\n */\n abstract hasProjectedChildren: boolean;\n\n /**\n * Whether the tree item has content projected child nodes or data source for children.\n */\n abstract hasChildren: boolean;\n\n /**\n * Focusable tree item container.\n */\n abstract itemContainer: Nullable<ElementRef>;\n\n /**\n * Whether the tree item is keyboard navigatable.\n */\n abstract keyboardAccessible: boolean;\n\n /**\n * Tree item selectable item.\n */\n abstract selectableListItem: SelectableItemToken;\n\n /**\n * Whether the tree item has Data Source children.\n */\n abstract hasDsChildren: boolean;\n\n /**\n * Whether the children nodes being loaded from the Data Source.\n */\n abstract childrenLoaded: boolean;\n\n abstract elementRef: ElementRef;\n\n /** Method to focus on the tree item. */\n abstract focus(): void;\n\n /** Method to set the position of the item in set. */\n abstract setPosition(totalItemsCount: number, currentIndex: number): void;\n\n /** Method for setting the focusable tabindex. */\n abstract setContainerTabIndex(value: number): void;\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Nullable, uuidv4 } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { BaseTreeItem } from './models/base-tree-item.class';\nimport { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\nimport { TreeItemDefContext } from './models/tree-item-def-context';\n\nexport interface SelectionModeModel {\n mode: SelectionType;\n placement: SelectionPlacement;\n}\n\n@Injectable()\nexport class TreeService {\n /** Tree item template ref. */\n treeItemTemplateRef: Nullable<TemplateRef<TreeItemDefContext>>;\n\n /** Currently focused tree item. */\n focusedTreeItem: Nullable<BaseTreeItem>;\n\n /** Current expanded level. */\n get expandedLevel(): Observable<number | undefined> {\n return this._expandedLevel.asObservable();\n }\n\n /** Tree selection mode. */\n get selectionMode(): Observable<SelectionModeModel> {\n return this._selectionMode$.asObservable();\n }\n\n /** Whether to show navigation indicator. */\n get navigationIndicator(): Observable<boolean> {\n return this._navigationIndicator$.asObservable();\n }\n\n /** @hidden */\n private readonly _expandableItems = new Map<number, { [key: string]: boolean }>();\n\n /** @hidden */\n private readonly _selectionMode$ = new BehaviorSubject<SelectionModeModel>({ mode: 'none', placement: 'none' });\n\n /** @hidden */\n private readonly _expandedLevel = new BehaviorSubject<number | undefined>(undefined);\n\n /** @hidden */\n private readonly _navigationIndicator$ = new BehaviorSubject<boolean>(false);\n\n /**\n * @hidden\n */\n readonly detectChanges = new Subject<void>();\n\n /** Sets whether the navigation indicator should be visible. */\n setNavigationIndicator(value: boolean): void {\n this._navigationIndicator$.next(value);\n }\n\n /** @hidden */\n normalizeTreeItems<T extends TreeItem = TreeItem>(\n items: Nullable<T[]>,\n parentId: string | null = null,\n level = 1\n ): TreeItem<TreeItemGeneric<T>>[] {\n if (!items) {\n return [];\n }\n return [...items].map((item: T) => ({\n ...item,\n ...{\n level,\n parentId,\n renderer: this.treeItemTemplateRef,\n id: item.id || uuidv4()\n }\n }));\n }\n\n /**\n * Adds expandable item to the object of expandable items.\n * @param id\n * @param level\n */\n addExpandableItem(id: string, level: number, expanded: boolean): void {\n const levelCollection = this._expandableItems.get(level) || {};\n levelCollection[id] = expanded;\n this._expandableItems.set(level, levelCollection);\n this._emitNewExpandedLevel();\n }\n\n /**\n * Removes expandable item from the object of expandable items.\n * @param id\n * @param level\n */\n removeExpandableItem(id: string, level: number): void {\n const levelCollection = this._expandableItems.get(level) || {};\n delete levelCollection[id];\n this._expandableItems.set(level, levelCollection);\n this._emitNewExpandedLevel();\n }\n\n /**\n * Sets selection mode and it's placement.\n * @param mode Selection mode.\n * @param placement Selection control placement.\n */\n setSelectionMode(mode: SelectionType, placement: SelectionPlacement): void {\n this._selectionMode$.next({ mode, placement });\n }\n\n /** @hidden */\n private _emitNewExpandedLevel(): void {\n // We need to go from level 1 to deeper level since level 4 may be expanded, yet level 2 not.\n const levels = Array.from(this._expandableItems.keys()).sort();\n let lastLevel: number | undefined;\n\n for (const level of levels) {\n const levelExpandableItems = this._expandableItems.get(level)!;\n\n if (Object.values(levelExpandableItems).every((v) => !v)) {\n break;\n }\n\n lastLevel = level;\n }\n\n this._expandedLevel.next(lastLevel);\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { DataSourceDirective, FD_DATA_SOURCE_TRANSFORMER } from '@fundamental-ngx/cdk/data-source';\nimport { CvaDirective } from '@fundamental-ngx/cdk/forms';\nimport {\n applyCssClass,\n CssClassBuilder,\n KeyUtil,\n Nullable,\n RtlService,\n SelectableListValueType,\n SelectComponentRootToken,\n SelectionService\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { distinctUntilChanged, filter, fromEvent, startWith, Subscription, switchMap } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource, FdTreeItemType } from './data-source/tree-data-source';\nimport { TreeDataSourceParser } from './data-source/tree-data-source-parser';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { BaseTreeItem } from './models/base-tree-item.class';\nimport { TreeService } from './tree.service';\nimport { SelectionPlacement, SelectionType } from './models/selection-type';\nimport { TreeItem, TreeItemGeneric } from './models/tree-item';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'fd-tree',\n templateUrl: './tree.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./tree.component.scss'],\n hostDirectives: [\n {\n directive: DataSourceDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['dataSource'],\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['dataChanged']\n },\n {\n directive: CvaDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['name', 'id', 'state', 'stateMessage', 'disabled', 'readonly']\n }\n ],\n host: {\n role: 'tree'\n },\n providers: [\n contentDensityObserverProviders(),\n TreeService,\n SelectionService,\n {\n provide: FD_DATA_SOURCE_TRANSFORMER,\n useClass: TreeDataSourceParser\n }\n ]\n})\nexport class TreeComponent<P extends FdTreeAcceptableDataSource, T extends TreeItem = FdTreeItemType<P>>\n implements CssClassBuilder, OnInit, OnChanges, AfterViewInit, SelectComponentRootToken, OnDestroy\n{\n /** @hidden */\n @Input()\n class: string;\n\n /**\n * Whether the tree should be borderless.\n */\n @Input()\n noBorder = false;\n\n /** Type of tree items selection. */\n @Input()\n selection: SelectionType = 'none';\n\n /** Placement of the selection control. */\n @Input()\n selectionPlacement: SelectionPlacement = 'none';\n\n /**\n * Whether the sections should be dependent for selection mode.\n * If true, selection control will shift, according to the level.\n * If false, selection control will stay on the same place ignoring the item level.\n */\n @Input()\n independentSections = false;\n\n /**\n * Whether the Tree component has navigation indicators.\n */\n @Input()\n set navigationIndicator(value: boolean) {\n if (value === this._navigationIndicator) {\n return;\n }\n this._navigationIndicator = value;\n this._treeService.setNavigationIndicator(value);\n }\n\n get navigationIndicator(): boolean {\n return this._navigationIndicator;\n }\n\n /** @hidden */\n private _navigationIndicator = false;\n\n /** Event emitted when data loading is started. */\n @Output()\n dataRequested = new EventEmitter<boolean>();\n\n /** Event emitted when data loading is finished. */\n @Output()\n dataReceived = new EventEmitter<boolean>();\n\n /** Event emitted when selected state changed. */\n @Output()\n selectedChange = new EventEmitter<any>();\n\n /** @hidden */\n _items: TreeItem<TreeItemGeneric<T>>[] = [];\n\n /** Tree item template definition. */\n @ContentChild(TreeItemDefDirective)\n set treeItemDef(value: Nullable<TreeItemDefDirective>) {\n this._treeItemDef = value;\n // Set new renderer\n this._treeService.treeItemTemplateRef = value?.templateRef;\n this._items = this._treeService.normalizeTreeItems(this._items);\n }\n\n get treeItemDef(): Nullable<TreeItemDefDirective> {\n return this._treeItemDef;\n }\n\n /** @hidden */\n get multiple(): BooleanInput {\n return this.selection === 'multiple';\n }\n\n /** @hidden */\n get toggle(): BooleanInput {\n return true;\n }\n\n /**\n * @hidden\n * Used for skeleton to appear before first meaningful data being loaded.\n */\n _initialDataLoaded = false;\n\n /** @hidden */\n @ViewChildren(TreeItemDirective)\n _treeItemDirectives: QueryList<TreeItemDirective<TreeItem, any>>;\n\n /** @hidden */\n @ContentChildren(BaseTreeItem, { descendants: true })\n readonly _projectedTreeItems: QueryList<BaseTreeItem>;\n\n /** @hidden */\n private _treeItemDef: Nullable<TreeItemDefDirective>;\n\n /** @hidden */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n /** @hidden */\n private readonly _dataSourceDirective = inject<DataSourceDirective<T, FdTreeDataSource<T>>>(DataSourceDirective);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n public readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _treeService = inject(TreeService);\n\n /** @hidden */\n private readonly _selectionService = inject(SelectionService);\n\n /** @hidden */\n private readonly _rtl = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private readonly _cvaDirective = inject(CvaDirective);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _dsSubscription: Subscription | null = null;\n\n /** @hidden */\n private _expandedLevel: number | undefined;\n\n /** @hidden */\n private _focusKeyManager: FocusKeyManager<BaseTreeItem>;\n\n /**\n * @hidden\n * Sorted tree item components.\n */\n private _sortedTreeItems: BaseTreeItem[] = [];\n\n /**\n * @hidden\n * All tree item components.\n */\n private _allItems: BaseTreeItem[] = [];\n\n /** @hidden */\n private _eventSub: Subscription;\n\n /** @hidden */\n private _selectionSub: Subscription | undefined;\n\n /** @hidden */\n constructor() {\n this._selectionService.registerRootComponent(this);\n this._contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._openDataStream();\n this.buildComponentCssClass();\n\n this._treeService.expandedLevel\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))\n .subscribe((level) => {\n this._expandedLevel = level;\n this.buildComponentCssClass();\n this._cdr.detectChanges();\n });\n\n this._treeService.detectChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._cdr.detectChanges();\n });\n\n if (this.selection !== 'none') {\n this._selectionService.setValue(this._cvaDirective.value);\n\n this._cvaDirective.ngControl?.valueChanges?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._selectionService.setValue(this._cvaDirective.value);\n });\n }\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this.buildComponentCssClass();\n\n if ('selection' in changes || 'selectionPlacement' in changes) {\n this._treeService.setSelectionMode(this.selection, this.selectionPlacement);\n this._setSelectionListener();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._listenToTreeItemsChanges();\n this._listenToTreeItemDirectiveChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._dsSubscription?.unsubscribe();\n this._eventSub?.unsubscribe();\n this._selectionSub?.unsubscribe();\n }\n\n /** @hidden */\n private _setSelectionListener(): void {\n this._selectionSub?.unsubscribe();\n if (this.selection !== 'none') {\n this._selectionService.setValue(this._cvaDirective.value);\n\n this._selectionSub = this._cvaDirective.ngControl?.valueChanges\n ?.pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._selectionService.setValue(this._cvaDirective.value);\n });\n }\n }\n\n /** @hidden */\n private _listenToTreeItemDirectiveChanges(): void {\n this._treeItemDirectives.changes\n .pipe(\n startWith(null),\n filter(() => this.treeItemDef !== undefined),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._allItems = this._treeItemDirectives.toArray().map((item) => item.treeItem!);\n const flattenedItems = this._sortTreeItems(this._allItems);\n this._setFlattenedItems(flattenedItems);\n });\n }\n\n /** @hidden */\n private _listenToTreeItemsChanges(): void {\n this._projectedTreeItems.changes\n .pipe(\n startWith(null),\n filter(() => !this.treeItemDef),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._allItems = this._projectedTreeItems.toArray();\n const flattenedItems = this._sortTreeItems(this._allItems);\n this._setFlattenedItems(flattenedItems);\n });\n }\n\n /** @hidden */\n private _setFlattenedItems(items: BaseTreeItem[]): void {\n this._sortedTreeItems = items;\n\n const activeItem = this._focusKeyManager?.activeItem;\n const newActiveItemIndex = items.findIndex((item) => item === activeItem);\n this._focusKeyManager?.destroy();\n\n this._focusKeyManager = new FocusKeyManager(items)\n .withVerticalOrientation(true)\n .skipPredicate((item) => !item.keyboardAccessible);\n\n if (newActiveItemIndex > -1) {\n this._focusKeyManager.setActiveItem(newActiveItemIndex);\n }\n\n this._selectionService.initialize(this._sortedTreeItems.map((item) => item.selectableListItem));\n\n this._setupEventListeners();\n }\n\n /** @hidden */\n _onItemFocused(treeItem: BaseTreeItem): void {\n let focusedIndex = -1;\n this._sortedTreeItems.forEach((item, index) => {\n const isFocused = treeItem === item;\n item.setContainerTabIndex(isFocused ? 0 : -1);\n if (isFocused) {\n focusedIndex = index;\n }\n });\n\n if (focusedIndex === -1) {\n return;\n }\n\n this._focusKeyManager.setActiveItem(focusedIndex);\n }\n\n /** @hidden */\n private _setupEventListeners(): void {\n this._eventSub?.unsubscribe();\n this._eventSub = new Subscription();\n\n this._sortedTreeItems.forEach((item) => {\n this._eventSub.add(\n fromEvent<KeyboardEvent>(item.elementRef.nativeElement, 'keydown').subscribe((event) => {\n this._onItemKeyDown(event, item);\n })\n );\n this._eventSub.add(\n fromEvent(item.itemContainer?.nativeElement, 'focus').subscribe(() => {\n this._onItemFocused(item);\n })\n );\n });\n }\n\n /** @hidden */\n private _sortTreeItems(items: BaseTreeItem[]): BaseTreeItem[] {\n const components: BaseTreeItem[] = [];\n const rootItems = items.filter((item) => item.level === 1);\n\n rootItems.forEach((treeItem, index) => {\n treeItem.setPosition(rootItems.length, index + 1);\n });\n\n items.forEach((item) => {\n if (!item || components.includes(item)) {\n return;\n }\n\n components.push(item);\n\n if (item.children.length === 0) {\n return;\n }\n\n const childItems = this._sortTreeItems(this._allItems.filter((i) => i.parentId === item.id));\n\n childItems.forEach((treeItem, index) => {\n treeItem.setPosition(childItems.length, index + 1);\n });\n\n components.push(...childItems);\n });\n\n return components;\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class,\n this._expandedLevel ? `expanded-level-${this._expandedLevel}` : '',\n this.noBorder ? 'fd-tree--no-border' : '',\n this._items.length === 0 && this._initialDataLoaded ? 'fd-tree--no-data' : '',\n this.independentSections ? 'fd-tree--independent-multi-selection' : '',\n 'fd-tree'\n ];\n }\n\n /**\n * @hidden\n * Keyboard navigation\n * @param event Keyboard event.\n */\n @HostListener('keydown', ['$event'])\n private _onKeyUp(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n this._focusKeyManager?.onKeydown(event);\n }\n }\n\n /** @hidden */\n _onItemKeyDown(event: KeyboardEvent, treeItem: Nullable<BaseTreeItem>): void {\n if (!treeItem) {\n return;\n }\n\n const isRtl = !!this._rtl?.rtl.value;\n const expandKey = isRtl ? LEFT_ARROW : RIGHT_ARROW;\n const collapseKey = isRtl ? RIGHT_ARROW : LEFT_ARROW;\n\n if (KeyUtil.isKeyCode(event, expandKey) && (treeItem.hasDsChildren || treeItem.hasProjectedChildren)) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n\n this._expandTreeSection(treeItem);\n return;\n }\n\n if (KeyUtil.isKeyCode(event, collapseKey)) {\n if (event.defaultPrevented) {\n return;\n }\n event.preventDefault();\n\n this._collapseTreeSection(treeItem);\n return;\n }\n }\n\n /** @hidden */\n _trackFn(index: number, item: TreeItem<TreeItemGeneric<T>>): string {\n return item.id;\n }\n\n /**\n * @hidden\n * Select list interface method implementation.\n * Sets value for control value accessor and emits it.\n * @param value value of the selection.\n */\n onChange(value: SelectableListValueType<any>): void {\n this._cvaDirective.setValue(value, true);\n }\n\n /** @hidden */\n private _expandTreeSection(treeItem: BaseTreeItem): void {\n if (treeItem.expanded) {\n // Shift focus on the first child item\n const itemIndex = this._sortedTreeItems.findIndex((item) => item.id === treeItem.id);\n const nextItem = this._sortedTreeItems[itemIndex + 1];\n if (nextItem?.parentId === treeItem.id) {\n this._focusKeyManager.setActiveItem(itemIndex + 1);\n }\n\n return;\n }\n\n treeItem.expanded = true;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _collapseTreeSection(treeItem: BaseTreeItem): void {\n if (!treeItem.expanded && treeItem.parentId) {\n const parentItemIndex = this._sortedTreeItems.findIndex((item) => item.id === treeItem.parentId);\n\n if (parentItemIndex > -1) {\n this._focusKeyManager.setActiveItem(parentItemIndex);\n return;\n }\n }\n treeItem.expanded = false;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _openDataStream(): void {\n this._dsSubscription?.unsubscribe();\n this._dsSubscription = new Subscription();\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataRequested.subscribe(this.dataRequested)\n );\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataReceived.subscribe(this.dataReceived)\n );\n\n this._dsSubscription.add(\n this._dataSourceDirective.dataSourceProvider?.dataReceived\n .pipe(\n filter((received) => received),\n switchMap(() => this._dataSourceDirective.dataChanged$)\n )\n .subscribe((data) => {\n this._initialDataLoaded = true;\n this._items = this._treeService.normalizeTreeItems(data);\n this.buildComponentCssClass();\n\n this._cdr.markForCheck();\n })\n );\n\n this._dataSourceDirective.dataSourceProvider?.match();\n }\n}\n","<ng-template #dataSourceRenderer>\n <ng-template\n [ngTemplateOutlet]=\"!_initialDataLoaded ? loadingRenderer : dataLoadedTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: 1 }\"\n ></ng-template>\n\n <ng-template #loadingRenderer let-level>\n <div *fdkRepeat=\"5\" role=\"treeitem\" [attr.aria-level]=\"level\" class=\"fd-tree__item\">\n <div class=\"fd-tree__item-container\">\n <div class=\"fd-tree__content\">\n <span class=\"fd-tree__text\">\n <fd-skeleton type=\"text\" width=\"100px\" textLines=\"1\"></fd-skeleton>\n </span>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template #dataLoadedTpl>\n <ng-container *ngIf=\"_items.length > 0 && treeItemDef; else noDataTpl\">\n <ng-container *ngFor=\"let item of _items; trackBy: _trackFn\">\n <ng-template\n [ngTemplateOutlet]=\"renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template #renderer let-item>\n <ng-container fdTreeItem fdkSelectableItem #treeItemDirective=\"fdTreeItem\">\n <ng-template\n [ngTemplateOutlet]=\"item.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"treeItemDirective.injector\"\n ></ng-template>\n </ng-container>\n <ng-container\n *ngIf=\"\n treeItemDirective.treeItem?.hasDsChildren &&\n !!treeItemDirective.treeItem?.expanded &&\n !treeItemDirective.treeItem?.childrenLoaded\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"loadingRenderer\"\n [ngTemplateOutletContext]=\"{ $implicit: item.level + 1 }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"treeItemDirective.treeItem?.children as childItems\">\n <div class=\"fd-tree\" *ngIf=\"childItems && childItems.length > 0 && !!treeItemDirective?.treeItem?.expanded\">\n <ng-container *ngFor=\"let child of childItems; trackBy: _trackFn\">\n <ng-template\n [ngTemplateOutlet]=\"renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-template>\n </ng-container>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #noDataTpl>\n <div role=\"treeitem\" aria-level=\"1\" class=\"fd-tree__item\">\n <div class=\"fd-tree__item-container\">\n <div class=\"fd-tree__content\">\n <span class=\"fd-tree__text\">{{ 'coreTree.noData' | fdTranslate }}</span>\n </div>\n </div>\n </div>\n </ng-template>\n</ng-template>\n<ng-template #projectedContentRenderer>\n <ng-content select=\"fd-tree-item\"></ng-content>\n</ng-template>\n\n<ng-template [ngTemplateOutlet]=\"treeItemDef ? dataSourceRenderer : projectedContentRenderer\"></ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { DataSource, DataSourceDirective } from '@fundamental-ngx/cdk/data-source';\nimport {\n FDK_SELECTABLE_ITEM_PROVIDER,\n Nullable,\n SelectableItemDirective,\n SelectableItemToken,\n uuidv4\n} from '@fundamental-ngx/cdk/utils';\nimport { distinctUntilChanged, filter, startWith, Subject, switchMap } from 'rxjs';\nimport { FdTreeAcceptableDataSource, FdTreeDataSource } from '../../data-source/tree-data-source';\nimport { TreeItem, TreeItemState } from '../../models/tree-item';\nimport { SelectionModeModel, TreeService } from '../../tree.service';\nimport { BaseTreeItem } from '../../models/base-tree-item.class';\nimport { TreeItemDirective } from '../../directives/tree-item.directive';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'fd-tree-item',\n templateUrl: './tree-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [DataSourceDirective],\n host: {\n class: 'fd-tree__item',\n role: 'presentation'\n },\n providers: [\n {\n provide: FDK_SELECTABLE_ITEM_PROVIDER,\n useExisting: TreeItemComponent\n },\n {\n provide: BaseTreeItem,\n useExisting: TreeItemComponent\n }\n ]\n})\nexport class TreeItemComponent<T extends TreeItem = TreeItem, P = any>\n extends BaseTreeItem<T, P>\n implements Partial<SelectableItemToken<HTMLElement, P>>, OnInit, AfterViewInit, OnDestroy\n{\n /**\n * Tree item value.\n */\n @Input()\n value: P;\n /**\n * Tree item ID.\n */\n @Input()\n id = uuidv4();\n\n /**\n * Tree item aria label.\n */\n @HostBinding('attr.aria-label')\n @Input()\n ariaLabel: string;\n\n /**\n * Tree item parent ID.\n */\n @Input()\n set parentId(value: Nullable<string>) {\n this._parentId = value;\n }\n\n get parentId(): Nullable<string> {\n return this._parentId || this._parentTreeItem?.id;\n }\n\n /**\n * Whether the tree item is navigatable.\n */\n @Input()\n navigatable = false;\n\n /**\n * Tree item state.\n */\n @Input()\n state: Nullable<TreeItemState>;\n\n /**\n * Tree item child nodes data source.\n */\n @Input()\n childNodes: FdTreeAcceptableDataSource<T> = [];\n\n /**\n * Whether to wrap content.\n */\n @Input()\n wrapContent = false;\n\n /**\n * Tree item level.\n */\n @Input()\n @HostBinding('attr.aria-level')\n set level(value: number) {\n this._level = value;\n }\n\n get level(): number {\n return this._level || (this._parentTreeItem !== null ? this._parentTreeItem.level + 1 : 1);\n }\n\n /**\n * Whether the tree item is expanded.\n */\n @Input()\n set expanded(value: boolean) {\n if (value === this._expanded) {\n return;\n }\n this._treeService.addExpandableItem(this.id, this.level, value);\n this._expanded = value;\n\n if (value) {\n setTimeout(() => {\n this._treeService.detectChanges.next();\n this._dataSourceDirective.dataSourceProvider?.match();\n });\n } else {\n this.children = [];\n this.childrenLoaded = false;\n this._treeService.detectChanges.next();\n }\n\n this._cdr.detectChanges();\n }\n\n get expanded(): boolean {\n return this._expanded;\n }\n\n /**\n * Event emitted when user clicks on tree item.\n */\n @Output()\n readonly treeItemClick = new EventEmitter<MouseEvent | KeyboardEvent>();\n\n /**\n * Event emitted when `expanded` state changes.\n */\n @Output()\n expandedChange = new EventEmitter<boolean>();\n\n /** Tree item focusable container. */\n @ViewChild('itemContainer', { read: ElementRef })\n itemContainer: Nullable<ElementRef<HTMLElement>>;\n\n /** Selectable item. */\n @ViewChild(SelectableItemDirective)\n selectableListItem: SelectableItemToken;\n\n /** @hidden */\n @ContentChildren(BaseTreeItem)\n _projectedTreeItems: QueryList<BaseTreeItem>;\n\n /**\n * @hidden\n * Whether the tree item should have a navigation indicator.\n */\n _navigationIndicator = false;\n\n /**\n * @hidden\n * Selection state.\n */\n _selectionState = false;\n\n /** @hidden */\n children: T[] = [];\n\n /** @hidden */\n childrenLoaded = false;\n\n /** @hidden */\n _selectionModel: Nullable<SelectionModeModel>;\n\n /** @Hidden */\n _containerTabIndex = 0;\n\n /** @hidden */\n _setSize: number;\n /** @hidden */\n _currentPosition: number;\n\n /** @hidden */\n _totalChildrenLoaded = false;\n\n /** @hidden */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n private _parentId: Nullable<string>;\n\n /** @hidden */\n private _level: number;\n\n /** @hidden */\n private _expanded = false;\n\n /** Whether the tree item has any type of child nodes. */\n get hasChildren(): boolean {\n return !!this.childNodes || this.hasProjectedChildren;\n }\n\n /** Whether the tree item has content-projected child nodes. */\n get hasProjectedChildren(): boolean {\n return this._projectedTreeItems && this._projectedTreeItems.length > 0;\n }\n\n /** Whether the tree item has data source children. */\n get hasDsChildren(): boolean {\n return this._dsChildrenNumber > 0;\n }\n\n /** Whether the item is accessible via keyboard. */\n get keyboardAccessible(): boolean {\n return this._parentTreeItem === null\n ? true\n : this._parentTreeItem.keyboardAccessible && this._parentTreeItem.expanded;\n }\n\n /** @hidden */\n private _dsChildrenNumber = 0;\n\n /** @hidden */\n private readonly _clicked$ = new Subject<MouseEvent | KeyboardEvent>();\n\n /** Clicked behavior implementation. */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n clicked = this._clicked$.asObservable();\n\n /** @hidden */\n private readonly _treeItemDir = inject<TreeItemDirective<T, P>>(TreeItemDirective, {\n optional: true\n });\n\n /** @hidden */\n private readonly _treeService = inject(TreeService);\n\n /** @hidden */\n private readonly _dataSourceDirective = inject<DataSourceDirective<T, FdTreeDataSource<T>>>(DataSourceDirective);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _parentTreeItem = inject(TreeItemComponent, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n constructor() {\n super();\n this._treeItemDir?.setTreeItem(this);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._treeService.selectionMode.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((model) => {\n this._selectionModel = model;\n this._cdr.detectChanges();\n });\n\n this._treeService.navigationIndicator.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((value) => {\n this._navigationIndicator = value;\n this._cdr.detectChanges();\n });\n\n this._dataSourceDirective.dataSource = this.childNodes as DataSource<T, FdTreeDataSource<T>>;\n this._treeService.addExpandableItem(this.id, this.level, this.expanded);\n\n this._dataSourceDirective.dataSourceProvider\n ?.getTotalItems()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((totalItems) => {\n this._dsChildrenNumber = totalItems;\n this._totalChildrenLoaded = true;\n this._cdr.detectChanges();\n });\n\n this._dataSourceDirective.dataSourceProvider?.dataReceived\n .pipe(\n filter((received) => received),\n switchMap(() => this._dataSourceDirective.dataChanged$),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((data) => {\n this.children = this._treeService.normalizeTreeItems(data, this.id, this.level + 1) as T[];\n this.childrenLoaded = true;\n setTimeout(() => {\n this._treeService.detectChanges.next();\n this._cdr.detectChanges();\n });\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._projectedTreeItems.changes\n .pipe(startWith(null), distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._cdr.detectChanges();\n this._projectedTreeItems.forEach((treeItem, index) => {\n treeItem.setPosition(this._projectedTreeItems.length, index + 1);\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._treeService.removeExpandableItem(this.id, this.level!);\n }\n\n /**\n * Sets position of the current item in the set.\n * @param totalItems Total items amount in the set.\n * @param currentIndex Current item position in the set.\n */\n setPosition(totalItems: number, currentIndex: number): void {\n this._setSize = totalItems;\n this._currentPosition = currentIndex;\n }\n\n /** Method to focus on the tree item. */\n focus(): void {\n this.itemContainer?.nativeElement.focus();\n }\n\n /** Method for setting the focusable tabindex. */\n setContainerTabIndex(value: number): void {\n this._containerTabIndex = value;\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _toggleExpandState(event: MouseEvent): void {\n // Do not bubble up to selection change event.\n event.stopImmediatePropagation();\n this.expanded = !this.expanded;\n this.expandedChange.emit(this.expanded);\n this.focus();\n }\n\n /** @hidden */\n _onClick(event: MouseEvent | KeyboardEvent): void {\n event.stopImmediatePropagation();\n\n this._clicked$.next(event);\n this.treeItemClick.emit(event);\n }\n\n /** @hidden */\n _setSelected(selected: boolean): void {\n this._selectionState = selected;\n }\n}\n","<div\n class=\"fd-tree__item-container\"\n [attr.tabindex]=\"_containerTabIndex\"\n (fdkClicked)=\"_onClick($event)\"\n fdkSelectableItem\n (selected)=\"_setSelected($event)\"\n [value]=\"value\"\n [attr.aria-haspopup]=\"children.length > 0 || hasProjectedChildren\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-setsize]=\"_setSize\"\n [attr.aria-posinset]=\"_currentPosition\"\n role=\"treeitem\"\n [attr.aria-level]=\"level\"\n #itemContainer\n [ngClass]=\"[\n state ? 'has-highlight-indicator has-highlight-indicator--' + state : '',\n navigatable ? 'fd-tree__item-container--active' : '',\n wrapContent ? 'fd-tree__content--wrap' : ''\n ]\"\n>\n <ng-container *ngIf=\"_selectionModel?.placement === 'left'\">\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"hasChildren\">\n <span\n *ngIf=\"hasDsChildren || hasProjectedChildren\"\n (click)=\"_toggleExpandState($event)\"\n class=\"fd-tree__expander\"\n aria-hidden=\"true\"\n role=\"presentation\"\n [attr.aria-label]=\"(expanded ? 'coreTree.collapse' : 'coreTree.expand') | fdTranslate\"\n [class.is-expanded]=\"expanded\"\n >\n <fd-icon\n class=\"fd-tree__icon\"\n [glyph]=\"expanded ? 'navigation-down-arrow' : 'navigation-right-arrow'\"\n ></fd-icon>\n </span>\n <div class=\"fd-tree__expander fd-tree__expander--loading\" *ngIf=\"!_totalChildrenLoaded\">\n <fd-skeleton type=\"rectangle\" width=\"1rem\" height=\"1rem\"></fd-skeleton>\n </div>\n <ng-container *ngIf=\"_selectionModel?.placement === 'afterExpand'\">\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n </ng-container>\n </ng-container>\n <div class=\"fd-tree__content\">\n <ng-content select=\"[fdTreeItemIcon]\"></ng-content>\n <ng-content select=\"[fdTreeItemText]\"></ng-content>\n </div>\n <ng-content select=\"[fdTreeItemButton]\"></ng-content>\n <ng-container *ngIf=\"_selectionModel?.placement === 'right'\">\n <ng-template [ngTemplateOutlet]=\"selection\"></ng-template>\n </ng-container>\n <fd-icon\n glyph=\"slim-arrow-right\"\n class=\"fd-tree__icon fd-tree__icon--navigation\"\n *ngIf=\"navigatable && _navigationIndicator\"\n ></fd-icon>\n</div>\n\n<ng-container *ngIf=\"hasProjectedChildren && expanded\">\n <div class=\"fd-tree\">\n <ng-content select=\"fd-tree-item\"></ng-content>\n </div>\n</ng-container>\n\n<ng-template #selection>\n <div class=\"fd-form-item\">\n <fd-checkbox\n [(ngModel)]=\"_selectionState\"\n [ngModelOptions]=\"{ standalone: true }\"\n [standalone]=\"true\"\n tabIndexValue=\"-1\"\n *ngIf=\"_selectionModel?.mode === 'multiple'\"\n ></fd-checkbox>\n <fd-radio-button\n [(ngModel)]=\"_selectionState\"\n [ngModelOptions]=\"{ standalone: true }\"\n [selectedValue]=\"_selectionState\"\n [value]=\"true\"\n tabIndex=\"-1\"\n [standalone]=\"true\"\n tabIndexValue=\"-1\"\n *ngIf=\"_selectionModel?.mode === 'single'\"\n ></fd-radio-button>\n </div>\n</ng-template>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemIcon]',\n host: {\n class: 'fd-tree__icon'\n }\n})\nexport class TreeItemIconDirective {\n /** @hidden */\n @HostBinding('attr.role')\n private readonly _role = 'presentation';\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n private readonly _ariaHidden = true;\n}\n\n@Directive({\n selector: '[fdTreeItemText]',\n host: {\n class: 'fd-tree__text'\n }\n})\nexport class TreeItemTextDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdTreeItemButton]',\n host: {\n class: 'fd-tree__button'\n }\n})\nexport class TreeItemButtonDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ClickedBehaviorModule, RepeatDirective, SelectableItemDirective } from '@fundamental-ngx/cdk/utils';\nimport { CheckboxModule } from '@fundamental-ngx/core/checkbox';\nimport { RadioModule } from '@fundamental-ngx/core/radio';\nimport { SkeletonModule } from '@fundamental-ngx/core/skeleton';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { TreeComponent } from './tree.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { TreeItemComponent } from './components/tree-item/tree-item.component';\nimport { TreeItemDefDirective } from './directives/tree-item-def.directive';\nimport { TreeItemDirective } from './directives/tree-item.directive';\nimport { TreeItemIconDirective, TreeItemTextDirective } from './directives/tree-item-icon.directive';\nimport { TreeItemButtonDirective } from './directives/tree-item-button.directive';\n\n@NgModule({\n declarations: [\n TreeComponent,\n TreeItemComponent,\n TreeItemDefDirective,\n TreeItemDirective,\n TreeItemIconDirective,\n TreeItemTextDirective,\n TreeItemButtonDirective\n ],\n imports: [\n CommonModule,\n ButtonModule,\n IconModule,\n PopoverModule,\n MenuModule,\n CheckboxModule,\n ClickedBehaviorModule.forRoot(),\n FormsModule,\n SelectableItemDirective,\n RadioModule,\n SkeletonModule,\n RepeatDirective,\n ReactiveFormsModule,\n I18nModule\n ],\n exports: [\n TreeComponent,\n TreeItemComponent,\n TreeItemDefDirective,\n TreeItemDirective,\n TreeItemIconDirective,\n TreeItemTextDirective,\n TreeItemButtonDirective\n ]\n})\nexport class TreeModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_TREE_ITEM = new InjectionToken('FdTreeItem');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i6.TreeItemDirective","i2","i3","i4","i5","i7","i8","i9"],"mappings":"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"}