@ng-nest/ui 17.0.12 → 18.0.1

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 (923) hide show
  1. package/README.md +1 -1
  2. package/affix/affix.component.d.ts +0 -2
  3. package/affix/affix.property.d.ts +12 -7
  4. package/alert/alert.component.d.ts +12 -11
  5. package/alert/alert.property.d.ts +36 -35
  6. package/anchor/anchor.component.d.ts +15 -18
  7. package/anchor/anchor.property.d.ts +17 -8
  8. package/api/api.component.d.ts +2 -7
  9. package/auto-complete/auto-complete-portal.component.d.ts +20 -25
  10. package/auto-complete/auto-complete.component.d.ts +17 -34
  11. package/auto-complete/auto-complete.property.d.ts +282 -20
  12. package/avatar/avatar.component.d.ts +29 -19
  13. package/avatar/avatar.property.d.ts +78 -12
  14. package/back-top/back-top.component.d.ts +12 -17
  15. package/back-top/back-top.property.d.ts +12 -8
  16. package/badge/badge.component.d.ts +9 -16
  17. package/badge/badge.property.d.ts +95 -13
  18. package/base-form/base-form.component.d.ts +53 -26
  19. package/base-form/base-form.module.d.ts +1 -2
  20. package/base-form/base-form.property.d.ts +173 -45
  21. package/button/button.component.d.ts +16 -14
  22. package/button/button.property.d.ts +242 -100
  23. package/button/buttons.component.d.ts +8 -10
  24. package/calendar/calendar.component.d.ts +41 -27
  25. package/calendar/calendar.property.d.ts +69 -10
  26. package/card/card.component.d.ts +4 -6
  27. package/card/card.property.d.ts +50 -9
  28. package/carousel/carousel-panel.component.d.ts +15 -14
  29. package/carousel/carousel.component.d.ts +18 -19
  30. package/carousel/carousel.property.d.ts +168 -28
  31. package/cascade/cascade-portal.component.d.ts +28 -28
  32. package/cascade/cascade.component.d.ts +24 -30
  33. package/cascade/cascade.property.d.ts +292 -20
  34. package/checkbox/checkbox.component.d.ts +17 -17
  35. package/checkbox/checkbox.property.d.ts +274 -35
  36. package/collapse/collapse-panel.component.d.ts +5 -2
  37. package/collapse/collapse.component.d.ts +3 -7
  38. package/collapse/collapse.property.d.ts +113 -20
  39. package/color/color.component.d.ts +4 -9
  40. package/color/color.property.d.ts +36 -8
  41. package/color-picker/color-picker-portal.component.d.ts +40 -52
  42. package/color-picker/color-picker.component.d.ts +19 -28
  43. package/color-picker/color-picker.property.d.ts +260 -10
  44. package/comment/comment-reply.component.d.ts +1 -8
  45. package/comment/comment.component.d.ts +4 -14
  46. package/comment/comment.property.d.ts +21 -15
  47. package/container/aside.component.d.ts +3 -8
  48. package/container/container.component.d.ts +5 -9
  49. package/container/container.property.d.ts +33 -19
  50. package/container/footer.component.d.ts +2 -5
  51. package/container/header.component.d.ts +2 -5
  52. package/container/main.component.d.ts +2 -7
  53. package/core/animation/badge.d.ts +8 -0
  54. package/core/animation/connect.d.ts +8 -1
  55. package/core/animation/consts.d.ts +4 -0
  56. package/core/animation/drop.d.ts +4 -0
  57. package/core/animation/fade.d.ts +4 -0
  58. package/core/animation/move.d.ts +4 -0
  59. package/core/animation/opacity.d.ts +4 -0
  60. package/core/animation/slide.d.ts +4 -1
  61. package/core/config/config.d.ts +174 -108
  62. package/core/config/config.service.d.ts +5 -5
  63. package/core/config/index.d.ts +1 -0
  64. package/core/functions/chunk.d.ts +12 -1
  65. package/core/functions/clone-deep.d.ts +16 -0
  66. package/core/functions/convert.d.ts +77 -4
  67. package/core/functions/csspx.d.ts +5 -0
  68. package/core/functions/date.d.ts +59 -3
  69. package/core/functions/drop.d.ts +13 -1
  70. package/core/functions/flex.d.ts +4 -0
  71. package/core/functions/group-by.d.ts +5 -1
  72. package/core/functions/guid.d.ts +2 -1
  73. package/core/functions/has-in.d.ts +4 -0
  74. package/core/functions/order-by.d.ts +5 -1
  75. package/core/functions/parent-path.d.ts +8 -0
  76. package/core/functions/property.d.ts +12 -6
  77. package/core/functions/public-api.d.ts +1 -0
  78. package/core/functions/remove.d.ts +5 -1
  79. package/core/functions/resize.d.ts +13 -1
  80. package/core/interfaces/data.type.d.ts +172 -3
  81. package/core/interfaces/identify.type.d.ts +60 -0
  82. package/core/interfaces/layout.type.d.ts +88 -37
  83. package/core/interfaces/result-list.type.d.ts +91 -3
  84. package/core/services/http.service.d.ts +0 -22
  85. package/core/services/repository.service.d.ts +1 -1
  86. package/core/services/reuse-strategy.service.d.ts +0 -22
  87. package/core/services/storage.service.d.ts +0 -21
  88. package/core/theme/theme.d.ts +45 -1
  89. package/core/theme/theme.service.d.ts +46 -11
  90. package/core/util/animation.d.ts +1 -1
  91. package/core/util/camel-to-kebab.d.ts +13 -0
  92. package/core/util/check.d.ts +10 -2
  93. package/core/util/computed-style.d.ts +8 -0
  94. package/core/util/host.d.ts +3 -2
  95. package/core/util/html.d.ts +3 -2
  96. package/core/util/kebab-to-camel.d.ts +13 -0
  97. package/core/util/log.d.ts +10 -2
  98. package/core/util/option.d.ts +3 -4
  99. package/core/util/public-api.d.ts +2 -0
  100. package/crumb/crumb.component.d.ts +1 -10
  101. package/crumb/crumb.property.d.ts +12 -8
  102. package/date-picker/date-picker-portal.component.d.ts +80 -33
  103. package/date-picker/date-picker.component.d.ts +74 -32
  104. package/date-picker/date-picker.property.d.ts +662 -214
  105. package/date-picker/date-range-portal.component.d.ts +102 -49
  106. package/date-picker/date-range.component.d.ts +87 -43
  107. package/date-picker/picker-date.component.d.ts +63 -17
  108. package/date-picker/picker-month.component.d.ts +59 -13
  109. package/date-picker/picker-quarter.component.d.ts +61 -15
  110. package/date-picker/picker-year.component.d.ts +8 -11
  111. package/description/description-item.component.d.ts +1 -1
  112. package/description/description.component.d.ts +6 -10
  113. package/description/description.property.d.ts +135 -16
  114. package/dialog/dialog-portal.component.d.ts +5 -6
  115. package/dialog/dialog-portal.directives.d.ts +1 -1
  116. package/dialog/dialog.component.d.ts +30 -23
  117. package/dialog/dialog.property.d.ts +77 -134
  118. package/doc/doc.component.d.ts +2 -5
  119. package/drag/drag.directive.d.ts +1 -1
  120. package/drag/drag.property.d.ts +4 -5
  121. package/drawer/drawer-container.component.d.ts +1 -1
  122. package/drawer/drawer-portal.component.d.ts +1 -1
  123. package/drawer/drawer.component.d.ts +15 -14
  124. package/drawer/drawer.property.d.ts +26 -18
  125. package/dropdown/dropdown-portal.component.d.ts +36 -45
  126. package/dropdown/dropdown.component.d.ts +17 -21
  127. package/dropdown/dropdown.property.d.ts +24 -21
  128. package/empty/empty.component.d.ts +0 -7
  129. package/empty/empty.property.d.ts +27 -4
  130. package/esm2022/affix/affix.component.mjs +6 -11
  131. package/esm2022/affix/affix.module.mjs +5 -5
  132. package/esm2022/affix/affix.property.mjs +22 -20
  133. package/esm2022/alert/alert.component.mjs +39 -44
  134. package/esm2022/alert/alert.module.mjs +5 -5
  135. package/esm2022/alert/alert.property.mjs +102 -107
  136. package/esm2022/anchor/anchor-inner.component.mjs +4 -4
  137. package/esm2022/anchor/anchor.component.mjs +73 -95
  138. package/esm2022/anchor/anchor.module.mjs +5 -5
  139. package/esm2022/anchor/anchor.property.mjs +45 -35
  140. package/esm2022/api/api.component.mjs +11 -14
  141. package/esm2022/api/api.module.mjs +5 -5
  142. package/esm2022/auto-complete/auto-complete-portal.component.mjs +36 -47
  143. package/esm2022/auto-complete/auto-complete.component.mjs +122 -162
  144. package/esm2022/auto-complete/auto-complete.module.mjs +5 -5
  145. package/esm2022/auto-complete/auto-complete.property.mjs +142 -55
  146. package/esm2022/avatar/avatar-group.component.mjs +4 -4
  147. package/esm2022/avatar/avatar.component.mjs +75 -81
  148. package/esm2022/avatar/avatar.module.mjs +5 -5
  149. package/esm2022/avatar/avatar.property.mjs +116 -45
  150. package/esm2022/back-top/back-top.component.mjs +57 -73
  151. package/esm2022/back-top/back-top.module.mjs +5 -5
  152. package/esm2022/back-top/back-top.property.mjs +37 -29
  153. package/esm2022/badge/badge.component.mjs +51 -59
  154. package/esm2022/badge/badge.module.mjs +5 -5
  155. package/esm2022/badge/badge.property.mjs +111 -38
  156. package/esm2022/base-form/base-form.component.mjs +89 -81
  157. package/esm2022/base-form/base-form.module.mjs +7 -8
  158. package/esm2022/base-form/base-form.property.mjs +200 -89
  159. package/esm2022/button/button.component.mjs +50 -59
  160. package/esm2022/button/button.module.mjs +5 -5
  161. package/esm2022/button/button.property.mjs +293 -98
  162. package/esm2022/button/buttons.component.mjs +35 -21
  163. package/esm2022/calendar/calendar.component.mjs +56 -84
  164. package/esm2022/calendar/calendar.module.mjs +5 -5
  165. package/esm2022/calendar/calendar.property.mjs +78 -24
  166. package/esm2022/card/card.component.mjs +10 -14
  167. package/esm2022/card/card.module.mjs +5 -5
  168. package/esm2022/card/card.property.mjs +57 -22
  169. package/esm2022/carousel/carousel-panel.component.mjs +98 -76
  170. package/esm2022/carousel/carousel.component.mjs +55 -65
  171. package/esm2022/carousel/carousel.module.mjs +5 -5
  172. package/esm2022/carousel/carousel.property.mjs +215 -85
  173. package/esm2022/cascade/cascade-portal.component.mjs +77 -69
  174. package/esm2022/cascade/cascade.component.mjs +107 -135
  175. package/esm2022/cascade/cascade.module.mjs +5 -5
  176. package/esm2022/cascade/cascade.property.mjs +137 -48
  177. package/esm2022/checkbox/checkbox.component.mjs +68 -83
  178. package/esm2022/checkbox/checkbox.module.mjs +5 -5
  179. package/esm2022/checkbox/checkbox.property.mjs +136 -73
  180. package/esm2022/collapse/collapse-panel.component.mjs +31 -21
  181. package/esm2022/collapse/collapse.component.mjs +16 -21
  182. package/esm2022/collapse/collapse.module.mjs +5 -5
  183. package/esm2022/collapse/collapse.property.mjs +156 -66
  184. package/esm2022/color/color.component.mjs +25 -26
  185. package/esm2022/color/color.module.mjs +5 -5
  186. package/esm2022/color/color.property.mjs +47 -27
  187. package/esm2022/color-picker/color-picker-portal.component.mjs +120 -130
  188. package/esm2022/color-picker/color-picker.component.mjs +76 -117
  189. package/esm2022/color-picker/color-picker.module.mjs +5 -5
  190. package/esm2022/color-picker/color-picker.property.mjs +123 -27
  191. package/esm2022/comment/comment-reply.component.mjs +9 -24
  192. package/esm2022/comment/comment.component.mjs +11 -40
  193. package/esm2022/comment/comment.module.mjs +5 -5
  194. package/esm2022/comment/comment.property.mjs +27 -50
  195. package/esm2022/container/aside.component.mjs +12 -15
  196. package/esm2022/container/container.component.mjs +21 -24
  197. package/esm2022/container/container.module.mjs +5 -5
  198. package/esm2022/container/container.property.mjs +55 -51
  199. package/esm2022/container/footer.component.mjs +14 -16
  200. package/esm2022/container/header.component.mjs +14 -16
  201. package/esm2022/container/main.component.mjs +10 -13
  202. package/esm2022/core/animation/badge.mjs +17 -3
  203. package/esm2022/core/animation/connect.mjs +17 -99
  204. package/esm2022/core/animation/consts.mjs +5 -1
  205. package/esm2022/core/animation/drop.mjs +5 -1
  206. package/esm2022/core/animation/fade.mjs +13 -3
  207. package/esm2022/core/animation/move.mjs +5 -1
  208. package/esm2022/core/animation/opacity.mjs +5 -1
  209. package/esm2022/core/animation/slide.mjs +5 -23
  210. package/esm2022/core/config/config.mjs +1 -1
  211. package/esm2022/core/config/config.service.mjs +11 -59
  212. package/esm2022/core/config/index.mjs +2 -0
  213. package/esm2022/core/functions/chunk.mjs +12 -1
  214. package/esm2022/core/functions/clone-deep.mjs +17 -1
  215. package/esm2022/core/functions/convert.mjs +110 -13
  216. package/esm2022/core/functions/csspx.mjs +17 -0
  217. package/esm2022/core/functions/date.mjs +80 -4
  218. package/esm2022/core/functions/drop.mjs +13 -1
  219. package/esm2022/core/functions/flex.mjs +5 -1
  220. package/esm2022/core/functions/group-by.mjs +5 -1
  221. package/esm2022/core/functions/guid.mjs +3 -2
  222. package/esm2022/core/functions/has-in.mjs +5 -1
  223. package/esm2022/core/functions/order-by.mjs +5 -1
  224. package/esm2022/core/functions/parent-path.mjs +9 -1
  225. package/esm2022/core/functions/property.mjs +16 -8
  226. package/esm2022/core/functions/public-api.mjs +2 -1
  227. package/esm2022/core/functions/remove.mjs +5 -1
  228. package/esm2022/core/functions/resize.mjs +7 -5
  229. package/esm2022/core/interfaces/data.type.mjs +97 -8
  230. package/esm2022/core/interfaces/identify.type.mjs +5 -2
  231. package/esm2022/core/interfaces/layout.type.mjs +1 -1
  232. package/esm2022/core/interfaces/result-list.type.mjs +1 -1
  233. package/esm2022/core/services/http.service.mjs +4 -33
  234. package/esm2022/core/services/preloading-strategy.service.mjs +4 -6
  235. package/esm2022/core/services/repository.service.mjs +1 -1
  236. package/esm2022/core/services/reuse-strategy.service.mjs +1 -26
  237. package/esm2022/core/services/storage.service.mjs +4 -26
  238. package/esm2022/core/theme/theme.mjs +55 -11
  239. package/esm2022/core/theme/theme.service.mjs +92 -20
  240. package/esm2022/core/util/animation.mjs +2 -23
  241. package/esm2022/core/util/camel-to-kebab.mjs +16 -0
  242. package/esm2022/core/util/check.mjs +11 -3
  243. package/esm2022/core/util/computed-style.mjs +9 -1
  244. package/esm2022/core/util/host.mjs +4 -3
  245. package/esm2022/core/util/html.mjs +5 -4
  246. package/esm2022/core/util/kebab-to-camel.mjs +16 -0
  247. package/esm2022/core/util/log.mjs +11 -3
  248. package/esm2022/core/util/option.mjs +4 -5
  249. package/esm2022/core/util/public-api.mjs +3 -1
  250. package/esm2022/crumb/crumb.component.mjs +6 -29
  251. package/esm2022/crumb/crumb.module.mjs +5 -5
  252. package/esm2022/crumb/crumb.property.mjs +21 -26
  253. package/esm2022/date-picker/date-picker-portal.component.mjs +86 -102
  254. package/esm2022/date-picker/date-picker.component.mjs +157 -191
  255. package/esm2022/date-picker/date-picker.module.mjs +5 -5
  256. package/esm2022/date-picker/date-picker.property.mjs +440 -462
  257. package/esm2022/date-picker/date-quarter.pipe.mjs +4 -4
  258. package/esm2022/date-picker/date-range-portal.component.mjs +172 -186
  259. package/esm2022/date-picker/date-range.component.mjs +224 -266
  260. package/esm2022/date-picker/picker-date.component.mjs +150 -150
  261. package/esm2022/date-picker/picker-month.component.mjs +115 -118
  262. package/esm2022/date-picker/picker-quarter.component.mjs +120 -119
  263. package/esm2022/date-picker/picker-year.component.mjs +121 -108
  264. package/esm2022/description/description-item.component.mjs +12 -11
  265. package/esm2022/description/description.component.mjs +33 -48
  266. package/esm2022/description/description.module.mjs +5 -5
  267. package/esm2022/description/description.property.mjs +175 -52
  268. package/esm2022/dialog/dialog-container.component.mjs +4 -4
  269. package/esm2022/dialog/dialog-portal.component.mjs +29 -35
  270. package/esm2022/dialog/dialog-portal.directives.mjs +20 -20
  271. package/esm2022/dialog/dialog-ref.mjs +3 -3
  272. package/esm2022/dialog/dialog.component.mjs +119 -133
  273. package/esm2022/dialog/dialog.module.mjs +5 -5
  274. package/esm2022/dialog/dialog.property.mjs +149 -139
  275. package/esm2022/dialog/dialog.service.mjs +8 -8
  276. package/esm2022/doc/doc.component.mjs +11 -12
  277. package/esm2022/doc/doc.module.mjs +5 -5
  278. package/esm2022/drag/drag.directive.mjs +8 -21
  279. package/esm2022/drag/drag.module.mjs +5 -5
  280. package/esm2022/drag/drag.property.mjs +10 -16
  281. package/esm2022/drawer/drawer-container.component.mjs +9 -9
  282. package/esm2022/drawer/drawer-portal.component.mjs +11 -13
  283. package/esm2022/drawer/drawer-portal.directives.mjs +10 -10
  284. package/esm2022/drawer/drawer.component.mjs +40 -59
  285. package/esm2022/drawer/drawer.module.mjs +5 -5
  286. package/esm2022/drawer/drawer.property.mjs +47 -54
  287. package/esm2022/drawer/drawer.service.mjs +6 -6
  288. package/esm2022/dropdown/dropdown-portal.component.mjs +90 -91
  289. package/esm2022/dropdown/dropdown.component.mjs +75 -91
  290. package/esm2022/dropdown/dropdown.module.mjs +5 -5
  291. package/esm2022/dropdown/dropdown.property.mjs +62 -59
  292. package/esm2022/empty/empty.component.mjs +6 -26
  293. package/esm2022/empty/empty.module.mjs +5 -5
  294. package/esm2022/empty/empty.property.mjs +41 -20
  295. package/esm2022/examples/examples.component.mjs +11 -12
  296. package/esm2022/examples/examples.module.mjs +5 -5
  297. package/esm2022/find/find.component.mjs +188 -232
  298. package/esm2022/find/find.module.mjs +5 -5
  299. package/esm2022/find/find.property.mjs +234 -193
  300. package/esm2022/form/control.component.mjs +136 -114
  301. package/esm2022/form/form.component.mjs +28 -36
  302. package/esm2022/form/form.module.mjs +5 -5
  303. package/esm2022/form/form.property.mjs +57 -55
  304. package/esm2022/highlight/highlight.component.mjs +54 -59
  305. package/esm2022/highlight/highlight.module.mjs +5 -5
  306. package/esm2022/highlight/highlight.property.mjs +25 -21
  307. package/esm2022/highlight/highlight.service.mjs +17 -0
  308. package/esm2022/highlight/public-api.mjs +2 -1
  309. package/esm2022/i18n/i18n.directive.mjs +17 -31
  310. package/esm2022/i18n/i18n.module.mjs +5 -5
  311. package/esm2022/i18n/i18n.pipe.mjs +4 -4
  312. package/esm2022/i18n/i18n.property.mjs +2 -2
  313. package/esm2022/i18n/i18n.service.mjs +4 -4
  314. package/esm2022/i18n/languages/ar_EG.mjs +122 -77
  315. package/esm2022/i18n/languages/bg_BG.mjs +135 -87
  316. package/esm2022/i18n/languages/ca_ES.mjs +130 -82
  317. package/esm2022/i18n/languages/cs_CZ.mjs +127 -79
  318. package/esm2022/i18n/languages/da_DK.mjs +129 -81
  319. package/esm2022/i18n/languages/de_DE.mjs +125 -77
  320. package/esm2022/i18n/languages/el_GR.mjs +132 -84
  321. package/esm2022/i18n/languages/en_GB.mjs +5 -2
  322. package/esm2022/i18n/languages/en_US.mjs +5 -2
  323. package/esm2022/i18n/languages/es_ES.mjs +131 -83
  324. package/esm2022/i18n/languages/et_EE.mjs +130 -82
  325. package/esm2022/i18n/languages/fa_IR.mjs +109 -61
  326. package/esm2022/i18n/languages/fi_FI.mjs +134 -86
  327. package/esm2022/i18n/languages/fr_BE.mjs +128 -80
  328. package/esm2022/i18n/languages/fr_FR.mjs +127 -79
  329. package/esm2022/i18n/languages/he_IL.mjs +119 -74
  330. package/esm2022/i18n/languages/hi_IN.mjs +104 -56
  331. package/esm2022/i18n/languages/hr_HR.mjs +133 -85
  332. package/esm2022/i18n/languages/hu_HU.mjs +132 -84
  333. package/esm2022/i18n/languages/hy_AM.mjs +133 -85
  334. package/esm2022/i18n/languages/id_ID.mjs +119 -71
  335. package/esm2022/i18n/languages/is_IS.mjs +125 -77
  336. package/esm2022/i18n/languages/it_IT.mjs +127 -79
  337. package/esm2022/i18n/languages/ja_JP.mjs +95 -47
  338. package/esm2022/i18n/languages/ka_GE.mjs +106 -58
  339. package/esm2022/i18n/languages/kn_IN.mjs +110 -62
  340. package/esm2022/i18n/languages/ko_KR.mjs +126 -70
  341. package/esm2022/i18n/languages/ku_IQ.mjs +117 -85
  342. package/esm2022/i18n/languages/lv_LV.mjs +128 -72
  343. package/esm2022/i18n/languages/mn_MN.mjs +138 -82
  344. package/esm2022/i18n/languages/ms_MY.mjs +124 -68
  345. package/esm2022/i18n/languages/nb_NO.mjs +133 -77
  346. package/esm2022/i18n/languages/ne_NP.mjs +117 -61
  347. package/esm2022/i18n/languages/nl_BE.mjs +134 -78
  348. package/esm2022/i18n/languages/nl_NL.mjs +134 -78
  349. package/esm2022/i18n/languages/pl_PL.mjs +132 -76
  350. package/esm2022/i18n/languages/pt_BR.mjs +133 -77
  351. package/esm2022/i18n/languages/pt_PT.mjs +133 -77
  352. package/esm2022/i18n/languages/ro_RO.mjs +130 -74
  353. package/esm2022/i18n/languages/ru_RU.mjs +131 -75
  354. package/esm2022/i18n/languages/sk_SK.mjs +130 -83
  355. package/esm2022/i18n/languages/sl_SI.mjs +121 -73
  356. package/esm2022/i18n/languages/sr_RS.mjs +138 -90
  357. package/esm2022/i18n/languages/sv_SE.mjs +132 -84
  358. package/esm2022/i18n/languages/ta_IN.mjs +117 -61
  359. package/esm2022/i18n/languages/th_TH.mjs +99 -43
  360. package/esm2022/i18n/languages/tr_TR.mjs +126 -70
  361. package/esm2022/i18n/languages/uk_UA.mjs +124 -68
  362. package/esm2022/i18n/languages/vi_VN.mjs +133 -77
  363. package/esm2022/i18n/languages/zh_CN.mjs +5 -2
  364. package/esm2022/i18n/languages/zh_TW.mjs +5 -2
  365. package/esm2022/icon/icon.component.mjs +48 -77
  366. package/esm2022/icon/icon.module.mjs +5 -5
  367. package/esm2022/icon/icon.property.mjs +52 -30
  368. package/esm2022/icon/icon.service.mjs +15 -14
  369. package/esm2022/image/image-group.component.mjs +15 -15
  370. package/esm2022/image/image-preview.component.mjs +47 -46
  371. package/esm2022/image/image.component.mjs +34 -53
  372. package/esm2022/image/image.module.mjs +5 -5
  373. package/esm2022/image/image.property.mjs +152 -38
  374. package/esm2022/index.mjs +1 -3
  375. package/esm2022/inner/inner.component.mjs +15 -20
  376. package/esm2022/inner/inner.module.mjs +5 -5
  377. package/esm2022/inner/inner.property.mjs +17 -15
  378. package/esm2022/input/input-group.component.mjs +5 -7
  379. package/esm2022/input/input.component.mjs +130 -143
  380. package/esm2022/input/input.module.mjs +5 -5
  381. package/esm2022/input/input.property.mjs +205 -143
  382. package/esm2022/input-number/input-number.component.mjs +68 -86
  383. package/esm2022/input-number/input-number.module.mjs +5 -5
  384. package/esm2022/input-number/input-number.property.mjs +130 -60
  385. package/esm2022/keyword/keyword.directive.mjs +46 -54
  386. package/esm2022/keyword/keyword.module.mjs +5 -5
  387. package/esm2022/keyword/keyword.property.mjs +32 -28
  388. package/esm2022/layout/col.component.mjs +48 -51
  389. package/esm2022/layout/layout.module.mjs +5 -5
  390. package/esm2022/layout/layout.property.mjs +125 -63
  391. package/esm2022/layout/row.component.mjs +36 -27
  392. package/esm2022/link/link.component.mjs +18 -45
  393. package/esm2022/link/link.module.mjs +5 -5
  394. package/esm2022/link/link.property.mjs +101 -41
  395. package/esm2022/list/list-drop-group.directive.mjs +9 -18
  396. package/esm2022/list/list-option.component.mjs +16 -33
  397. package/esm2022/list/list.component.mjs +160 -164
  398. package/esm2022/list/list.module.mjs +5 -5
  399. package/esm2022/list/list.property.mjs +195 -188
  400. package/esm2022/loading/loading.component.mjs +44 -45
  401. package/esm2022/loading/loading.module.mjs +5 -5
  402. package/esm2022/loading/loading.property.mjs +50 -52
  403. package/esm2022/menu/menu-node.component.mjs +21 -21
  404. package/esm2022/menu/menu.component.mjs +57 -76
  405. package/esm2022/menu/menu.module.mjs +5 -5
  406. package/esm2022/menu/menu.property.mjs +56 -73
  407. package/esm2022/message/message.component.mjs +8 -8
  408. package/esm2022/message/message.module.mjs +5 -5
  409. package/esm2022/message/message.property.mjs +1 -1
  410. package/esm2022/message/message.service.mjs +7 -7
  411. package/esm2022/message-box/message-box.component.mjs +5 -5
  412. package/esm2022/message-box/message-box.module.mjs +5 -5
  413. package/esm2022/message-box/message-box.service.mjs +6 -6
  414. package/esm2022/notification/notification.component.mjs +8 -8
  415. package/esm2022/notification/notification.module.mjs +5 -5
  416. package/esm2022/notification/notification.property.mjs +1 -1
  417. package/esm2022/notification/notification.service.mjs +8 -8
  418. package/esm2022/outlet/outlet.directive.mjs +12 -14
  419. package/esm2022/outlet/outlet.module.mjs +5 -5
  420. package/esm2022/outlet/outlet.property.mjs +2 -2
  421. package/esm2022/page-header/page-header.component.mjs +12 -28
  422. package/esm2022/page-header/page-header.module.mjs +5 -5
  423. package/esm2022/page-header/page-header.property.mjs +31 -27
  424. package/esm2022/pagination/pagination.component.mjs +74 -100
  425. package/esm2022/pagination/pagination.module.mjs +5 -5
  426. package/esm2022/pagination/pagination.property.mjs +99 -136
  427. package/esm2022/pattern/pattern.component.mjs +12 -13
  428. package/esm2022/pattern/pattern.module.mjs +5 -5
  429. package/esm2022/pattern/pattern.property.mjs +2 -2
  430. package/esm2022/popconfirm/popconfirm.component.mjs +35 -47
  431. package/esm2022/popconfirm/popconfirm.module.mjs +5 -5
  432. package/esm2022/popconfirm/popconfirm.property.mjs +76 -62
  433. package/esm2022/popover/popover-portal.component.mjs +24 -75
  434. package/esm2022/popover/popover.directive.mjs +70 -86
  435. package/esm2022/popover/popover.module.mjs +5 -5
  436. package/esm2022/popover/popover.property.mjs +71 -58
  437. package/esm2022/portal/portal.module.mjs +5 -5
  438. package/esm2022/portal/portal.property.mjs +3 -3
  439. package/esm2022/portal/portal.service.mjs +4 -4
  440. package/esm2022/progress/progress.component.mjs +173 -167
  441. package/esm2022/progress/progress.module.mjs +5 -5
  442. package/esm2022/progress/progress.property.mjs +67 -71
  443. package/esm2022/radio/radio.component.mjs +45 -61
  444. package/esm2022/radio/radio.module.mjs +5 -5
  445. package/esm2022/radio/radio.property.mjs +139 -66
  446. package/esm2022/rate/rate.component.mjs +61 -79
  447. package/esm2022/rate/rate.module.mjs +5 -5
  448. package/esm2022/rate/rate.property.mjs +121 -29
  449. package/esm2022/resizable/resizable.directive.mjs +30 -45
  450. package/esm2022/resizable/resizable.module.mjs +5 -5
  451. package/esm2022/resizable/resizable.property.mjs +16 -46
  452. package/esm2022/result/result.component.mjs +13 -17
  453. package/esm2022/result/result.module.mjs +5 -5
  454. package/esm2022/result/result.property.mjs +25 -17
  455. package/esm2022/ripple/ripple.directive.mjs +40 -27
  456. package/esm2022/ripple/ripple.module.mjs +5 -5
  457. package/esm2022/ripple/ripple.property.mjs +27 -20
  458. package/esm2022/select/select-portal.component.mjs +52 -67
  459. package/esm2022/select/select.component.mjs +301 -289
  460. package/esm2022/select/select.module.mjs +5 -5
  461. package/esm2022/select/select.property.mjs +195 -102
  462. package/esm2022/skeleton/skeleton.component.mjs +12 -23
  463. package/esm2022/skeleton/skeleton.module.mjs +5 -5
  464. package/esm2022/skeleton/skeleton.property.mjs +31 -28
  465. package/esm2022/slider/slider.component.mjs +103 -149
  466. package/esm2022/slider/slider.module.mjs +5 -5
  467. package/esm2022/slider/slider.property.mjs +60 -79
  468. package/esm2022/slider-select/slider-select.component.mjs +201 -220
  469. package/esm2022/slider-select/slider-select.module.mjs +5 -5
  470. package/esm2022/slider-select/slider-select.property.mjs +143 -70
  471. package/esm2022/statistic/countdown.component.mjs +13 -16
  472. package/esm2022/statistic/statistic.component.mjs +23 -21
  473. package/esm2022/statistic/statistic.module.mjs +5 -5
  474. package/esm2022/statistic/statistic.property.mjs +68 -34
  475. package/esm2022/steps/steps.component.mjs +33 -63
  476. package/esm2022/steps/steps.module.mjs +5 -5
  477. package/esm2022/steps/steps.property.mjs +28 -39
  478. package/esm2022/switch/switch.component.mjs +22 -37
  479. package/esm2022/switch/switch.module.mjs +5 -5
  480. package/esm2022/switch/switch.property.mjs +122 -32
  481. package/esm2022/table/table-body.component.mjs +134 -139
  482. package/esm2022/table/table-foot.component.mjs +15 -18
  483. package/esm2022/table/table-head.component.mjs +60 -91
  484. package/esm2022/table/table.component.mjs +192 -222
  485. package/esm2022/table/table.module.mjs +5 -5
  486. package/esm2022/table/table.property.mjs +396 -341
  487. package/esm2022/tabs/tab-content.component.mjs +13 -16
  488. package/esm2022/tabs/tab-link.directive.mjs +7 -7
  489. package/esm2022/tabs/tab.component.mjs +9 -17
  490. package/esm2022/tabs/tabs.component.mjs +83 -135
  491. package/esm2022/tabs/tabs.module.mjs +5 -5
  492. package/esm2022/tabs/tabs.property.mjs +80 -91
  493. package/esm2022/tag/tag.component.mjs +19 -33
  494. package/esm2022/tag/tag.module.mjs +5 -5
  495. package/esm2022/tag/tag.property.mjs +44 -68
  496. package/esm2022/text-retract/text-retract.component.mjs +29 -46
  497. package/esm2022/text-retract/text-retract.module.mjs +5 -5
  498. package/esm2022/text-retract/text-retract.property.mjs +22 -18
  499. package/esm2022/textarea/textarea.component.mjs +49 -79
  500. package/esm2022/textarea/textarea.module.mjs +5 -5
  501. package/esm2022/textarea/textarea.property.mjs +124 -47
  502. package/esm2022/theme/theme.component.mjs +86 -81
  503. package/esm2022/theme/theme.module.mjs +5 -5
  504. package/esm2022/theme/theme.property.mjs +35 -46
  505. package/esm2022/time-ago/time-ago.module.mjs +5 -5
  506. package/esm2022/time-ago/time-ago.pipe.mjs +12 -11
  507. package/esm2022/time-ago/time-ago.property.mjs +2 -2
  508. package/esm2022/time-picker/time-picker-frame.component.mjs +173 -188
  509. package/esm2022/time-picker/time-picker-portal.component.mjs +35 -42
  510. package/esm2022/time-picker/time-picker.component.mjs +139 -170
  511. package/esm2022/time-picker/time-picker.module.mjs +5 -5
  512. package/esm2022/time-picker/time-picker.property.mjs +158 -70
  513. package/esm2022/time-range/time-range.module.mjs +5 -5
  514. package/esm2022/time-range/time-range.pipe.mjs +10 -10
  515. package/esm2022/time-range/time-range.property.mjs +2 -2
  516. package/esm2022/timeline/timeline.component.mjs +14 -38
  517. package/esm2022/timeline/timeline.module.mjs +5 -5
  518. package/esm2022/timeline/timeline.property.mjs +30 -30
  519. package/esm2022/tooltip/tooltip-portal.component.mjs +51 -65
  520. package/esm2022/tooltip/tooltip.directive.mjs +65 -62
  521. package/esm2022/tooltip/tooltip.module.mjs +5 -5
  522. package/esm2022/tooltip/tooltip.property.mjs +53 -47
  523. package/esm2022/transfer/transfer.component.mjs +225 -184
  524. package/esm2022/transfer/transfer.module.mjs +5 -5
  525. package/esm2022/transfer/transfer.property.mjs +84 -76
  526. package/esm2022/tree/tree-node.component.mjs +142 -132
  527. package/esm2022/tree/tree.component.mjs +236 -232
  528. package/esm2022/tree/tree.module.mjs +5 -5
  529. package/esm2022/tree/tree.property.mjs +228 -226
  530. package/esm2022/tree/tree.service.mjs +4 -4
  531. package/esm2022/tree-file/tree-file.component.mjs +34 -43
  532. package/esm2022/tree-file/tree-file.module.mjs +5 -5
  533. package/esm2022/tree-file/tree-file.property.mjs +45 -56
  534. package/esm2022/tree-select/tree-select-portal.component.mjs +45 -78
  535. package/esm2022/tree-select/tree-select.component.mjs +283 -296
  536. package/esm2022/tree-select/tree-select.module.mjs +5 -5
  537. package/esm2022/tree-select/tree-select.property.mjs +203 -125
  538. package/esm2022/typography/typography.component.mjs +13 -10
  539. package/esm2022/typography/typography.module.mjs +5 -5
  540. package/esm2022/typography/typography.property.mjs +12 -11
  541. package/esm2022/upload/upload-portal.component.mjs +54 -57
  542. package/esm2022/upload/upload.component.mjs +79 -98
  543. package/esm2022/upload/upload.module.mjs +5 -5
  544. package/esm2022/upload/upload.property.mjs +73 -68
  545. package/examples/examples.component.d.ts +2 -5
  546. package/fesm2022/ng-nest-ui-affix.mjs +30 -32
  547. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  548. package/fesm2022/ng-nest-ui-alert.mjs +142 -152
  549. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  550. package/fesm2022/ng-nest-ui-anchor.mjs +121 -133
  551. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  552. package/fesm2022/ng-nest-ui-api.mjs +14 -17
  553. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  554. package/fesm2022/ng-nest-ui-auto-complete.mjs +296 -260
  555. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  556. package/fesm2022/ng-nest-ui-avatar.mjs +195 -130
  557. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  558. package/fesm2022/ng-nest-ui-back-top.mjs +95 -103
  559. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  560. package/fesm2022/ng-nest-ui-badge.mjs +161 -96
  561. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  562. package/fesm2022/ng-nest-ui-base-form.mjs +286 -166
  563. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  564. package/fesm2022/ng-nest-ui-button.mjs +376 -175
  565. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  566. package/fesm2022/ng-nest-ui-calendar.mjs +134 -108
  567. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  568. package/fesm2022/ng-nest-ui-card.mjs +67 -36
  569. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  570. package/fesm2022/ng-nest-ui-carousel.mjs +365 -223
  571. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  572. package/fesm2022/ng-nest-ui-cascade.mjs +318 -249
  573. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  574. package/fesm2022/ng-nest-ui-checkbox.mjs +203 -155
  575. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  576. package/fesm2022/ng-nest-ui-collapse.mjs +202 -106
  577. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  578. package/fesm2022/ng-nest-ui-color-picker.mjs +316 -270
  579. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  580. package/fesm2022/ng-nest-ui-color.mjs +73 -54
  581. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  582. package/fesm2022/ng-nest-ui-comment.mjs +44 -108
  583. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  584. package/fesm2022/ng-nest-ui-container.mjs +119 -123
  585. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  586. package/fesm2022/ng-nest-ui-core.mjs +985 -664
  587. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  588. package/fesm2022/ng-nest-ui-crumb.mjs +28 -55
  589. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  590. package/fesm2022/ng-nest-ui-date-picker.mjs +1552 -1671
  591. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  592. package/fesm2022/ng-nest-ui-description.mjs +218 -109
  593. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  594. package/fesm2022/ng-nest-ui-dialog.mjs +325 -334
  595. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  596. package/fesm2022/ng-nest-ui-doc.mjs +14 -15
  597. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  598. package/fesm2022/ng-nest-ui-drag.mjs +20 -39
  599. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  600. package/fesm2022/ng-nest-ui-drawer.mjs +116 -145
  601. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  602. package/fesm2022/ng-nest-ui-dropdown.mjs +223 -238
  603. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  604. package/fesm2022/ng-nest-ui-empty.mjs +49 -46
  605. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  606. package/fesm2022/ng-nest-ui-examples.mjs +14 -15
  607. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  608. package/fesm2022/ng-nest-ui-find.mjs +422 -425
  609. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  610. package/fesm2022/ng-nest-ui-form.mjs +216 -201
  611. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  612. package/fesm2022/ng-nest-ui-highlight.mjs +93 -81
  613. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  614. package/fesm2022/ng-nest-ui-i18n.mjs +5892 -3516
  615. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  616. package/fesm2022/ng-nest-ui-icon.mjs +114 -120
  617. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  618. package/fesm2022/ng-nest-ui-image.mjs +244 -147
  619. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  620. package/fesm2022/ng-nest-ui-inner.mjs +33 -35
  621. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  622. package/fesm2022/ng-nest-ui-input-number.mjs +198 -146
  623. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  624. package/fesm2022/ng-nest-ui-input.mjs +340 -292
  625. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  626. package/fesm2022/ng-nest-ui-keyword.mjs +78 -82
  627. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  628. package/fesm2022/ng-nest-ui-layout.mjs +205 -140
  629. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  630. package/fesm2022/ng-nest-ui-link.mjs +119 -86
  631. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  632. package/fesm2022/ng-nest-ui-list.mjs +376 -400
  633. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  634. package/fesm2022/ng-nest-ui-loading.mjs +94 -97
  635. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  636. package/fesm2022/ng-nest-ui-menu.mjs +131 -167
  637. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  638. package/fesm2022/ng-nest-ui-message-box.mjs +13 -13
  639. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  640. package/fesm2022/ng-nest-ui-message.mjs +17 -17
  641. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  642. package/fesm2022/ng-nest-ui-notification.mjs +18 -18
  643. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  644. package/fesm2022/ng-nest-ui-outlet.mjs +16 -18
  645. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  646. package/fesm2022/ng-nest-ui-page-header.mjs +44 -55
  647. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  648. package/fesm2022/ng-nest-ui-pagination.mjs +173 -236
  649. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  650. package/fesm2022/ng-nest-ui-pattern.mjs +16 -17
  651. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  652. package/fesm2022/ng-nest-ui-popconfirm.mjs +110 -107
  653. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  654. package/fesm2022/ng-nest-ui-popover.mjs +163 -215
  655. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  656. package/fesm2022/ng-nest-ui-portal.mjs +10 -10
  657. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  658. package/fesm2022/ng-nest-ui-progress.mjs +240 -238
  659. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  660. package/fesm2022/ng-nest-ui-radio.mjs +184 -127
  661. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  662. package/fesm2022/ng-nest-ui-rate.mjs +182 -108
  663. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  664. package/fesm2022/ng-nest-ui-resizable.mjs +46 -91
  665. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  666. package/fesm2022/ng-nest-ui-result.mjs +38 -34
  667. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  668. package/fesm2022/ng-nest-ui-ripple.mjs +68 -48
  669. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  670. package/fesm2022/ng-nest-ui-select.mjs +547 -459
  671. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  672. package/fesm2022/ng-nest-ui-skeleton.mjs +44 -52
  673. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  674. package/fesm2022/ng-nest-ui-slider-select.mjs +344 -290
  675. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  676. package/fesm2022/ng-nest-ui-slider.mjs +163 -228
  677. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  678. package/fesm2022/ng-nest-ui-statistic.mjs +102 -68
  679. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  680. package/fesm2022/ng-nest-ui-steps.mjs +61 -102
  681. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  682. package/fesm2022/ng-nest-ui-switch.mjs +145 -69
  683. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  684. package/fesm2022/ng-nest-ui-table.mjs +784 -800
  685. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  686. package/fesm2022/ng-nest-ui-tabs.mjs +185 -259
  687. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  688. package/fesm2022/ng-nest-ui-tag.mjs +63 -101
  689. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  690. package/fesm2022/ng-nest-ui-text-retract.mjs +52 -64
  691. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  692. package/fesm2022/ng-nest-ui-textarea.mjs +173 -126
  693. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  694. package/fesm2022/ng-nest-ui-theme.mjs +123 -129
  695. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  696. package/fesm2022/ng-nest-ui-time-ago.mjs +16 -15
  697. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  698. package/fesm2022/ng-nest-ui-time-picker.mjs +498 -463
  699. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  700. package/fesm2022/ng-nest-ui-time-range.mjs +14 -14
  701. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  702. package/fesm2022/ng-nest-ui-timeline.mjs +44 -68
  703. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  704. package/fesm2022/ng-nest-ui-tooltip.mjs +168 -170
  705. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  706. package/fesm2022/ng-nest-ui-transfer.mjs +311 -262
  707. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  708. package/fesm2022/ng-nest-ui-tree-file.mjs +80 -99
  709. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  710. package/fesm2022/ng-nest-ui-tree-select.mjs +527 -495
  711. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  712. package/fesm2022/ng-nest-ui-tree.mjs +601 -587
  713. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  714. package/fesm2022/ng-nest-ui-typography.mjs +26 -22
  715. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  716. package/fesm2022/ng-nest-ui-upload.mjs +204 -220
  717. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  718. package/fesm2022/ng-nest-ui.mjs +0 -2
  719. package/fesm2022/ng-nest-ui.mjs.map +1 -1
  720. package/find/find.component.d.ts +30 -34
  721. package/find/find.property.d.ts +321 -108
  722. package/form/control.component.d.ts +37 -18
  723. package/form/form.component.d.ts +8 -10
  724. package/form/form.property.d.ts +111 -27
  725. package/highlight/highlight.component.d.ts +10 -17
  726. package/highlight/highlight.property.d.ts +40 -11
  727. package/highlight/highlight.service.d.ts +8 -0
  728. package/highlight/public-api.d.ts +1 -0
  729. package/i18n/i18n.directive.d.ts +6 -9
  730. package/i18n/i18n.property.d.ts +6 -2
  731. package/i18n/i18n.service.d.ts +2 -2
  732. package/i18n/languages/ar_EG.d.ts +56 -0
  733. package/i18n/languages/bg_BG.d.ts +56 -0
  734. package/i18n/languages/ca_ES.d.ts +56 -0
  735. package/i18n/languages/cs_CZ.d.ts +56 -0
  736. package/i18n/languages/da_DK.d.ts +56 -0
  737. package/i18n/languages/de_DE.d.ts +56 -0
  738. package/i18n/languages/el_GR.d.ts +56 -0
  739. package/i18n/languages/en_GB.d.ts +3 -0
  740. package/i18n/languages/en_US.d.ts +3 -0
  741. package/i18n/languages/es_ES.d.ts +56 -0
  742. package/i18n/languages/et_EE.d.ts +56 -0
  743. package/i18n/languages/fa_IR.d.ts +56 -0
  744. package/i18n/languages/fi_FI.d.ts +56 -0
  745. package/i18n/languages/fr_BE.d.ts +60 -4
  746. package/i18n/languages/fr_FR.d.ts +56 -0
  747. package/i18n/languages/he_IL.d.ts +56 -0
  748. package/i18n/languages/hi_IN.d.ts +56 -0
  749. package/i18n/languages/hr_HR.d.ts +56 -0
  750. package/i18n/languages/hu_HU.d.ts +56 -0
  751. package/i18n/languages/hy_AM.d.ts +56 -0
  752. package/i18n/languages/id_ID.d.ts +56 -0
  753. package/i18n/languages/is_IS.d.ts +56 -0
  754. package/i18n/languages/it_IT.d.ts +56 -0
  755. package/i18n/languages/ja_JP.d.ts +56 -0
  756. package/i18n/languages/ka_GE.d.ts +56 -0
  757. package/i18n/languages/kn_IN.d.ts +56 -0
  758. package/i18n/languages/ko_KR.d.ts +56 -0
  759. package/i18n/languages/ku_IQ.d.ts +32 -0
  760. package/i18n/languages/lv_LV.d.ts +56 -0
  761. package/i18n/languages/mn_MN.d.ts +56 -0
  762. package/i18n/languages/ms_MY.d.ts +56 -0
  763. package/i18n/languages/nb_NO.d.ts +56 -0
  764. package/i18n/languages/ne_NP.d.ts +56 -0
  765. package/i18n/languages/nl_BE.d.ts +56 -0
  766. package/i18n/languages/nl_NL.d.ts +56 -0
  767. package/i18n/languages/pl_PL.d.ts +56 -0
  768. package/i18n/languages/pt_BR.d.ts +56 -0
  769. package/i18n/languages/pt_PT.d.ts +56 -0
  770. package/i18n/languages/ro_RO.d.ts +56 -0
  771. package/i18n/languages/ru_RU.d.ts +56 -0
  772. package/i18n/languages/sk_SK.d.ts +56 -1
  773. package/i18n/languages/sl_SI.d.ts +56 -0
  774. package/i18n/languages/sr_RS.d.ts +56 -0
  775. package/i18n/languages/sv_SE.d.ts +56 -0
  776. package/i18n/languages/ta_IN.d.ts +56 -0
  777. package/i18n/languages/th_TH.d.ts +56 -0
  778. package/i18n/languages/tr_TR.d.ts +56 -0
  779. package/i18n/languages/uk_UA.d.ts +56 -0
  780. package/i18n/languages/vi_VN.d.ts +56 -0
  781. package/i18n/languages/zh_CN.d.ts +3 -0
  782. package/i18n/languages/zh_TW.d.ts +3 -0
  783. package/icon/icon.component.d.ts +8 -14
  784. package/icon/icon.property.d.ts +31 -13
  785. package/icon/icon.service.d.ts +1 -1
  786. package/image/image-group.component.d.ts +1 -3
  787. package/image/image-preview.component.d.ts +11 -13
  788. package/image/image.component.d.ts +10 -11
  789. package/image/image.property.d.ts +117 -16
  790. package/index.d.ts +0 -2
  791. package/inner/inner.component.d.ts +3 -10
  792. package/inner/inner.property.d.ts +8 -4
  793. package/input/input-group.component.d.ts +0 -2
  794. package/input/input.component.d.ts +32 -30
  795. package/input/input.property.d.ts +347 -65
  796. package/input-number/input-number.component.d.ts +14 -19
  797. package/input-number/input-number.property.d.ts +292 -26
  798. package/keyword/keyword.directive.d.ts +4 -12
  799. package/keyword/keyword.property.d.ts +11 -7
  800. package/layout/col.component.d.ts +8 -11
  801. package/layout/layout.property.d.ts +79 -18
  802. package/layout/row.component.d.ts +7 -8
  803. package/link/link.component.d.ts +7 -13
  804. package/link/link.property.d.ts +64 -11
  805. package/list/list-drop-group.directive.d.ts +3 -5
  806. package/list/list-option.component.d.ts +7 -9
  807. package/list/list.component.d.ts +35 -30
  808. package/list/list.property.d.ts +126 -61
  809. package/loading/loading.component.d.ts +12 -12
  810. package/loading/loading.property.d.ts +20 -11
  811. package/menu/menu-node.component.d.ts +11 -8
  812. package/menu/menu.component.d.ts +18 -19
  813. package/menu/menu.property.d.ts +23 -28
  814. package/message/message.property.d.ts +1 -1
  815. package/notification/notification.property.d.ts +1 -1
  816. package/outlet/outlet.directive.d.ts +4 -4
  817. package/outlet/outlet.property.d.ts +1 -1
  818. package/package.json +117 -123
  819. package/page-header/page-header.component.d.ts +4 -8
  820. package/page-header/page-header.property.d.ts +11 -8
  821. package/pagination/pagination.component.d.ts +15 -22
  822. package/pagination/pagination.property.d.ts +34 -66
  823. package/pattern/pattern.component.d.ts +2 -5
  824. package/pattern/pattern.property.d.ts +1 -1
  825. package/popconfirm/popconfirm.component.d.ts +12 -14
  826. package/popconfirm/popconfirm.property.d.ts +32 -19
  827. package/popover/popover-portal.component.d.ts +16 -33
  828. package/popover/popover.directive.d.ts +6 -12
  829. package/popover/popover.property.d.ts +31 -22
  830. package/portal/portal.property.d.ts +4 -4
  831. package/portal/portal.service.d.ts +2 -2
  832. package/progress/progress.component.d.ts +25 -30
  833. package/progress/progress.property.d.ts +29 -20
  834. package/radio/radio.component.d.ts +14 -15
  835. package/radio/radio.property.d.ts +271 -31
  836. package/rate/rate.component.d.ts +14 -17
  837. package/rate/rate.property.d.ts +259 -12
  838. package/resizable/resizable.directive.d.ts +5 -5
  839. package/resizable/resizable.property.d.ts +14 -14
  840. package/result/result.component.d.ts +5 -7
  841. package/result/result.property.d.ts +11 -7
  842. package/ripple/ripple.directive.d.ts +5 -4
  843. package/ripple/ripple.property.d.ts +14 -5
  844. package/select/select-portal.component.d.ts +39 -43
  845. package/select/select.component.d.ts +53 -56
  846. package/select/select.property.d.ts +317 -37
  847. package/skeleton/skeleton.component.d.ts +4 -8
  848. package/skeleton/skeleton.property.d.ts +17 -8
  849. package/slider/slider.component.d.ts +34 -31
  850. package/slider/slider.property.d.ts +26 -22
  851. package/slider-select/slider-select.component.d.ts +38 -38
  852. package/slider-select/slider-select.property.d.ts +302 -28
  853. package/statistic/countdown.component.d.ts +2 -5
  854. package/statistic/statistic.component.d.ts +3 -8
  855. package/statistic/statistic.property.d.ts +44 -13
  856. package/steps/steps.component.d.ts +6 -16
  857. package/steps/steps.property.d.ts +15 -10
  858. package/style/core/index.css +0 -38
  859. package/style/core/index.css.map +1 -1
  860. package/style/core/var.scss +0 -4
  861. package/style/mixins/compatibility.scss +0 -1
  862. package/style/mixins/form.scss +8 -2
  863. package/style/params/index.scss +0 -1
  864. package/style/params/primary.scss +7 -28
  865. package/switch/switch.component.d.ts +9 -10
  866. package/switch/switch.property.d.ts +265 -16
  867. package/table/table-body.component.d.ts +21 -20
  868. package/table/table-foot.component.d.ts +7 -5
  869. package/table/table-head.component.d.ts +17 -19
  870. package/table/table.component.d.ts +62 -50
  871. package/table/table.property.d.ts +180 -178
  872. package/tabs/tab-content.component.d.ts +6 -8
  873. package/tabs/tab.component.d.ts +3 -5
  874. package/tabs/tabs.component.d.ts +17 -24
  875. package/tabs/tabs.property.d.ts +28 -24
  876. package/tag/tag.component.d.ts +7 -8
  877. package/tag/tag.property.d.ts +19 -21
  878. package/text-retract/text-retract.component.d.ts +4 -14
  879. package/text-retract/text-retract.property.d.ts +9 -5
  880. package/textarea/textarea.component.d.ts +17 -20
  881. package/textarea/textarea.property.d.ts +266 -30
  882. package/theme/theme.component.d.ts +24 -13
  883. package/theme/theme.property.d.ts +67 -16
  884. package/time-ago/time-ago.pipe.d.ts +7 -3
  885. package/time-ago/time-ago.property.d.ts +1 -1
  886. package/time-picker/time-picker-frame.component.d.ts +52 -39
  887. package/time-picker/time-picker-portal.component.d.ts +29 -29
  888. package/time-picker/time-picker.component.d.ts +29 -30
  889. package/time-picker/time-picker.property.d.ts +314 -23
  890. package/time-range/time-range.property.d.ts +1 -1
  891. package/timeline/timeline.component.d.ts +5 -13
  892. package/timeline/timeline.property.d.ts +12 -8
  893. package/tooltip/tooltip-portal.component.d.ts +23 -29
  894. package/tooltip/tooltip.directive.d.ts +10 -9
  895. package/tooltip/tooltip.property.d.ts +18 -14
  896. package/transfer/transfer.component.d.ts +23 -20
  897. package/transfer/transfer.property.d.ts +81 -25
  898. package/tree/tree-node.component.d.ts +21 -21
  899. package/tree/tree.component.d.ts +29 -28
  900. package/tree/tree.property.d.ts +129 -79
  901. package/tree-file/tree-file.component.d.ts +7 -9
  902. package/tree-file/tree-file.property.d.ts +40 -16
  903. package/tree-select/tree-select-portal.component.d.ts +38 -49
  904. package/tree-select/tree-select.component.d.ts +50 -53
  905. package/tree-select/tree-select.property.d.ts +328 -39
  906. package/typography/typography.component.d.ts +1 -1
  907. package/typography/typography.property.d.ts +3 -3
  908. package/upload/upload-portal.component.d.ts +14 -14
  909. package/upload/upload.component.d.ts +18 -17
  910. package/upload/upload.property.d.ts +73 -24
  911. package/border/border.component.d.ts +0 -11
  912. package/border/border.module.d.ts +0 -7
  913. package/border/border.property.d.ts +0 -6
  914. package/border/index.d.ts +0 -5
  915. package/border/public-api.d.ts +0 -3
  916. package/esm2022/border/border.component.mjs +0 -21
  917. package/esm2022/border/border.module.mjs +0 -16
  918. package/esm2022/border/border.property.mjs +0 -7
  919. package/esm2022/border/ng-nest-ui-border.mjs +0 -5
  920. package/esm2022/border/public-api.mjs +0 -4
  921. package/fesm2022/ng-nest-ui-border.mjs +0 -47
  922. package/fesm2022/ng-nest-ui-border.mjs.map +0 -1
  923. package/style/params/colors.scss +0 -38
@@ -1,12 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, Output, Injectable, inject, ChangeDetectorRef, ElementRef, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, ViewChild, ViewChildren, NgModule } from '@angular/core';
3
- import { __decorate } from 'tslib';
4
- import * as i1$1 from '@ng-nest/ui/core';
5
- import { XProperty, XDataConvert, XInputBoolean, XInputNumber, XWithConfig, XIsEmpty, XRemove, XConfigService, XIsChange, XResize, XIsFunction, XSetData, XIsUndefined } from '@ng-nest/ui/core';
6
- import { Subject, debounceTime, takeUntil, map } from 'rxjs';
7
- import * as i4 from '@angular/cdk/scrolling';
8
- import { ScrollingModule } from '@angular/cdk/scrolling';
9
- import { NgStyle } from '@angular/common';
2
+ import { input, model, output, Component, Injectable, inject, computed, signal, ChangeDetectorRef, ElementRef, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, viewChild, viewChildren, effect, NgModule } from '@angular/core';
3
+ import { XPropertyFunction, XToBoolean, XToNumber, XToCssPixelValue, XProperty, XIsEmpty, XRemove, XComputedStyle, XToCssPx, XIsObjectArray, XIsArray, XIsChange, XResize, XIsFunction, XSetData, XIsUndefined } from '@ng-nest/ui/core';
4
+ import { Subject, debounceTime, map } from 'rxjs';
5
+ import * as i3 from '@angular/cdk/scrolling';
6
+ import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';
7
+ import { DOCUMENT, NgStyle } from '@angular/common';
10
8
  import { XIconComponent } from '@ng-nest/ui/icon';
11
9
  import { XCheckboxComponent } from '@ng-nest/ui/checkbox';
12
10
  import * as i1 from '@angular/forms';
@@ -14,8 +12,8 @@ import { FormsModule } from '@angular/forms';
14
12
  import { XKeywordDirective } from '@ng-nest/ui/keyword';
15
13
  import { XLinkComponent } from '@ng-nest/ui/link';
16
14
  import { XOutletDirective } from '@ng-nest/ui/outlet';
17
- import * as i3 from '@angular/cdk/drag-drop';
18
- import { DragDropModule } from '@angular/cdk/drag-drop';
15
+ import * as i2 from '@angular/cdk/drag-drop';
16
+ import { CdkDropList, DragDropModule } from '@angular/cdk/drag-drop';
19
17
 
20
18
  /**
21
19
  * Tree
@@ -23,267 +21,218 @@ import { DragDropModule } from '@angular/cdk/drag-drop';
23
21
  * @decorator component
24
22
  */
25
23
  const XTreePrefix = 'x-tree';
26
- const X_CONFIG_NAME = 'tree';
24
+ const X_TREE_CONFIG_NAME = 'tree';
27
25
  /**
28
26
  * Tree Property
29
27
  */
30
- class XTreeProperty extends XProperty {
28
+ class XTreeProperty extends XPropertyFunction(X_TREE_CONFIG_NAME) {
31
29
  constructor() {
32
30
  super(...arguments);
33
31
  /**
34
32
  * @zh_CN 节点数据
35
33
  * @en_US Node data
36
34
  */
37
- this.data = [];
35
+ this.data = input([]);
36
+ /**
37
+ * @zh_CN 显示多选框
38
+ * @en_US Show checkbox
39
+ */
40
+ this.checkbox = input(false, { transform: XToBoolean });
41
+ /**
42
+ * @zh_CN 开启懒加载节点,data 必须设置成函数类型
43
+ * @en_US Open lazy loading node, data must be set to function type
44
+ */
45
+ this.lazy = input(false, { transform: XToBoolean });
46
+ /**
47
+ * @zh_CN 当前激活的节点 Id, 当 multiple 为 true 时,值为数组(默认是 Id 数组,objectArray 为 true,对象数组)
48
+ * @en_US Currently active node Id. When Multiple is true, the value is the Id array
49
+ */
50
+ this.activatedId = model(null);
38
51
  /**
39
52
  * @zh_CN 展开的节点
40
53
  * @en_US Expanded node
41
54
  */
42
- this.expanded = [];
55
+ this.expanded = model([]);
43
56
  /**
44
57
  * @zh_CN checkbox 选中的节点
45
58
  * @en_US Checkbox selected node
46
59
  */
47
- this.checked = [];
60
+ this.checked = model([]);
61
+ /**
62
+ * @zh_CN 展开所有节点
63
+ * @en_US Expand all nodes
64
+ */
65
+ this.expandedAll = input(false, { transform: XToBoolean });
48
66
  /**
49
67
  * @zh_CN 默认展开的层级
50
68
  * @en_US Default expanded level
51
69
  */
52
- this.expandedLevel = -1;
70
+ this.expandedLevel = input(-1, { transform: XToNumber });
71
+ /**
72
+ * @zh_CN 点击节点就触发展开/收起的操作,请确保节点上没有其它操作(checkbox、自定义的操作按钮)
73
+ * @en_US Click the node to trigger the expand/collapse operation, please make sure that there are no other operations on the node (checkbox, custom operation button)
74
+ */
75
+ this.nodeOpen = input(false, { transform: XToBoolean });
76
+ /**
77
+ * @zh_CN 单位间距,这个与层级的乘积算出节点的左边距
78
+ * @en_US Unit spacing, the product of this and the level calculates the left margin of the node
79
+ */
80
+ this.spacing = input(this.config?.spacing ?? '1.5rem', { transform: XToCssPixelValue });
81
+ /**
82
+ * @zh_CN 标签自定义模板
83
+ * @en_US Label custom template
84
+ */
85
+ this.labelTpl = input();
86
+ /**
87
+ * @zh_CN 节点的高度, 默认是自适应高度
88
+ * @en_US The height of the node
89
+ */
90
+ this.nodeHeight = input(this.config?.nodeHeight ?? '', { transform: XToCssPixelValue });
91
+ /**
92
+ * @zh_CN 是否允许多次点击一个节点触发多次事件
93
+ * @en_US Whether to allow multiple clicks on a node to trigger multiple events
94
+ */
95
+ this.allowManyActivated = input(false, { transform: XToBoolean });
96
+ /**
97
+ * @zh_CN 拖动节点
98
+ * @en_US Drag node
99
+ */
100
+ this.drag = input(false, { transform: XToBoolean });
53
101
  /**
54
102
  * @zh_CN 当前点击选中的节点变化的事件
55
103
  * @en_US The event of the currently clicked node change
56
104
  */
57
- this.activatedChange = new EventEmitter();
105
+ this.activatedChange = output();
58
106
  /**
59
107
  * @zh_CN 使用 checkedbox 选中变化的事件
60
108
  * @en_US Use checkedbox to select changed events
61
109
  */
62
- this.checkboxChange = new EventEmitter();
110
+ this.checkboxChange = output();
63
111
  /**
64
- * @zh_CN 如果 data 是函数类型,可以通过此参数控制请求,常用于弹框中的表格,弹出后再请求
112
+ * @zh_CN 如果 data 是函数类型,可以通过此参数控制请求,用于弹框中的表格,弹出后再请求
65
113
  * @en_US If data is a function type, you can use this parameter to control the request, which is often used in the form in the pop-up box, and then request it after it pops up
66
114
  */
67
- this.manual = true;
115
+ this.manual = model(true);
68
116
  /**
69
117
  * @zh_CN checkbox 状态改变触发层级检查
70
118
  * @en_US Checkbox status changes trigger level checks
71
119
  */
72
- this.levelCheck = true;
120
+ this.levelCheck = input(true, { transform: XToBoolean });
73
121
  /**
74
122
  * @zh_CN 节点内容不换行显示省略号
75
123
  * @en_US Show ellipsis without wrapping
76
124
  */
77
- this.nodeNowrap = true;
125
+ this.nodeNowrap = input(true, { transform: XToBoolean });
126
+ /**
127
+ * @zh_CN 节点垂直对齐方式
128
+ * @en_US Show ellipsis without wrapping
129
+ */
130
+ this.nodeAlignItems = input(this.config?.nodeAlignItems ?? 'center');
78
131
  /**
79
132
  * @zh_CN 树节点操作按钮
80
133
  * @en_US Tree node operation buttons
81
134
  */
82
- this.actions = [];
135
+ this.actions = input([]);
136
+ /**
137
+ * @zh_CN 滚动区域元素
138
+ * @en_US Rolling area element
139
+ */
140
+ this.scrollElement = input();
141
+ /**
142
+ * @zh_CN 开启虚拟滚动
143
+ * @en_US Turn on virtual scrolling
144
+ */
145
+ this.virtualScroll = input(this.config?.virtualScroll ?? false, { transform: XToBoolean });
146
+ /**
147
+ * @zh_CN 滚动区域高度,开启虚拟滚动的时候生效
148
+ * @en_US Rolling area height
149
+ */
150
+ this.virtualScrollHeight = input(this.config?.virtualScrollHeight ?? '400px', {
151
+ transform: XToCssPixelValue
152
+ });
153
+ /**
154
+ * @zh_CN 虚拟滚动高度自适应指定元素
155
+ * @en_US virtual rolling height follows the specified object
156
+ */
157
+ this.heightAdaption = input();
158
+ /**
159
+ * @zh_CN itemSize,对应 cdk scroll 中的参数,开启虚拟滚动才生效
160
+ * @en_US itemSize,corresponding to the parameters in cdk scroll
161
+ */
162
+ this.itemSize = input(this.config?.itemSize ?? 34, { transform: XToNumber });
83
163
  /**
84
164
  * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数,开启虚拟滚动才生效
85
165
  * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll
86
166
  */
87
- this.minBufferPx = 100;
167
+ this.minBufferPx = input(100, { transform: XToNumber });
88
168
  /**
89
169
  * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数,开启虚拟滚动才生效
90
170
  * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll
91
171
  */
92
- this.maxBufferPx = 200;
172
+ this.maxBufferPx = input(200, { transform: XToNumber });
93
173
  /**
94
- * @zh_CN 参数控制请求改变事件
95
- * @en_US Parameter control request change event
174
+ * @zh_CN 多选功能,当前激活的节点可以是多个
175
+ * @en_US Multiple choice
96
176
  */
97
- this.manualChange = new EventEmitter();
177
+ this.multiple = input(false, { transform: XToBoolean });
98
178
  /**
99
- * @zh_CN 节点点击事件
100
- * @en_US Node click event
179
+ * @zh_CN 当开启多选的时候,activatedId 的值为对象数组
180
+ * @en_US When multiple selection is enabled, the value of activatedId is an array of objects
181
+ */
182
+ this.objectArray = input(false, { transform: XToBoolean });
183
+ /**
184
+ * @zh_CN 关键字高亮,针对下拉树搜索
185
+ * @en_US Keyword highlighting
186
+ */
187
+ this.keywordText = input();
188
+ /**
189
+ * @zh_CN 匹配关键字区分大小写,针对下拉树搜索
190
+ * @en_US Case-sensitive
191
+ */
192
+ this.caseSensitive = input(this.config?.caseSensitive ?? true, { transform: XToBoolean });
193
+ /**
194
+ * @zh_CN 只能选择叶子节点
195
+ * @en_US Only leaf nodes can be selected
196
+ */
197
+ this.onlyLeaf = input(this.config?.onlyLeaf ?? false, { transform: XToBoolean });
198
+ /**
199
+ * @zh_CN 展开收起的图标自定义模版
200
+ * @en_US Expand the folded icon custom template
101
201
  */
102
- this.nodeClick = new EventEmitter();
202
+ this.expandedIcon = input();
203
+ /**
204
+ * @zh_CN 显示连接线
205
+ * @en_US Show line
206
+ */
207
+ this.showLine = input(this.config?.showLine ?? false, { transform: XToBoolean });
103
208
  /**
104
209
  * @zh_CN 节点点击事件
105
210
  * @en_US Node click event
106
211
  */
107
- this.activatedIdChange = new EventEmitter();
212
+ this.nodeClick = output();
108
213
  /**
109
214
  * @zh_CN 节点开始拖动事件
110
215
  * @en_US Node drag started
111
216
  */
112
- this.nodeDragStarted = new EventEmitter();
217
+ this.nodeDragStarted = output();
113
218
  /**
114
219
  * @zh_CN 节点结束拖动事件
115
220
  * @en_US Node drag ended
116
221
  */
117
- this.nodeDragEnded = new EventEmitter();
222
+ this.nodeDragEnded = output();
118
223
  /**
119
224
  * @zh_CN 节点正在拖动事件
120
225
  * @en_US Node drag moved
121
226
  */
122
- this.nodeDragMoved = new EventEmitter();
227
+ this.nodeDragMoved = output();
123
228
  }
124
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
125
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: XTreeProperty, selector: "x-tree-property", inputs: { data: "data", checkbox: "checkbox", lazy: "lazy", activatedId: "activatedId", expanded: "expanded", checked: "checked", expandedAll: "expandedAll", expandedLevel: "expandedLevel", nodeOpen: "nodeOpen", spacing: "spacing", labelTpl: "labelTpl", nodeHeight: "nodeHeight", allowManyActivated: "allowManyActivated", drag: "drag", manual: "manual", levelCheck: "levelCheck", nodeNowrap: "nodeNowrap", nodeAlignItems: "nodeAlignItems", actions: "actions", scrollElement: "scrollElement", virtualScroll: "virtualScroll", virtualScrollHeight: "virtualScrollHeight", heightAdaption: "heightAdaption", itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", multiple: "multiple", objectArray: "objectArray", keywordText: "keywordText", caseSensitive: "caseSensitive", onlyLeaf: "onlyLeaf", expandedIcon: "expandedIcon", showLine: "showLine" }, outputs: { activatedChange: "activatedChange", checkboxChange: "checkboxChange", manualChange: "manualChange", nodeClick: "nodeClick", activatedIdChange: "activatedIdChange", nodeDragStarted: "nodeDragStarted", nodeDragEnded: "nodeDragEnded", nodeDragMoved: "nodeDragMoved" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
229
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
230
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: XTreeProperty, selector: "x-tree-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, checkbox: { classPropertyName: "checkbox", publicName: "checkbox", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, activatedId: { classPropertyName: "activatedId", publicName: "activatedId", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, expandedAll: { classPropertyName: "expandedAll", publicName: "expandedAll", isSignal: true, isRequired: false, transformFunction: null }, expandedLevel: { classPropertyName: "expandedLevel", publicName: "expandedLevel", isSignal: true, isRequired: false, transformFunction: null }, nodeOpen: { classPropertyName: "nodeOpen", publicName: "nodeOpen", isSignal: true, isRequired: false, transformFunction: null }, spacing: { classPropertyName: "spacing", publicName: "spacing", isSignal: true, isRequired: false, transformFunction: null }, labelTpl: { classPropertyName: "labelTpl", publicName: "labelTpl", isSignal: true, isRequired: false, transformFunction: null }, nodeHeight: { classPropertyName: "nodeHeight", publicName: "nodeHeight", isSignal: true, isRequired: false, transformFunction: null }, allowManyActivated: { classPropertyName: "allowManyActivated", publicName: "allowManyActivated", isSignal: true, isRequired: false, transformFunction: null }, drag: { classPropertyName: "drag", publicName: "drag", isSignal: true, isRequired: false, transformFunction: null }, manual: { classPropertyName: "manual", publicName: "manual", isSignal: true, isRequired: false, transformFunction: null }, levelCheck: { classPropertyName: "levelCheck", publicName: "levelCheck", isSignal: true, isRequired: false, transformFunction: null }, nodeNowrap: { classPropertyName: "nodeNowrap", publicName: "nodeNowrap", isSignal: true, isRequired: false, transformFunction: null }, nodeAlignItems: { classPropertyName: "nodeAlignItems", publicName: "nodeAlignItems", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, scrollElement: { classPropertyName: "scrollElement", publicName: "scrollElement", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollHeight: { classPropertyName: "virtualScrollHeight", publicName: "virtualScrollHeight", isSignal: true, isRequired: false, transformFunction: null }, heightAdaption: { classPropertyName: "heightAdaption", publicName: "heightAdaption", isSignal: true, isRequired: false, transformFunction: null }, itemSize: { classPropertyName: "itemSize", publicName: "itemSize", isSignal: true, isRequired: false, transformFunction: null }, minBufferPx: { classPropertyName: "minBufferPx", publicName: "minBufferPx", isSignal: true, isRequired: false, transformFunction: null }, maxBufferPx: { classPropertyName: "maxBufferPx", publicName: "maxBufferPx", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, objectArray: { classPropertyName: "objectArray", publicName: "objectArray", isSignal: true, isRequired: false, transformFunction: null }, keywordText: { classPropertyName: "keywordText", publicName: "keywordText", isSignal: true, isRequired: false, transformFunction: null }, caseSensitive: { classPropertyName: "caseSensitive", publicName: "caseSensitive", isSignal: true, isRequired: false, transformFunction: null }, onlyLeaf: { classPropertyName: "onlyLeaf", publicName: "onlyLeaf", isSignal: true, isRequired: false, transformFunction: null }, expandedIcon: { classPropertyName: "expandedIcon", publicName: "expandedIcon", isSignal: true, isRequired: false, transformFunction: null }, showLine: { classPropertyName: "showLine", publicName: "showLine", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activatedId: "activatedIdChange", expanded: "expandedChange", checked: "checkedChange", activatedChange: "activatedChange", checkboxChange: "checkboxChange", manual: "manualChange", nodeClick: "nodeClick", nodeDragStarted: "nodeDragStarted", nodeDragEnded: "nodeDragEnded", nodeDragMoved: "nodeDragMoved" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
126
231
  }
127
- __decorate([
128
- XDataConvert()
129
- ], XTreeProperty.prototype, "data", void 0);
130
- __decorate([
131
- XInputBoolean()
132
- ], XTreeProperty.prototype, "checkbox", void 0);
133
- __decorate([
134
- XInputBoolean()
135
- ], XTreeProperty.prototype, "lazy", void 0);
136
- __decorate([
137
- XInputBoolean()
138
- ], XTreeProperty.prototype, "expandedAll", void 0);
139
- __decorate([
140
- XInputNumber()
141
- ], XTreeProperty.prototype, "expandedLevel", void 0);
142
- __decorate([
143
- XInputBoolean()
144
- ], XTreeProperty.prototype, "nodeOpen", void 0);
145
- __decorate([
146
- XWithConfig(X_CONFIG_NAME, 1.5),
147
- XInputNumber()
148
- ], XTreeProperty.prototype, "spacing", void 0);
149
- __decorate([
150
- XWithConfig(X_CONFIG_NAME, 0),
151
- XInputNumber()
152
- ], XTreeProperty.prototype, "nodeHeight", void 0);
153
- __decorate([
154
- XInputBoolean()
155
- ], XTreeProperty.prototype, "allowManyActivated", void 0);
156
- __decorate([
157
- XInputBoolean()
158
- ], XTreeProperty.prototype, "drag", void 0);
159
- __decorate([
160
- XInputBoolean()
161
- ], XTreeProperty.prototype, "manual", void 0);
162
- __decorate([
163
- XInputBoolean()
164
- ], XTreeProperty.prototype, "levelCheck", void 0);
165
- __decorate([
166
- XInputBoolean()
167
- ], XTreeProperty.prototype, "nodeNowrap", void 0);
168
- __decorate([
169
- XWithConfig(X_CONFIG_NAME, 'center')
170
- ], XTreeProperty.prototype, "nodeAlignItems", void 0);
171
- __decorate([
172
- XWithConfig(X_CONFIG_NAME),
173
- XInputBoolean()
174
- ], XTreeProperty.prototype, "virtualScroll", void 0);
175
- __decorate([
176
- XWithConfig(X_CONFIG_NAME, 400),
177
- XInputNumber()
178
- ], XTreeProperty.prototype, "virtualScrollHeight", void 0);
179
- __decorate([
180
- XWithConfig(X_CONFIG_NAME, 26),
181
- XInputNumber()
182
- ], XTreeProperty.prototype, "itemSize", void 0);
183
- __decorate([
184
- XInputBoolean()
185
- ], XTreeProperty.prototype, "multiple", void 0);
186
- __decorate([
187
- XInputBoolean()
188
- ], XTreeProperty.prototype, "objectArray", void 0);
189
- __decorate([
190
- XInputBoolean(),
191
- XWithConfig(X_CONFIG_NAME, true)
192
- ], XTreeProperty.prototype, "caseSensitive", void 0);
193
- __decorate([
194
- XInputBoolean(),
195
- XWithConfig(X_CONFIG_NAME, false)
196
- ], XTreeProperty.prototype, "onlyLeaf", void 0);
197
- __decorate([
198
- XInputBoolean(),
199
- XWithConfig(X_CONFIG_NAME, false)
200
- ], XTreeProperty.prototype, "showLine", void 0);
201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeProperty, decorators: [{
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeProperty, decorators: [{
202
233
  type: Component,
203
234
  args: [{ selector: `${XTreePrefix}-property`, template: '' }]
204
- }], propDecorators: { data: [{
205
- type: Input
206
- }], checkbox: [{
207
- type: Input
208
- }], lazy: [{
209
- type: Input
210
- }], activatedId: [{
211
- type: Input
212
- }], expanded: [{
213
- type: Input
214
- }], checked: [{
215
- type: Input
216
- }], expandedAll: [{
217
- type: Input
218
- }], expandedLevel: [{
219
- type: Input
220
- }], nodeOpen: [{
221
- type: Input
222
- }], spacing: [{
223
- type: Input
224
- }], labelTpl: [{
225
- type: Input
226
- }], nodeHeight: [{
227
- type: Input
228
- }], allowManyActivated: [{
229
- type: Input
230
- }], drag: [{
231
- type: Input
232
- }], activatedChange: [{
233
- type: Output
234
- }], checkboxChange: [{
235
- type: Output
236
- }], manual: [{
237
- type: Input
238
- }], levelCheck: [{
239
- type: Input
240
- }], nodeNowrap: [{
241
- type: Input
242
- }], nodeAlignItems: [{
243
- type: Input
244
- }], actions: [{
245
- type: Input
246
- }], scrollElement: [{
247
- type: Input
248
- }], virtualScroll: [{
249
- type: Input
250
- }], virtualScrollHeight: [{
251
- type: Input
252
- }], heightAdaption: [{
253
- type: Input
254
- }], itemSize: [{
255
- type: Input
256
- }], minBufferPx: [{
257
- type: Input
258
- }], maxBufferPx: [{
259
- type: Input
260
- }], multiple: [{
261
- type: Input
262
- }], objectArray: [{
263
- type: Input
264
- }], keywordText: [{
265
- type: Input
266
- }], caseSensitive: [{
267
- type: Input
268
- }], onlyLeaf: [{
269
- type: Input
270
- }], expandedIcon: [{
271
- type: Input
272
- }], showLine: [{
273
- type: Input
274
- }], manualChange: [{
275
- type: Output
276
- }], nodeClick: [{
277
- type: Output
278
- }], activatedIdChange: [{
279
- type: Output
280
- }], nodeDragStarted: [{
281
- type: Output
282
- }], nodeDragEnded: [{
283
- type: Output
284
- }], nodeDragMoved: [{
285
- type: Output
286
- }] } });
235
+ }] });
287
236
  /**
288
237
  * TreeNode
289
238
  * @selector x-tree-node
@@ -300,53 +249,105 @@ class XTreeNodeProperty extends XProperty {
300
249
  * @zh_CN 节点数据
301
250
  * @en_US Node data
302
251
  */
303
- this.node = {};
252
+ this.node = input({});
253
+ /**
254
+ * @zh_CN 层级
255
+ * @en_US Level
256
+ */
257
+ this.level = model(0);
258
+ /**
259
+ * @zh_CN 节点的高度
260
+ * @en_US The height of the node
261
+ */
262
+ this.nodeHeight = model('');
263
+ /**
264
+ * @zh_CN 节点内容不换行显示省略号
265
+ * @en_US Show ellipsis without wrapping
266
+ */
267
+ this.nodeNowrap = model(false);
268
+ /**
269
+ * @zh_CN 节点垂直对齐方式
270
+ * @en_US Show ellipsis without wrapping
271
+ */
272
+ this.nodeAlignItems = model('center');
273
+ /**
274
+ * @zh_CN 标记为虚拟滚动的节点
275
+ * @en_US Mark as a node of virtual rolling
276
+ */
277
+ this.virtualScroll = model(false);
278
+ /**
279
+ * @zh_CN 禁用
280
+ * @en_US Disabled
281
+ */
282
+ this.disabled = model(false);
283
+ /**
284
+ * @zh_CN id
285
+ * @en_US Id
286
+ */
287
+ this.id = model();
288
+ /**
289
+ * @zh_CN pid
290
+ * @en_US pId
291
+ */
292
+ this.pid = model();
304
293
  /**
305
- * @zh_CN 节点的高度,单位 rem
306
- * @en_US The height of the node in rem
294
+ * @zh_CN 叶子节点
295
+ * @en_US A leaf node
307
296
  */
308
- this.nodeHeight = 0;
297
+ this.leaf = model(false);
298
+ /**
299
+ * @zh_CN 节点的高度
300
+ * @en_US The height of the node
301
+ */
302
+ this.height = model('');
309
303
  /**
310
304
  * @zh_CN 节点垂直对齐方式
311
305
  * @en_US Show ellipsis without wrapping
312
306
  */
313
- this.nodeAlignItems = 'center';
307
+ this.alignItems = model();
308
+ /**
309
+ * @zh_CN 节点垂直对齐方式
310
+ * @en_US Show ellipsis without wrapping
311
+ */
312
+ this.loading = model(false);
313
+ /**
314
+ * @zh_CN 展开
315
+ * @en_US open
316
+ */
317
+ this.open = model(false);
318
+ /**
319
+ * @zh_CN checkbox 是否选中
320
+ * @en_US whether checkbox is selected
321
+ */
322
+ this.checked = model(false);
323
+ /**
324
+ * @zh_CN checkbox 子节点是否有选中的状态
325
+ * @en_US Whether the child node of checkbox is selected
326
+ */
327
+ this.indeterminate = model(false);
328
+ /**
329
+ * @zh_CN 节点名称
330
+ * @en_US The name of the node
331
+ */
332
+ this.label = model('');
333
+ /**
334
+ * @zh_CN 节点内容不换行显示省略号,优先级高于 tree 参数
335
+ * @en_US Show ellipsis without wrapping, highest priority
336
+ */
337
+ this.nowrap = model(false);
338
+ /**
339
+ * @zh_CN 节点展开收起事件
340
+ * @en_US Node expansion pack up
341
+ */
342
+ this.toggle = output();
314
343
  }
315
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeNodeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
316
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: XTreeNodeProperty, selector: "x-tree-node-property", inputs: { node: "node", level: "level", lazy: "lazy", nodeHeight: "nodeHeight", nodeNowrap: "nodeNowrap", nodeAlignItems: "nodeAlignItems", lazyData: "lazyData", virtualScroll: "virtualScroll" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
344
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeNodeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
345
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: XTreeNodeProperty, selector: "x-tree-node-property", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, nodeHeight: { classPropertyName: "nodeHeight", publicName: "nodeHeight", isSignal: true, isRequired: false, transformFunction: null }, nodeNowrap: { classPropertyName: "nodeNowrap", publicName: "nodeNowrap", isSignal: true, isRequired: false, transformFunction: null }, nodeAlignItems: { classPropertyName: "nodeAlignItems", publicName: "nodeAlignItems", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, pid: { classPropertyName: "pid", publicName: "pid", isSignal: true, isRequired: false, transformFunction: null }, leaf: { classPropertyName: "leaf", publicName: "leaf", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, alignItems: { classPropertyName: "alignItems", publicName: "alignItems", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, nowrap: { classPropertyName: "nowrap", publicName: "nowrap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { level: "levelChange", nodeHeight: "nodeHeightChange", nodeNowrap: "nodeNowrapChange", nodeAlignItems: "nodeAlignItemsChange", virtualScroll: "virtualScrollChange", disabled: "disabledChange", id: "idChange", pid: "pidChange", leaf: "leafChange", height: "heightChange", alignItems: "alignItemsChange", loading: "loadingChange", open: "openChange", checked: "checkedChange", indeterminate: "indeterminateChange", label: "labelChange", nowrap: "nowrapChange", toggle: "toggle" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
317
346
  }
318
- __decorate([
319
- XInputBoolean()
320
- ], XTreeNodeProperty.prototype, "lazy", void 0);
321
- __decorate([
322
- XInputNumber()
323
- ], XTreeNodeProperty.prototype, "nodeHeight", void 0);
324
- __decorate([
325
- XInputBoolean()
326
- ], XTreeNodeProperty.prototype, "nodeNowrap", void 0);
327
- __decorate([
328
- XInputBoolean()
329
- ], XTreeNodeProperty.prototype, "virtualScroll", void 0);
330
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeNodeProperty, decorators: [{
347
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeNodeProperty, decorators: [{
331
348
  type: Component,
332
349
  args: [{ selector: `${XTreeNodePrefix}-property`, template: '' }]
333
- }], propDecorators: { node: [{
334
- type: Input
335
- }], level: [{
336
- type: Input
337
- }], lazy: [{
338
- type: Input
339
- }], nodeHeight: [{
340
- type: Input
341
- }], nodeNowrap: [{
342
- type: Input
343
- }], nodeAlignItems: [{
344
- type: Input
345
- }], lazyData: [{
346
- type: Input
347
- }], virtualScroll: [{
348
- type: Input
349
- }] } });
350
+ }] });
350
351
 
351
352
  class XTreeService {
352
353
  getChildren(data, node) {
@@ -415,10 +416,10 @@ class XTreeService {
415
416
  data.splice(pos === -1 ? index : index + 1, 0, from);
416
417
  }
417
418
  }
418
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
419
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeService, providedIn: 'root' }); }
419
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
420
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeService, providedIn: 'root' }); }
420
421
  }
421
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeService, decorators: [{
422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeService, decorators: [{
422
423
  type: Injectable,
423
424
  args: [{ providedIn: 'root' }]
424
425
  }] });
@@ -426,175 +427,181 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
426
427
  class XTreeNodeComponent extends XTreeNodeProperty {
427
428
  constructor() {
428
429
  super(...arguments);
429
- this.nodeMouseenter = new EventEmitter();
430
+ this.tree = inject(XTreeComponent, { optional: true, host: true });
431
+ this.nodeMouseenter = output();
430
432
  this.rootClass = true;
431
- this._loading = false;
432
- this._unSubject = new Subject();
433
+ this.document = inject(DOCUMENT);
434
+ this.fontSize = computed(() => parseFloat(XComputedStyle(this.document.documentElement, 'font-size')));
435
+ this.unSubject = new Subject();
436
+ this.showDragIndicator = computed(() => {
437
+ return this.tree.dragging() && this.tree.hoverTreeNode()?.id === this.id();
438
+ });
439
+ this.isChildrenLast = computed(() => {
440
+ let parent = this.tree.nodes().find((x) => x.id === this.pid());
441
+ if (!parent || !parent.children)
442
+ return false;
443
+ const index = parent.children.indexOf(this.node());
444
+ return index + 1 === parent.children.length;
445
+ });
446
+ this.isParentLast = computed(() => {
447
+ let parents = this.treeService.getParents(this.tree.nodes(), this.node());
448
+ if (parents.length <= 1)
449
+ return [];
450
+ const res = [];
451
+ parents.reduce((pre, curr) => {
452
+ if (pre === null)
453
+ return curr;
454
+ const index = curr.children?.indexOf(pre);
455
+ res.push(index + 1 === curr.children?.length);
456
+ return curr;
457
+ });
458
+ return res.reverse();
459
+ });
460
+ this.verticalLevel = computed(() => {
461
+ if (this.level() > 0) {
462
+ return Array.from({ length: this.level() }).map((_x, index) => index + 1);
463
+ }
464
+ else {
465
+ return [];
466
+ }
467
+ });
468
+ this.verticalWidth = computed(() => {
469
+ return XToCssPx(this.tree.spacing(), this.fontSize()) / 2;
470
+ });
471
+ this.paddingLeft = computed(() => (this.level() ? this.level() : 0) * XToCssPx(this.tree.spacing(), this.fontSize()));
472
+ this.indicatorWidth = computed(() => {
473
+ return `calc(100% - ${this.paddingLeft() + (this.leaf() ? this.fontSize() * 1.5 : 0)}px)`;
474
+ });
475
+ this.indicatorStyle = computed(() => {
476
+ if (this.tree.dragPosition() === 1) {
477
+ return { bottom: `-${0.0625 * this.fontSize()}px` };
478
+ }
479
+ else if (this.tree.dragPosition() === -1) {
480
+ return { top: `-${0.0625 * this.fontSize()}px` };
481
+ }
482
+ return {};
483
+ });
484
+ this.changed = signal(false);
485
+ this.activated = computed(() => {
486
+ this.changed();
487
+ const activatedId = this.tree.activatedId();
488
+ if (this.tree.multiple()) {
489
+ if (this.tree.objectArray()) {
490
+ return XIsObjectArray(activatedId) && activatedId.map((x) => x.id).includes(this.id());
491
+ }
492
+ else {
493
+ return XIsArray(activatedId) && activatedId.includes(this.id());
494
+ }
495
+ }
496
+ else {
497
+ return activatedId === this.id();
498
+ }
499
+ });
433
500
  this.cdr = inject(ChangeDetectorRef);
434
501
  this.treeService = inject(XTreeService);
435
502
  this.elementRef = inject(ElementRef);
436
- this.configService = inject(XConfigService);
437
- }
438
- get loading() {
439
- return this._loading;
440
- }
441
- set loading(value) {
442
- this._loading = value;
443
- this.cdr.detectChanges();
444
- }
445
- get showDragIndicator() {
446
- return this.tree.dragging && this.tree.hoverTreeNode?.id === this.node.id;
447
503
  }
448
504
  onMouseenter(event) {
449
- this.nodeMouseenter.emit({ event: event, node: this.node, ele: this.elementRef });
505
+ this.nodeMouseenter.emit({ event: event, node: this.node(), ele: this.elementRef });
450
506
  }
451
507
  onMouseleave(_event) {
452
- if (!this.tree.dragging)
508
+ if (!this.tree.dragging())
453
509
  return;
454
- this.tree.hoverTreeNode?.change && this.tree.hoverTreeNode?.change();
510
+ const hoverTreeNode = this.tree.hoverTreeNode();
511
+ hoverTreeNode && hoverTreeNode.change && hoverTreeNode.change();
455
512
  this.cdr.detectChanges();
456
513
  }
457
- get isChildrenLast() {
458
- let parent = this.tree.nodes.find((x) => x.id === this.node.pid);
459
- if (!parent)
460
- return false;
461
- const index = parent.children.indexOf(this.node);
462
- return index + 1 === parent.children.length;
463
- }
464
- get isParentLast() {
465
- let parents = this.treeService.getParents(this.tree.nodes, this.node);
466
- if (parents.length <= 1)
467
- return [];
468
- const res = [];
469
- parents.reduce((pre, curr) => {
470
- if (pre === null)
471
- return curr;
472
- const index = curr.children?.indexOf(pre);
473
- res.push(index + 1 === curr.children?.length);
474
- return curr;
475
- });
476
- return res.reverse();
477
- }
478
- get numLevel() {
479
- return Number(this.level);
480
- }
481
- get verticalLevel() {
482
- if (this.numLevel > 0) {
483
- return Array.from({ length: this.numLevel }).map((_x, index) => index + 1);
484
- }
485
- else {
486
- return [];
487
- }
488
- }
489
- get verticalWidth() {
490
- return Number(this.tree.spacing) / 2;
491
- }
492
- get paddingLeft() {
493
- return Number(this.node?.level ? this.node.level : 0) * Number(this.tree.spacing);
494
- }
495
- get indicatorWidth() {
496
- return `calc(100% - ${this.paddingLeft + (this.node.leaf ? 1.5 : 0)}rem)`;
497
- }
498
- get indicatorStyle() {
499
- if (this.tree.dragPosition === 1) {
500
- return { bottom: `${-0.0625}rem` };
501
- }
502
- else if (this.tree.dragPosition === -1) {
503
- return { top: `${-0.0625}rem` };
504
- }
505
- return {};
506
- }
507
- get getActivated() {
508
- if (this.tree.multiple) {
509
- if (this.tree.objectArray) {
510
- return this.tree.activatedId?.map((x) => x.id).includes(this.node.id);
511
- }
512
- else {
513
- return this.tree.activatedId?.includes(this.node.id);
514
- }
515
- }
516
- else {
517
- return this.tree.activatedId === this.node.id;
518
- }
519
- }
520
514
  ngOnInit() {
521
- this.node.change = (check) => {
515
+ const node = this.node();
516
+ node.change = (check) => {
522
517
  if (check)
523
518
  this.setCheckbox();
524
- this?.cdr.detectChanges();
519
+ this.cdr.detectChanges();
525
520
  };
526
- this.level = this.node?.level ? this.node.level : 0;
527
- if (!this.tree.levelCheck)
521
+ if (!this.tree.levelCheck())
528
522
  return;
529
- if (this.node.checked)
523
+ if (this.checked())
530
524
  this.setCheckbox();
531
- this.setIndeterminate(this.node);
525
+ this.setIndeterminate(this.node());
532
526
  }
533
527
  ngOnDestroy() {
534
- this._unSubject.next();
535
- this._unSubject.complete();
528
+ this.unSubject.next();
529
+ this.unSubject.complete();
536
530
  }
537
531
  onActivate(event, node) {
538
- const change = this.tree.activatedNode?.change;
539
- this.tree.nodeOpen && !node.leaf && this.tree.onToggle(event, node);
532
+ const change = this.tree.activatedNode()?.change;
533
+ this.tree.nodeOpen() && !this.leaf() && this.onToggle(event, node);
540
534
  const onChange = () => {
541
535
  change && change();
542
536
  event.preventDefault();
543
537
  event.stopPropagation();
544
538
  this.cdr.detectChanges();
545
539
  };
546
- if (this.tree.onlyLeaf && !node.leaf) {
540
+ if (this.tree.onlyLeaf() && !this.leaf()) {
547
541
  onChange();
548
542
  return;
549
543
  }
550
- if (this.tree.multiple) {
551
- if (!this.tree.activatedId)
552
- this.tree.activatedId = [];
553
- if (this.tree.objectArray) {
554
- const ids = this.tree.activatedId.map((x) => x.id);
544
+ if (this.tree.multiple()) {
545
+ if (!this.tree.activatedId())
546
+ this.tree.activatedId.set([]);
547
+ if (this.tree.objectArray()) {
548
+ const ids = this.tree.activatedId().map((x) => x.id);
555
549
  if (ids.includes(node.id)) {
556
- this.tree.activatedId.splice(ids.indexOf(node.id), 1);
550
+ this.tree.activatedId.update((x) => {
551
+ x.splice(ids.indexOf(node.id), 1);
552
+ return [...x];
553
+ });
557
554
  }
558
555
  else {
559
- this.tree.activatedId.push(node);
556
+ this.tree.activatedId.update((x) => {
557
+ x.push(node);
558
+ return [...x];
559
+ });
560
560
  }
561
561
  }
562
562
  else {
563
- if (this.tree.activatedId.includes(node.id)) {
564
- this.tree.activatedId.splice(this.tree.activatedId.indexOf(node.id), 1);
563
+ if (this.tree.activatedId().includes(node.id)) {
564
+ this.tree.activatedId.update((x) => {
565
+ x.splice(this.tree.activatedId().indexOf(node.id), 1);
566
+ return [...x];
567
+ });
565
568
  }
566
569
  else {
567
- this.tree.activatedId.push(node.id);
570
+ this.tree.activatedId.update((x) => {
571
+ x.push(node.id);
572
+ return [...x];
573
+ });
568
574
  }
569
575
  }
570
576
  }
571
577
  else {
572
- this.tree.activatedId = node.id;
578
+ this.tree.activatedId.set(node.id);
573
579
  }
574
- if (this.tree.activatedNode) {
575
- if (this.tree.activatedNode.id === node.id && !this.tree.allowManyActivated)
580
+ if (this.tree.activatedNode()) {
581
+ if (this.tree.activatedNode()?.id === node.id && !this.tree.allowManyActivated())
576
582
  return;
577
583
  }
578
- this.tree.activatedNode = node;
579
- this.tree.activatedIdChange.emit(this.tree.activatedId);
584
+ this.tree.activatedNode.set(node);
585
+ this.changed.update((x) => !x);
580
586
  this.tree.activatedChange.emit(node);
581
587
  this.tree.nodeClick.emit(node);
582
588
  onChange();
583
589
  }
584
590
  onCheckboxChange() {
585
591
  this.setCheckbox();
586
- this.tree.checkboxChange.emit(this.node);
592
+ this.tree.checkboxChange.emit(this.node());
587
593
  }
588
594
  getVerticalLeft(i) {
589
- return (i - 1) * Number(this.tree.spacing) + Number(this.tree.spacing) / 2;
595
+ const spacing = XToCssPx(this.tree.spacing(), this.fontSize());
596
+ return (i - 1) * spacing + spacing / 2;
590
597
  }
591
598
  setCheckbox() {
592
- if (!this.tree.levelCheck)
599
+ if (!this.tree.levelCheck())
593
600
  return;
594
- this.node.indeterminate = this.node.checked;
595
- this.node.children && this.setChildrenCheckbox(this.node.checked);
601
+ this.node().indeterminate = this.checked();
602
+ this.node().children && this.setChildrenCheckbox(this.checked());
596
603
  const setParent = (node) => {
597
- let parent = this.tree.nodes.find((x) => x.id === node.pid);
604
+ let parent = this.tree.nodes().find((x) => x.id === node.pid);
598
605
  if (!parent || XIsEmpty(parent.children))
599
606
  return;
600
607
  let checkedList = parent.children?.filter((y) => y.checked);
@@ -604,7 +611,8 @@ class XTreeNodeComponent extends XTreeNodeProperty {
604
611
  parent.change && parent.change();
605
612
  setParent(parent);
606
613
  };
607
- setParent(this.node);
614
+ setParent(this.node());
615
+ this.cdr.detectChanges();
608
616
  }
609
617
  setChildrenCheckbox(checked) {
610
618
  const setChildren = (children, isChecked) => {
@@ -619,16 +627,17 @@ class XTreeNodeComponent extends XTreeNodeProperty {
619
627
  setChildren(x.children, isChecked);
620
628
  }
621
629
  };
622
- setChildren(this.node.children, checked);
630
+ setChildren(this.node().children, checked);
623
631
  this.cdr.detectChanges();
624
632
  }
625
633
  setParentCheckbox() {
626
- if (XIsEmpty(this.node.children))
634
+ if (XIsEmpty(this.node().children))
627
635
  return;
628
- let checkedList = this.node.children?.filter((x) => x.checked);
629
- let indeterminateList = this.node.children?.filter((x) => x.indeterminate);
630
- this.node.checked = checkedList?.length === this.node.children?.length;
631
- this.node.indeterminate = checkedList.length > 0 || indeterminateList.length > 0;
636
+ let checkedList = this.node().children?.filter((x) => x.checked);
637
+ let indeterminateList = this.node().children?.filter((x) => x.indeterminate);
638
+ this.node().checked = checkedList?.length === this.node().children?.length;
639
+ this.node().indeterminate =
640
+ checkedList.length > 0 || indeterminateList.length > 0;
632
641
  this.cdr.detectChanges();
633
642
  }
634
643
  setIndeterminate(node) {
@@ -653,16 +662,21 @@ class XTreeNodeComponent extends XTreeNodeProperty {
653
662
  action.handler && action.handler(node);
654
663
  event.stopPropagation();
655
664
  }
665
+ onToggle(event, node) {
666
+ this.toggle.emit(node);
667
+ event?.preventDefault();
668
+ event?.stopPropagation();
669
+ }
656
670
  trackByItem(_index, item) {
657
671
  return `${item.id}-${item.level}`;
658
672
  }
659
673
  trackByAction(_index, item) {
660
674
  return item.id;
661
675
  }
662
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
663
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: XTreeNodeComponent, isStandalone: true, selector: "x-tree-node, [x-tree-node]", inputs: { tree: "tree" }, outputs: { nodeMouseenter: "nodeMouseenter" }, host: { listeners: { "mouseenter": "onMouseenter($event)", "mouseleave": "onMouseleave()" }, properties: { "class.x-tree-node": "this.rootClass" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"getActivated\"\r\n [class.x-disabled]=\"node.disabled\"\r\n [class.x-tree-node-sub]=\"!node.leaf\"\r\n [class.x-tree-node-last]=\"isChildrenLast\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"!node.disabled && onActivate($event, node)\"\r\n>\r\n @if (tree.showLine && numLevel > 0) {\r\n <div class=\"x-tree-node-line\" [style.width.rem]=\"paddingLeft\">\r\n @for (i of verticalLevel; track i) {\r\n <div\r\n class=\"x-tree-node-line-vertical\"\r\n [hidden]=\"isParentLast[i - 1]\"\r\n [class.is-last]=\"i === verticalLevel.length\"\r\n [style.left.rem]=\"getVerticalLeft(i)\"\r\n ></div>\r\n }\r\n <div\r\n class=\"x-tree-node-line-horizontal\"\r\n [style.width.rem]=\"verticalWidth\"\r\n [style.left.rem]=\"getVerticalLeft(verticalLevel.length)\"\r\n ></div>\r\n </div>\r\n }\r\n @if (showDragIndicator) {\r\n <div class=\"x-tree-node-drag-indicator\" [style.width]=\"indicatorWidth\" [ngStyle]=\"indicatorStyle\"></div>\r\n }\r\n @if (node.loading) {\r\n <x-icon class=\"x-tree-node-loading\" type=\"fto-loader\" [spin]=\"node.loading\"></x-icon>\r\n } @else {\r\n <div\r\n class=\"x-tree-node-right\"\r\n [class.is-leaf]=\"node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n [class.is-template]=\"tree.expandedIcon\"\r\n [style.width.rem]=\"verticalWidth * 2\"\r\n (click)=\"!tree.nodeOpen && tree.onToggle($event, node)\"\r\n >\r\n @if (tree.expandedIcon) {\r\n <ng-container *xOutlet=\"tree.expandedIcon; context: { $node: node }\"></ng-container>\r\n } @else {\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n }\r\n </div>\r\n }\r\n @if (tree.checkbox) {\r\n <x-checkbox\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"node.disabled!\"\r\n (click)=\"$event.stopPropagation()\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @if (!tree.labelTpl) {\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n x-keyword\r\n [text]=\"tree.keywordText\"\r\n [caseSensitive]=\"tree.caseSensitive\"\r\n >{{ node.label }}</span\r\n >\r\n } @else {\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n }\r\n <span class=\"x-tree-node-operations\">\r\n @for (action of tree.actions; track action.id) {\r\n <x-link [icon]=\"action.icon\" [title]=\"action.label\" (click)=\"onAction($event, action, node)\"></x-link>\r\n }\r\n </span>\r\n @if (tree.multiple && getActivated) {\r\n <x-icon class=\"x-tree-node-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n", styles: ["x-tree-node{display:block}.x-tree-node{display:block;margin:0;padding:0}.x-tree-node-content{position:relative;display:flex;border-radius:var(--x-border-radius);cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;font-size:1rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon:hover{color:var(--x-text-200)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content.x-disabled{color:var(--x-text-400);background-color:var(--x-background-a200)}.x-tree-node-content:not(.x-disabled):hover{background-color:var(--x-background-a200)}.x-tree-node-content:not(.x-disabled):hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-content:not(.x-disabled).x-activated{background-color:var(--x-background-a400);color:var(--x-primary)}.x-tree-node-content:not(.x-disabled).x-tree-node-checked{color:var(--x-primary)}.x-tree-node-right,.x-tree-node-loading{color:var(--x-text-300);margin-right:.125rem}.x-tree-node-right{display:flex;align-items:center;justify-content:center}.x-tree-node-right.is-leaf{visibility:hidden}.x-tree-node-right.is-open:not(.is-template) x-icon{transform:rotate(90deg)}.x-tree-node-line{position:absolute;left:0;height:100%;display:flex;align-items:center;justify-content:space-between}.x-tree-node-line-vertical{position:absolute;height:100%;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-tree-node-line-horizontal{position:absolute;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-tree-node-last .x-tree-node-line-vertical.is-last{height:50%;top:0}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.x-tree-node-drag-indicator{position:absolute;height:.0625rem;border-radius:var(--x-border-radius);background-color:var(--x-primary);right:0;z-index:1}.x-tree-node-drag-indicator:before{position:absolute;top:-.125rem;left:-.2625rem;width:.325rem;height:.325rem;background-color:transparent;border-color:var(--x-primary);border-style:solid;border-width:.0625rem .0625rem 0 0;content:\" \";transform:rotate(45deg)}body>x-tree-node{display:block}body>x-tree-node.cdk-drag-preview .x-tree-node-content{position:relative;display:flex;border-radius:var(--x-border-radius);cursor:pointer}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-icon{padding:.25rem;font-size:1rem;transition:var(--x-animation-duration-base)}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-icon:hover{color:var(--x-text-200)}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}body>x-tree-node.cdk-drag-preview .x-tree-node-content.x-disabled{color:var(--x-text-400);background-color:var(--x-background-a200)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled):hover{background-color:var(--x-background-a200)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled):hover .x-tree-node-operations{display:flex;align-items:center}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled).x-activated{background-color:var(--x-background-a400);color:var(--x-primary)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled).x-tree-node-checked{color:var(--x-primary)}body>x-tree-node.cdk-drag-preview .x-tree-node-right,body>x-tree-node.cdk-drag-preview .x-tree-node-loading{color:var(--x-text-300);margin-right:.125rem}body>x-tree-node.cdk-drag-preview .x-tree-node-right{display:flex;align-items:center;justify-content:center}body>x-tree-node.cdk-drag-preview .x-tree-node-right.is-leaf{visibility:hidden}body>x-tree-node.cdk-drag-preview .x-tree-node-right.is-open:not(.is-template) x-icon{transform:rotate(90deg)}body>x-tree-node.cdk-drag-preview .x-tree-node-line{position:absolute;left:0;height:100%;display:flex;align-items:center;justify-content:space-between}body>x-tree-node.cdk-drag-preview .x-tree-node-line-vertical{position:absolute;height:100%;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}body>x-tree-node.cdk-drag-preview .x-tree-node-line-horizontal{position:absolute;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}body>x-tree-node.cdk-drag-preview .x-tree-node-last .x-tree-node-line-vertical.is-last{height:50%;top:0}body>x-tree-node.cdk-drag-preview .x-tree-node-operations{display:none}body>x-tree-node.cdk-drag-preview .x-tree-node-operations .x-link{padding:0 .125rem}body>x-tree-node.cdk-drag-preview .x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}body>x-tree-node.cdk-drag-preview .x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}body>x-tree-node.cdk-drag-preview .x-tree-node-drag-indicator{position:absolute;height:.0625rem;border-radius:var(--x-border-radius);background-color:var(--x-primary);right:0;z-index:1}body>x-tree-node.cdk-drag-preview .x-tree-node-drag-indicator:before{position:absolute;top:-.125rem;left:-.2625rem;width:.325rem;height:.325rem;background-color:transparent;border-color:var(--x-primary);border-style:solid;border-width:.0625rem .0625rem 0 0;content:\" \";transform:rotate(45deg)}body>x-tree-node.cdk-drag-preview .x-tree-node-content{border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.5}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "component", type: XCheckboxComponent, selector: "x-checkbox" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "directive", type: XKeywordDirective, selector: "[x-keyword]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
676
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
677
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: XTreeNodeComponent, isStandalone: true, selector: "x-tree-node, [x-tree-node]", outputs: { nodeMouseenter: "nodeMouseenter" }, host: { listeners: { "mouseenter": "onMouseenter($event)", "mouseleave": "onMouseleave()" }, properties: { "class.x-tree-node": "this.rootClass" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"activated()\"\r\n [class.x-disabled]=\"disabled()\"\r\n [class.x-tree-node-sub]=\"!leaf()\"\r\n [class.x-tree-node-last]=\"isChildrenLast()\"\r\n [style.padding-left.px]=\"paddingLeft() + fontSize() / 2\"\r\n [style.height]=\"height() ? height() : nodeHeight() ? nodeHeight() : ''\"\r\n [style.align-items]=\"alignItems() ? alignItems() : nodeAlignItems()\"\r\n (click)=\"!disabled() && onActivate($event, node())\"\r\n>\r\n @if (tree.showLine() && level()! > 0) {\r\n <div class=\"x-tree-node-line\" [style.width.px]=\"paddingLeft()\">\r\n @for (i of verticalLevel(); track i) {\r\n <div\r\n class=\"x-tree-node-line-vertical\"\r\n [hidden]=\"isParentLast()[i - 1]\"\r\n [class.is-last]=\"i === verticalLevel().length\"\r\n [style.left.px]=\"getVerticalLeft(i)\"\r\n ></div>\r\n }\r\n <div\r\n class=\"x-tree-node-line-horizontal\"\r\n [style.width.px]=\"verticalWidth()\"\r\n [style.left.px]=\"getVerticalLeft(verticalLevel().length)\"\r\n ></div>\r\n </div>\r\n }\r\n @if (showDragIndicator()) {\r\n <div class=\"x-tree-node-drag-indicator\" [style.width]=\"indicatorWidth()\" [ngStyle]=\"indicatorStyle()\"></div>\r\n }\r\n @if (loading()) {\r\n <x-icon class=\"x-tree-node-loading\" type=\"fto-loader\" [spin]=\"loading()!\"></x-icon>\r\n } @else {\r\n <div\r\n class=\"x-tree-node-right\"\r\n [class.is-leaf]=\"leaf()\"\r\n [class.is-open]=\"open()\"\r\n [class.is-template]=\"tree.expandedIcon()\"\r\n [style.width.px]=\"verticalWidth() * 2\"\r\n (click)=\"!tree.nodeOpen() && onToggle($event, node())\"\r\n >\r\n @if (tree.expandedIcon()) {\r\n <ng-container *xOutlet=\"tree.expandedIcon(); context: { $node: node() }\"></ng-container>\r\n } @else {\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n }\r\n </div>\r\n }\r\n @if (tree.checkbox()) {\r\n <x-checkbox\r\n [data]=\"[{ label: '', id: id() }]\"\r\n [(ngModel)]=\"checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"indeterminate()!\"\r\n [disabled]=\"disabled()!\"\r\n (click)=\"$event.stopPropagation()\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @if (!tree.labelTpl()) {\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"nowrap() === false || nowrap() === true ? nowrap() : nodeNowrap()\"\r\n [title]=\"label()\"\r\n x-keyword\r\n [text]=\"tree.keywordText()\"\r\n [caseSensitive]=\"tree.caseSensitive()\"\r\n >{{ label() }}</span\r\n >\r\n } @else {\r\n <ng-container *xOutlet=\"tree.labelTpl(); context: { $node: node() }\"></ng-container>\r\n }\r\n <span class=\"x-tree-node-operations\">\r\n @for (action of tree.actions(); track action.id) {\r\n <x-link [icon]=\"action.icon\" [title]=\"action.label\" (click)=\"onAction($event, action, node())\"></x-link>\r\n }\r\n </span>\r\n @if (tree.multiple() && activated()) {\r\n <x-icon class=\"x-tree-node-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n", styles: ["x-tree-node{display:block}.x-tree-node{display:block;margin:0;padding:0}.x-tree-node-content{position:relative;display:flex;border-radius:var(--x-border-radius);margin:.125rem 0;padding-right:.5rem;line-height:var(--x-height-small);cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;font-size:1.25rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon:hover{color:var(--x-text-200)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content.x-disabled{color:var(--x-text-400)}.x-tree-node-content:not(.x-disabled):hover{background-color:var(--x-background-a200)}.x-tree-node-content:not(.x-disabled):hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-content:not(.x-disabled).x-activated{background-color:var(--x-primary-900);color:var(--x-primary)}.x-tree-node-content:not(.x-disabled).x-tree-node-checked{color:var(--x-primary)}.x-tree-node-right,.x-tree-node-loading{color:var(--x-text-300);margin-right:.125rem}.x-tree-node-right{display:flex;align-items:center;justify-content:center}.x-tree-node-right.is-leaf{visibility:hidden}.x-tree-node-right.is-open:not(.is-template) x-icon{transform:rotate(90deg)}.x-tree-node-line{position:absolute;left:.5rem;height:calc(100% + .25rem);display:flex;align-items:center;justify-content:space-between}.x-tree-node-line-vertical{position:absolute;height:100%;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-tree-node-line-horizontal{position:absolute;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-tree-node-last .x-tree-node-line-vertical.is-last{height:50%;top:0}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.x-tree-node-drag-indicator{position:absolute;height:.0625rem;border-radius:var(--x-border-radius);background-color:var(--x-primary);right:0;z-index:1}.x-tree-node-drag-indicator:before{position:absolute;top:-.125rem;left:-.2625rem;width:.325rem;height:.325rem;background-color:transparent;border-color:var(--x-primary);border-style:solid;border-width:.0625rem .0625rem 0 0;content:\" \";transform:rotate(45deg)}body>x-tree-node{display:block}body>x-tree-node.cdk-drag-preview .x-tree-node-content{position:relative;display:flex;border-radius:var(--x-border-radius);margin:.125rem 0;padding-right:.5rem;line-height:var(--x-height-small);cursor:pointer}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-icon{padding:.25rem;font-size:1.25rem;transition:var(--x-animation-duration-base)}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-icon:hover{color:var(--x-text-200)}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}body>x-tree-node.cdk-drag-preview .x-tree-node-content.x-disabled{color:var(--x-text-400)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled):hover{background-color:var(--x-background-a200)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled):hover .x-tree-node-operations{display:flex;align-items:center}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled).x-activated{background-color:var(--x-primary-900);color:var(--x-primary)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled).x-tree-node-checked{color:var(--x-primary)}body>x-tree-node.cdk-drag-preview .x-tree-node-right,body>x-tree-node.cdk-drag-preview .x-tree-node-loading{color:var(--x-text-300);margin-right:.125rem}body>x-tree-node.cdk-drag-preview .x-tree-node-right{display:flex;align-items:center;justify-content:center}body>x-tree-node.cdk-drag-preview .x-tree-node-right.is-leaf{visibility:hidden}body>x-tree-node.cdk-drag-preview .x-tree-node-right.is-open:not(.is-template) x-icon{transform:rotate(90deg)}body>x-tree-node.cdk-drag-preview .x-tree-node-line{position:absolute;left:.5rem;height:calc(100% + .25rem);display:flex;align-items:center;justify-content:space-between}body>x-tree-node.cdk-drag-preview .x-tree-node-line-vertical{position:absolute;height:100%;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}body>x-tree-node.cdk-drag-preview .x-tree-node-line-horizontal{position:absolute;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}body>x-tree-node.cdk-drag-preview .x-tree-node-last .x-tree-node-line-vertical.is-last{height:50%;top:0}body>x-tree-node.cdk-drag-preview .x-tree-node-operations{display:none}body>x-tree-node.cdk-drag-preview .x-tree-node-operations .x-link{padding:0 .125rem}body>x-tree-node.cdk-drag-preview .x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}body>x-tree-node.cdk-drag-preview .x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}body>x-tree-node.cdk-drag-preview .x-tree-node-drag-indicator{position:absolute;height:.0625rem;border-radius:var(--x-border-radius);background-color:var(--x-primary);right:0;z-index:1}body>x-tree-node.cdk-drag-preview .x-tree-node-drag-indicator:before{position:absolute;top:-.125rem;left:-.2625rem;width:.325rem;height:.325rem;background-color:transparent;border-color:var(--x-primary);border-style:solid;border-width:.0625rem .0625rem 0 0;content:\" \";transform:rotate(45deg)}body>x-tree-node.cdk-drag-preview .x-tree-node-content{border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.5}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "component", type: XCheckboxComponent, selector: "x-checkbox" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "directive", type: XKeywordDirective, selector: "[x-keyword]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
664
678
  }
665
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeNodeComponent, decorators: [{
679
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeNodeComponent, decorators: [{
666
680
  type: Component,
667
681
  args: [{ selector: `${XTreeNodePrefix}, [${XTreeNodePrefix}]`, standalone: true, imports: [
668
682
  NgStyle,
@@ -672,12 +686,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
672
686
  XOutletDirective,
673
687
  XLinkComponent,
674
688
  XKeywordDirective
675
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"getActivated\"\r\n [class.x-disabled]=\"node.disabled\"\r\n [class.x-tree-node-sub]=\"!node.leaf\"\r\n [class.x-tree-node-last]=\"isChildrenLast\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"!node.disabled && onActivate($event, node)\"\r\n>\r\n @if (tree.showLine && numLevel > 0) {\r\n <div class=\"x-tree-node-line\" [style.width.rem]=\"paddingLeft\">\r\n @for (i of verticalLevel; track i) {\r\n <div\r\n class=\"x-tree-node-line-vertical\"\r\n [hidden]=\"isParentLast[i - 1]\"\r\n [class.is-last]=\"i === verticalLevel.length\"\r\n [style.left.rem]=\"getVerticalLeft(i)\"\r\n ></div>\r\n }\r\n <div\r\n class=\"x-tree-node-line-horizontal\"\r\n [style.width.rem]=\"verticalWidth\"\r\n [style.left.rem]=\"getVerticalLeft(verticalLevel.length)\"\r\n ></div>\r\n </div>\r\n }\r\n @if (showDragIndicator) {\r\n <div class=\"x-tree-node-drag-indicator\" [style.width]=\"indicatorWidth\" [ngStyle]=\"indicatorStyle\"></div>\r\n }\r\n @if (node.loading) {\r\n <x-icon class=\"x-tree-node-loading\" type=\"fto-loader\" [spin]=\"node.loading\"></x-icon>\r\n } @else {\r\n <div\r\n class=\"x-tree-node-right\"\r\n [class.is-leaf]=\"node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n [class.is-template]=\"tree.expandedIcon\"\r\n [style.width.rem]=\"verticalWidth * 2\"\r\n (click)=\"!tree.nodeOpen && tree.onToggle($event, node)\"\r\n >\r\n @if (tree.expandedIcon) {\r\n <ng-container *xOutlet=\"tree.expandedIcon; context: { $node: node }\"></ng-container>\r\n } @else {\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n }\r\n </div>\r\n }\r\n @if (tree.checkbox) {\r\n <x-checkbox\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"node.disabled!\"\r\n (click)=\"$event.stopPropagation()\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @if (!tree.labelTpl) {\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n x-keyword\r\n [text]=\"tree.keywordText\"\r\n [caseSensitive]=\"tree.caseSensitive\"\r\n >{{ node.label }}</span\r\n >\r\n } @else {\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n }\r\n <span class=\"x-tree-node-operations\">\r\n @for (action of tree.actions; track action.id) {\r\n <x-link [icon]=\"action.icon\" [title]=\"action.label\" (click)=\"onAction($event, action, node)\"></x-link>\r\n }\r\n </span>\r\n @if (tree.multiple && getActivated) {\r\n <x-icon class=\"x-tree-node-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n", styles: ["x-tree-node{display:block}.x-tree-node{display:block;margin:0;padding:0}.x-tree-node-content{position:relative;display:flex;border-radius:var(--x-border-radius);cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;font-size:1rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon:hover{color:var(--x-text-200)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content.x-disabled{color:var(--x-text-400);background-color:var(--x-background-a200)}.x-tree-node-content:not(.x-disabled):hover{background-color:var(--x-background-a200)}.x-tree-node-content:not(.x-disabled):hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-content:not(.x-disabled).x-activated{background-color:var(--x-background-a400);color:var(--x-primary)}.x-tree-node-content:not(.x-disabled).x-tree-node-checked{color:var(--x-primary)}.x-tree-node-right,.x-tree-node-loading{color:var(--x-text-300);margin-right:.125rem}.x-tree-node-right{display:flex;align-items:center;justify-content:center}.x-tree-node-right.is-leaf{visibility:hidden}.x-tree-node-right.is-open:not(.is-template) x-icon{transform:rotate(90deg)}.x-tree-node-line{position:absolute;left:0;height:100%;display:flex;align-items:center;justify-content:space-between}.x-tree-node-line-vertical{position:absolute;height:100%;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-tree-node-line-horizontal{position:absolute;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-tree-node-last .x-tree-node-line-vertical.is-last{height:50%;top:0}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.x-tree-node-drag-indicator{position:absolute;height:.0625rem;border-radius:var(--x-border-radius);background-color:var(--x-primary);right:0;z-index:1}.x-tree-node-drag-indicator:before{position:absolute;top:-.125rem;left:-.2625rem;width:.325rem;height:.325rem;background-color:transparent;border-color:var(--x-primary);border-style:solid;border-width:.0625rem .0625rem 0 0;content:\" \";transform:rotate(45deg)}body>x-tree-node{display:block}body>x-tree-node.cdk-drag-preview .x-tree-node-content{position:relative;display:flex;border-radius:var(--x-border-radius);cursor:pointer}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-icon{padding:.25rem;font-size:1rem;transition:var(--x-animation-duration-base)}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-icon:hover{color:var(--x-text-200)}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}body>x-tree-node.cdk-drag-preview .x-tree-node-content.x-disabled{color:var(--x-text-400);background-color:var(--x-background-a200)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled):hover{background-color:var(--x-background-a200)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled):hover .x-tree-node-operations{display:flex;align-items:center}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled).x-activated{background-color:var(--x-background-a400);color:var(--x-primary)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled).x-tree-node-checked{color:var(--x-primary)}body>x-tree-node.cdk-drag-preview .x-tree-node-right,body>x-tree-node.cdk-drag-preview .x-tree-node-loading{color:var(--x-text-300);margin-right:.125rem}body>x-tree-node.cdk-drag-preview .x-tree-node-right{display:flex;align-items:center;justify-content:center}body>x-tree-node.cdk-drag-preview .x-tree-node-right.is-leaf{visibility:hidden}body>x-tree-node.cdk-drag-preview .x-tree-node-right.is-open:not(.is-template) x-icon{transform:rotate(90deg)}body>x-tree-node.cdk-drag-preview .x-tree-node-line{position:absolute;left:0;height:100%;display:flex;align-items:center;justify-content:space-between}body>x-tree-node.cdk-drag-preview .x-tree-node-line-vertical{position:absolute;height:100%;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}body>x-tree-node.cdk-drag-preview .x-tree-node-line-horizontal{position:absolute;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}body>x-tree-node.cdk-drag-preview .x-tree-node-last .x-tree-node-line-vertical.is-last{height:50%;top:0}body>x-tree-node.cdk-drag-preview .x-tree-node-operations{display:none}body>x-tree-node.cdk-drag-preview .x-tree-node-operations .x-link{padding:0 .125rem}body>x-tree-node.cdk-drag-preview .x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}body>x-tree-node.cdk-drag-preview .x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}body>x-tree-node.cdk-drag-preview .x-tree-node-drag-indicator{position:absolute;height:.0625rem;border-radius:var(--x-border-radius);background-color:var(--x-primary);right:0;z-index:1}body>x-tree-node.cdk-drag-preview .x-tree-node-drag-indicator:before{position:absolute;top:-.125rem;left:-.2625rem;width:.325rem;height:.325rem;background-color:transparent;border-color:var(--x-primary);border-style:solid;border-width:.0625rem .0625rem 0 0;content:\" \";transform:rotate(45deg)}body>x-tree-node.cdk-drag-preview .x-tree-node-content{border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.5}\n"] }]
676
- }], propDecorators: { tree: [{
677
- type: Input
678
- }], nodeMouseenter: [{
679
- type: Output
680
- }], rootClass: [{
689
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"activated()\"\r\n [class.x-disabled]=\"disabled()\"\r\n [class.x-tree-node-sub]=\"!leaf()\"\r\n [class.x-tree-node-last]=\"isChildrenLast()\"\r\n [style.padding-left.px]=\"paddingLeft() + fontSize() / 2\"\r\n [style.height]=\"height() ? height() : nodeHeight() ? nodeHeight() : ''\"\r\n [style.align-items]=\"alignItems() ? alignItems() : nodeAlignItems()\"\r\n (click)=\"!disabled() && onActivate($event, node())\"\r\n>\r\n @if (tree.showLine() && level()! > 0) {\r\n <div class=\"x-tree-node-line\" [style.width.px]=\"paddingLeft()\">\r\n @for (i of verticalLevel(); track i) {\r\n <div\r\n class=\"x-tree-node-line-vertical\"\r\n [hidden]=\"isParentLast()[i - 1]\"\r\n [class.is-last]=\"i === verticalLevel().length\"\r\n [style.left.px]=\"getVerticalLeft(i)\"\r\n ></div>\r\n }\r\n <div\r\n class=\"x-tree-node-line-horizontal\"\r\n [style.width.px]=\"verticalWidth()\"\r\n [style.left.px]=\"getVerticalLeft(verticalLevel().length)\"\r\n ></div>\r\n </div>\r\n }\r\n @if (showDragIndicator()) {\r\n <div class=\"x-tree-node-drag-indicator\" [style.width]=\"indicatorWidth()\" [ngStyle]=\"indicatorStyle()\"></div>\r\n }\r\n @if (loading()) {\r\n <x-icon class=\"x-tree-node-loading\" type=\"fto-loader\" [spin]=\"loading()!\"></x-icon>\r\n } @else {\r\n <div\r\n class=\"x-tree-node-right\"\r\n [class.is-leaf]=\"leaf()\"\r\n [class.is-open]=\"open()\"\r\n [class.is-template]=\"tree.expandedIcon()\"\r\n [style.width.px]=\"verticalWidth() * 2\"\r\n (click)=\"!tree.nodeOpen() && onToggle($event, node())\"\r\n >\r\n @if (tree.expandedIcon()) {\r\n <ng-container *xOutlet=\"tree.expandedIcon(); context: { $node: node() }\"></ng-container>\r\n } @else {\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n }\r\n </div>\r\n }\r\n @if (tree.checkbox()) {\r\n <x-checkbox\r\n [data]=\"[{ label: '', id: id() }]\"\r\n [(ngModel)]=\"checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"indeterminate()!\"\r\n [disabled]=\"disabled()!\"\r\n (click)=\"$event.stopPropagation()\"\r\n single\r\n ></x-checkbox>\r\n }\r\n @if (!tree.labelTpl()) {\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"nowrap() === false || nowrap() === true ? nowrap() : nodeNowrap()\"\r\n [title]=\"label()\"\r\n x-keyword\r\n [text]=\"tree.keywordText()\"\r\n [caseSensitive]=\"tree.caseSensitive()\"\r\n >{{ label() }}</span\r\n >\r\n } @else {\r\n <ng-container *xOutlet=\"tree.labelTpl(); context: { $node: node() }\"></ng-container>\r\n }\r\n <span class=\"x-tree-node-operations\">\r\n @for (action of tree.actions(); track action.id) {\r\n <x-link [icon]=\"action.icon\" [title]=\"action.label\" (click)=\"onAction($event, action, node())\"></x-link>\r\n }\r\n </span>\r\n @if (tree.multiple() && activated()) {\r\n <x-icon class=\"x-tree-node-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n", styles: ["x-tree-node{display:block}.x-tree-node{display:block;margin:0;padding:0}.x-tree-node-content{position:relative;display:flex;border-radius:var(--x-border-radius);margin:.125rem 0;padding-right:.5rem;line-height:var(--x-height-small);cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;font-size:1.25rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon:hover{color:var(--x-text-200)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content.x-disabled{color:var(--x-text-400)}.x-tree-node-content:not(.x-disabled):hover{background-color:var(--x-background-a200)}.x-tree-node-content:not(.x-disabled):hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-content:not(.x-disabled).x-activated{background-color:var(--x-primary-900);color:var(--x-primary)}.x-tree-node-content:not(.x-disabled).x-tree-node-checked{color:var(--x-primary)}.x-tree-node-right,.x-tree-node-loading{color:var(--x-text-300);margin-right:.125rem}.x-tree-node-right{display:flex;align-items:center;justify-content:center}.x-tree-node-right.is-leaf{visibility:hidden}.x-tree-node-right.is-open:not(.is-template) x-icon{transform:rotate(90deg)}.x-tree-node-line{position:absolute;left:.5rem;height:calc(100% + .25rem);display:flex;align-items:center;justify-content:space-between}.x-tree-node-line-vertical{position:absolute;height:100%;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-tree-node-line-horizontal{position:absolute;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-tree-node-last .x-tree-node-line-vertical.is-last{height:50%;top:0}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.x-tree-node-drag-indicator{position:absolute;height:.0625rem;border-radius:var(--x-border-radius);background-color:var(--x-primary);right:0;z-index:1}.x-tree-node-drag-indicator:before{position:absolute;top:-.125rem;left:-.2625rem;width:.325rem;height:.325rem;background-color:transparent;border-color:var(--x-primary);border-style:solid;border-width:.0625rem .0625rem 0 0;content:\" \";transform:rotate(45deg)}body>x-tree-node{display:block}body>x-tree-node.cdk-drag-preview .x-tree-node-content{position:relative;display:flex;border-radius:var(--x-border-radius);margin:.125rem 0;padding-right:.5rem;line-height:var(--x-height-small);cursor:pointer}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-icon{padding:.25rem;font-size:1.25rem;transition:var(--x-animation-duration-base)}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-icon:hover{color:var(--x-text-200)}body>x-tree-node.cdk-drag-preview .x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}body>x-tree-node.cdk-drag-preview .x-tree-node-content.x-disabled{color:var(--x-text-400)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled):hover{background-color:var(--x-background-a200)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled):hover .x-tree-node-operations{display:flex;align-items:center}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled).x-activated{background-color:var(--x-primary-900);color:var(--x-primary)}body>x-tree-node.cdk-drag-preview .x-tree-node-content:not(.x-disabled).x-tree-node-checked{color:var(--x-primary)}body>x-tree-node.cdk-drag-preview .x-tree-node-right,body>x-tree-node.cdk-drag-preview .x-tree-node-loading{color:var(--x-text-300);margin-right:.125rem}body>x-tree-node.cdk-drag-preview .x-tree-node-right{display:flex;align-items:center;justify-content:center}body>x-tree-node.cdk-drag-preview .x-tree-node-right.is-leaf{visibility:hidden}body>x-tree-node.cdk-drag-preview .x-tree-node-right.is-open:not(.is-template) x-icon{transform:rotate(90deg)}body>x-tree-node.cdk-drag-preview .x-tree-node-line{position:absolute;left:.5rem;height:calc(100% + .25rem);display:flex;align-items:center;justify-content:space-between}body>x-tree-node.cdk-drag-preview .x-tree-node-line-vertical{position:absolute;height:100%;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}body>x-tree-node.cdk-drag-preview .x-tree-node-line-horizontal{position:absolute;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}body>x-tree-node.cdk-drag-preview .x-tree-node-last .x-tree-node-line-vertical.is-last{height:50%;top:0}body>x-tree-node.cdk-drag-preview .x-tree-node-operations{display:none}body>x-tree-node.cdk-drag-preview .x-tree-node-operations .x-link{padding:0 .125rem}body>x-tree-node.cdk-drag-preview .x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}body>x-tree-node.cdk-drag-preview .x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}body>x-tree-node.cdk-drag-preview .x-tree-node-drag-indicator{position:absolute;height:.0625rem;border-radius:var(--x-border-radius);background-color:var(--x-primary);right:0;z-index:1}body>x-tree-node.cdk-drag-preview .x-tree-node-drag-indicator:before{position:absolute;top:-.125rem;left:-.2625rem;width:.325rem;height:.325rem;background-color:transparent;border-color:var(--x-primary);border-style:solid;border-width:.0625rem .0625rem 0 0;content:\" \";transform:rotate(45deg)}body>x-tree-node.cdk-drag-preview .x-tree-node-content{border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.5}\n"] }]
690
+ }], propDecorators: { rootClass: [{
681
691
  type: HostBinding,
682
692
  args: ['class.x-tree-node']
683
693
  }], onMouseenter: [{
@@ -689,174 +699,205 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
689
699
  }] } });
690
700
 
691
701
  class XTreeComponent extends XTreeProperty {
692
- set _nodeComponents(value) {
693
- this.nodeComponents = value;
694
- }
695
- get isEmpty() {
696
- return XIsEmpty(this.nodes);
697
- }
698
- constructor(renderer, elementRef, cdr, configService, ngZone, treeService) {
702
+ constructor(renderer, elementRef, cdr, treeService) {
699
703
  super();
700
704
  this.renderer = renderer;
701
705
  this.elementRef = elementRef;
702
706
  this.cdr = cdr;
703
- this.configService = configService;
704
- this.ngZone = ngZone;
705
707
  this.treeService = treeService;
706
- this.nodes = [];
707
- this.virtualNodes = [];
708
- this.dataIsFunc = false;
709
- this.getting = false;
710
- this.treeData = [];
711
- this.dragging = false;
712
- this.draggingTreeNode = null;
713
- this.hasChecked = false;
714
- this._unSubject = new Subject();
708
+ this.tree = viewChild('tree', { read: (ElementRef) });
709
+ this.virtualBody = viewChild('virtualBody', { read: CdkVirtualScrollViewport });
710
+ this.dropList = viewChild('dropList', { read: (CdkDropList) });
711
+ this.nodeComponents = viewChildren(XTreeNodeComponent);
712
+ this.document = inject(DOCUMENT);
713
+ this.fontSize = computed(() => parseFloat(XComputedStyle(this.document.documentElement, 'font-size')));
714
+ this.nodes = signal([]);
715
+ this.virtualNodes = signal([]);
716
+ this.activatedNode = signal(null);
717
+ this.dataIsFunc = signal(false);
718
+ this.getting = signal(false);
719
+ this.treeData = signal([]);
720
+ this.dragging = signal(false);
721
+ this.dragPosition = signal(-1);
722
+ this.hoverTreeNode = signal(null);
723
+ this.draggingTreeNode = signal(null);
724
+ this.hasChecked = signal(false);
725
+ this.isEmpty = computed(() => XIsEmpty(this.nodes()));
726
+ this.unSubject = new Subject();
727
+ this.heightAdaptionSignal = signal(0);
728
+ this.isVirtualScrollAdaption = computed(() => {
729
+ return !!(this.virtualScroll() && this.heightAdaption());
730
+ });
731
+ this.virtualScrollHeightSignal = computed(() => {
732
+ if (this.isVirtualScrollAdaption()) {
733
+ return this.heightAdaptionSignal();
734
+ }
735
+ else {
736
+ return XToCssPx(this.virtualScrollHeight(), this.fontSize());
737
+ }
738
+ });
739
+ this.minBufferPxSignal = computed(() => {
740
+ if (this.isVirtualScrollAdaption()) {
741
+ return this.virtualScrollHeightSignal();
742
+ }
743
+ else {
744
+ return this.minBufferPx();
745
+ }
746
+ });
747
+ this.maxBufferPxSignal = computed(() => {
748
+ if (this.isVirtualScrollAdaption()) {
749
+ return this.virtualScrollHeightSignal() * 1.2;
750
+ }
751
+ else {
752
+ return this.maxBufferPx();
753
+ }
754
+ });
755
+ effect(() => {
756
+ const virtualBody = this.virtualBody();
757
+ if (virtualBody) {
758
+ virtualBody['_scrollStrategy']['_minBufferPx'] = this.minBufferPxSignal();
759
+ virtualBody['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPxSignal();
760
+ }
761
+ });
715
762
  }
716
763
  ngOnChanges(changes) {
717
- const { expandedAll, data, activatedId, checked, manual } = changes;
764
+ const { expandedAll, data, checked, manual } = changes;
718
765
  XIsChange(data) && this.setData();
719
- XIsChange(activatedId) && this.setActivatedNode(this.treeData);
720
766
  XIsChange(expandedAll) && this.setExpandedAll();
721
- XIsChange(checked) && this.setCheckedKeys(this.checked);
767
+ XIsChange(checked) && this.setCheckedKeys(this.checked());
722
768
  XIsChange(manual) && this.setManual();
723
769
  }
724
770
  ngAfterViewInit() {
725
- if (this.virtualScroll && this.heightAdaption) {
726
- this.setVirtualScrollHeight();
727
- XResize(this.heightAdaption)
728
- .pipe(debounceTime(30), takeUntil(this._unSubject))
729
- .subscribe((x) => {
730
- this._resizeObserver = x.resizeObserver;
731
- this.setVirtualScrollHeight();
732
- });
771
+ if (this.isVirtualScrollAdaption()) {
772
+ this.heightAdaptionSignal.set(this.heightAdaption().clientHeight);
773
+ XResize(this.heightAdaption())
774
+ .pipe(debounceTime(30), map(({ resizeObserver }) => {
775
+ this.resizeObserver = resizeObserver;
776
+ this.heightAdaptionSignal.set(this.heightAdaption().clientHeight);
777
+ }))
778
+ .subscribe();
733
779
  }
734
- this.setScorllTop();
780
+ this.setActivatedNode(this.treeData());
781
+ this.setScrollTop();
735
782
  }
736
783
  ngOnDestroy() {
737
- this._unSubject.next();
738
- this._unSubject.unsubscribe();
739
- this._resizeObserver?.disconnect();
784
+ this.unSubject.next();
785
+ this.unSubject.complete();
786
+ this.resizeObserver?.disconnect();
740
787
  }
741
788
  setData() {
742
- if (typeof this.data === 'undefined')
789
+ if (typeof this.data() === 'undefined')
743
790
  return;
744
- this.dataIsFunc = false;
745
- if (XIsFunction(this.data)) {
746
- this.dataIsFunc = true;
791
+ this.dataIsFunc.set(false);
792
+ if (XIsFunction(this.data())) {
793
+ this.dataIsFunc.set(true);
747
794
  this.getDataByFunc();
748
795
  }
749
796
  else {
750
- XSetData(this.data, this._unSubject).subscribe((x) => {
797
+ XSetData(this.data(), this.unSubject).subscribe((x) => {
751
798
  this.setDataChange(x);
752
799
  });
753
800
  }
754
801
  }
755
802
  cdkDragStarted(event) {
756
- this.dragging = true;
757
- this.draggingTreeNode = event.source.data;
803
+ this.dragging.set(true);
804
+ this.draggingTreeNode.set(event.source.data);
758
805
  if (event.source.data.open) {
759
806
  this.onToggle(event.event, event.source.data);
760
807
  }
761
- this.nodeDragStarted.emit({ event, from: this.draggingTreeNode });
808
+ this.nodeDragStarted.emit({ event, from: this.draggingTreeNode() });
762
809
  }
763
810
  cdkDragEnded(event) {
764
- this.dragging = false;
765
- if (this.hoverTreeNode) {
766
- if (this.hoverTreeNode.id !== event.source.data.id) {
767
- this.insertNode(event.source.data, this.hoverTreeNode, this.dragPosition);
811
+ this.dragging.set(false);
812
+ const hoverTreeNode = this.hoverTreeNode();
813
+ if (hoverTreeNode) {
814
+ if (hoverTreeNode.id !== event.source.data.id) {
815
+ this.insertNode(event.source.data, hoverTreeNode, this.dragPosition());
768
816
  }
769
- this.hoverTreeNode.change && this.hoverTreeNode.change();
817
+ hoverTreeNode.change && hoverTreeNode.change();
770
818
  this.nodeDragEnded.emit({
771
819
  event,
772
820
  from: event.source.data,
773
- to: this.hoverTreeNode,
774
- position: this.dragPosition
821
+ to: hoverTreeNode,
822
+ position: this.dragPosition()
775
823
  });
776
824
  }
777
825
  }
778
826
  insertNode(dragNode, hoverNode, dragPosition) {
779
- let parent = this.nodes.find((x) => x.id === dragNode.pid);
780
- this.treeService.moveNode(this.treeData, dragNode, hoverNode, dragPosition);
781
- this.setDataChange(this.treeData, true, false, true, parent);
827
+ let parent = this.nodes().find((x) => x.id === dragNode.pid);
828
+ this.treeService.moveNode(this.treeData(), dragNode, hoverNode, dragPosition);
829
+ this.setDataChange(this.treeData(), true, false, true, parent);
782
830
  }
783
831
  cdkDragMoved(event) {
784
- if (!this.dragging || !this.hoverTreeNode)
832
+ const hoverTreeNode = this.hoverTreeNode();
833
+ if (!this.dragging() || !hoverTreeNode)
785
834
  return;
786
835
  const y = event.pointerPosition.y;
787
- if (event.source.data.id === this.hoverTreeNode.id)
836
+ if (event.source.data.id === hoverTreeNode.id)
788
837
  return;
789
838
  const target = this.hoverTreeEle.nativeElement;
790
839
  const { top, height } = target.getBoundingClientRect();
791
840
  const des = Math.max(height * 0.5, 2);
792
841
  if (y > top && y < top + des) {
793
- this.dragPosition = -1;
842
+ this.dragPosition.set(-1);
794
843
  }
795
844
  else if (y > top + des && y < top + height) {
796
- this.dragPosition = 1;
845
+ this.dragPosition.set(1);
797
846
  }
798
- this.hoverTreeNode.change && this.hoverTreeNode.change();
847
+ hoverTreeNode.change && hoverTreeNode.change();
799
848
  this.nodeDragMoved.emit({
800
849
  event,
801
- from: this.draggingTreeNode,
802
- to: this.hoverTreeNode,
803
- position: this.dragPosition
850
+ from: this.draggingTreeNode(),
851
+ to: hoverTreeNode,
852
+ position: this.dragPosition()
804
853
  });
805
854
  }
806
855
  predicate(_drag, _drop) {
807
856
  return true;
808
857
  }
809
- setVirtualScrollHeight() {
810
- this.virtualScrollHeight = this.heightAdaption.clientHeight;
811
- this.minBufferPx = this.virtualScrollHeight;
812
- this.maxBufferPx = this.virtualScrollHeight * 1.2;
813
- this.virtualBody['_scrollStrategy']['_minBufferPx'] = this.minBufferPx;
814
- this.virtualBody['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPx;
815
- this.cdr.detectChanges();
816
- }
817
858
  setManual() {
818
- if (this.dataIsFunc)
859
+ if (this.dataIsFunc())
819
860
  this.getDataByFunc();
820
861
  }
821
862
  getDataByFunc() {
822
- if (!this.manual)
863
+ if (!this.manual())
823
864
  return;
824
- XSetData(this.data(), this._unSubject).subscribe((x) => {
865
+ XSetData(this.data()(), this.unSubject).subscribe((x) => {
825
866
  this.setDataChange(x);
826
867
  });
827
868
  }
828
869
  setDataChange(value, regetChildren = false, init = true, parentOpen = true, lazyParant) {
829
- if (XIsEmpty(this.checked) || !this.hasChecked)
830
- this.checked = [];
870
+ if (XIsEmpty(this.checked()) || !this.hasChecked())
871
+ this.checked.set([]);
831
872
  const getChildren = (node, level) => {
832
873
  if (init) {
833
874
  node.level = level;
834
875
  node.open =
835
- Boolean(this.expandedAll) ||
836
- level <= Number(this.expandedLevel) ||
837
- this.expanded.includes(node.id) ||
838
- node.open;
839
- node.checked = this.checked.includes(node.id) || node.checked;
876
+ this.expandedAll() || level <= this.expandedLevel() || this.expanded().includes(node.id) || node.open;
877
+ node.checked = this.checked().includes(node.id) || node.checked;
840
878
  node.childrenLoaded = node.open;
841
879
  }
842
880
  if (XIsUndefined(node.children) || regetChildren) {
843
881
  node.children = value.filter((y) => y.pid === node.id);
844
- if (this.levelCheck && node.children && node.checked) {
882
+ if (this.levelCheck() && node.children && node.checked) {
845
883
  for (let nd of node.children) {
846
884
  nd.checked = true;
847
- this.checked.push(nd.id);
885
+ this.checked.update((x) => {
886
+ x.push(nd.id);
887
+ return [...x];
888
+ });
848
889
  }
849
890
  }
850
891
  }
851
- if ((!this.lazy && (XIsUndefined(node.leaf) || regetChildren)) || node.id === lazyParant?.id) {
892
+ if ((!this.lazy() && (XIsUndefined(node.leaf) || regetChildren)) || node.id === lazyParant?.id) {
852
893
  node.leaf = node.children?.length === 0;
853
894
  }
854
895
  if (!node.leaf)
855
896
  node.children?.map((y) => getChildren(y, level + 1));
856
897
  return node;
857
898
  };
858
- this.treeData = value;
859
- this.nodes = value.filter((x) => XIsEmpty(x.pid)).map((x) => getChildren(x, 0));
899
+ this.treeData.set(value);
900
+ this.nodes.set(value.filter((x) => XIsEmpty(x.pid)).map((x) => getChildren(x, 0)));
860
901
  if (parentOpen) {
861
902
  for (let item of value) {
862
903
  if (!item.leaf && item.open) {
@@ -865,51 +906,40 @@ class XTreeComponent extends XTreeProperty {
865
906
  }
866
907
  }
867
908
  this.setExpanded();
868
- this.cdr.detectChanges();
909
+ this.cdr.markForCheck();
869
910
  }
870
911
  nodeMouseenter($event) {
871
912
  const { node, ele } = $event;
872
- if (!this.dragging)
913
+ if (!this.dragging())
873
914
  return;
874
- let before = this.hoverTreeNode;
875
- this.hoverTreeNode = node;
915
+ let before = this.hoverTreeNode();
916
+ this.hoverTreeNode.set(node);
876
917
  this.hoverTreeEle = ele;
877
- this.hoverTreeNode.change && this.hoverTreeNode.change();
918
+ const hoverTreeNode = this.hoverTreeNode();
919
+ if (hoverTreeNode) {
920
+ hoverTreeNode.change && hoverTreeNode.change();
921
+ }
878
922
  if (before) {
879
923
  before.change && before.change();
880
924
  }
881
925
  if (!node.leaf && !node.open) {
882
- let from = this.nodes.indexOf(this.draggingTreeNode);
883
- let to = this.nodes.indexOf(node);
926
+ let from = this.nodes().indexOf(this.draggingTreeNode());
927
+ let to = this.nodes().indexOf(node);
884
928
  if (to - from !== -1) {
885
929
  this.onToggle(null, node);
886
930
  }
887
- // else {
888
- // let addNodes: XTreeNode[] = [];
889
- // node.open = true;
890
- // const getNodes = (nd: XTreeNode) => {
891
- // if (XIsEmpty(nd.children)) return;
892
- // for (let child of nd.children!) {
893
- // addNodes.push(child);
894
- // child.open && getNodes(child);
895
- // }
896
- // };
897
- // getNodes(node);
898
- // let nodes = [...this.nodes];
899
- // nodes.splice(to + 1, 0, ...addNodes);
900
- // this.nodes = nodes;
901
- // }
902
931
  }
903
932
  }
904
- setScorllTop() {
905
- if (!this.scrollElement || !this.activatedNode)
933
+ setScrollTop() {
934
+ const scrollElement = this.scrollElement();
935
+ if (!scrollElement || !this.activatedNode())
906
936
  return;
907
- let inx = this.nodes.indexOf(this.activatedNode);
908
- let com = this.nodeComponents.get(inx);
937
+ const inx = this.nodes().indexOf(this.activatedNode());
938
+ let com = this.nodeComponents().find((_, index) => index === inx);
909
939
  if (!com)
910
940
  return;
911
941
  let ele = com.elementRef.nativeElement;
912
- let scrollEle = this.scrollElement;
942
+ let scrollEle = scrollElement;
913
943
  let min = scrollEle.scrollTop;
914
944
  let max = scrollEle.scrollTop + scrollEle.clientHeight;
915
945
  if (ele.offsetTop + ele.clientHeight > max) {
@@ -932,7 +962,7 @@ class XTreeComponent extends XTreeProperty {
932
962
  getChildren(x.children);
933
963
  });
934
964
  };
935
- getChildren(this.nodes);
965
+ getChildren(this.nodes());
936
966
  return result;
937
967
  }
938
968
  getCheckedKeys() {
@@ -940,7 +970,7 @@ class XTreeComponent extends XTreeProperty {
940
970
  }
941
971
  setCheckedKeys(keys = []) {
942
972
  if (!XIsEmpty(keys))
943
- this.hasChecked = true;
973
+ this.hasChecked.set(true);
944
974
  const setChildren = (nodes, clear = false) => {
945
975
  if (XIsEmpty(nodes))
946
976
  return;
@@ -950,48 +980,50 @@ class XTreeComponent extends XTreeProperty {
950
980
  setChildren(x.children, clear);
951
981
  });
952
982
  };
953
- setChildren(this.nodes, XIsEmpty(keys));
954
- this.cdr.detectChanges();
983
+ setChildren(this.nodes(), XIsEmpty(keys));
984
+ this.cdr.markForCheck();
955
985
  }
956
986
  setExpandedAll() {
957
- if (this.expandedAll && this.treeData.length === this.nodes.length)
987
+ if (this.expandedAll() && this.treeData().length === this.nodes().length)
958
988
  return;
959
989
  const setChildren = (nodes) => {
960
990
  if (XIsEmpty(nodes))
961
991
  return;
962
992
  nodes.forEach((x) => {
963
- x.open = Boolean(this.expandedAll);
993
+ x.open = this.expandedAll();
964
994
  x.change && x.change();
965
995
  setChildren(x.children);
966
996
  });
967
997
  };
968
- setChildren(this.nodes);
969
- if (this.expandedAll === false) {
970
- this.nodes = this.treeData.filter((x) => XIsEmpty(x.pid));
998
+ setChildren(this.nodes());
999
+ if (this.expandedAll() === false) {
1000
+ this.nodes.set(this.treeData().filter((x) => XIsEmpty(x.pid)));
971
1001
  }
972
1002
  else {
973
- if (this.virtualNodes.length === 0) {
974
- this.virtualNodes = [...this.nodes];
1003
+ if (this.virtualNodes().length === 0) {
1004
+ this.virtualNodes.set([...this.nodes()]);
975
1005
  }
976
- this.nodes = [...this.virtualNodes];
977
- for (let item of this.virtualNodes) {
978
- this.setVirtualExpandedAll(item, this.expandedAll);
1006
+ this.nodes.set(this.virtualNodes());
1007
+ for (let item of this.virtualNodes()) {
1008
+ this.setVirtualExpandedAll(item, this.expandedAll());
979
1009
  }
980
1010
  }
981
- this.virtualBody?.checkViewportSize();
1011
+ this.virtualBody()?.checkViewportSize();
982
1012
  }
983
1013
  setExpanded() {
984
- for (let item of this.nodes) {
1014
+ for (let item of this.nodes()) {
985
1015
  if (item.open && item.children) {
986
- let index = this.nodes.indexOf(item);
987
- this.nodes.splice(index + 1, 0, ...item.children);
1016
+ let index = this.nodes().indexOf(item);
1017
+ this.nodes.update((x) => {
1018
+ x.splice(index + 1, 0, ...item.children);
1019
+ return [...x];
1020
+ });
988
1021
  }
989
1022
  item.change && item.change();
990
1023
  }
991
- this.nodes = [...this.nodes];
992
1024
  }
993
1025
  setVirtualExpandedAll(item, expandedAll) {
994
- let index = this.nodes.indexOf(item);
1026
+ let index = this.nodes().indexOf(item);
995
1027
  if (expandedAll) {
996
1028
  let addNodes = [];
997
1029
  const getNodes = (nd) => {
@@ -1001,12 +1033,14 @@ class XTreeComponent extends XTreeProperty {
1001
1033
  }
1002
1034
  };
1003
1035
  getNodes(item);
1004
- this.nodes.splice(index + 1, 0, ...addNodes);
1036
+ this.nodes.update((x) => {
1037
+ x.splice(index + 1, 0, ...addNodes);
1038
+ return [...x];
1039
+ });
1005
1040
  }
1006
- this.nodes = [...this.nodes];
1007
1041
  }
1008
1042
  virtualToggle(node) {
1009
- let index = this.nodes.indexOf(node);
1043
+ let index = this.nodes().indexOf(node);
1010
1044
  if (node.open) {
1011
1045
  let addNodes = [];
1012
1046
  const getNodes = (nd) => {
@@ -1018,7 +1052,10 @@ class XTreeComponent extends XTreeProperty {
1018
1052
  }
1019
1053
  };
1020
1054
  getNodes(node);
1021
- this.nodes.splice(index + 1, 0, ...addNodes);
1055
+ this.nodes.update((x) => {
1056
+ x.splice(index + 1, 0, ...addNodes);
1057
+ return [...x];
1058
+ });
1022
1059
  }
1023
1060
  else {
1024
1061
  let delCount = 0;
@@ -1031,51 +1068,59 @@ class XTreeComponent extends XTreeProperty {
1031
1068
  }
1032
1069
  };
1033
1070
  getCount(node);
1034
- this.nodes.splice(index + 1, delCount);
1071
+ this.nodes.update((x) => {
1072
+ x.splice(index + 1, delCount);
1073
+ return [...x];
1074
+ });
1035
1075
  }
1036
1076
  this.addOrRemoveExpanded(node);
1037
- this.nodes = [...this.nodes];
1038
- this.virtualBody?.checkViewportSize();
1077
+ this.virtualBody()?.checkViewportSize();
1039
1078
  this.cdr.detectChanges();
1040
1079
  }
1041
1080
  addOrRemoveExpanded(node) {
1042
1081
  if (node.open) {
1043
- if (!this.expanded.includes(node.id)) {
1044
- this.expanded.push(node.id);
1082
+ if (!this.expanded().includes(node.id)) {
1083
+ this.expanded.update((x) => {
1084
+ x.push(node.id);
1085
+ return [...x];
1086
+ });
1045
1087
  }
1046
1088
  }
1047
1089
  else {
1048
- if (this.expanded.includes(node.id)) {
1049
- this.expanded.splice(this.expanded.indexOf(node.id), 1);
1090
+ if (this.expanded().includes(node.id)) {
1091
+ this.expanded.update((x) => {
1092
+ x.splice(x.indexOf(node.id), 1);
1093
+ return [...x];
1094
+ });
1050
1095
  }
1051
1096
  }
1052
1097
  }
1053
1098
  setActivatedNode(nodes, parentOpen = true, dataChange = true) {
1054
- if (XIsEmpty(this.activatedId) && this.multiple) {
1055
- this.activatedId = [];
1099
+ if (XIsEmpty(this.activatedId()) && this.multiple()) {
1100
+ this.activatedId.set([]);
1056
1101
  }
1057
- let before = this.activatedNode;
1058
- if (this.multiple) {
1059
- if (this.activatedId.length > 0) {
1060
- let ids = this.objectArray ? this.activatedId.map((x) => x.id) : this.activatedId;
1102
+ let before = this.activatedNode();
1103
+ if (this.multiple()) {
1104
+ if (this.activatedId().length > 0) {
1105
+ let ids = this.objectArray() ? this.activatedId().map((x) => x.id) : this.activatedId();
1061
1106
  for (let i = 0; i < ids.length; i++) {
1062
1107
  let node = nodes.find((x) => x.id === ids[i]);
1063
1108
  if (node) {
1064
1109
  parentOpen && this.setParentOpen(nodes, node);
1065
1110
  if (i === ids.length - 1) {
1066
- this.activatedNode = node;
1067
- this.activatedChange.emit(this.activatedNode);
1111
+ this.activatedNode.set(node);
1112
+ this.activatedChange.emit(this.activatedNode());
1068
1113
  }
1069
1114
  }
1070
1115
  }
1071
1116
  }
1072
1117
  }
1073
1118
  else {
1074
- let activatedId = this.activatedId;
1075
- this.activatedNode = nodes.find((x) => x.id == activatedId);
1076
- if (this.activatedNode) {
1077
- parentOpen && this.setParentOpen(nodes, this.activatedNode);
1078
- this.activatedChange.emit(this.activatedNode);
1119
+ let activatedId = this.activatedId();
1120
+ this.activatedNode.set(nodes.find((x) => x.id === activatedId));
1121
+ if (this.activatedNode()) {
1122
+ parentOpen && this.setParentOpen(nodes, this.activatedNode());
1123
+ this.activatedChange.emit(this.activatedNode());
1079
1124
  }
1080
1125
  }
1081
1126
  if (before) {
@@ -1091,24 +1136,8 @@ class XTreeComponent extends XTreeProperty {
1091
1136
  return;
1092
1137
  const parent = nodes.find((x) => x.id === child.pid);
1093
1138
  if (!XIsEmpty(parent)) {
1094
- if (!this.expanded.includes(parent.id)) {
1095
- this.expanded = [...this.expanded, parent.id];
1096
- }
1097
- parent.open = true;
1098
- parent.change && parent.change();
1099
- getParent(parent);
1100
- }
1101
- };
1102
- getParent(node);
1103
- }
1104
- setParentCheck(nodes, node) {
1105
- const getParent = (child) => {
1106
- if (XIsEmpty(child.pid))
1107
- return;
1108
- const parent = nodes.find((x) => x.id === child.pid);
1109
- if (!XIsEmpty(parent)) {
1110
- if (!this.expanded.includes(parent.id)) {
1111
- this.expanded = [...this.expanded, parent.id];
1139
+ if (!this.expanded().includes(parent.id)) {
1140
+ this.expanded.update((x) => [...x, parent.id]);
1112
1141
  }
1113
1142
  parent.open = true;
1114
1143
  parent.change && parent.change();
@@ -1118,22 +1147,20 @@ class XTreeComponent extends XTreeProperty {
1118
1147
  getParent(node);
1119
1148
  }
1120
1149
  onToggle(event, node) {
1121
- this.ngZone.run(() => {
1122
- node.open = !node.open;
1123
- if (this.lazy && !node.childrenLoaded) {
1124
- this.getLazyData(node, () => this.virtualToggle(node));
1125
- }
1126
- else {
1127
- this.virtualToggle(node);
1128
- }
1129
- event?.preventDefault();
1130
- event?.stopPropagation();
1131
- });
1150
+ node.open = !node.open;
1151
+ if (this.lazy() && !node.childrenLoaded) {
1152
+ this.getLazyData(node, () => this.virtualToggle(node));
1153
+ }
1154
+ else {
1155
+ this.virtualToggle(node);
1156
+ }
1157
+ event?.preventDefault();
1158
+ event?.stopPropagation();
1132
1159
  }
1133
1160
  getLazyData(node, callBack) {
1134
1161
  node.loading = true;
1135
1162
  node.change && node.change();
1136
- this.data(node.id)
1163
+ this.data()(node.id)
1137
1164
  .pipe(map((x) => x.map((y) => {
1138
1165
  y.level = node.level + 1;
1139
1166
  y.checked = node.checked;
@@ -1143,15 +1170,15 @@ class XTreeComponent extends XTreeProperty {
1143
1170
  node.children = x;
1144
1171
  node.childrenLoaded = true;
1145
1172
  node.loading = false;
1146
- this.treeData = [...this.treeData, ...x];
1173
+ this.treeData.set([...this.treeData(), ...x]);
1147
1174
  if (callBack)
1148
1175
  callBack();
1149
1176
  node.change && node.change();
1150
- this.cdr.detectChanges();
1177
+ this.cdr.markForCheck();
1151
1178
  });
1152
1179
  }
1153
1180
  addNode(node) {
1154
- let parent = this.treeData.find((x) => x.id === node.pid);
1181
+ let parent = this.treeData().find((x) => x.id === node.pid);
1155
1182
  const _addNode = () => {
1156
1183
  if (parent) {
1157
1184
  node.level = parent.level + 1;
@@ -1159,24 +1186,24 @@ class XTreeComponent extends XTreeProperty {
1159
1186
  node.leaf = true;
1160
1187
  parent.leaf = false;
1161
1188
  parent.open = true;
1162
- this.treeData = [...this.treeData, node];
1163
- this.setParentOpen(this.treeData, node);
1164
- this.setDataChange(this.treeData, true, false, false);
1189
+ this.treeData.set([...this.treeData(), node]);
1190
+ this.setParentOpen(this.treeData(), node);
1191
+ this.setDataChange(this.treeData(), true, false, false);
1165
1192
  this.setActivatedId(node);
1166
- this.setActivatedNode(this.nodes, true, false);
1193
+ this.setActivatedNode(this.nodes(), true, false);
1167
1194
  node.change && node.change();
1168
1195
  }
1169
1196
  else if (XIsEmpty(node.pid)) {
1170
1197
  node.level = 0;
1171
1198
  node.leaf = true;
1172
- this.treeData = [...this.treeData, node];
1173
- this.nodes = [...this.nodes, node];
1199
+ this.treeData.set([...this.treeData(), node]);
1200
+ this.nodes.set([...this.nodes(), node]);
1174
1201
  this.setActivatedId(node);
1175
- this.setActivatedNode(this.nodes, true, false);
1202
+ this.setActivatedNode(this.nodes(), true, false);
1176
1203
  node.change && node.change();
1177
1204
  }
1178
1205
  };
1179
- if (this.lazy && parent && !parent.childrenLoaded) {
1206
+ if (this.lazy() && parent && !parent.childrenLoaded) {
1180
1207
  this.getLazyData(parent, () => {
1181
1208
  _addNode();
1182
1209
  });
@@ -1186,23 +1213,22 @@ class XTreeComponent extends XTreeProperty {
1186
1213
  }
1187
1214
  }
1188
1215
  setActivatedId(node) {
1189
- if (this.multiple) {
1190
- if (this.objectArray) {
1191
- this.activatedId = [node];
1216
+ if (this.multiple()) {
1217
+ if (this.objectArray()) {
1218
+ this.activatedId.set([node]);
1192
1219
  }
1193
1220
  else {
1194
- this.activatedId = [node.id];
1221
+ this.activatedId.set([node.id]);
1195
1222
  }
1196
1223
  }
1197
1224
  else {
1198
- this.activatedId = node.id;
1225
+ this.activatedId.set(node.id);
1199
1226
  }
1200
- this.activatedIdChange.emit(this.activatedId);
1201
1227
  }
1202
1228
  removeNode(node) {
1203
- let parent = this.treeData.find((x) => x.id === node.pid);
1229
+ let parent = this.treeData().find((x) => x.id === node.pid);
1204
1230
  const removeChildren = (nd) => {
1205
- XRemove(this.treeData, (x) => x.id === nd.id);
1231
+ XRemove(this.treeData(), (x) => x.id === nd.id);
1206
1232
  if (nd.children) {
1207
1233
  for (let item of nd.children) {
1208
1234
  removeChildren(item);
@@ -1219,7 +1245,7 @@ class XTreeComponent extends XTreeProperty {
1219
1245
  }
1220
1246
  parent.leaf = parent.children.length === 0;
1221
1247
  }
1222
- this.setDataChange(this.treeData, true, false, false);
1248
+ this.setDataChange(this.treeData(), true, false, false);
1223
1249
  }
1224
1250
  updateNode(node, nowNode) {
1225
1251
  Object.assign(node, nowNode);
@@ -1228,32 +1254,20 @@ class XTreeComponent extends XTreeProperty {
1228
1254
  trackByItem(_index, item) {
1229
1255
  return item;
1230
1256
  }
1231
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.XConfigService }, { token: i0.NgZone }, { token: XTreeService }], target: i0.ɵɵFactoryTarget.Component }); }
1232
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: XTreeComponent, isStandalone: true, selector: "x-tree", viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, static: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true }, { propertyName: "dropList", first: true, predicate: ["dropList"], descendants: true }, { propertyName: "_nodeComponents", predicate: XTreeNodeComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #tree class=\"x-tree\" [class.x-tree-only-leaf]=\"onlyLeaf\">\r\n @if (virtualScroll) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty\"\r\n [cdkDropListData]=\"nodes\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty\"\r\n [cdkDropListData]=\"nodes\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes; track node) {\r\n <x-tree-node\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n@if (lazy) {\r\n <x-icon [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n}\r\n", styles: [".x-tree{margin:0;padding:0}.x-tree-only-leaf .x-tree-node-sub{color:var(--x-text-300)}.x-tree-content.cdk-drop-list-dragging x-tree-node .x-tree-node-content:not(.x-disabled):not(.x-activated):hover{background-color:transparent}.x-tree-content.cdk-drop-list-dragging x-tree-node.cdk-drag-placeholder .x-tree-node-content{color:var(--x-primary);background-color:var(--x-background-a200);opacity:.8}.x-tree-content.cdk-drop-list-dragging x-tree-node:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["tree"], outputs: ["nodeMouseenter"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1257
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: XTreeService }], target: i0.ɵɵFactoryTarget.Component }); }
1258
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: XTreeComponent, isStandalone: true, selector: "x-tree", viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true, read: CdkVirtualScrollViewport, isSignal: true }, { propertyName: "dropList", first: true, predicate: ["dropList"], descendants: true, read: CdkDropList, isSignal: true }, { propertyName: "nodeComponents", predicate: XTreeNodeComponent, descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #tree class=\"x-tree\" [class.x-tree-only-leaf]=\"onlyLeaf()\">\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n [style.height.px]=\"virtualScrollHeightSignal()\"\r\n >\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes(); templateCacheSize: 0; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [nodeHeight]=\"nodeHeight()\"\r\n [nodeNowrap]=\"nodeNowrap()\"\r\n [nodeAlignItems]=\"nodeAlignItems()\"\r\n [(disabled)]=\"node.disabled!\"\r\n [(id)]=\"node.id\"\r\n [(pid)]=\"node.pid\"\r\n [(leaf)]=\"node.leaf!\"\r\n [(height)]=\"node.height!\"\r\n [(alignItems)]=\"node.alignItems!\"\r\n [(loading)]=\"node.loading!\"\r\n [(level)]=\"node.level!\"\r\n [(open)]=\"node.open\"\r\n [(checked)]=\"node.checked!\"\r\n [(indeterminate)]=\"node.indeterminate!\"\r\n [(label)]=\"node.label!\"\r\n [(nowrap)]=\"node.nowrap!\"\r\n (toggle)=\"onToggle(null, $event)\"\r\n ></x-tree-node>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes(); track node.id + '' + $index) {\r\n <x-tree-node\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [nodeHeight]=\"nodeHeight()\"\r\n [nodeNowrap]=\"nodeNowrap()\"\r\n [nodeAlignItems]=\"nodeAlignItems()\"\r\n [(disabled)]=\"node.disabled\"\r\n [(id)]=\"node.id\"\r\n [(pid)]=\"node.pid\"\r\n [(leaf)]=\"node.leaf\"\r\n [(height)]=\"node.height!\"\r\n [(alignItems)]=\"node.alignItems\"\r\n [(loading)]=\"node.loading\"\r\n [(level)]=\"node.level\"\r\n [(open)]=\"node.open\"\r\n [(checked)]=\"node.checked\"\r\n [(indeterminate)]=\"node.indeterminate\"\r\n [(label)]=\"node.label\"\r\n [(nowrap)]=\"node.nowrap\"\r\n (toggle)=\"onToggle(null, $event)\"\r\n ></x-tree-node>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n@if (lazy()) {\r\n <x-icon [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n}\r\n", styles: [".x-tree{margin:0;padding:0}.x-tree-only-leaf .x-tree-node-sub{color:var(--x-text-300)}.x-tree-content.cdk-drop-list-dragging x-tree-node .x-tree-node-content:not(.x-disabled):not(.x-activated):hover{background-color:transparent}.x-tree-content.cdk-drop-list-dragging x-tree-node.cdk-drag-placeholder .x-tree-node-content{color:var(--x-primary);background-color:var(--x-background-a200);opacity:.8}.x-tree-content.cdk-drop-list-dragging x-tree-node:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", outputs: ["nodeMouseenter"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1233
1259
  }
1234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeComponent, decorators: [{
1260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeComponent, decorators: [{
1235
1261
  type: Component,
1236
- args: [{ selector: `${XTreePrefix}`, standalone: true, imports: [DragDropModule, ScrollingModule, XTreeNodeComponent, XIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #tree class=\"x-tree\" [class.x-tree-only-leaf]=\"onlyLeaf\">\r\n @if (virtualScroll) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty\"\r\n [cdkDropListData]=\"nodes\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty\"\r\n [cdkDropListData]=\"nodes\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes; track node) {\r\n <x-tree-node\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n@if (lazy) {\r\n <x-icon [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n}\r\n", styles: [".x-tree{margin:0;padding:0}.x-tree-only-leaf .x-tree-node-sub{color:var(--x-text-300)}.x-tree-content.cdk-drop-list-dragging x-tree-node .x-tree-node-content:not(.x-disabled):not(.x-activated):hover{background-color:transparent}.x-tree-content.cdk-drop-list-dragging x-tree-node.cdk-drag-placeholder .x-tree-node-content{color:var(--x-primary);background-color:var(--x-background-a200);opacity:.8}.x-tree-content.cdk-drop-list-dragging x-tree-node:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
1237
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.XConfigService }, { type: i0.NgZone }, { type: XTreeService }], propDecorators: { tree: [{
1238
- type: ViewChild,
1239
- args: ['tree', { static: true }]
1240
- }], virtualBody: [{
1241
- type: ViewChild,
1242
- args: ['virtualBody']
1243
- }], dropList: [{
1244
- type: ViewChild,
1245
- args: ['dropList']
1246
- }], _nodeComponents: [{
1247
- type: ViewChildren,
1248
- args: [XTreeNodeComponent]
1249
- }] } });
1262
+ args: [{ selector: `${XTreePrefix}`, standalone: true, imports: [DragDropModule, ScrollingModule, XTreeNodeComponent, XIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #tree class=\"x-tree\" [class.x-tree-only-leaf]=\"onlyLeaf()\">\r\n @if (virtualScroll()) {\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize()\"\r\n [minBufferPx]=\"minBufferPxSignal()\"\r\n [maxBufferPx]=\"maxBufferPxSignal()\"\r\n [style.height.px]=\"virtualScrollHeightSignal()\"\r\n >\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes(); templateCacheSize: 0; trackBy: trackByItem\"\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [nodeHeight]=\"nodeHeight()\"\r\n [nodeNowrap]=\"nodeNowrap()\"\r\n [nodeAlignItems]=\"nodeAlignItems()\"\r\n [(disabled)]=\"node.disabled!\"\r\n [(id)]=\"node.id\"\r\n [(pid)]=\"node.pid\"\r\n [(leaf)]=\"node.leaf!\"\r\n [(height)]=\"node.height!\"\r\n [(alignItems)]=\"node.alignItems!\"\r\n [(loading)]=\"node.loading!\"\r\n [(level)]=\"node.level!\"\r\n [(open)]=\"node.open\"\r\n [(checked)]=\"node.checked!\"\r\n [(indeterminate)]=\"node.indeterminate!\"\r\n [(label)]=\"node.label!\"\r\n [(nowrap)]=\"node.nowrap!\"\r\n (toggle)=\"onToggle(null, $event)\"\r\n ></x-tree-node>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-tree-content\"\r\n #dropList\r\n cdkDropList\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [cdkDropListSortingDisabled]=\"true\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes(); track node.id + '' + $index) {\r\n <x-tree-node\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n (cdkDragStarted)=\"cdkDragStarted($event)\"\r\n (cdkDragEnded)=\"cdkDragEnded($event)\"\r\n (cdkDragMoved)=\"cdkDragMoved($event)\"\r\n [cdkDragData]=\"node\"\r\n (nodeMouseenter)=\"nodeMouseenter($event)\"\r\n [node]=\"node\"\r\n [nodeHeight]=\"nodeHeight()\"\r\n [nodeNowrap]=\"nodeNowrap()\"\r\n [nodeAlignItems]=\"nodeAlignItems()\"\r\n [(disabled)]=\"node.disabled\"\r\n [(id)]=\"node.id\"\r\n [(pid)]=\"node.pid\"\r\n [(leaf)]=\"node.leaf\"\r\n [(height)]=\"node.height!\"\r\n [(alignItems)]=\"node.alignItems\"\r\n [(loading)]=\"node.loading\"\r\n [(level)]=\"node.level\"\r\n [(open)]=\"node.open\"\r\n [(checked)]=\"node.checked\"\r\n [(indeterminate)]=\"node.indeterminate\"\r\n [(label)]=\"node.label\"\r\n [(nowrap)]=\"node.nowrap\"\r\n (toggle)=\"onToggle(null, $event)\"\r\n ></x-tree-node>\r\n }\r\n </div>\r\n }\r\n</div>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n@if (lazy()) {\r\n <x-icon [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n}\r\n", styles: [".x-tree{margin:0;padding:0}.x-tree-only-leaf .x-tree-node-sub{color:var(--x-text-300)}.x-tree-content.cdk-drop-list-dragging x-tree-node .x-tree-node-content:not(.x-disabled):not(.x-activated):hover{background-color:transparent}.x-tree-content.cdk-drop-list-dragging x-tree-node.cdk-drag-placeholder .x-tree-node-content{color:var(--x-primary);background-color:var(--x-background-a200);opacity:.8}.x-tree-content.cdk-drop-list-dragging x-tree-node:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
1263
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: XTreeService }] });
1250
1264
 
1251
1265
  class XTreeModule {
1252
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1253
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.10", ngImport: i0, type: XTreeModule, imports: [XTreeComponent, XTreeNodeComponent], exports: [XTreeComponent, XTreeNodeComponent] }); }
1254
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeModule, imports: [XTreeComponent, XTreeNodeComponent] }); }
1266
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1267
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: XTreeModule, imports: [XTreeComponent, XTreeNodeComponent], exports: [XTreeComponent, XTreeNodeComponent] }); }
1268
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeModule, imports: [XTreeComponent, XTreeNodeComponent] }); }
1255
1269
  }
1256
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XTreeModule, decorators: [{
1270
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTreeModule, decorators: [{
1257
1271
  type: NgModule,
1258
1272
  args: [{
1259
1273
  exports: [XTreeComponent, XTreeNodeComponent],