@tailng-ui/primitives 0.11.0 → 0.13.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 (274) hide show
  1. package/README.md +97 -11
  2. package/package.json +12 -6
  3. package/src/lib/feedback/empty/tng-empty.d.ts +11 -0
  4. package/src/lib/feedback/empty/tng-empty.d.ts.map +1 -1
  5. package/src/lib/feedback/empty/tng-empty.js +76 -61
  6. package/src/lib/feedback/empty/tng-empty.js.map +1 -1
  7. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts +5 -0
  8. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -1
  9. package/src/lib/feedback/progress-bar/tng-progress-bar.js +50 -52
  10. package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -1
  11. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts +3 -0
  12. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -1
  13. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +35 -40
  14. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -1
  15. package/src/lib/feedback/skeleton/tng-skeleton.d.ts +3 -0
  16. package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -1
  17. package/src/lib/feedback/skeleton/tng-skeleton.js +30 -31
  18. package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -1
  19. package/src/lib/feedback/toast/tng-toast.d.ts +5 -0
  20. package/src/lib/feedback/toast/tng-toast.d.ts.map +1 -1
  21. package/src/lib/feedback/toast/tng-toast.js +51 -47
  22. package/src/lib/feedback/toast/tng-toast.js.map +1 -1
  23. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts +3 -0
  24. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts.map +1 -1
  25. package/src/lib/form/_shared/id/tng-unique-id.service.js +9 -7
  26. package/src/lib/form/_shared/id/tng-unique-id.service.js.map +1 -1
  27. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts +3 -0
  28. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts.map +1 -1
  29. package/src/lib/form/_shared/select/tng-select.overlay.shared.js +22 -20
  30. package/src/lib/form/_shared/select/tng-select.overlay.shared.js.map +1 -1
  31. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts +9 -0
  32. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts.map +1 -1
  33. package/src/lib/form/_shared/select/tng-select.parts.shared.js +106 -98
  34. package/src/lib/form/_shared/select/tng-select.parts.shared.js.map +1 -1
  35. package/src/lib/form/autocomplete/tng-autocomplete.d.ts +3 -0
  36. package/src/lib/form/autocomplete/tng-autocomplete.d.ts.map +1 -1
  37. package/src/lib/form/autocomplete/tng-autocomplete.js +40 -38
  38. package/src/lib/form/autocomplete/tng-autocomplete.js.map +1 -1
  39. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts +6 -0
  40. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts.map +1 -1
  41. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js +54 -46
  42. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js.map +1 -1
  43. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts +3 -0
  44. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts.map +1 -1
  45. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js +22 -20
  46. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js.map +1 -1
  47. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts +9 -0
  48. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts.map +1 -1
  49. package/src/lib/form/autocomplete/tng-autocomplete.parts.js +109 -101
  50. package/src/lib/form/autocomplete/tng-autocomplete.parts.js.map +1 -1
  51. package/src/lib/form/button-toggle/tng-button-toggle.d.ts +5 -0
  52. package/src/lib/form/button-toggle/tng-button-toggle.d.ts.map +1 -1
  53. package/src/lib/form/button-toggle/tng-button-toggle.js +121 -155
  54. package/src/lib/form/button-toggle/tng-button-toggle.js.map +1 -1
  55. package/src/lib/form/checkbox/tng-checkbox.d.ts +3 -0
  56. package/src/lib/form/checkbox/tng-checkbox.d.ts.map +1 -1
  57. package/src/lib/form/checkbox/tng-checkbox.js +95 -106
  58. package/src/lib/form/checkbox/tng-checkbox.js.map +1 -1
  59. package/src/lib/form/chips/tng-chips.d.ts +7 -0
  60. package/src/lib/form/chips/tng-chips.d.ts.map +1 -1
  61. package/src/lib/form/chips/tng-chips.js +107 -112
  62. package/src/lib/form/chips/tng-chips.js.map +1 -1
  63. package/src/lib/form/combobox/tng-combobox.d.ts +3 -0
  64. package/src/lib/form/combobox/tng-combobox.d.ts.map +1 -1
  65. package/src/lib/form/combobox/tng-combobox.js +16 -13
  66. package/src/lib/form/combobox/tng-combobox.js.map +1 -1
  67. package/src/lib/form/input/tng-input.d.ts +9 -0
  68. package/src/lib/form/input/tng-input.d.ts.map +1 -1
  69. package/src/lib/form/input/tng-input.js +161 -141
  70. package/src/lib/form/input/tng-input.js.map +1 -1
  71. package/src/lib/form/input-otp/tng-input-otp.d.ts +3 -0
  72. package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -1
  73. package/src/lib/form/input-otp/tng-input-otp.js +58 -69
  74. package/src/lib/form/input-otp/tng-input-otp.js.map +1 -1
  75. package/src/lib/form/label/tng-label.d.ts +3 -0
  76. package/src/lib/form/label/tng-label.d.ts.map +1 -1
  77. package/src/lib/form/label/tng-label.js +24 -25
  78. package/src/lib/form/label/tng-label.js.map +1 -1
  79. package/src/lib/form/listbox/listbox.directive.d.ts +3 -0
  80. package/src/lib/form/listbox/listbox.directive.d.ts.map +1 -1
  81. package/src/lib/form/listbox/listbox.directive.js +45 -43
  82. package/src/lib/form/listbox/listbox.directive.js.map +1 -1
  83. package/src/lib/form/listbox/option.directive.d.ts +3 -0
  84. package/src/lib/form/listbox/option.directive.d.ts.map +1 -1
  85. package/src/lib/form/listbox/option.directive.js +40 -38
  86. package/src/lib/form/listbox/option.directive.js.map +1 -1
  87. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts +3 -0
  88. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts.map +1 -1
  89. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js +23 -21
  90. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js.map +1 -1
  91. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts +3 -0
  92. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts.map +1 -1
  93. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js +25 -23
  94. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js.map +1 -1
  95. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts +3 -0
  96. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts.map +1 -1
  97. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js +35 -33
  98. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js.map +1 -1
  99. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts +6 -0
  100. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts.map +1 -1
  101. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js +57 -46
  102. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js.map +1 -1
  103. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts +3 -0
  104. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts.map +1 -1
  105. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js +16 -14
  106. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js.map +1 -1
  107. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts +3 -0
  108. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -1
  109. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +52 -50
  110. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -1
  111. package/src/lib/form/multi-select/tng-multi-select.d.ts +3 -0
  112. package/src/lib/form/multi-select/tng-multi-select.d.ts.map +1 -1
  113. package/src/lib/form/multi-select/tng-multi-select.js +41 -36
  114. package/src/lib/form/multi-select/tng-multi-select.js.map +1 -1
  115. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts +6 -0
  116. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts.map +1 -1
  117. package/src/lib/form/multi-select/tng-multi-select.listbox.js +50 -45
  118. package/src/lib/form/multi-select/tng-multi-select.listbox.js.map +1 -1
  119. package/src/lib/form/multiselect/tng-multiselect.d.ts +3 -0
  120. package/src/lib/form/multiselect/tng-multiselect.d.ts.map +1 -1
  121. package/src/lib/form/multiselect/tng-multiselect.js +16 -13
  122. package/src/lib/form/multiselect/tng-multiselect.js.map +1 -1
  123. package/src/lib/form/radio/tng-radio.d.ts +3 -0
  124. package/src/lib/form/radio/tng-radio.d.ts.map +1 -1
  125. package/src/lib/form/radio/tng-radio.js +91 -100
  126. package/src/lib/form/radio/tng-radio.js.map +1 -1
  127. package/src/lib/form/select/tng-select.d.ts +3 -0
  128. package/src/lib/form/select/tng-select.d.ts.map +1 -1
  129. package/src/lib/form/select/tng-select.js +41 -36
  130. package/src/lib/form/select/tng-select.js.map +1 -1
  131. package/src/lib/form/select/tng-select.listbox.d.ts +6 -0
  132. package/src/lib/form/select/tng-select.listbox.d.ts.map +1 -1
  133. package/src/lib/form/select/tng-select.listbox.js +50 -45
  134. package/src/lib/form/select/tng-select.listbox.js.map +1 -1
  135. package/src/lib/form/slider/tng-slider.d.ts +3 -0
  136. package/src/lib/form/slider/tng-slider.d.ts.map +1 -1
  137. package/src/lib/form/slider/tng-slider.js +42 -49
  138. package/src/lib/form/slider/tng-slider.js.map +1 -1
  139. package/src/lib/form/switch/tng-switch.d.ts +3 -0
  140. package/src/lib/form/switch/tng-switch.d.ts.map +1 -1
  141. package/src/lib/form/switch/tng-switch.js +44 -47
  142. package/src/lib/form/switch/tng-switch.js.map +1 -1
  143. package/src/lib/form/textarea/tng-textarea.d.ts +4 -0
  144. package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -1
  145. package/src/lib/form/textarea/tng-textarea.js +40 -41
  146. package/src/lib/form/textarea/tng-textarea.js.map +1 -1
  147. package/src/lib/form/toggle/tng-toggle.d.ts +3 -0
  148. package/src/lib/form/toggle/tng-toggle.d.ts.map +1 -1
  149. package/src/lib/form/toggle/tng-toggle.js +71 -74
  150. package/src/lib/form/toggle/tng-toggle.js.map +1 -1
  151. package/src/lib/form/toggle-group/tng-toggle-group.d.ts +3 -0
  152. package/src/lib/form/toggle-group/tng-toggle-group.d.ts.map +1 -1
  153. package/src/lib/form/toggle-group/tng-toggle-group.js +48 -49
  154. package/src/lib/form/toggle-group/tng-toggle-group.js.map +1 -1
  155. package/src/lib/layout/accordion/tng-accordion.d.ts +9 -0
  156. package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -1
  157. package/src/lib/layout/accordion/tng-accordion.js +143 -155
  158. package/src/lib/layout/accordion/tng-accordion.js.map +1 -1
  159. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts +3 -0
  160. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +1 -1
  161. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +16 -13
  162. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +1 -1
  163. package/src/lib/layout/card/tng-card.d.ts +21 -0
  164. package/src/lib/layout/card/tng-card.d.ts.map +1 -1
  165. package/src/lib/layout/card/tng-card.js +151 -121
  166. package/src/lib/layout/card/tng-card.js.map +1 -1
  167. package/src/lib/layout/collapsible/tng-collapsible.d.ts +7 -0
  168. package/src/lib/layout/collapsible/tng-collapsible.d.ts.map +1 -1
  169. package/src/lib/layout/collapsible/tng-collapsible.js +82 -83
  170. package/src/lib/layout/collapsible/tng-collapsible.js.map +1 -1
  171. package/src/lib/layout/drawer/tng-drawer.d.ts +13 -0
  172. package/src/lib/layout/drawer/tng-drawer.d.ts.map +1 -1
  173. package/src/lib/layout/drawer/tng-drawer.js +217 -226
  174. package/src/lib/layout/drawer/tng-drawer.js.map +1 -1
  175. package/src/lib/layout/grid/tng-grid.d.ts +3 -0
  176. package/src/lib/layout/grid/tng-grid.d.ts.map +1 -1
  177. package/src/lib/layout/grid/tng-grid.js +16 -13
  178. package/src/lib/layout/grid/tng-grid.js.map +1 -1
  179. package/src/lib/layout/separator/tng-separator.d.ts +3 -0
  180. package/src/lib/layout/separator/tng-separator.d.ts.map +1 -1
  181. package/src/lib/layout/separator/tng-separator.js +30 -29
  182. package/src/lib/layout/separator/tng-separator.js.map +1 -1
  183. package/src/lib/layout/stepper/tng-stepper.d.ts +3 -0
  184. package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -1
  185. package/src/lib/layout/stepper/tng-stepper.js +16 -13
  186. package/src/lib/layout/stepper/tng-stepper.js.map +1 -1
  187. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts +3 -0
  188. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts.map +1 -1
  189. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js +54 -11
  190. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js.map +1 -1
  191. package/src/lib/layout/tree/tng-tree-group.d.ts +3 -0
  192. package/src/lib/layout/tree/tng-tree-group.d.ts.map +1 -1
  193. package/src/lib/layout/tree/tng-tree-group.js +19 -17
  194. package/src/lib/layout/tree/tng-tree-group.js.map +1 -1
  195. package/src/lib/layout/tree/tng-tree-indicator.d.ts +3 -0
  196. package/src/lib/layout/tree/tng-tree-indicator.d.ts.map +1 -1
  197. package/src/lib/layout/tree/tng-tree-indicator.js +22 -20
  198. package/src/lib/layout/tree/tng-tree-indicator.js.map +1 -1
  199. package/src/lib/layout/tree/tng-tree-item.d.ts +3 -0
  200. package/src/lib/layout/tree/tng-tree-item.d.ts.map +1 -1
  201. package/src/lib/layout/tree/tng-tree-item.js +47 -53
  202. package/src/lib/layout/tree/tng-tree-item.js.map +1 -1
  203. package/src/lib/layout/tree/tng-tree.d.ts +3 -0
  204. package/src/lib/layout/tree/tng-tree.d.ts.map +1 -1
  205. package/src/lib/layout/tree/tng-tree.js +39 -43
  206. package/src/lib/layout/tree/tng-tree.js.map +1 -1
  207. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts +11 -0
  208. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts.map +1 -1
  209. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js +79 -64
  210. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js.map +1 -1
  211. package/src/lib/navigation/context-menu/tng-context-menu.d.ts +5 -0
  212. package/src/lib/navigation/context-menu/tng-context-menu.d.ts.map +1 -1
  213. package/src/lib/navigation/context-menu/tng-context-menu.js +44 -42
  214. package/src/lib/navigation/context-menu/tng-context-menu.js.map +1 -1
  215. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts +3 -0
  216. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +1 -1
  217. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +16 -13
  218. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +1 -1
  219. package/src/lib/navigation/menu/tng-menu.d.ts +13 -0
  220. package/src/lib/navigation/menu/tng-menu.d.ts.map +1 -1
  221. package/src/lib/navigation/menu/tng-menu.js +184 -186
  222. package/src/lib/navigation/menu/tng-menu.js.map +1 -1
  223. package/src/lib/navigation/menubar/tng-menubar.d.ts +5 -0
  224. package/src/lib/navigation/menubar/tng-menubar.d.ts.map +1 -1
  225. package/src/lib/navigation/menubar/tng-menubar.js +72 -70
  226. package/src/lib/navigation/menubar/tng-menubar.js.map +1 -1
  227. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts +3 -0
  228. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +1 -1
  229. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +16 -13
  230. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +1 -1
  231. package/src/lib/navigation/tabs/tng-tabs.d.ts +13 -0
  232. package/src/lib/navigation/tabs/tng-tabs.d.ts.map +1 -1
  233. package/src/lib/navigation/tabs/tng-tabs.js +234 -258
  234. package/src/lib/navigation/tabs/tng-tabs.js.map +1 -1
  235. package/src/lib/navigation/toolbar/tng-toolbar.d.ts +3 -0
  236. package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +1 -1
  237. package/src/lib/navigation/toolbar/tng-toolbar.js +16 -13
  238. package/src/lib/navigation/toolbar/tng-toolbar.js.map +1 -1
  239. package/src/lib/overlay/dialog/tng-dialog.d.ts +19 -0
  240. package/src/lib/overlay/dialog/tng-dialog.d.ts.map +1 -1
  241. package/src/lib/overlay/dialog/tng-dialog.js +249 -255
  242. package/src/lib/overlay/dialog/tng-dialog.js.map +1 -1
  243. package/src/lib/overlay/popover/tng-popover.d.ts +9 -0
  244. package/src/lib/overlay/popover/tng-popover.d.ts.map +1 -1
  245. package/src/lib/overlay/popover/tng-popover.js +152 -170
  246. package/src/lib/overlay/popover/tng-popover.js.map +1 -1
  247. package/src/lib/overlay/tooltip/tng-tooltip.d.ts +7 -0
  248. package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -1
  249. package/src/lib/overlay/tooltip/tng-tooltip.js +124 -127
  250. package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -1
  251. package/src/lib/utility/avatar/tng-avatar.d.ts +7 -0
  252. package/src/lib/utility/avatar/tng-avatar.d.ts.map +1 -1
  253. package/src/lib/utility/avatar/tng-avatar.js +46 -37
  254. package/src/lib/utility/avatar/tng-avatar.js.map +1 -1
  255. package/src/lib/utility/badge/tng-badge.d.ts +3 -0
  256. package/src/lib/utility/badge/tng-badge.d.ts.map +1 -1
  257. package/src/lib/utility/badge/tng-badge.js +26 -39
  258. package/src/lib/utility/badge/tng-badge.js.map +1 -1
  259. package/src/lib/utility/code-block/tng-code-block.d.ts +11 -0
  260. package/src/lib/utility/code-block/tng-code-block.d.ts.map +1 -1
  261. package/src/lib/utility/code-block/tng-code-block.js +76 -61
  262. package/src/lib/utility/code-block/tng-code-block.js.map +1 -1
  263. package/src/lib/utility/copy/tng-copy.d.ts +3 -0
  264. package/src/lib/utility/copy/tng-copy.d.ts.map +1 -1
  265. package/src/lib/utility/copy/tng-copy.js +44 -51
  266. package/src/lib/utility/copy/tng-copy.js.map +1 -1
  267. package/src/lib/utility/press/tng-press.d.ts +3 -0
  268. package/src/lib/utility/press/tng-press.d.ts.map +1 -1
  269. package/src/lib/utility/press/tng-press.js +55 -60
  270. package/src/lib/utility/press/tng-press.js.map +1 -1
  271. package/src/lib/utility/tag/tng-tag.d.ts +7 -0
  272. package/src/lib/utility/tag/tng-tag.d.ts.map +1 -1
  273. package/src/lib/utility/tag/tng-tag.js +94 -93
  274. package/src/lib/utility/tag/tng-tag.js.map +1 -1
@@ -1,8 +1,8 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component } from '@angular/core';
3
2
  import { TestBed } from '@angular/core/testing';
4
3
  import { TngTree, TngTreeGroup, TngTreeIndicator, TngTreeItem } from '../index';
5
- let TngTreeHarnessComponent = class TngTreeHarnessComponent {
4
+ import * as i0 from "@angular/core";
5
+ export class TngTreeHarnessComponent {
6
6
  valueChanges = [];
7
7
  defaultValue = undefined;
8
8
  orientation = 'vertical';
@@ -15,12 +15,56 @@ let TngTreeHarnessComponent = class TngTreeHarnessComponent {
15
15
  resetValueChanges() {
16
16
  this.valueChanges.length = 0;
17
17
  }
18
- };
19
- TngTreeHarnessComponent = __decorate([
20
- Component({
21
- standalone: true,
22
- imports: [TngTree, TngTreeItem, TngTreeGroup, TngTreeIndicator],
23
- template: `
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngTreeHarnessComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.1", type: TngTreeHarnessComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
20
+ <button data-testid="before" type="button">Before</button>
21
+
22
+ <div
23
+ data-testid="tree"
24
+ tngTree
25
+ [defaultValue]="defaultValue"
26
+ [orientation]="orientation"
27
+ [selectionMode]="selectionMode"
28
+ [value]="value"
29
+ (valueChange)="onValueChange($event)"
30
+ >
31
+ <div
32
+ tngTreeItem
33
+ [defaultExpanded]="rootExpanded"
34
+ [value]="'root-a'"
35
+ aria-label="Alpha"
36
+ id="root-a"
37
+ >
38
+ <span tngTreeIndicator aria-hidden="true">▶</span>
39
+ Root A
40
+
41
+ <div tngTreeGroup>
42
+ <div tngTreeItem [value]="'a-1'" aria-label="Able" id="a-1">A-1</div>
43
+ <div
44
+ tngTreeItem
45
+ [disabled]="true"
46
+ [value]="'a-2'"
47
+ aria-label="Beta Disabled"
48
+ id="a-2"
49
+ >
50
+ A-2 Disabled
51
+ </div>
52
+ <div tngTreeItem [value]="'a-3'" aria-label="Charlie" id="a-3">A-3</div>
53
+ </div>
54
+ </div>
55
+
56
+ <div tngTreeItem [value]="'root-b'" aria-label="Beta" id="root-b">Root B</div>
57
+ </div>
58
+
59
+ <button data-testid="after" type="button">After</button>
60
+ `, isInline: true, dependencies: [{ kind: "directive", type: TngTree, selector: "[tngTree]", inputs: ["selectionMode", "orientation", "value", "defaultValue", "disabled"], outputs: ["valueChange"], exportAs: ["tngTree"] }, { kind: "directive", type: TngTreeItem, selector: "[tngTreeItem]", inputs: ["value", "expanded", "defaultExpanded", "disabled"], outputs: ["expandedChange"], exportAs: ["tngTreeItem"] }, { kind: "directive", type: TngTreeGroup, selector: "[tngTreeGroup]", exportAs: ["tngTreeGroup"] }, { kind: "directive", type: TngTreeIndicator, selector: "[tngTreeIndicator]", exportAs: ["tngTreeIndicator"] }] });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngTreeHarnessComponent, decorators: [{
63
+ type: Component,
64
+ args: [{
65
+ standalone: true,
66
+ imports: [TngTree, TngTreeItem, TngTreeGroup, TngTreeIndicator],
67
+ template: `
24
68
  <button data-testid="before" type="button">Before</button>
25
69
 
26
70
  <div
@@ -62,9 +106,8 @@ TngTreeHarnessComponent = __decorate([
62
106
 
63
107
  <button data-testid="after" type="button">After</button>
64
108
  `,
65
- })
66
- ], TngTreeHarnessComponent);
67
- export { TngTreeHarnessComponent };
109
+ }]
110
+ }] });
68
111
  export function createTreeHarnessFixture(initialState = {}) {
69
112
  TestBed.configureTestingModule({
70
113
  imports: [TngTreeHarnessComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"tng-tree.test-harness.js","sourceRoot":"","sources":["../../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/__tests__/tng-tree.test-harness.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAyB,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAA2B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAgD,MAAM,UAAU,CAAC;AAgDhJ,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClB,YAAY,GAAyD,EAAE,CAAC;IACjF,YAAY,GAA8D,SAAS,CAAC;IACpF,WAAW,GAAuB,UAAU,CAAC;IAC7C,YAAY,GAAG,KAAK,CAAC;IACrB,aAAa,GAAyB,MAAM,CAAC;IAC7C,KAAK,GAA8D,SAAS,CAAC;IAE7E,aAAa,CAAC,KAAoD;QACvE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEM,iBAAiB;QACtB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,CAAC;CACF,CAAA;AAfY,uBAAuB;IA9CnC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,CAAC;QAC/D,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCT;KACF,CAAC;GACW,uBAAuB,CAenC;;AASD,MAAM,UAAU,wBAAwB,CACtC,eAAwC,EAAE;IAE1C,OAAO,CAAC,sBAAsB,CAAC;QAC7B,OAAO,EAAE,CAAC,uBAAuB,CAAC;KACnC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;IACjE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IACvD,OAAO,CAAC,aAAa,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAkD;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACzE,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAAkD,EAClD,EAAU;IAEV,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,OAAO,YAAY,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC/C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAmB,EACnB,GAAW,EACX,UAAkF,EAAE;IAEpF,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE;QACzC,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;QAChB,GAAG;QACH,GAAG,OAAO;KACX,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { Component } from '@angular/core';\nimport { type ComponentFixture, TestBed } from '@angular/core/testing';\nimport { type TngTreeOrientation, TngTree, TngTreeGroup, TngTreeIndicator, TngTreeItem, type TngTreeSelectionMode, type TngTreeValue } from '../index';\n\n@Component({\n standalone: true,\n imports: [TngTree, TngTreeItem, TngTreeGroup, TngTreeIndicator],\n template: `\n <button data-testid=\"before\" type=\"button\">Before</button>\n\n <div\n data-testid=\"tree\"\n tngTree\n [defaultValue]=\"defaultValue\"\n [orientation]=\"orientation\"\n [selectionMode]=\"selectionMode\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n >\n <div\n tngTreeItem\n [defaultExpanded]=\"rootExpanded\"\n [value]=\"'root-a'\"\n aria-label=\"Alpha\"\n id=\"root-a\"\n >\n <span tngTreeIndicator aria-hidden=\"true\">▶</span>\n Root A\n\n <div tngTreeGroup>\n <div tngTreeItem [value]=\"'a-1'\" aria-label=\"Able\" id=\"a-1\">A-1</div>\n <div\n tngTreeItem\n [disabled]=\"true\"\n [value]=\"'a-2'\"\n aria-label=\"Beta Disabled\"\n id=\"a-2\"\n >\n A-2 Disabled\n </div>\n <div tngTreeItem [value]=\"'a-3'\" aria-label=\"Charlie\" id=\"a-3\">A-3</div>\n </div>\n </div>\n\n <div tngTreeItem [value]=\"'root-b'\" aria-label=\"Beta\" id=\"root-b\">Root B</div>\n </div>\n\n <button data-testid=\"after\" type=\"button\">After</button>\n `,\n})\nexport class TngTreeHarnessComponent {\n public readonly valueChanges: Array<TngTreeValue | readonly TngTreeValue[] | null> = [];\n public defaultValue: TngTreeValue | readonly TngTreeValue[] | null | undefined = undefined;\n public orientation: TngTreeOrientation = 'vertical';\n public rootExpanded = false;\n public selectionMode: TngTreeSelectionMode = 'none';\n public value: TngTreeValue | readonly TngTreeValue[] | null | undefined = undefined;\n\n public onValueChange(value: TngTreeValue | readonly TngTreeValue[] | null): void {\n this.valueChanges.push(value);\n }\n\n public resetValueChanges(): void {\n this.valueChanges.length = 0;\n }\n}\n\ntype TreeHarnessInitialState = Partial<\n Pick<\n TngTreeHarnessComponent,\n 'defaultValue' | 'orientation' | 'rootExpanded' | 'selectionMode' | 'value'\n >\n>;\n\nexport function createTreeHarnessFixture(\n initialState: TreeHarnessInitialState = {},\n): ComponentFixture<TngTreeHarnessComponent> {\n TestBed.configureTestingModule({\n imports: [TngTreeHarnessComponent],\n });\n const fixture = TestBed.createComponent(TngTreeHarnessComponent);\n Object.assign(fixture.componentInstance, initialState);\n fixture.detectChanges();\n return fixture;\n}\n\nexport function getTreeHost(fixture: ComponentFixture<TngTreeHarnessComponent>): HTMLElement {\n const tree = fixture.nativeElement.querySelector('[data-testid=\"tree\"]');\n if (!(tree instanceof HTMLElement)) {\n throw new Error('Expected tree host element.');\n }\n return tree;\n}\n\nexport function getItem(\n fixture: ComponentFixture<TngTreeHarnessComponent>,\n id: string,\n): HTMLElement {\n const element = fixture.nativeElement.querySelector(`#${id}`);\n if (!(element instanceof HTMLElement)) {\n throw new Error(`Expected tree item #${id}.`);\n }\n return element;\n}\n\nexport function clickElement(element: HTMLElement): MouseEvent {\n const event = new MouseEvent('click', { bubbles: true, cancelable: true });\n element.dispatchEvent(event);\n return event;\n}\n\nexport function dispatchKeydown(\n target: HTMLElement,\n key: string,\n options: Pick<KeyboardEventInit, 'shiftKey' | 'ctrlKey' | 'metaKey' | 'altKey'> = {},\n): KeyboardEvent {\n const event = new KeyboardEvent('keydown', {\n bubbles: true,\n cancelable: true,\n key,\n ...options,\n });\n target.dispatchEvent(event);\n return event;\n}\n"]}
1
+ {"version":3,"file":"tng-tree.test-harness.js","sourceRoot":"","sources":["../../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/__tests__/tng-tree.test-harness.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component } from '@angular/core';\nimport { type ComponentFixture, TestBed } from '@angular/core/testing';\nimport { type TngTreeOrientation, TngTree, TngTreeGroup, TngTreeIndicator, TngTreeItem, type TngTreeSelectionMode, type TngTreeValue } from '../index';\n\n@Component({\n standalone: true,\n imports: [TngTree, TngTreeItem, TngTreeGroup, TngTreeIndicator],\n template: `\n <button data-testid=\"before\" type=\"button\">Before</button>\n\n <div\n data-testid=\"tree\"\n tngTree\n [defaultValue]=\"defaultValue\"\n [orientation]=\"orientation\"\n [selectionMode]=\"selectionMode\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n >\n <div\n tngTreeItem\n [defaultExpanded]=\"rootExpanded\"\n [value]=\"'root-a'\"\n aria-label=\"Alpha\"\n id=\"root-a\"\n >\n <span tngTreeIndicator aria-hidden=\"true\">▶</span>\n Root A\n\n <div tngTreeGroup>\n <div tngTreeItem [value]=\"'a-1'\" aria-label=\"Able\" id=\"a-1\">A-1</div>\n <div\n tngTreeItem\n [disabled]=\"true\"\n [value]=\"'a-2'\"\n aria-label=\"Beta Disabled\"\n id=\"a-2\"\n >\n A-2 Disabled\n </div>\n <div tngTreeItem [value]=\"'a-3'\" aria-label=\"Charlie\" id=\"a-3\">A-3</div>\n </div>\n </div>\n\n <div tngTreeItem [value]=\"'root-b'\" aria-label=\"Beta\" id=\"root-b\">Root B</div>\n </div>\n\n <button data-testid=\"after\" type=\"button\">After</button>\n `,\n})\nexport class TngTreeHarnessComponent {\n public readonly valueChanges: Array<TngTreeValue | readonly TngTreeValue[] | null> = [];\n public defaultValue: TngTreeValue | readonly TngTreeValue[] | null | undefined = undefined;\n public orientation: TngTreeOrientation = 'vertical';\n public rootExpanded = false;\n public selectionMode: TngTreeSelectionMode = 'none';\n public value: TngTreeValue | readonly TngTreeValue[] | null | undefined = undefined;\n\n public onValueChange(value: TngTreeValue | readonly TngTreeValue[] | null): void {\n this.valueChanges.push(value);\n }\n\n public resetValueChanges(): void {\n this.valueChanges.length = 0;\n }\n}\n\ntype TreeHarnessInitialState = Partial<\n Pick<\n TngTreeHarnessComponent,\n 'defaultValue' | 'orientation' | 'rootExpanded' | 'selectionMode' | 'value'\n >\n>;\n\nexport function createTreeHarnessFixture(\n initialState: TreeHarnessInitialState = {},\n): ComponentFixture<TngTreeHarnessComponent> {\n TestBed.configureTestingModule({\n imports: [TngTreeHarnessComponent],\n });\n const fixture = TestBed.createComponent(TngTreeHarnessComponent);\n Object.assign(fixture.componentInstance, initialState);\n fixture.detectChanges();\n return fixture;\n}\n\nexport function getTreeHost(fixture: ComponentFixture<TngTreeHarnessComponent>): HTMLElement {\n const tree = fixture.nativeElement.querySelector('[data-testid=\"tree\"]');\n if (!(tree instanceof HTMLElement)) {\n throw new Error('Expected tree host element.');\n }\n return tree;\n}\n\nexport function getItem(\n fixture: ComponentFixture<TngTreeHarnessComponent>,\n id: string,\n): HTMLElement {\n const element = fixture.nativeElement.querySelector(`#${id}`);\n if (!(element instanceof HTMLElement)) {\n throw new Error(`Expected tree item #${id}.`);\n }\n return element;\n}\n\nexport function clickElement(element: HTMLElement): MouseEvent {\n const event = new MouseEvent('click', { bubbles: true, cancelable: true });\n element.dispatchEvent(event);\n return event;\n}\n\nexport function dispatchKeydown(\n target: HTMLElement,\n key: string,\n options: Pick<KeyboardEventInit, 'shiftKey' | 'ctrlKey' | 'metaKey' | 'altKey'> = {},\n): KeyboardEvent {\n const event = new KeyboardEvent('keydown', {\n bubbles: true,\n cancelable: true,\n key,\n ...options,\n });\n target.dispatchEvent(event);\n return event;\n}\n"]}
@@ -1,10 +1,13 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { TngTreeItem } from './tng-tree-item';
3
+ import * as i0 from "@angular/core";
3
4
  export declare class TngTreeGroup implements OnInit, OnDestroy {
4
5
  readonly parentItem: TngTreeItem | null;
5
6
  protected readonly dataSlot: "tree-group";
6
7
  protected readonly role: "group";
7
8
  ngOnInit(): void;
8
9
  ngOnDestroy(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngTreeGroup, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngTreeGroup, "[tngTreeGroup]", ["tngTreeGroup"], {}, {}, never, never, true, never>;
9
12
  }
10
13
  //# sourceMappingURL=tng-tree-group.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-tree-group.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACT,MAAM,EACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,qBAKa,YAAa,YAAW,MAAM,EAAE,SAAS;IACpD,SAAgB,UAAU,qBAA2D;IAGrF,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;IAGpD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAE3C,QAAQ,IAAI,IAAI;IAIhB,WAAW,IAAI,IAAI;CAGpB"}
1
+ {"version":3,"file":"tng-tree-group.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACT,MAAM,EACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;;AAE9C,qBAKa,YAAa,YAAW,MAAM,EAAE,SAAS;IACpD,SAAgB,UAAU,qBAA2D;IAGrF,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;IAGpD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAE3C,QAAQ,IAAI,IAAI;IAIhB,WAAW,IAAI,IAAI;yCAbR,YAAY;2CAAZ,YAAY;CAgBxB"}
@@ -1,7 +1,7 @@
1
- import { __decorate } from "tslib";
2
1
  import { Directive, HostBinding, inject, } from '@angular/core';
3
2
  import { TngTreeItem } from './tng-tree-item';
4
- let TngTreeGroup = class TngTreeGroup {
3
+ import * as i0 from "@angular/core";
4
+ export class TngTreeGroup {
5
5
  parentItem = inject(TngTreeItem, { optional: true, skipSelf: true });
6
6
  dataSlot = 'tree-group';
7
7
  role = 'group';
@@ -11,19 +11,21 @@ let TngTreeGroup = class TngTreeGroup {
11
11
  ngOnDestroy() {
12
12
  this.parentItem?.unregisterChildGroup();
13
13
  }
14
- };
15
- __decorate([
16
- HostBinding('attr.data-slot')
17
- ], TngTreeGroup.prototype, "dataSlot", void 0);
18
- __decorate([
19
- HostBinding('attr.role')
20
- ], TngTreeGroup.prototype, "role", void 0);
21
- TngTreeGroup = __decorate([
22
- Directive({
23
- selector: '[tngTreeGroup]',
24
- exportAs: 'tngTreeGroup',
25
- standalone: true,
26
- })
27
- ], TngTreeGroup);
28
- export { TngTreeGroup };
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngTreeGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
15
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngTreeGroup, isStandalone: true, selector: "[tngTreeGroup]", host: { properties: { "attr.data-slot": "this.dataSlot", "attr.role": "this.role" } }, exportAs: ["tngTreeGroup"], ngImport: i0 });
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngTreeGroup, decorators: [{
18
+ type: Directive,
19
+ args: [{
20
+ selector: '[tngTreeGroup]',
21
+ exportAs: 'tngTreeGroup',
22
+ standalone: true,
23
+ }]
24
+ }], propDecorators: { dataSlot: [{
25
+ type: HostBinding,
26
+ args: ['attr.data-slot']
27
+ }], role: [{
28
+ type: HostBinding,
29
+ args: ['attr.role']
30
+ }] } });
29
31
  //# sourceMappingURL=tng-tree-group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-tree-group.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-group.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EAET,WAAW,EACX,MAAM,GAGP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAOvC,IAAM,YAAY,GAAlB,MAAM,YAAY;IACP,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAGlE,QAAQ,GAAG,YAAqB,CAAC;IAGjC,IAAI,GAAG,OAAgB,CAAC;IAE3C,QAAQ;QACN,IAAI,CAAC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACxC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,UAAU,EAAE,oBAAoB,EAAE,CAAC;IAC1C,CAAC;CACF,CAAA;AAZoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;8CACsB;AAGjC;IADlB,WAAW,CAAC,WAAW,CAAC;0CACkB;AAPhC,YAAY;IALxB,SAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,cAAc;QACxB,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,YAAY,CAgBxB","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n inject,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { TngTreeItem } from './tng-tree-item';\n\n@Directive({\n selector: '[tngTreeGroup]',\n exportAs: 'tngTreeGroup',\n standalone: true,\n})\nexport class TngTreeGroup implements OnInit, OnDestroy {\n public readonly parentItem = inject(TngTreeItem, { optional: true, skipSelf: true });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tree-group' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'group' as const;\n\n ngOnInit(): void {\n this.parentItem?.registerChildGroup();\n }\n\n ngOnDestroy(): void {\n this.parentItem?.unregisterChildGroup();\n }\n}\n"]}
1
+ {"version":3,"file":"tng-tree-group.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-group.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,WAAW,EACX,MAAM,GAGP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;;AAO9C,MAAM,OAAO,YAAY;IACP,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAGlE,QAAQ,GAAG,YAAqB,CAAC;IAGjC,IAAI,GAAG,OAAgB,CAAC;IAE3C,QAAQ;QACN,IAAI,CAAC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACxC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,UAAU,EAAE,oBAAoB,EAAE,CAAC;IAC1C,CAAC;uGAfU,YAAY;2FAAZ,YAAY;;2FAAZ,YAAY;kBALxB,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,cAAc;oBACxB,UAAU,EAAE,IAAI;iBACjB;;sBAIE,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,WAAW","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n inject,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { TngTreeItem } from './tng-tree-item';\n\n@Directive({\n selector: '[tngTreeGroup]',\n exportAs: 'tngTreeGroup',\n standalone: true,\n})\nexport class TngTreeGroup implements OnInit, OnDestroy {\n public readonly parentItem = inject(TngTreeItem, { optional: true, skipSelf: true });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tree-group' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'group' as const;\n\n ngOnInit(): void {\n this.parentItem?.registerChildGroup();\n }\n\n ngOnDestroy(): void {\n this.parentItem?.unregisterChildGroup();\n }\n}\n"]}
@@ -1,8 +1,11 @@
1
+ import * as i0 from "@angular/core";
1
2
  export declare class TngTreeIndicator {
2
3
  private readonly item;
3
4
  private readonly tree;
4
5
  protected readonly dataSlot: "tree-indicator";
5
6
  protected get dataExpanded(): 'true' | 'false';
6
7
  protected onClick(event: MouseEvent): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngTreeIndicator, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngTreeIndicator, "[tngTreeIndicator]", ["tngTreeIndicator"], {}, {}, never, never, true, never>;
7
10
  }
8
11
  //# sourceMappingURL=tng-tree-indicator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-tree-indicator.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-indicator.ts"],"names":[],"mappings":"AASA,qBAKa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2C;IAChE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAG5D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,gBAAgB,CAAU;IAGxD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAE7C;IAGD,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAM3C"}
1
+ {"version":3,"file":"tng-tree-indicator.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-indicator.ts"],"names":[],"mappings":";AASA,qBAKa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2C;IAChE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAG5D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,gBAAgB,CAAU;IAGxD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAE7C;IAGD,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;yCAb/B,gBAAgB;2CAAhB,gBAAgB;CAmB5B"}
@@ -1,8 +1,8 @@
1
- import { __decorate } from "tslib";
2
1
  import { Directive, HostBinding, HostListener, inject, } from '@angular/core';
3
2
  import { TngTree } from './tng-tree';
4
3
  import { TngTreeItem } from './tng-tree-item';
5
- let TngTreeIndicator = class TngTreeIndicator {
4
+ import * as i0 from "@angular/core";
5
+ export class TngTreeIndicator {
6
6
  item = inject(TngTreeItem, { optional: true });
7
7
  tree = inject(TngTree, { optional: true });
8
8
  dataSlot = 'tree-indicator';
@@ -15,22 +15,24 @@ let TngTreeIndicator = class TngTreeIndicator {
15
15
  this.tree.onIndicatorClicked(this.item);
16
16
  }
17
17
  }
18
- };
19
- __decorate([
20
- HostBinding('attr.data-slot')
21
- ], TngTreeIndicator.prototype, "dataSlot", void 0);
22
- __decorate([
23
- HostBinding('attr.data-expanded')
24
- ], TngTreeIndicator.prototype, "dataExpanded", null);
25
- __decorate([
26
- HostListener('click', ['$event'])
27
- ], TngTreeIndicator.prototype, "onClick", null);
28
- TngTreeIndicator = __decorate([
29
- Directive({
30
- selector: '[tngTreeIndicator]',
31
- exportAs: 'tngTreeIndicator',
32
- standalone: true,
33
- })
34
- ], TngTreeIndicator);
35
- export { TngTreeIndicator };
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngTreeIndicator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
19
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngTreeIndicator, isStandalone: true, selector: "[tngTreeIndicator]", host: { listeners: { "click": "onClick($event)" }, properties: { "attr.data-slot": "this.dataSlot", "attr.data-expanded": "this.dataExpanded" } }, exportAs: ["tngTreeIndicator"], ngImport: i0 });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngTreeIndicator, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: '[tngTreeIndicator]',
25
+ exportAs: 'tngTreeIndicator',
26
+ standalone: true,
27
+ }]
28
+ }], propDecorators: { dataSlot: [{
29
+ type: HostBinding,
30
+ args: ['attr.data-slot']
31
+ }], dataExpanded: [{
32
+ type: HostBinding,
33
+ args: ['attr.data-expanded']
34
+ }], onClick: [{
35
+ type: HostListener,
36
+ args: ['click', ['$event']]
37
+ }] } });
36
38
  //# sourceMappingURL=tng-tree-indicator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-tree-indicator.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-indicator.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAOvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACV,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAGzC,QAAQ,GAAG,gBAAyB,CAAC;IAGxD,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACpD,CAAC;IAGS,OAAO,CAAC,KAAiB;QACjC,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF,CAAA;AAdoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;kDAC0B;AAGxD;IADC,WAAW,CAAC,oBAAoB,CAAC;oDAGjC;AAGS;IADT,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;+CAMjC;AAlBU,gBAAgB;IAL5B,SAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,gBAAgB,CAmB5B","sourcesContent":["import {\n Directive,\n HostBinding,\n HostListener,\n inject,\n} from '@angular/core';\nimport { TngTree } from './tng-tree';\nimport { TngTreeItem } from './tng-tree-item';\n\n@Directive({\n selector: '[tngTreeIndicator]',\n exportAs: 'tngTreeIndicator',\n standalone: true,\n})\nexport class TngTreeIndicator {\n private readonly item = inject(TngTreeItem, { optional: true });\n private readonly tree = inject(TngTree, { optional: true });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tree-indicator' as const;\n\n @HostBinding('attr.data-expanded')\n protected get dataExpanded(): 'true' | 'false' {\n return this.item?.isExpanded() ? 'true' : 'false';\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n event.stopPropagation();\n if (this.item && this.tree) {\n this.tree.onIndicatorClicked(this.item);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"tng-tree-indicator.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-indicator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;;AAO9C,MAAM,OAAO,gBAAgB;IACV,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAGzC,QAAQ,GAAG,gBAAyB,CAAC;IAExD,IACc,YAAY;QACxB,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACpD,CAAC;IAGS,OAAO,CAAC,KAAiB;QACjC,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;uGAlBU,gBAAgB;2FAAhB,gBAAgB;;2FAAhB,gBAAgB;kBAL5B,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;oBAC9B,QAAQ,EAAE,kBAAkB;oBAC5B,UAAU,EAAE,IAAI;iBACjB;;sBAKE,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,oBAAoB;;sBAKhC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC","sourcesContent":["import {\n Directive,\n HostBinding,\n HostListener,\n inject,\n} from '@angular/core';\nimport { TngTree } from './tng-tree';\nimport { TngTreeItem } from './tng-tree-item';\n\n@Directive({\n selector: '[tngTreeIndicator]',\n exportAs: 'tngTreeIndicator',\n standalone: true,\n})\nexport class TngTreeIndicator {\n private readonly item = inject(TngTreeItem, { optional: true });\n private readonly tree = inject(TngTree, { optional: true });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tree-indicator' as const;\n\n @HostBinding('attr.data-expanded')\n protected get dataExpanded(): 'true' | 'false' {\n return this.item?.isExpanded() ? 'true' : 'false';\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n event.stopPropagation();\n if (this.item && this.tree) {\n this.tree.onIndicatorClicked(this.item);\n }\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { OnInit, OnDestroy } from '@angular/core';
2
2
  import { type TngTreeValue } from './tng-tree.transforms';
3
+ import * as i0 from "@angular/core";
3
4
  export declare class TngTreeItem implements OnInit, OnDestroy {
4
5
  private readonly hostRef;
5
6
  private readonly tree;
@@ -32,5 +33,7 @@ export declare class TngTreeItem implements OnInit, OnDestroy {
32
33
  protected onFocus(): void;
33
34
  protected onClick(event: MouseEvent): void;
34
35
  focusHost(): void;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngTreeItem, never>;
37
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngTreeItem, "[tngTreeItem]", ["tngTreeItem"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "defaultExpanded": { "alias": "defaultExpanded"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "expandedChange": "expandedChange"; }, never, never, true, never>;
35
38
  }
36
39
  //# sourceMappingURL=tng-tree-item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-tree-item.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-item.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAE/B,qBAKa,WAAY,YAAW,MAAM,EAAE,SAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0H;IAEtJ,SAAgB,KAAK,0EAElB;IAEH,SAAgB,QAAQ,iFAErB;IAEH,SAAgB,eAAe,qEAE5B;IAEH,SAAgB,QAAQ,qEAErB;IAEH,SAAgB,cAAc,oDAAqB;IAEnD,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,iBAAiB,CAAS;IAGlC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,WAAW,CAAU;IAGnD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAG9C,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,IAAI,CAG1C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,IAAI,CAG1C;IAGD,SAAS,KAAK,QAAQ,IAAI,MAAM,CAE/B;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAE7C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAG7C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAE7C;IAEM,QAAQ,IAAI,IAAI;IAOhB,WAAW,IAAI,IAAI;IAInB,QAAQ,IAAI,YAAY;IAIxB,cAAc,IAAI,WAAW;IAI7B,aAAa,IAAI,WAAW,GAAG,IAAI;IAInC,UAAU,IAAI,OAAO;IAIrB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQpC,SAAS,IAAI,OAAO;IAIpB,kBAAkB,IAAI,IAAI;IAI1B,oBAAoB,IAAI,IAAI;IAKnC,SAAS,CAAC,OAAO,IAAI,IAAI;IAKzB,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMnC,SAAS,IAAI,IAAI;CAGzB"}
1
+ {"version":3,"file":"tng-tree-item.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-item.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;;AAE/B,qBAKa,WAAY,YAAW,MAAM,EAAE,SAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0H;IAEtJ,SAAgB,KAAK,0EAElB;IAEH,SAAgB,QAAQ,iFAErB;IAEH,SAAgB,eAAe,qEAE5B;IAEH,SAAgB,QAAQ,qEAErB;IAEH,SAAgB,cAAc,oDAAqB;IAEnD,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,iBAAiB,CAAS;IAGlC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,WAAW,CAAU;IAGnD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAG9C,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,IAAI,CAG1C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,IAAI,CAG1C;IAGD,SAAS,KAAK,QAAQ,IAAI,MAAM,CAE/B;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAE7C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAG7C;IAGD,SAAS,KAAK,YAAY,IAAI,MAAM,GAAG,OAAO,CAE7C;IAEM,QAAQ,IAAI,IAAI;IAOhB,WAAW,IAAI,IAAI;IAInB,QAAQ,IAAI,YAAY;IAIxB,cAAc,IAAI,WAAW;IAI7B,aAAa,IAAI,WAAW,GAAG,IAAI;IAInC,UAAU,IAAI,OAAO;IAIrB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQpC,SAAS,IAAI,OAAO;IAIpB,kBAAkB,IAAI,IAAI;IAI1B,oBAAoB,IAAI,IAAI;IAKnC,SAAS,CAAC,OAAO,IAAI,IAAI;IAKzB,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMnC,SAAS,IAAI,IAAI;yCA5Hb,WAAW;2CAAX,WAAW;CA+HvB"}
@@ -1,24 +1,16 @@
1
- import { __decorate } from "tslib";
2
1
  import { Directive, ElementRef, HostBinding, HostListener, inject, input, output, forwardRef, } from '@angular/core';
3
2
  import { TngTree } from './tng-tree';
4
3
  import { TngTreeGroup } from './tng-tree-group';
5
4
  import { normalizeOptionalBooleanAttribute, normalizeTreeBooleanInput, normalizeTreeValue, } from './tng-tree.transforms';
6
- let TngTreeItem = class TngTreeItem {
5
+ import * as i0 from "@angular/core";
6
+ export class TngTreeItem {
7
7
  hostRef = inject(ElementRef);
8
8
  tree = inject(TngTree, { optional: true });
9
9
  parentGroup = inject(forwardRef(() => TngTreeGroup), { optional: true, skipSelf: true });
10
- value = input.required({
11
- transform: normalizeTreeValue,
12
- });
13
- expanded = input(undefined, {
14
- transform: normalizeOptionalBooleanAttribute,
15
- });
16
- defaultExpanded = input(false, {
17
- transform: normalizeTreeBooleanInput,
18
- });
19
- disabled = input(false, {
20
- transform: normalizeTreeBooleanInput,
21
- });
10
+ value = input.required({ ...(ngDevMode ? { debugName: "value" } : {}), transform: normalizeTreeValue });
11
+ expanded = input(undefined, { ...(ngDevMode ? { debugName: "expanded" } : {}), transform: normalizeOptionalBooleanAttribute });
12
+ defaultExpanded = input(false, { ...(ngDevMode ? { debugName: "defaultExpanded" } : {}), transform: normalizeTreeBooleanInput });
13
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: normalizeTreeBooleanInput });
22
14
  expandedChange = output();
23
15
  uncontrolledExpanded = false;
24
16
  hasChildrenStatus = false;
@@ -97,43 +89,45 @@ let TngTreeItem = class TngTreeItem {
97
89
  focusHost() {
98
90
  this.hostRef.nativeElement.focus();
99
91
  }
100
- };
101
- __decorate([
102
- HostBinding('attr.data-slot')
103
- ], TngTreeItem.prototype, "dataSlot", void 0);
104
- __decorate([
105
- HostBinding('attr.role')
106
- ], TngTreeItem.prototype, "role", void 0);
107
- __decorate([
108
- HostBinding('attr.aria-selected')
109
- ], TngTreeItem.prototype, "ariaSelected", null);
110
- __decorate([
111
- HostBinding('attr.aria-expanded')
112
- ], TngTreeItem.prototype, "ariaExpanded", null);
113
- __decorate([
114
- HostBinding('attr.tabindex')
115
- ], TngTreeItem.prototype, "tabIndex", null);
116
- __decorate([
117
- HostBinding('attr.data-expanded')
118
- ], TngTreeItem.prototype, "dataExpanded", null);
119
- __decorate([
120
- HostBinding('attr.data-selected')
121
- ], TngTreeItem.prototype, "dataSelected", null);
122
- __decorate([
123
- HostBinding('attr.data-disabled')
124
- ], TngTreeItem.prototype, "dataDisabled", null);
125
- __decorate([
126
- HostListener('focus')
127
- ], TngTreeItem.prototype, "onFocus", null);
128
- __decorate([
129
- HostListener('click', ['$event'])
130
- ], TngTreeItem.prototype, "onClick", null);
131
- TngTreeItem = __decorate([
132
- Directive({
133
- selector: '[tngTreeItem]',
134
- exportAs: 'tngTreeItem',
135
- standalone: true,
136
- })
137
- ], TngTreeItem);
138
- export { TngTreeItem };
92
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngTreeItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
93
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.1", type: TngTreeItem, isStandalone: true, selector: "[tngTreeItem]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, defaultExpanded: { classPropertyName: "defaultExpanded", publicName: "defaultExpanded", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandedChange: "expandedChange" }, host: { listeners: { "focus": "onFocus()", "click": "onClick($event)" }, properties: { "attr.data-slot": "this.dataSlot", "attr.role": "this.role", "attr.aria-selected": "this.ariaSelected", "attr.aria-expanded": "this.ariaExpanded", "attr.tabindex": "this.tabIndex", "attr.data-expanded": "this.dataExpanded", "attr.data-selected": "this.dataSelected", "attr.data-disabled": "this.dataDisabled" } }, exportAs: ["tngTreeItem"], ngImport: i0 });
94
+ }
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngTreeItem, decorators: [{
96
+ type: Directive,
97
+ args: [{
98
+ selector: '[tngTreeItem]',
99
+ exportAs: 'tngTreeItem',
100
+ standalone: true,
101
+ }]
102
+ }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }], defaultExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultExpanded", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], expandedChange: [{ type: i0.Output, args: ["expandedChange"] }], dataSlot: [{
103
+ type: HostBinding,
104
+ args: ['attr.data-slot']
105
+ }], role: [{
106
+ type: HostBinding,
107
+ args: ['attr.role']
108
+ }], ariaSelected: [{
109
+ type: HostBinding,
110
+ args: ['attr.aria-selected']
111
+ }], ariaExpanded: [{
112
+ type: HostBinding,
113
+ args: ['attr.aria-expanded']
114
+ }], tabIndex: [{
115
+ type: HostBinding,
116
+ args: ['attr.tabindex']
117
+ }], dataExpanded: [{
118
+ type: HostBinding,
119
+ args: ['attr.data-expanded']
120
+ }], dataSelected: [{
121
+ type: HostBinding,
122
+ args: ['attr.data-selected']
123
+ }], dataDisabled: [{
124
+ type: HostBinding,
125
+ args: ['attr.data-disabled']
126
+ }], onFocus: [{
127
+ type: HostListener,
128
+ args: ['focus']
129
+ }], onClick: [{
130
+ type: HostListener,
131
+ args: ['click', ['$event']]
132
+ }] } });
139
133
  //# sourceMappingURL=tng-tree-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-tree-item.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-item.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n input,\n output,\n forwardRef,\n} from '@angular/core';\nimport type { OnInit, OnDestroy } from '@angular/core';\nimport { TngTree } from './tng-tree';\nimport { TngTreeGroup } from './tng-tree-group';\nimport {\n normalizeOptionalBooleanAttribute,\n normalizeTreeBooleanInput,\n normalizeTreeValue,\n type TngTreeValue,\n} from './tng-tree.transforms';\n\n@Directive({\n selector: '[tngTreeItem]',\n exportAs: 'tngTreeItem',\n standalone: true,\n})\nexport class TngTreeItem implements OnInit, OnDestroy {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly tree = inject(TngTree, { optional: true });\n private readonly parentGroup: TngTreeGroup | null = inject(forwardRef(() => TngTreeGroup), { optional: true, skipSelf: true }) as TngTreeGroup | null;\n\n public readonly value = input.required<TngTreeValue, unknown>({\n transform: normalizeTreeValue,\n });\n \n public readonly expanded = input<boolean, unknown>(undefined, {\n transform: normalizeOptionalBooleanAttribute,\n });\n \n public readonly defaultExpanded = input<boolean, unknown>(false, {\n transform: normalizeTreeBooleanInput,\n });\n \n public readonly disabled = input<boolean, unknown>(false, {\n transform: normalizeTreeBooleanInput,\n });\n\n public readonly expandedChange = output<boolean>();\n\n private uncontrolledExpanded = false;\n private hasChildrenStatus = false;\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tree-item' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'treeitem' as const;\n\n @HostBinding('attr.aria-selected')\n protected get ariaSelected(): string | null {\n if (!this.tree || this.tree.selectionMode() === 'none') return null;\n return this.tree.isItemSelected(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-expanded')\n protected get ariaExpanded(): string | null {\n if (!this.canExpand()) return null;\n return this.isExpanded() ? 'true' : 'false';\n }\n\n @HostBinding('attr.tabindex')\n protected get tabIndex(): string {\n return this.tree ? this.tree.getTriggerTabIndex(this) : '-1';\n }\n\n @HostBinding('attr.data-expanded')\n protected get dataExpanded(): 'true' | 'false' {\n return this.isExpanded() ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-selected')\n protected get dataSelected(): 'true' | 'false' {\n if (!this.tree || this.tree.selectionMode() === 'none') return 'false';\n return this.tree.isItemSelected(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.tree?.isItemDisabled(this) ? 'true' : 'false';\n }\n\n public ngOnInit(): void {\n if (this.expanded() === undefined) {\n this.uncontrolledExpanded = this.defaultExpanded();\n }\n this.tree?.registerItem(this);\n }\n\n public ngOnDestroy(): void {\n this.tree?.unregisterItem(this);\n }\n\n public getValue(): TngTreeValue {\n return this.value();\n }\n\n public getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n public getParentItem(): TngTreeItem | null {\n return this.parentGroup?.parentItem ?? null;\n }\n\n public isExpanded(): boolean {\n return this.expanded() ?? this.uncontrolledExpanded;\n }\n\n public setExpanded(expanded: boolean): void {\n if (this.disabled()) return;\n if (this.expanded() === undefined) {\n this.uncontrolledExpanded = expanded;\n }\n this.expandedChange.emit(expanded);\n }\n\n public canExpand(): boolean {\n return this.hasChildrenStatus || this.expanded() !== undefined || this.defaultExpanded();\n }\n\n public registerChildGroup(): void {\n this.hasChildrenStatus = true;\n }\n\n public unregisterChildGroup(): void {\n this.hasChildrenStatus = false;\n }\n\n @HostListener('focus')\n protected onFocus(): void {\n this.tree?.onItemFocused(this);\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n event.stopPropagation();\n this.tree?.onItemClicked(this);\n this.focusHost(); // Ensure it receives focus mentally on click\n }\n\n public focusHost(): void {\n this.hostRef.nativeElement.focus();\n }\n}\n"]}
1
+ {"version":3,"file":"tng-tree-item.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree-item.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EACZ,MAAM,EACN,KAAK,EACL,MAAM,EACN,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,iCAAiC,EACjC,yBAAyB,EACzB,kBAAkB,GAEnB,MAAM,uBAAuB,CAAC;;AAO/B,MAAM,OAAO,WAAW;IACL,OAAO,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;IACtD,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,WAAW,GAAwB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAwB,CAAC;IAEtI,KAAK,GAAG,KAAK,CAAC,QAAQ,iDACpC,SAAS,EAAE,kBAAkB,GAC7B,CAAC;IAEa,QAAQ,GAAG,KAAK,CAAmB,SAAS,qDAC1D,SAAS,EAAE,iCAAiC,GAC5C,CAAC;IAEa,eAAe,GAAG,KAAK,CAAmB,KAAK,4DAC7D,SAAS,EAAE,yBAAyB,GACpC,CAAC;IAEa,QAAQ,GAAG,KAAK,CAAmB,KAAK,qDACtD,SAAS,EAAE,yBAAyB,GACpC,CAAC;IAEa,cAAc,GAAG,MAAM,EAAW,CAAC;IAE3C,oBAAoB,GAAG,KAAK,CAAC;IAC7B,iBAAiB,GAAG,KAAK,CAAC;IAGf,QAAQ,GAAG,WAAoB,CAAC;IAGhC,IAAI,GAAG,UAAmB,CAAC;IAE9C,IACc,YAAY;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3D,CAAC;IAED,IACc,YAAY;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9C,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED,IACc,YAAY;QACxB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9C,CAAC;IAED,IACc,YAAY;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5D,CAAC;IAED,IACc,YAAY;QACxB,OAAO,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5D,CAAC;IAEM,QAAQ;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IACpC,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,WAAW,EAAE,UAAU,IAAI,IAAI,CAAC;IAC9C,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,oBAAoB,CAAC;IACtD,CAAC;IAEM,WAAW,CAAC,QAAiB;QAClC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;QAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3F,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAEM,oBAAoB;QACzB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,CAAC;IAGS,OAAO;QACf,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAGS,OAAO,CAAC,KAAiB;QACjC,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,6CAA6C;IACjE,CAAC;IAEM,SAAS;QACd,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;uGA9HU,WAAW;2FAAX,WAAW;;2FAAX,WAAW;kBALvB,SAAS;mBAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,QAAQ,EAAE,aAAa;oBACvB,UAAU,EAAE,IAAI;iBACjB;;sBA2BE,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,WAAW;;sBAGvB,WAAW;uBAAC,oBAAoB;;sBAMhC,WAAW;uBAAC,oBAAoB;;sBAMhC,WAAW;uBAAC,eAAe;;sBAK3B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,oBAAoB;;sBAMhC,WAAW;uBAAC,oBAAoB;;sBAoDhC,YAAY;uBAAC,OAAO;;sBAKpB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n input,\n output,\n forwardRef,\n} from '@angular/core';\nimport type { OnInit, OnDestroy } from '@angular/core';\nimport { TngTree } from './tng-tree';\nimport { TngTreeGroup } from './tng-tree-group';\nimport {\n normalizeOptionalBooleanAttribute,\n normalizeTreeBooleanInput,\n normalizeTreeValue,\n type TngTreeValue,\n} from './tng-tree.transforms';\n\n@Directive({\n selector: '[tngTreeItem]',\n exportAs: 'tngTreeItem',\n standalone: true,\n})\nexport class TngTreeItem implements OnInit, OnDestroy {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly tree = inject(TngTree, { optional: true });\n private readonly parentGroup: TngTreeGroup | null = inject(forwardRef(() => TngTreeGroup), { optional: true, skipSelf: true }) as TngTreeGroup | null;\n\n public readonly value = input.required<TngTreeValue, unknown>({\n transform: normalizeTreeValue,\n });\n \n public readonly expanded = input<boolean, unknown>(undefined, {\n transform: normalizeOptionalBooleanAttribute,\n });\n \n public readonly defaultExpanded = input<boolean, unknown>(false, {\n transform: normalizeTreeBooleanInput,\n });\n \n public readonly disabled = input<boolean, unknown>(false, {\n transform: normalizeTreeBooleanInput,\n });\n\n public readonly expandedChange = output<boolean>();\n\n private uncontrolledExpanded = false;\n private hasChildrenStatus = false;\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tree-item' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'treeitem' as const;\n\n @HostBinding('attr.aria-selected')\n protected get ariaSelected(): string | null {\n if (!this.tree || this.tree.selectionMode() === 'none') return null;\n return this.tree.isItemSelected(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-expanded')\n protected get ariaExpanded(): string | null {\n if (!this.canExpand()) return null;\n return this.isExpanded() ? 'true' : 'false';\n }\n\n @HostBinding('attr.tabindex')\n protected get tabIndex(): string {\n return this.tree ? this.tree.getTriggerTabIndex(this) : '-1';\n }\n\n @HostBinding('attr.data-expanded')\n protected get dataExpanded(): 'true' | 'false' {\n return this.isExpanded() ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-selected')\n protected get dataSelected(): 'true' | 'false' {\n if (!this.tree || this.tree.selectionMode() === 'none') return 'false';\n return this.tree.isItemSelected(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.tree?.isItemDisabled(this) ? 'true' : 'false';\n }\n\n public ngOnInit(): void {\n if (this.expanded() === undefined) {\n this.uncontrolledExpanded = this.defaultExpanded();\n }\n this.tree?.registerItem(this);\n }\n\n public ngOnDestroy(): void {\n this.tree?.unregisterItem(this);\n }\n\n public getValue(): TngTreeValue {\n return this.value();\n }\n\n public getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n public getParentItem(): TngTreeItem | null {\n return this.parentGroup?.parentItem ?? null;\n }\n\n public isExpanded(): boolean {\n return this.expanded() ?? this.uncontrolledExpanded;\n }\n\n public setExpanded(expanded: boolean): void {\n if (this.disabled()) return;\n if (this.expanded() === undefined) {\n this.uncontrolledExpanded = expanded;\n }\n this.expandedChange.emit(expanded);\n }\n\n public canExpand(): boolean {\n return this.hasChildrenStatus || this.expanded() !== undefined || this.defaultExpanded();\n }\n\n public registerChildGroup(): void {\n this.hasChildrenStatus = true;\n }\n\n public unregisterChildGroup(): void {\n this.hasChildrenStatus = false;\n }\n\n @HostListener('focus')\n protected onFocus(): void {\n this.tree?.onItemFocused(this);\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n event.stopPropagation();\n this.tree?.onItemClicked(this);\n this.focusHost(); // Ensure it receives focus mentally on click\n }\n\n public focusHost(): void {\n this.hostRef.nativeElement.focus();\n }\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  import { OnDestroy } from '@angular/core';
2
2
  import { TngTreeItem } from './tng-tree-item';
3
3
  import { type TngTreeOrientation, type TngTreeSelectionMode, type TngTreeValue } from './tng-tree.transforms';
4
+ import * as i0 from "@angular/core";
4
5
  export type { TngTreeOrientation, TngTreeSelectionMode, TngTreeValue } from './tng-tree.transforms';
5
6
  export declare class TngTree implements OnDestroy {
6
7
  private readonly hostRef;
@@ -63,5 +64,7 @@ export declare class TngTree implements OnDestroy {
63
64
  private rebuildModel;
64
65
  private buildOrderedModelItems;
65
66
  private resolvePreferredActiveId;
67
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngTree, never>;
68
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngTree, "[tngTree]", ["tngTree"], { "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
66
69
  }
67
70
  //# sourceMappingURL=tng-tree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-tree.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tng-tree.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/tree/tng-tree.ts"],"names":[],"mappings":"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"}