@ng-nest/ui 19.0.13 → 20.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 (707) hide show
  1. package/README.md +1 -1
  2. package/affix/index.d.ts +58 -3
  3. package/alert/index.d.ts +424 -3
  4. package/anchor/index.d.ts +186 -3
  5. package/api/index.d.ts +20 -3
  6. package/auto-complete/index.d.ts +454 -3
  7. package/avatar/index.d.ts +198 -3
  8. package/back-top/index.d.ts +75 -3
  9. package/badge/index.d.ts +153 -3
  10. package/base-form/index.d.ts +248 -3
  11. package/button/index.d.ts +380 -3
  12. package/calendar/index.d.ts +194 -3
  13. package/card/index.d.ts +99 -3
  14. package/carousel/index.d.ts +328 -3
  15. package/cascade/index.d.ts +459 -3
  16. package/checkbox/index.d.ts +351 -3
  17. package/collapse/index.d.ts +198 -3
  18. package/color/index.d.ts +80 -3
  19. package/color-picker/index.d.ts +484 -3
  20. package/comment/index.d.ts +158 -3
  21. package/container/index.d.ts +143 -3
  22. package/core/index.d.ts +1900 -3
  23. package/crumb/index.d.ts +91 -3
  24. package/date-picker/index.d.ts +2081 -3
  25. package/description/index.d.ts +234 -3
  26. package/dialog/index.d.ts +524 -3
  27. package/doc/index.d.ts +20 -3
  28. package/drag/index.d.ts +45 -3
  29. package/drawer/index.d.ts +244 -3
  30. package/dropdown/index.d.ts +201 -3
  31. package/empty/index.d.ts +60 -3
  32. package/examples/index.d.ts +20 -3
  33. package/fesm2022/ng-nest-ui-affix.mjs +11 -11
  34. package/fesm2022/ng-nest-ui-alert.mjs +11 -11
  35. package/fesm2022/ng-nest-ui-anchor.mjs +17 -17
  36. package/fesm2022/ng-nest-ui-api.mjs +8 -8
  37. package/fesm2022/ng-nest-ui-auto-complete.mjs +14 -14
  38. package/fesm2022/ng-nest-ui-avatar.mjs +17 -17
  39. package/fesm2022/ng-nest-ui-back-top.mjs +12 -11
  40. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  41. package/fesm2022/ng-nest-ui-badge.mjs +11 -11
  42. package/fesm2022/ng-nest-ui-base-form.mjs +7 -9
  43. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  44. package/fesm2022/ng-nest-ui-button.mjs +18 -18
  45. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  46. package/fesm2022/ng-nest-ui-calendar.mjs +11 -11
  47. package/fesm2022/ng-nest-ui-card.mjs +11 -11
  48. package/fesm2022/ng-nest-ui-carousel.mjs +17 -17
  49. package/fesm2022/ng-nest-ui-cascade.mjs +15 -14
  50. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  51. package/fesm2022/ng-nest-ui-checkbox.mjs +11 -11
  52. package/fesm2022/ng-nest-ui-collapse.mjs +18 -17
  53. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  54. package/fesm2022/ng-nest-ui-color-picker.mjs +17 -17
  55. package/fesm2022/ng-nest-ui-color.mjs +11 -11
  56. package/fesm2022/ng-nest-ui-comment.mjs +17 -17
  57. package/fesm2022/ng-nest-ui-container.mjs +32 -32
  58. package/fesm2022/ng-nest-ui-core.mjs +19 -19
  59. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  60. package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
  61. package/fesm2022/ng-nest-ui-date-picker.mjs +50 -50
  62. package/fesm2022/ng-nest-ui-description.mjs +17 -17
  63. package/fesm2022/ng-nest-ui-dialog.mjs +41 -41
  64. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  65. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  66. package/fesm2022/ng-nest-ui-drawer.mjs +32 -32
  67. package/fesm2022/ng-nest-ui-dropdown.mjs +14 -14
  68. package/fesm2022/ng-nest-ui-empty.mjs +11 -11
  69. package/fesm2022/ng-nest-ui-examples.mjs +8 -8
  70. package/fesm2022/ng-nest-ui-find.mjs +11 -11
  71. package/fesm2022/ng-nest-ui-form.mjs +20 -21
  72. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  73. package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
  74. package/fesm2022/ng-nest-ui-i18n.mjs +13 -13
  75. package/fesm2022/ng-nest-ui-icon.mjs +28 -20
  76. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  77. package/fesm2022/ng-nest-ui-image.mjs +20 -20
  78. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  79. package/fesm2022/ng-nest-ui-input-number.mjs +11 -11
  80. package/fesm2022/ng-nest-ui-input.mjs +17 -17
  81. package/fesm2022/ng-nest-ui-keyword.mjs +10 -10
  82. package/fesm2022/ng-nest-ui-layout.mjs +17 -17
  83. package/fesm2022/ng-nest-ui-link.mjs +11 -11
  84. package/fesm2022/ng-nest-ui-list.mjs +26 -26
  85. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  86. package/fesm2022/ng-nest-ui-loading.mjs +11 -11
  87. package/fesm2022/ng-nest-ui-menu.mjs +17 -17
  88. package/fesm2022/ng-nest-ui-message-box.mjs +11 -11
  89. package/fesm2022/ng-nest-ui-message.mjs +11 -11
  90. package/fesm2022/ng-nest-ui-notification.mjs +11 -11
  91. package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
  92. package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
  93. package/fesm2022/ng-nest-ui-pagination.mjs +12 -22
  94. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  95. package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
  96. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
  97. package/fesm2022/ng-nest-ui-popover.mjs +14 -14
  98. package/fesm2022/ng-nest-ui-portal.mjs +8 -8
  99. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  100. package/fesm2022/ng-nest-ui-progress.mjs +11 -11
  101. package/fesm2022/ng-nest-ui-radio.mjs +11 -11
  102. package/fesm2022/ng-nest-ui-rate.mjs +11 -11
  103. package/fesm2022/ng-nest-ui-resizable.mjs +11 -11
  104. package/fesm2022/ng-nest-ui-result.mjs +11 -11
  105. package/fesm2022/ng-nest-ui-ripple.mjs +10 -10
  106. package/fesm2022/ng-nest-ui-select.mjs +14 -14
  107. package/fesm2022/ng-nest-ui-skeleton.mjs +11 -11
  108. package/fesm2022/ng-nest-ui-slider-select.mjs +11 -11
  109. package/fesm2022/ng-nest-ui-slider.mjs +11 -11
  110. package/fesm2022/ng-nest-ui-statistic.mjs +17 -17
  111. package/fesm2022/ng-nest-ui-steps.mjs +11 -11
  112. package/fesm2022/ng-nest-ui-switch.mjs +11 -11
  113. package/fesm2022/ng-nest-ui-table.mjs +29 -39
  114. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  115. package/fesm2022/ng-nest-ui-tabs.mjs +26 -26
  116. package/fesm2022/ng-nest-ui-tag.mjs +11 -11
  117. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
  118. package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
  119. package/fesm2022/ng-nest-ui-theme.mjs +11 -11
  120. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  121. package/fesm2022/ng-nest-ui-time-picker.mjs +17 -17
  122. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  123. package/fesm2022/ng-nest-ui-timeline.mjs +11 -11
  124. package/fesm2022/ng-nest-ui-tooltip.mjs +14 -14
  125. package/fesm2022/ng-nest-ui-transfer.mjs +11 -11
  126. package/fesm2022/ng-nest-ui-tree-file.mjs +11 -11
  127. package/fesm2022/ng-nest-ui-tree-select.mjs +14 -14
  128. package/fesm2022/ng-nest-ui-tree.mjs +20 -20
  129. package/fesm2022/ng-nest-ui-typography.mjs +11 -11
  130. package/fesm2022/ng-nest-ui-upload.mjs +14 -14
  131. package/find/index.d.ts +625 -3
  132. package/form/index.d.ts +556 -3
  133. package/highlight/index.d.ts +107 -3
  134. package/i18n/index.d.ts +9399 -3
  135. package/icon/index.d.ts +135 -3
  136. package/image/index.d.ts +282 -3
  137. package/index.d.ts +0 -21
  138. package/inner/index.d.ts +38 -3
  139. package/input/index.d.ts +615 -3
  140. package/input-number/index.d.ts +352 -3
  141. package/keyword/index.d.ts +61 -3
  142. package/layout/index.d.ts +171 -3
  143. package/link/index.d.ts +128 -3
  144. package/list/index.d.ts +482 -3
  145. package/loading/index.d.ts +92 -3
  146. package/menu/index.d.ts +206 -3
  147. package/message/index.d.ts +192 -3
  148. package/message-box/index.d.ts +234 -3
  149. package/notification/index.d.ts +136 -3
  150. package/outlet/index.d.ts +28 -3
  151. package/package.json +18 -18
  152. package/page-header/index.d.ts +61 -3
  153. package/pagination/index.d.ts +212 -3
  154. package/pattern/index.d.ts +20 -3
  155. package/popconfirm/index.d.ts +124 -3
  156. package/popover/index.d.ts +163 -3
  157. package/portal/index.d.ts +157 -3
  158. package/progress/index.d.ts +191 -3
  159. package/radio/index.d.ts +313 -3
  160. package/rate/index.d.ts +231 -3
  161. package/resizable/index.d.ts +155 -3
  162. package/result/index.d.ts +61 -3
  163. package/ripple/index.d.ts +67 -3
  164. package/select/index.d.ts +635 -3
  165. package/skeleton/index.d.ts +132 -3
  166. package/slider/index.d.ts +188 -3
  167. package/slider-select/index.d.ts +386 -3
  168. package/statistic/index.d.ts +129 -3
  169. package/steps/index.d.ts +101 -3
  170. package/switch/index.d.ts +223 -3
  171. package/table/index.d.ts +1076 -3
  172. package/tabs/index.d.ts +238 -3
  173. package/tag/index.d.ts +99 -3
  174. package/text-retract/index.d.ts +45 -3
  175. package/textarea/index.d.ts +340 -3
  176. package/theme/index.d.ts +152 -3
  177. package/time-ago/index.d.ts +32 -3
  178. package/time-picker/index.d.ts +615 -3
  179. package/time-range/index.d.ts +24 -3
  180. package/timeline/index.d.ts +108 -3
  181. package/tooltip/index.d.ts +154 -3
  182. package/transfer/index.d.ts +340 -3
  183. package/tree/index.d.ts +601 -3
  184. package/tree-file/index.d.ts +167 -3
  185. package/tree-select/index.d.ts +642 -3
  186. package/typography/index.d.ts +42 -3
  187. package/upload/index.d.ts +304 -3
  188. package/affix/affix.component.d.ts +0 -6
  189. package/affix/affix.module.d.ts +0 -7
  190. package/affix/affix.property.d.ts +0 -46
  191. package/affix/public-api.d.ts +0 -3
  192. package/alert/alert.component.d.ts +0 -21
  193. package/alert/alert.module.d.ts +0 -7
  194. package/alert/alert.property.d.ts +0 -396
  195. package/alert/public-api.d.ts +0 -3
  196. package/anchor/anchor-inner.component.d.ts +0 -6
  197. package/anchor/anchor.component.d.ts +0 -38
  198. package/anchor/anchor.module.d.ts +0 -8
  199. package/anchor/anchor.property.d.ts +0 -136
  200. package/anchor/public-api.d.ts +0 -4
  201. package/api/api.component.d.ts +0 -6
  202. package/api/api.module.d.ts +0 -7
  203. package/api/api.property.d.ts +0 -6
  204. package/api/public-api.d.ts +0 -3
  205. package/auto-complete/auto-complete-portal.component.d.ts +0 -35
  206. package/auto-complete/auto-complete.component.d.ts +0 -54
  207. package/auto-complete/auto-complete.module.d.ts +0 -7
  208. package/auto-complete/auto-complete.property.d.ts +0 -365
  209. package/auto-complete/public-api.d.ts +0 -4
  210. package/avatar/avatar-group.component.d.ts +0 -7
  211. package/avatar/avatar.component.d.ts +0 -37
  212. package/avatar/avatar.module.d.ts +0 -8
  213. package/avatar/avatar.property.d.ts +0 -149
  214. package/avatar/public-api.d.ts +0 -4
  215. package/back-top/back-top.component.d.ts +0 -25
  216. package/back-top/back-top.module.d.ts +0 -7
  217. package/back-top/back-top.property.d.ts +0 -45
  218. package/back-top/public-api.d.ts +0 -3
  219. package/badge/badge.component.d.ts +0 -14
  220. package/badge/badge.module.d.ts +0 -7
  221. package/badge/badge.property.d.ts +0 -132
  222. package/badge/public-api.d.ts +0 -3
  223. package/base-form/base-form.component.d.ts +0 -61
  224. package/base-form/base-form.module.d.ts +0 -6
  225. package/base-form/base-form.property.d.ts +0 -180
  226. package/base-form/public-api.d.ts +0 -3
  227. package/button/button.component.d.ts +0 -25
  228. package/button/button.module.d.ts +0 -8
  229. package/button/button.property.d.ts +0 -336
  230. package/button/buttons.component.d.ts +0 -13
  231. package/button/public-api.d.ts +0 -4
  232. package/calendar/calendar.component.d.ts +0 -55
  233. package/calendar/calendar.module.d.ts +0 -7
  234. package/calendar/calendar.property.d.ts +0 -132
  235. package/calendar/public-api.d.ts +0 -3
  236. package/card/card.component.d.ts +0 -9
  237. package/card/card.module.d.ts +0 -7
  238. package/card/card.property.d.ts +0 -83
  239. package/card/public-api.d.ts +0 -3
  240. package/carousel/carousel-panel.component.d.ts +0 -34
  241. package/carousel/carousel.component.d.ts +0 -33
  242. package/carousel/carousel.module.d.ts +0 -8
  243. package/carousel/carousel.property.d.ts +0 -259
  244. package/carousel/public-api.d.ts +0 -4
  245. package/cascade/cascade-portal.component.d.ts +0 -41
  246. package/cascade/cascade.component.d.ts +0 -56
  247. package/cascade/cascade.module.d.ts +0 -7
  248. package/cascade/cascade.property.d.ts +0 -360
  249. package/cascade/public-api.d.ts +0 -4
  250. package/checkbox/checkbox.component.d.ts +0 -26
  251. package/checkbox/checkbox.module.d.ts +0 -7
  252. package/checkbox/checkbox.property.d.ts +0 -320
  253. package/checkbox/public-api.d.ts +0 -3
  254. package/collapse/collapse-panel.component.d.ts +0 -16
  255. package/collapse/collapse.component.d.ts +0 -10
  256. package/collapse/collapse.module.d.ts +0 -8
  257. package/collapse/collapse.property.d.ts +0 -168
  258. package/collapse/public-api.d.ts +0 -4
  259. package/color/color.component.d.ts +0 -10
  260. package/color/color.module.d.ts +0 -7
  261. package/color/color.property.d.ts +0 -64
  262. package/color/public-api.d.ts +0 -3
  263. package/color-picker/color-map.data.d.ts +0 -3
  264. package/color-picker/color-picker-portal.component.d.ts +0 -118
  265. package/color-picker/color-picker.component.d.ts +0 -53
  266. package/color-picker/color-picker.directive.d.ts +0 -9
  267. package/color-picker/color-picker.module.d.ts +0 -8
  268. package/color-picker/color-picker.property.d.ts +0 -304
  269. package/color-picker/public-api.d.ts +0 -5
  270. package/comment/comment-reply.component.d.ts +0 -8
  271. package/comment/comment.component.d.ts +0 -14
  272. package/comment/comment.module.d.ts +0 -8
  273. package/comment/comment.property.d.ts +0 -131
  274. package/comment/public-api.d.ts +0 -4
  275. package/container/aside.component.d.ts +0 -8
  276. package/container/container.component.d.ts +0 -10
  277. package/container/container.module.d.ts +0 -11
  278. package/container/container.property.d.ts +0 -94
  279. package/container/footer.component.d.ts +0 -12
  280. package/container/header.component.d.ts +0 -12
  281. package/container/main.component.d.ts +0 -6
  282. package/container/public-api.d.ts +0 -7
  283. package/core/README.md +0 -25
  284. package/core/animation/badge.d.ts +0 -11
  285. package/core/animation/connect.d.ts +0 -11
  286. package/core/animation/consts.d.ts +0 -9
  287. package/core/animation/drop.d.ts +0 -6
  288. package/core/animation/fade.d.ts +0 -6
  289. package/core/animation/move.d.ts +0 -7
  290. package/core/animation/opacity.d.ts +0 -6
  291. package/core/animation/public-api.d.ts +0 -8
  292. package/core/animation/slide.d.ts +0 -6
  293. package/core/components/inner-html.component.d.ts +0 -9
  294. package/core/components/public-api.d.ts +0 -1
  295. package/core/config/config.d.ts +0 -624
  296. package/core/config/config.service.d.ts +0 -22
  297. package/core/config/index.d.ts +0 -1
  298. package/core/config/public-api.d.ts +0 -2
  299. package/core/functions/chunk.d.ts +0 -12
  300. package/core/functions/clone-deep.d.ts +0 -17
  301. package/core/functions/convert.d.ts +0 -90
  302. package/core/functions/csspx.d.ts +0 -5
  303. package/core/functions/date.d.ts +0 -70
  304. package/core/functions/drop.d.ts +0 -13
  305. package/core/functions/flex.d.ts +0 -7
  306. package/core/functions/group-by.d.ts +0 -5
  307. package/core/functions/guid.d.ts +0 -5
  308. package/core/functions/has-in.d.ts +0 -5
  309. package/core/functions/order-by.d.ts +0 -5
  310. package/core/functions/parent-path.d.ts +0 -10
  311. package/core/functions/property.d.ts +0 -16
  312. package/core/functions/public-api.d.ts +0 -15
  313. package/core/functions/remove.d.ts +0 -5
  314. package/core/functions/resize.d.ts +0 -19
  315. package/core/interfaces/data.type.d.ts +0 -194
  316. package/core/interfaces/identify.type.d.ts +0 -83
  317. package/core/interfaces/index.d.ts +0 -1
  318. package/core/interfaces/layout.type.d.ts +0 -169
  319. package/core/interfaces/public-api.d.ts +0 -4
  320. package/core/interfaces/result-list.type.d.ts +0 -116
  321. package/core/public-api.d.ts +0 -8
  322. package/core/services/http.service.d.ts +0 -28
  323. package/core/services/preloading-strategy.service.d.ts +0 -9
  324. package/core/services/public-api.d.ts +0 -5
  325. package/core/services/repository.service.d.ts +0 -28
  326. package/core/services/reuse-strategy.service.d.ts +0 -17
  327. package/core/services/storage.service.d.ts +0 -15
  328. package/core/theme/index.d.ts +0 -1
  329. package/core/theme/public-api.d.ts +0 -2
  330. package/core/theme/theme.d.ts +0 -73
  331. package/core/theme/theme.service.d.ts +0 -76
  332. package/core/util/animation.d.ts +0 -1
  333. package/core/util/camel-to-kebab.d.ts +0 -13
  334. package/core/util/check.d.ts +0 -10
  335. package/core/util/computed-style.d.ts +0 -10
  336. package/core/util/host.d.ts +0 -5
  337. package/core/util/html.d.ts +0 -5
  338. package/core/util/index.d.ts +0 -1
  339. package/core/util/kebab-to-camel.d.ts +0 -13
  340. package/core/util/log.d.ts +0 -10
  341. package/core/util/option.d.ts +0 -9
  342. package/core/util/public-api.d.ts +0 -10
  343. package/core/util/sleep.d.ts +0 -5
  344. package/crumb/crumb.component.d.ts +0 -7
  345. package/crumb/crumb.module.d.ts +0 -7
  346. package/crumb/crumb.property.d.ts +0 -77
  347. package/crumb/public-api.d.ts +0 -3
  348. package/date-picker/date-picker-portal.component.d.ts +0 -104
  349. package/date-picker/date-picker.component.d.ts +0 -113
  350. package/date-picker/date-picker.module.d.ts +0 -8
  351. package/date-picker/date-picker.property.d.ts +0 -1316
  352. package/date-picker/date-quarter.pipe.d.ts +0 -9
  353. package/date-picker/date-range-portal.component.d.ts +0 -135
  354. package/date-picker/date-range.component.d.ts +0 -134
  355. package/date-picker/picker-date.component.d.ts +0 -97
  356. package/date-picker/picker-month.component.d.ts +0 -86
  357. package/date-picker/picker-quarter.component.d.ts +0 -86
  358. package/date-picker/picker-year.component.d.ts +0 -32
  359. package/date-picker/public-api.d.ts +0 -11
  360. package/description/description-item.component.d.ts +0 -8
  361. package/description/description.component.d.ts +0 -15
  362. package/description/description.module.d.ts +0 -8
  363. package/description/description.property.d.ts +0 -207
  364. package/description/public-api.d.ts +0 -4
  365. package/dialog/dialog-container.component.d.ts +0 -7
  366. package/dialog/dialog-portal.component.d.ts +0 -45
  367. package/dialog/dialog-portal.directives.d.ts +0 -36
  368. package/dialog/dialog-ref.d.ts +0 -23
  369. package/dialog/dialog.component.d.ts +0 -72
  370. package/dialog/dialog.module.d.ts +0 -9
  371. package/dialog/dialog.property.d.ts +0 -338
  372. package/dialog/dialog.service.d.ts +0 -20
  373. package/dialog/public-api.d.ts +0 -8
  374. package/doc/doc.component.d.ts +0 -6
  375. package/doc/doc.module.d.ts +0 -7
  376. package/doc/doc.property.d.ts +0 -6
  377. package/doc/public-api.d.ts +0 -3
  378. package/drag/drag.directive.d.ts +0 -13
  379. package/drag/drag.module.d.ts +0 -7
  380. package/drag/drag.property.d.ts +0 -25
  381. package/drag/public-api.d.ts +0 -3
  382. package/drawer/drawer-container.component.d.ts +0 -7
  383. package/drawer/drawer-portal.component.d.ts +0 -17
  384. package/drawer/drawer-portal.directives.d.ts +0 -18
  385. package/drawer/drawer-ref.d.ts +0 -9
  386. package/drawer/drawer.component.d.ts +0 -34
  387. package/drawer/drawer.module.d.ts +0 -9
  388. package/drawer/drawer.property.d.ts +0 -149
  389. package/drawer/drawer.service.d.ts +0 -17
  390. package/drawer/public-api.d.ts +0 -9
  391. package/dropdown/dropdown-portal.component.d.ts +0 -55
  392. package/dropdown/dropdown.component.d.ts +0 -42
  393. package/dropdown/dropdown.module.d.ts +0 -7
  394. package/dropdown/dropdown.property.d.ts +0 -102
  395. package/dropdown/public-api.d.ts +0 -4
  396. package/empty/empty.component.d.ts +0 -6
  397. package/empty/empty.module.d.ts +0 -7
  398. package/empty/empty.property.d.ts +0 -48
  399. package/empty/public-api.d.ts +0 -3
  400. package/examples/examples.component.d.ts +0 -6
  401. package/examples/examples.module.d.ts +0 -7
  402. package/examples/examples.property.d.ts +0 -6
  403. package/examples/public-api.d.ts +0 -3
  404. package/find/find.component.d.ts +0 -57
  405. package/find/find.module.d.ts +0 -7
  406. package/find/find.property.d.ts +0 -563
  407. package/find/public-api.d.ts +0 -3
  408. package/form/control.component.d.ts +0 -51
  409. package/form/form.component.d.ts +0 -25
  410. package/form/form.module.d.ts +0 -8
  411. package/form/form.property.d.ts +0 -494
  412. package/form/public-api.d.ts +0 -4
  413. package/highlight/highlight.component.d.ts +0 -19
  414. package/highlight/highlight.module.d.ts +0 -7
  415. package/highlight/highlight.property.d.ts +0 -72
  416. package/highlight/highlight.service.d.ts +0 -8
  417. package/highlight/public-api.d.ts +0 -4
  418. package/i18n/i18n.directive.d.ts +0 -11
  419. package/i18n/i18n.module.d.ts +0 -8
  420. package/i18n/i18n.pipe.d.ts +0 -12
  421. package/i18n/i18n.property.d.ts +0 -195
  422. package/i18n/i18n.service.d.ts +0 -17
  423. package/i18n/languages/ar_EG.d.ts +0 -180
  424. package/i18n/languages/bg_BG.d.ts +0 -180
  425. package/i18n/languages/ca_ES.d.ts +0 -180
  426. package/i18n/languages/cs_CZ.d.ts +0 -180
  427. package/i18n/languages/da_DK.d.ts +0 -180
  428. package/i18n/languages/de_DE.d.ts +0 -180
  429. package/i18n/languages/el_GR.d.ts +0 -180
  430. package/i18n/languages/en_GB.d.ts +0 -181
  431. package/i18n/languages/en_US.d.ts +0 -181
  432. package/i18n/languages/es_ES.d.ts +0 -180
  433. package/i18n/languages/et_EE.d.ts +0 -180
  434. package/i18n/languages/fa_IR.d.ts +0 -180
  435. package/i18n/languages/fi_FI.d.ts +0 -180
  436. package/i18n/languages/fr_BE.d.ts +0 -180
  437. package/i18n/languages/fr_FR.d.ts +0 -180
  438. package/i18n/languages/he_IL.d.ts +0 -180
  439. package/i18n/languages/hi_IN.d.ts +0 -180
  440. package/i18n/languages/hr_HR.d.ts +0 -180
  441. package/i18n/languages/hu_HU.d.ts +0 -180
  442. package/i18n/languages/hy_AM.d.ts +0 -180
  443. package/i18n/languages/id_ID.d.ts +0 -180
  444. package/i18n/languages/is_IS.d.ts +0 -180
  445. package/i18n/languages/it_IT.d.ts +0 -180
  446. package/i18n/languages/ja_JP.d.ts +0 -180
  447. package/i18n/languages/ka_GE.d.ts +0 -180
  448. package/i18n/languages/kn_IN.d.ts +0 -180
  449. package/i18n/languages/ko_KR.d.ts +0 -180
  450. package/i18n/languages/ku_IQ.d.ts +0 -156
  451. package/i18n/languages/lv_LV.d.ts +0 -180
  452. package/i18n/languages/mn_MN.d.ts +0 -180
  453. package/i18n/languages/ms_MY.d.ts +0 -180
  454. package/i18n/languages/nb_NO.d.ts +0 -180
  455. package/i18n/languages/ne_NP.d.ts +0 -180
  456. package/i18n/languages/nl_BE.d.ts +0 -180
  457. package/i18n/languages/nl_NL.d.ts +0 -180
  458. package/i18n/languages/pl_PL.d.ts +0 -180
  459. package/i18n/languages/pt_BR.d.ts +0 -180
  460. package/i18n/languages/pt_PT.d.ts +0 -180
  461. package/i18n/languages/ro_RO.d.ts +0 -180
  462. package/i18n/languages/ru_RU.d.ts +0 -180
  463. package/i18n/languages/sk_SK.d.ts +0 -179
  464. package/i18n/languages/sl_SI.d.ts +0 -180
  465. package/i18n/languages/sr_RS.d.ts +0 -180
  466. package/i18n/languages/sv_SE.d.ts +0 -180
  467. package/i18n/languages/ta_IN.d.ts +0 -180
  468. package/i18n/languages/th_TH.d.ts +0 -180
  469. package/i18n/languages/tr_TR.d.ts +0 -180
  470. package/i18n/languages/uk_UA.d.ts +0 -180
  471. package/i18n/languages/vi_VN.d.ts +0 -180
  472. package/i18n/languages/zh_CN.d.ts +0 -180
  473. package/i18n/languages/zh_TW.d.ts +0 -180
  474. package/i18n/public-api.d.ts +0 -56
  475. package/icon/icon.component.d.ts +0 -31
  476. package/icon/icon.module.d.ts +0 -7
  477. package/icon/icon.property.d.ts +0 -64
  478. package/icon/icon.service.d.ts +0 -33
  479. package/icon/public-api.d.ts +0 -4
  480. package/image/image-group.component.d.ts +0 -9
  481. package/image/image-preview.component.d.ts +0 -33
  482. package/image/image.component.d.ts +0 -24
  483. package/image/image.module.d.ts +0 -9
  484. package/image/image.property.d.ts +0 -213
  485. package/image/public-api.d.ts +0 -5
  486. package/inner/inner.component.d.ts +0 -8
  487. package/inner/inner.module.d.ts +0 -7
  488. package/inner/inner.property.d.ts +0 -24
  489. package/inner/public-api.d.ts +0 -3
  490. package/input/input-group.component.d.ts +0 -8
  491. package/input/input.component.d.ts +0 -52
  492. package/input/input.module.d.ts +0 -8
  493. package/input/input.property.d.ts +0 -553
  494. package/input/public-api.d.ts +0 -4
  495. package/input-number/input-number.component.d.ts +0 -35
  496. package/input-number/input-number.module.d.ts +0 -7
  497. package/input-number/input-number.property.d.ts +0 -313
  498. package/input-number/public-api.d.ts +0 -3
  499. package/keyword/keyword.directive.d.ts +0 -10
  500. package/keyword/keyword.module.d.ts +0 -7
  501. package/keyword/keyword.property.d.ts +0 -44
  502. package/keyword/public-api.d.ts +0 -3
  503. package/layout/col.component.d.ts +0 -14
  504. package/layout/layout.module.d.ts +0 -8
  505. package/layout/layout.property.d.ts +0 -139
  506. package/layout/public-api.d.ts +0 -4
  507. package/layout/row.component.d.ts +0 -13
  508. package/link/link.component.d.ts +0 -13
  509. package/link/link.module.d.ts +0 -7
  510. package/link/link.property.d.ts +0 -108
  511. package/link/public-api.d.ts +0 -3
  512. package/list/list-drop-group.directive.d.ts +0 -13
  513. package/list/list-option.component.d.ts +0 -18
  514. package/list/list.component.d.ts +0 -76
  515. package/list/list.module.d.ts +0 -9
  516. package/list/list.property.d.ts +0 -378
  517. package/list/public-api.d.ts +0 -5
  518. package/loading/loading.component.d.ts +0 -23
  519. package/loading/loading.module.d.ts +0 -7
  520. package/loading/loading.property.d.ts +0 -64
  521. package/loading/public-api.d.ts +0 -3
  522. package/menu/menu-node.component.d.ts +0 -19
  523. package/menu/menu.component.d.ts +0 -35
  524. package/menu/menu.module.d.ts +0 -8
  525. package/menu/menu.property.d.ts +0 -150
  526. package/menu/public-api.d.ts +0 -4
  527. package/message/README.md +0 -20
  528. package/message/message-ref.d.ts +0 -9
  529. package/message/message.component.d.ts +0 -15
  530. package/message/message.module.d.ts +0 -6
  531. package/message/message.property.d.ts +0 -137
  532. package/message/message.service.d.ts +0 -27
  533. package/message/public-api.d.ts +0 -5
  534. package/message-box/message-box.component.d.ts +0 -31
  535. package/message-box/message-box.module.d.ts +0 -6
  536. package/message-box/message-box.property.d.ts +0 -180
  537. package/message-box/message-box.service.d.ts +0 -17
  538. package/message-box/public-api.d.ts +0 -4
  539. package/notification/notification.component.d.ts +0 -15
  540. package/notification/notification.module.d.ts +0 -6
  541. package/notification/notification.property.d.ts +0 -96
  542. package/notification/notification.service.d.ts +0 -20
  543. package/notification/public-api.d.ts +0 -4
  544. package/outlet/outlet.directive.d.ts +0 -14
  545. package/outlet/outlet.module.d.ts +0 -7
  546. package/outlet/outlet.property.d.ts +0 -6
  547. package/outlet/public-api.d.ts +0 -3
  548. package/page-header/page-header.component.d.ts +0 -12
  549. package/page-header/page-header.module.d.ts +0 -7
  550. package/page-header/page-header.property.d.ts +0 -43
  551. package/page-header/public-api.d.ts +0 -3
  552. package/pagination/pagination.component.d.ts +0 -53
  553. package/pagination/pagination.module.d.ts +0 -7
  554. package/pagination/pagination.property.d.ts +0 -161
  555. package/pagination/public-api.d.ts +0 -3
  556. package/pattern/pattern.component.d.ts +0 -6
  557. package/pattern/pattern.module.d.ts +0 -7
  558. package/pattern/pattern.property.d.ts +0 -6
  559. package/pattern/public-api.d.ts +0 -3
  560. package/popconfirm/popconfirm.component.d.ts +0 -22
  561. package/popconfirm/popconfirm.module.d.ts +0 -7
  562. package/popconfirm/popconfirm.property.d.ts +0 -96
  563. package/popconfirm/public-api.d.ts +0 -3
  564. package/popover/popover-portal.component.d.ts +0 -23
  565. package/popover/popover.directive.d.ts +0 -34
  566. package/popover/popover.module.d.ts +0 -7
  567. package/popover/popover.property.d.ts +0 -103
  568. package/popover/public-api.d.ts +0 -4
  569. package/portal/portal.module.d.ts +0 -6
  570. package/portal/portal.property.d.ts +0 -76
  571. package/portal/portal.service.d.ts +0 -80
  572. package/portal/public-api.d.ts +0 -3
  573. package/progress/progress.component.d.ts +0 -39
  574. package/progress/progress.module.d.ts +0 -7
  575. package/progress/progress.property.d.ts +0 -147
  576. package/progress/public-api.d.ts +0 -3
  577. package/radio/public-api.d.ts +0 -3
  578. package/radio/radio.component.d.ts +0 -23
  579. package/radio/radio.module.d.ts +0 -7
  580. package/radio/radio.property.d.ts +0 -284
  581. package/rate/public-api.d.ts +0 -3
  582. package/rate/rate.component.d.ts +0 -26
  583. package/rate/rate.module.d.ts +0 -7
  584. package/rate/rate.property.d.ts +0 -200
  585. package/resizable/public-api.d.ts +0 -3
  586. package/resizable/resizable.directive.d.ts +0 -52
  587. package/resizable/resizable.module.d.ts +0 -7
  588. package/resizable/resizable.property.d.ts +0 -97
  589. package/result/public-api.d.ts +0 -3
  590. package/result/result.component.d.ts +0 -10
  591. package/result/result.module.d.ts +0 -7
  592. package/result/result.property.d.ts +0 -44
  593. package/ripple/public-api.d.ts +0 -3
  594. package/ripple/ripple.directive.d.ts +0 -21
  595. package/ripple/ripple.module.d.ts +0 -7
  596. package/ripple/ripple.property.d.ts +0 -39
  597. package/select/public-api.d.ts +0 -4
  598. package/select/select-portal.component.d.ts +0 -55
  599. package/select/select.component.d.ts +0 -108
  600. package/select/select.module.d.ts +0 -7
  601. package/select/select.property.d.ts +0 -474
  602. package/skeleton/public-api.d.ts +0 -3
  603. package/skeleton/skeleton.component.d.ts +0 -9
  604. package/skeleton/skeleton.module.d.ts +0 -7
  605. package/skeleton/skeleton.property.d.ts +0 -116
  606. package/slider/public-api.d.ts +0 -3
  607. package/slider/slider.component.d.ts +0 -62
  608. package/slider/slider.module.d.ts +0 -7
  609. package/slider/slider.property.d.ts +0 -121
  610. package/slider-select/public-api.d.ts +0 -3
  611. package/slider-select/slider-select.component.d.ts +0 -60
  612. package/slider-select/slider-select.module.d.ts +0 -7
  613. package/slider-select/slider-select.property.d.ts +0 -321
  614. package/statistic/countdown.component.d.ts +0 -21
  615. package/statistic/public-api.d.ts +0 -4
  616. package/statistic/statistic.component.d.ts +0 -8
  617. package/statistic/statistic.module.d.ts +0 -8
  618. package/statistic/statistic.property.d.ts +0 -95
  619. package/steps/public-api.d.ts +0 -3
  620. package/steps/steps.component.d.ts +0 -11
  621. package/steps/steps.module.d.ts +0 -7
  622. package/steps/steps.property.d.ts +0 -82
  623. package/switch/public-api.d.ts +0 -3
  624. package/switch/switch.component.d.ts +0 -15
  625. package/switch/switch.module.d.ts +0 -7
  626. package/switch/switch.property.d.ts +0 -202
  627. package/table/public-api.d.ts +0 -6
  628. package/table/table-body.component.d.ts +0 -48
  629. package/table/table-foot.component.d.ts +0 -15
  630. package/table/table-head.component.d.ts +0 -48
  631. package/table/table.component.d.ts +0 -106
  632. package/table/table.module.d.ts +0 -10
  633. package/table/table.property.d.ts +0 -879
  634. package/tabs/public-api.d.ts +0 -6
  635. package/tabs/tab-content.component.d.ts +0 -10
  636. package/tabs/tab-link.directive.d.ts +0 -17
  637. package/tabs/tab.component.d.ts +0 -11
  638. package/tabs/tabs.component.d.ts +0 -36
  639. package/tabs/tabs.module.d.ts +0 -9
  640. package/tabs/tabs.property.d.ts +0 -167
  641. package/tag/public-api.d.ts +0 -3
  642. package/tag/tag.component.d.ts +0 -17
  643. package/tag/tag.module.d.ts +0 -7
  644. package/tag/tag.property.d.ts +0 -76
  645. package/text-retract/public-api.d.ts +0 -3
  646. package/text-retract/text-retract.component.d.ts +0 -10
  647. package/text-retract/text-retract.module.d.ts +0 -7
  648. package/text-retract/text-retract.property.d.ts +0 -29
  649. package/textarea/public-api.d.ts +0 -3
  650. package/textarea/textarea.component.d.ts +0 -26
  651. package/textarea/textarea.module.d.ts +0 -7
  652. package/textarea/textarea.property.d.ts +0 -310
  653. package/theme/public-api.d.ts +0 -3
  654. package/theme/theme.component.d.ts +0 -47
  655. package/theme/theme.module.d.ts +0 -7
  656. package/theme/theme.property.d.ts +0 -101
  657. package/time-ago/public-api.d.ts +0 -3
  658. package/time-ago/time-ago.module.d.ts +0 -7
  659. package/time-ago/time-ago.pipe.d.ts +0 -17
  660. package/time-ago/time-ago.property.d.ts +0 -6
  661. package/time-picker/public-api.d.ts +0 -5
  662. package/time-picker/time-picker-frame.component.d.ts +0 -73
  663. package/time-picker/time-picker-portal.component.d.ts +0 -39
  664. package/time-picker/time-picker.component.d.ts +0 -64
  665. package/time-picker/time-picker.module.d.ts +0 -8
  666. package/time-picker/time-picker.property.d.ts +0 -442
  667. package/time-range/public-api.d.ts +0 -3
  668. package/time-range/time-range.module.d.ts +0 -7
  669. package/time-range/time-range.pipe.d.ts +0 -10
  670. package/time-range/time-range.property.d.ts +0 -6
  671. package/timeline/public-api.d.ts +0 -3
  672. package/timeline/timeline.component.d.ts +0 -11
  673. package/timeline/timeline.module.d.ts +0 -7
  674. package/timeline/timeline.property.d.ts +0 -90
  675. package/tooltip/public-api.d.ts +0 -4
  676. package/tooltip/tooltip-portal.component.d.ts +0 -34
  677. package/tooltip/tooltip.directive.d.ts +0 -36
  678. package/tooltip/tooltip.module.d.ts +0 -7
  679. package/tooltip/tooltip.property.d.ts +0 -81
  680. package/transfer/public-api.d.ts +0 -3
  681. package/transfer/transfer.component.d.ts +0 -72
  682. package/transfer/transfer.module.d.ts +0 -7
  683. package/transfer/transfer.property.d.ts +0 -264
  684. package/tree/public-api.d.ts +0 -4
  685. package/tree/tree-node.component.d.ts +0 -57
  686. package/tree/tree.component.d.ts +0 -77
  687. package/tree/tree.module.d.ts +0 -8
  688. package/tree/tree.property.d.ts +0 -460
  689. package/tree/tree.service.d.ts +0 -10
  690. package/tree-file/public-api.d.ts +0 -3
  691. package/tree-file/tree-file.component.d.ts +0 -24
  692. package/tree-file/tree-file.module.d.ts +0 -7
  693. package/tree-file/tree-file.property.d.ts +0 -138
  694. package/tree-select/public-api.d.ts +0 -4
  695. package/tree-select/tree-select-portal.component.d.ts +0 -46
  696. package/tree-select/tree-select.component.d.ts +0 -109
  697. package/tree-select/tree-select.module.d.ts +0 -7
  698. package/tree-select/tree-select.property.d.ts +0 -487
  699. package/typography/public-api.d.ts +0 -3
  700. package/typography/typography.component.d.ts +0 -11
  701. package/typography/typography.module.d.ts +0 -7
  702. package/typography/typography.property.d.ts +0 -25
  703. package/upload/public-api.d.ts +0 -4
  704. package/upload/upload-portal.component.d.ts +0 -48
  705. package/upload/upload.component.d.ts +0 -44
  706. package/upload/upload.module.d.ts +0 -7
  707. package/upload/upload.property.d.ts +0 -209
@@ -1,6 +1,6 @@
1
1
  import { Subject } from 'rxjs';
2
2
  import * as i0 from '@angular/core';
3
- import { input, output, Component, model, inject, ElementRef, computed, effect, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, InjectionToken, Directive, signal, viewChild, afterRender, ViewChildren, HostListener, NgModule } from '@angular/core';
3
+ import { input, output, Component, model, inject, ElementRef, computed, effect, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, InjectionToken, Directive, signal, viewChild, afterEveryRender, HostListener, ViewChildren, NgModule } from '@angular/core';
4
4
  import { XToNumber, XToBoolean, XIsUndefined, XIsEmpty, XIsChange, XResize, XSetData, XIsNull } from '@ng-nest/ui/core';
5
5
  import { XFormControlFunction, XValueAccessor } from '@ng-nest/ui/base-form';
6
6
  import { CdkDropList, moveItemInArray, CdkDrag } from '@angular/cdk/drag-drop';
@@ -186,10 +186,10 @@ class XListProperty extends XFormControlFunction(X_LIST_CONFIG_NAME) {
186
186
  */
187
187
  this.size = input(this.config?.size ?? 'medium');
188
188
  }
189
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
190
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.1", type: XListProperty, isStandalone: true, selector: "x-list-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, selectAll: { classPropertyName: "selectAll", publicName: "selectAll", isSignal: true, isRequired: false, transformFunction: null }, selectAllText: { classPropertyName: "selectAllText", publicName: "selectAllText", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, drag: { classPropertyName: "drag", publicName: "drag", isSignal: true, isRequired: false, transformFunction: null }, objectArray: { classPropertyName: "objectArray", publicName: "objectArray", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, footer: { classPropertyName: "footer", publicName: "footer", isSignal: true, isRequired: false, transformFunction: null }, scrollElement: { classPropertyName: "scrollElement", publicName: "scrollElement", isSignal: true, isRequired: false, transformFunction: null }, loadMore: { classPropertyName: "loadMore", publicName: "loadMore", isSignal: true, isRequired: false, transformFunction: null }, loadMoreText: { classPropertyName: "loadMoreText", publicName: "loadMoreText", isSignal: true, isRequired: false, transformFunction: null }, loadingMoreText: { classPropertyName: "loadingMoreText", publicName: "loadingMoreText", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null }, heightAdaption: { classPropertyName: "heightAdaption", publicName: "heightAdaption", 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 }, keywordText: { classPropertyName: "keywordText", publicName: "keywordText", isSignal: true, isRequired: false, transformFunction: null }, caseSensitive: { classPropertyName: "caseSensitive", publicName: "caseSensitive", isSignal: true, isRequired: false, transformFunction: null }, inPortal: { classPropertyName: "inPortal", publicName: "inPortal", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectAll: "onSelectAll", nodeMouseenter: "nodeMouseenter", nodeMouseleave: "nodeMouseleave", nodeClick: "nodeClick", dropListDropped: "dropListDropped", keyManagerTabOut: "keyManagerTabOut", keyManagerChange: "keyManagerChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
189
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
190
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: XListProperty, isStandalone: true, selector: "x-list-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, selectAll: { classPropertyName: "selectAll", publicName: "selectAll", isSignal: true, isRequired: false, transformFunction: null }, selectAllText: { classPropertyName: "selectAllText", publicName: "selectAllText", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, drag: { classPropertyName: "drag", publicName: "drag", isSignal: true, isRequired: false, transformFunction: null }, objectArray: { classPropertyName: "objectArray", publicName: "objectArray", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, footer: { classPropertyName: "footer", publicName: "footer", isSignal: true, isRequired: false, transformFunction: null }, scrollElement: { classPropertyName: "scrollElement", publicName: "scrollElement", isSignal: true, isRequired: false, transformFunction: null }, loadMore: { classPropertyName: "loadMore", publicName: "loadMore", isSignal: true, isRequired: false, transformFunction: null }, loadMoreText: { classPropertyName: "loadMoreText", publicName: "loadMoreText", isSignal: true, isRequired: false, transformFunction: null }, loadingMoreText: { classPropertyName: "loadingMoreText", publicName: "loadingMoreText", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: true, isRequired: false, transformFunction: null }, heightAdaption: { classPropertyName: "heightAdaption", publicName: "heightAdaption", 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 }, keywordText: { classPropertyName: "keywordText", publicName: "keywordText", isSignal: true, isRequired: false, transformFunction: null }, caseSensitive: { classPropertyName: "caseSensitive", publicName: "caseSensitive", isSignal: true, isRequired: false, transformFunction: null }, inPortal: { classPropertyName: "inPortal", publicName: "inPortal", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSelectAll: "onSelectAll", nodeMouseenter: "nodeMouseenter", nodeMouseleave: "nodeMouseleave", nodeClick: "nodeClick", dropListDropped: "dropListDropped", keyManagerTabOut: "keyManagerTabOut", keyManagerChange: "keyManagerChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
191
191
  }
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListProperty, decorators: [{
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListProperty, decorators: [{
193
193
  type: Component,
194
194
  args: [{ selector: `${XListPrefix}-property`, template: '' }]
195
195
  }] });
@@ -280,10 +280,10 @@ class XListOptionProperty {
280
280
  */
281
281
  this.caseSensitive = input(true, { transform: XToBoolean });
282
282
  }
283
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListOptionProperty, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
284
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.1", type: XListOptionProperty, isStandalone: true, selector: "x-list-option-property", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, forbidden: { classPropertyName: "forbidden", publicName: "forbidden", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, openPortal: { classPropertyName: "openPortal", publicName: "openPortal", isSignal: true, isRequired: false, transformFunction: null }, optionClass: { classPropertyName: "optionClass", publicName: "optionClass", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, divided: { classPropertyName: "divided", publicName: "divided", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, leaf: { classPropertyName: "leaf", publicName: "leaf", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", 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 } }, outputs: { active: "activeChange" }, ngImport: i0, template: '', isInline: true }); }
283
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListOptionProperty, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
284
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: XListOptionProperty, isStandalone: true, selector: "x-list-option-property", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, forbidden: { classPropertyName: "forbidden", publicName: "forbidden", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, openPortal: { classPropertyName: "openPortal", publicName: "openPortal", isSignal: true, isRequired: false, transformFunction: null }, optionClass: { classPropertyName: "optionClass", publicName: "optionClass", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, divided: { classPropertyName: "divided", publicName: "divided", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, leaf: { classPropertyName: "leaf", publicName: "leaf", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", 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 } }, outputs: { active: "activeChange" }, ngImport: i0, template: '', isInline: true }); }
285
285
  }
286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListOptionProperty, decorators: [{
286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListOptionProperty, decorators: [{
287
287
  type: Component,
288
288
  args: [{ selector: `${XListOptionPrefix}-property`, template: '' }]
289
289
  }] });
@@ -308,12 +308,12 @@ class XListOptionComponent extends XListOptionProperty {
308
308
  getLabel() {
309
309
  return this.label();
310
310
  }
311
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
312
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: XListOptionComponent, isStandalone: true, selector: "x-list-option", host: { properties: { "attr.role": "this.role" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"x-list-option\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-selected]=\"selected()\"\r\n [class.x-disabled]=\"forbidden()\"\r\n [class.x-open-portal]=\"openPortal()\"\r\n [class.x-active]=\"active()\"\r\n [class.x-list-icon]=\"icon()\"\r\n [class.x-list-divided]=\"divided()\"\r\n>\r\n <div class=\"x-list-option-content\">\r\n @if (nodeTpl()) {\r\n <ng-template *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node() }\"></ng-template>\r\n } @else {\r\n @if (icon()) {\r\n <x-icon [type]=\"icon()\"></x-icon>\r\n }\r\n <span x-keyword [text]=\"keywordText()\" [caseSensitive]=\"caseSensitive()\">{{ label() }}</span>\r\n }\r\n </div>\r\n @if (leaf()) {\r\n <x-icon class=\"x-list-leaf\" type=\"fto-chevron-right\"></x-icon>\r\n }\r\n @if (checked() && !leaf() && selected()) {\r\n <x-icon class=\"x-list-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-list-option{display:block}.x-list-option{border-radius:var(--x-border-radius);display:flex;align-items:center;justify-content:space-between;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-list-option-content{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;-webkit-user-select:none;user-select:none;display:inline-block}.x-list-option:not(:first-child){margin-top:var(--x-border-width)}.x-list-option:hover:not(.x-disabled),.x-list-option.x-active:not(.x-disabled){background-color:var(--x-background-a200)}.x-list-option.x-list-divided{margin-top:.8125rem}.x-list-option.x-list-divided:before{content:\" \";position:absolute;top:0;left:0;width:100%;margin-top:-.5rem;border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-list-option.x-selected:not(.x-disabled){background-color:var(--x-primary-900);color:var(--x-primary)}.x-list-option.x-selected:not(.x-disabled)>x-icon{color:var(--x-primary)}.x-list-option.x-disabled{color:var(--x-text-500);cursor:not-allowed}.x-list-option.x-disabled:hover{background-color:inherit}.x-list-option.x-disabled>span x-icon{color:var(--x-text-500)}.x-list-option-big{padding:0 var(--x-padding-big);height:var(--x-height-big);line-height:var(--x-height-big)}.x-list-option-large{padding:0 var(--x-padding-large);height:var(--x-height-large);line-height:var(--x-height-large)}.x-list-option-medium{padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-list-option-small{padding:0 var(--x-padding-small);height:var(--x-height-small);line-height:var(--x-height-small)}.x-list-option-mini{padding:0 var(--x-padding-mini);height:var(--x-height-mini);line-height:var(--x-height-mini)}body>x-list-option{display:block}body>x-list-option.cdk-drag-preview .x-list-option{border-radius:var(--x-border-radius);display:flex;align-items:center;justify-content:space-between;border:.0625rem dashed transparent;border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}body>x-list-option.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: XKeywordDirective, selector: "[x-keyword]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
311
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
312
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: XListOptionComponent, isStandalone: true, selector: "x-list-option", host: { properties: { "attr.role": "this.role" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"x-list-option\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-selected]=\"selected()\"\r\n [class.x-disabled]=\"forbidden()\"\r\n [class.x-open-portal]=\"openPortal()\"\r\n [class.x-active]=\"active()\"\r\n [class.x-list-icon]=\"icon()\"\r\n [class.x-list-divided]=\"divided()\"\r\n>\r\n <div class=\"x-list-option-content\">\r\n @if (nodeTpl()) {\r\n <ng-template *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node() }\"></ng-template>\r\n } @else {\r\n @if (icon()) {\r\n <x-icon class=\"x-list-option-icon\" [type]=\"icon()\"></x-icon>\r\n }\r\n <span x-keyword [text]=\"keywordText()\" [caseSensitive]=\"caseSensitive()\">{{ label() }}</span>\r\n }\r\n </div>\r\n @if (leaf()) {\r\n <x-icon class=\"x-list-leaf\" type=\"fto-chevron-right\"></x-icon>\r\n }\r\n @if (checked() && !leaf() && selected()) {\r\n <x-icon class=\"x-list-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-list-option{display:block}.x-list-option{border-radius:var(--x-border-radius);display:flex;align-items:center;justify-content:space-between;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-list-option-content{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;-webkit-user-select:none;user-select:none;display:inline-block}.x-list-option-icon{margin-right:.25rem}.x-list-option:not(:first-child){margin-top:var(--x-border-width)}.x-list-option:hover:not(.x-disabled),.x-list-option.x-active:not(.x-disabled){background-color:var(--x-background-a200)}.x-list-option.x-list-divided{position:relative;margin-top:.8125rem}.x-list-option.x-list-divided:before{content:\" \";position:absolute;top:0;left:0;width:100%;margin-top:-.5rem;border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-list-option.x-selected:not(.x-disabled){background-color:var(--x-primary-900);color:var(--x-primary)}.x-list-option.x-selected:not(.x-disabled)>x-icon{color:var(--x-primary)}.x-list-option.x-disabled{color:var(--x-text-500);cursor:not-allowed}.x-list-option.x-disabled:hover{background-color:inherit}.x-list-option.x-disabled>span x-icon{color:var(--x-text-500)}.x-list-option-big{padding:0 var(--x-padding-big);height:var(--x-height-big);line-height:var(--x-height-big)}.x-list-option-large{padding:0 var(--x-padding-large);height:var(--x-height-large);line-height:var(--x-height-large)}.x-list-option-medium{padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-list-option-small{padding:0 var(--x-padding-small);height:var(--x-height-small);line-height:var(--x-height-small)}.x-list-option-mini{padding:0 var(--x-padding-mini);height:var(--x-height-mini);line-height:var(--x-height-mini)}body>x-list-option{display:block}body>x-list-option.cdk-drag-preview .x-list-option{border-radius:var(--x-border-radius);display:flex;align-items:center;justify-content:space-between;border:.0625rem dashed transparent;border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}body>x-list-option.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: XKeywordDirective, selector: "[x-keyword]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
313
313
  }
314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListOptionComponent, decorators: [{
314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListOptionComponent, decorators: [{
315
315
  type: Component,
316
- args: [{ selector: `${XListOptionPrefix}`, imports: [NgClass, NgTemplateOutlet, XIconComponent, XKeywordDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-list-option\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-selected]=\"selected()\"\r\n [class.x-disabled]=\"forbidden()\"\r\n [class.x-open-portal]=\"openPortal()\"\r\n [class.x-active]=\"active()\"\r\n [class.x-list-icon]=\"icon()\"\r\n [class.x-list-divided]=\"divided()\"\r\n>\r\n <div class=\"x-list-option-content\">\r\n @if (nodeTpl()) {\r\n <ng-template *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node() }\"></ng-template>\r\n } @else {\r\n @if (icon()) {\r\n <x-icon [type]=\"icon()\"></x-icon>\r\n }\r\n <span x-keyword [text]=\"keywordText()\" [caseSensitive]=\"caseSensitive()\">{{ label() }}</span>\r\n }\r\n </div>\r\n @if (leaf()) {\r\n <x-icon class=\"x-list-leaf\" type=\"fto-chevron-right\"></x-icon>\r\n }\r\n @if (checked() && !leaf() && selected()) {\r\n <x-icon class=\"x-list-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-list-option{display:block}.x-list-option{border-radius:var(--x-border-radius);display:flex;align-items:center;justify-content:space-between;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-list-option-content{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;-webkit-user-select:none;user-select:none;display:inline-block}.x-list-option:not(:first-child){margin-top:var(--x-border-width)}.x-list-option:hover:not(.x-disabled),.x-list-option.x-active:not(.x-disabled){background-color:var(--x-background-a200)}.x-list-option.x-list-divided{margin-top:.8125rem}.x-list-option.x-list-divided:before{content:\" \";position:absolute;top:0;left:0;width:100%;margin-top:-.5rem;border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-list-option.x-selected:not(.x-disabled){background-color:var(--x-primary-900);color:var(--x-primary)}.x-list-option.x-selected:not(.x-disabled)>x-icon{color:var(--x-primary)}.x-list-option.x-disabled{color:var(--x-text-500);cursor:not-allowed}.x-list-option.x-disabled:hover{background-color:inherit}.x-list-option.x-disabled>span x-icon{color:var(--x-text-500)}.x-list-option-big{padding:0 var(--x-padding-big);height:var(--x-height-big);line-height:var(--x-height-big)}.x-list-option-large{padding:0 var(--x-padding-large);height:var(--x-height-large);line-height:var(--x-height-large)}.x-list-option-medium{padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-list-option-small{padding:0 var(--x-padding-small);height:var(--x-height-small);line-height:var(--x-height-small)}.x-list-option-mini{padding:0 var(--x-padding-mini);height:var(--x-height-mini);line-height:var(--x-height-mini)}body>x-list-option{display:block}body>x-list-option.cdk-drag-preview .x-list-option{border-radius:var(--x-border-radius);display:flex;align-items:center;justify-content:space-between;border:.0625rem dashed transparent;border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}body>x-list-option.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
316
+ args: [{ selector: `${XListOptionPrefix}`, imports: [NgClass, NgTemplateOutlet, XIconComponent, XKeywordDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-list-option\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-selected]=\"selected()\"\r\n [class.x-disabled]=\"forbidden()\"\r\n [class.x-open-portal]=\"openPortal()\"\r\n [class.x-active]=\"active()\"\r\n [class.x-list-icon]=\"icon()\"\r\n [class.x-list-divided]=\"divided()\"\r\n>\r\n <div class=\"x-list-option-content\">\r\n @if (nodeTpl()) {\r\n <ng-template *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node() }\"></ng-template>\r\n } @else {\r\n @if (icon()) {\r\n <x-icon class=\"x-list-option-icon\" [type]=\"icon()\"></x-icon>\r\n }\r\n <span x-keyword [text]=\"keywordText()\" [caseSensitive]=\"caseSensitive()\">{{ label() }}</span>\r\n }\r\n </div>\r\n @if (leaf()) {\r\n <x-icon class=\"x-list-leaf\" type=\"fto-chevron-right\"></x-icon>\r\n }\r\n @if (checked() && !leaf() && selected()) {\r\n <x-icon class=\"x-list-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-list-option{display:block}.x-list-option{border-radius:var(--x-border-radius);display:flex;align-items:center;justify-content:space-between;border:.0625rem dashed transparent;transition:border-color var(--x-animation-duration-base),background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-list-option-content{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;-webkit-user-select:none;user-select:none;display:inline-block}.x-list-option-icon{margin-right:.25rem}.x-list-option:not(:first-child){margin-top:var(--x-border-width)}.x-list-option:hover:not(.x-disabled),.x-list-option.x-active:not(.x-disabled){background-color:var(--x-background-a200)}.x-list-option.x-list-divided{position:relative;margin-top:.8125rem}.x-list-option.x-list-divided:before{content:\" \";position:absolute;top:0;left:0;width:100%;margin-top:-.5rem;border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-list-option.x-selected:not(.x-disabled){background-color:var(--x-primary-900);color:var(--x-primary)}.x-list-option.x-selected:not(.x-disabled)>x-icon{color:var(--x-primary)}.x-list-option.x-disabled{color:var(--x-text-500);cursor:not-allowed}.x-list-option.x-disabled:hover{background-color:inherit}.x-list-option.x-disabled>span x-icon{color:var(--x-text-500)}.x-list-option-big{padding:0 var(--x-padding-big);height:var(--x-height-big);line-height:var(--x-height-big)}.x-list-option-large{padding:0 var(--x-padding-large);height:var(--x-height-large);line-height:var(--x-height-large)}.x-list-option-medium{padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-list-option-small{padding:0 var(--x-padding-small);height:var(--x-height-small);line-height:var(--x-height-small)}.x-list-option-mini{padding:0 var(--x-padding-mini);height:var(--x-height-mini);line-height:var(--x-height-mini)}body>x-list-option{display:block}body>x-list-option.cdk-drag-preview .x-list-option{border-radius:var(--x-border-radius);display:flex;align-items:center;justify-content:space-between;border:.0625rem dashed transparent;border-color:var(--x-border);color:var(--x-text-400);background-color:var(--x-background-a100);opacity:.9}body>x-list-option.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
317
317
  }], ctorParameters: () => [], propDecorators: { role: [{
318
318
  type: HostBinding,
319
319
  args: ['attr.role']
@@ -342,10 +342,10 @@ class XListDropGroup {
342
342
  ngOnDestroy() {
343
343
  this.dropLists.clear();
344
344
  }
345
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListDropGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
346
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.1", type: XListDropGroup, isStandalone: true, selector: "[xListDropGroup]", inputs: { disabled: { classPropertyName: "disabled", publicName: "xListDropGroupDisabled", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: X_LIST_DROP_GROUP, useExisting: XListDropGroup }], ngImport: i0 }); }
345
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListDropGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
346
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.0", type: XListDropGroup, isStandalone: true, selector: "[xListDropGroup]", inputs: { disabled: { classPropertyName: "disabled", publicName: "xListDropGroupDisabled", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: X_LIST_DROP_GROUP, useExisting: XListDropGroup }], ngImport: i0 }); }
347
347
  }
348
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListDropGroup, decorators: [{
348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListDropGroup, decorators: [{
349
349
  type: Directive,
350
350
  args: [{
351
351
  selector: '[xListDropGroup]',
@@ -413,9 +413,9 @@ class XListComponent extends XListProperty {
413
413
  };
414
414
  this.itemSize = computed(() => this.itemSizeMap[this.size()]);
415
415
  this.isEmpty = computed(() => XIsEmpty(this.nodes()));
416
- this.getSelectAllText = computed(() => this.selectAllText() || this.locale().selectAllText);
417
- this.getLoadMoreText = computed(() => this.loadMoreText() || this.locale().loadMoreText);
418
- this.getLoadingMoreText = computed(() => this.loadingMoreText() || this.locale().loadingMoreText);
416
+ this.getSelectAllText = computed(() => this.selectAllText() || this.locale()?.selectAllText);
417
+ this.getLoadMoreText = computed(() => this.loadMoreText() || this.locale()?.loadMoreText);
418
+ this.getLoadingMoreText = computed(() => this.loadingMoreText() || this.locale()?.loadingMoreText);
419
419
  this.minBufferPxSignal = computed(() => {
420
420
  if (this.virtualScroll() && this.heightAdaption()) {
421
421
  return this.getVirtualScrollHeight();
@@ -432,7 +432,7 @@ class XListComponent extends XListProperty {
432
432
  return this.maxBufferPx();
433
433
  }
434
434
  });
435
- afterRender({
435
+ afterEveryRender({
436
436
  mixedReadWrite: () => {
437
437
  if (this.virtualScroll() && this.scrollHeight()) {
438
438
  this.virtualBody()?.checkViewportSize();
@@ -710,10 +710,10 @@ class XListComponent extends XListProperty {
710
710
  if (num > -1)
711
711
  this.nodes()[num].active = false;
712
712
  }
713
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
714
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: XListComponent, isStandalone: true, selector: "x-list", host: { listeners: { "keydown": "keydown($event)" }, properties: { "attr.role": "this.role", "attr.tabindex": "this.tabindex" } }, providers: [XValueAccessor(XListComponent)], viewQueries: [{ propertyName: "headerRef", first: true, predicate: ["headerRef"], descendants: true, isSignal: true }, { propertyName: "footerRef", first: true, predicate: ["footerRef"], descendants: true, isSignal: true }, { propertyName: "selectAllRef", first: true, predicate: ["selectAllRef"], descendants: true, isSignal: true }, { propertyName: "loadMoreRef", first: true, predicate: ["loadMoreRef"], descendants: true, isSignal: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true, isSignal: true }, { propertyName: "dropList", first: true, predicate: CdkDropList, descendants: true, isSignal: true }, { propertyName: "options", predicate: XListOptionComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-list\" [class.x-list-portal]=\"inPortal()\" [ngClass]=\"classMap()\">\r\n @if (header()) {\r\n <div #headerRef class=\"x-list-header\" *xOutlet=\"header()\">{{ header() }}</div>\r\n }\r\n @if (selectAll() && multiple() === 0) {\r\n <div #selectAllRef class=\"x-list-select-all\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [label]=\"getSelectAllText()\"\r\n [checked]=\"true\"\r\n [selected]=\"isSelectAll()\"\r\n (click)=\"onSelectAllNodes()\"\r\n ></x-list-option>\r\n </div>\r\n }\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 class=\"x-list-content\"\r\n [style.height.px]=\"getVirtualScrollHeight()\"\r\n [hidden]=\"isEmpty()\"\r\n >\r\n <x-list-option\r\n *cdkVirtualFor=\"let node of nodes(); trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-list-content\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes(); track node.id) {\r\n <x-list-option\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n }\r\n </div>\r\n }\r\n @if (loadMore() && !isEmpty()) {\r\n <div #loadMoreRef class=\"x-list-load-more\">\r\n <x-list-option [size]=\"size()\" [nodeTpl]=\"loadMoreTpl\" (click)=\"onLoadMore()\"></x-list-option>\r\n </div>\r\n <ng-template #loadMoreTpl>\r\n @if (icon() && iconSpin()) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\"></x-icon>\r\n }\r\n {{ icon() && iconSpin() ? getLoadingMoreText() : getLoadMoreText() }}</ng-template\r\n >\r\n }\r\n @if (isEmpty()) {\r\n <x-empty></x-empty>\r\n }\r\n @if (footer()) {\r\n <div #footerRef class=\"x-list-footer\" *xOutlet=\"footer()\">{{ footer() }}</div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-list{width:100%}x-list:focus{outline:none}.x-list{margin:0;padding:0}.x-list{width:100%}.x-list:focus{outline:none}.x-list-select-all{cursor:pointer;font-weight:700}.x-list-load-more,.x-list-content{cursor:pointer}.x-list-content.cdk-drop-list-dragging x-list-option.cdk-drag-placeholder .x-list-option{border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}.x-list-content.cdk-drop-list-dragging x-list-option:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-list-header,.x-list-footer{font-weight:700}.x-list-portal{padding:.125rem .25rem}.x-list-portal x-list-option .x-list-option{padding:0 calc(var(--x-padding-medium) - .5rem);margin:.125rem 0;border-radius:var(--x-border-small-radius);transition:background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-list-leaf,.x-list-checked{right:0;margin-left:.4rem;color:var(--x-text-400)}.x-list-icon>span x-icon{color:var(--x-text-300);margin-right:.25rem}.x-list>x-empty{margin:1rem;display:block}.x-list-big .x-list-header,.x-list-big .x-list-footer{padding:0 var(--x-padding-big);height:var(--x-height-big);line-height:var(--x-height-big)}.x-list-large .x-list-header,.x-list-large .x-list-footer{padding:0 var(--x-padding-large);height:var(--x-height-large);line-height:var(--x-height-large)}.x-list-medium .x-list-header,.x-list-medium .x-list-footer{padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-list-small .x-list-header,.x-list-small .x-list-footer{padding:0 var(--x-padding-small);height:var(--x-height-small);line-height:var(--x-height-small)}.x-list-mini .x-list-header,.x-list-mini .x-list-footer{padding:0 var(--x-padding-mini);height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "component", type: XEmptyComponent, selector: "x-empty" }, { kind: "component", type: XListOptionComponent, selector: "x-list-option" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
713
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
714
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: XListComponent, isStandalone: true, selector: "x-list", host: { listeners: { "keydown": "keydown($event)" }, properties: { "attr.role": "this.role", "attr.tabindex": "this.tabindex" } }, providers: [XValueAccessor(XListComponent)], viewQueries: [{ propertyName: "headerRef", first: true, predicate: ["headerRef"], descendants: true, isSignal: true }, { propertyName: "footerRef", first: true, predicate: ["footerRef"], descendants: true, isSignal: true }, { propertyName: "selectAllRef", first: true, predicate: ["selectAllRef"], descendants: true, isSignal: true }, { propertyName: "loadMoreRef", first: true, predicate: ["loadMoreRef"], descendants: true, isSignal: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true, isSignal: true }, { propertyName: "dropList", first: true, predicate: CdkDropList, descendants: true, isSignal: true }, { propertyName: "options", predicate: XListOptionComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-list\" [class.x-list-portal]=\"inPortal()\" [ngClass]=\"classMap()\">\r\n @if (header()) {\r\n <div #headerRef class=\"x-list-header\" *xOutlet=\"header()\">{{ header() }}</div>\r\n }\r\n @if (selectAll() && multiple() === 0) {\r\n <div #selectAllRef class=\"x-list-select-all\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [label]=\"getSelectAllText()\"\r\n [checked]=\"true\"\r\n [selected]=\"isSelectAll()\"\r\n (click)=\"onSelectAllNodes()\"\r\n ></x-list-option>\r\n </div>\r\n }\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 class=\"x-list-content\"\r\n [style.height.px]=\"getVirtualScrollHeight()\"\r\n [hidden]=\"isEmpty()\"\r\n >\r\n <x-list-option\r\n *cdkVirtualFor=\"let node of nodes(); trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [divided]=\"node.divided!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-list-content\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes(); track node.id) {\r\n <x-list-option\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [divided]=\"node.divided!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n }\r\n </div>\r\n }\r\n @if (loadMore() && !isEmpty()) {\r\n <div #loadMoreRef class=\"x-list-load-more\">\r\n <x-list-option [size]=\"size()\" [nodeTpl]=\"loadMoreTpl\" (click)=\"onLoadMore()\"></x-list-option>\r\n </div>\r\n <ng-template #loadMoreTpl>\r\n @if (icon() && iconSpin()) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\"></x-icon>\r\n }\r\n {{ icon() && iconSpin() ? getLoadingMoreText() : getLoadMoreText() }}</ng-template\r\n >\r\n }\r\n @if (isEmpty()) {\r\n <x-empty></x-empty>\r\n }\r\n @if (footer()) {\r\n <div #footerRef class=\"x-list-footer\" *xOutlet=\"footer()\">{{ footer() }}</div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-list{width:100%}x-list:focus{outline:none}.x-list{margin:0;padding:0}.x-list{width:100%}.x-list:focus{outline:none}.x-list-select-all{cursor:pointer;font-weight:700}.x-list-load-more,.x-list-content{cursor:pointer}.x-list-content.cdk-drop-list-dragging x-list-option.cdk-drag-placeholder .x-list-option{border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}.x-list-content.cdk-drop-list-dragging x-list-option:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-list-header,.x-list-footer{font-weight:700}.x-list-portal{padding:.125rem .25rem}.x-list-portal x-list-option .x-list-option{padding:0 calc(var(--x-padding-medium) - .5rem);margin:.125rem 0;border-radius:var(--x-border-small-radius);transition:background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-list-leaf,.x-list-checked{right:0;margin-left:.4rem;color:var(--x-text-400)}.x-list-icon>span x-icon{color:var(--x-text-300);margin-right:.25rem}.x-list>x-empty{margin:1rem;display:block}.x-list-big .x-list-header,.x-list-big .x-list-footer{padding:0 var(--x-padding-big);height:var(--x-height-big);line-height:var(--x-height-big)}.x-list-large .x-list-header,.x-list-large .x-list-footer{padding:0 var(--x-padding-large);height:var(--x-height-large);line-height:var(--x-height-large)}.x-list-medium .x-list-header,.x-list-medium .x-list-footer{padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-list-small .x-list-header,.x-list-small .x-list-footer{padding:0 var(--x-padding-small);height:var(--x-height-small);line-height:var(--x-height-small)}.x-list-mini .x-list-header,.x-list-mini .x-list-footer{padding:0 var(--x-padding-mini);height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "component", type: XEmptyComponent, selector: "x-empty" }, { kind: "component", type: XListOptionComponent, selector: "x-list-option" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
715
715
  }
716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListComponent, decorators: [{
716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListComponent, decorators: [{
717
717
  type: Component,
718
718
  args: [{ selector: `${XListPrefix}`, imports: [
719
719
  NgClass,
@@ -726,7 +726,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
726
726
  XEmptyComponent,
727
727
  XListOptionComponent,
728
728
  XOutletDirective
729
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XListComponent)], template: "<div class=\"x-list\" [class.x-list-portal]=\"inPortal()\" [ngClass]=\"classMap()\">\r\n @if (header()) {\r\n <div #headerRef class=\"x-list-header\" *xOutlet=\"header()\">{{ header() }}</div>\r\n }\r\n @if (selectAll() && multiple() === 0) {\r\n <div #selectAllRef class=\"x-list-select-all\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [label]=\"getSelectAllText()\"\r\n [checked]=\"true\"\r\n [selected]=\"isSelectAll()\"\r\n (click)=\"onSelectAllNodes()\"\r\n ></x-list-option>\r\n </div>\r\n }\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 class=\"x-list-content\"\r\n [style.height.px]=\"getVirtualScrollHeight()\"\r\n [hidden]=\"isEmpty()\"\r\n >\r\n <x-list-option\r\n *cdkVirtualFor=\"let node of nodes(); trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-list-content\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes(); track node.id) {\r\n <x-list-option\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n }\r\n </div>\r\n }\r\n @if (loadMore() && !isEmpty()) {\r\n <div #loadMoreRef class=\"x-list-load-more\">\r\n <x-list-option [size]=\"size()\" [nodeTpl]=\"loadMoreTpl\" (click)=\"onLoadMore()\"></x-list-option>\r\n </div>\r\n <ng-template #loadMoreTpl>\r\n @if (icon() && iconSpin()) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\"></x-icon>\r\n }\r\n {{ icon() && iconSpin() ? getLoadingMoreText() : getLoadMoreText() }}</ng-template\r\n >\r\n }\r\n @if (isEmpty()) {\r\n <x-empty></x-empty>\r\n }\r\n @if (footer()) {\r\n <div #footerRef class=\"x-list-footer\" *xOutlet=\"footer()\">{{ footer() }}</div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-list{width:100%}x-list:focus{outline:none}.x-list{margin:0;padding:0}.x-list{width:100%}.x-list:focus{outline:none}.x-list-select-all{cursor:pointer;font-weight:700}.x-list-load-more,.x-list-content{cursor:pointer}.x-list-content.cdk-drop-list-dragging x-list-option.cdk-drag-placeholder .x-list-option{border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}.x-list-content.cdk-drop-list-dragging x-list-option:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-list-header,.x-list-footer{font-weight:700}.x-list-portal{padding:.125rem .25rem}.x-list-portal x-list-option .x-list-option{padding:0 calc(var(--x-padding-medium) - .5rem);margin:.125rem 0;border-radius:var(--x-border-small-radius);transition:background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-list-leaf,.x-list-checked{right:0;margin-left:.4rem;color:var(--x-text-400)}.x-list-icon>span x-icon{color:var(--x-text-300);margin-right:.25rem}.x-list>x-empty{margin:1rem;display:block}.x-list-big .x-list-header,.x-list-big .x-list-footer{padding:0 var(--x-padding-big);height:var(--x-height-big);line-height:var(--x-height-big)}.x-list-large .x-list-header,.x-list-large .x-list-footer{padding:0 var(--x-padding-large);height:var(--x-height-large);line-height:var(--x-height-large)}.x-list-medium .x-list-header,.x-list-medium .x-list-footer{padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-list-small .x-list-header,.x-list-small .x-list-footer{padding:0 var(--x-padding-small);height:var(--x-height-small);line-height:var(--x-height-small)}.x-list-mini .x-list-header,.x-list-mini .x-list-footer{padding:0 var(--x-padding-mini);height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"] }]
729
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XListComponent)], template: "<div class=\"x-list\" [class.x-list-portal]=\"inPortal()\" [ngClass]=\"classMap()\">\r\n @if (header()) {\r\n <div #headerRef class=\"x-list-header\" *xOutlet=\"header()\">{{ header() }}</div>\r\n }\r\n @if (selectAll() && multiple() === 0) {\r\n <div #selectAllRef class=\"x-list-select-all\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [label]=\"getSelectAllText()\"\r\n [checked]=\"true\"\r\n [selected]=\"isSelectAll()\"\r\n (click)=\"onSelectAllNodes()\"\r\n ></x-list-option>\r\n </div>\r\n }\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 class=\"x-list-content\"\r\n [style.height.px]=\"getVirtualScrollHeight()\"\r\n [hidden]=\"isEmpty()\"\r\n >\r\n <x-list-option\r\n *cdkVirtualFor=\"let node of nodes(); trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [divided]=\"node.divided!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-list-content\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes(); track node.id) {\r\n <x-list-option\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [divided]=\"node.divided!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n }\r\n </div>\r\n }\r\n @if (loadMore() && !isEmpty()) {\r\n <div #loadMoreRef class=\"x-list-load-more\">\r\n <x-list-option [size]=\"size()\" [nodeTpl]=\"loadMoreTpl\" (click)=\"onLoadMore()\"></x-list-option>\r\n </div>\r\n <ng-template #loadMoreTpl>\r\n @if (icon() && iconSpin()) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\"></x-icon>\r\n }\r\n {{ icon() && iconSpin() ? getLoadingMoreText() : getLoadMoreText() }}</ng-template\r\n >\r\n }\r\n @if (isEmpty()) {\r\n <x-empty></x-empty>\r\n }\r\n @if (footer()) {\r\n <div #footerRef class=\"x-list-footer\" *xOutlet=\"footer()\">{{ footer() }}</div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-list{width:100%}x-list:focus{outline:none}.x-list{margin:0;padding:0}.x-list{width:100%}.x-list:focus{outline:none}.x-list-select-all{cursor:pointer;font-weight:700}.x-list-load-more,.x-list-content{cursor:pointer}.x-list-content.cdk-drop-list-dragging x-list-option.cdk-drag-placeholder .x-list-option{border-color:var(--x-primary);color:var(--x-primary);background-color:var(--x-background);opacity:.8}.x-list-content.cdk-drop-list-dragging x-list-option:not(.cdk-drag-placeholder){transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}.x-list-header,.x-list-footer{font-weight:700}.x-list-portal{padding:.125rem .25rem}.x-list-portal x-list-option .x-list-option{padding:0 calc(var(--x-padding-medium) - .5rem);margin:.125rem 0;border-radius:var(--x-border-small-radius);transition:background-color var(--x-animation-duration-base),color var(--x-animation-duration-base)}.x-list-leaf,.x-list-checked{right:0;margin-left:.4rem;color:var(--x-text-400)}.x-list-icon>span x-icon{color:var(--x-text-300);margin-right:.25rem}.x-list>x-empty{margin:1rem;display:block}.x-list-big .x-list-header,.x-list-big .x-list-footer{padding:0 var(--x-padding-big);height:var(--x-height-big);line-height:var(--x-height-big)}.x-list-large .x-list-header,.x-list-large .x-list-footer{padding:0 var(--x-padding-large);height:var(--x-height-large);line-height:var(--x-height-large)}.x-list-medium .x-list-header,.x-list-medium .x-list-footer{padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-list-small .x-list-header,.x-list-small .x-list-footer{padding:0 var(--x-padding-small);height:var(--x-height-small);line-height:var(--x-height-small)}.x-list-mini .x-list-header,.x-list-mini .x-list-footer{padding:0 var(--x-padding-mini);height:var(--x-height-mini);line-height:var(--x-height-mini)}\n"] }]
730
730
  }], ctorParameters: () => [], propDecorators: { options: [{
731
731
  type: ViewChildren,
732
732
  args: [XListOptionComponent]
@@ -742,11 +742,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
742
742
  }] } });
743
743
 
744
744
  class XListModule {
745
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
746
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.1", ngImport: i0, type: XListModule, imports: [XListComponent, XListDropGroup, XListOptionComponent], exports: [XListComponent, XListDropGroup, XListOptionComponent] }); }
747
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListModule, imports: [XListComponent, XListOptionComponent] }); }
745
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
746
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0", ngImport: i0, type: XListModule, imports: [XListComponent, XListDropGroup, XListOptionComponent], exports: [XListComponent, XListDropGroup, XListOptionComponent] }); }
747
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListModule, imports: [XListComponent, XListOptionComponent] }); }
748
748
  }
749
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XListModule, decorators: [{
749
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XListModule, decorators: [{
750
750
  type: NgModule,
751
751
  args: [{
752
752
  exports: [XListComponent, XListDropGroup, XListOptionComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-list.mjs","sources":["../../../../lib/ng-nest/ui/list/list.property.ts","../../../../lib/ng-nest/ui/list/list-option.component.ts","../../../../lib/ng-nest/ui/list/list-option.component.html","../../../../lib/ng-nest/ui/list/list-drop-group.directive.ts","../../../../lib/ng-nest/ui/list/list.component.ts","../../../../lib/ng-nest/ui/list/list.component.html","../../../../lib/ng-nest/ui/list/list.module.ts","../../../../lib/ng-nest/ui/list/ng-nest-ui-list.ts"],"sourcesContent":["import {\r\n XData,\r\n XParentIdentityProperty,\r\n XNumber,\r\n XBoolean,\r\n XTemplate,\r\n XSize,\r\n XToNumber,\r\n XToBoolean\r\n} from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, ElementRef, input, output, model } from '@angular/core';\r\nimport { XFormControlFunction } from '@ng-nest/ui/base-form';\r\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\r\n\r\n/**\r\n * List\r\n * @selector x-list\r\n * @decorator component\r\n */\r\nexport const XListPrefix = 'x-list';\r\nconst X_LIST_CONFIG_NAME = 'list';\r\n\r\n/**\r\n * List Property\r\n */\r\n@Component({ selector: `${XListPrefix}-property`, template: '' })\r\nexport class XListProperty extends XFormControlFunction(X_LIST_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 列表数据\r\n * @en_US List data\r\n */\r\n readonly data = input<XData<XListNode>>([]);\r\n /**\r\n * @zh_CN 多选个数,设置为0,不限制选择个数\r\n * @en_US Multiple choice\r\n */\r\n readonly multiple = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 多选添加全选功能,适用于 multiple=0\r\n * @en_US Multi choice to add full selection function\r\n */\r\n readonly selectAll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 全选的文字\r\n * @en_US Selected all text\r\n * @default '全选'\r\n */\r\n readonly selectAllText = input<string>(this.config?.selectAllText ?? '');\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n readonly checked = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 拖动\r\n * @en_US Drag\r\n */\r\n readonly drag = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当开启多选的时候,ngModel 的值为对象数组\r\n * @en_US When multiple selection is enabled, the value of ngmodel is an array of objects\r\n */\r\n readonly objectArray = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n readonly nodeTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 列表头部\r\n * @en_US List header\r\n */\r\n readonly header = input<XTemplate>();\r\n /**\r\n * @zh_CN 列表底部\r\n * @en_US List footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 滚动区域元素\r\n * @en_US Rolling area element\r\n */\r\n readonly scrollElement = input<HTMLElement>();\r\n /**\r\n * @zh_CN 加载更多\r\n * @en_US load more\r\n */\r\n readonly loadMore = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 加载更多的文字\r\n * @en_US Load more text\r\n * @default '加载更多'\r\n */\r\n readonly loadMoreText = input<string>(this.config?.loadMoreText ?? '');\r\n /**\r\n * @zh_CN 正在加载中的文字\r\n * @en_US Loading\r\n * @default '正在加载中'\r\n */\r\n readonly loadingMoreText = input<string>(this.config?.loadingMoreText ?? '');\r\n /**\r\n * @zh_CN 开启虚拟滚动,不支持节点拖动功能\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(this.config?.virtualScroll ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 虚拟滚动高度, 实际会去掉头尾、全选、更多的高度\r\n * @en_US The virtual rolling height will actually remove the head and end, the full selection, more height\r\n */\r\n readonly scrollHeight = input<number, XNumber>(this.config?.scrollHeight ?? 400, { transform: XToNumber });\r\n /**\r\n * @zh_CN 虚拟滚动高度自适应指定元素\r\n * @en_US virtual rolling height follows the specified object\r\n */\r\n readonly heightAdaption = input<ElementRef<HTMLElement> | HTMLElement>();\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 关键字高亮\r\n * @en_US Keyword highlighting\r\n */\r\n readonly keywordText = input<string | string[]>();\r\n /**\r\n * @zh_CN 匹配关键字区分大小写\r\n * @en_US Case-sensitive\r\n */\r\n readonly caseSensitive = input<boolean, XBoolean>(this.config?.caseSensitive ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 在弹框中选择时的样式,根据尺寸来决定\r\n * @en_US The style selected in the pop-up box is determined by size\r\n */\r\n readonly inPortal = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN Full event\r\n * @en_US 全选事件\r\n */\r\n readonly onSelectAll = output<boolean>();\r\n /**\r\n * @zh_CN 节点 mouseenter 事件\r\n * @en_US Node mouseenter event\r\n */\r\n readonly nodeMouseenter = output<XListNode>();\r\n /**\r\n * @zh_CN 节点 mouseleave 事件\r\n * @en_US Node mouseleave event\r\n */\r\n readonly nodeMouseleave = output<XListNode>();\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeClick = output<XListNode>();\r\n /**\r\n * @zh_CN 拖动结束事件\r\n * @en_US Drag the end\r\n */\r\n readonly dropListDropped = output<XListDragDrop>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n readonly keyManagerTabOut = output<void>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n readonly keyManagerChange = output<number>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n}\r\n\r\n/**\r\n * @zh_CN List 数据对象\r\n * @en_US List data object\r\n */\r\nexport interface XListNode extends XParentIdentityProperty<XListNode> {\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Iicon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 分割线\r\n * @en_US Split line\r\n */\r\n divided?: boolean;\r\n /**\r\n * @zh_CN 事件\r\n * @en_US Event\r\n */\r\n event?: Event;\r\n /**\r\n * @zh_CN 悬停\r\n * @en_US Hover\r\n */\r\n hover?: boolean;\r\n /**\r\n * @zh_CN 打开弹框\r\n * @en_US open portal\r\n */\r\n openPortal?: boolean;\r\n /**\r\n * @zh_CN 激活\r\n * @en_US Active\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 检查更新\r\n * @en_US Check for updates\r\n */\r\n change?: Function;\r\n}\r\n\r\n/**\r\n * List Option\r\n * @selector x-list-option\r\n * @decorator component\r\n */\r\nexport const XListOptionPrefix = 'x-list-option';\r\n\r\n/**\r\n * List Option Property\r\n */\r\n@Component({ selector: `${XListOptionPrefix}-property`, template: '' })\r\nexport class XListOptionProperty {\r\n /**\r\n * @zh_CN 节点参数\r\n * @en_US Node param\r\n */\r\n readonly node = input<XListNode>();\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n readonly checked = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n readonly nodeTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 选中\r\n * @en_US selected\r\n */\r\n readonly selected = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US forbidden\r\n */\r\n readonly forbidden = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 激活\r\n * @en_US active\r\n */\r\n readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 打开弹框\r\n * @en_US open portal\r\n */\r\n readonly openPortal = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 自定义数据对象样式\r\n * @en_US Customize data object styles\r\n */\r\n readonly optionClass = input<(node: XListNode) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 图标\r\n * @en_US icon\r\n */\r\n readonly icon = input<string>();\r\n /**\r\n * @zh_CN 分割线\r\n * @en_US Split line\r\n */\r\n readonly divided = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US label\r\n */\r\n readonly label = input<string>();\r\n /**\r\n * @zh_CN 叶子节点\r\n * @en_US leaf\r\n */\r\n readonly leaf = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly size = input<XSize>('medium');\r\n /**\r\n * @zh_CN 关键字高亮\r\n * @en_US Keyword highlighting\r\n */\r\n readonly keywordText = input<string | string[]>();\r\n /**\r\n * @zh_CN 匹配关键字区分大小写\r\n * @en_US Case-sensitive\r\n */\r\n readonly caseSensitive = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n}\r\n\r\n/**\r\n * @zh_CN 拖动相关的数据\r\n * @en_US Drag related data\r\n */\r\nexport type XListDragDrop = {\r\n /**\r\n * @zh_CN 节点数据集合\r\n * @en_US Node data collection\r\n */\r\n data: XListNode[];\r\n /**\r\n * @zh_CN 当前拖动节点\r\n * @en_US The current drag nodes\r\n */\r\n current: XListNode;\r\n /**\r\n * @zh_CN 当前拖动节点的索引\r\n * @en_US The current drag index of the node\r\n */\r\n currentIndex: number;\r\n /**\r\n * @zh_CN 当前拖动节点事件\r\n * @en_US The current drag nodes event\r\n */\r\n event: CdkDragDrop<XListNode[]>;\r\n};\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n ViewEncapsulation,\r\n computed,\r\n effect,\r\n inject\r\n} from '@angular/core';\r\nimport { XListOptionPrefix, XListOptionProperty } from './list.property';\r\nimport { Highlightable } from '@angular/cdk/a11y';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XKeywordDirective } from '@ng-nest/ui/keyword';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XListOptionPrefix}`,\r\n imports: [NgClass, NgTemplateOutlet, XIconComponent, XKeywordDirective],\r\n templateUrl: './list-option.component.html',\r\n styleUrls: ['./list-option.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XListOptionComponent extends XListOptionProperty implements Highlightable {\r\n @HostBinding('attr.role') role = 'option';\r\n elementRef = inject(ElementRef);\r\n classMap = computed(() => ({\r\n [`${XListOptionPrefix}-${this.size()}`]: this.size() ? true : false\r\n }));\r\n disabled = false;\r\n\r\n constructor() {\r\n super();\r\n effect(() => (this.disabled = this.forbidden()));\r\n }\r\n\r\n setActiveStyles(): void {\r\n this.active.set(true);\r\n }\r\n setInactiveStyles(): void {\r\n this.active.set(false);\r\n }\r\n\r\n getLabel() {\r\n return this.label() as string;\r\n }\r\n}\r\n","<div\r\n class=\"x-list-option\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-selected]=\"selected()\"\r\n [class.x-disabled]=\"forbidden()\"\r\n [class.x-open-portal]=\"openPortal()\"\r\n [class.x-active]=\"active()\"\r\n [class.x-list-icon]=\"icon()\"\r\n [class.x-list-divided]=\"divided()\"\r\n>\r\n <div class=\"x-list-option-content\">\r\n @if (nodeTpl()) {\r\n <ng-template *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node() }\"></ng-template>\r\n } @else {\r\n @if (icon()) {\r\n <x-icon [type]=\"icon()\"></x-icon>\r\n }\r\n <span x-keyword [text]=\"keywordText()\" [caseSensitive]=\"caseSensitive()\">{{ label() }}</span>\r\n }\r\n </div>\r\n @if (leaf()) {\r\n <x-icon class=\"x-list-leaf\" type=\"fto-chevron-right\"></x-icon>\r\n }\r\n @if (checked() && !leaf() && selected()) {\r\n <x-icon class=\"x-list-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n","import { coerceArray } from '@angular/cdk/coercion';\r\nimport { CdkDropList } from '@angular/cdk/drag-drop';\r\nimport { Directive, InjectionToken, OnDestroy, input } from '@angular/core';\r\nimport { XBoolean, XToBoolean } from '@ng-nest/ui/core';\r\n\r\nexport const X_LIST_DROP_GROUP = new InjectionToken<XListDropGroup>('XListDropGroup');\r\n\r\n@Directive({\r\n selector: '[xListDropGroup]',\r\n providers: [{ provide: X_LIST_DROP_GROUP, useExisting: XListDropGroup }]\r\n})\r\nexport class XListDropGroup implements OnDestroy {\r\n readonly dropLists = new Set<CdkDropList>();\r\n\r\n disabled = input<boolean, XBoolean>(false, { transform: XToBoolean, alias: 'xListDropGroupDisabled' });\r\n\r\n setConnectedTo() {\r\n this.dropLists.forEach((x) => {\r\n this.dropLists.forEach((y) => {\r\n if (!y.connectedTo) {\r\n y.connectedTo = [x];\r\n } else {\r\n if (!coerceArray(y.connectedTo).includes(x)) {\r\n coerceArray(y.connectedTo).push(x);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.dropLists.clear();\r\n }\r\n}\r\n","import { Subject, Subscription } from 'rxjs';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n QueryList,\r\n ElementRef,\r\n HostBinding,\r\n HostListener,\r\n ViewChildren,\r\n inject,\r\n afterRender,\r\n viewChild,\r\n signal,\r\n computed\r\n} from '@angular/core';\r\nimport { XListPrefix, XListNode, XListProperty } from './list.property';\r\nimport { XIsChange, XSetData, XIsEmpty, XIsUndefined, XIsNull, XResize, XResizeObserver } from '@ng-nest/ui/core';\r\nimport { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\r\nimport { ENTER } from '@angular/cdk/keycodes';\r\nimport { map, takeUntil, debounceTime } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XI18nList, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { XListDropGroup, X_LIST_DROP_GROUP } from './list-drop-group.directive';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XEmptyComponent } from '@ng-nest/ui/empty';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XListPrefix}`,\r\n imports: [\r\n NgClass,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CdkDropList,\r\n CdkDrag,\r\n ScrollingModule,\r\n XIconComponent,\r\n XEmptyComponent,\r\n XListOptionComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XListComponent)]\r\n})\r\nexport class XListComponent extends XListProperty implements OnChanges {\r\n private unSubject = new Subject<void>();\r\n private i18n = inject(XI18nService);\r\n private group = inject<XListDropGroup>(X_LIST_DROP_GROUP, { optional: true, skipSelf: true });\r\n nodes = signal<XListNode[]>([]);\r\n selectedNodes = signal<XListNode[]>([]);\r\n headerRef = viewChild<ElementRef<HTMLElement>>('headerRef');\r\n footerRef = viewChild<ElementRef<HTMLElement>>('footerRef');\r\n selectAllRef = viewChild<ElementRef<HTMLElement>>('selectAllRef');\r\n loadMoreRef = viewChild<ElementRef<HTMLElement>>('loadMoreRef');\r\n virtualBody = viewChild<CdkVirtualScrollViewport>('virtualBody');\r\n dropList = viewChild<CdkDropList>(CdkDropList);\r\n @ViewChildren(XListOptionComponent)\r\n options!: QueryList<XListOptionComponent>;\r\n keyManager!: ActiveDescendantKeyManager<XListOptionComponent>;\r\n isSelectAll = signal(false);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.list as XI18nList)), { initialValue: zh_CN.list });\r\n loadMoreIndex = signal(0);\r\n icon = signal('');\r\n iconSpin = signal(false);\r\n scrollHeightSignal = signal(0);\r\n classMap = computed(() => ({\r\n [`${XListPrefix}-${this.size()}`]: this.size() ? true : false\r\n }));\r\n sizeChange: Subscription | null = null;\r\n private resizeObserver!: XResizeObserver;\r\n\r\n @HostBinding('attr.role') role = 'listbox';\r\n @HostBinding('attr.tabindex') tabindex = -1;\r\n\r\n @HostListener('keydown', ['$event']) keydown($event: KeyboardEvent) {\r\n this.keyManager.onKeydown($event);\r\n const activeIndex = this.keyManager.activeItemIndex as number;\r\n if ($event.keyCode === ENTER && !XIsUndefined(activeIndex)) {\r\n this.setUnActive(activeIndex);\r\n this.onNodeClick($event, this.nodes()[activeIndex]);\r\n }\r\n }\r\n\r\n itemSizeMap: { [key: string]: number } = {\r\n mini: 22,\r\n small: 24,\r\n medium: 28,\r\n large: 32,\r\n big: 36\r\n };\r\n\r\n itemSize = computed(() => this.itemSizeMap[this.size()]);\r\n isEmpty = computed(() => XIsEmpty(this.nodes()));\r\n getSelectAllText = computed(() => this.selectAllText() || this.locale().selectAllText);\r\n getLoadMoreText = computed(() => this.loadMoreText() || this.locale().loadMoreText);\r\n getLoadingMoreText = computed(() => this.loadingMoreText() || this.locale().loadingMoreText);\r\n\r\n getVirtualScrollHeight() {\r\n let headerH = 0,\r\n footerH = 0,\r\n selectAllH = 0,\r\n loadMoreH = 0;\r\n if (this.headerRef()) headerH = this.headerRef()!.nativeElement.clientHeight;\r\n if (this.footerRef()) footerH = this.footerRef()!.nativeElement.clientHeight;\r\n if (this.selectAllRef()) selectAllH = this.selectAllRef()!.nativeElement.clientHeight;\r\n if (this.loadMoreRef()) loadMoreH = this.loadMoreRef()!.nativeElement.clientHeight;\r\n\r\n return this.scrollHeightSignal() - headerH - footerH - selectAllH - loadMoreH;\r\n }\r\n\r\n override writeValue(value: any): void {\r\n this.value.set(value);\r\n this.setSelected();\r\n this.setKeyManager();\r\n }\r\n\r\n constructor() {\r\n super();\r\n afterRender({\r\n mixedReadWrite: () => {\r\n if (this.virtualScroll() && this.scrollHeight()) {\r\n this.virtualBody()?.checkViewportSize();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data, scrollHeight, heightAdaption } = changes;\r\n XIsChange(data) && this.setData();\r\n XIsChange(scrollHeight) &&\r\n this.virtualScroll() &&\r\n !this.heightAdaption() &&\r\n this.scrollHeightSignal.set(this.scrollHeight());\r\n XIsChange(heightAdaption) && this.virtualScroll() && this.setHeightAdaption();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initKeyManager();\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n this.setHeightAdaption();\r\n } else {\r\n this.scrollHeightSignal.set(this.scrollHeight());\r\n }\r\n if (this.group && this.dropList()) {\r\n this.group.dropLists.add(this.dropList()!);\r\n this.group.setConnectedTo();\r\n }\r\n }\r\n\r\n setHeightAdaption() {\r\n this.setVirtualScrollHeight();\r\n if (this.sizeChange) this.sizeChange.unsubscribe();\r\n this.sizeChange = XResize(this.heightAdaption() as HTMLElement)\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n this.resizeObserver = x.resizeObserver;\r\n this.setVirtualScrollHeight();\r\n });\r\n }\r\n\r\n minBufferPxSignal = computed(() => {\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n return this.getVirtualScrollHeight();\r\n } else {\r\n return this.minBufferPx();\r\n }\r\n });\r\n maxBufferPxSignal = computed(() => {\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n return this.getVirtualScrollHeight() * 1.2;\r\n } else {\r\n return this.maxBufferPx();\r\n }\r\n });\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n this.group?.dropLists.delete(this.dropList()!);\r\n }\r\n\r\n private setVirtualScrollHeight() {\r\n this.scrollHeightSignal.set((this.heightAdaption() as HTMLElement).clientHeight);\r\n if (!this.virtualBody()) return;\r\n this.virtualBody()!['_scrollStrategy']['_minBufferPx'] = this.minBufferPxSignal();\r\n this.virtualBody()!['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPxSignal();\r\n }\r\n\r\n private setData() {\r\n if (this.loadMore()) {\r\n this.icon.set('fto-loader');\r\n this.iconSpin.set(true);\r\n }\r\n XSetData<XListNode>(this.data(), this.unSubject, true, this.loadMoreIndex()).subscribe((x) => {\r\n if (this.loadMore()) {\r\n this.nodes.update((y) => [...y, ...x]);\r\n this.icon.set('');\r\n this.iconSpin.set(false);\r\n } else {\r\n this.nodes.set(x);\r\n }\r\n this.setSelected();\r\n this.setKeyManager();\r\n });\r\n }\r\n\r\n private initKeyManager() {\r\n this.keyManager = new ActiveDescendantKeyManager<XListOptionComponent>(this.options).withWrap();\r\n this.keyManager.tabOut.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.setUnActive(this.keyManager.activeItemIndex as number);\r\n this.keyManagerTabOut.emit();\r\n });\r\n this.keyManager.change.pipe(takeUntil(this.unSubject)).subscribe((num: number) => {\r\n this.setScorllTop(num);\r\n this.keyManagerChange.emit(num);\r\n });\r\n }\r\n\r\n setScorllTop(_num: number) {\r\n let list = this.scrollElement();\r\n if (!list || !this.keyManager.activeItem) return;\r\n let ele = this.keyManager.activeItem.elementRef.nativeElement as HTMLElement;\r\n let min = list.scrollTop;\r\n let max = list.scrollTop + list.clientHeight;\r\n if (ele.offsetTop + ele.clientHeight > max) {\r\n let scrollTop = ele.offsetTop + ele.clientHeight - list.clientHeight;\r\n list.scrollTop = scrollTop;\r\n }\r\n if (ele.offsetTop < min) {\r\n list.scrollTop = ele.offsetTop;\r\n }\r\n }\r\n\r\n setSelected() {\r\n const nodes = this.nodes();\r\n const value = this.value();\r\n const objectArray = this.objectArray();\r\n if (nodes.length > 0) {\r\n nodes\r\n .filter((x) => x.selected)\r\n .map((x) => {\r\n x.selected = false;\r\n });\r\n let valArry: any[] = [];\r\n if (value instanceof Array) {\r\n valArry = value;\r\n if (valArry.length === nodes.length) {\r\n this.isSelectAll.set(true);\r\n }\r\n } else {\r\n valArry = [value];\r\n }\r\n\r\n let ids = [];\r\n let selectedNodes = [];\r\n if (objectArray) {\r\n ids = valArry.filter((x) => !XIsUndefined(x) && !XIsNull(x)).map((x) => x.id);\r\n } else {\r\n ids = valArry;\r\n }\r\n for (let id of ids) {\r\n let node = nodes.find((x) => x.id === id);\r\n if (node) {\r\n node.selected = true;\r\n selectedNodes.push(node);\r\n }\r\n }\r\n this.selectedNodes.set(selectedNodes);\r\n }\r\n }\r\n\r\n setKeyManager() {\r\n if (XIsUndefined(this.keyManager) || XIsEmpty(this.nodes())) return;\r\n let activeIndex = 0;\r\n let value = this.value();\r\n let objectArray = this.objectArray();\r\n if (XIsEmpty(value)) {\r\n this.keyManager.updateActiveItem(activeIndex);\r\n return;\r\n }\r\n let valArry: any[] = [];\r\n if (value instanceof Array) {\r\n valArry = value;\r\n } else {\r\n valArry = [value];\r\n }\r\n const first = valArry[0];\r\n if (objectArray) {\r\n activeIndex = this.nodes().findIndex((x) => x.id === first.id);\r\n } else {\r\n activeIndex = this.nodes().findIndex((x) => x.id === first);\r\n }\r\n this.keyManager.updateActiveItem(activeIndex);\r\n this.setScorllTop(activeIndex);\r\n }\r\n\r\n onNodeClick(event: Event, node: XListNode) {\r\n if (XIsUndefined(node) || node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n if (node.disabled) return;\r\n if (node.selected && this.multiple() === 1) {\r\n node.event = event;\r\n this.nodeClick.emit(node);\r\n return;\r\n }\r\n const selected = !node.selected;\r\n if (selected) {\r\n if (this.selectedNodes().length < this.multiple() || this.multiple() === 0 || isNaN(this.multiple())) {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => [...x, node]);\r\n if (this.selectedNodes().length === this.nodes().length) {\r\n this.isSelectAll.set(true);\r\n }\r\n } else if (this.multiple() === 1 && this.selectedNodes().length === 1) {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => {\r\n x[0].selected = false;\r\n x[0] = node;\r\n return [...x];\r\n });\r\n } else {\r\n return;\r\n }\r\n } else {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => {\r\n x.splice(\r\n x.findIndex((x) => x.id == node.id),\r\n 1\r\n );\r\n return [...x];\r\n });\r\n this.isSelectAll.set(false);\r\n }\r\n\r\n if (this.multiple() === 1 && this.selectedNodes().length === 1) {\r\n this.value.set(this.objectArray() ? this.selectedNodes()[0] : this.selectedNodes()[0].id);\r\n } else {\r\n this.value.set(this.objectArray() ? this.selectedNodes() : this.selectedNodes().map((x) => x.id));\r\n }\r\n if (this.onChange) this.onChange(this.value());\r\n node.event = event;\r\n this.nodeClick.emit(node);\r\n }\r\n\r\n onMouseenter(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n node.event = event;\r\n this.nodeMouseenter.emit(node);\r\n }\r\n\r\n onMouseleave(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n node.event = event;\r\n this.nodeMouseleave.emit(node);\r\n }\r\n\r\n dropCdk(event: CdkDragDrop<XListNode[]>) {\r\n this.nodes.update((x) => {\r\n moveItemInArray(x, event.previousIndex, event.currentIndex);\r\n return [...x];\r\n });\r\n this.dropListDropped.emit({\r\n data: this.nodes(),\r\n current: this.nodes()[event.currentIndex],\r\n currentIndex: event.currentIndex,\r\n event: event\r\n });\r\n }\r\n\r\n predicate(_drag: CdkDrag<XListNode>, _drop: CdkDropList<XListNode>) {\r\n return true;\r\n }\r\n\r\n onSelectAllNodes() {\r\n this.isSelectAll.update((x) => !x);\r\n if (this.isSelectAll()) {\r\n this.nodes.update((x) => {\r\n x.forEach((y) => (y.selected = true));\r\n return [...x];\r\n });\r\n this.selectedNodes.set(this.nodes());\r\n } else {\r\n this.nodes.update((x) => {\r\n x.forEach((y) => (y.selected = false));\r\n return [...x];\r\n });\r\n this.selectedNodes.set([]);\r\n }\r\n this.value.set(this.objectArray() ? this.selectedNodes() : this.selectedNodes().map((x) => x.id));\r\n if (this.onChange) this.onChange(this.value());\r\n this.onSelectAll.emit(this.isSelectAll());\r\n }\r\n\r\n onLoadMore() {\r\n this.loadMoreIndex.update((x) => x + 1);\r\n this.setData();\r\n }\r\n\r\n trackByNode(_index: number, item: XListNode) {\r\n return item.id;\r\n }\r\n\r\n setUnActive(num: number) {\r\n if (num > -1) this.nodes()[num].active = false;\r\n }\r\n}\r\n","<div class=\"x-list\" [class.x-list-portal]=\"inPortal()\" [ngClass]=\"classMap()\">\r\n @if (header()) {\r\n <div #headerRef class=\"x-list-header\" *xOutlet=\"header()\">{{ header() }}</div>\r\n }\r\n @if (selectAll() && multiple() === 0) {\r\n <div #selectAllRef class=\"x-list-select-all\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [label]=\"getSelectAllText()\"\r\n [checked]=\"true\"\r\n [selected]=\"isSelectAll()\"\r\n (click)=\"onSelectAllNodes()\"\r\n ></x-list-option>\r\n </div>\r\n }\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 class=\"x-list-content\"\r\n [style.height.px]=\"getVirtualScrollHeight()\"\r\n [hidden]=\"isEmpty()\"\r\n >\r\n <x-list-option\r\n *cdkVirtualFor=\"let node of nodes(); trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-list-content\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes(); track node.id) {\r\n <x-list-option\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n }\r\n </div>\r\n }\r\n @if (loadMore() && !isEmpty()) {\r\n <div #loadMoreRef class=\"x-list-load-more\">\r\n <x-list-option [size]=\"size()\" [nodeTpl]=\"loadMoreTpl\" (click)=\"onLoadMore()\"></x-list-option>\r\n </div>\r\n <ng-template #loadMoreTpl>\r\n @if (icon() && iconSpin()) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\"></x-icon>\r\n }\r\n {{ icon() && iconSpin() ? getLoadingMoreText() : getLoadMoreText() }}</ng-template\r\n >\r\n }\r\n @if (isEmpty()) {\r\n <x-empty></x-empty>\r\n }\r\n @if (footer()) {\r\n <div #footerRef class=\"x-list-footer\" *xOutlet=\"footer()\">{{ footer() }}</div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XListComponent } from './list.component';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { XListDropGroup } from './list-drop-group.directive';\r\n\r\n@NgModule({\r\n exports: [XListComponent, XListDropGroup, XListOptionComponent],\r\n imports: [XListComponent, XListDropGroup, XListOptionComponent]\r\n})\r\nexport class XListModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-list.mjs","sources":["../../../../lib/ng-nest/ui/list/list.property.ts","../../../../lib/ng-nest/ui/list/list-option.component.ts","../../../../lib/ng-nest/ui/list/list-option.component.html","../../../../lib/ng-nest/ui/list/list-drop-group.directive.ts","../../../../lib/ng-nest/ui/list/list.component.ts","../../../../lib/ng-nest/ui/list/list.component.html","../../../../lib/ng-nest/ui/list/list.module.ts","../../../../lib/ng-nest/ui/list/ng-nest-ui-list.ts"],"sourcesContent":["import {\r\n XData,\r\n XParentIdentityProperty,\r\n XNumber,\r\n XBoolean,\r\n XTemplate,\r\n XSize,\r\n XToNumber,\r\n XToBoolean\r\n} from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, ElementRef, input, output, model } from '@angular/core';\r\nimport { XFormControlFunction } from '@ng-nest/ui/base-form';\r\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\r\n\r\n/**\r\n * List\r\n * @selector x-list\r\n * @decorator component\r\n */\r\nexport const XListPrefix = 'x-list';\r\nconst X_LIST_CONFIG_NAME = 'list';\r\n\r\n/**\r\n * List Property\r\n */\r\n@Component({ selector: `${XListPrefix}-property`, template: '' })\r\nexport class XListProperty extends XFormControlFunction(X_LIST_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 列表数据\r\n * @en_US List data\r\n */\r\n readonly data = input<XData<XListNode>>([]);\r\n /**\r\n * @zh_CN 多选个数,设置为0,不限制选择个数\r\n * @en_US Multiple choice\r\n */\r\n readonly multiple = input<number, XNumber>(1, { transform: XToNumber });\r\n /**\r\n * @zh_CN 多选添加全选功能,适用于 multiple=0\r\n * @en_US Multi choice to add full selection function\r\n */\r\n readonly selectAll = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 全选的文字\r\n * @en_US Selected all text\r\n * @default '全选'\r\n */\r\n readonly selectAllText = input<string>(this.config?.selectAllText ?? '');\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n readonly checked = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 拖动\r\n * @en_US Drag\r\n */\r\n readonly drag = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当开启多选的时候,ngModel 的值为对象数组\r\n * @en_US When multiple selection is enabled, the value of ngmodel is an array of objects\r\n */\r\n readonly objectArray = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n readonly nodeTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 列表头部\r\n * @en_US List header\r\n */\r\n readonly header = input<XTemplate>();\r\n /**\r\n * @zh_CN 列表底部\r\n * @en_US List footer\r\n */\r\n readonly footer = input<XTemplate>();\r\n /**\r\n * @zh_CN 滚动区域元素\r\n * @en_US Rolling area element\r\n */\r\n readonly scrollElement = input<HTMLElement>();\r\n /**\r\n * @zh_CN 加载更多\r\n * @en_US load more\r\n */\r\n readonly loadMore = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 加载更多的文字\r\n * @en_US Load more text\r\n * @default '加载更多'\r\n */\r\n readonly loadMoreText = input<string>(this.config?.loadMoreText ?? '');\r\n /**\r\n * @zh_CN 正在加载中的文字\r\n * @en_US Loading\r\n * @default '正在加载中'\r\n */\r\n readonly loadingMoreText = input<string>(this.config?.loadingMoreText ?? '');\r\n /**\r\n * @zh_CN 开启虚拟滚动,不支持节点拖动功能\r\n * @en_US Turn on virtual scrolling\r\n */\r\n readonly virtualScroll = input<boolean, XBoolean>(this.config?.virtualScroll ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 虚拟滚动高度, 实际会去掉头尾、全选、更多的高度\r\n * @en_US The virtual rolling height will actually remove the head and end, the full selection, more height\r\n */\r\n readonly scrollHeight = input<number, XNumber>(this.config?.scrollHeight ?? 400, { transform: XToNumber });\r\n /**\r\n * @zh_CN 虚拟滚动高度自适应指定元素\r\n * @en_US virtual rolling height follows the specified object\r\n */\r\n readonly heightAdaption = input<ElementRef<HTMLElement> | HTMLElement>();\r\n /**\r\n * @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数\r\n * @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly minBufferPx = input<number, XNumber>(100, { transform: XToNumber });\r\n /**\r\n * @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数\r\n * @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll\r\n */\r\n readonly maxBufferPx = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN 关键字高亮\r\n * @en_US Keyword highlighting\r\n */\r\n readonly keywordText = input<string | string[]>();\r\n /**\r\n * @zh_CN 匹配关键字区分大小写\r\n * @en_US Case-sensitive\r\n */\r\n readonly caseSensitive = input<boolean, XBoolean>(this.config?.caseSensitive ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 在弹框中选择时的样式,根据尺寸来决定\r\n * @en_US The style selected in the pop-up box is determined by size\r\n */\r\n readonly inPortal = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN Full event\r\n * @en_US 全选事件\r\n */\r\n readonly onSelectAll = output<boolean>();\r\n /**\r\n * @zh_CN 节点 mouseenter 事件\r\n * @en_US Node mouseenter event\r\n */\r\n readonly nodeMouseenter = output<XListNode>();\r\n /**\r\n * @zh_CN 节点 mouseleave 事件\r\n * @en_US Node mouseleave event\r\n */\r\n readonly nodeMouseleave = output<XListNode>();\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeClick = output<XListNode>();\r\n /**\r\n * @zh_CN 拖动结束事件\r\n * @en_US Drag the end\r\n */\r\n readonly dropListDropped = output<XListDragDrop>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n readonly keyManagerTabOut = output<void>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n readonly keyManagerChange = output<number>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n}\r\n\r\n/**\r\n * @zh_CN List 数据对象\r\n * @en_US List data object\r\n */\r\nexport interface XListNode extends XParentIdentityProperty<XListNode> {\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Iicon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 分割线\r\n * @en_US Split line\r\n */\r\n divided?: boolean;\r\n /**\r\n * @zh_CN 事件\r\n * @en_US Event\r\n */\r\n event?: Event;\r\n /**\r\n * @zh_CN 悬停\r\n * @en_US Hover\r\n */\r\n hover?: boolean;\r\n /**\r\n * @zh_CN 打开弹框\r\n * @en_US open portal\r\n */\r\n openPortal?: boolean;\r\n /**\r\n * @zh_CN 激活\r\n * @en_US Active\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 检查更新\r\n * @en_US Check for updates\r\n */\r\n change?: Function;\r\n}\r\n\r\n/**\r\n * List Option\r\n * @selector x-list-option\r\n * @decorator component\r\n */\r\nexport const XListOptionPrefix = 'x-list-option';\r\n\r\n/**\r\n * List Option Property\r\n */\r\n@Component({ selector: `${XListOptionPrefix}-property`, template: '' })\r\nexport class XListOptionProperty {\r\n /**\r\n * @zh_CN 节点参数\r\n * @en_US Node param\r\n */\r\n readonly node = input<XListNode>();\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n readonly checked = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n readonly nodeTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 选中\r\n * @en_US selected\r\n */\r\n readonly selected = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US forbidden\r\n */\r\n readonly forbidden = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 激活\r\n * @en_US active\r\n */\r\n readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 打开弹框\r\n * @en_US open portal\r\n */\r\n readonly openPortal = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 自定义数据对象样式\r\n * @en_US Customize data object styles\r\n */\r\n readonly optionClass = input<(node: XListNode) => { [className: string]: boolean }>();\r\n /**\r\n * @zh_CN 图标\r\n * @en_US icon\r\n */\r\n readonly icon = input<string>();\r\n /**\r\n * @zh_CN 分割线\r\n * @en_US Split line\r\n */\r\n readonly divided = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US label\r\n */\r\n readonly label = input<string>();\r\n /**\r\n * @zh_CN 叶子节点\r\n * @en_US leaf\r\n */\r\n readonly leaf = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly size = input<XSize>('medium');\r\n /**\r\n * @zh_CN 关键字高亮\r\n * @en_US Keyword highlighting\r\n */\r\n readonly keywordText = input<string | string[]>();\r\n /**\r\n * @zh_CN 匹配关键字区分大小写\r\n * @en_US Case-sensitive\r\n */\r\n readonly caseSensitive = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n}\r\n\r\n/**\r\n * @zh_CN 拖动相关的数据\r\n * @en_US Drag related data\r\n */\r\nexport type XListDragDrop = {\r\n /**\r\n * @zh_CN 节点数据集合\r\n * @en_US Node data collection\r\n */\r\n data: XListNode[];\r\n /**\r\n * @zh_CN 当前拖动节点\r\n * @en_US The current drag nodes\r\n */\r\n current: XListNode;\r\n /**\r\n * @zh_CN 当前拖动节点的索引\r\n * @en_US The current drag index of the node\r\n */\r\n currentIndex: number;\r\n /**\r\n * @zh_CN 当前拖动节点事件\r\n * @en_US The current drag nodes event\r\n */\r\n event: CdkDragDrop<XListNode[]>;\r\n};\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n ViewEncapsulation,\r\n computed,\r\n effect,\r\n inject\r\n} from '@angular/core';\r\nimport { XListOptionPrefix, XListOptionProperty } from './list.property';\r\nimport { Highlightable } from '@angular/cdk/a11y';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XKeywordDirective } from '@ng-nest/ui/keyword';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XListOptionPrefix}`,\r\n imports: [NgClass, NgTemplateOutlet, XIconComponent, XKeywordDirective],\r\n templateUrl: './list-option.component.html',\r\n styleUrls: ['./list-option.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XListOptionComponent extends XListOptionProperty implements Highlightable {\r\n @HostBinding('attr.role') role = 'option';\r\n elementRef = inject(ElementRef);\r\n classMap = computed(() => ({\r\n [`${XListOptionPrefix}-${this.size()}`]: this.size() ? true : false\r\n }));\r\n disabled = false;\r\n\r\n constructor() {\r\n super();\r\n effect(() => (this.disabled = this.forbidden()));\r\n }\r\n\r\n setActiveStyles(): void {\r\n this.active.set(true);\r\n }\r\n setInactiveStyles(): void {\r\n this.active.set(false);\r\n }\r\n\r\n getLabel() {\r\n return this.label() as string;\r\n }\r\n}\r\n","<div\r\n class=\"x-list-option\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-selected]=\"selected()\"\r\n [class.x-disabled]=\"forbidden()\"\r\n [class.x-open-portal]=\"openPortal()\"\r\n [class.x-active]=\"active()\"\r\n [class.x-list-icon]=\"icon()\"\r\n [class.x-list-divided]=\"divided()\"\r\n>\r\n <div class=\"x-list-option-content\">\r\n @if (nodeTpl()) {\r\n <ng-template *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node() }\"></ng-template>\r\n } @else {\r\n @if (icon()) {\r\n <x-icon class=\"x-list-option-icon\" [type]=\"icon()\"></x-icon>\r\n }\r\n <span x-keyword [text]=\"keywordText()\" [caseSensitive]=\"caseSensitive()\">{{ label() }}</span>\r\n }\r\n </div>\r\n @if (leaf()) {\r\n <x-icon class=\"x-list-leaf\" type=\"fto-chevron-right\"></x-icon>\r\n }\r\n @if (checked() && !leaf() && selected()) {\r\n <x-icon class=\"x-list-checked\" type=\"fto-check\"></x-icon>\r\n }\r\n</div>\r\n","import { coerceArray } from '@angular/cdk/coercion';\r\nimport { CdkDropList } from '@angular/cdk/drag-drop';\r\nimport { Directive, InjectionToken, OnDestroy, input } from '@angular/core';\r\nimport { XBoolean, XToBoolean } from '@ng-nest/ui/core';\r\n\r\nexport const X_LIST_DROP_GROUP = new InjectionToken<XListDropGroup>('XListDropGroup');\r\n\r\n@Directive({\r\n selector: '[xListDropGroup]',\r\n providers: [{ provide: X_LIST_DROP_GROUP, useExisting: XListDropGroup }]\r\n})\r\nexport class XListDropGroup implements OnDestroy {\r\n readonly dropLists = new Set<CdkDropList>();\r\n\r\n disabled = input<boolean, XBoolean>(false, { transform: XToBoolean, alias: 'xListDropGroupDisabled' });\r\n\r\n setConnectedTo() {\r\n this.dropLists.forEach((x) => {\r\n this.dropLists.forEach((y) => {\r\n if (!y.connectedTo) {\r\n y.connectedTo = [x];\r\n } else {\r\n if (!coerceArray(y.connectedTo).includes(x)) {\r\n coerceArray(y.connectedTo).push(x);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.dropLists.clear();\r\n }\r\n}\r\n","import { Subject, Subscription } from 'rxjs';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n QueryList,\r\n ElementRef,\r\n HostBinding,\r\n HostListener,\r\n ViewChildren,\r\n inject,\r\n afterEveryRender,\r\n viewChild,\r\n signal,\r\n computed\r\n} from '@angular/core';\r\nimport { XListPrefix, XListNode, XListProperty } from './list.property';\r\nimport { XIsChange, XSetData, XIsEmpty, XIsUndefined, XIsNull, XResize, XResizeObserver } from '@ng-nest/ui/core';\r\nimport { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\r\nimport { ENTER } from '@angular/cdk/keycodes';\r\nimport { map, takeUntil, debounceTime } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XI18nList, XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { XListDropGroup, X_LIST_DROP_GROUP } from './list-drop-group.directive';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XEmptyComponent } from '@ng-nest/ui/empty';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XListPrefix}`,\r\n imports: [\r\n NgClass,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CdkDropList,\r\n CdkDrag,\r\n ScrollingModule,\r\n XIconComponent,\r\n XEmptyComponent,\r\n XListOptionComponent,\r\n XOutletDirective\r\n ],\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XListComponent)]\r\n})\r\nexport class XListComponent extends XListProperty implements OnChanges {\r\n private unSubject = new Subject<void>();\r\n private i18n = inject(XI18nService);\r\n private group = inject<XListDropGroup>(X_LIST_DROP_GROUP, { optional: true, skipSelf: true });\r\n nodes = signal<XListNode[]>([]);\r\n selectedNodes = signal<XListNode[]>([]);\r\n headerRef = viewChild<ElementRef<HTMLElement>>('headerRef');\r\n footerRef = viewChild<ElementRef<HTMLElement>>('footerRef');\r\n selectAllRef = viewChild<ElementRef<HTMLElement>>('selectAllRef');\r\n loadMoreRef = viewChild<ElementRef<HTMLElement>>('loadMoreRef');\r\n virtualBody = viewChild<CdkVirtualScrollViewport>('virtualBody');\r\n dropList = viewChild<CdkDropList>(CdkDropList);\r\n @ViewChildren(XListOptionComponent)\r\n options!: QueryList<XListOptionComponent>;\r\n keyManager!: ActiveDescendantKeyManager<XListOptionComponent>;\r\n isSelectAll = signal(false);\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.list as XI18nList)), { initialValue: zh_CN.list });\r\n loadMoreIndex = signal(0);\r\n icon = signal('');\r\n iconSpin = signal(false);\r\n scrollHeightSignal = signal(0);\r\n classMap = computed(() => ({\r\n [`${XListPrefix}-${this.size()}`]: this.size() ? true : false\r\n }));\r\n sizeChange: Subscription | null = null;\r\n private resizeObserver!: XResizeObserver;\r\n\r\n @HostBinding('attr.role') role = 'listbox';\r\n @HostBinding('attr.tabindex') tabindex = -1;\r\n\r\n @HostListener('keydown', ['$event']) keydown($event: KeyboardEvent) {\r\n this.keyManager.onKeydown($event);\r\n const activeIndex = this.keyManager.activeItemIndex as number;\r\n if ($event.keyCode === ENTER && !XIsUndefined(activeIndex)) {\r\n this.setUnActive(activeIndex);\r\n this.onNodeClick($event, this.nodes()[activeIndex]);\r\n }\r\n }\r\n\r\n itemSizeMap: { [key: string]: number } = {\r\n mini: 22,\r\n small: 24,\r\n medium: 28,\r\n large: 32,\r\n big: 36\r\n };\r\n\r\n itemSize = computed(() => this.itemSizeMap[this.size()]);\r\n isEmpty = computed(() => XIsEmpty(this.nodes()));\r\n getSelectAllText = computed(() => this.selectAllText() || this.locale()?.selectAllText);\r\n getLoadMoreText = computed(() => this.loadMoreText() || this.locale()?.loadMoreText);\r\n getLoadingMoreText = computed(() => this.loadingMoreText() || this.locale()?.loadingMoreText);\r\n\r\n getVirtualScrollHeight() {\r\n let headerH = 0,\r\n footerH = 0,\r\n selectAllH = 0,\r\n loadMoreH = 0;\r\n if (this.headerRef()) headerH = this.headerRef()!.nativeElement.clientHeight;\r\n if (this.footerRef()) footerH = this.footerRef()!.nativeElement.clientHeight;\r\n if (this.selectAllRef()) selectAllH = this.selectAllRef()!.nativeElement.clientHeight;\r\n if (this.loadMoreRef()) loadMoreH = this.loadMoreRef()!.nativeElement.clientHeight;\r\n\r\n return this.scrollHeightSignal() - headerH - footerH - selectAllH - loadMoreH;\r\n }\r\n\r\n override writeValue(value: any): void {\r\n this.value.set(value);\r\n this.setSelected();\r\n this.setKeyManager();\r\n }\r\n\r\n constructor() {\r\n super();\r\n afterEveryRender({\r\n mixedReadWrite: () => {\r\n if (this.virtualScroll() && this.scrollHeight()) {\r\n this.virtualBody()?.checkViewportSize();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data, scrollHeight, heightAdaption } = changes;\r\n XIsChange(data) && this.setData();\r\n XIsChange(scrollHeight) &&\r\n this.virtualScroll() &&\r\n !this.heightAdaption() &&\r\n this.scrollHeightSignal.set(this.scrollHeight());\r\n XIsChange(heightAdaption) && this.virtualScroll() && this.setHeightAdaption();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initKeyManager();\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n this.setHeightAdaption();\r\n } else {\r\n this.scrollHeightSignal.set(this.scrollHeight());\r\n }\r\n if (this.group && this.dropList()) {\r\n this.group.dropLists.add(this.dropList()!);\r\n this.group.setConnectedTo();\r\n }\r\n }\r\n\r\n setHeightAdaption() {\r\n this.setVirtualScrollHeight();\r\n if (this.sizeChange) this.sizeChange.unsubscribe();\r\n this.sizeChange = XResize(this.heightAdaption() as HTMLElement)\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n this.resizeObserver = x.resizeObserver;\r\n this.setVirtualScrollHeight();\r\n });\r\n }\r\n\r\n minBufferPxSignal = computed(() => {\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n return this.getVirtualScrollHeight();\r\n } else {\r\n return this.minBufferPx();\r\n }\r\n });\r\n maxBufferPxSignal = computed(() => {\r\n if (this.virtualScroll() && this.heightAdaption()) {\r\n return this.getVirtualScrollHeight() * 1.2;\r\n } else {\r\n return this.maxBufferPx();\r\n }\r\n });\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n this.group?.dropLists.delete(this.dropList()!);\r\n }\r\n\r\n private setVirtualScrollHeight() {\r\n this.scrollHeightSignal.set((this.heightAdaption() as HTMLElement).clientHeight);\r\n if (!this.virtualBody()) return;\r\n this.virtualBody()!['_scrollStrategy']['_minBufferPx'] = this.minBufferPxSignal();\r\n this.virtualBody()!['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPxSignal();\r\n }\r\n\r\n private setData() {\r\n if (this.loadMore()) {\r\n this.icon.set('fto-loader');\r\n this.iconSpin.set(true);\r\n }\r\n XSetData<XListNode>(this.data(), this.unSubject, true, this.loadMoreIndex()).subscribe((x) => {\r\n if (this.loadMore()) {\r\n this.nodes.update((y) => [...y, ...x]);\r\n this.icon.set('');\r\n this.iconSpin.set(false);\r\n } else {\r\n this.nodes.set(x);\r\n }\r\n this.setSelected();\r\n this.setKeyManager();\r\n });\r\n }\r\n\r\n private initKeyManager() {\r\n this.keyManager = new ActiveDescendantKeyManager<XListOptionComponent>(this.options).withWrap();\r\n this.keyManager.tabOut.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.setUnActive(this.keyManager.activeItemIndex as number);\r\n this.keyManagerTabOut.emit();\r\n });\r\n this.keyManager.change.pipe(takeUntil(this.unSubject)).subscribe((num: number) => {\r\n this.setScorllTop(num);\r\n this.keyManagerChange.emit(num);\r\n });\r\n }\r\n\r\n setScorllTop(_num: number) {\r\n let list = this.scrollElement();\r\n if (!list || !this.keyManager.activeItem) return;\r\n let ele = this.keyManager.activeItem.elementRef.nativeElement as HTMLElement;\r\n let min = list.scrollTop;\r\n let max = list.scrollTop + list.clientHeight;\r\n if (ele.offsetTop + ele.clientHeight > max) {\r\n let scrollTop = ele.offsetTop + ele.clientHeight - list.clientHeight;\r\n list.scrollTop = scrollTop;\r\n }\r\n if (ele.offsetTop < min) {\r\n list.scrollTop = ele.offsetTop;\r\n }\r\n }\r\n\r\n setSelected() {\r\n const nodes = this.nodes();\r\n const value = this.value();\r\n const objectArray = this.objectArray();\r\n if (nodes.length > 0) {\r\n nodes\r\n .filter((x) => x.selected)\r\n .map((x) => {\r\n x.selected = false;\r\n });\r\n let valArry: any[] = [];\r\n if (value instanceof Array) {\r\n valArry = value;\r\n if (valArry.length === nodes.length) {\r\n this.isSelectAll.set(true);\r\n }\r\n } else {\r\n valArry = [value];\r\n }\r\n\r\n let ids = [];\r\n let selectedNodes = [];\r\n if (objectArray) {\r\n ids = valArry.filter((x) => !XIsUndefined(x) && !XIsNull(x)).map((x) => x.id);\r\n } else {\r\n ids = valArry;\r\n }\r\n for (let id of ids) {\r\n let node = nodes.find((x) => x.id === id);\r\n if (node) {\r\n node.selected = true;\r\n selectedNodes.push(node);\r\n }\r\n }\r\n this.selectedNodes.set(selectedNodes);\r\n }\r\n }\r\n\r\n setKeyManager() {\r\n if (XIsUndefined(this.keyManager) || XIsEmpty(this.nodes())) return;\r\n let activeIndex = 0;\r\n let value = this.value();\r\n let objectArray = this.objectArray();\r\n if (XIsEmpty(value)) {\r\n this.keyManager.updateActiveItem(activeIndex);\r\n return;\r\n }\r\n let valArry: any[] = [];\r\n if (value instanceof Array) {\r\n valArry = value;\r\n } else {\r\n valArry = [value];\r\n }\r\n const first = valArry[0];\r\n if (objectArray) {\r\n activeIndex = this.nodes().findIndex((x) => x.id === first.id);\r\n } else {\r\n activeIndex = this.nodes().findIndex((x) => x.id === first);\r\n }\r\n this.keyManager.updateActiveItem(activeIndex);\r\n this.setScorllTop(activeIndex);\r\n }\r\n\r\n onNodeClick(event: Event, node: XListNode) {\r\n if (XIsUndefined(node) || node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n if (node.disabled) return;\r\n if (node.selected && this.multiple() === 1) {\r\n node.event = event;\r\n this.nodeClick.emit(node);\r\n return;\r\n }\r\n const selected = !node.selected;\r\n if (selected) {\r\n if (this.selectedNodes().length < this.multiple() || this.multiple() === 0 || isNaN(this.multiple())) {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => [...x, node]);\r\n if (this.selectedNodes().length === this.nodes().length) {\r\n this.isSelectAll.set(true);\r\n }\r\n } else if (this.multiple() === 1 && this.selectedNodes().length === 1) {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => {\r\n x[0].selected = false;\r\n x[0] = node;\r\n return [...x];\r\n });\r\n } else {\r\n return;\r\n }\r\n } else {\r\n node.selected = selected;\r\n this.selectedNodes.update((x) => {\r\n x.splice(\r\n x.findIndex((x) => x.id == node.id),\r\n 1\r\n );\r\n return [...x];\r\n });\r\n this.isSelectAll.set(false);\r\n }\r\n\r\n if (this.multiple() === 1 && this.selectedNodes().length === 1) {\r\n this.value.set(this.objectArray() ? this.selectedNodes()[0] : this.selectedNodes()[0].id);\r\n } else {\r\n this.value.set(this.objectArray() ? this.selectedNodes() : this.selectedNodes().map((x) => x.id));\r\n }\r\n if (this.onChange) this.onChange(this.value());\r\n node.event = event;\r\n this.nodeClick.emit(node);\r\n }\r\n\r\n onMouseenter(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n node.event = event;\r\n this.nodeMouseenter.emit(node);\r\n }\r\n\r\n onMouseleave(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n node.event = event;\r\n this.nodeMouseleave.emit(node);\r\n }\r\n\r\n dropCdk(event: CdkDragDrop<XListNode[]>) {\r\n this.nodes.update((x) => {\r\n moveItemInArray(x, event.previousIndex, event.currentIndex);\r\n return [...x];\r\n });\r\n this.dropListDropped.emit({\r\n data: this.nodes(),\r\n current: this.nodes()[event.currentIndex],\r\n currentIndex: event.currentIndex,\r\n event: event\r\n });\r\n }\r\n\r\n predicate(_drag: CdkDrag<XListNode>, _drop: CdkDropList<XListNode>) {\r\n return true;\r\n }\r\n\r\n onSelectAllNodes() {\r\n this.isSelectAll.update((x) => !x);\r\n if (this.isSelectAll()) {\r\n this.nodes.update((x) => {\r\n x.forEach((y) => (y.selected = true));\r\n return [...x];\r\n });\r\n this.selectedNodes.set(this.nodes());\r\n } else {\r\n this.nodes.update((x) => {\r\n x.forEach((y) => (y.selected = false));\r\n return [...x];\r\n });\r\n this.selectedNodes.set([]);\r\n }\r\n this.value.set(this.objectArray() ? this.selectedNodes() : this.selectedNodes().map((x) => x.id));\r\n if (this.onChange) this.onChange(this.value());\r\n this.onSelectAll.emit(this.isSelectAll());\r\n }\r\n\r\n onLoadMore() {\r\n this.loadMoreIndex.update((x) => x + 1);\r\n this.setData();\r\n }\r\n\r\n trackByNode(_index: number, item: XListNode) {\r\n return item.id;\r\n }\r\n\r\n setUnActive(num: number) {\r\n if (num > -1) this.nodes()[num].active = false;\r\n }\r\n}\r\n","<div class=\"x-list\" [class.x-list-portal]=\"inPortal()\" [ngClass]=\"classMap()\">\r\n @if (header()) {\r\n <div #headerRef class=\"x-list-header\" *xOutlet=\"header()\">{{ header() }}</div>\r\n }\r\n @if (selectAll() && multiple() === 0) {\r\n <div #selectAllRef class=\"x-list-select-all\">\r\n <x-list-option\r\n [size]=\"size()\"\r\n [label]=\"getSelectAllText()\"\r\n [checked]=\"true\"\r\n [selected]=\"isSelectAll()\"\r\n (click)=\"onSelectAllNodes()\"\r\n ></x-list-option>\r\n </div>\r\n }\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 class=\"x-list-content\"\r\n [style.height.px]=\"getVirtualScrollHeight()\"\r\n [hidden]=\"isEmpty()\"\r\n >\r\n <x-list-option\r\n *cdkVirtualFor=\"let node of nodes(); trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [divided]=\"node.divided!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n </cdk-virtual-scroll-viewport>\r\n } @else {\r\n <div\r\n class=\"x-list-content\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag()\"\r\n [hidden]=\"isEmpty()\"\r\n [cdkDropListData]=\"nodes()\"\r\n [cdkDropListEnterPredicate]=\"predicate\"\r\n >\r\n @for (node of nodes(); track node.id) {\r\n <x-list-option\r\n cdkDrag\r\n [cdkDragDisabled]=\"node.disabled\"\r\n [node]=\"node\"\r\n [checked]=\"checked()\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [selected]=\"node.selected!\"\r\n [forbidden]=\"node.disabled!\"\r\n [active]=\"node.active!\"\r\n (activeChange)=\"node.active = $event\"\r\n [openPortal]=\"node.openPortal!\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf!\"\r\n [divided]=\"node.divided!\"\r\n [size]=\"size()\"\r\n [keywordText]=\"keywordText()\"\r\n [caseSensitive]=\"caseSensitive()\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n }\r\n </div>\r\n }\r\n @if (loadMore() && !isEmpty()) {\r\n <div #loadMoreRef class=\"x-list-load-more\">\r\n <x-list-option [size]=\"size()\" [nodeTpl]=\"loadMoreTpl\" (click)=\"onLoadMore()\"></x-list-option>\r\n </div>\r\n <ng-template #loadMoreTpl>\r\n @if (icon() && iconSpin()) {\r\n <x-icon [type]=\"icon()\" [spin]=\"iconSpin()\"></x-icon>\r\n }\r\n {{ icon() && iconSpin() ? getLoadingMoreText() : getLoadMoreText() }}</ng-template\r\n >\r\n }\r\n @if (isEmpty()) {\r\n <x-empty></x-empty>\r\n }\r\n @if (footer()) {\r\n <div #footerRef class=\"x-list-footer\" *xOutlet=\"footer()\">{{ footer() }}</div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XListComponent } from './list.component';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { XListDropGroup } from './list-drop-group.directive';\r\n\r\n@NgModule({\r\n exports: [XListComponent, XListDropGroup, XListOptionComponent],\r\n imports: [XListComponent, XListDropGroup, XListOptionComponent]\r\n})\r\nexport class XListModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}