@ng-nest/ui 18.0.6 → 18.0.8

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 (575) hide show
  1. package/core/config/config.d.ts +6 -0
  2. package/esm2022/affix/affix.component.mjs +4 -4
  3. package/esm2022/affix/affix.module.mjs +4 -4
  4. package/esm2022/affix/affix.property.mjs +3 -3
  5. package/esm2022/alert/alert.component.mjs +5 -5
  6. package/esm2022/alert/alert.module.mjs +4 -4
  7. package/esm2022/alert/alert.property.mjs +3 -3
  8. package/esm2022/anchor/anchor-inner.component.mjs +3 -3
  9. package/esm2022/anchor/anchor.component.mjs +5 -5
  10. package/esm2022/anchor/anchor.module.mjs +4 -4
  11. package/esm2022/anchor/anchor.property.mjs +6 -6
  12. package/esm2022/api/api.component.mjs +4 -4
  13. package/esm2022/api/api.module.mjs +4 -4
  14. package/esm2022/auto-complete/auto-complete-portal.component.mjs +3 -3
  15. package/esm2022/auto-complete/auto-complete.component.mjs +5 -5
  16. package/esm2022/auto-complete/auto-complete.module.mjs +4 -4
  17. package/esm2022/auto-complete/auto-complete.property.mjs +3 -3
  18. package/esm2022/avatar/avatar-group.component.mjs +3 -3
  19. package/esm2022/avatar/avatar.component.mjs +5 -5
  20. package/esm2022/avatar/avatar.module.mjs +4 -4
  21. package/esm2022/avatar/avatar.property.mjs +6 -6
  22. package/esm2022/back-top/back-top.component.mjs +5 -5
  23. package/esm2022/back-top/back-top.module.mjs +4 -4
  24. package/esm2022/back-top/back-top.property.mjs +3 -3
  25. package/esm2022/badge/badge.component.mjs +5 -5
  26. package/esm2022/badge/badge.module.mjs +4 -4
  27. package/esm2022/badge/badge.property.mjs +3 -3
  28. package/esm2022/base-form/base-form.module.mjs +4 -4
  29. package/esm2022/base-form/base-form.property.mjs +6 -6
  30. package/esm2022/button/button.component.mjs +5 -5
  31. package/esm2022/button/button.module.mjs +4 -4
  32. package/esm2022/button/button.property.mjs +6 -6
  33. package/esm2022/button/buttons.component.mjs +4 -4
  34. package/esm2022/calendar/calendar.component.mjs +5 -5
  35. package/esm2022/calendar/calendar.module.mjs +4 -4
  36. package/esm2022/calendar/calendar.property.mjs +3 -3
  37. package/esm2022/card/card.component.mjs +5 -5
  38. package/esm2022/card/card.module.mjs +4 -4
  39. package/esm2022/card/card.property.mjs +3 -3
  40. package/esm2022/carousel/carousel-panel.component.mjs +5 -5
  41. package/esm2022/carousel/carousel.component.mjs +5 -5
  42. package/esm2022/carousel/carousel.module.mjs +4 -4
  43. package/esm2022/carousel/carousel.property.mjs +6 -6
  44. package/esm2022/cascade/cascade-portal.component.mjs +3 -3
  45. package/esm2022/cascade/cascade.component.mjs +5 -5
  46. package/esm2022/cascade/cascade.module.mjs +4 -4
  47. package/esm2022/cascade/cascade.property.mjs +3 -3
  48. package/esm2022/checkbox/checkbox.component.mjs +5 -5
  49. package/esm2022/checkbox/checkbox.module.mjs +4 -4
  50. package/esm2022/checkbox/checkbox.property.mjs +3 -3
  51. package/esm2022/collapse/collapse-panel.component.mjs +5 -5
  52. package/esm2022/collapse/collapse.component.mjs +4 -4
  53. package/esm2022/collapse/collapse.module.mjs +4 -4
  54. package/esm2022/collapse/collapse.property.mjs +6 -6
  55. package/esm2022/color/color.component.mjs +4 -4
  56. package/esm2022/color/color.module.mjs +4 -4
  57. package/esm2022/color/color.property.mjs +3 -3
  58. package/esm2022/color-picker/color-picker-portal.component.mjs +4 -4
  59. package/esm2022/color-picker/color-picker.component.mjs +5 -5
  60. package/esm2022/color-picker/color-picker.module.mjs +4 -4
  61. package/esm2022/color-picker/color-picker.property.mjs +3 -3
  62. package/esm2022/comment/comment-reply.component.mjs +3 -3
  63. package/esm2022/comment/comment.component.mjs +5 -5
  64. package/esm2022/comment/comment.module.mjs +4 -4
  65. package/esm2022/comment/comment.property.mjs +6 -6
  66. package/esm2022/container/aside.component.mjs +4 -4
  67. package/esm2022/container/container.component.mjs +4 -4
  68. package/esm2022/container/container.module.mjs +4 -4
  69. package/esm2022/container/container.property.mjs +12 -12
  70. package/esm2022/container/footer.component.mjs +4 -4
  71. package/esm2022/container/header.component.mjs +4 -4
  72. package/esm2022/container/main.component.mjs +4 -4
  73. package/esm2022/core/config/config.mjs +1 -1
  74. package/esm2022/core/config/config.service.mjs +3 -3
  75. package/esm2022/core/services/http.service.mjs +3 -3
  76. package/esm2022/core/services/preloading-strategy.service.mjs +3 -3
  77. package/esm2022/core/services/storage.service.mjs +3 -3
  78. package/esm2022/core/theme/theme.service.mjs +3 -3
  79. package/esm2022/crumb/crumb.component.mjs +5 -5
  80. package/esm2022/crumb/crumb.module.mjs +4 -4
  81. package/esm2022/crumb/crumb.property.mjs +3 -3
  82. package/esm2022/date-picker/date-picker-portal.component.mjs +3 -3
  83. package/esm2022/date-picker/date-picker.component.mjs +5 -5
  84. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  85. package/esm2022/date-picker/date-picker.property.mjs +18 -18
  86. package/esm2022/date-picker/date-quarter.pipe.mjs +3 -3
  87. package/esm2022/date-picker/date-range-portal.component.mjs +3 -3
  88. package/esm2022/date-picker/date-range.component.mjs +5 -5
  89. package/esm2022/date-picker/picker-date.component.mjs +3 -3
  90. package/esm2022/date-picker/picker-month.component.mjs +3 -3
  91. package/esm2022/date-picker/picker-quarter.component.mjs +3 -3
  92. package/esm2022/date-picker/picker-year.component.mjs +3 -3
  93. package/esm2022/description/description-item.component.mjs +3 -3
  94. package/esm2022/description/description.component.mjs +3 -3
  95. package/esm2022/description/description.module.mjs +4 -4
  96. package/esm2022/description/description.property.mjs +6 -6
  97. package/esm2022/dialog/dialog-container.component.mjs +5 -5
  98. package/esm2022/dialog/dialog-portal.component.mjs +5 -5
  99. package/esm2022/dialog/dialog-portal.directives.mjs +18 -18
  100. package/esm2022/dialog/dialog.component.mjs +5 -5
  101. package/esm2022/dialog/dialog.module.mjs +4 -4
  102. package/esm2022/dialog/dialog.property.mjs +6 -6
  103. package/esm2022/dialog/dialog.service.mjs +3 -3
  104. package/esm2022/doc/doc.component.mjs +4 -4
  105. package/esm2022/doc/doc.module.mjs +4 -4
  106. package/esm2022/drag/drag.directive.mjs +3 -3
  107. package/esm2022/drag/drag.module.mjs +4 -4
  108. package/esm2022/drag/drag.property.mjs +3 -3
  109. package/esm2022/drawer/drawer-container.component.mjs +5 -5
  110. package/esm2022/drawer/drawer-portal.component.mjs +5 -5
  111. package/esm2022/drawer/drawer-portal.directives.mjs +9 -9
  112. package/esm2022/drawer/drawer.component.mjs +5 -5
  113. package/esm2022/drawer/drawer.module.mjs +4 -4
  114. package/esm2022/drawer/drawer.property.mjs +6 -6
  115. package/esm2022/drawer/drawer.service.mjs +3 -3
  116. package/esm2022/dropdown/dropdown-portal.component.mjs +3 -3
  117. package/esm2022/dropdown/dropdown.component.mjs +4 -4
  118. package/esm2022/dropdown/dropdown.module.mjs +4 -4
  119. package/esm2022/dropdown/dropdown.property.mjs +3 -3
  120. package/esm2022/empty/empty.component.mjs +5 -5
  121. package/esm2022/empty/empty.module.mjs +4 -4
  122. package/esm2022/empty/empty.property.mjs +3 -3
  123. package/esm2022/examples/examples.component.mjs +4 -4
  124. package/esm2022/examples/examples.module.mjs +4 -4
  125. package/esm2022/find/find.component.mjs +5 -5
  126. package/esm2022/find/find.module.mjs +4 -4
  127. package/esm2022/find/find.property.mjs +3 -3
  128. package/esm2022/form/control.component.mjs +3 -3
  129. package/esm2022/form/form.component.mjs +5 -5
  130. package/esm2022/form/form.module.mjs +4 -4
  131. package/esm2022/form/form.property.mjs +6 -6
  132. package/esm2022/highlight/highlight.component.mjs +5 -5
  133. package/esm2022/highlight/highlight.module.mjs +4 -4
  134. package/esm2022/highlight/highlight.property.mjs +3 -3
  135. package/esm2022/highlight/highlight.service.mjs +3 -3
  136. package/esm2022/i18n/i18n.directive.mjs +3 -3
  137. package/esm2022/i18n/i18n.module.mjs +4 -4
  138. package/esm2022/i18n/i18n.pipe.mjs +3 -3
  139. package/esm2022/i18n/i18n.property.mjs +1 -1
  140. package/esm2022/i18n/i18n.service.mjs +3 -3
  141. package/esm2022/i18n/languages/ar_EG.mjs +8 -2
  142. package/esm2022/i18n/languages/bg_BG.mjs +8 -2
  143. package/esm2022/i18n/languages/ca_ES.mjs +8 -2
  144. package/esm2022/i18n/languages/cs_CZ.mjs +8 -2
  145. package/esm2022/i18n/languages/da_DK.mjs +8 -2
  146. package/esm2022/i18n/languages/de_DE.mjs +8 -2
  147. package/esm2022/i18n/languages/el_GR.mjs +8 -2
  148. package/esm2022/i18n/languages/en_GB.mjs +8 -2
  149. package/esm2022/i18n/languages/en_US.mjs +8 -2
  150. package/esm2022/i18n/languages/es_ES.mjs +8 -2
  151. package/esm2022/i18n/languages/et_EE.mjs +8 -2
  152. package/esm2022/i18n/languages/fa_IR.mjs +8 -2
  153. package/esm2022/i18n/languages/fi_FI.mjs +8 -2
  154. package/esm2022/i18n/languages/fr_BE.mjs +8 -2
  155. package/esm2022/i18n/languages/fr_FR.mjs +8 -2
  156. package/esm2022/i18n/languages/he_IL.mjs +8 -2
  157. package/esm2022/i18n/languages/hi_IN.mjs +8 -2
  158. package/esm2022/i18n/languages/hr_HR.mjs +8 -2
  159. package/esm2022/i18n/languages/hu_HU.mjs +8 -2
  160. package/esm2022/i18n/languages/hy_AM.mjs +8 -2
  161. package/esm2022/i18n/languages/id_ID.mjs +8 -2
  162. package/esm2022/i18n/languages/is_IS.mjs +8 -2
  163. package/esm2022/i18n/languages/it_IT.mjs +8 -2
  164. package/esm2022/i18n/languages/ja_JP.mjs +8 -2
  165. package/esm2022/i18n/languages/ka_GE.mjs +8 -2
  166. package/esm2022/i18n/languages/kn_IN.mjs +8 -2
  167. package/esm2022/i18n/languages/ko_KR.mjs +8 -2
  168. package/esm2022/i18n/languages/ku_IQ.mjs +8 -2
  169. package/esm2022/i18n/languages/lv_LV.mjs +8 -2
  170. package/esm2022/i18n/languages/mn_MN.mjs +8 -2
  171. package/esm2022/i18n/languages/ms_MY.mjs +8 -2
  172. package/esm2022/i18n/languages/nb_NO.mjs +8 -2
  173. package/esm2022/i18n/languages/ne_NP.mjs +8 -2
  174. package/esm2022/i18n/languages/nl_BE.mjs +8 -2
  175. package/esm2022/i18n/languages/nl_NL.mjs +8 -2
  176. package/esm2022/i18n/languages/pl_PL.mjs +8 -2
  177. package/esm2022/i18n/languages/pt_BR.mjs +8 -2
  178. package/esm2022/i18n/languages/pt_PT.mjs +8 -2
  179. package/esm2022/i18n/languages/ro_RO.mjs +8 -2
  180. package/esm2022/i18n/languages/ru_RU.mjs +8 -2
  181. package/esm2022/i18n/languages/sk_SK.mjs +8 -2
  182. package/esm2022/i18n/languages/sl_SI.mjs +8 -2
  183. package/esm2022/i18n/languages/sr_RS.mjs +8 -2
  184. package/esm2022/i18n/languages/sv_SE.mjs +8 -2
  185. package/esm2022/i18n/languages/ta_IN.mjs +8 -2
  186. package/esm2022/i18n/languages/th_TH.mjs +8 -2
  187. package/esm2022/i18n/languages/tr_TR.mjs +8 -2
  188. package/esm2022/i18n/languages/uk_UA.mjs +8 -2
  189. package/esm2022/i18n/languages/vi_VN.mjs +8 -2
  190. package/esm2022/i18n/languages/zh_CN.mjs +8 -2
  191. package/esm2022/i18n/languages/zh_TW.mjs +8 -2
  192. package/esm2022/icon/icon.component.mjs +4 -4
  193. package/esm2022/icon/icon.module.mjs +4 -4
  194. package/esm2022/icon/icon.property.mjs +3 -3
  195. package/esm2022/icon/icon.service.mjs +3 -3
  196. package/esm2022/image/image-group.component.mjs +3 -3
  197. package/esm2022/image/image-preview.component.mjs +5 -5
  198. package/esm2022/image/image.component.mjs +5 -5
  199. package/esm2022/image/image.module.mjs +4 -4
  200. package/esm2022/image/image.property.mjs +6 -6
  201. package/esm2022/inner/inner.component.mjs +4 -4
  202. package/esm2022/inner/inner.module.mjs +4 -4
  203. package/esm2022/inner/inner.property.mjs +3 -3
  204. package/esm2022/input/input-group.component.mjs +3 -3
  205. package/esm2022/input/input.component.mjs +5 -5
  206. package/esm2022/input/input.module.mjs +4 -4
  207. package/esm2022/input/input.property.mjs +6 -6
  208. package/esm2022/input-number/input-number.component.mjs +5 -5
  209. package/esm2022/input-number/input-number.module.mjs +4 -4
  210. package/esm2022/input-number/input-number.property.mjs +3 -3
  211. package/esm2022/keyword/keyword.directive.mjs +3 -3
  212. package/esm2022/keyword/keyword.module.mjs +4 -4
  213. package/esm2022/keyword/keyword.property.mjs +3 -3
  214. package/esm2022/layout/col.component.mjs +3 -3
  215. package/esm2022/layout/layout.module.mjs +4 -4
  216. package/esm2022/layout/layout.property.mjs +6 -6
  217. package/esm2022/layout/row.component.mjs +3 -3
  218. package/esm2022/link/link.component.mjs +5 -5
  219. package/esm2022/link/link.module.mjs +4 -4
  220. package/esm2022/link/link.property.mjs +3 -3
  221. package/esm2022/list/list-drop-group.directive.mjs +3 -3
  222. package/esm2022/list/list-option.component.mjs +3 -3
  223. package/esm2022/list/list.component.mjs +11 -11
  224. package/esm2022/list/list.module.mjs +4 -4
  225. package/esm2022/list/list.property.mjs +6 -6
  226. package/esm2022/loading/loading.component.mjs +5 -5
  227. package/esm2022/loading/loading.module.mjs +4 -4
  228. package/esm2022/loading/loading.property.mjs +3 -3
  229. package/esm2022/menu/menu-node.component.mjs +3 -3
  230. package/esm2022/menu/menu.component.mjs +3 -3
  231. package/esm2022/menu/menu.module.mjs +4 -4
  232. package/esm2022/menu/menu.property.mjs +6 -6
  233. package/esm2022/message/message.component.mjs +3 -3
  234. package/esm2022/message/message.module.mjs +4 -4
  235. package/esm2022/message/message.service.mjs +3 -3
  236. package/esm2022/message-box/message-box.component.mjs +3 -3
  237. package/esm2022/message-box/message-box.module.mjs +4 -4
  238. package/esm2022/message-box/message-box.service.mjs +3 -3
  239. package/esm2022/notification/notification.component.mjs +3 -3
  240. package/esm2022/notification/notification.module.mjs +4 -4
  241. package/esm2022/notification/notification.service.mjs +3 -3
  242. package/esm2022/outlet/outlet.directive.mjs +3 -3
  243. package/esm2022/outlet/outlet.module.mjs +4 -4
  244. package/esm2022/page-header/page-header.component.mjs +5 -5
  245. package/esm2022/page-header/page-header.module.mjs +4 -4
  246. package/esm2022/page-header/page-header.property.mjs +3 -3
  247. package/esm2022/pagination/pagination.component.mjs +96 -30
  248. package/esm2022/pagination/pagination.module.mjs +4 -4
  249. package/esm2022/pagination/pagination.property.mjs +23 -8
  250. package/esm2022/pattern/pattern.component.mjs +4 -4
  251. package/esm2022/pattern/pattern.module.mjs +4 -4
  252. package/esm2022/popconfirm/popconfirm.component.mjs +5 -5
  253. package/esm2022/popconfirm/popconfirm.module.mjs +4 -4
  254. package/esm2022/popconfirm/popconfirm.property.mjs +3 -3
  255. package/esm2022/popover/popover-portal.component.mjs +5 -5
  256. package/esm2022/popover/popover.directive.mjs +3 -3
  257. package/esm2022/popover/popover.module.mjs +4 -4
  258. package/esm2022/popover/popover.property.mjs +3 -3
  259. package/esm2022/portal/portal.module.mjs +4 -4
  260. package/esm2022/portal/portal.service.mjs +3 -3
  261. package/esm2022/progress/progress.component.mjs +5 -5
  262. package/esm2022/progress/progress.module.mjs +4 -4
  263. package/esm2022/progress/progress.property.mjs +3 -3
  264. package/esm2022/radio/radio.component.mjs +5 -5
  265. package/esm2022/radio/radio.module.mjs +4 -4
  266. package/esm2022/radio/radio.property.mjs +3 -3
  267. package/esm2022/rate/rate.component.mjs +5 -5
  268. package/esm2022/rate/rate.module.mjs +4 -4
  269. package/esm2022/rate/rate.property.mjs +3 -3
  270. package/esm2022/resizable/resizable.directive.mjs +3 -3
  271. package/esm2022/resizable/resizable.module.mjs +4 -4
  272. package/esm2022/resizable/resizable.property.mjs +3 -3
  273. package/esm2022/result/result.component.mjs +5 -5
  274. package/esm2022/result/result.module.mjs +4 -4
  275. package/esm2022/result/result.property.mjs +3 -3
  276. package/esm2022/ripple/ripple.directive.mjs +3 -3
  277. package/esm2022/ripple/ripple.module.mjs +4 -4
  278. package/esm2022/ripple/ripple.property.mjs +3 -3
  279. package/esm2022/select/select-portal.component.mjs +3 -3
  280. package/esm2022/select/select.component.mjs +5 -5
  281. package/esm2022/select/select.module.mjs +4 -4
  282. package/esm2022/select/select.property.mjs +3 -3
  283. package/esm2022/skeleton/skeleton.component.mjs +3 -3
  284. package/esm2022/skeleton/skeleton.module.mjs +4 -4
  285. package/esm2022/skeleton/skeleton.property.mjs +3 -3
  286. package/esm2022/slider/slider.component.mjs +5 -5
  287. package/esm2022/slider/slider.module.mjs +4 -4
  288. package/esm2022/slider/slider.property.mjs +3 -3
  289. package/esm2022/slider-select/slider-select.component.mjs +5 -5
  290. package/esm2022/slider-select/slider-select.module.mjs +4 -4
  291. package/esm2022/slider-select/slider-select.property.mjs +3 -3
  292. package/esm2022/statistic/countdown.component.mjs +3 -3
  293. package/esm2022/statistic/statistic.component.mjs +3 -3
  294. package/esm2022/statistic/statistic.module.mjs +4 -4
  295. package/esm2022/statistic/statistic.property.mjs +6 -6
  296. package/esm2022/steps/steps.component.mjs +5 -5
  297. package/esm2022/steps/steps.module.mjs +4 -4
  298. package/esm2022/steps/steps.property.mjs +3 -3
  299. package/esm2022/switch/switch.component.mjs +5 -5
  300. package/esm2022/switch/switch.module.mjs +4 -4
  301. package/esm2022/switch/switch.property.mjs +3 -3
  302. package/esm2022/table/table-body.component.mjs +3 -3
  303. package/esm2022/table/table-foot.component.mjs +3 -3
  304. package/esm2022/table/table-head.component.mjs +4 -4
  305. package/esm2022/table/table.component.mjs +5 -5
  306. package/esm2022/table/table.module.mjs +4 -4
  307. package/esm2022/table/table.property.mjs +28 -13
  308. package/esm2022/tabs/tab-content.component.mjs +3 -3
  309. package/esm2022/tabs/tab-link.directive.mjs +6 -6
  310. package/esm2022/tabs/tab.component.mjs +3 -3
  311. package/esm2022/tabs/tabs.component.mjs +5 -5
  312. package/esm2022/tabs/tabs.module.mjs +4 -4
  313. package/esm2022/tabs/tabs.property.mjs +6 -6
  314. package/esm2022/tag/tag.component.mjs +5 -5
  315. package/esm2022/tag/tag.module.mjs +4 -4
  316. package/esm2022/tag/tag.property.mjs +3 -3
  317. package/esm2022/text-retract/text-retract.component.mjs +5 -5
  318. package/esm2022/text-retract/text-retract.module.mjs +4 -4
  319. package/esm2022/text-retract/text-retract.property.mjs +3 -3
  320. package/esm2022/textarea/textarea.component.mjs +5 -5
  321. package/esm2022/textarea/textarea.module.mjs +4 -4
  322. package/esm2022/textarea/textarea.property.mjs +3 -3
  323. package/esm2022/theme/theme.component.mjs +5 -5
  324. package/esm2022/theme/theme.module.mjs +4 -4
  325. package/esm2022/theme/theme.property.mjs +3 -3
  326. package/esm2022/time-ago/time-ago.module.mjs +4 -4
  327. package/esm2022/time-ago/time-ago.pipe.mjs +3 -3
  328. package/esm2022/time-picker/time-picker-frame.component.mjs +5 -5
  329. package/esm2022/time-picker/time-picker-portal.component.mjs +3 -3
  330. package/esm2022/time-picker/time-picker.component.mjs +5 -5
  331. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  332. package/esm2022/time-picker/time-picker.property.mjs +3 -3
  333. package/esm2022/time-range/time-range.module.mjs +4 -4
  334. package/esm2022/time-range/time-range.pipe.mjs +3 -3
  335. package/esm2022/timeline/timeline.component.mjs +5 -5
  336. package/esm2022/timeline/timeline.module.mjs +4 -4
  337. package/esm2022/timeline/timeline.property.mjs +3 -3
  338. package/esm2022/tooltip/tooltip-portal.component.mjs +5 -5
  339. package/esm2022/tooltip/tooltip.directive.mjs +3 -3
  340. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  341. package/esm2022/tooltip/tooltip.property.mjs +3 -3
  342. package/esm2022/transfer/transfer.component.mjs +5 -5
  343. package/esm2022/transfer/transfer.module.mjs +4 -4
  344. package/esm2022/transfer/transfer.property.mjs +3 -3
  345. package/esm2022/tree/tree-node.component.mjs +5 -5
  346. package/esm2022/tree/tree.component.mjs +4 -4
  347. package/esm2022/tree/tree.module.mjs +4 -4
  348. package/esm2022/tree/tree.property.mjs +6 -6
  349. package/esm2022/tree/tree.service.mjs +3 -3
  350. package/esm2022/tree-file/tree-file.component.mjs +5 -5
  351. package/esm2022/tree-file/tree-file.module.mjs +4 -4
  352. package/esm2022/tree-file/tree-file.property.mjs +3 -3
  353. package/esm2022/tree-select/tree-select-portal.component.mjs +3 -3
  354. package/esm2022/tree-select/tree-select.component.mjs +5 -5
  355. package/esm2022/tree-select/tree-select.module.mjs +4 -4
  356. package/esm2022/tree-select/tree-select.property.mjs +3 -3
  357. package/esm2022/typography/typography.component.mjs +4 -4
  358. package/esm2022/typography/typography.module.mjs +4 -4
  359. package/esm2022/typography/typography.property.mjs +3 -3
  360. package/esm2022/upload/upload-portal.component.mjs +5 -5
  361. package/esm2022/upload/upload.component.mjs +5 -5
  362. package/esm2022/upload/upload.module.mjs +4 -4
  363. package/esm2022/upload/upload.property.mjs +3 -3
  364. package/fesm2022/ng-nest-ui-affix.mjs +11 -11
  365. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  366. package/fesm2022/ng-nest-ui-alert.mjs +11 -11
  367. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  368. package/fesm2022/ng-nest-ui-anchor.mjs +17 -17
  369. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  370. package/fesm2022/ng-nest-ui-api.mjs +8 -8
  371. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  372. package/fesm2022/ng-nest-ui-auto-complete.mjs +14 -14
  373. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  374. package/fesm2022/ng-nest-ui-avatar.mjs +17 -17
  375. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  376. package/fesm2022/ng-nest-ui-back-top.mjs +11 -11
  377. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  378. package/fesm2022/ng-nest-ui-badge.mjs +11 -11
  379. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  380. package/fesm2022/ng-nest-ui-base-form.mjs +10 -10
  381. package/fesm2022/ng-nest-ui-button.mjs +18 -18
  382. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  383. package/fesm2022/ng-nest-ui-calendar.mjs +11 -11
  384. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  385. package/fesm2022/ng-nest-ui-card.mjs +11 -11
  386. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  387. package/fesm2022/ng-nest-ui-carousel.mjs +18 -18
  388. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  389. package/fesm2022/ng-nest-ui-cascade.mjs +14 -14
  390. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  391. package/fesm2022/ng-nest-ui-checkbox.mjs +11 -11
  392. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  393. package/fesm2022/ng-nest-ui-collapse.mjs +18 -18
  394. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  395. package/fesm2022/ng-nest-ui-color-picker.mjs +14 -14
  396. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  397. package/fesm2022/ng-nest-ui-color.mjs +11 -11
  398. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  399. package/fesm2022/ng-nest-ui-comment.mjs +17 -17
  400. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  401. package/fesm2022/ng-nest-ui-container.mjs +36 -36
  402. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  403. package/fesm2022/ng-nest-ui-core.mjs +15 -15
  404. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  405. package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
  406. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  407. package/fesm2022/ng-nest-ui-date-picker.mjs +51 -51
  408. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  409. package/fesm2022/ng-nest-ui-description.mjs +16 -16
  410. package/fesm2022/ng-nest-ui-dialog.mjs +44 -44
  411. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  412. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  413. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  414. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  415. package/fesm2022/ng-nest-ui-drawer.mjs +35 -35
  416. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  417. package/fesm2022/ng-nest-ui-dropdown.mjs +14 -14
  418. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  419. package/fesm2022/ng-nest-ui-empty.mjs +11 -11
  420. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  421. package/fesm2022/ng-nest-ui-examples.mjs +8 -8
  422. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  423. package/fesm2022/ng-nest-ui-find.mjs +11 -11
  424. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  425. package/fesm2022/ng-nest-ui-form.mjs +17 -17
  426. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  427. package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
  428. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  429. package/fesm2022/ng-nest-ui-i18n.mjs +370 -64
  430. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  431. package/fesm2022/ng-nest-ui-icon.mjs +14 -14
  432. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  433. package/fesm2022/ng-nest-ui-image.mjs +21 -21
  434. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  435. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  436. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  437. package/fesm2022/ng-nest-ui-input-number.mjs +11 -11
  438. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  439. package/fesm2022/ng-nest-ui-input.mjs +17 -17
  440. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  441. package/fesm2022/ng-nest-ui-keyword.mjs +10 -10
  442. package/fesm2022/ng-nest-ui-layout.mjs +16 -16
  443. package/fesm2022/ng-nest-ui-link.mjs +11 -11
  444. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  445. package/fesm2022/ng-nest-ui-list.mjs +26 -26
  446. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  447. package/fesm2022/ng-nest-ui-loading.mjs +11 -11
  448. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  449. package/fesm2022/ng-nest-ui-menu.mjs +16 -16
  450. package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
  451. package/fesm2022/ng-nest-ui-message.mjs +10 -10
  452. package/fesm2022/ng-nest-ui-notification.mjs +10 -10
  453. package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
  454. package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
  455. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  456. package/fesm2022/ng-nest-ui-pagination.mjs +121 -40
  457. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  458. package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
  459. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  460. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
  461. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  462. package/fesm2022/ng-nest-ui-popover.mjs +14 -14
  463. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  464. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  465. package/fesm2022/ng-nest-ui-progress.mjs +11 -11
  466. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  467. package/fesm2022/ng-nest-ui-radio.mjs +11 -11
  468. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  469. package/fesm2022/ng-nest-ui-rate.mjs +11 -11
  470. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  471. package/fesm2022/ng-nest-ui-resizable.mjs +10 -10
  472. package/fesm2022/ng-nest-ui-result.mjs +11 -11
  473. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  474. package/fesm2022/ng-nest-ui-ripple.mjs +10 -10
  475. package/fesm2022/ng-nest-ui-select.mjs +14 -14
  476. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  477. package/fesm2022/ng-nest-ui-skeleton.mjs +10 -10
  478. package/fesm2022/ng-nest-ui-slider-select.mjs +11 -11
  479. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  480. package/fesm2022/ng-nest-ui-slider.mjs +11 -11
  481. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  482. package/fesm2022/ng-nest-ui-statistic.mjs +16 -16
  483. package/fesm2022/ng-nest-ui-steps.mjs +11 -11
  484. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  485. package/fesm2022/ng-nest-ui-switch.mjs +11 -11
  486. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  487. package/fesm2022/ng-nest-ui-table.mjs +44 -29
  488. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  489. package/fesm2022/ng-nest-ui-tabs.mjs +26 -26
  490. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  491. package/fesm2022/ng-nest-ui-tag.mjs +11 -11
  492. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  493. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
  494. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  495. package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
  496. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  497. package/fesm2022/ng-nest-ui-theme.mjs +11 -11
  498. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  499. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  500. package/fesm2022/ng-nest-ui-time-picker.mjs +18 -18
  501. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  502. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  503. package/fesm2022/ng-nest-ui-timeline.mjs +11 -11
  504. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  505. package/fesm2022/ng-nest-ui-tooltip.mjs +14 -14
  506. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  507. package/fesm2022/ng-nest-ui-transfer.mjs +11 -11
  508. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  509. package/fesm2022/ng-nest-ui-tree-file.mjs +11 -11
  510. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  511. package/fesm2022/ng-nest-ui-tree-select.mjs +14 -14
  512. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  513. package/fesm2022/ng-nest-ui-tree.mjs +20 -20
  514. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  515. package/fesm2022/ng-nest-ui-typography.mjs +11 -11
  516. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  517. package/fesm2022/ng-nest-ui-upload.mjs +15 -15
  518. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  519. package/i18n/i18n.property.d.ts +6 -0
  520. package/i18n/languages/ar_EG.d.ts +6 -0
  521. package/i18n/languages/bg_BG.d.ts +6 -0
  522. package/i18n/languages/ca_ES.d.ts +6 -0
  523. package/i18n/languages/cs_CZ.d.ts +6 -0
  524. package/i18n/languages/da_DK.d.ts +6 -0
  525. package/i18n/languages/de_DE.d.ts +6 -0
  526. package/i18n/languages/el_GR.d.ts +6 -0
  527. package/i18n/languages/en_GB.d.ts +6 -0
  528. package/i18n/languages/en_US.d.ts +6 -0
  529. package/i18n/languages/es_ES.d.ts +6 -0
  530. package/i18n/languages/et_EE.d.ts +6 -0
  531. package/i18n/languages/fa_IR.d.ts +6 -0
  532. package/i18n/languages/fi_FI.d.ts +6 -0
  533. package/i18n/languages/fr_BE.d.ts +6 -0
  534. package/i18n/languages/fr_FR.d.ts +6 -0
  535. package/i18n/languages/he_IL.d.ts +6 -0
  536. package/i18n/languages/hi_IN.d.ts +6 -0
  537. package/i18n/languages/hr_HR.d.ts +6 -0
  538. package/i18n/languages/hu_HU.d.ts +6 -0
  539. package/i18n/languages/hy_AM.d.ts +6 -0
  540. package/i18n/languages/id_ID.d.ts +6 -0
  541. package/i18n/languages/is_IS.d.ts +6 -0
  542. package/i18n/languages/it_IT.d.ts +6 -0
  543. package/i18n/languages/ja_JP.d.ts +6 -0
  544. package/i18n/languages/ka_GE.d.ts +6 -0
  545. package/i18n/languages/kn_IN.d.ts +6 -0
  546. package/i18n/languages/ko_KR.d.ts +6 -0
  547. package/i18n/languages/ku_IQ.d.ts +6 -0
  548. package/i18n/languages/lv_LV.d.ts +6 -0
  549. package/i18n/languages/mn_MN.d.ts +6 -0
  550. package/i18n/languages/ms_MY.d.ts +6 -0
  551. package/i18n/languages/nb_NO.d.ts +6 -0
  552. package/i18n/languages/ne_NP.d.ts +6 -0
  553. package/i18n/languages/nl_BE.d.ts +6 -0
  554. package/i18n/languages/nl_NL.d.ts +6 -0
  555. package/i18n/languages/pl_PL.d.ts +6 -0
  556. package/i18n/languages/pt_BR.d.ts +6 -0
  557. package/i18n/languages/pt_PT.d.ts +6 -0
  558. package/i18n/languages/ro_RO.d.ts +6 -0
  559. package/i18n/languages/ru_RU.d.ts +6 -0
  560. package/i18n/languages/sk_SK.d.ts +6 -0
  561. package/i18n/languages/sl_SI.d.ts +6 -0
  562. package/i18n/languages/sr_RS.d.ts +6 -0
  563. package/i18n/languages/sv_SE.d.ts +6 -0
  564. package/i18n/languages/ta_IN.d.ts +6 -0
  565. package/i18n/languages/th_TH.d.ts +6 -0
  566. package/i18n/languages/tr_TR.d.ts +6 -0
  567. package/i18n/languages/uk_UA.d.ts +6 -0
  568. package/i18n/languages/vi_VN.d.ts +6 -0
  569. package/i18n/languages/zh_CN.d.ts +6 -0
  570. package/i18n/languages/zh_TW.d.ts +6 -0
  571. package/package.json +142 -142
  572. package/pagination/pagination.component.d.ts +26 -1
  573. package/pagination/pagination.property.d.ts +31 -5
  574. package/style/mixins/reset.scss +4 -2
  575. package/table/table.property.d.ts +17 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-carousel.mjs","sources":["../../../../lib/ng-nest/ui/carousel/carousel.property.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.html","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.html","../../../../lib/ng-nest/ui/carousel/carousel.module.ts","../../../../lib/ng-nest/ui/carousel/ng-nest-ui-carousel.ts"],"sourcesContent":["import { XProperty, XPropertyFunction, XToNumber, XToCssPixelValue, XToBoolean } from '@ng-nest/ui/core';\r\nimport { Component, input, model } from '@angular/core';\r\nimport type { XNumber, XBoolean, XShadow, XDisplayDirection, XTrigger } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Carousel\r\n * @selector x-carousel\r\n * @decorator component\r\n */\r\nexport const XCarouselPrefix = 'x-carousel';\r\nconst X_CAROUSEL_CONFIG_NAME = 'carousel';\r\n\r\n/**\r\n * Carousel Property\r\n */\r\n@Component({ selector: `${XCarouselPrefix}-property`, template: '' })\r\nexport class XCarouselProperty extends XPropertyFunction(X_CAROUSEL_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 当前激活的幻灯片索引\r\n * @en_US Index of the currently active slide\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel [active]=\"1\" (activeChange)=\"activeChange($event)\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * <x-carousel [(active)]=\"active\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n * ```typescript\r\n * active = signal(1)\r\n * activeChange(active: number) {\r\n * console.log(active)\r\n * }\r\n * ```\r\n *\r\n */\r\n readonly active = model<number>(0);\r\n /**\r\n * @zh_CN 幻灯片高度\r\n * @en_US Slide height\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel height=\"18rem\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly height = input<string, XNumber>(this.config?.height ?? '15rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 切换器触发方式\r\n * @en_US Switcher trigger method\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel trigger=\"click\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly trigger = input<XCarouselTrigger>(this.config?.trigger ?? 'hover');\r\n /**\r\n * @zh_CN 箭头显示隐藏方式\r\n * @en_US Arrow shows how to hide\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel arrow=\"always\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * <x-carousel arrow=\"never\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly arrow = input<XCarouselArrow>(this.config?.arrow ?? 'hover');\r\n /**\r\n * @zh_CN 幻灯片轮播方向\r\n * @en_US Slide rotation direction\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel direction=\"vertical\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly direction = input<XCarouselDirection>(this.config?.direction ?? 'horizontal');\r\n /**\r\n * @zh_CN 自动切换\r\n * @en_US Automatic switching\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel autoplay=\"false\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly autoplay = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 自动切换时间间隔,ms\r\n * @en_US Automatic switching time interval. ms\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel interval=\"5000\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly interval = input<number, XNumber>(3000, { transform: XToNumber });\r\n /**\r\n * @zh_CN 切换器是否显示在外面\r\n * @en_US Whether the switcher is displayed outside\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel outside>\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly outside = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 是否以卡片的方式显示幻灯片\r\n * @en_US Whether to display the slideshow as a card\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel card>\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly card = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示文字\r\n * @en_US Display text\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel text=\"text info\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly text = input<string>('');\r\n /**\r\n * @zh_CN 显示进度条\r\n * @en_US Show progress\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel progress>\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly progress = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 进度条颜色\r\n * @en_US Progress color\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel progress progressColor=\"blue\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly progressColor = input<string>('');\r\n /**\r\n * @zh_CN 显示当前页面\r\n * @en_US Show current page\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel current>\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly current = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n\r\n/**\r\n * @zh_CN 指示器切换方式\r\n * @en_US Indicator switching method\r\n */\r\nexport type XCarouselTrigger = XTrigger;\r\n\r\n/**\r\n * @zh_CN 切换箭头显示方式\r\n * @en_US Toggle arrow display\r\n */\r\nexport type XCarouselArrow = XShadow;\r\n\r\n/**\r\n * @zh_CN 走马灯展示的方向\r\n * @en_US The direction of the revolving lantern\r\n */\r\nexport type XCarouselDirection = XDisplayDirection;\r\n\r\n/**\r\n * Carousel Panel\r\n * @selector x-carousel-panel\r\n * @decorator component\r\n */\r\nexport const XCarouselPanelPrefix = 'x-carousel-panel';\r\n\r\n/**\r\n * Carousel Panel Property\r\n */\r\n@Component({ selector: `${XCarouselPanelPrefix}-property`, template: '' })\r\nexport class XCarouselPanelProperty extends XProperty {\r\n /**\r\n * @zh_CN 激活当前幻灯片\r\n * @en_US Activate the current slide\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel>\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel active>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly active = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n PLATFORM_ID,\r\n inject,\r\n computed,\r\n viewChild,\r\n signal\r\n} from '@angular/core';\r\nimport { XCarouselPrefix, XCarouselProperty } from './carousel.property';\r\nimport { XIsUndefined, XIsChange, XIsEmpty, XResize } from '@ng-nest/ui/core';\r\nimport { Subject, Subscription, interval } from 'rxjs';\r\nimport { takeUntil, debounceTime, tap } from 'rxjs/operators';\r\nimport { NgClass, isPlatformBrowser } from '@angular/common';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XProgressComponent } from '@ng-nest/ui/progress';\r\nimport type { XResizeObserver } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XCarouselPrefix}`,\r\n standalone: true,\r\n imports: [NgClass, XButtonComponent, XProgressComponent],\r\n templateUrl: './carousel.component.html',\r\n styleUrls: ['./carousel.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselComponent extends XCarouselProperty {\r\n carousel = viewChild.required<ElementRef<HTMLElement>>('carousel');\r\n content = viewChild.required<ElementRef<HTMLElement>>('content');\r\n start = signal(-1);\r\n before = signal(-1);\r\n timer?: Subscription;\r\n precentTimer?: Subscription;\r\n platformId = inject(PLATFORM_ID);\r\n isBrowser = isPlatformBrowser(this.platformId);\r\n percent = signal(0);\r\n count = signal(0);\r\n panels = signal<object[]>([]);\r\n private unSubject = new Subject<void>();\r\n private resizeObserver!: XResizeObserver;\r\n\r\n classMap = computed(() => ({\r\n [`${XCarouselPrefix}-${this.direction()}`]: !XIsEmpty(this.direction())\r\n }));\r\n\r\n updatePanel = new Subject<void>();\r\n\r\n page = computed(() => this.active() + 1);\r\n\r\n ngAfterViewInit() {\r\n this.autoplay() && this.resetInterval();\r\n XResize(this.content().nativeElement)\r\n .pipe(\r\n debounceTime(30),\r\n tap(({ resizeObserver }) => {\r\n this.resizeObserver = resizeObserver;\r\n this.updatePanel.next();\r\n }),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges): void {\r\n const { active } = simples;\r\n XIsChange(active) && this.setActiveItem(this.active());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.timer?.unsubscribe();\r\n this.precentTimer?.unsubscribe();\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n this.updatePanel.complete();\r\n }\r\n\r\n action(index: number, increase: number, event?: string): void {\r\n if (!XIsUndefined(event) && this.trigger() !== event) return;\r\n this.autoplay() && this.resetInterval();\r\n this.setActiveItem(index + increase);\r\n }\r\n\r\n resetInterval(): void {\r\n if (!this.isBrowser) return;\r\n this.timer?.unsubscribe();\r\n if (this.progress()) {\r\n this.precentTimer?.unsubscribe();\r\n this.percent.set(0);\r\n const js = this.interval() / 100;\r\n this.precentTimer = interval(js)\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.percent.update((x) => x + 1);\r\n });\r\n }\r\n this.timer = interval(this.interval())\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.percent.set(0);\r\n this.setActiveItem(this.active() + 1);\r\n });\r\n }\r\n\r\n setActiveItem(index: number): void {\r\n if (this.start() === -1) return;\r\n this.before.set(this.active());\r\n const nextValue = index > this.start() ? 0 : index < 0 ? this.start() : index;\r\n this.active.set(nextValue);\r\n this.updatePanel.next();\r\n }\r\n\r\n getActivated(index: number) {\r\n return this.active() === index;\r\n }\r\n}\r\n","<div\r\n #carousel\r\n class=\"x-carousel\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-carousel-arrow-always]=\"arrow() === 'always'\"\r\n [class.x-carousel-has-current]=\"current()\"\r\n [class.x-carousel-indicator-outside]=\"outside() || card()\"\r\n>\r\n <div #content class=\"x-carousel-content\" [style.height]=\"height()\">\r\n @if (arrow() !== 'never' && direction() !== 'vertical') {\r\n <x-button class=\"arrow-left\" icon=\"fto-chevron-left\" (click)=\"action(active(), -1)\"></x-button>\r\n <x-button class=\"arrow-right\" icon=\"fto-chevron-right\" (click)=\"action(active(), 1)\"></x-button>\r\n }\r\n <ng-content></ng-content>\r\n @if (text()) {\r\n <div class=\"x-carousel-text\">{{ text() }}</div>\r\n }\r\n @if (current()) {\r\n <div class=\"x-carousel-current\">\r\n <span class=\"x-carousel-active\">{{ page() }}</span> /\r\n <span class=\"x-carousel-count\">{{ count() }}</span>\r\n </div>\r\n }\r\n @if (progress()) {\r\n <div class=\"x-carousel-progress\">\r\n <x-progress [percent]=\"percent()\" [color]=\"progressColor()\" [info]=\"false\" height=\"0.325rem\"></x-progress>\r\n </div>\r\n }\r\n </div>\r\n <ul class=\"x-carousel-indicator\">\r\n @for (panel of panels(); track $index) {\r\n <li\r\n [class.x-activated]=\"getActivated($index)\"\r\n (click)=\"action($index, 0, 'click')\"\r\n (mouseenter)=\"action($index, 0, 'hover')\"\r\n >\r\n <x-button type=\"text\"></x-button>\r\n </li>\r\n }\r\n </ul>\r\n</div>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n OnDestroy,\r\n signal,\r\n HostBinding,\r\n computed\r\n} from '@angular/core';\r\nimport { XCarouselPanelPrefix, XCarouselPanelProperty } from './carousel.property';\r\nimport { XDropAnimation } from '@ng-nest/ui/core';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XCarouselPanelPrefix}`,\r\n standalone: true,\r\n templateUrl: './carousel-panel.component.html',\r\n styleUrls: ['./carousel-panel.component.scss'],\r\n animations: [XDropAnimation],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselPanelComponent extends XCarouselPanelProperty implements OnInit, OnDestroy {\r\n @HostBinding('class.x-carousel-card') get getCard() {\r\n return !!this.carousel?.card();\r\n }\r\n @HostBinding('class.x-activated') get getActivated() {\r\n return this.activeSignal();\r\n }\r\n @HostBinding('class.x-carousel-in-stage') get getInStage() {\r\n return this.inStage();\r\n }\r\n @HostBinding('class.x-carousel-animating') get getAnimating() {\r\n return this.animating();\r\n }\r\n @HostBinding('style.transform') get getTransform() {\r\n return `${this.translateType()}(${this.translate()}px) scale(${this.scale()})`;\r\n }\r\n index = signal(0);\r\n animating = signal(false);\r\n preTranslate!: number;\r\n cardScale = signal(0.83);\r\n scale = signal(1);\r\n translate = signal(0);\r\n translateType = signal('translateX');\r\n inStage = signal(false);\r\n unSubject = new Subject<void>();\r\n carousel = inject(XCarouselComponent, { optional: true, host: true });\r\n activeSignal = signal(this.active());\r\n card = computed(() => this.carousel?.card() ?? false);\r\n private elementRef = inject(ElementRef);\r\n\r\n ngOnInit() {\r\n if (!this.carousel) return;\r\n this.carousel.count.update((x) => x + 1);\r\n this.carousel.start.update((x) => x + 1);\r\n this.index.set(this.carousel.start());\r\n\r\n this.carousel.panels.update((x) => {\r\n x.push(this.elementRef);\r\n return [...x];\r\n });\r\n this.carousel.updatePanel.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.update();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!this.carousel) return;\r\n this.carousel.start.update((x) => x - 1);\r\n const idx = this.carousel.panels().indexOf(this.elementRef);\r\n this.carousel.panels.update((x) => {\r\n x.splice(idx, 1);\r\n return [...x];\r\n });\r\n }\r\n\r\n setActive() {\r\n if (!this.carousel) return;\r\n const isActive: boolean = this.carousel.active() === this.index();\r\n if (this.activeSignal() !== isActive) {\r\n this.activeSignal.set(isActive);\r\n }\r\n }\r\n\r\n setStyles() {\r\n if (!this.carousel) return;\r\n const width = this.elementRef.nativeElement.offsetWidth;\r\n const height = this.elementRef.nativeElement.offsetHeight;\r\n let offset = this.carousel.active() - this.index();\r\n let distance = width;\r\n if (this.carousel.card()) {\r\n if (this.carousel.direction() === 'vertical') {\r\n console.warn('[x-carousel] vertical direction is not supported in card mode');\r\n }\r\n this.inStage.set(Math.round(Math.abs(offset)) <= 1);\r\n this.translate.set(this.calcCardTranslate(this.index(), this.carousel.active())!);\r\n this.scale.set(offset === 0 ? 1 : this.cardScale());\r\n } else {\r\n if (this.carousel?.direction() === 'vertical') {\r\n distance = height;\r\n this.translateType.set('translateY');\r\n }\r\n const map: any = {\r\n '-2': -distance,\r\n '-1': distance,\r\n '0': 0,\r\n '1': 0 - distance,\r\n '2': distance\r\n };\r\n offset = offset < -2 ? -2 : offset > 2 ? 2 : offset;\r\n this.translate.set(map[offset]);\r\n }\r\n this.animating.set(\r\n this.carousel.active() === this.index() ||\r\n this.carousel.before() === this.index() ||\r\n this.carousel.start() === Math.abs(offset) ||\r\n this.carousel.card()\r\n );\r\n }\r\n\r\n calcCardTranslate(index: number, activeIndex: number) {\r\n if (!this.carousel) return;\r\n const parentWidth = this.carousel.carousel().nativeElement.offsetWidth;\r\n let offset: number = index - activeIndex;\r\n let activeFirstOrLast = this.carousel.start() > 1 && this.carousel.start() === Math.abs(offset);\r\n if (this.inStage() || activeFirstOrLast) {\r\n if (activeFirstOrLast) offset = offset < 0 ? 1 : -1;\r\n return (parentWidth * ((2 - this.cardScale()) * offset + 1)) / 4;\r\n } else if (index < activeIndex) {\r\n return (-(1 + this.cardScale()) * parentWidth) / 4;\r\n } else {\r\n return ((3 + this.cardScale()) * parentWidth) / 4;\r\n }\r\n }\r\n\r\n update() {\r\n this.setActive();\r\n this.setStyles();\r\n }\r\n\r\n panelClick() {\r\n if (!this.carousel) return;\r\n if (this.carousel.card() && this.carousel.active() !== this.index()) {\r\n this.carousel.autoplay() && this.carousel.resetInterval();\r\n this.carousel.setActiveItem(this.index());\r\n }\r\n }\r\n}\r\n","<div #carouselPanel class=\"x-carousel-panel\" (click)=\"panelClick()\">\r\n @if (card()) {\r\n <div [hidden]=\"activeSignal()\" class=\"x-carousel-mask\"></div>\r\n }\r\n <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { XCarouselPanelComponent } from './carousel-panel.component';\r\n\r\n@NgModule({\r\n imports: [XCarouselComponent, XCarouselPanelComponent],\r\n exports: [XCarouselComponent, XCarouselPanelComponent]\r\n})\r\nexport class XCarouselModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["takeUntil"],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-carousel.mjs","sources":["../../../../lib/ng-nest/ui/carousel/carousel.property.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.html","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.html","../../../../lib/ng-nest/ui/carousel/carousel.module.ts","../../../../lib/ng-nest/ui/carousel/ng-nest-ui-carousel.ts"],"sourcesContent":["import { XProperty, XPropertyFunction, XToNumber, XToCssPixelValue, XToBoolean } from '@ng-nest/ui/core';\r\nimport { Component, input, model } from '@angular/core';\r\nimport type { XNumber, XBoolean, XShadow, XDisplayDirection, XTrigger } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Carousel\r\n * @selector x-carousel\r\n * @decorator component\r\n */\r\nexport const XCarouselPrefix = 'x-carousel';\r\nconst X_CAROUSEL_CONFIG_NAME = 'carousel';\r\n\r\n/**\r\n * Carousel Property\r\n */\r\n@Component({ selector: `${XCarouselPrefix}-property`, template: '' })\r\nexport class XCarouselProperty extends XPropertyFunction(X_CAROUSEL_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 当前激活的幻灯片索引\r\n * @en_US Index of the currently active slide\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel [active]=\"1\" (activeChange)=\"activeChange($event)\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * <x-carousel [(active)]=\"active\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n * ```typescript\r\n * active = signal(1)\r\n * activeChange(active: number) {\r\n * console.log(active)\r\n * }\r\n * ```\r\n *\r\n */\r\n readonly active = model<number>(0);\r\n /**\r\n * @zh_CN 幻灯片高度\r\n * @en_US Slide height\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel height=\"18rem\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly height = input<string, XNumber>(this.config?.height ?? '15rem', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 切换器触发方式\r\n * @en_US Switcher trigger method\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel trigger=\"click\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly trigger = input<XCarouselTrigger>(this.config?.trigger ?? 'hover');\r\n /**\r\n * @zh_CN 箭头显示隐藏方式\r\n * @en_US Arrow shows how to hide\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel arrow=\"always\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * <x-carousel arrow=\"never\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly arrow = input<XCarouselArrow>(this.config?.arrow ?? 'hover');\r\n /**\r\n * @zh_CN 幻灯片轮播方向\r\n * @en_US Slide rotation direction\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel direction=\"vertical\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly direction = input<XCarouselDirection>(this.config?.direction ?? 'horizontal');\r\n /**\r\n * @zh_CN 自动切换\r\n * @en_US Automatic switching\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel autoplay=\"false\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly autoplay = input<boolean, XBoolean>(true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 自动切换时间间隔,ms\r\n * @en_US Automatic switching time interval. ms\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel interval=\"5000\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly interval = input<number, XNumber>(3000, { transform: XToNumber });\r\n /**\r\n * @zh_CN 切换器是否显示在外面\r\n * @en_US Whether the switcher is displayed outside\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel outside>\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly outside = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 是否以卡片的方式显示幻灯片\r\n * @en_US Whether to display the slideshow as a card\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel card>\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly card = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 显示文字\r\n * @en_US Display text\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel text=\"text info\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly text = input<string>('');\r\n /**\r\n * @zh_CN 显示进度条\r\n * @en_US Show progress\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel progress>\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly progress = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 进度条颜色\r\n * @en_US Progress color\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel progress progressColor=\"blue\">\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly progressColor = input<string>('');\r\n /**\r\n * @zh_CN 显示当前页面\r\n * @en_US Show current page\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel current>\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly current = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n\r\n/**\r\n * @zh_CN 指示器切换方式\r\n * @en_US Indicator switching method\r\n */\r\nexport type XCarouselTrigger = XTrigger;\r\n\r\n/**\r\n * @zh_CN 切换箭头显示方式\r\n * @en_US Toggle arrow display\r\n */\r\nexport type XCarouselArrow = XShadow;\r\n\r\n/**\r\n * @zh_CN 走马灯展示的方向\r\n * @en_US The direction of the revolving lantern\r\n */\r\nexport type XCarouselDirection = XDisplayDirection;\r\n\r\n/**\r\n * Carousel Panel\r\n * @selector x-carousel-panel\r\n * @decorator component\r\n */\r\nexport const XCarouselPanelPrefix = 'x-carousel-panel';\r\n\r\n/**\r\n * Carousel Panel Property\r\n */\r\n@Component({ selector: `${XCarouselPanelPrefix}-property`, template: '' })\r\nexport class XCarouselPanelProperty extends XProperty {\r\n /**\r\n * @zh_CN 激活当前幻灯片\r\n * @en_US Activate the current slide\r\n * @example\r\n *\r\n * ```html\r\n * <x-carousel>\r\n * <x-carousel-panel>0</x-carousel-panel>\r\n * <x-carousel-panel active>1</x-carousel-panel>\r\n * </x-carousel>\r\n * ```\r\n *\r\n */\r\n readonly active = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n PLATFORM_ID,\r\n inject,\r\n computed,\r\n viewChild,\r\n signal\r\n} from '@angular/core';\r\nimport { XCarouselPrefix, XCarouselProperty } from './carousel.property';\r\nimport { XIsUndefined, XIsChange, XIsEmpty, XResize } from '@ng-nest/ui/core';\r\nimport { Subject, Subscription, interval } from 'rxjs';\r\nimport { takeUntil, debounceTime, tap } from 'rxjs/operators';\r\nimport { NgClass, isPlatformBrowser } from '@angular/common';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XProgressComponent } from '@ng-nest/ui/progress';\r\nimport type { XResizeObserver } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XCarouselPrefix}`,\r\n standalone: true,\r\n imports: [NgClass, XButtonComponent, XProgressComponent],\r\n templateUrl: './carousel.component.html',\r\n styleUrls: ['./carousel.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselComponent extends XCarouselProperty {\r\n carousel = viewChild.required<ElementRef<HTMLElement>>('carousel');\r\n content = viewChild.required<ElementRef<HTMLElement>>('content');\r\n start = signal(-1);\r\n before = signal(-1);\r\n timer?: Subscription;\r\n precentTimer?: Subscription;\r\n platformId = inject(PLATFORM_ID);\r\n isBrowser = isPlatformBrowser(this.platformId);\r\n percent = signal(0);\r\n count = signal(0);\r\n panels = signal<object[]>([]);\r\n private unSubject = new Subject<void>();\r\n private resizeObserver!: XResizeObserver;\r\n\r\n classMap = computed(() => ({\r\n [`${XCarouselPrefix}-${this.direction()}`]: !XIsEmpty(this.direction())\r\n }));\r\n\r\n updatePanel = new Subject<void>();\r\n\r\n page = computed(() => this.active() + 1);\r\n\r\n ngAfterViewInit() {\r\n this.autoplay() && this.resetInterval();\r\n XResize(this.content().nativeElement)\r\n .pipe(\r\n debounceTime(30),\r\n tap(({ resizeObserver }) => {\r\n this.resizeObserver = resizeObserver;\r\n this.updatePanel.next();\r\n }),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges): void {\r\n const { active } = simples;\r\n XIsChange(active) && this.setActiveItem(this.active());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.timer?.unsubscribe();\r\n this.precentTimer?.unsubscribe();\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n this.updatePanel.complete();\r\n }\r\n\r\n action(index: number, increase: number, event?: string): void {\r\n if (!XIsUndefined(event) && this.trigger() !== event) return;\r\n this.autoplay() && this.resetInterval();\r\n this.setActiveItem(index + increase);\r\n }\r\n\r\n resetInterval(): void {\r\n if (!this.isBrowser) return;\r\n this.timer?.unsubscribe();\r\n if (this.progress()) {\r\n this.precentTimer?.unsubscribe();\r\n this.percent.set(0);\r\n const js = this.interval() / 100;\r\n this.precentTimer = interval(js)\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.percent.update((x) => x + 1);\r\n });\r\n }\r\n this.timer = interval(this.interval())\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.percent.set(0);\r\n this.setActiveItem(this.active() + 1);\r\n });\r\n }\r\n\r\n setActiveItem(index: number): void {\r\n if (this.start() === -1) return;\r\n this.before.set(this.active());\r\n const nextValue = index > this.start() ? 0 : index < 0 ? this.start() : index;\r\n this.active.set(nextValue);\r\n this.updatePanel.next();\r\n }\r\n\r\n getActivated(index: number) {\r\n return this.active() === index;\r\n }\r\n}\r\n","<div\r\n #carousel\r\n class=\"x-carousel\"\r\n [ngClass]=\"classMap()\"\r\n [class.x-carousel-arrow-always]=\"arrow() === 'always'\"\r\n [class.x-carousel-has-current]=\"current()\"\r\n [class.x-carousel-indicator-outside]=\"outside() || card()\"\r\n>\r\n <div #content class=\"x-carousel-content\" [style.height]=\"height()\">\r\n @if (arrow() !== 'never' && direction() !== 'vertical') {\r\n <x-button class=\"arrow-left\" icon=\"fto-chevron-left\" (click)=\"action(active(), -1)\"></x-button>\r\n <x-button class=\"arrow-right\" icon=\"fto-chevron-right\" (click)=\"action(active(), 1)\"></x-button>\r\n }\r\n <ng-content></ng-content>\r\n @if (text()) {\r\n <div class=\"x-carousel-text\">{{ text() }}</div>\r\n }\r\n @if (current()) {\r\n <div class=\"x-carousel-current\">\r\n <span class=\"x-carousel-active\">{{ page() }}</span> /\r\n <span class=\"x-carousel-count\">{{ count() }}</span>\r\n </div>\r\n }\r\n @if (progress()) {\r\n <div class=\"x-carousel-progress\">\r\n <x-progress [percent]=\"percent()\" [color]=\"progressColor()\" [info]=\"false\" height=\"0.325rem\"></x-progress>\r\n </div>\r\n }\r\n </div>\r\n <ul class=\"x-carousel-indicator\">\r\n @for (panel of panels(); track $index) {\r\n <li\r\n [class.x-activated]=\"getActivated($index)\"\r\n (click)=\"action($index, 0, 'click')\"\r\n (mouseenter)=\"action($index, 0, 'hover')\"\r\n >\r\n <x-button type=\"text\"></x-button>\r\n </li>\r\n }\r\n </ul>\r\n</div>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n OnDestroy,\r\n signal,\r\n HostBinding,\r\n computed\r\n} from '@angular/core';\r\nimport { XCarouselPanelPrefix, XCarouselPanelProperty } from './carousel.property';\r\nimport { XDropAnimation } from '@ng-nest/ui/core';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XCarouselPanelPrefix}`,\r\n standalone: true,\r\n templateUrl: './carousel-panel.component.html',\r\n styleUrls: ['./carousel-panel.component.scss'],\r\n animations: [XDropAnimation],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselPanelComponent extends XCarouselPanelProperty implements OnInit, OnDestroy {\r\n @HostBinding('class.x-carousel-card') get getCard() {\r\n return !!this.carousel?.card();\r\n }\r\n @HostBinding('class.x-activated') get getActivated() {\r\n return this.activeSignal();\r\n }\r\n @HostBinding('class.x-carousel-in-stage') get getInStage() {\r\n return this.inStage();\r\n }\r\n @HostBinding('class.x-carousel-animating') get getAnimating() {\r\n return this.animating();\r\n }\r\n @HostBinding('style.transform') get getTransform() {\r\n return `${this.translateType()}(${this.translate()}px) scale(${this.scale()})`;\r\n }\r\n index = signal(0);\r\n animating = signal(false);\r\n preTranslate!: number;\r\n cardScale = signal(0.83);\r\n scale = signal(1);\r\n translate = signal(0);\r\n translateType = signal('translateX');\r\n inStage = signal(false);\r\n unSubject = new Subject<void>();\r\n carousel = inject(XCarouselComponent, { optional: true, host: true });\r\n activeSignal = signal(this.active());\r\n card = computed(() => this.carousel?.card() ?? false);\r\n private elementRef = inject(ElementRef);\r\n\r\n ngOnInit() {\r\n if (!this.carousel) return;\r\n this.carousel.count.update((x) => x + 1);\r\n this.carousel.start.update((x) => x + 1);\r\n this.index.set(this.carousel.start());\r\n\r\n this.carousel.panels.update((x) => {\r\n x.push(this.elementRef);\r\n return [...x];\r\n });\r\n this.carousel.updatePanel.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.update();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!this.carousel) return;\r\n this.carousel.start.update((x) => x - 1);\r\n const idx = this.carousel.panels().indexOf(this.elementRef);\r\n this.carousel.panels.update((x) => {\r\n x.splice(idx, 1);\r\n return [...x];\r\n });\r\n }\r\n\r\n setActive() {\r\n if (!this.carousel) return;\r\n const isActive: boolean = this.carousel.active() === this.index();\r\n if (this.activeSignal() !== isActive) {\r\n this.activeSignal.set(isActive);\r\n }\r\n }\r\n\r\n setStyles() {\r\n if (!this.carousel) return;\r\n const width = this.elementRef.nativeElement.offsetWidth;\r\n const height = this.elementRef.nativeElement.offsetHeight;\r\n let offset = this.carousel.active() - this.index();\r\n let distance = width;\r\n if (this.carousel.card()) {\r\n if (this.carousel.direction() === 'vertical') {\r\n console.warn('[x-carousel] vertical direction is not supported in card mode');\r\n }\r\n this.inStage.set(Math.round(Math.abs(offset)) <= 1);\r\n this.translate.set(this.calcCardTranslate(this.index(), this.carousel.active())!);\r\n this.scale.set(offset === 0 ? 1 : this.cardScale());\r\n } else {\r\n if (this.carousel?.direction() === 'vertical') {\r\n distance = height;\r\n this.translateType.set('translateY');\r\n }\r\n const map: any = {\r\n '-2': -distance,\r\n '-1': distance,\r\n '0': 0,\r\n '1': 0 - distance,\r\n '2': distance\r\n };\r\n offset = offset < -2 ? -2 : offset > 2 ? 2 : offset;\r\n this.translate.set(map[offset]);\r\n }\r\n this.animating.set(\r\n this.carousel.active() === this.index() ||\r\n this.carousel.before() === this.index() ||\r\n this.carousel.start() === Math.abs(offset) ||\r\n this.carousel.card()\r\n );\r\n }\r\n\r\n calcCardTranslate(index: number, activeIndex: number) {\r\n if (!this.carousel) return;\r\n const parentWidth = this.carousel.carousel().nativeElement.offsetWidth;\r\n let offset: number = index - activeIndex;\r\n let activeFirstOrLast = this.carousel.start() > 1 && this.carousel.start() === Math.abs(offset);\r\n if (this.inStage() || activeFirstOrLast) {\r\n if (activeFirstOrLast) offset = offset < 0 ? 1 : -1;\r\n return (parentWidth * ((2 - this.cardScale()) * offset + 1)) / 4;\r\n } else if (index < activeIndex) {\r\n return (-(1 + this.cardScale()) * parentWidth) / 4;\r\n } else {\r\n return ((3 + this.cardScale()) * parentWidth) / 4;\r\n }\r\n }\r\n\r\n update() {\r\n this.setActive();\r\n this.setStyles();\r\n }\r\n\r\n panelClick() {\r\n if (!this.carousel) return;\r\n if (this.carousel.card() && this.carousel.active() !== this.index()) {\r\n this.carousel.autoplay() && this.carousel.resetInterval();\r\n this.carousel.setActiveItem(this.index());\r\n }\r\n }\r\n}\r\n","<div #carouselPanel class=\"x-carousel-panel\" (click)=\"panelClick()\">\r\n @if (card()) {\r\n <div [hidden]=\"activeSignal()\" class=\"x-carousel-mask\"></div>\r\n }\r\n <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { XCarouselPanelComponent } from './carousel-panel.component';\r\n\r\n@NgModule({\r\n imports: [XCarouselComponent, XCarouselPanelComponent],\r\n exports: [XCarouselComponent, XCarouselPanelComponent]\r\n})\r\nexport class XCarouselModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["takeUntil"],"mappings":"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"}
@@ -119,10 +119,10 @@ class XCascadePortalComponent {
119
119
  });
120
120
  }
121
121
  }
122
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XCascadePortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
123
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: XCascadePortalComponent, isStandalone: true, selector: "x-cascade-portal", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, inputCom: { classPropertyName: "inputCom", publicName: "inputCom", isSignal: true, isRequired: false, transformFunction: null }, nodeTrigger: { classPropertyName: "nodeTrigger", publicName: "nodeTrigger", isSignal: true, isRequired: false, transformFunction: null }, nodeHoverDelay: { classPropertyName: "nodeHoverDelay", publicName: "nodeHoverDelay", isSignal: true, isRequired: false, transformFunction: null }, nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, datas: { classPropertyName: "datas", publicName: "datas", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodes: "nodesChange", animating: "animating", nodeClick: "nodeClick" }, host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.getPlacement" } }, ngImport: i0, template: "<div class=\"x-cascade-portal\" tabindex=\"-1\" (click)=\"inputCom()?.inputFocus('focus'); stopPropagation($event)\">\r\n @for (list of nodes(); track list) {\r\n <x-list\r\n [data]=\"list\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [(ngModel)]=\"values\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (nodeMouseenter)=\"nodeTrigger() === 'hover' && nodeMouseenter($event)\"\r\n (nodeMouseleave)=\"nodeTrigger() === 'hover' && nodeMouseleave()\"\r\n [checked]=\"true\"\r\n [inPortal]=\"true\"\r\n ></x-list>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-cascade-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);background-color:var(--x-background-100);display:flex}.x-cascade-portal:focus{outline:none}.x-cascade-portal>x-list .x-list-option{min-width:8rem}.x-cascade-portal>x-list:not(:first-child){border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XListComponent, selector: "x-list" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
122
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XCascadePortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
123
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XCascadePortalComponent, isStandalone: true, selector: "x-cascade-portal", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, inputCom: { classPropertyName: "inputCom", publicName: "inputCom", isSignal: true, isRequired: false, transformFunction: null }, nodeTrigger: { classPropertyName: "nodeTrigger", publicName: "nodeTrigger", isSignal: true, isRequired: false, transformFunction: null }, nodeHoverDelay: { classPropertyName: "nodeHoverDelay", publicName: "nodeHoverDelay", isSignal: true, isRequired: false, transformFunction: null }, nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, datas: { classPropertyName: "datas", publicName: "datas", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodes: "nodesChange", animating: "animating", nodeClick: "nodeClick" }, host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.getPlacement" } }, ngImport: i0, template: "<div class=\"x-cascade-portal\" tabindex=\"-1\" (click)=\"inputCom()?.inputFocus('focus'); stopPropagation($event)\">\r\n @for (list of nodes(); track list) {\r\n <x-list\r\n [data]=\"list\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [(ngModel)]=\"values\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (nodeMouseenter)=\"nodeTrigger() === 'hover' && nodeMouseenter($event)\"\r\n (nodeMouseleave)=\"nodeTrigger() === 'hover' && nodeMouseleave()\"\r\n [checked]=\"true\"\r\n [inPortal]=\"true\"\r\n ></x-list>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-cascade-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);background-color:var(--x-background-100);display:flex}.x-cascade-portal:focus{outline:none}.x-cascade-portal>x-list .x-list-option{min-width:8rem}.x-cascade-portal>x-list:not(:first-child){border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XListComponent, selector: "x-list" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
124
124
  }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XCascadePortalComponent, decorators: [{
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XCascadePortalComponent, decorators: [{
126
126
  type: Component,
127
127
  args: [{ selector: 'x-cascade-portal', standalone: true, imports: [FormsModule, XListComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], template: "<div class=\"x-cascade-portal\" tabindex=\"-1\" (click)=\"inputCom()?.inputFocus('focus'); stopPropagation($event)\">\r\n @for (list of nodes(); track list) {\r\n <x-list\r\n [data]=\"list\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [(ngModel)]=\"values\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (nodeMouseenter)=\"nodeTrigger() === 'hover' && nodeMouseenter($event)\"\r\n (nodeMouseleave)=\"nodeTrigger() === 'hover' && nodeMouseleave()\"\r\n [checked]=\"true\"\r\n [inPortal]=\"true\"\r\n ></x-list>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-cascade-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);background-color:var(--x-background-100);display:flex}.x-cascade-portal:focus{outline:none}.x-cascade-portal>x-list .x-list-option{min-width:8rem}.x-cascade-portal>x-list:not(:first-child){border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}\n"] }]
128
128
  }], propDecorators: { getPlacement: [{
@@ -285,10 +285,10 @@ class XCascadeProperty extends XFormControlFunction(X_CASCADE_CONFIG_NAME) {
285
285
  */
286
286
  this.nodeEmit = output();
287
287
  }
288
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XCascadeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
289
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.6", type: XCascadeProperty, selector: "x-cascade-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, nodeTrigger: { classPropertyName: "nodeTrigger", publicName: "nodeTrigger", isSignal: true, isRequired: false, transformFunction: null }, nodeHoverDelay: { classPropertyName: "nodeHoverDelay", publicName: "nodeHoverDelay", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, pointer: { classPropertyName: "pointer", publicName: "pointer", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null }, labelAlign: { classPropertyName: "labelAlign", publicName: "labelAlign", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, valueTpl: { classPropertyName: "valueTpl", publicName: "valueTpl", isSignal: true, isRequired: false, transformFunction: null }, valueTplContext: { classPropertyName: "valueTplContext", publicName: "valueTplContext", isSignal: true, isRequired: false, transformFunction: null }, before: { classPropertyName: "before", publicName: "before", isSignal: true, isRequired: false, transformFunction: null }, after: { classPropertyName: "after", publicName: "after", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, inputValidator: { classPropertyName: "inputValidator", publicName: "inputValidator", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange", nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
288
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XCascadeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
289
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: XCascadeProperty, selector: "x-cascade-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, nodeTrigger: { classPropertyName: "nodeTrigger", publicName: "nodeTrigger", isSignal: true, isRequired: false, transformFunction: null }, nodeHoverDelay: { classPropertyName: "nodeHoverDelay", publicName: "nodeHoverDelay", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, pointer: { classPropertyName: "pointer", publicName: "pointer", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null }, labelAlign: { classPropertyName: "labelAlign", publicName: "labelAlign", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, valueTpl: { classPropertyName: "valueTpl", publicName: "valueTpl", isSignal: true, isRequired: false, transformFunction: null }, valueTplContext: { classPropertyName: "valueTplContext", publicName: "valueTplContext", isSignal: true, isRequired: false, transformFunction: null }, before: { classPropertyName: "before", publicName: "before", isSignal: true, isRequired: false, transformFunction: null }, after: { classPropertyName: "after", publicName: "after", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, inputValidator: { classPropertyName: "inputValidator", publicName: "inputValidator", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange", nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
290
290
  }
291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XCascadeProperty, decorators: [{
291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XCascadeProperty, decorators: [{
292
292
  type: Component,
293
293
  args: [{ selector: `${XCascadePrefix}-property`, template: '' }]
294
294
  }] });
@@ -513,20 +513,20 @@ class XCascadeComponent extends XCascadeProperty {
513
513
  setPortal() {
514
514
  this.portalAttached() && this.portalOverlayRef()?.updatePositionStrategy(this.setPlacement());
515
515
  }
516
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XCascadeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
517
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.6", type: XCascadeComponent, isStandalone: true, selector: "x-cascade", providers: [XValueAccessor(XCascadeComponent)], viewQueries: [{ propertyName: "cascade", first: true, predicate: ["cascade"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, read: XInputComponent, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #cascade class=\"x-cascade\">\r\n <div class=\"x-cascade-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"true\"\r\n [clearable]=\"clearable()\"\r\n [ngModel]=\"displayValue()\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContextSignal()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (click)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-cascade{display:inline-block;width:12rem}.x-cascade{margin:0;padding:0;width:100%}.x-cascade x-input{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
516
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XCascadeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
517
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: XCascadeComponent, isStandalone: true, selector: "x-cascade", providers: [XValueAccessor(XCascadeComponent)], viewQueries: [{ propertyName: "cascade", first: true, predicate: ["cascade"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, read: XInputComponent, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #cascade class=\"x-cascade\">\r\n <div class=\"x-cascade-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"true\"\r\n [clearable]=\"clearable()\"\r\n [ngModel]=\"displayValue()\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContextSignal()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (click)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-cascade{display:inline-block;width:12rem}.x-cascade{margin:0;padding:0}.x-cascade{width:100%}.x-cascade x-input{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
518
518
  }
519
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XCascadeComponent, decorators: [{
519
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XCascadeComponent, decorators: [{
520
520
  type: Component,
521
- args: [{ selector: 'x-cascade', standalone: true, imports: [NgClass, FormsModule, ReactiveFormsModule, XInputComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XCascadeComponent)], template: "<div #cascade class=\"x-cascade\">\r\n <div class=\"x-cascade-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"true\"\r\n [clearable]=\"clearable()\"\r\n [ngModel]=\"displayValue()\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContextSignal()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (click)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-cascade{display:inline-block;width:12rem}.x-cascade{margin:0;padding:0;width:100%}.x-cascade x-input{width:100%}\n"] }]
521
+ args: [{ selector: 'x-cascade', standalone: true, imports: [NgClass, FormsModule, ReactiveFormsModule, XInputComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XCascadeComponent)], template: "<div #cascade class=\"x-cascade\">\r\n <div class=\"x-cascade-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"true\"\r\n [clearable]=\"clearable()\"\r\n [ngModel]=\"displayValue()\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContextSignal()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (click)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-cascade{display:inline-block;width:12rem}.x-cascade{margin:0;padding:0}.x-cascade{width:100%}.x-cascade x-input{width:100%}\n"] }]
522
522
  }], ctorParameters: () => [] });
523
523
 
524
524
  class XCascadeModule {
525
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XCascadeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
526
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.6", ngImport: i0, type: XCascadeModule, imports: [XCascadeComponent], exports: [XCascadeComponent] }); }
527
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XCascadeModule, imports: [XCascadeComponent] }); }
525
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XCascadeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
526
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: XCascadeModule, imports: [XCascadeComponent], exports: [XCascadeComponent] }); }
527
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XCascadeModule, imports: [XCascadeComponent] }); }
528
528
  }
529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: XCascadeModule, decorators: [{
529
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XCascadeModule, decorators: [{
530
530
  type: NgModule,
531
531
  args: [{
532
532
  exports: [XCascadeComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-cascade.mjs","sources":["../../../../lib/ng-nest/ui/cascade/cascade-portal.component.ts","../../../../lib/ng-nest/ui/cascade/cascade-portal.component.html","../../../../lib/ng-nest/ui/cascade/cascade.property.ts","../../../../lib/ng-nest/ui/cascade/cascade.component.ts","../../../../lib/ng-nest/ui/cascade/cascade.component.html","../../../../lib/ng-nest/ui/cascade/cascade.module.ts","../../../../lib/ng-nest/ui/cascade/ng-nest-ui-cascade.ts"],"sourcesContent":["import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n HostBinding,\r\n HostListener,\r\n TemplateRef,\r\n input,\r\n output,\r\n model,\r\n signal,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XCascadeNode, XCascadeNodeTrigger } from './cascade.property';\r\nimport { XIsEmpty, XConnectBaseAnimation, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { of, Subject } from 'rxjs';\r\nimport { delay, takeUntil, tap } from 'rxjs/operators';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XListComponent } from '@ng-nest/ui/list';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'x-cascade-portal',\r\n standalone: true,\r\n imports: [FormsModule, XListComponent],\r\n templateUrl: './cascade-portal.component.html',\r\n styleUrls: ['./cascade-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XCascadePortalComponent implements OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public get getPlacement() {\r\n return this.placement();\r\n }\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n event.toState !== 'void' && this.animating.emit(false);\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start(event: { toState: any }) {\r\n event.toState !== 'void' && this.animating.emit(true);\r\n }\r\n\r\n value = input<any>();\r\n placement = input<XPositionTopBottom>();\r\n nodeTpl = input<TemplateRef<any>>();\r\n inputCom = input<XInputComponent>();\r\n nodeTrigger = input<XCascadeNodeTrigger>();\r\n nodeHoverDelay = input<number>(200);\r\n nodes = model<XCascadeNode[][]>([]);\r\n datas = input<XCascadeNode[]>([]);\r\n\r\n animating = output<boolean>();\r\n nodeClick = output<{ node: XCascadeNode; nodes: XCascadeNode[]; label: string }>();\r\n selecteds = signal<XCascadeNode[]>([]);\r\n values = signal<XCascadeNode[]>([]);\r\n\r\n private unSubject = new Subject<void>();\r\n private hoverDelayUnSub = new Subject<void>();\r\n\r\n valueChanged = toObservable(this.value)\r\n .pipe(\r\n tap(() => this.init()),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe();\r\n\r\n ngOnDestroy(): void {\r\n this.hoverDelayUnSub.next();\r\n this.hoverDelayUnSub.complete();\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value())) {\r\n this.setDefault();\r\n } else {\r\n this.values.set([]);\r\n }\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setDefault() {\r\n let node = this.datas().find((x) => x.id === this.value()) as XCascadeNode;\r\n this.selecteds.set([node]);\r\n this.nodes.set([this.datas().filter((x) => x.pid === node.pid)]);\r\n while (!XIsEmpty(node.pid)) {\r\n node = this.datas().find((x) => x.id === node.pid) as XCascadeNode;\r\n this.selecteds.set([node, ...this.selecteds()]);\r\n this.nodes.set([this.datas().filter((x) => x.pid === node.pid), ...this.nodes()]);\r\n }\r\n this.values.set(this.selecteds().map((x) => x.id) as XCascadeNode[]);\r\n }\r\n\r\n nodeMouseenter(node: XCascadeNode) {\r\n of(true)\r\n .pipe(delay(this.nodeHoverDelay()), takeUntil(this.hoverDelayUnSub))\r\n .subscribe(() => this.nodeExpansion(node, false));\r\n }\r\n\r\n nodeMouseleave() {\r\n this.hoverDelayUnSub.next();\r\n }\r\n\r\n onNodeClick(node: XCascadeNode) {\r\n this.nodeExpansion(node);\r\n }\r\n\r\n nodeExpansion(node: XCascadeNode, click = true) {\r\n const level = Number(node.level);\r\n if (node.leaf) {\r\n if (this.nodes().length === level) {\r\n this.nodes.set([...this.nodes(), node.children] as XCascadeNode[][]);\r\n this.selecteds.set([...this.selecteds(), node]);\r\n } else {\r\n if (this.nodes.length > Number(level) + 1) {\r\n this.nodes.set(this.nodes().splice(0, level + 1));\r\n this.selecteds.set(this.selecteds().splice(0, level + 1));\r\n }\r\n this.nodes()[level + 1] = node.children as XCascadeNode[];\r\n this.nodes.update((x) => {\r\n x[level + 1] = node.children as XCascadeNode[];\r\n if (x.length > level + 1) {\r\n x.splice(level + 2, x.length);\r\n }\r\n return x;\r\n });\r\n this.selecteds()[level] = node;\r\n }\r\n this.values.set(this.selecteds().map((x) => x.id));\r\n } else if (click) {\r\n if (this.selecteds().length >= level + 1) {\r\n this.selecteds.set(this.selecteds().splice(0, level));\r\n }\r\n this.selecteds.set([...this.selecteds(), node]);\r\n this.nodeClick.emit({\r\n node: node,\r\n nodes: this.selecteds(),\r\n label: this.selecteds()\r\n .map((x) => x.label)\r\n .join(` / `)\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"x-cascade-portal\" tabindex=\"-1\" (click)=\"inputCom()?.inputFocus('focus'); stopPropagation($event)\">\r\n @for (list of nodes(); track list) {\r\n <x-list\r\n [data]=\"list\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [(ngModel)]=\"values\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (nodeMouseenter)=\"nodeTrigger() === 'hover' && nodeMouseenter($event)\"\r\n (nodeMouseleave)=\"nodeTrigger() === 'hover' && nodeMouseleave()\"\r\n [checked]=\"true\"\r\n [inPortal]=\"true\"\r\n ></x-list>\r\n }\r\n</div>\r\n","import { XToBoolean, XToNumber, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, input, model, output } from '@angular/core';\r\nimport { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport type {\r\n XParentIdentityProperty,\r\n XData,\r\n XCorner,\r\n XSize,\r\n XBoolean,\r\n XTrigger,\r\n XNumber,\r\n XAlign,\r\n XTemplate,\r\n XDirection,\r\n XJustify\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Cascade\r\n * @selector x-cascade\r\n * @decorator component\r\n */\r\nexport const XCascadePrefix = 'x-cascade';\r\nconst X_CASCADE_CONFIG_NAME = 'cascade';\r\n\r\n/**\r\n * Cascade Property\r\n */\r\n@Component({ selector: `${XCascadePrefix}-property`, template: '' })\r\nexport class XCascadeProperty extends XFormControlFunction(X_CASCADE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n readonly data = input<XData<XCascadeNode>>([]);\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n readonly placement = input<XCorner>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 子节点触发方式\r\n * @en_US Sub node triggering method\r\n */\r\n readonly nodeTrigger = input<XCascadeNodeTrigger>(this.config?.nodeTrigger ?? 'click');\r\n /**\r\n * @zh_CN 子节点触发方式为 hover 时的延迟时间\r\n * @en_US Sub node triggering method\r\n */\r\n readonly nodeHoverDelay = input<number, XNumber>(this.config?.nodeHoverDelay ?? 200, { transform: XToNumber });\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 Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n override readonly pointer = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<string>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n override readonly placeholder = input<string | string[]>('');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n override readonly readonly = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n override readonly valueTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n override readonly valueTplContext = input();\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n override readonly pattern = input<RegExp | RegExp[] | any>(null);\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n override readonly message = input<string | string[]>([]);\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n override readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n override readonly inputValidator = input<(value: any) => boolean>();\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeEmit = output<XCascadeNode>();\r\n}\r\n\r\n/**\r\n * Cascade Option\r\n */\r\nexport interface XCascadeOption extends XFormOption {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n data?: XData<XCascadeNode>;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: boolean;\r\n /**\r\n * @zh_CN 子节点触发方式\r\n * @en_US Sub node triggering method\r\n */\r\n nodeTrigger?: XCascadeNodeTrigger;\r\n /**\r\n * @zh_CN 子节点触发方式为 hover 时的延迟时间\r\n * @en_US Sub node triggering method\r\n */\r\n nodeHoverDelay?: number;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n pointer?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n placeholder?: string;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n required?: boolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n readonly?: boolean;\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n valueTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n valueTplContext?: any;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n pattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n message?: string | string[];\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n inputValidator?: (value: any) => boolean;\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n nodeEmit?: (node: XCascadeNode) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN Cascade 数据对象\r\n * @en_US Cascade data object\r\n */\r\nexport interface XCascadeNode extends XParentIdentityProperty<XCascadeNode> {}\r\n\r\n/**\r\n * @zh_CN 子节点触发方式\r\n * @en_US Sub node triggering method\r\n */\r\nexport type XCascadeNodeTrigger = XTrigger;\r\n\r\n/**\r\n * Cascade-Portal\r\n * @selector x-cascade-portal\r\n * @decorator component\r\n */\r\nexport const XCascadePortalPrefix = 'x-cascade-portal';\r\n","import { XCascadePortalComponent } from './cascade-portal.component';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewContainerRef,\r\n inject,\r\n AfterViewInit,\r\n OnDestroy,\r\n viewChild,\r\n signal,\r\n computed,\r\n ComponentRef,\r\n effect\r\n} from '@angular/core';\r\nimport { XCascadeNode, XCascadeProperty } from './cascade.property';\r\nimport { XIsEmpty, XIsChange, XSetData, XGetChildren, XCorner, XParents, XPlacement } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { DOCUMENT, NgClass } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'x-cascade',\r\n standalone: true,\r\n imports: [NgClass, FormsModule, ReactiveFormsModule, XInputComponent],\r\n templateUrl: './cascade.component.html',\r\n styleUrls: ['./cascade.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XCascadeComponent)]\r\n})\r\nexport class XCascadeComponent extends XCascadeProperty implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n cascade = viewChild.required('cascade', { read: ElementRef<HTMLElement> });\r\n inputCom = viewChild.required('inputCom', { read: XInputComponent });\r\n\r\n clearable = signal(false);\r\n enter = signal(false);\r\n animating = signal(false);\r\n datas = signal<XCascadeNode[]>([]);\r\n nodes = signal<XCascadeNode[]>([]);\r\n portal!: XPortalOverlayRef<XCascadePortalComponent>;\r\n icon = signal('fto-chevron-down');\r\n displayValue = computed(() => {\r\n let node = this.datas().find((x) => x.id === this.value()) as XCascadeNode;\r\n if (XIsEmpty(node)) {\r\n return '';\r\n } else {\r\n let selecteds = [node];\r\n while (!XIsEmpty(node.pid)) {\r\n node = this.datas().find((x) => x.id === node.pid) as XCascadeNode;\r\n selecteds = [node, ...selecteds];\r\n }\r\n return selecteds.map((x) => x.label).join(` / `);\r\n }\r\n });\r\n valueTplContextSignal = computed(() => {\r\n let node = this.datas().find((x) => x.id === this.value()) as XCascadeNode;\r\n if (XIsEmpty(node)) {\r\n return { $node: null, $nodes: null, $isValue: true };\r\n } else {\r\n let selecteds = [node];\r\n while (!XIsEmpty(node.pid)) {\r\n node = this.datas().find((x) => x.id === node.pid) as XCascadeNode;\r\n selecteds = [node, ...selecteds];\r\n }\r\n return {\r\n $node: node,\r\n $nodes: selecteds,\r\n $isValue: true\r\n };\r\n }\r\n });\r\n closeSubject: Subject<void> = new Subject();\r\n private unSubject = new Subject<void>();\r\n private document = inject(DOCUMENT);\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private elementRef = inject(ElementRef);\r\n private overlay = inject(Overlay);\r\n\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XCascadePortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.portalComponent()?.setInput('value', this.value()));\r\n effect(() => this.portalComponent()?.setInput('placement', this.realPlacement()));\r\n effect(() => this.portalComponent()?.setInput('nodeTpl', this.nodeTpl()));\r\n effect(() => this.portalComponent()?.setInput('inputCom', this.inputCom()));\r\n effect(() => this.portalComponent()?.setInput('datas', this.datas()));\r\n effect(() => this.portalComponent()?.setInput('nodes', [this.nodes()]));\r\n effect(() => this.portalComponent()?.setInput('nodeTrigger', this.nodeTrigger()));\r\n effect(() => this.portalComponent()?.setInput('nodeHoverDelay', this.nodeHoverDelay()));\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n this.setParantScroll();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data } = changes;\r\n XIsChange(data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setData() {\r\n XSetData<XCascadeNode>(this.data(), this.unSubject).subscribe((x) => {\r\n this.datas.set(x);\r\n this.nodes.set(x.filter((y) => XIsEmpty(y.pid)).map((y) => XGetChildren<XCascadeNode>(x, y, 0)));\r\n this.setPortal();\r\n });\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portal?.overlayRef?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(true);\r\n if (!XIsEmpty(this.value())) {\r\n this.icon.set('');\r\n this.clearable.set(true);\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(false);\r\n if (this.clearable()) {\r\n this.icon.set('fto-chevron-down');\r\n this.clearable.set(false);\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value.set('');\r\n this.mleave();\r\n if (this.onChange) this.onChange(this.value());\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active.set(false);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabledComputed() || this.animating()) return;\r\n this.active.set(true);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XCascadePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n this.realPlacement.set(this.placement());\r\n\r\n const { nodeClick, animating } = componentRef.instance;\r\n nodeClick.subscribe((node: { node: XCascadeNode; nodes: XCascadeNode[]; label: string }) => this.onNodeClick(node));\r\n animating.subscribe((ing: boolean) => this.animating.set(ing));\r\n }\r\n\r\n onNodeClick(selected: { node: XCascadeNode; nodes: XCascadeNode[]; label: string }) {\r\n this.value.set(selected.node.id);\r\n this.closeSubject.next();\r\n this.inputCom().inputFocus();\r\n if (this.onChange) this.onChange(this.value());\r\n this.formControlValidator();\r\n this.nodeEmit.emit(selected);\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom().inputRef(),\r\n placement: [this.placement() as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-cascade-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portalOverlayRef()?.updatePositionStrategy(this.setPlacement());\r\n }\r\n}\r\n","<div #cascade class=\"x-cascade\">\r\n <div class=\"x-cascade-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"true\"\r\n [clearable]=\"clearable()\"\r\n [ngModel]=\"displayValue()\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContextSignal()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (click)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XCascadeComponent } from './cascade.component';\r\n\r\n@NgModule({\r\n exports: [XCascadeComponent],\r\n imports: [XCascadeComponent]\r\n})\r\nexport class XCascadeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;MAgCa,uBAAuB,CAAA;AAVpC,IAAA,WAAA,GAAA;QAqBE,IAAK,CAAA,KAAA,GAAG,KAAK,EAAO,CAAC;QACrB,IAAS,CAAA,SAAA,GAAG,KAAK,EAAsB,CAAC;QACxC,IAAO,CAAA,OAAA,GAAG,KAAK,EAAoB,CAAC;QACpC,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAmB,CAAC;QACpC,IAAW,CAAA,WAAA,GAAG,KAAK,EAAuB,CAAC;AAC3C,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAS,GAAG,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAmB,EAAE,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAiB,EAAE,CAAC,CAAC;QAElC,IAAS,CAAA,SAAA,GAAG,MAAM,EAAW,CAAC;QAC9B,IAAS,CAAA,SAAA,GAAG,MAAM,EAAgE,CAAC;AACnF,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAiB,EAAE,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAiB,EAAE,CAAC,CAAC;AAE5B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;AAChC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAQ,CAAC;AAE9C,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,aAAA,IAAI,CACH,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EACtB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;AACA,aAAA,SAAS,EAAE,CAAC;AAmFhB,KAAA;AAnHC,IAAA,IAAqD,YAAY,GAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;KACzB;AAC2D,IAAA,IAAI,CAAC,KAAuB,EAAA;AACtF,QAAA,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxD;AAC4D,IAAA,KAAK,CAAC,KAAuB,EAAA;AACxF,QAAA,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACvD;IA0BD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;IAED,IAAI,GAAA;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE;YAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;aAAM;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACrB;KACF;AAED,IAAA,eAAe,CAAC,KAAY,EAAA;QAC1B,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;IAED,UAAU,GAAA;QACR,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAiB,CAAC;QAC3E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC1B,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAiB,CAAC;AACnE,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACnF;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAmB,CAAC,CAAC;KACtE;AAED,IAAA,cAAc,CAAC,IAAkB,EAAA;QAC/B,EAAE,CAAC,IAAI,CAAC;AACL,aAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACnE,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;KACrD;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC7B;AAED,IAAA,WAAW,CAAC,IAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC1B;AAED,IAAA,aAAa,CAAC,IAAkB,EAAE,KAAK,GAAG,IAAI,EAAA;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,KAAK,EAAE;AACjC,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAqB,CAAC,CAAC;AACrE,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;aACjD;iBAAM;AACL,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACzC,oBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,oBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC3D;AACD,gBAAA,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAA0B,CAAC;gBAC1D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;oBACtB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAA0B,CAAC;oBAC/C,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE;wBACxB,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;qBAC/B;AACD,oBAAA,OAAO,CAAC,CAAC;AACX,iBAAC,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;aAChC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACpD;aAAM,IAAI,KAAK,EAAE;YAChB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE;AACxC,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;aACvD;AACD,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAClB,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;AACvB,gBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;qBACpB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;qBACnB,IAAI,CAAC,KAAK,CAAC;AACf,aAAA,CAAC,CAAC;SACJ;KACF;iIAnHU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gCAAA,EAAA,cAAA,EAAA,iCAAA,EAAA,eAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCpC,qjBAcA,EDWY,MAAA,EAAA,CAAA,2bAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,+VAAE,cAAc,EAAA,QAAA,EAAA,QAAA,EAAA,CAAA,EAAA,UAAA,EAKzB,CAAC,qBAAqB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAExB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAChB,IAAI,EAAA,OAAA,EACP,CAAC,WAAW,EAAE,cAAc,CAAC,EAAA,aAAA,EAGvB,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,CAAC,qBAAqB,CAAC,EAAA,QAAA,EAAA,qjBAAA,EAAA,MAAA,EAAA,CAAA,2bAAA,CAAA,EAAA,CAAA;8BAGkB,YAAY,EAAA,CAAA;sBAAhE,WAAW;uBAAC,2BAA2B,CAAA;gBAGoB,IAAI,EAAA,CAAA;sBAA/D,YAAY;uBAAC,gCAAgC,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAGG,KAAK,EAAA,CAAA;sBAAjE,YAAY;uBAAC,iCAAiC,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AEtB7D;;;;AAIG;AACI,MAAM,cAAc,GAAG,YAAY;AAC1C,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAExC;;AAEG;MAEU,gBAAiB,SAAQ,oBAAoB,CAAC,qBAAqB,CAAC,CAAA;AADjF,IAAA,WAAA,GAAA;;AAEE;;;AAGG;AACM,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAsB,EAAE,CAAC,CAAC;AAC/C;;;AAGG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAU,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,cAAc,CAAC,CAAC;AAC9E;;;AAGG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAoB,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACvG;;;AAGG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAsB,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,OAAO,CAAC,CAAC;AACvF;;;AAGG;AACM,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAkB,IAAI,CAAC,MAAM,EAAE,cAAc,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC/G;;;AAGG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,EAAoB,CAAC;AAC7C;;;AAGG;QACe,IAAI,CAAA,IAAA,GAAG,KAAK,CAAQ,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,QAAQ,CAAC,CAAC;AACrE;;;AAGG;QACe,IAAO,CAAA,OAAA,GAAG,KAAK,CAAoB,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACvF;;;AAGG;AACe,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAC5C;;;AAGG;QACe,IAAU,CAAA,UAAA,GAAG,KAAK,CAAkB,EAAE,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC3F;;;AAGG;AACe,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,OAAO,CAAC,CAAC;AACtD;;;AAGG;AACe,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAW,OAAO,CAAC,CAAC;AACrD;;;AAGG;AACe,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,OAAO,CAAC,CAAC;AACjD;;;AAGG;AACe,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAa,QAAQ,CAAC,CAAC;AAC1D;;;AAGG;AACe,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAoB,EAAE,CAAC,CAAC;AAC7D;;;AAGG;QACe,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAoB,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACxF;;;AAGG;QACe,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAoB,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACxF;;;AAGG;QACe,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAoB,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACxF;;;AAGG;QACe,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAoB,CAAC;AACvD;;;AAGG;QACe,IAAe,CAAA,eAAA,GAAG,KAAK,EAAE,CAAC;AAC5C;;;AAGG;QACe,IAAM,CAAA,MAAA,GAAG,KAAK,EAAa,CAAC;AAC9C;;;AAGG;QACe,IAAK,CAAA,KAAA,GAAG,KAAK,EAAa,CAAC;AAC7C;;;AAGG;AACe,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAA0B,IAAI,CAAC,CAAC;AACjE;;;AAGG;AACe,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAoB,EAAE,CAAC,CAAC;AACzD;;;AAGG;AACe,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;AACjD;;;AAGG;QACe,IAAc,CAAA,cAAA,GAAG,KAAK,EAA2B,CAAC;AACpE;;;AAGG;QACM,IAAQ,CAAA,QAAA,GAAG,MAAM,EAAgB,CAAC;AAC5C,KAAA;iIAxIY,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,i8GADkC,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FACpD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,SAAS;mBAAC,EAAE,QAAQ,EAAE,CAAG,EAAA,cAAc,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;;AAoSnE;;;;AAIG;AACI,MAAM,oBAAoB,GAAG;;ACvR9B,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;AAqDrD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;AArDV,QAAA,IAAA,CAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,IAAI,GAAE,UAAuB,CAAA,EAAE,CAAC,CAAC;AAC3E,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AAErE,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAiB,EAAE,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAiB,EAAE,CAAC,CAAC;AAEnC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;YAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAiB,CAAC;AAC3E,YAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClB,gBAAA,OAAO,EAAE,CAAC;aACX;iBAAM;AACL,gBAAA,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAiB,CAAC;AACnE,oBAAA,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC;iBAClC;AACD,gBAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA,GAAA,CAAK,CAAC,CAAC;aAClD;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAK;YACpC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAiB,CAAC;AAC3E,YAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClB,gBAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;aACtD;iBAAM;AACL,gBAAA,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBAC1B,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAiB,CAAC;AACnE,oBAAA,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC;iBAClC;gBACD,OAAO;AACL,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,MAAM,EAAE,SAAS;AACjB,oBAAA,QAAQ,EAAE,IAAI;iBACf,CAAC;aACH;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAA,CAAA,YAAY,GAAkB,IAAI,OAAO,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAE1B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;AACxD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAA+C,IAAI,CAAC,CAAC;AAC7E,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;AAIjD,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtE,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAClF,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1E,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC5E,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAClF,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;KACzF;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAED,eAAe,GAAA;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACzB,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;KACnC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;IAED,OAAO,GAAA;AACL,QAAA,QAAQ,CAAe,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAClE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,YAAY,CAAe,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjG,IAAI,CAAC,SAAS,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACJ;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,SAAC,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,WAAW,GAAuB,IAAI,CAAC;AAC3C,QAAA,KAAK,IAAI,IAAI,IAAI,OAAO,EAAE;YACxB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;gBACzC,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM;aACP;SACF;QACD,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,KAAK,MAAM,EAAE;AACjD,YAAA,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC7B,iBAAA,IAAI,CACH,MAAM,CAAC,MAAM,IAAI,CAAC,cAAc,EAAG,CAAC,EACpC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;iBACA,SAAS,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AACpE,gBAAA,MAAM,KAAK,GAAG,WAAY,CAAC,qBAAqB,EAAE,CAAC;gBACnD,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE;AAC3E,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;iBAC1B;AACH,aAAC,CAAC,CAAC;SACN;KACF;IAED,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAAE,OAAO;AACpC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;IAED,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAAE,OAAO;AACpC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC3B;KACF;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KAChD;IAED,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;KAC/C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AACzB,YAAA,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;KACpC;IAED,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;YAAE,OAAO;AACxD,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtB,QAAA,MAAM,MAAM,GAAkB;AAC5B,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE;YACrC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;SAC3D,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACtC,YAAA,OAAO,EAAE,uBAAuB;YAChC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;AACvC,YAAA,aAAa,EAAE,MAAM;AACtB,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,UAAU;AACpB,cAAE,oBAAoB,EAAE;AACvB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC/B,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;QACL,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,WAAW,CAAC,MAAqB,EAAA;AAC/B,QAAA,IAAI,QAAQ,GAAG,MAAM,CAAC,gBAAqD,CAAC;AAC5E,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAmC,KAAI;YACzG,MAAM,KAAK,GAAG,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAY,CAAC;AAC1E,YAAA,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE,EAAE;AAClC,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9B,gBAAA,IAAI,CAAC,gBAAgB,EAAE,EAAE,cAAc,EAAE,CAAC;aAC3C;AACH,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;QACT,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/C,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU;YAAE,OAAO;AACzC,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAEzC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC;AACvD,QAAA,SAAS,CAAC,SAAS,CAAC,CAAC,IAAkE,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACpH,QAAA,SAAS,CAAC,SAAS,CAAC,CAAC,GAAY,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAChE;AAED,IAAA,WAAW,CAAC,QAAsE,EAAA;QAChF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;AACrC,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,YAAA,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,EAAa,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC;AAC9F,YAAA,iBAAiB,EAAE,kBAAkB;AACtC,SAAA,CAAC,CAAC;KACJ;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,sBAAsB,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KAC/F;iIAvOU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,wDAFjB,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,EAGE,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,EACR,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAe,yFChDnE,2pCAoCA,EAAA,MAAA,EAAA,CAAA,yIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGqB,WAAW,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,+BAAE,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAOzD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;+BACE,WAAW,EAAA,UAAA,EACT,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,CAAC,iBAGtD,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,cAAc,CAAA,iBAAA,CAAmB,CAAC,EAAA,QAAA,EAAA,2pCAAA,EAAA,MAAA,EAAA,CAAA,yIAAA,CAAA,EAAA,CAAA;;;MErCnC,cAAc,CAAA;iIAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;kIAAd,cAAc,EAAA,OAAA,EAAA,CAFf,iBAAiB,CAAA,EAAA,OAAA,EAAA,CADjB,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGhB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAFf,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEhB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-nest-ui-cascade.mjs","sources":["../../../../lib/ng-nest/ui/cascade/cascade-portal.component.ts","../../../../lib/ng-nest/ui/cascade/cascade-portal.component.html","../../../../lib/ng-nest/ui/cascade/cascade.property.ts","../../../../lib/ng-nest/ui/cascade/cascade.component.ts","../../../../lib/ng-nest/ui/cascade/cascade.component.html","../../../../lib/ng-nest/ui/cascade/cascade.module.ts","../../../../lib/ng-nest/ui/cascade/ng-nest-ui-cascade.ts"],"sourcesContent":["import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n HostBinding,\r\n HostListener,\r\n TemplateRef,\r\n input,\r\n output,\r\n model,\r\n signal,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XCascadeNode, XCascadeNodeTrigger } from './cascade.property';\r\nimport { XIsEmpty, XConnectBaseAnimation, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { of, Subject } from 'rxjs';\r\nimport { delay, takeUntil, tap } from 'rxjs/operators';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XListComponent } from '@ng-nest/ui/list';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'x-cascade-portal',\r\n standalone: true,\r\n imports: [FormsModule, XListComponent],\r\n templateUrl: './cascade-portal.component.html',\r\n styleUrls: ['./cascade-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XCascadePortalComponent implements OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public get getPlacement() {\r\n return this.placement();\r\n }\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n event.toState !== 'void' && this.animating.emit(false);\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start(event: { toState: any }) {\r\n event.toState !== 'void' && this.animating.emit(true);\r\n }\r\n\r\n value = input<any>();\r\n placement = input<XPositionTopBottom>();\r\n nodeTpl = input<TemplateRef<any>>();\r\n inputCom = input<XInputComponent>();\r\n nodeTrigger = input<XCascadeNodeTrigger>();\r\n nodeHoverDelay = input<number>(200);\r\n nodes = model<XCascadeNode[][]>([]);\r\n datas = input<XCascadeNode[]>([]);\r\n\r\n animating = output<boolean>();\r\n nodeClick = output<{ node: XCascadeNode; nodes: XCascadeNode[]; label: string }>();\r\n selecteds = signal<XCascadeNode[]>([]);\r\n values = signal<XCascadeNode[]>([]);\r\n\r\n private unSubject = new Subject<void>();\r\n private hoverDelayUnSub = new Subject<void>();\r\n\r\n valueChanged = toObservable(this.value)\r\n .pipe(\r\n tap(() => this.init()),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe();\r\n\r\n ngOnDestroy(): void {\r\n this.hoverDelayUnSub.next();\r\n this.hoverDelayUnSub.complete();\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n init() {\r\n if (!XIsEmpty(this.value())) {\r\n this.setDefault();\r\n } else {\r\n this.values.set([]);\r\n }\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n setDefault() {\r\n let node = this.datas().find((x) => x.id === this.value()) as XCascadeNode;\r\n this.selecteds.set([node]);\r\n this.nodes.set([this.datas().filter((x) => x.pid === node.pid)]);\r\n while (!XIsEmpty(node.pid)) {\r\n node = this.datas().find((x) => x.id === node.pid) as XCascadeNode;\r\n this.selecteds.set([node, ...this.selecteds()]);\r\n this.nodes.set([this.datas().filter((x) => x.pid === node.pid), ...this.nodes()]);\r\n }\r\n this.values.set(this.selecteds().map((x) => x.id) as XCascadeNode[]);\r\n }\r\n\r\n nodeMouseenter(node: XCascadeNode) {\r\n of(true)\r\n .pipe(delay(this.nodeHoverDelay()), takeUntil(this.hoverDelayUnSub))\r\n .subscribe(() => this.nodeExpansion(node, false));\r\n }\r\n\r\n nodeMouseleave() {\r\n this.hoverDelayUnSub.next();\r\n }\r\n\r\n onNodeClick(node: XCascadeNode) {\r\n this.nodeExpansion(node);\r\n }\r\n\r\n nodeExpansion(node: XCascadeNode, click = true) {\r\n const level = Number(node.level);\r\n if (node.leaf) {\r\n if (this.nodes().length === level) {\r\n this.nodes.set([...this.nodes(), node.children] as XCascadeNode[][]);\r\n this.selecteds.set([...this.selecteds(), node]);\r\n } else {\r\n if (this.nodes.length > Number(level) + 1) {\r\n this.nodes.set(this.nodes().splice(0, level + 1));\r\n this.selecteds.set(this.selecteds().splice(0, level + 1));\r\n }\r\n this.nodes()[level + 1] = node.children as XCascadeNode[];\r\n this.nodes.update((x) => {\r\n x[level + 1] = node.children as XCascadeNode[];\r\n if (x.length > level + 1) {\r\n x.splice(level + 2, x.length);\r\n }\r\n return x;\r\n });\r\n this.selecteds()[level] = node;\r\n }\r\n this.values.set(this.selecteds().map((x) => x.id));\r\n } else if (click) {\r\n if (this.selecteds().length >= level + 1) {\r\n this.selecteds.set(this.selecteds().splice(0, level));\r\n }\r\n this.selecteds.set([...this.selecteds(), node]);\r\n this.nodeClick.emit({\r\n node: node,\r\n nodes: this.selecteds(),\r\n label: this.selecteds()\r\n .map((x) => x.label)\r\n .join(` / `)\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"x-cascade-portal\" tabindex=\"-1\" (click)=\"inputCom()?.inputFocus('focus'); stopPropagation($event)\">\r\n @for (list of nodes(); track list) {\r\n <x-list\r\n [data]=\"list\"\r\n [nodeTpl]=\"nodeTpl()\"\r\n [(ngModel)]=\"values\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (nodeMouseenter)=\"nodeTrigger() === 'hover' && nodeMouseenter($event)\"\r\n (nodeMouseleave)=\"nodeTrigger() === 'hover' && nodeMouseleave()\"\r\n [checked]=\"true\"\r\n [inPortal]=\"true\"\r\n ></x-list>\r\n }\r\n</div>\r\n","import { XToBoolean, XToNumber, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { Component, TemplateRef, input, model, output } from '@angular/core';\r\nimport { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport type {\r\n XParentIdentityProperty,\r\n XData,\r\n XCorner,\r\n XSize,\r\n XBoolean,\r\n XTrigger,\r\n XNumber,\r\n XAlign,\r\n XTemplate,\r\n XDirection,\r\n XJustify\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Cascade\r\n * @selector x-cascade\r\n * @decorator component\r\n */\r\nexport const XCascadePrefix = 'x-cascade';\r\nconst X_CASCADE_CONFIG_NAME = 'cascade';\r\n\r\n/**\r\n * Cascade Property\r\n */\r\n@Component({ selector: `${XCascadePrefix}-property`, template: '' })\r\nexport class XCascadeProperty extends XFormControlFunction(X_CASCADE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n readonly data = input<XData<XCascadeNode>>([]);\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n readonly placement = input<XCorner>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 子节点触发方式\r\n * @en_US Sub node triggering method\r\n */\r\n readonly nodeTrigger = input<XCascadeNodeTrigger>(this.config?.nodeTrigger ?? 'click');\r\n /**\r\n * @zh_CN 子节点触发方式为 hover 时的延迟时间\r\n * @en_US Sub node triggering method\r\n */\r\n readonly nodeHoverDelay = input<number, XNumber>(this.config?.nodeHoverDelay ?? 200, { transform: XToNumber });\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 Size\r\n */\r\n override readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n override readonly pointer = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n override readonly label = input<string>('');\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n override readonly labelWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n override readonly labelAlign = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n override readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n override readonly align = input<XAlign>('start');\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n override readonly direction = input<XDirection>('column');\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n override readonly placeholder = input<string | string[]>('');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n override readonly readonly = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n override readonly valueTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n override readonly valueTplContext = input();\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n override readonly before = input<XTemplate>();\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n override readonly after = input<XTemplate>();\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n override readonly pattern = input<RegExp | RegExp[] | any>(null);\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n override readonly message = input<string | string[]>([]);\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n override readonly active = model<boolean>(false);\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n override readonly inputValidator = input<(value: any) => boolean>();\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeEmit = output<XCascadeNode>();\r\n}\r\n\r\n/**\r\n * Cascade Option\r\n */\r\nexport interface XCascadeOption extends XFormOption {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n data?: XData<XCascadeNode>;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n bordered?: boolean;\r\n /**\r\n * @zh_CN 子节点触发方式\r\n * @en_US Sub node triggering method\r\n */\r\n nodeTrigger?: XCascadeNodeTrigger;\r\n /**\r\n * @zh_CN 子节点触发方式为 hover 时的延迟时间\r\n * @en_US Sub node triggering method\r\n */\r\n nodeHoverDelay?: number;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n pointer?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US Label\r\n */\r\n label?: string;\r\n /**\r\n * @zh_CN 标签宽度\r\n * @en_US Label width\r\n */\r\n labelWidth?: string;\r\n /**\r\n * @zh_CN 标签文字对齐方式\r\n * @en_US Label text alignment method\r\n */\r\n labelAlign?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素水平排列方式\r\n * @en_US The level of sub-element level arrangement under flex layout\r\n */\r\n justify?: XJustify;\r\n /**\r\n * @zh_CN flex 布局下的子元素垂直排列方式\r\n * @en_US sub-element vertical arrangement method under flex layout\r\n */\r\n align?: XAlign;\r\n /**\r\n * @zh_CN flex 布局下的子元素排列方向\r\n * @en_US The direction of the sub-element arrangement under flex layout\r\n */\r\n direction?: XDirection;\r\n /**\r\n * @zh_CN 输入提示信息\r\n * @en_US Enter prompt information\r\n */\r\n placeholder?: string;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 必填\r\n * @en_US Required\r\n */\r\n required?: boolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Readonly\r\n */\r\n readonly?: boolean;\r\n /**\r\n * @zh_CN 值模板\r\n * @en_US Node template\r\n */\r\n valueTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 值模板参数\r\n * @en_US Node template\r\n */\r\n valueTplContext?: any;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 正则验证规则\r\n * @en_US Regular verification rules\r\n */\r\n pattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 验证不通过提示文字\r\n * @en_US Verify not pass the prompt text\r\n */\r\n message?: string | string[];\r\n /**\r\n * @zh_CN 激活状态\r\n * @en_US Activation state\r\n */\r\n active?: boolean;\r\n /**\r\n * @zh_CN 输入验证函数\r\n * @en_US Enter the verification function\r\n */\r\n inputValidator?: (value: any) => boolean;\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n nodeEmit?: (node: XCascadeNode) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN Cascade 数据对象\r\n * @en_US Cascade data object\r\n */\r\nexport interface XCascadeNode extends XParentIdentityProperty<XCascadeNode> {}\r\n\r\n/**\r\n * @zh_CN 子节点触发方式\r\n * @en_US Sub node triggering method\r\n */\r\nexport type XCascadeNodeTrigger = XTrigger;\r\n\r\n/**\r\n * Cascade-Portal\r\n * @selector x-cascade-portal\r\n * @decorator component\r\n */\r\nexport const XCascadePortalPrefix = 'x-cascade-portal';\r\n","import { XCascadePortalComponent } from './cascade-portal.component';\r\nimport { Subject, fromEvent } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewContainerRef,\r\n inject,\r\n AfterViewInit,\r\n OnDestroy,\r\n viewChild,\r\n signal,\r\n computed,\r\n ComponentRef,\r\n effect\r\n} from '@angular/core';\r\nimport { XCascadeNode, XCascadeProperty } from './cascade.property';\r\nimport { XIsEmpty, XIsChange, XSetData, XGetChildren, XCorner, XParents, XPlacement } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport {\r\n Overlay,\r\n OverlayConfig,\r\n FlexibleConnectedPositionStrategy,\r\n ConnectedOverlayPositionChange,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { DOCUMENT, NgClass } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'x-cascade',\r\n standalone: true,\r\n imports: [NgClass, FormsModule, ReactiveFormsModule, XInputComponent],\r\n templateUrl: './cascade.component.html',\r\n styleUrls: ['./cascade.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XCascadeComponent)]\r\n})\r\nexport class XCascadeComponent extends XCascadeProperty implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n cascade = viewChild.required('cascade', { read: ElementRef<HTMLElement> });\r\n inputCom = viewChild.required('inputCom', { read: XInputComponent });\r\n\r\n clearable = signal(false);\r\n enter = signal(false);\r\n animating = signal(false);\r\n datas = signal<XCascadeNode[]>([]);\r\n nodes = signal<XCascadeNode[]>([]);\r\n portal!: XPortalOverlayRef<XCascadePortalComponent>;\r\n icon = signal('fto-chevron-down');\r\n displayValue = computed(() => {\r\n let node = this.datas().find((x) => x.id === this.value()) as XCascadeNode;\r\n if (XIsEmpty(node)) {\r\n return '';\r\n } else {\r\n let selecteds = [node];\r\n while (!XIsEmpty(node.pid)) {\r\n node = this.datas().find((x) => x.id === node.pid) as XCascadeNode;\r\n selecteds = [node, ...selecteds];\r\n }\r\n return selecteds.map((x) => x.label).join(` / `);\r\n }\r\n });\r\n valueTplContextSignal = computed(() => {\r\n let node = this.datas().find((x) => x.id === this.value()) as XCascadeNode;\r\n if (XIsEmpty(node)) {\r\n return { $node: null, $nodes: null, $isValue: true };\r\n } else {\r\n let selecteds = [node];\r\n while (!XIsEmpty(node.pid)) {\r\n node = this.datas().find((x) => x.id === node.pid) as XCascadeNode;\r\n selecteds = [node, ...selecteds];\r\n }\r\n return {\r\n $node: node,\r\n $nodes: selecteds,\r\n $isValue: true\r\n };\r\n }\r\n });\r\n closeSubject: Subject<void> = new Subject();\r\n private unSubject = new Subject<void>();\r\n private document = inject(DOCUMENT);\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private elementRef = inject(ElementRef);\r\n private overlay = inject(Overlay);\r\n\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XCascadePortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.portalComponent()?.setInput('value', this.value()));\r\n effect(() => this.portalComponent()?.setInput('placement', this.realPlacement()));\r\n effect(() => this.portalComponent()?.setInput('nodeTpl', this.nodeTpl()));\r\n effect(() => this.portalComponent()?.setInput('inputCom', this.inputCom()));\r\n effect(() => this.portalComponent()?.setInput('datas', this.datas()));\r\n effect(() => this.portalComponent()?.setInput('nodes', [this.nodes()]));\r\n effect(() => this.portalComponent()?.setInput('nodeTrigger', this.nodeTrigger()));\r\n effect(() => this.portalComponent()?.setInput('nodeHoverDelay', this.nodeHoverDelay()));\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n this.setParantScroll();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data } = changes;\r\n XIsChange(data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setData() {\r\n XSetData<XCascadeNode>(this.data(), this.unSubject).subscribe((x) => {\r\n this.datas.set(x);\r\n this.nodes.set(x.filter((y) => XIsEmpty(y.pid)).map((y) => XGetChildren<XCascadeNode>(x, y, 0)));\r\n this.setPortal();\r\n });\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n setParantScroll() {\r\n if (!this.document) return;\r\n const parents = XParents(this.elementRef.nativeElement);\r\n let firstScroll: HTMLElement | null = null;\r\n for (let item of parents) {\r\n if (item.clientHeight < item.scrollHeight) {\r\n firstScroll = item;\r\n break;\r\n }\r\n }\r\n if (firstScroll && firstScroll.tagName !== 'BODY') {\r\n fromEvent(firstScroll, 'scroll')\r\n .pipe(\r\n filter(() => this.portalAttached()!),\r\n takeUntil(this.unSubject)\r\n )\r\n .subscribe(() => {\r\n this.portal?.overlayRef?.updatePosition();\r\n const eract = this.elementRef.nativeElement.getBoundingClientRect();\r\n const frect = firstScroll!.getBoundingClientRect();\r\n if (eract.top + eract.height - frect.top < 0 || eract.bottom > frect.bottom) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n }\r\n\r\n menter() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(true);\r\n if (!XIsEmpty(this.value())) {\r\n this.icon.set('');\r\n this.clearable.set(true);\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabledComputed()) return;\r\n this.enter.set(false);\r\n if (this.clearable()) {\r\n this.icon.set('fto-chevron-down');\r\n this.clearable.set(false);\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value.set('');\r\n this.mleave();\r\n if (this.onChange) this.onChange(this.value());\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active.set(false);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabledComputed() || this.animating()) return;\r\n this.active.set(true);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XCascadePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n this.realPlacement.set(this.placement());\r\n\r\n const { nodeClick, animating } = componentRef.instance;\r\n nodeClick.subscribe((node: { node: XCascadeNode; nodes: XCascadeNode[]; label: string }) => this.onNodeClick(node));\r\n animating.subscribe((ing: boolean) => this.animating.set(ing));\r\n }\r\n\r\n onNodeClick(selected: { node: XCascadeNode; nodes: XCascadeNode[]; label: string }) {\r\n this.value.set(selected.node.id);\r\n this.closeSubject.next();\r\n this.inputCom().inputFocus();\r\n if (this.onChange) this.onChange(this.value());\r\n this.formControlValidator();\r\n this.nodeEmit.emit(selected);\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom().inputRef(),\r\n placement: [this.placement() as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-cascade-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portalOverlayRef()?.updatePositionStrategy(this.setPlacement());\r\n }\r\n}\r\n","<div #cascade class=\"x-cascade\">\r\n <div class=\"x-cascade-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"true\"\r\n [clearable]=\"clearable()\"\r\n [ngModel]=\"displayValue()\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContextSignal()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (click)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XCascadeComponent } from './cascade.component';\r\n\r\n@NgModule({\r\n exports: [XCascadeComponent],\r\n imports: [XCascadeComponent]\r\n})\r\nexport class XCascadeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}