@ng-nest/ui 16.0.9 → 16.0.11

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 (510) hide show
  1. package/drag/drag.directive.d.ts +14 -0
  2. package/drag/drag.module.d.ts +8 -0
  3. package/drag/drag.property.d.ts +26 -0
  4. package/drag/index.d.ts +5 -0
  5. package/drag/public-api.d.ts +3 -0
  6. package/esm2022/affix/affix.component.mjs +4 -4
  7. package/esm2022/affix/affix.module.mjs +5 -5
  8. package/esm2022/affix/affix.property.mjs +4 -4
  9. package/esm2022/alert/alert.component.mjs +4 -4
  10. package/esm2022/alert/alert.module.mjs +5 -5
  11. package/esm2022/alert/alert.property.mjs +4 -4
  12. package/esm2022/anchor/anchor-inner.component.mjs +4 -4
  13. package/esm2022/anchor/anchor.component.mjs +4 -4
  14. package/esm2022/anchor/anchor.module.mjs +5 -5
  15. package/esm2022/anchor/anchor.property.mjs +7 -7
  16. package/esm2022/api/api.component.mjs +4 -4
  17. package/esm2022/api/api.module.mjs +5 -5
  18. package/esm2022/auto-complete/auto-complete-portal.component.mjs +5 -5
  19. package/esm2022/auto-complete/auto-complete.component.mjs +5 -5
  20. package/esm2022/auto-complete/auto-complete.module.mjs +5 -5
  21. package/esm2022/auto-complete/auto-complete.property.mjs +4 -4
  22. package/esm2022/avatar/avatar-group.component.mjs +4 -4
  23. package/esm2022/avatar/avatar.component.mjs +4 -4
  24. package/esm2022/avatar/avatar.module.mjs +5 -5
  25. package/esm2022/avatar/avatar.property.mjs +7 -7
  26. package/esm2022/back-top/back-top.component.mjs +4 -4
  27. package/esm2022/back-top/back-top.module.mjs +5 -5
  28. package/esm2022/back-top/back-top.property.mjs +4 -4
  29. package/esm2022/badge/badge.component.mjs +4 -4
  30. package/esm2022/badge/badge.module.mjs +5 -5
  31. package/esm2022/badge/badge.property.mjs +4 -4
  32. package/esm2022/base-form/base-form.component.mjs +4 -4
  33. package/esm2022/base-form/base-form.module.mjs +5 -5
  34. package/esm2022/base-form/base-form.property.mjs +4 -4
  35. package/esm2022/border/border.component.mjs +4 -4
  36. package/esm2022/border/border.module.mjs +5 -5
  37. package/esm2022/button/button.component.mjs +4 -4
  38. package/esm2022/button/button.module.mjs +5 -5
  39. package/esm2022/button/button.property.mjs +7 -7
  40. package/esm2022/button/buttons.component.mjs +4 -4
  41. package/esm2022/calendar/calendar.component.mjs +4 -4
  42. package/esm2022/calendar/calendar.module.mjs +5 -5
  43. package/esm2022/calendar/calendar.property.mjs +4 -4
  44. package/esm2022/card/card.component.mjs +4 -4
  45. package/esm2022/card/card.module.mjs +5 -5
  46. package/esm2022/card/card.property.mjs +4 -4
  47. package/esm2022/carousel/carousel-panel.component.mjs +4 -4
  48. package/esm2022/carousel/carousel.component.mjs +4 -4
  49. package/esm2022/carousel/carousel.module.mjs +5 -5
  50. package/esm2022/carousel/carousel.property.mjs +7 -7
  51. package/esm2022/cascade/cascade-portal.component.mjs +4 -4
  52. package/esm2022/cascade/cascade.component.mjs +4 -4
  53. package/esm2022/cascade/cascade.module.mjs +5 -5
  54. package/esm2022/cascade/cascade.property.mjs +4 -4
  55. package/esm2022/checkbox/checkbox.component.mjs +4 -4
  56. package/esm2022/checkbox/checkbox.module.mjs +5 -5
  57. package/esm2022/checkbox/checkbox.property.mjs +4 -4
  58. package/esm2022/collapse/collapse-panel.component.mjs +4 -4
  59. package/esm2022/collapse/collapse.component.mjs +4 -4
  60. package/esm2022/collapse/collapse.module.mjs +5 -5
  61. package/esm2022/collapse/collapse.property.mjs +7 -7
  62. package/esm2022/color/color.component.mjs +4 -4
  63. package/esm2022/color/color.module.mjs +5 -5
  64. package/esm2022/color/color.property.mjs +4 -4
  65. package/esm2022/color-picker/color-picker-portal.component.mjs +4 -4
  66. package/esm2022/color-picker/color-picker.component.mjs +4 -4
  67. package/esm2022/color-picker/color-picker.module.mjs +5 -5
  68. package/esm2022/color-picker/color-picker.property.mjs +4 -4
  69. package/esm2022/comment/comment-reply.component.mjs +4 -4
  70. package/esm2022/comment/comment.component.mjs +4 -4
  71. package/esm2022/comment/comment.module.mjs +5 -5
  72. package/esm2022/comment/comment.property.mjs +7 -7
  73. package/esm2022/container/aside.component.mjs +4 -4
  74. package/esm2022/container/container.component.mjs +4 -4
  75. package/esm2022/container/container.module.mjs +5 -5
  76. package/esm2022/container/container.property.mjs +13 -13
  77. package/esm2022/container/footer.component.mjs +4 -4
  78. package/esm2022/container/header.component.mjs +4 -4
  79. package/esm2022/container/main.component.mjs +4 -4
  80. package/esm2022/core/config/config.service.mjs +4 -4
  81. package/esm2022/core/services/http.service.mjs +4 -4
  82. package/esm2022/core/services/preloading-strategy.service.mjs +4 -4
  83. package/esm2022/core/services/storage.service.mjs +4 -4
  84. package/esm2022/core/theme/theme.service.mjs +4 -4
  85. package/esm2022/crumb/crumb.component.mjs +4 -4
  86. package/esm2022/crumb/crumb.module.mjs +5 -5
  87. package/esm2022/crumb/crumb.property.mjs +4 -4
  88. package/esm2022/date-picker/date-picker-portal.component.mjs +4 -4
  89. package/esm2022/date-picker/date-picker.component.mjs +4 -4
  90. package/esm2022/date-picker/date-picker.module.mjs +5 -5
  91. package/esm2022/date-picker/date-picker.property.mjs +19 -19
  92. package/esm2022/date-picker/date-quarter.pipe.mjs +4 -4
  93. package/esm2022/date-picker/date-range-portal.component.mjs +4 -4
  94. package/esm2022/date-picker/date-range.component.mjs +4 -4
  95. package/esm2022/date-picker/picker-date.component.mjs +4 -4
  96. package/esm2022/date-picker/picker-month.component.mjs +4 -4
  97. package/esm2022/date-picker/picker-quarter.component.mjs +4 -4
  98. package/esm2022/date-picker/picker-year.component.mjs +4 -4
  99. package/esm2022/description/description-item.component.mjs +4 -4
  100. package/esm2022/description/description.component.mjs +4 -4
  101. package/esm2022/description/description.module.mjs +5 -5
  102. package/esm2022/description/description.property.mjs +7 -7
  103. package/esm2022/dialog/dialog-container.component.mjs +4 -4
  104. package/esm2022/dialog/dialog-portal.component.mjs +4 -4
  105. package/esm2022/dialog/dialog-portal.directives.mjs +19 -19
  106. package/esm2022/dialog/dialog.component.mjs +4 -4
  107. package/esm2022/dialog/dialog.module.mjs +5 -5
  108. package/esm2022/dialog/dialog.property.mjs +7 -7
  109. package/esm2022/dialog/dialog.service.mjs +4 -4
  110. package/esm2022/doc/doc.component.mjs +5 -5
  111. package/esm2022/doc/doc.module.mjs +5 -5
  112. package/esm2022/drag/drag.directive.mjs +71 -0
  113. package/esm2022/drag/drag.module.mjs +19 -0
  114. package/esm2022/drag/drag.property.mjs +32 -0
  115. package/esm2022/drag/ng-nest-ui-drag.mjs +5 -0
  116. package/esm2022/drag/public-api.mjs +4 -0
  117. package/esm2022/drawer/drawer-container.component.mjs +4 -4
  118. package/esm2022/drawer/drawer-portal.component.mjs +4 -4
  119. package/esm2022/drawer/drawer-portal.directives.mjs +10 -10
  120. package/esm2022/drawer/drawer.component.mjs +4 -4
  121. package/esm2022/drawer/drawer.module.mjs +5 -5
  122. package/esm2022/drawer/drawer.property.mjs +7 -7
  123. package/esm2022/drawer/drawer.service.mjs +4 -4
  124. package/esm2022/dropdown/dropdown-portal.component.mjs +4 -4
  125. package/esm2022/dropdown/dropdown.component.mjs +4 -4
  126. package/esm2022/dropdown/dropdown.module.mjs +5 -5
  127. package/esm2022/dropdown/dropdown.property.mjs +4 -4
  128. package/esm2022/empty/empty.component.mjs +4 -4
  129. package/esm2022/empty/empty.module.mjs +5 -5
  130. package/esm2022/empty/empty.property.mjs +4 -4
  131. package/esm2022/examples/examples.component.mjs +4 -4
  132. package/esm2022/examples/examples.module.mjs +5 -5
  133. package/esm2022/find/find.component.mjs +4 -4
  134. package/esm2022/find/find.module.mjs +5 -5
  135. package/esm2022/find/find.property.mjs +4 -4
  136. package/esm2022/form/control.component.mjs +4 -4
  137. package/esm2022/form/form.component.mjs +4 -4
  138. package/esm2022/form/form.module.mjs +5 -5
  139. package/esm2022/form/form.property.mjs +7 -7
  140. package/esm2022/highlight/highlight.component.mjs +4 -4
  141. package/esm2022/highlight/highlight.module.mjs +5 -5
  142. package/esm2022/highlight/highlight.property.mjs +4 -4
  143. package/esm2022/i18n/i18n.directive.mjs +4 -4
  144. package/esm2022/i18n/i18n.module.mjs +5 -5
  145. package/esm2022/i18n/i18n.pipe.mjs +4 -4
  146. package/esm2022/i18n/i18n.service.mjs +4 -4
  147. package/esm2022/icon/icon.component.mjs +4 -4
  148. package/esm2022/icon/icon.module.mjs +5 -5
  149. package/esm2022/icon/icon.property.mjs +4 -4
  150. package/esm2022/icon/icon.service.mjs +4 -4
  151. package/esm2022/image/image-group.component.mjs +4 -4
  152. package/esm2022/image/image-preview.component.mjs +4 -4
  153. package/esm2022/image/image.component.mjs +4 -4
  154. package/esm2022/image/image.module.mjs +5 -5
  155. package/esm2022/image/image.property.mjs +7 -7
  156. package/esm2022/index.mjs +2 -1
  157. package/esm2022/inner/inner.component.mjs +4 -4
  158. package/esm2022/inner/inner.module.mjs +5 -5
  159. package/esm2022/inner/inner.property.mjs +4 -4
  160. package/esm2022/input/input-group.component.mjs +4 -4
  161. package/esm2022/input/input.component.mjs +5 -5
  162. package/esm2022/input/input.module.mjs +5 -5
  163. package/esm2022/input/input.property.mjs +17 -7
  164. package/esm2022/input-number/input-number.component.mjs +42 -17
  165. package/esm2022/input-number/input-number.module.mjs +5 -5
  166. package/esm2022/input-number/input-number.property.mjs +4 -4
  167. package/esm2022/keyword/keyword.directive.mjs +4 -4
  168. package/esm2022/keyword/keyword.module.mjs +5 -5
  169. package/esm2022/keyword/keyword.property.mjs +4 -4
  170. package/esm2022/layout/col.component.mjs +4 -4
  171. package/esm2022/layout/layout.module.mjs +5 -5
  172. package/esm2022/layout/layout.property.mjs +7 -7
  173. package/esm2022/layout/row.component.mjs +4 -4
  174. package/esm2022/link/link.component.mjs +4 -4
  175. package/esm2022/link/link.module.mjs +5 -5
  176. package/esm2022/link/link.property.mjs +4 -4
  177. package/esm2022/list/list-drop-group.directive.mjs +4 -4
  178. package/esm2022/list/list-option.component.mjs +4 -4
  179. package/esm2022/list/list.component.mjs +4 -4
  180. package/esm2022/list/list.module.mjs +5 -5
  181. package/esm2022/list/list.property.mjs +7 -7
  182. package/esm2022/loading/loading.component.mjs +4 -4
  183. package/esm2022/loading/loading.module.mjs +5 -5
  184. package/esm2022/loading/loading.property.mjs +4 -4
  185. package/esm2022/menu/menu-node.component.mjs +4 -4
  186. package/esm2022/menu/menu.component.mjs +4 -4
  187. package/esm2022/menu/menu.module.mjs +5 -5
  188. package/esm2022/menu/menu.property.mjs +7 -7
  189. package/esm2022/message/message.component.mjs +4 -4
  190. package/esm2022/message/message.module.mjs +5 -5
  191. package/esm2022/message/message.service.mjs +4 -4
  192. package/esm2022/message-box/message-box.component.mjs +4 -4
  193. package/esm2022/message-box/message-box.module.mjs +5 -5
  194. package/esm2022/message-box/message-box.service.mjs +4 -4
  195. package/esm2022/notification/notification.component.mjs +4 -4
  196. package/esm2022/notification/notification.module.mjs +5 -5
  197. package/esm2022/notification/notification.service.mjs +4 -4
  198. package/esm2022/outlet/outlet.directive.mjs +4 -4
  199. package/esm2022/outlet/outlet.module.mjs +5 -5
  200. package/esm2022/page-header/page-header.component.mjs +4 -4
  201. package/esm2022/page-header/page-header.module.mjs +5 -5
  202. package/esm2022/page-header/page-header.property.mjs +4 -4
  203. package/esm2022/pagination/pagination.component.mjs +4 -4
  204. package/esm2022/pagination/pagination.module.mjs +5 -5
  205. package/esm2022/pagination/pagination.property.mjs +4 -4
  206. package/esm2022/pattern/pattern.component.mjs +4 -4
  207. package/esm2022/pattern/pattern.module.mjs +5 -5
  208. package/esm2022/popconfirm/popconfirm.component.mjs +4 -4
  209. package/esm2022/popconfirm/popconfirm.module.mjs +5 -5
  210. package/esm2022/popconfirm/popconfirm.property.mjs +4 -4
  211. package/esm2022/popover/popover-portal.component.mjs +4 -4
  212. package/esm2022/popover/popover.directive.mjs +4 -4
  213. package/esm2022/popover/popover.module.mjs +5 -5
  214. package/esm2022/popover/popover.property.mjs +4 -4
  215. package/esm2022/portal/portal.module.mjs +5 -5
  216. package/esm2022/portal/portal.service.mjs +4 -4
  217. package/esm2022/progress/progress.component.mjs +4 -4
  218. package/esm2022/progress/progress.module.mjs +5 -5
  219. package/esm2022/progress/progress.property.mjs +4 -4
  220. package/esm2022/radio/radio.component.mjs +4 -4
  221. package/esm2022/radio/radio.module.mjs +5 -5
  222. package/esm2022/radio/radio.property.mjs +4 -4
  223. package/esm2022/rate/rate.component.mjs +4 -4
  224. package/esm2022/rate/rate.module.mjs +5 -5
  225. package/esm2022/rate/rate.property.mjs +4 -4
  226. package/esm2022/resizable/resizable.directive.mjs +4 -4
  227. package/esm2022/resizable/resizable.module.mjs +5 -5
  228. package/esm2022/resizable/resizable.property.mjs +4 -4
  229. package/esm2022/result/result.component.mjs +4 -4
  230. package/esm2022/result/result.module.mjs +5 -5
  231. package/esm2022/result/result.property.mjs +4 -4
  232. package/esm2022/ripple/ripple.directive.mjs +4 -4
  233. package/esm2022/ripple/ripple.module.mjs +5 -5
  234. package/esm2022/ripple/ripple.property.mjs +4 -4
  235. package/esm2022/select/select-portal.component.mjs +5 -5
  236. package/esm2022/select/select.component.mjs +5 -6
  237. package/esm2022/select/select.module.mjs +5 -5
  238. package/esm2022/select/select.property.mjs +4 -4
  239. package/esm2022/skeleton/skeleton.component.mjs +4 -4
  240. package/esm2022/skeleton/skeleton.module.mjs +5 -5
  241. package/esm2022/skeleton/skeleton.property.mjs +4 -4
  242. package/esm2022/slider/slider.component.mjs +4 -4
  243. package/esm2022/slider/slider.module.mjs +5 -5
  244. package/esm2022/slider/slider.property.mjs +4 -4
  245. package/esm2022/slider-select/slider-select.component.mjs +249 -50
  246. package/esm2022/slider-select/slider-select.module.mjs +31 -6
  247. package/esm2022/slider-select/slider-select.property.mjs +25 -4
  248. package/esm2022/statistic/countdown.component.mjs +4 -4
  249. package/esm2022/statistic/statistic.component.mjs +4 -4
  250. package/esm2022/statistic/statistic.module.mjs +5 -5
  251. package/esm2022/statistic/statistic.property.mjs +7 -7
  252. package/esm2022/steps/steps.component.mjs +4 -4
  253. package/esm2022/steps/steps.module.mjs +5 -5
  254. package/esm2022/steps/steps.property.mjs +4 -4
  255. package/esm2022/switch/switch.component.mjs +4 -4
  256. package/esm2022/switch/switch.module.mjs +5 -5
  257. package/esm2022/switch/switch.property.mjs +4 -4
  258. package/esm2022/table/public-api.mjs +1 -2
  259. package/esm2022/table/table-body.component.mjs +4 -4
  260. package/esm2022/table/table-foot.component.mjs +4 -4
  261. package/esm2022/table/table-head.component.mjs +6 -6
  262. package/esm2022/table/table.component.mjs +4 -4
  263. package/esm2022/table/table.module.mjs +12 -11
  264. package/esm2022/table/table.property.mjs +13 -13
  265. package/esm2022/tabs/tab-content.component.mjs +4 -4
  266. package/esm2022/tabs/tab-link.directive.mjs +7 -7
  267. package/esm2022/tabs/tab.component.mjs +4 -4
  268. package/esm2022/tabs/tabs.component.mjs +4 -4
  269. package/esm2022/tabs/tabs.module.mjs +5 -5
  270. package/esm2022/tabs/tabs.property.mjs +7 -7
  271. package/esm2022/tag/tag.component.mjs +4 -4
  272. package/esm2022/tag/tag.module.mjs +5 -5
  273. package/esm2022/tag/tag.property.mjs +4 -4
  274. package/esm2022/text-retract/text-retract.component.mjs +4 -4
  275. package/esm2022/text-retract/text-retract.module.mjs +5 -5
  276. package/esm2022/text-retract/text-retract.property.mjs +4 -4
  277. package/esm2022/textarea/textarea.component.mjs +4 -4
  278. package/esm2022/textarea/textarea.module.mjs +5 -5
  279. package/esm2022/textarea/textarea.property.mjs +4 -4
  280. package/esm2022/theme/theme.component.mjs +4 -4
  281. package/esm2022/theme/theme.module.mjs +5 -5
  282. package/esm2022/theme/theme.property.mjs +4 -4
  283. package/esm2022/time-ago/time-ago.module.mjs +5 -5
  284. package/esm2022/time-ago/time-ago.pipe.mjs +4 -4
  285. package/esm2022/time-picker/time-picker-frame.component.mjs +4 -4
  286. package/esm2022/time-picker/time-picker-portal.component.mjs +4 -4
  287. package/esm2022/time-picker/time-picker.component.mjs +4 -4
  288. package/esm2022/time-picker/time-picker.module.mjs +5 -5
  289. package/esm2022/time-picker/time-picker.property.mjs +4 -4
  290. package/esm2022/time-range/time-range.module.mjs +5 -5
  291. package/esm2022/time-range/time-range.pipe.mjs +4 -4
  292. package/esm2022/timeline/timeline.component.mjs +5 -5
  293. package/esm2022/timeline/timeline.module.mjs +5 -5
  294. package/esm2022/timeline/timeline.property.mjs +4 -4
  295. package/esm2022/tooltip/tooltip-portal.component.mjs +6 -5
  296. package/esm2022/tooltip/tooltip.directive.mjs +8 -6
  297. package/esm2022/tooltip/tooltip.module.mjs +7 -6
  298. package/esm2022/tooltip/tooltip.property.mjs +4 -4
  299. package/esm2022/transfer/transfer.component.mjs +4 -4
  300. package/esm2022/transfer/transfer.module.mjs +5 -5
  301. package/esm2022/transfer/transfer.property.mjs +4 -4
  302. package/esm2022/tree/tree-node.component.mjs +4 -4
  303. package/esm2022/tree/tree.component.mjs +6 -4
  304. package/esm2022/tree/tree.module.mjs +5 -5
  305. package/esm2022/tree/tree.property.mjs +7 -7
  306. package/esm2022/tree/tree.service.mjs +4 -4
  307. package/esm2022/tree-file/tree-file.component.mjs +4 -4
  308. package/esm2022/tree-file/tree-file.module.mjs +5 -5
  309. package/esm2022/tree-file/tree-file.property.mjs +4 -4
  310. package/esm2022/tree-select/tree-select-portal.component.mjs +5 -5
  311. package/esm2022/tree-select/tree-select.component.mjs +5 -5
  312. package/esm2022/tree-select/tree-select.module.mjs +5 -5
  313. package/esm2022/tree-select/tree-select.property.mjs +4 -4
  314. package/esm2022/typography/typography.component.mjs +4 -4
  315. package/esm2022/typography/typography.module.mjs +5 -5
  316. package/esm2022/typography/typography.property.mjs +4 -4
  317. package/esm2022/upload/upload-portal.component.mjs +4 -4
  318. package/esm2022/upload/upload.component.mjs +4 -4
  319. package/esm2022/upload/upload.module.mjs +5 -5
  320. package/esm2022/upload/upload.property.mjs +4 -4
  321. package/fesm2022/ng-nest-ui-affix.mjs +10 -10
  322. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  323. package/fesm2022/ng-nest-ui-alert.mjs +10 -10
  324. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  325. package/fesm2022/ng-nest-ui-anchor.mjs +16 -16
  326. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  327. package/fesm2022/ng-nest-ui-api.mjs +7 -7
  328. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  329. package/fesm2022/ng-nest-ui-auto-complete.mjs +15 -15
  330. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  331. package/fesm2022/ng-nest-ui-avatar.mjs +16 -16
  332. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  333. package/fesm2022/ng-nest-ui-back-top.mjs +10 -10
  334. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  335. package/fesm2022/ng-nest-ui-badge.mjs +10 -10
  336. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  337. package/fesm2022/ng-nest-ui-base-form.mjs +10 -10
  338. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  339. package/fesm2022/ng-nest-ui-border.mjs +7 -7
  340. package/fesm2022/ng-nest-ui-border.mjs.map +1 -1
  341. package/fesm2022/ng-nest-ui-button.mjs +16 -16
  342. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  343. package/fesm2022/ng-nest-ui-calendar.mjs +10 -10
  344. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  345. package/fesm2022/ng-nest-ui-card.mjs +10 -10
  346. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  347. package/fesm2022/ng-nest-ui-carousel.mjs +16 -16
  348. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  349. package/fesm2022/ng-nest-ui-cascade.mjs +13 -13
  350. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  351. package/fesm2022/ng-nest-ui-checkbox.mjs +10 -10
  352. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  353. package/fesm2022/ng-nest-ui-collapse.mjs +16 -16
  354. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  355. package/fesm2022/ng-nest-ui-color-picker.mjs +13 -13
  356. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  357. package/fesm2022/ng-nest-ui-color.mjs +10 -10
  358. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  359. package/fesm2022/ng-nest-ui-comment.mjs +16 -16
  360. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  361. package/fesm2022/ng-nest-ui-container.mjs +31 -31
  362. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  363. package/fesm2022/ng-nest-ui-core.mjs +15 -15
  364. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  365. package/fesm2022/ng-nest-ui-crumb.mjs +10 -10
  366. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  367. package/fesm2022/ng-nest-ui-date-picker.mjs +49 -49
  368. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  369. package/fesm2022/ng-nest-ui-description.mjs +16 -16
  370. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  371. package/fesm2022/ng-nest-ui-dialog.mjs +40 -40
  372. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  373. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  374. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  375. package/fesm2022/ng-nest-ui-drag.mjs +119 -0
  376. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -0
  377. package/fesm2022/ng-nest-ui-drawer.mjs +31 -31
  378. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  379. package/fesm2022/ng-nest-ui-dropdown.mjs +13 -13
  380. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  381. package/fesm2022/ng-nest-ui-empty.mjs +10 -10
  382. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  383. package/fesm2022/ng-nest-ui-examples.mjs +7 -7
  384. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  385. package/fesm2022/ng-nest-ui-find.mjs +10 -10
  386. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  387. package/fesm2022/ng-nest-ui-form.mjs +16 -16
  388. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  389. package/fesm2022/ng-nest-ui-highlight.mjs +10 -10
  390. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  391. package/fesm2022/ng-nest-ui-i18n.mjs +13 -13
  392. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  393. package/fesm2022/ng-nest-ui-icon.mjs +13 -13
  394. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  395. package/fesm2022/ng-nest-ui-image.mjs +19 -19
  396. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  397. package/fesm2022/ng-nest-ui-inner.mjs +10 -10
  398. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  399. package/fesm2022/ng-nest-ui-input-number.mjs +49 -25
  400. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  401. package/fesm2022/ng-nest-ui-input.mjs +27 -17
  402. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  403. package/fesm2022/ng-nest-ui-keyword.mjs +10 -10
  404. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  405. package/fesm2022/ng-nest-ui-layout.mjs +16 -16
  406. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  407. package/fesm2022/ng-nest-ui-link.mjs +10 -10
  408. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  409. package/fesm2022/ng-nest-ui-list.mjs +19 -19
  410. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  411. package/fesm2022/ng-nest-ui-loading.mjs +10 -10
  412. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  413. package/fesm2022/ng-nest-ui-menu.mjs +16 -16
  414. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  415. package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
  416. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  417. package/fesm2022/ng-nest-ui-message.mjs +10 -10
  418. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  419. package/fesm2022/ng-nest-ui-notification.mjs +10 -10
  420. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  421. package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
  422. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  423. package/fesm2022/ng-nest-ui-page-header.mjs +10 -10
  424. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  425. package/fesm2022/ng-nest-ui-pagination.mjs +10 -10
  426. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  427. package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
  428. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  429. package/fesm2022/ng-nest-ui-popconfirm.mjs +10 -10
  430. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  431. package/fesm2022/ng-nest-ui-popover.mjs +13 -13
  432. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  433. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  434. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  435. package/fesm2022/ng-nest-ui-progress.mjs +10 -10
  436. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  437. package/fesm2022/ng-nest-ui-radio.mjs +10 -10
  438. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  439. package/fesm2022/ng-nest-ui-rate.mjs +10 -10
  440. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  441. package/fesm2022/ng-nest-ui-resizable.mjs +10 -10
  442. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  443. package/fesm2022/ng-nest-ui-result.mjs +10 -10
  444. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  445. package/fesm2022/ng-nest-ui-ripple.mjs +10 -10
  446. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  447. package/fesm2022/ng-nest-ui-select.mjs +15 -16
  448. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  449. package/fesm2022/ng-nest-ui-skeleton.mjs +10 -10
  450. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  451. package/fesm2022/ng-nest-ui-slider-select.mjs +303 -59
  452. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  453. package/fesm2022/ng-nest-ui-slider.mjs +10 -10
  454. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  455. package/fesm2022/ng-nest-ui-statistic.mjs +16 -16
  456. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  457. package/fesm2022/ng-nest-ui-steps.mjs +10 -10
  458. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  459. package/fesm2022/ng-nest-ui-switch.mjs +10 -10
  460. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  461. package/fesm2022/ng-nest-ui-table.mjs +40 -109
  462. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  463. package/fesm2022/ng-nest-ui-tabs.mjs +25 -25
  464. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  465. package/fesm2022/ng-nest-ui-tag.mjs +10 -10
  466. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  467. package/fesm2022/ng-nest-ui-text-retract.mjs +10 -10
  468. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  469. package/fesm2022/ng-nest-ui-textarea.mjs +10 -10
  470. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  471. package/fesm2022/ng-nest-ui-theme.mjs +10 -10
  472. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  473. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  474. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  475. package/fesm2022/ng-nest-ui-time-picker.mjs +16 -16
  476. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  477. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  478. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  479. package/fesm2022/ng-nest-ui-timeline.mjs +11 -11
  480. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  481. package/fesm2022/ng-nest-ui-tooltip.mjs +23 -19
  482. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  483. package/fesm2022/ng-nest-ui-transfer.mjs +10 -10
  484. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  485. package/fesm2022/ng-nest-ui-tree-file.mjs +10 -10
  486. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  487. package/fesm2022/ng-nest-ui-tree-select.mjs +15 -15
  488. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  489. package/fesm2022/ng-nest-ui-tree.mjs +21 -19
  490. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  491. package/fesm2022/ng-nest-ui-typography.mjs +10 -10
  492. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  493. package/fesm2022/ng-nest-ui-upload.mjs +13 -13
  494. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  495. package/fesm2022/ng-nest-ui.mjs +1 -0
  496. package/fesm2022/ng-nest-ui.mjs.map +1 -1
  497. package/index.d.ts +1 -0
  498. package/input/input.property.d.ts +11 -1
  499. package/input-number/input-number.component.d.ts +6 -1
  500. package/package.json +81 -75
  501. package/slider-select/slider-select.component.d.ts +33 -16
  502. package/slider-select/slider-select.module.d.ts +3 -1
  503. package/slider-select/slider-select.property.d.ts +56 -3
  504. package/table/public-api.d.ts +0 -1
  505. package/table/table.module.d.ts +18 -18
  506. package/tooltip/tooltip-portal.component.d.ts +2 -2
  507. package/tooltip/tooltip.module.d.ts +2 -1
  508. package/tooltip/tooltip.property.d.ts +2 -2
  509. package/esm2022/table/drag.directive.mjs +0 -78
  510. package/table/drag.directive.d.ts +0 -27
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-core.mjs","sources":["../../../../lib/ng-nest/ui/core/util/option.ts","../../../../lib/ng-nest/ui/core/util/host.ts","../../../../lib/ng-nest/ui/core/util/log.ts","../../../../lib/ng-nest/ui/core/util/computed-style.ts","../../../../lib/ng-nest/ui/core/util/animation.ts","../../../../lib/ng-nest/ui/core/util/html.ts","../../../../lib/ng-nest/ui/core/util/check.ts","../../../../lib/ng-nest/ui/core/animation/consts.ts","../../../../lib/ng-nest/ui/core/animation/fade.ts","../../../../lib/ng-nest/ui/core/animation/slide.ts","../../../../lib/ng-nest/ui/core/animation/drop.ts","../../../../lib/ng-nest/ui/core/animation/move.ts","../../../../lib/ng-nest/ui/core/animation/connect.ts","../../../../lib/ng-nest/ui/core/animation/badge.ts","../../../../lib/ng-nest/ui/core/animation/opacity.ts","../../../../lib/ng-nest/ui/core/interfaces/data.type.ts","../../../../lib/ng-nest/ui/core/interfaces/identify.type.ts","../../../../lib/ng-nest/ui/core/functions/convert.ts","../../../../lib/ng-nest/ui/core/functions/date.ts","../../../../lib/ng-nest/ui/core/functions/flex.ts","../../../../lib/ng-nest/ui/core/functions/drop.ts","../../../../lib/ng-nest/ui/core/functions/remove.ts","../../../../lib/ng-nest/ui/core/functions/order-by.ts","../../../../lib/ng-nest/ui/core/functions/clone-deep.ts","../../../../lib/ng-nest/ui/core/functions/has-in.ts","../../../../lib/ng-nest/ui/core/functions/chunk.ts","../../../../lib/ng-nest/ui/core/functions/guid.ts","../../../../lib/ng-nest/ui/core/functions/group-by.ts","../../../../lib/ng-nest/ui/core/functions/resize.ts","../../../../lib/ng-nest/ui/core/functions/parent-path.ts","../../../../lib/ng-nest/ui/core/functions/property.ts","../../../../lib/ng-nest/ui/core/services/reuse-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/preloading-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/http.service.ts","../../../../lib/ng-nest/ui/core/services/storage.service.ts","../../../../lib/ng-nest/ui/core/services/repository.service.ts","../../../../lib/ng-nest/ui/core/config/config.ts","../../../../lib/ng-nest/ui/core/theme/theme.ts","../../../../lib/ng-nest/ui/core/theme/theme.service.ts","../../../../lib/ng-nest/ui/core/config/config.service.ts","../../../../lib/ng-nest/ui/core/ng-nest-ui-core.ts"],"sourcesContent":["/**\r\n * Fill default values\r\n * @param option option\r\n * @param def default\r\n */\r\nexport function fillDefault(option: { [property: string]: any }, def: { [property: string]: any }) {\r\n if (option && def) {\r\n for (const key in def) {\r\n if (typeof option[key] === 'undefined') {\r\n option[key] = def[key];\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * 删除当前标签,保留内容\r\n */\r\nexport function removeNgTag(nativeElement: HTMLElement): void {\r\n const parentElement = nativeElement.parentElement;\r\n if (!parentElement || !parentElement.insertBefore) return;\r\n while (nativeElement.firstChild) {\r\n parentElement.insertBefore(nativeElement.firstChild, nativeElement);\r\n }\r\n parentElement.removeChild(nativeElement);\r\n}\r\n","export function warnSVGTagNotFound() {\r\n console.warn(`<svg> tag not found.`);\r\n}\r\nexport function warnIconTypeNotFound() {\r\n console.warn(`icon type not found.`);\r\n}\r\n","export function XComputedStyle(element: HTMLElement, style: string) {\r\n let computed = XComputed(element);\r\n let value = computed[style as any];\r\n return value.replace(/px/g, '');\r\n}\r\n\r\nexport function XComputed(element: HTMLElement) {\r\n if (typeof getComputedStyle === 'function') {\r\n return getComputedStyle(element);\r\n }\r\n return element.style;\r\n}\r\n","// tslint:disable:no-any typedef no-invalid-this\r\nconst availablePrefixes = ['moz', 'ms', 'webkit'];\r\n\r\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\r\n let lastTime = 0;\r\n return function (callback: FrameRequestCallback): any {\r\n const currTime = new Date().getTime();\r\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n const id = setTimeout(() => {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n}\r\n\r\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\r\n if (typeof window === 'undefined') {\r\n return () => 0;\r\n }\r\n if (window.requestAnimationFrame) {\r\n return window.requestAnimationFrame.bind(window);\r\n }\r\n\r\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\r\n\r\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\r\n}\r\n// export function cancelRequestAnimationFrame(id: number): any {\r\n// if (typeof window === \"undefined\") {\r\n// return null;\r\n// }\r\n// if (window.cancelAnimationFrame) {\r\n// return window.cancelAnimationFrame(id);\r\n// }\r\n// const prefix = availablePrefixes.filter(\r\n// key =>\r\n// `${key}CancelAnimationFrame` in window ||\r\n// `${key}CancelRequestAnimationFrame` in window\r\n// )[0];\r\n\r\n// return prefix\r\n// ? (\r\n// (window as any)[`${prefix}CancelAnimationFrame`] ||\r\n// (window as any)[`${prefix}CancelRequestAnimationFrame`]\r\n// )\r\n// // @ts-ignore\r\n// .call(this, id)\r\n// : clearTimeout(id);\r\n// }\r\n\r\nexport const reqAnimFrame = getRequestAnimationFrame();\r\n","/**\r\n * 去除HTML标签\r\n */\r\n export function stripTags(text: string, ...usefulTags: any[]): string {\r\n if (!text || typeof (text) !== 'string')\r\n return text;\r\n return usefulTags.length > 0\r\n ? text.replace(new RegExp(`<(?!\\/?(${usefulTags.join('|')})\\s*\\/?)[^>]+>`, 'g'), '')\r\n : text.replace(/<(?:.|\\s)*?>/g, '');\r\n}\r\n","export function isNotNil<T>(value: T): value is NonNullable<T> {\r\n return typeof value !== 'undefined' && value !== null;\r\n}\r\n\r\nexport function isNil(value: unknown): value is null | undefined {\r\n return typeof value === 'undefined' || value === null;\r\n}\r\n","export enum XDuration {\r\n Slow = '0.3s',\r\n Base = '0.2s',\r\n Fast = '0.1s'\r\n}\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XFadeAnimation: AnimationTriggerMetadata = trigger('x-fade-animation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(0.8)' }),\r\n animate(`${XDURATION_BASE_EASE_IN}`, style({ opacity: 1, transform: 'scale(1)' }))\r\n ]),\r\n transition(':leave', [animate(`${XDURATION_BASE_EASE_OUT}`, style({ opacity: 0 }))])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XSlideAnimation: AnimationTriggerMetadata = trigger('x-slide-animation', [\r\n transition('void => right', [style({ transform: 'translate(100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('right => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(100%,0)' }))]),\r\n transition('void => left', [style({ transform: 'translate(-100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('left => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(-100%,0)' }))]),\r\n transition('void => top', [style({ transform: 'translate(0,-100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('top => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,-100%)' }))]),\r\n transition('void => bottom', [style({ transform: 'translate(0,100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('bottom => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,100%)' }))])\r\n]);\r\n\r\nexport const XSliderAnimation: AnimationTriggerMetadata = trigger('x-slider-animation', [\r\n transition('void => left, void => right', [\r\n style({\r\n width: 0,\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: '*',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void, right => void', [\r\n style({\r\n width: '*',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: 0,\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XDropAnimation: AnimationTriggerMetadata = trigger('x-drop-animation', [\r\n state('*', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('false', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('true', style({ opacity: 1, height: '*', border: '*', padding: '*', visibility: 'inherit' })),\r\n transition('* => *', animate(`${XDuration.Base} ease-out`))\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\nexport const XMoveAnimation: AnimationTriggerMetadata = trigger('x-move-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-200%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-200%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(200%)',\r\n opacity: 0,\r\n height: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(200%)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XMoveBoxAnimation: AnimationTriggerMetadata = trigger('x-move-box-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\n// const XDURATION_SLOW_EASE_IN = `${XDuration.Slow} ease-in`;\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Base} ease-in`;\r\nconst XDURATION_FAST_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\n// const XDURATION_SLOW_EASE_OUT = `${XDuration.Slow} ease-out`;\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Base} ease-out`;\r\nconst XDURATION_FAST_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XConnectAnimation: AnimationTriggerMetadata = trigger('x-connect-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_FAST_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_FAST_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n }),\r\n animate(\r\n XDURATION_FAST_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n }),\r\n animate(\r\n XDURATION_FAST_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XConnectBaseAnimation: AnimationTriggerMetadata = trigger('x-connect-base-animation', [\r\n transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate(XDURATION_FAST_EASE_IN)]),\r\n transition(':leave', [animate(XDURATION_FAST_EASE_OUT, style({ opacity: 0 }))])\r\n]);\r\n\r\nexport const XBaseAnimation: AnimationTriggerMetadata = trigger('x-base-animation', [\r\n transition(':enter', [style({ opacity: 0, transform: 'scale(0.2)' }), animate(XDURATION_BASE_EASE_IN)]),\r\n transition(':leave', [animate(XDURATION_BASE_EASE_OUT, style({ opacity: 0, transform: 'scale(0.2)' }))])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_SLOW_EASE_IN = `${XDuration.Slow} ease-in`;\r\n// 移除动画\r\nconst XDURATION_SLOW_EASE_OUT = `${XDuration.Slow} ease-out`;\r\n\r\nexport const XBadgeAnimation: AnimationTriggerMetadata = trigger('x-badge-animation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(0) translate(50%, -50%)' }),\r\n animate(\r\n XDURATION_SLOW_EASE_IN,\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1) translate(50%, -50%)'\r\n })\r\n )\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: 1, transform: 'scale(1) translate(50%, -50%)' }),\r\n animate(\r\n XDURATION_SLOW_EASE_OUT,\r\n style({\r\n opacity: 0,\r\n transform: 'scale(0) translate(50%, -50%)'\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XBadgeStandaloneAnimation: AnimationTriggerMetadata = trigger('x-badge-standalone-animation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(0)' }),\r\n animate(\r\n XDURATION_SLOW_EASE_IN,\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1)'\r\n })\r\n )\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: 1, transform: 'scale(1)' }),\r\n animate(\r\n XDURATION_SLOW_EASE_OUT,\r\n style({\r\n opacity: 0,\r\n transform: 'scale(0)'\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XOpacityAnimation: AnimationTriggerMetadata = trigger('x-opacity-animation', [\r\n state('*', style({ opacity: 0 })),\r\n state('false', style({ opacity: 0 })),\r\n state('true', style({ opacity: 1 })),\r\n transition('* => *', animate(`${XDuration.Slow} cubic-bezier(0.25, 0.8, 0.25, 1)`))\r\n]);\r\n","import { Observable, isObservable } from 'rxjs';\r\nimport { TemplateRef, SimpleChange } from '@angular/core';\r\n\r\n// 数据类型\r\nexport type XData<T> = T[] | Observable<T[] | any[]> | any[] | Function;\r\n\r\n// Boolean 类型\r\nexport type XBoolean = boolean | string;\r\n\r\n// Number 类型\r\nexport type XNumber = number | string;\r\n\r\n// 模板类型\r\nexport type XTemplate = string | number | Date | TemplateRef<any>;\r\n\r\n// 类型判断\r\nexport const XIsType = (type: string) => (object: any) => Object.prototype.toString.call(object) === `[object ${type}]`;\r\n\r\n// 值改变判断\r\nexport const XIsChange = (...changes: SimpleChange[]) => {\r\n for (let change of changes) {\r\n if (change?.currentValue !== change?.previousValue) return true;\r\n }\r\n return false;\r\n};\r\n\r\nconst IsString = XIsType('String');\r\nconst IsArray = XIsType('Array');\r\nconst IsNumber = XIsType('Number');\r\nconst IsBoolean = XIsType('Boolean');\r\nconst IsObject = XIsType('Object');\r\nconst IsNull = XIsType('Null');\r\nconst IsFunction = XIsType('Function');\r\nconst IsDate = XIsType('Date');\r\nconst IsRegExp = XIsType('RegExp');\r\n\r\nexport function XIsString(value: any): value is string {\r\n return IsString(value);\r\n}\r\nexport function XIsArray(value: any): value is Array<any> {\r\n return IsArray(value);\r\n}\r\nexport function XIsNumber(value: any): value is number {\r\n return IsNumber(value);\r\n}\r\nexport function XIsBoolean(value: any): value is boolean {\r\n return IsBoolean(value);\r\n}\r\nexport function XIsObject<T>(value: any): value is T {\r\n return IsObject(value);\r\n}\r\nexport function XIsNull(value: any): value is null {\r\n return IsNull(value);\r\n}\r\nexport function XIsFunction(value: any): value is Function {\r\n return IsFunction(value);\r\n}\r\nexport function XIsDate(value: any): value is Date {\r\n return IsDate(value);\r\n}\r\nexport function XIsRegExp(value: any): value is RegExp {\r\n return IsRegExp(value);\r\n}\r\nexport function XIsUndefined(value: any): value is undefined {\r\n return typeof value === 'undefined';\r\n}\r\nexport function XIsValue<T>(object: any): object is T {\r\n return XIsString(object) || XIsNumber(object) || XIsBoolean(object) || XIsDate(object);\r\n}\r\nexport function XIsEmpty(object: any) {\r\n return XIsUndefined(object) || XIsNull(object) || object === '' || object.length === 0;\r\n}\r\nexport function XIsValueArray<T>(object: any): object is T {\r\n return XIsArray(object) && object.length > 0 && !XIsObject(object[0]);\r\n}\r\nexport function XIsObjectArray<T>(object: any): object is T {\r\n return XIsArray(object) && object.length > 0 && XIsObject(object[0]);\r\n}\r\nexport function XIsObservable<T>(object: any): object is Observable<T> {\r\n return isObservable(object);\r\n}\r\nexport function XIsTemplateRef<T>(object: any): object is TemplateRef<T> {\r\n if (!XIsEmpty(object) && object.elementRef) return true;\r\n else return false;\r\n}\r\nexport function XIsXTemplate(object: any): object is XTemplate {\r\n return XIsString(object) || XIsNumber(object) || XIsDate(object) || XIsTemplateRef(object);\r\n}\r\n","// 标识对象\r\nexport interface XIdentityProperty {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n\r\n// 父节点标识对象\r\nexport interface XParentIdentityProperty<T> extends XIdentityProperty {\r\n // 编码\r\n pid?: any;\r\n // 层级\r\n level?: number;\r\n // 叶子节点\r\n leaf?: boolean;\r\n // 子节点\r\n children?: T[];\r\n // 子节点已加载过\r\n childrenLoaded?: boolean;\r\n // 选中\r\n selected?: boolean;\r\n // 禁用\r\n disabled?: boolean;\r\n // 展开\r\n open?: boolean;\r\n}\r\n\r\n// 标识对象\r\nexport class XIdentity {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n","import { coerceBooleanProperty, _isNumberValue } from '@angular/cdk/coercion';\r\nimport {\r\n XData,\r\n XIsNull,\r\n XIsUndefined,\r\n XIsArray,\r\n XIsValue,\r\n XIsObject,\r\n XIsObservable,\r\n XParentIdentityProperty,\r\n XBoolean,\r\n XClassMap,\r\n XIsFunction\r\n} from '../interfaces';\r\nimport { Observable, Subject, Observer } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\nexport function XToBoolean(value: XBoolean): boolean {\r\n // if (XIsString(value)) {\r\n // return ['', 'true'].indexOf(String(value).trim()) !== -1;\r\n // } else {\r\n // return Boolean(value);\r\n // }\r\n return coerceBooleanProperty(value);\r\n}\r\n\r\nfunction XToNumber(value: number | string): number;\r\nfunction XToNumber<D>(value: number | string, fallback: D): number | D;\r\nfunction XToNumber(value: number | string, fallbackValue: number = 0): number {\r\n return _isNumberValue(value) ? Number(value) : fallbackValue;\r\n}\r\n\r\nexport function XToDataConvert<T>(value: XData<T>): XData<T> {\r\n if (XIsArray(value)) {\r\n return (value as []).map((x: any) => {\r\n if (XIsValue(x)) {\r\n return { label: x, id: x };\r\n } else if (XIsObject<{ label: any; id: any }>(x)) {\r\n x.label = XIsUndefined(x.label) || XIsNull(x.label) ? x.id : x.label;\r\n x.id = XIsUndefined(x.id) || XIsNull(x.id) ? x.label : x.id;\r\n return x;\r\n }\r\n return x;\r\n });\r\n }\r\n return value;\r\n}\r\n\r\nexport function XSetData<T>(data: XData<T>, unSubject: Subject<void>, toConvert = true, funcParam: any = null): Observable<T[]> {\r\n return new Observable((x: Observer<T[]>) => {\r\n const result = (res: T[]) => {\r\n x.next(res);\r\n x.complete();\r\n };\r\n if (typeof data === 'undefined') {\r\n result([]);\r\n } else {\r\n if (XIsObservable(data)) {\r\n (data as Observable<T[]>)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else if (XIsFunction(data)) {\r\n (data as (param: any) => Observable<T[]>)(funcParam)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else {\r\n result((toConvert ? XToDataConvert(data) : data) as T[]);\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function XGetChildren<T extends XParentIdentityProperty<T>>(nodes: T[], node: T, level: number) {\r\n node.level = level;\r\n node.children = nodes.filter((y) => y.pid === node.id);\r\n node.leaf = node.children?.length > 0;\r\n if (node.leaf) node.children.map((y) => XGetChildren(nodes, y, level + 1));\r\n return node;\r\n}\r\n\r\nexport function XInvertKeyValues(obj: any): Map<any, any> {\r\n return Object.keys(obj).reduce((nw, key) => {\r\n nw.set(obj[key], key);\r\n return nw;\r\n }, new Map());\r\n}\r\n\r\nexport function XClearClass(...classMaps: XClassMap[]) {\r\n classMaps.forEach((classMap) => {\r\n for (const key in classMap) {\r\n classMap[key] = false;\r\n }\r\n });\r\n}\r\n\r\nfunction propDecoratorFactory<T, D>(name: string, fallback: (v: T) => D): (target: any, propName: string) => void {\r\n function propDecorator(target: any, propName: string, originalDescriptor?: TypedPropertyDescriptor<any>): any {\r\n const privatePropName = `$$__${propName}`;\r\n\r\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\r\n console.warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\r\n }\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true\r\n });\r\n\r\n return {\r\n get(): string {\r\n return originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n },\r\n set(value: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(fallback(value));\r\n }\r\n this[privatePropName] = fallback(value);\r\n }\r\n };\r\n }\r\n\r\n return propDecorator;\r\n}\r\n\r\nexport function XInputBoolean(): any {\r\n return propDecoratorFactory('XInputBoolean', XToBoolean);\r\n}\r\n\r\nexport function XInputNumber(): any {\r\n return propDecoratorFactory('XInputNumber', XToNumber);\r\n}\r\n\r\nexport function XDataConvert(): any {\r\n return propDecoratorFactory('XDataConvert', XToDataConvert);\r\n}\r\n\r\nexport function XClamp(value: number, min: number, max: number) {\r\n return Math.max(min, Math.min(max, value));\r\n}\r\n","import { XIsDate, XIsNumber } from '../interfaces';\r\n\r\nexport type XDate = string | Date | number;\r\n\r\nexport function XToDate(date: XDate): Date {\r\n if (XIsDate(date) || XIsNumber(date)) {\r\n return new Date(date);\r\n } else {\r\n return new Date(Date.parse(date as string));\r\n }\r\n}\r\n\r\nexport function XAddMilliseconds(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n return new Date(dt.getTime() + amount);\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddSeconds(date: XDate, amount: number): Date {\r\n return XAddMilliseconds(date, amount * 1000);\r\n}\r\n\r\nexport function XAddMinutes(date: XDate, amount: number): Date {\r\n return XAddMilliseconds(date, amount * 60000);\r\n}\r\n\r\nexport function XAddHours(date: XDate, amount: number): Date {\r\n return XAddMilliseconds(date, amount * 3600000);\r\n}\r\n\r\nexport function XAddDays(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setDate(dt.getDate() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMonths(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n const day = dt.getDate();\r\n const month = dt.getMonth();\r\n const endMonth = new Date(dt);\r\n endMonth.setMonth(month + amount + 1, 0);\r\n const endDay = endMonth.getDate();\r\n if (day >= endDay) {\r\n return endMonth;\r\n } else {\r\n dt.setFullYear(endMonth.getFullYear(), endMonth.getMonth(), day);\r\n }\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddYears(date: XDate, amount: number): Date {\r\n return XAddMonths(date, amount * 12);\r\n}\r\n\r\nexport function XDateWeek(date: XDate) {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf())) {\r\n return getISOWeek(dt);\r\n }\r\n return;\r\n}\r\n\r\nexport function XDateWeekYear(date: XDate) {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf())) {\r\n return getISOWeekYear(dt);\r\n }\r\n return;\r\n}\r\n\r\nexport function XDateYearWeek(date: XDate) {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf())) {\r\n return `${getISOWeekYear(dt)}-${getISOWeek(dt)}`;\r\n }\r\n return;\r\n}\r\n\r\nexport function XDateYearQuarter(date: XDate) {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf())) {\r\n return `${dt.getFullYear()}-${XDateQuarter(dt)}`;\r\n }\r\n return;\r\n}\r\n\r\nexport function XDateQuarter(date: XDate) {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf())) {\r\n return `Q${Math.ceil((dt.getMonth() + 1) / 3)}`;\r\n }\r\n return;\r\n}\r\n\r\nfunction getISOWeek(date: Date): number {\r\n const diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();\r\n return Math.round(diff / 604800000) + 1;\r\n}\r\n\r\nfunction startOfISOWeek(date: Date) {\r\n return startOfWeek(date, { weekStartsOn: 1 });\r\n}\r\n\r\nfunction startOfWeek(date: Date, options?: { weekStartsOn: number }) {\r\n const weekStartsOn = options?.weekStartsOn || 0;\r\n const day = date.getDay();\r\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\r\n date.setDate(date.getDate() - diff);\r\n date.setHours(0, 0, 0, 0);\r\n return date;\r\n}\r\n\r\nfunction startOfISOWeekYear(date: Date) {\r\n const year = getISOWeekYear(date);\r\n const fourthOfJanuary = constructFrom(date, 0);\r\n fourthOfJanuary.setFullYear(year, 0, 4);\r\n fourthOfJanuary.setHours(0, 0, 0, 0);\r\n const result = startOfISOWeek(fourthOfJanuary);\r\n return result;\r\n}\r\n\r\nfunction constructFrom<DateType extends Date>(date: DateType | number, value: Date | number): DateType {\r\n if (date instanceof Date) {\r\n return new (date.constructor as any)(value);\r\n } else {\r\n return new Date(value) as DateType;\r\n }\r\n}\r\n\r\nfunction getISOWeekYear(date: Date): number {\r\n const year = date.getFullYear();\r\n\r\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\r\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\r\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\r\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\r\n\r\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\r\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\r\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\r\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\r\n\r\n if (date.getTime() >= startOfNextYear.getTime()) {\r\n return year + 1;\r\n } else if (date.getTime() >= startOfThisYear.getTime()) {\r\n return year;\r\n } else {\r\n return year - 1;\r\n }\r\n}\r\n","import { Renderer2 } from '@angular/core';\r\nimport { XAlign, XDirection, XIsEmpty, XJustify } from '../interfaces';\r\n\r\nexport function XSetFlex(ele: Element, renderer: Renderer2, justify?: XJustify, align?: XAlign, direction?: XDirection) {\r\n let result: string[] = [];\r\n if (!XIsEmpty(justify)) {\r\n const justifyStr = `x-justify-${justify}`;\r\n result.push(justifyStr)\r\n renderer.addClass(ele, justifyStr);\r\n }\r\n if (!XIsEmpty(align)) {\r\n const alignStr = `x-align-${align}`;\r\n result.push(alignStr)\r\n renderer.addClass(ele, alignStr);\r\n }\r\n if (!XIsEmpty(direction)) {\r\n const directionStr = `x-direction-${direction}`;\r\n result.push(directionStr)\r\n renderer.addClass(ele, directionStr);\r\n }\r\n return result;\r\n}\r\n","export function XDrop<T>(array: Array<T>, n?: number): T[] {\r\n if (!n) return [...array];\r\n if (array.length < 1 || array.length <= Math.abs(n)) return [];\r\n return array.slice(n > 0 ? n : 0, n > 0 ? array.length : n);\r\n}\r\n","export function XRemove<T>(array: Array<T>, predicate?: (value: T) => boolean): T[] {\r\n if (typeof predicate === 'undefined') return [];\r\n let result: T[] = [];\r\n for (let i = 0; i < array.length; i++) {\r\n if (predicate(array[i])) {\r\n result.push(array[i]);\r\n }\r\n }\r\n for (let item of result) {\r\n array.splice(array.indexOf(item), 1);\r\n }\r\n return result;\r\n}\r\n","export function XOrderBy<T>(collection: Array<T>, iteratees: Array<string>, orders?: Array<'asc' | 'desc'>): T[] {\r\n if (!iteratees) return collection;\r\n if (!orders) orders = [];\r\n\r\n function compare(a: any, b: any, prop: any, order: 'asc' | 'desc' | undefined, idex: number): number {\r\n if (a[prop] == b[prop]) {\r\n ++idex;\r\n if (iteratees.length > idex) {\r\n const odr = orders && orders.length > idex ? orders[idex] : 'asc';\r\n return compare(a, b, iteratees[idex], odr, idex);\r\n } else {\r\n return 0;\r\n }\r\n }\r\n let isNumber = !isNaN(a[prop]);\r\n if (order === 'desc') {\r\n if (isNumber) {\r\n return (b[prop] - a[prop]) as number;\r\n } else {\r\n if (b[prop] > a[prop]) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n } else {\r\n if (isNumber) {\r\n return (a[prop] - b[prop]) as number;\r\n } else {\r\n if (a[prop] > b[prop]) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n const iterate = iteratees.shift();\r\n const order = orders.shift() || 'asc';\r\n\r\n if (!iterate) return collection;\r\n\r\n collection.sort((a: any, b: any) => compare(a, b, iterate, order, -1));\r\n\r\n return collection;\r\n}\r\n","export function XCloneDeep(value: any): any {\r\n let result: any = Array.isArray(value) ? [] : {};\r\n if (value && typeof value === 'object') {\r\n for (let key in value) {\r\n if ((value as Object).hasOwnProperty(key)) {\r\n result[key] = value && typeof value[key] === 'object' ? XCloneDeep(value[key]) : value[key];\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n","export function XHasIn(object: Object, key: string) {\r\n return object != null && key in Object(object);\r\n}\r\n","export function XChunk<T>(array: T[], size = 1): T[][] {\r\n const len = array == null ? 0 : array.length;\r\n if (!len || size < 1) {\r\n return [];\r\n }\r\n let index = 0;\r\n let resIndex = 0;\r\n const result = new Array(Math.ceil(len / size));\r\n\r\n while (index < len) {\r\n result[resIndex++] = array.slice(index, (index += size));\r\n }\r\n return result;\r\n}\r\n","/**\r\n * 生成 GUID\r\n */\r\nexport function XGuid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n}\r\n","export function XGroupBy<T>(array: T[], name: string): T[][] {\r\n const groups: any = {};\r\n array.forEach((obj: any) => {\r\n const group = JSON.stringify(obj[name]);\r\n groups[group] = groups[group] || [];\r\n groups[group].push(obj);\r\n });\r\n return Object.keys(groups).map((group) => groups[group]);\r\n}\r\n","import { Observable, Subscriber } from 'rxjs';\r\n\r\nexport type XResizeObserver = ResizeObserver | null;\r\nexport type XResizeObserverEntry = ResizeObserverEntry | null;\r\n\r\nexport const XResize = (...element: Element[]): Observable<{ entry: XResizeObserverEntry; resizeObserver: XResizeObserver }> => {\r\n return new Observable(\r\n (\r\n x: Subscriber<{\r\n entry: XResizeObserverEntry;\r\n resizeObserver: XResizeObserver;\r\n }>\r\n ) => {\r\n if (typeof ResizeObserver !== 'function') {\r\n return;\r\n }\r\n const resizeObserver = new ResizeObserver((entries: XResizeObserverEntry[]) => {\r\n for (const entry of entries) {\r\n x.next({ entry: entry, resizeObserver: resizeObserver });\r\n }\r\n });\r\n for (let ele of element) {\r\n if (ele) resizeObserver.observe(ele);\r\n }\r\n\r\n //XResize 取消订阅的时候自动销毁\r\n //resizeObserver.disconnect();\r\n }\r\n );\r\n};\r\n","export function XParentPath(ele: HTMLElement): string[] {\r\n let path: string[] = [];\r\n let nowEle = ele;\r\n while (nowEle.parentNode != null) {\r\n path.push(nowEle.localName);\r\n nowEle = nowEle.parentNode as HTMLElement;\r\n }\r\n return path;\r\n}\r\n\r\nexport function XParents(ele: HTMLElement): HTMLElement[] {\r\n let res: HTMLElement[] = [];\r\n let nowEle = ele;\r\n while (nowEle.parentElement != null) {\r\n res.push(nowEle.parentElement!);\r\n nowEle = nowEle.parentNode as HTMLElement;\r\n }\r\n return res;\r\n}\r\n","import { XClassMap } from '../interfaces';\r\n\r\n/**\r\n * 组件公共属性\r\n */\r\nexport class XProperty {\r\n /**\r\n * 样式映射属性\r\n */\r\n classMap: XClassMap = {};\r\n}\r\n","import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n\r\nexport interface XRouteReuseStorage {\r\n id: string;\r\n handle: DetachedRouteHandle;\r\n}\r\n\r\n// @dynamic\r\nexport class XReuseStrategyService implements RouteReuseStrategy {\r\n // 存储的复用路由\r\n public static storages: XRouteReuseStorage[] = [];\r\n // 用一个临时变量记录待删除的路由\r\n private static waitDelete: string | null;\r\n\r\n /**\r\n * 表示对所有路由允许复用 如果你有路由不想利用可以在这加一些业务逻辑判断\r\n */\r\n public shouldDetach(_route: ActivatedRouteSnapshot): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * 当路由离开时会触发。按path作为key存储路由快照&组件当前实例对象\r\n */\r\n public store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n if (handle == null) return;\r\n if (XReuseStrategyService.waitDelete && this.getRouteUrl(route).indexOf(XReuseStrategyService.waitDelete) == 0) {\r\n //如果待删除是当前路由则不存储快照\r\n XReuseStrategyService.waitDelete = null;\r\n return;\r\n }\r\n this.add(this.getRouteUrl(route), handle);\r\n }\r\n\r\n /**\r\n * 若 path 在缓存中有的都认为允许还原路由\r\n */\r\n public shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n return !!XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n }\r\n\r\n /**\r\n * 从缓存中获取快照,若无则返回nul\r\n */\r\n public retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n if (!route.routeConfig) {\r\n return {};\r\n }\r\n let stroage = XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n return stroage ? stroage.handle : {};\r\n }\r\n\r\n /**\r\n * 进入路由触发,判断是否同一路由\r\n * 解决不同的参数也会认为是同一个路由,导致会将之前的路由拿出来复用\r\n */\r\n public shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return future.routeConfig === curr.routeConfig && JSON.stringify(future.params) == JSON.stringify(curr.params);\r\n }\r\n\r\n /**\r\n * 解决不同的主路由会存在相同名称的子路由\r\n */\r\n private getRouteUrl(route: ActivatedRouteSnapshot) {\r\n let url = route.url.map((x) => x.path).join('_');\r\n return url;\r\n }\r\n\r\n /**\r\n * 删除复用的路由\r\n */\r\n public static deleteRouteSnapshot(name?: string): void {\r\n if (name) {\r\n let id = name.replace(/\\//g, '_');\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id.indexOf(id) === 0),\r\n 1\r\n );\r\n XReuseStrategyService.waitDelete = id;\r\n } else {\r\n XReuseStrategyService.storages = [];\r\n }\r\n }\r\n\r\n private add(id: string, handle: DetachedRouteHandle) {\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id == id),\r\n 1\r\n );\r\n XReuseStrategyService.storages = [...XReuseStrategyService.storages, { id: id, handle: handle }];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PreloadingStrategy, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable()\r\nexport class XPreloadingStrategyService implements PreloadingStrategy {\r\n // 需要预加载的模块\r\n preloadedModules: string[] = [];\r\n\r\n preload(route: Route, load: () => Observable<any>): Observable<any> {\r\n if (route.data && route.data['preload']) {\r\n this.preloadedModules.push(route.path as string);\r\n return load();\r\n } else {\r\n return of(null);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XHttpService {\r\n api: string = '';\r\n constructor(public http: HttpClient) {}\r\n\r\n /**\r\n * get请求\r\n */\r\n get(url: string, params?: { [property: string]: any }) {\r\n return this.request('GET', url, params);\r\n }\r\n\r\n /**\r\n * get请求\r\n */\r\n post(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('POST', url, params);\r\n }\r\n\r\n /**\r\n * put请求\r\n */\r\n put(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('PUT', url, params);\r\n }\r\n\r\n /**\r\n * delete请求\r\n */\r\n delete(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('DELETE', url, params);\r\n }\r\n\r\n /**\r\n * request通用请求\r\n */\r\n request(method: string, url: string, params?: { [property: string]: any }, option?: { [property: string]: any }): Observable<any> {\r\n if (!option) option = {};\r\n let opt = {};\r\n url = `${this.api}${url}`;\r\n method = method.toUpperCase();\r\n if (['POST', 'PUT', 'DELETE'].indexOf(method) > -1) {\r\n opt = { body: params, observe: 'body', responseType: 'json' };\r\n } else if (['GET'].indexOf(method) > -1) {\r\n opt = { params: params };\r\n }\r\n Object.assign(opt, option);\r\n this.addHeader(opt);\r\n return new Observable((x) => {\r\n this.http.request(method, url, opt).subscribe(\r\n (y: any) => {\r\n x.next(y);\r\n x.complete();\r\n },\r\n (y) => {\r\n x.error(y);\r\n x.complete();\r\n this.handleError(y);\r\n }\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * 错误处理\r\n */\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error) {\r\n }\r\n return throwError(error.error);\r\n }\r\n\r\n /**\r\n * 添加头部信息\r\n */\r\n private addHeader(_option: { [property: string]: any }) {\r\n // let auth = this.setting.getSession(\"Auth\");\r\n // if (auth && auth[\"token\"]) {\r\n // option[\"headers\"] = { Authorization: `Bearer ${auth[\"token\"]}` };\r\n // }\r\n }\r\n}\r\n","import { Platform } from '@angular/cdk/platform';\r\nimport { Injectable } from '@angular/core';\r\nimport { XIsString } from '../interfaces';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XStorageService {\r\n constructor(private platform: Platform) {}\r\n\r\n /**\r\n * 获取本地值\r\n */\r\n getLocal(key: string) {\r\n if (this.platform.isBrowser) {\r\n let str = localStorage.getItem(key);\r\n try {\r\n return JSON.parse(localStorage.getItem(key) || 'null') || null;\r\n } catch (_e) {\r\n return str;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * 设置本地值\r\n */\r\n setLocal(key: string, value: any) {\r\n if (this.platform.isBrowser) {\r\n if (XIsString(value)) {\r\n localStorage.setItem(key, value);\r\n } else {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 获取当前会话的值\r\n */\r\n getSession(key: string) {\r\n if (this.platform.isBrowser) {\r\n let str = localStorage.getItem(key);\r\n try {\r\n return JSON.parse(sessionStorage.getItem(key) || 'null') || null;\r\n } catch (_e) {\r\n return str;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * 设置当前会话值\r\n */\r\n setSession(key: string, value: any) {\r\n if (this.platform.isBrowser) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n }\r\n\r\n /**\r\n * 移除本地值\r\n */\r\n removeLocal(key: string) {\r\n if (this.platform.isBrowser) {\r\n localStorage.removeItem(key);\r\n }\r\n }\r\n\r\n /**\r\n * 移除当前会话\r\n */\r\n removeSession(key: string) {\r\n if (this.platform.isBrowser) {\r\n sessionStorage.removeItem(key);\r\n }\r\n }\r\n\r\n /**\r\n * 生成guid\r\n */\r\n guid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n }\r\n}\r\n","import { XId, XQuery, XResultList } from '../interfaces';\r\nimport { XHttpService } from './http.service';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface XRepositoryInput {\r\n api?: string;\r\n controller: XController;\r\n}\r\n\r\nexport interface XController {\r\n name: string;\r\n}\r\n\r\nexport abstract class XRepositoryAbstract {\r\n abstract getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<any>>;\r\n abstract get(id: number | string): Observable<any>;\r\n abstract post(entity: any): Observable<any>;\r\n abstract put(entity: any): Observable<any>;\r\n abstract delete(id: number | string): Observable<boolean>;\r\n}\r\n\r\nexport class XRepositoryService<Entity extends XId> extends XRepositoryAbstract {\r\n api = '';\r\n constructor(public http: XHttpService, public input: XRepositoryInput) {\r\n super();\r\n this.api = typeof input.api !== 'undefined' ? input.api : '';\r\n }\r\n\r\n getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<Entity>> {\r\n index = index ? index : 1;\r\n size = size ? size : 10;\r\n return this.http.post(`${this.api}${this.input.controller.name}/${size}/${index}`, query);\r\n }\r\n\r\n get(id: number | string): Observable<Entity> {\r\n return this.http.get(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n\r\n post(entity: Entity): Observable<Entity> {\r\n return this.http.post(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n put(entity: Entity): Observable<Entity> {\r\n return this.http.put(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n delete(id: number | string): Observable<boolean> {\r\n return this.http.delete(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n}\r\n","import {\r\n XSize,\r\n XBoolean,\r\n XType,\r\n XEffect,\r\n XNumber,\r\n XPositionLeftRight,\r\n XJustify,\r\n XShape,\r\n XFit,\r\n XShadow,\r\n XTrigger,\r\n XDisplayDirection,\r\n XCorner,\r\n XDirection,\r\n XPlace,\r\n XPosition,\r\n XPlacement,\r\n XPositionTopBottom,\r\n XStatus,\r\n XAlign,\r\n XTemplate\r\n} from '../interfaces';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { XTheme } from '../theme';\r\n\r\nexport interface XConfig {\r\n components?: XComponentConfig;\r\n theme?: XTheme;\r\n}\r\n\r\nexport type XConfigKey = keyof XConfig;\r\n\r\nexport type XComponentConfigKey = keyof XComponentConfig;\r\n\r\nexport const X_CONFIG = new InjectionToken<XConfig>('x-config');\r\n\r\nexport interface XComponentConfig {\r\n affix?: XAffixConfig;\r\n alert?: XAlertConfig;\r\n anchor?: XAnchorConfig;\r\n avatar?: XAvatarConfig;\r\n autoComplete?: XAutoCompleteConfig;\r\n backTop?: XBackTopConfig;\r\n badge?: XBadgeConfgig;\r\n button?: XButtonConfig;\r\n buttons?: XButtonsConfig;\r\n calendar?: XCalendarConfig;\r\n card?: XCardConfig;\r\n carousel?: XCarouselConfig;\r\n cascade?: XCascadeConfig;\r\n checkbox?: XCheckboxConfig;\r\n collapse?: XCollapseConfig;\r\n color?: XColorConfig;\r\n colorPicker?: XColorPickerConfig;\r\n comment?: XCommentConfig;\r\n container?: XContainerConfig;\r\n header?: XHeaderConfig;\r\n aside?: XAsideConfig;\r\n footer?: XFooterConfig;\r\n crumb?: XCrumbComfig;\r\n datePicker?: XDatePickerConfig;\r\n dateRange?: XDateRangeConfig;\r\n dialog?: XDialogConfig;\r\n drawer?: XDrawerConfig;\r\n dropdown?: XDropdownConfig;\r\n description?: XDescriptionConfig;\r\n empty?: XEmptyConfig;\r\n find?: XFindConfig;\r\n form?: XFormConfig;\r\n highlight?: XHighlightConfig;\r\n icon?: XIconConfig;\r\n inner?: XInnerConfig;\r\n input?: XInputConfig;\r\n inputGroup?: XInputGroupConfig;\r\n inputNumber?: XInputNumberConfig;\r\n image?: XImageConfig;\r\n col?: XColConfig;\r\n row?: XRowConfig;\r\n ripple?: XRippleConfig;\r\n link?: XLinkConfig;\r\n list?: XListConfig;\r\n listOption?: XListOptionConfig;\r\n loading?: XLoadingConfig;\r\n menu?: XMenuConfig;\r\n message?: XMessageConfig;\r\n messageBox?: XMessageBoxConfig;\r\n notification?: XNotificationConfig;\r\n outlet?: XOutletConfig;\r\n pageHeader?: XPageHeaderConfig;\r\n pagination?: XPaginationConfig;\r\n pattern?: XPatternConfig;\r\n popconfirm?: XPopconfirmConfig;\r\n popover?: XPopoverConfig;\r\n portal?: XPortalConfig;\r\n progress?: XProgressConfing;\r\n radio?: XRadioConfig;\r\n rate?: XRateConfig;\r\n result?: XResultConfig;\r\n select?: XSelectConfig;\r\n skeleton?: XSkeletonConfig;\r\n slider?: XSliderConfig;\r\n sliderSelect?: XSliderSelectConfig;\r\n statistic?: XStatisticConfig;\r\n countdown?: XCountdownConfig;\r\n steps?: XStepsConfig;\r\n switch?: XSwitchConfig;\r\n table?: XTableConfig;\r\n tabs?: XTabsConfig;\r\n tag?: XTagConfig;\r\n textRetract?: XTextRetractConfig;\r\n theme?: XThemeConfig;\r\n timeAgo?: XTimeAgoConfig;\r\n timePicker?: XTimePickerConfig;\r\n timeRange?: XTimeRangeConfig;\r\n timeline?: XTimelineConfig;\r\n tooltip?: XTooltipConfig;\r\n transfer?: XTransferConfig;\r\n tree?: XTreeConfig;\r\n treeFile?: XTreeFileConfig;\r\n treeSelect?: XTreeSelectConfig;\r\n textarea?: XTextareaConfig;\r\n upload?: XUploadConfig;\r\n keyword?: XKeywordConfig;\r\n}\r\n\r\nexport interface XAffixConfig {\r\n top?: string;\r\n left?: string;\r\n}\r\n\r\nexport interface XAlertConfig {\r\n effect?: XEffect;\r\n hideClose?: XBoolean;\r\n showIcon?: XBoolean;\r\n disabledAnimation?: XBoolean;\r\n draggable?: XBoolean;\r\n resizable?: XBoolean;\r\n dragHandleTitle?: XBoolean;\r\n duration?: XNumber;\r\n}\r\n\r\nexport interface XAnchorConfig {\r\n affixTop?: string;\r\n affixWidth?: string;\r\n layout?: XPositionLeftRight;\r\n justify?: XJustify;\r\n}\r\n\r\nexport interface XAvatarConfig {\r\n size?: XSize;\r\n shape?: XShape;\r\n fit?: XFit;\r\n gap?: number;\r\n backgroundColor?: string;\r\n}\r\n\r\nexport interface XAutoCompleteConfig {\r\n placement?: XPositionTopBottom;\r\n debounceTime?: number;\r\n size?: XSize;\r\n bordered?: boolean;\r\n caseSensitive?: boolean;\r\n onlySelect?: boolean;\r\n}\r\n\r\nexport interface XBackTopConfig {\r\n right?: string;\r\n bottom?: string;\r\n visibilityHeight?: XNumber;\r\n}\r\n\r\nexport interface XBadgeConfgig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XButtonConfig {\r\n size?: XSize;\r\n type?: XType;\r\n plain?: XBoolean;\r\n round?: XBoolean;\r\n circle?: XBoolean;\r\n attrType?: 'submit' | 'button' | 'reset';\r\n}\r\n\r\nexport interface XButtonsConfig {\r\n space?: XNumber;\r\n hiddenBorder?: XBoolean;\r\n}\r\n\r\nexport interface XCalendarConfig {}\r\n\r\nexport interface XCardConfig {\r\n shadow?: XShadow;\r\n}\r\n\r\nexport interface XCarouselConfig {\r\n height?: string;\r\n trigger?: XTrigger;\r\n arrow?: XShadow;\r\n direction?: XDisplayDirection;\r\n}\r\n\r\nexport interface XCascadeConfig {\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: boolean;\r\n nodeTrigger?: XTrigger;\r\n nodeHoverDelay?: XNumber;\r\n}\r\n\r\nexport interface XCheckboxConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XCollapseConfig {\r\n showIcon?: Boolean;\r\n ghost?: Boolean;\r\n iconPosition?: 'left' | 'right';\r\n bordered?: Boolean;\r\n}\r\n\r\nexport interface XColorConfig {\r\n merge?: string;\r\n amounts?: string;\r\n}\r\n\r\nexport interface XColorPickerConfig {\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XCommentConfig {\r\n contentMax?: number;\r\n}\r\n\r\nexport interface XContainerConfig {\r\n direction?: XDirection;\r\n}\r\n\r\nexport interface XHeaderConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XAsideConfig {\r\n width?: number;\r\n}\r\n\r\nexport interface XFooterConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XCrumbComfig {\r\n separator?: string;\r\n}\r\n\r\nexport interface XDatePickerConfig {\r\n format?: string;\r\n clearable?: XBoolean;\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: boolean;\r\n}\r\n\r\nexport interface XDateRangeConfig {\r\n format?: string;\r\n clearable?: XBoolean;\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XDialogConfig {\r\n placement?: XPlace;\r\n offset?: string;\r\n width?: string;\r\n minWidth?: string;\r\n minHeight?: string;\r\n effect?: XEffect;\r\n showCancel?: XBoolean;\r\n cancelText?: string;\r\n showConfirm?: XBoolean;\r\n confirmText?: string;\r\n backdropClose?: XBoolean;\r\n draggable?: XBoolean;\r\n resizable?: XBoolean;\r\n maximize?: XBoolean;\r\n hasBackdrop?: XBoolean;\r\n className?: string;\r\n buttonsCenter?: XBoolean;\r\n}\r\n\r\nexport interface XDrawerConfig {\r\n placement?: XPosition;\r\n size?: string;\r\n backdropClose?: XBoolean;\r\n hasBackdrop?: XBoolean;\r\n className?: string;\r\n}\r\n\r\nexport interface XDropdownConfig {\r\n trigger?: XTrigger;\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XDescriptionConfig {\r\n bordered?: XBoolean;\r\n size?: XSize;\r\n}\r\n\r\nexport interface XEmptyConfig {\r\n img?: XTemplate;\r\n content?: XTemplate;\r\n}\r\n\r\nexport interface XFindConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n columnLabel?: string;\r\n dialogTitle?: string;\r\n dialogCheckboxLabel?: string;\r\n dialogCheckboxWidth?: number;\r\n dialogEmptyContent?: string;\r\n dialogButtonsCenter?: XBoolean;\r\n tableIndex?: number;\r\n tableSize?: number;\r\n tableLoading?: XBoolean;\r\n tableVirtualScroll?: boolean;\r\n tableRowHeight?: XNumber;\r\n treeExpandedLevel?: XNumber;\r\n}\r\n\r\nexport interface XFormConfig {\r\n space?: XNumber;\r\n labelSuffix?: string;\r\n width?: string;\r\n}\r\n\r\nexport interface XHighlightConfig {}\r\n\r\nexport interface XIconConfig {\r\n href?: string;\r\n}\r\n\r\nexport interface XInnerConfig {\r\n padding?: string;\r\n}\r\n\r\nexport interface XInputConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n inputPadding?: XNumber;\r\n inputIconPadding?: XNumber;\r\n}\r\n\r\nexport interface XInputGroupConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n compact?: XBoolean;\r\n}\r\n\r\nexport interface XInputNumberConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XImageConfig {\r\n previewText?: string;\r\n}\r\n\r\nexport interface XColConfig {}\r\n\r\nexport interface XRowConfig {}\r\n\r\nexport interface XRippleConfig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XLinkConfig {\r\n underline?: XBoolean;\r\n iconRight?: XBoolean;\r\n preventDefault?: XBoolean;\r\n}\r\n\r\nexport interface XListConfig {\r\n selectAllText?: string;\r\n loadMoreText?: string;\r\n loadingMoreText?: string;\r\n caseSensitive?: boolean;\r\n}\r\n\r\nexport interface XListOptionConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XLoadingConfig {\r\n size?: XSize;\r\n text?: string;\r\n icon?: string;\r\n color?: string;\r\n background?: string;\r\n zIndex?: number;\r\n}\r\n\r\nexport interface XMenuConfig {\r\n size?: XSize;\r\n width?: string;\r\n trigger?: XTrigger;\r\n}\r\n\r\nexport interface XMessageConfig {\r\n type?: XStatus;\r\n width?: string;\r\n placement?: XPlace;\r\n displayType?: string;\r\n offset?: string | string[];\r\n duration?: number;\r\n hideClose?: boolean;\r\n showIcon?: boolean;\r\n}\r\n\r\nexport interface XMessageBoxConfig {}\r\n\r\nexport interface XNotificationConfig {}\r\n\r\nexport interface XOutletConfig {}\r\n\r\nexport interface XPageHeaderConfig {\r\n backIcon?: string;\r\n backText?: string;\r\n}\r\n\r\nexport interface XPaginationConfig {\r\n index?: XNumber;\r\n size?: XNumber;\r\n space?: XNumber;\r\n pageLinkSize?: XNumber;\r\n hiddenBorder?: boolean;\r\n showEllipsis?: boolean;\r\n showTotal?: boolean;\r\n showSize?: boolean;\r\n sizeWidth?: number;\r\n sizeData?: number[];\r\n showInputSize?: boolean;\r\n inputSizeWidth?: number;\r\n showJump?: boolean;\r\n jumpWidth?: number;\r\n simple?: boolean;\r\n simpleIndexWidth?: number;\r\n}\r\n\r\nexport interface XPatternConfig {}\r\n\r\nexport interface XPopconfirmConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n icon?: string;\r\n iconColor?: string;\r\n cancelText?: string;\r\n confirmText?: string;\r\n}\r\n\r\nexport interface XPopoverConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n}\r\n\r\nexport interface XPortalConfig {}\r\n\r\nexport interface XProgressConfing {\r\n height?: string;\r\n stepWidth?: string;\r\n}\r\n\r\nexport interface XRadioConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XRateConfig {\r\n color?: string | { [color: string]: (rate: number) => boolean };\r\n}\r\n\r\nexport interface XResultConfig {}\r\n\r\nexport interface XSelectConfig {\r\n placement?: XPositionTopBottom;\r\n clearable?: XBoolean;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n portalMaxHeight?: string;\r\n selectAllText?: string;\r\n search?: XBoolean;\r\n caseSensitive?: XBoolean;\r\n debounceTime?: number;\r\n maxTagCount?: number;\r\n virtualScroll?: XBoolean;\r\n}\r\n\r\nexport interface XSkeletonConfig {}\r\n\r\nexport interface XSliderConfig {\r\n animated?: XBoolean;\r\n size?: XSize;\r\n showExpand?: XBoolean;\r\n autoShowArrow?: XBoolean;\r\n trigger?: XTrigger;\r\n}\r\n\r\nexport interface XSliderSelectConfig {}\r\n\r\nexport interface XStatisticConfig {}\r\n\r\nexport interface XCountdownConfig {\r\n format?: string;\r\n}\r\n\r\nexport interface XStepsConfig {}\r\n\r\nexport interface XSwitchConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTableConfig {\r\n index?: number;\r\n size?: number;\r\n loading?: XBoolean;\r\n showHeader?: XBoolean;\r\n virtualScroll?: boolean;\r\n rowHeight?: XNumber;\r\n itemSize?: XNumber;\r\n bordered?: XNumber;\r\n allowSelectRow?: XBoolean;\r\n allowCheckRow?: XBoolean;\r\n rowSize?: XSize;\r\n showPagination?: XBoolean;\r\n treeTable?: XBoolean;\r\n expandedAll?: XBoolean;\r\n expandedLevel?: XNumber;\r\n hiddenPaginationBorder?: XBoolean;\r\n hiddenWrapBorder?: XBoolean;\r\n showEmpty?: XBoolean;\r\n emptyImg?: XTemplate;\r\n emptyContent?: XTemplate;\r\n}\r\n\r\nexport interface XTabsConfig {\r\n size?: XSize;\r\n trigger?: XTrigger;\r\n}\r\n\r\nexport interface XTagConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n closable?: XBoolean;\r\n dark?: XBoolean;\r\n}\r\n\r\nexport interface XTextRetractConfig {\r\n max?: XNumber;\r\n}\r\n\r\nexport interface XThemeConfig {\r\n amounts?: XNumber[];\r\n}\r\n\r\nexport interface XTimeAgoConfig {}\r\n\r\nexport interface XTimePickerConfig {\r\n format?: string;\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n use12Hours?: XBoolean;\r\n defaultNow?: XBoolean;\r\n}\r\n\r\nexport interface XTimeRangeConfig {}\r\n\r\nexport interface XTimelineConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTooltipConfig {\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XTransferConfig {\r\n titles?: string[];\r\n drag?: XBoolean;\r\n virtualScroll?: XBoolean;\r\n}\r\n\r\nexport interface XTreeConfig {\r\n spacing?: XNumber;\r\n nodeHeight?: XNumber;\r\n nodeAlignItems?: XAlign;\r\n virtualScroll?: boolean;\r\n onlyLeaf?: boolean;\r\n showLine?: boolean;\r\n}\r\n\r\nexport interface XTextareaConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n}\r\n\r\nexport interface XTreeFileConfig {\r\n maxHeight?: XNumber;\r\n spacing?: XNumber;\r\n}\r\n\r\nexport interface XTreeSelectConfig {\r\n placement?: XPositionTopBottom;\r\n clearable?: XBoolean;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n portalMaxHeight?: string;\r\n selectAllText?: string;\r\n search?: XBoolean;\r\n caseSensitive?: XBoolean;\r\n debounceTime?: number;\r\n maxTagCount?: number;\r\n virtualScroll?: XBoolean;\r\n showPath?: XBoolean;\r\n separator?: string;\r\n onlyLeaf?: boolean;\r\n}\r\n\r\nexport interface XUploadConfig {\r\n download?: XBoolean;\r\n multipleModel?: 'cover' | 'add';\r\n}\r\n\r\nexport interface XKeywordConfig {\r\n type?: XType;\r\n color?: string;\r\n caseSensitive?: boolean;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface XTheme {\r\n colors?: XColorsTheme;\r\n}\r\n\r\nexport interface XColorsTheme {\r\n primary?: string;\r\n success?: string;\r\n warning?: string;\r\n danger?: string;\r\n info?: string;\r\n text?: string;\r\n border?: string;\r\n background?: string;\r\n [property: string]: any;\r\n}\r\n\r\nexport type XThemeKey = keyof XTheme;\r\n\r\nexport type XColors = 'primary' | 'success' | 'warning' | 'danger' | 'info';\r\n\r\nexport const X_THEME = new InjectionToken<XTheme>('x-theme');\r\n\r\nexport const X_THEME_PREFIX = '--x-';\r\n\r\nexport const X_THEME_MERGE = '#ffffff';\r\n\r\nexport const X_THEME_BLACK_MERGE = '#cccccc';\r\n\r\nexport const X_THEME_AMOUNTS = [0, -0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9];\r\n\r\nexport const X_THEME_BACKGROUNDS = [-0.2, -0.3, -0.4];\r\n\r\nexport const X_THEME_TEXTS = [\r\n [-0.5, 0],\r\n [-0.6, 0.2],\r\n [-0.7, 0.4]\r\n];\r\n\r\nexport const X_THEME_BORDERS = [\r\n [-0.8, 0],\r\n [-0.9, 0.2]\r\n];\r\n\r\nexport const X_THEME_EXCHANGES = [\r\n [-0.1, -0.1],\r\n [0.1, -0.1],\r\n [0.2, 0.2],\r\n [0.3, 0],\r\n [0.4, -0.4],\r\n [0.5, -0.2],\r\n [0.6, 0],\r\n [0.7, -0.4],\r\n [0.8, -0.4],\r\n [0.9, -0.2]\r\n];\r\n\r\nexport const X_THEME_COLORS: XColorsTheme = {\r\n primary: '#1976d2',\r\n success: '#67c23a',\r\n warning: '#e6a23c',\r\n danger: '#f56c6c',\r\n info: '#909399',\r\n text: '#333333',\r\n border: '#dddddd',\r\n background: '#ffffff'\r\n};\r\n\r\nexport const X_THEME_DARK_COLORS: XColorsTheme = {\r\n text: '#dddddd',\r\n border: '#424242',\r\n background: '#1e1e1f'\r\n};\r\n\r\nexport const X_THEME_COLOR_KEYS = Object.keys(X_THEME_COLORS);\r\n","import { Injectable, RendererFactory2, Renderer2, inject } from '@angular/core';\r\nimport {\r\n XTheme,\r\n XColorsTheme,\r\n X_THEME_COLORS,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_PREFIX,\r\n X_THEME_AMOUNTS,\r\n X_THEME_MERGE,\r\n X_THEME_BLACK_MERGE,\r\n X_THEME_EXCHANGES,\r\n X_THEME_BACKGROUNDS,\r\n X_THEME_TEXTS,\r\n X_THEME_BORDERS\r\n} from './theme';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { XComputed } from '../util';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XThemeService {\r\n private colorsProp: XColorsTheme = {};\r\n private colorsStyleEle!: HTMLStyleElement;\r\n private renderer2: Renderer2;\r\n private declaration: CSSStyleDeclaration;\r\n private doc: Document = inject(DOCUMENT);\r\n\r\n constructor(private factory: RendererFactory2) {\r\n this.renderer2 = this.factory.createRenderer(null, null);\r\n this.declaration = XComputed(this.doc.documentElement);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n if (theme?.colors) Object.assign(X_THEME_COLORS, theme.colors);\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return {\r\n colors: this.getColors(includesAll)\r\n };\r\n }\r\n\r\n setColors(colors?: XColorsTheme) {\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(this.colorsProp, this.setRoot(key, colors[key]));\r\n }\r\n this.createColorsStyle();\r\n }\r\n\r\n getColors(includes = false, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n const keys = includes ? Object.keys(this.colorsProp) : X_THEME_COLOR_KEYS.map((x) => `${prefix}${x}`);\r\n keys.forEach((x) => {\r\n result[x.replace(prefix, '')] = this.declaration.getPropertyValue(`${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsInProperty(colors?: XColorsTheme, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n Object.keys(colors as XColorsTheme).forEach((x) => {\r\n result[x] = this.declaration.getPropertyValue(`${prefix}${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsTheme(colors?: XColorsTheme) {\r\n if (typeof colors === 'undefined') colors = X_THEME_COLORS;\r\n else colors = Object.assign({}, X_THEME_COLORS, colors);\r\n return colors;\r\n }\r\n\r\n setRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n if (X_THEME_COLOR_KEYS.includes(color)) {\r\n for (let amount of X_THEME_AMOUNTS) {\r\n if (amount === 0) {\r\n result[`${prefix}${color}`] = value;\r\n } else {\r\n result[`${prefix}${color}${this.getSuffix(amount)}`] = toHex(\r\n mixColors(amount > 0 ? X_THEME_MERGE : X_THEME_BLACK_MERGE, value, Math.abs(amount))\r\n );\r\n }\r\n }\r\n } else {\r\n result[`${prefix}${color}`] = value;\r\n }\r\n return result;\r\n }\r\n\r\n setDarkRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n const allColors = this.setRoot(color, value, '');\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n const allColors = this.setRoot(color, value, prefix);\r\n X_THEME_EXCHANGES.forEach((x) => {\r\n if (x[1] >= -0.1) {\r\n const curr = this.getSuffix(x[0]);\r\n const next = this.getSuffix(x[1]);\r\n result[`${prefix}${color}${curr}`] = allColors[`${prefix}${color}${next}`];\r\n }\r\n });\r\n } else if (['background'].includes(color)) {\r\n result = this.getDefineColors(Object.assign({}, this.getColorsInProperty(X_THEME_COLORS), allColors), '', true);\r\n }\r\n return result;\r\n }\r\n\r\n getDefineColors(colors?: XColorsTheme, prefix = X_THEME_PREFIX, darken = false): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(result, this.setRoot(key, colors[key], prefix));\r\n }\r\n if (darken) {\r\n const colorsFunc = (nums: number[] | number[][], callback: Function) => {\r\n for (let num of nums) {\r\n for (let color in colors) {\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n callback(num, color);\r\n }\r\n }\r\n }\r\n };\r\n colorsFunc(X_THEME_BACKGROUNDS, (background: number, color: string) => {\r\n const theme = this.getSuffix(background);\r\n result[`${prefix}${color}${theme}`] = result[`${prefix}background${theme.replace('a', '')}`];\r\n });\r\n colorsFunc(X_THEME_TEXTS, (text: number[], color: string) => {\r\n const curr = this.getSuffix(text[0]);\r\n const next = this.getSuffix(text[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}text${next}`];\r\n });\r\n colorsFunc(X_THEME_BORDERS, (border: number[], color: string) => {\r\n const curr = this.getSuffix(border[0]);\r\n const next = this.getSuffix(border[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}border${next}`];\r\n });\r\n colorsFunc(X_THEME_EXCHANGES, (exchange: number[], color: string) => {\r\n const curr = this.getSuffix(exchange[0]);\r\n const next = this.getSuffix(exchange[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}${color}${next}`];\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n getSuffix(num: number): string {\r\n if (num > 0) {\r\n return `-${Math.abs(num * 1000)}`;\r\n } else if (num < 0) {\r\n return `-a${Math.abs(num * 1000)}`;\r\n }\r\n return '';\r\n }\r\n\r\n createColorsStyle() {\r\n if (this.colorsStyleEle) this.renderer2.removeChild(this.colorsStyleEle.parentNode, this.colorsStyleEle);\r\n const styles = Object.entries(this.colorsProp)\r\n .map((x) => `${x[0]}: ${x[1]};`)\r\n .join('');\r\n this.colorsStyleEle = this.renderer2.createElement('style');\r\n this.colorsStyleEle.innerHTML = `.x-theme-colors{${styles}}`;\r\n this.renderer2.addClass(this.doc.documentElement, 'x-theme-colors');\r\n this.doc.documentElement.getElementsByTagName('head')[0].appendChild(this.colorsStyleEle);\r\n }\r\n}\r\n\r\nexport function mixColors(color1: string, color2: string, weight: number) {\r\n let rgb1 = toRgb(color1);\r\n let rgb2 = toRgb(color2);\r\n let weight1 = weight;\r\n let weight2 = 1 - weight;\r\n let result: { r: number; g: number; b: number };\r\n\r\n const inRange = (num: number) => {\r\n return num > 255 ? 255 : num < 0 ? 0 : num;\r\n };\r\n\r\n result = {\r\n r: inRange(Math.round(rgb1.r * weight1 + rgb2.r * weight2)),\r\n g: inRange(Math.round(rgb1.g * weight1 + rgb2.g * weight2)),\r\n b: inRange(Math.round(rgb1.b * weight1 + rgb2.b * weight2))\r\n };\r\n\r\n return result;\r\n}\r\n\r\nexport function toHex(rgb: { r: number; g: number; b: number }) {\r\n return '#' + ((1 << 24) + (rgb.r << 16) + (rgb.g << 8) + rgb.b).toString(16).slice(1);\r\n}\r\n\r\nexport function toRgb(hex: string) {\r\n if (hex.indexOf('#') == 0) hex = hex.slice(1);\r\n let num = parseInt(hex, 16);\r\n let r = num >> 16;\r\n if (r > 255) r = 255;\r\n else if (r < 0) r = 0;\r\n let g = (num >> 8) & 0x00ff;\r\n if (g > 255) g = 255;\r\n else if (g < 0) g = 0;\r\n let b = num & 0x0000ff;\r\n if (b > 255) b = 255;\r\n else if (b < 0) b = 0;\r\n\r\n return { r: r, g: g, b: b };\r\n}\r\n","// tslint:disable no-any\r\n\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { XConfig, X_CONFIG, XComponentConfigKey, XComponentConfig } from './config';\r\nimport { XThemeService, XTheme, X_THEME_COLORS, X_THEME_DARK_COLORS } from '../theme';\r\nimport { filter, mapTo } from 'rxjs/operators';\r\n\r\nconst isDefined = function (value?: any): boolean {\r\n return value !== undefined;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XConfigService {\r\n private componentConfigUpdated$ = new Subject<keyof XComponentConfig>();\r\n private config: XConfig;\r\n private defaultConfig = inject(X_CONFIG, { optional: true })!;\r\n public themeService = inject(XThemeService, { optional: true })!;\r\n\r\n constructor() {\r\n this.config = this.defaultConfig || {};\r\n this.setInitialTheme(this.config.theme);\r\n }\r\n\r\n getConfigForComponent<T extends XComponentConfigKey>(componentName: T): XComponentConfig[T] {\r\n return this.config?.components ? this.config.components[componentName] : undefined;\r\n }\r\n\r\n getConfigChangeEventForComponent(componentName: XComponentConfigKey): Observable<void> {\r\n return this.componentConfigUpdated$.pipe(\r\n filter((n) => n === componentName),\r\n mapTo(undefined)\r\n );\r\n }\r\n\r\n set<T extends XComponentConfigKey>(componentName: T, value: XComponentConfig[T]): void {\r\n if (this.config?.components) {\r\n this.config.components[componentName] = { ...this.config.components[componentName], ...value };\r\n this.componentConfigUpdated$.next(componentName);\r\n }\r\n }\r\n\r\n setDarkTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_DARK_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', true)\r\n });\r\n }\r\n\r\n setLightTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', false)\r\n });\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.themeService.setTheme(theme);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.themeService.setInitialTheme(theme);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return this.themeService.getTheme(includesAll);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:typedef\r\nexport function XWithConfig<T>(componentName: XComponentConfigKey, innerDefaultValue?: T) {\r\n return function ConfigDecorator(target: any, propName: any, originalDescriptor?: TypedPropertyDescriptor<T>): any {\r\n const privatePropName = `$$__assignedValue__${propName}`;\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false\r\n });\r\n\r\n return {\r\n get(): T | undefined {\r\n const originalValue = originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n\r\n if (isDefined(originalValue)) {\r\n return originalValue;\r\n }\r\n\r\n const componentConfig = this.configService?.getConfigForComponent(componentName) || {};\r\n const configValue = componentConfig[propName];\r\n\r\n return isDefined(configValue) ? configValue : innerDefaultValue;\r\n },\r\n set(value: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(value);\r\n } else {\r\n this[privatePropName] = value;\r\n }\r\n },\r\n configurable: true,\r\n enumerable: true\r\n };\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["XDURATION_BASE_EASE_IN","XDURATION_BASE_EASE_OUT","i1"],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-core.mjs","sources":["../../../../lib/ng-nest/ui/core/util/option.ts","../../../../lib/ng-nest/ui/core/util/host.ts","../../../../lib/ng-nest/ui/core/util/log.ts","../../../../lib/ng-nest/ui/core/util/computed-style.ts","../../../../lib/ng-nest/ui/core/util/animation.ts","../../../../lib/ng-nest/ui/core/util/html.ts","../../../../lib/ng-nest/ui/core/util/check.ts","../../../../lib/ng-nest/ui/core/animation/consts.ts","../../../../lib/ng-nest/ui/core/animation/fade.ts","../../../../lib/ng-nest/ui/core/animation/slide.ts","../../../../lib/ng-nest/ui/core/animation/drop.ts","../../../../lib/ng-nest/ui/core/animation/move.ts","../../../../lib/ng-nest/ui/core/animation/connect.ts","../../../../lib/ng-nest/ui/core/animation/badge.ts","../../../../lib/ng-nest/ui/core/animation/opacity.ts","../../../../lib/ng-nest/ui/core/interfaces/data.type.ts","../../../../lib/ng-nest/ui/core/interfaces/identify.type.ts","../../../../lib/ng-nest/ui/core/functions/convert.ts","../../../../lib/ng-nest/ui/core/functions/date.ts","../../../../lib/ng-nest/ui/core/functions/flex.ts","../../../../lib/ng-nest/ui/core/functions/drop.ts","../../../../lib/ng-nest/ui/core/functions/remove.ts","../../../../lib/ng-nest/ui/core/functions/order-by.ts","../../../../lib/ng-nest/ui/core/functions/clone-deep.ts","../../../../lib/ng-nest/ui/core/functions/has-in.ts","../../../../lib/ng-nest/ui/core/functions/chunk.ts","../../../../lib/ng-nest/ui/core/functions/guid.ts","../../../../lib/ng-nest/ui/core/functions/group-by.ts","../../../../lib/ng-nest/ui/core/functions/resize.ts","../../../../lib/ng-nest/ui/core/functions/parent-path.ts","../../../../lib/ng-nest/ui/core/functions/property.ts","../../../../lib/ng-nest/ui/core/services/reuse-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/preloading-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/http.service.ts","../../../../lib/ng-nest/ui/core/services/storage.service.ts","../../../../lib/ng-nest/ui/core/services/repository.service.ts","../../../../lib/ng-nest/ui/core/config/config.ts","../../../../lib/ng-nest/ui/core/theme/theme.ts","../../../../lib/ng-nest/ui/core/theme/theme.service.ts","../../../../lib/ng-nest/ui/core/config/config.service.ts","../../../../lib/ng-nest/ui/core/ng-nest-ui-core.ts"],"sourcesContent":["/**\r\n * Fill default values\r\n * @param option option\r\n * @param def default\r\n */\r\nexport function fillDefault(option: { [property: string]: any }, def: { [property: string]: any }) {\r\n if (option && def) {\r\n for (const key in def) {\r\n if (typeof option[key] === 'undefined') {\r\n option[key] = def[key];\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * 删除当前标签,保留内容\r\n */\r\nexport function removeNgTag(nativeElement: HTMLElement): void {\r\n const parentElement = nativeElement.parentElement;\r\n if (!parentElement || !parentElement.insertBefore) return;\r\n while (nativeElement.firstChild) {\r\n parentElement.insertBefore(nativeElement.firstChild, nativeElement);\r\n }\r\n parentElement.removeChild(nativeElement);\r\n}\r\n","export function warnSVGTagNotFound() {\r\n console.warn(`<svg> tag not found.`);\r\n}\r\nexport function warnIconTypeNotFound() {\r\n console.warn(`icon type not found.`);\r\n}\r\n","export function XComputedStyle(element: HTMLElement, style: string) {\r\n let computed = XComputed(element);\r\n let value = computed[style as any];\r\n return value.replace(/px/g, '');\r\n}\r\n\r\nexport function XComputed(element: HTMLElement) {\r\n if (typeof getComputedStyle === 'function') {\r\n return getComputedStyle(element);\r\n }\r\n return element.style;\r\n}\r\n","// tslint:disable:no-any typedef no-invalid-this\r\nconst availablePrefixes = ['moz', 'ms', 'webkit'];\r\n\r\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\r\n let lastTime = 0;\r\n return function (callback: FrameRequestCallback): any {\r\n const currTime = new Date().getTime();\r\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n const id = setTimeout(() => {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n}\r\n\r\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\r\n if (typeof window === 'undefined') {\r\n return () => 0;\r\n }\r\n if (window.requestAnimationFrame) {\r\n return window.requestAnimationFrame.bind(window);\r\n }\r\n\r\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\r\n\r\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\r\n}\r\n// export function cancelRequestAnimationFrame(id: number): any {\r\n// if (typeof window === \"undefined\") {\r\n// return null;\r\n// }\r\n// if (window.cancelAnimationFrame) {\r\n// return window.cancelAnimationFrame(id);\r\n// }\r\n// const prefix = availablePrefixes.filter(\r\n// key =>\r\n// `${key}CancelAnimationFrame` in window ||\r\n// `${key}CancelRequestAnimationFrame` in window\r\n// )[0];\r\n\r\n// return prefix\r\n// ? (\r\n// (window as any)[`${prefix}CancelAnimationFrame`] ||\r\n// (window as any)[`${prefix}CancelRequestAnimationFrame`]\r\n// )\r\n// // @ts-ignore\r\n// .call(this, id)\r\n// : clearTimeout(id);\r\n// }\r\n\r\nexport const reqAnimFrame = getRequestAnimationFrame();\r\n","/**\r\n * 去除HTML标签\r\n */\r\n export function stripTags(text: string, ...usefulTags: any[]): string {\r\n if (!text || typeof (text) !== 'string')\r\n return text;\r\n return usefulTags.length > 0\r\n ? text.replace(new RegExp(`<(?!\\/?(${usefulTags.join('|')})\\s*\\/?)[^>]+>`, 'g'), '')\r\n : text.replace(/<(?:.|\\s)*?>/g, '');\r\n}\r\n","export function isNotNil<T>(value: T): value is NonNullable<T> {\r\n return typeof value !== 'undefined' && value !== null;\r\n}\r\n\r\nexport function isNil(value: unknown): value is null | undefined {\r\n return typeof value === 'undefined' || value === null;\r\n}\r\n","export enum XDuration {\r\n Slow = '0.3s',\r\n Base = '0.2s',\r\n Fast = '0.1s'\r\n}\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XFadeAnimation: AnimationTriggerMetadata = trigger('x-fade-animation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(0.8)' }),\r\n animate(`${XDURATION_BASE_EASE_IN}`, style({ opacity: 1, transform: 'scale(1)' }))\r\n ]),\r\n transition(':leave', [animate(`${XDURATION_BASE_EASE_OUT}`, style({ opacity: 0 }))])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XSlideAnimation: AnimationTriggerMetadata = trigger('x-slide-animation', [\r\n transition('void => right', [style({ transform: 'translate(100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('right => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(100%,0)' }))]),\r\n transition('void => left', [style({ transform: 'translate(-100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('left => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(-100%,0)' }))]),\r\n transition('void => top', [style({ transform: 'translate(0,-100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('top => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,-100%)' }))]),\r\n transition('void => bottom', [style({ transform: 'translate(0,100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('bottom => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,100%)' }))])\r\n]);\r\n\r\nexport const XSliderAnimation: AnimationTriggerMetadata = trigger('x-slider-animation', [\r\n transition('void => left, void => right', [\r\n style({\r\n width: 0,\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: '*',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void, right => void', [\r\n style({\r\n width: '*',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: 0,\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XDropAnimation: AnimationTriggerMetadata = trigger('x-drop-animation', [\r\n state('*', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('false', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('true', style({ opacity: 1, height: '*', border: '*', padding: '*', visibility: 'inherit' })),\r\n transition('* => *', animate(`${XDuration.Base} ease-out`))\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\nexport const XMoveAnimation: AnimationTriggerMetadata = trigger('x-move-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-200%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-200%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(200%)',\r\n opacity: 0,\r\n height: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(200%)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XMoveBoxAnimation: AnimationTriggerMetadata = trigger('x-move-box-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\n// const XDURATION_SLOW_EASE_IN = `${XDuration.Slow} ease-in`;\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Base} ease-in`;\r\nconst XDURATION_FAST_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\n// const XDURATION_SLOW_EASE_OUT = `${XDuration.Slow} ease-out`;\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Base} ease-out`;\r\nconst XDURATION_FAST_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XConnectAnimation: AnimationTriggerMetadata = trigger('x-connect-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_FAST_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_FAST_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n }),\r\n animate(\r\n XDURATION_FAST_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n }),\r\n animate(\r\n XDURATION_FAST_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XConnectBaseAnimation: AnimationTriggerMetadata = trigger('x-connect-base-animation', [\r\n transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate(XDURATION_FAST_EASE_IN)]),\r\n transition(':leave', [animate(XDURATION_FAST_EASE_OUT, style({ opacity: 0 }))])\r\n]);\r\n\r\nexport const XBaseAnimation: AnimationTriggerMetadata = trigger('x-base-animation', [\r\n transition(':enter', [style({ opacity: 0, transform: 'scale(0.2)' }), animate(XDURATION_BASE_EASE_IN)]),\r\n transition(':leave', [animate(XDURATION_BASE_EASE_OUT, style({ opacity: 0, transform: 'scale(0.2)' }))])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_SLOW_EASE_IN = `${XDuration.Slow} ease-in`;\r\n// 移除动画\r\nconst XDURATION_SLOW_EASE_OUT = `${XDuration.Slow} ease-out`;\r\n\r\nexport const XBadgeAnimation: AnimationTriggerMetadata = trigger('x-badge-animation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(0) translate(50%, -50%)' }),\r\n animate(\r\n XDURATION_SLOW_EASE_IN,\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1) translate(50%, -50%)'\r\n })\r\n )\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: 1, transform: 'scale(1) translate(50%, -50%)' }),\r\n animate(\r\n XDURATION_SLOW_EASE_OUT,\r\n style({\r\n opacity: 0,\r\n transform: 'scale(0) translate(50%, -50%)'\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XBadgeStandaloneAnimation: AnimationTriggerMetadata = trigger('x-badge-standalone-animation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(0)' }),\r\n animate(\r\n XDURATION_SLOW_EASE_IN,\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1)'\r\n })\r\n )\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: 1, transform: 'scale(1)' }),\r\n animate(\r\n XDURATION_SLOW_EASE_OUT,\r\n style({\r\n opacity: 0,\r\n transform: 'scale(0)'\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XOpacityAnimation: AnimationTriggerMetadata = trigger('x-opacity-animation', [\r\n state('*', style({ opacity: 0 })),\r\n state('false', style({ opacity: 0 })),\r\n state('true', style({ opacity: 1 })),\r\n transition('* => *', animate(`${XDuration.Slow} cubic-bezier(0.25, 0.8, 0.25, 1)`))\r\n]);\r\n","import { Observable, isObservable } from 'rxjs';\r\nimport { TemplateRef, SimpleChange } from '@angular/core';\r\n\r\n// 数据类型\r\nexport type XData<T> = T[] | Observable<T[] | any[]> | any[] | Function;\r\n\r\n// Boolean 类型\r\nexport type XBoolean = boolean | string;\r\n\r\n// Number 类型\r\nexport type XNumber = number | string;\r\n\r\n// 模板类型\r\nexport type XTemplate = string | number | Date | TemplateRef<any>;\r\n\r\n// 类型判断\r\nexport const XIsType = (type: string) => (object: any) => Object.prototype.toString.call(object) === `[object ${type}]`;\r\n\r\n// 值改变判断\r\nexport const XIsChange = (...changes: SimpleChange[]) => {\r\n for (let change of changes) {\r\n if (change?.currentValue !== change?.previousValue) return true;\r\n }\r\n return false;\r\n};\r\n\r\nconst IsString = XIsType('String');\r\nconst IsArray = XIsType('Array');\r\nconst IsNumber = XIsType('Number');\r\nconst IsBoolean = XIsType('Boolean');\r\nconst IsObject = XIsType('Object');\r\nconst IsNull = XIsType('Null');\r\nconst IsFunction = XIsType('Function');\r\nconst IsDate = XIsType('Date');\r\nconst IsRegExp = XIsType('RegExp');\r\n\r\nexport function XIsString(value: any): value is string {\r\n return IsString(value);\r\n}\r\nexport function XIsArray(value: any): value is Array<any> {\r\n return IsArray(value);\r\n}\r\nexport function XIsNumber(value: any): value is number {\r\n return IsNumber(value);\r\n}\r\nexport function XIsBoolean(value: any): value is boolean {\r\n return IsBoolean(value);\r\n}\r\nexport function XIsObject<T>(value: any): value is T {\r\n return IsObject(value);\r\n}\r\nexport function XIsNull(value: any): value is null {\r\n return IsNull(value);\r\n}\r\nexport function XIsFunction(value: any): value is Function {\r\n return IsFunction(value);\r\n}\r\nexport function XIsDate(value: any): value is Date {\r\n return IsDate(value);\r\n}\r\nexport function XIsRegExp(value: any): value is RegExp {\r\n return IsRegExp(value);\r\n}\r\nexport function XIsUndefined(value: any): value is undefined {\r\n return typeof value === 'undefined';\r\n}\r\nexport function XIsValue<T>(object: any): object is T {\r\n return XIsString(object) || XIsNumber(object) || XIsBoolean(object) || XIsDate(object);\r\n}\r\nexport function XIsEmpty(object: any) {\r\n return XIsUndefined(object) || XIsNull(object) || object === '' || object.length === 0;\r\n}\r\nexport function XIsValueArray<T>(object: any): object is T {\r\n return XIsArray(object) && object.length > 0 && !XIsObject(object[0]);\r\n}\r\nexport function XIsObjectArray<T>(object: any): object is T {\r\n return XIsArray(object) && object.length > 0 && XIsObject(object[0]);\r\n}\r\nexport function XIsObservable<T>(object: any): object is Observable<T> {\r\n return isObservable(object);\r\n}\r\nexport function XIsTemplateRef<T>(object: any): object is TemplateRef<T> {\r\n if (!XIsEmpty(object) && object.elementRef) return true;\r\n else return false;\r\n}\r\nexport function XIsXTemplate(object: any): object is XTemplate {\r\n return XIsString(object) || XIsNumber(object) || XIsDate(object) || XIsTemplateRef(object);\r\n}\r\n","// 标识对象\r\nexport interface XIdentityProperty {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n\r\n// 父节点标识对象\r\nexport interface XParentIdentityProperty<T> extends XIdentityProperty {\r\n // 编码\r\n pid?: any;\r\n // 层级\r\n level?: number;\r\n // 叶子节点\r\n leaf?: boolean;\r\n // 子节点\r\n children?: T[];\r\n // 子节点已加载过\r\n childrenLoaded?: boolean;\r\n // 选中\r\n selected?: boolean;\r\n // 禁用\r\n disabled?: boolean;\r\n // 展开\r\n open?: boolean;\r\n}\r\n\r\n// 标识对象\r\nexport class XIdentity {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n","import { coerceBooleanProperty, _isNumberValue } from '@angular/cdk/coercion';\r\nimport {\r\n XData,\r\n XIsNull,\r\n XIsUndefined,\r\n XIsArray,\r\n XIsValue,\r\n XIsObject,\r\n XIsObservable,\r\n XParentIdentityProperty,\r\n XBoolean,\r\n XClassMap,\r\n XIsFunction\r\n} from '../interfaces';\r\nimport { Observable, Subject, Observer } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\nexport function XToBoolean(value: XBoolean): boolean {\r\n // if (XIsString(value)) {\r\n // return ['', 'true'].indexOf(String(value).trim()) !== -1;\r\n // } else {\r\n // return Boolean(value);\r\n // }\r\n return coerceBooleanProperty(value);\r\n}\r\n\r\nfunction XToNumber(value: number | string): number;\r\nfunction XToNumber<D>(value: number | string, fallback: D): number | D;\r\nfunction XToNumber(value: number | string, fallbackValue: number = 0): number {\r\n return _isNumberValue(value) ? Number(value) : fallbackValue;\r\n}\r\n\r\nexport function XToDataConvert<T>(value: XData<T>): XData<T> {\r\n if (XIsArray(value)) {\r\n return (value as []).map((x: any) => {\r\n if (XIsValue(x)) {\r\n return { label: x, id: x };\r\n } else if (XIsObject<{ label: any; id: any }>(x)) {\r\n x.label = XIsUndefined(x.label) || XIsNull(x.label) ? x.id : x.label;\r\n x.id = XIsUndefined(x.id) || XIsNull(x.id) ? x.label : x.id;\r\n return x;\r\n }\r\n return x;\r\n });\r\n }\r\n return value;\r\n}\r\n\r\nexport function XSetData<T>(data: XData<T>, unSubject: Subject<void>, toConvert = true, funcParam: any = null): Observable<T[]> {\r\n return new Observable((x: Observer<T[]>) => {\r\n const result = (res: T[]) => {\r\n x.next(res);\r\n x.complete();\r\n };\r\n if (typeof data === 'undefined') {\r\n result([]);\r\n } else {\r\n if (XIsObservable(data)) {\r\n (data as Observable<T[]>)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else if (XIsFunction(data)) {\r\n (data as (param: any) => Observable<T[]>)(funcParam)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else {\r\n result((toConvert ? XToDataConvert(data) : data) as T[]);\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function XGetChildren<T extends XParentIdentityProperty<T>>(nodes: T[], node: T, level: number) {\r\n node.level = level;\r\n node.children = nodes.filter((y) => y.pid === node.id);\r\n node.leaf = node.children?.length > 0;\r\n if (node.leaf) node.children.map((y) => XGetChildren(nodes, y, level + 1));\r\n return node;\r\n}\r\n\r\nexport function XInvertKeyValues(obj: any): Map<any, any> {\r\n return Object.keys(obj).reduce((nw, key) => {\r\n nw.set(obj[key], key);\r\n return nw;\r\n }, new Map());\r\n}\r\n\r\nexport function XClearClass(...classMaps: XClassMap[]) {\r\n classMaps.forEach((classMap) => {\r\n for (const key in classMap) {\r\n classMap[key] = false;\r\n }\r\n });\r\n}\r\n\r\nfunction propDecoratorFactory<T, D>(name: string, fallback: (v: T) => D): (target: any, propName: string) => void {\r\n function propDecorator(target: any, propName: string, originalDescriptor?: TypedPropertyDescriptor<any>): any {\r\n const privatePropName = `$$__${propName}`;\r\n\r\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\r\n console.warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\r\n }\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true\r\n });\r\n\r\n return {\r\n get(): string {\r\n return originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n },\r\n set(value: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(fallback(value));\r\n }\r\n this[privatePropName] = fallback(value);\r\n }\r\n };\r\n }\r\n\r\n return propDecorator;\r\n}\r\n\r\nexport function XInputBoolean(): any {\r\n return propDecoratorFactory('XInputBoolean', XToBoolean);\r\n}\r\n\r\nexport function XInputNumber(): any {\r\n return propDecoratorFactory('XInputNumber', XToNumber);\r\n}\r\n\r\nexport function XDataConvert(): any {\r\n return propDecoratorFactory('XDataConvert', XToDataConvert);\r\n}\r\n\r\nexport function XClamp(value: number, min: number, max: number) {\r\n return Math.max(min, Math.min(max, value));\r\n}\r\n","import { XIsDate, XIsNumber } from '../interfaces';\r\n\r\nexport type XDate = string | Date | number;\r\n\r\nexport function XToDate(date: XDate): Date {\r\n if (XIsDate(date) || XIsNumber(date)) {\r\n return new Date(date);\r\n } else {\r\n return new Date(Date.parse(date as string));\r\n }\r\n}\r\n\r\nexport function XAddMilliseconds(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n return new Date(dt.getTime() + amount);\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddSeconds(date: XDate, amount: number): Date {\r\n return XAddMilliseconds(date, amount * 1000);\r\n}\r\n\r\nexport function XAddMinutes(date: XDate, amount: number): Date {\r\n return XAddMilliseconds(date, amount * 60000);\r\n}\r\n\r\nexport function XAddHours(date: XDate, amount: number): Date {\r\n return XAddMilliseconds(date, amount * 3600000);\r\n}\r\n\r\nexport function XAddDays(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setDate(dt.getDate() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMonths(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n const day = dt.getDate();\r\n const month = dt.getMonth();\r\n const endMonth = new Date(dt);\r\n endMonth.setMonth(month + amount + 1, 0);\r\n const endDay = endMonth.getDate();\r\n if (day >= endDay) {\r\n return endMonth;\r\n } else {\r\n dt.setFullYear(endMonth.getFullYear(), endMonth.getMonth(), day);\r\n }\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddYears(date: XDate, amount: number): Date {\r\n return XAddMonths(date, amount * 12);\r\n}\r\n\r\nexport function XDateWeek(date: XDate) {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf())) {\r\n return getISOWeek(dt);\r\n }\r\n return;\r\n}\r\n\r\nexport function XDateWeekYear(date: XDate) {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf())) {\r\n return getISOWeekYear(dt);\r\n }\r\n return;\r\n}\r\n\r\nexport function XDateYearWeek(date: XDate) {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf())) {\r\n return `${getISOWeekYear(dt)}-${getISOWeek(dt)}`;\r\n }\r\n return;\r\n}\r\n\r\nexport function XDateYearQuarter(date: XDate) {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf())) {\r\n return `${dt.getFullYear()}-${XDateQuarter(dt)}`;\r\n }\r\n return;\r\n}\r\n\r\nexport function XDateQuarter(date: XDate) {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf())) {\r\n return `Q${Math.ceil((dt.getMonth() + 1) / 3)}`;\r\n }\r\n return;\r\n}\r\n\r\nfunction getISOWeek(date: Date): number {\r\n const diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();\r\n return Math.round(diff / 604800000) + 1;\r\n}\r\n\r\nfunction startOfISOWeek(date: Date) {\r\n return startOfWeek(date, { weekStartsOn: 1 });\r\n}\r\n\r\nfunction startOfWeek(date: Date, options?: { weekStartsOn: number }) {\r\n const weekStartsOn = options?.weekStartsOn || 0;\r\n const day = date.getDay();\r\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\r\n date.setDate(date.getDate() - diff);\r\n date.setHours(0, 0, 0, 0);\r\n return date;\r\n}\r\n\r\nfunction startOfISOWeekYear(date: Date) {\r\n const year = getISOWeekYear(date);\r\n const fourthOfJanuary = constructFrom(date, 0);\r\n fourthOfJanuary.setFullYear(year, 0, 4);\r\n fourthOfJanuary.setHours(0, 0, 0, 0);\r\n const result = startOfISOWeek(fourthOfJanuary);\r\n return result;\r\n}\r\n\r\nfunction constructFrom<DateType extends Date>(date: DateType | number, value: Date | number): DateType {\r\n if (date instanceof Date) {\r\n return new (date.constructor as any)(value);\r\n } else {\r\n return new Date(value) as DateType;\r\n }\r\n}\r\n\r\nfunction getISOWeekYear(date: Date): number {\r\n const year = date.getFullYear();\r\n\r\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\r\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\r\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\r\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\r\n\r\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\r\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\r\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\r\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\r\n\r\n if (date.getTime() >= startOfNextYear.getTime()) {\r\n return year + 1;\r\n } else if (date.getTime() >= startOfThisYear.getTime()) {\r\n return year;\r\n } else {\r\n return year - 1;\r\n }\r\n}\r\n","import { Renderer2 } from '@angular/core';\r\nimport { XAlign, XDirection, XIsEmpty, XJustify } from '../interfaces';\r\n\r\nexport function XSetFlex(ele: Element, renderer: Renderer2, justify?: XJustify, align?: XAlign, direction?: XDirection) {\r\n let result: string[] = [];\r\n if (!XIsEmpty(justify)) {\r\n const justifyStr = `x-justify-${justify}`;\r\n result.push(justifyStr)\r\n renderer.addClass(ele, justifyStr);\r\n }\r\n if (!XIsEmpty(align)) {\r\n const alignStr = `x-align-${align}`;\r\n result.push(alignStr)\r\n renderer.addClass(ele, alignStr);\r\n }\r\n if (!XIsEmpty(direction)) {\r\n const directionStr = `x-direction-${direction}`;\r\n result.push(directionStr)\r\n renderer.addClass(ele, directionStr);\r\n }\r\n return result;\r\n}\r\n","export function XDrop<T>(array: Array<T>, n?: number): T[] {\r\n if (!n) return [...array];\r\n if (array.length < 1 || array.length <= Math.abs(n)) return [];\r\n return array.slice(n > 0 ? n : 0, n > 0 ? array.length : n);\r\n}\r\n","export function XRemove<T>(array: Array<T>, predicate?: (value: T) => boolean): T[] {\r\n if (typeof predicate === 'undefined') return [];\r\n let result: T[] = [];\r\n for (let i = 0; i < array.length; i++) {\r\n if (predicate(array[i])) {\r\n result.push(array[i]);\r\n }\r\n }\r\n for (let item of result) {\r\n array.splice(array.indexOf(item), 1);\r\n }\r\n return result;\r\n}\r\n","export function XOrderBy<T>(collection: Array<T>, iteratees: Array<string>, orders?: Array<'asc' | 'desc'>): T[] {\r\n if (!iteratees) return collection;\r\n if (!orders) orders = [];\r\n\r\n function compare(a: any, b: any, prop: any, order: 'asc' | 'desc' | undefined, idex: number): number {\r\n if (a[prop] == b[prop]) {\r\n ++idex;\r\n if (iteratees.length > idex) {\r\n const odr = orders && orders.length > idex ? orders[idex] : 'asc';\r\n return compare(a, b, iteratees[idex], odr, idex);\r\n } else {\r\n return 0;\r\n }\r\n }\r\n let isNumber = !isNaN(a[prop]);\r\n if (order === 'desc') {\r\n if (isNumber) {\r\n return (b[prop] - a[prop]) as number;\r\n } else {\r\n if (b[prop] > a[prop]) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n } else {\r\n if (isNumber) {\r\n return (a[prop] - b[prop]) as number;\r\n } else {\r\n if (a[prop] > b[prop]) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n const iterate = iteratees.shift();\r\n const order = orders.shift() || 'asc';\r\n\r\n if (!iterate) return collection;\r\n\r\n collection.sort((a: any, b: any) => compare(a, b, iterate, order, -1));\r\n\r\n return collection;\r\n}\r\n","export function XCloneDeep(value: any): any {\r\n let result: any = Array.isArray(value) ? [] : {};\r\n if (value && typeof value === 'object') {\r\n for (let key in value) {\r\n if ((value as Object).hasOwnProperty(key)) {\r\n result[key] = value && typeof value[key] === 'object' ? XCloneDeep(value[key]) : value[key];\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n","export function XHasIn(object: Object, key: string) {\r\n return object != null && key in Object(object);\r\n}\r\n","export function XChunk<T>(array: T[], size = 1): T[][] {\r\n const len = array == null ? 0 : array.length;\r\n if (!len || size < 1) {\r\n return [];\r\n }\r\n let index = 0;\r\n let resIndex = 0;\r\n const result = new Array(Math.ceil(len / size));\r\n\r\n while (index < len) {\r\n result[resIndex++] = array.slice(index, (index += size));\r\n }\r\n return result;\r\n}\r\n","/**\r\n * 生成 GUID\r\n */\r\nexport function XGuid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n}\r\n","export function XGroupBy<T>(array: T[], name: string): T[][] {\r\n const groups: any = {};\r\n array.forEach((obj: any) => {\r\n const group = JSON.stringify(obj[name]);\r\n groups[group] = groups[group] || [];\r\n groups[group].push(obj);\r\n });\r\n return Object.keys(groups).map((group) => groups[group]);\r\n}\r\n","import { Observable, Subscriber } from 'rxjs';\r\n\r\nexport type XResizeObserver = ResizeObserver | null;\r\nexport type XResizeObserverEntry = ResizeObserverEntry | null;\r\n\r\nexport const XResize = (...element: Element[]): Observable<{ entry: XResizeObserverEntry; resizeObserver: XResizeObserver }> => {\r\n return new Observable(\r\n (\r\n x: Subscriber<{\r\n entry: XResizeObserverEntry;\r\n resizeObserver: XResizeObserver;\r\n }>\r\n ) => {\r\n if (typeof ResizeObserver !== 'function') {\r\n return;\r\n }\r\n const resizeObserver = new ResizeObserver((entries: XResizeObserverEntry[]) => {\r\n for (const entry of entries) {\r\n x.next({ entry: entry, resizeObserver: resizeObserver });\r\n }\r\n });\r\n for (let ele of element) {\r\n if (ele) resizeObserver.observe(ele);\r\n }\r\n\r\n //XResize 取消订阅的时候自动销毁\r\n //resizeObserver.disconnect();\r\n }\r\n );\r\n};\r\n","export function XParentPath(ele: HTMLElement): string[] {\r\n let path: string[] = [];\r\n let nowEle = ele;\r\n while (nowEle.parentNode != null) {\r\n path.push(nowEle.localName);\r\n nowEle = nowEle.parentNode as HTMLElement;\r\n }\r\n return path;\r\n}\r\n\r\nexport function XParents(ele: HTMLElement): HTMLElement[] {\r\n let res: HTMLElement[] = [];\r\n let nowEle = ele;\r\n while (nowEle.parentElement != null) {\r\n res.push(nowEle.parentElement!);\r\n nowEle = nowEle.parentNode as HTMLElement;\r\n }\r\n return res;\r\n}\r\n","import { XClassMap } from '../interfaces';\r\n\r\n/**\r\n * 组件公共属性\r\n */\r\nexport class XProperty {\r\n /**\r\n * 样式映射属性\r\n */\r\n classMap: XClassMap = {};\r\n}\r\n","import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n\r\nexport interface XRouteReuseStorage {\r\n id: string;\r\n handle: DetachedRouteHandle;\r\n}\r\n\r\n// @dynamic\r\nexport class XReuseStrategyService implements RouteReuseStrategy {\r\n // 存储的复用路由\r\n public static storages: XRouteReuseStorage[] = [];\r\n // 用一个临时变量记录待删除的路由\r\n private static waitDelete: string | null;\r\n\r\n /**\r\n * 表示对所有路由允许复用 如果你有路由不想利用可以在这加一些业务逻辑判断\r\n */\r\n public shouldDetach(_route: ActivatedRouteSnapshot): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * 当路由离开时会触发。按path作为key存储路由快照&组件当前实例对象\r\n */\r\n public store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n if (handle == null) return;\r\n if (XReuseStrategyService.waitDelete && this.getRouteUrl(route).indexOf(XReuseStrategyService.waitDelete) == 0) {\r\n //如果待删除是当前路由则不存储快照\r\n XReuseStrategyService.waitDelete = null;\r\n return;\r\n }\r\n this.add(this.getRouteUrl(route), handle);\r\n }\r\n\r\n /**\r\n * 若 path 在缓存中有的都认为允许还原路由\r\n */\r\n public shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n return !!XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n }\r\n\r\n /**\r\n * 从缓存中获取快照,若无则返回nul\r\n */\r\n public retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n if (!route.routeConfig) {\r\n return {};\r\n }\r\n let stroage = XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n return stroage ? stroage.handle : {};\r\n }\r\n\r\n /**\r\n * 进入路由触发,判断是否同一路由\r\n * 解决不同的参数也会认为是同一个路由,导致会将之前的路由拿出来复用\r\n */\r\n public shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return future.routeConfig === curr.routeConfig && JSON.stringify(future.params) == JSON.stringify(curr.params);\r\n }\r\n\r\n /**\r\n * 解决不同的主路由会存在相同名称的子路由\r\n */\r\n private getRouteUrl(route: ActivatedRouteSnapshot) {\r\n let url = route.url.map((x) => x.path).join('_');\r\n return url;\r\n }\r\n\r\n /**\r\n * 删除复用的路由\r\n */\r\n public static deleteRouteSnapshot(name?: string): void {\r\n if (name) {\r\n let id = name.replace(/\\//g, '_');\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id.indexOf(id) === 0),\r\n 1\r\n );\r\n XReuseStrategyService.waitDelete = id;\r\n } else {\r\n XReuseStrategyService.storages = [];\r\n }\r\n }\r\n\r\n private add(id: string, handle: DetachedRouteHandle) {\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id == id),\r\n 1\r\n );\r\n XReuseStrategyService.storages = [...XReuseStrategyService.storages, { id: id, handle: handle }];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PreloadingStrategy, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable()\r\nexport class XPreloadingStrategyService implements PreloadingStrategy {\r\n // 需要预加载的模块\r\n preloadedModules: string[] = [];\r\n\r\n preload(route: Route, load: () => Observable<any>): Observable<any> {\r\n if (route.data && route.data['preload']) {\r\n this.preloadedModules.push(route.path as string);\r\n return load();\r\n } else {\r\n return of(null);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XHttpService {\r\n api: string = '';\r\n constructor(public http: HttpClient) {}\r\n\r\n /**\r\n * get请求\r\n */\r\n get(url: string, params?: { [property: string]: any }) {\r\n return this.request('GET', url, params);\r\n }\r\n\r\n /**\r\n * get请求\r\n */\r\n post(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('POST', url, params);\r\n }\r\n\r\n /**\r\n * put请求\r\n */\r\n put(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('PUT', url, params);\r\n }\r\n\r\n /**\r\n * delete请求\r\n */\r\n delete(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('DELETE', url, params);\r\n }\r\n\r\n /**\r\n * request通用请求\r\n */\r\n request(method: string, url: string, params?: { [property: string]: any }, option?: { [property: string]: any }): Observable<any> {\r\n if (!option) option = {};\r\n let opt = {};\r\n url = `${this.api}${url}`;\r\n method = method.toUpperCase();\r\n if (['POST', 'PUT', 'DELETE'].indexOf(method) > -1) {\r\n opt = { body: params, observe: 'body', responseType: 'json' };\r\n } else if (['GET'].indexOf(method) > -1) {\r\n opt = { params: params };\r\n }\r\n Object.assign(opt, option);\r\n this.addHeader(opt);\r\n return new Observable((x) => {\r\n this.http.request(method, url, opt).subscribe(\r\n (y: any) => {\r\n x.next(y);\r\n x.complete();\r\n },\r\n (y) => {\r\n x.error(y);\r\n x.complete();\r\n this.handleError(y);\r\n }\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * 错误处理\r\n */\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error) {\r\n }\r\n return throwError(error.error);\r\n }\r\n\r\n /**\r\n * 添加头部信息\r\n */\r\n private addHeader(_option: { [property: string]: any }) {\r\n // let auth = this.setting.getSession(\"Auth\");\r\n // if (auth && auth[\"token\"]) {\r\n // option[\"headers\"] = { Authorization: `Bearer ${auth[\"token\"]}` };\r\n // }\r\n }\r\n}\r\n","import { Platform } from '@angular/cdk/platform';\r\nimport { Injectable } from '@angular/core';\r\nimport { XIsString } from '../interfaces';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XStorageService {\r\n constructor(private platform: Platform) {}\r\n\r\n /**\r\n * 获取本地值\r\n */\r\n getLocal(key: string) {\r\n if (this.platform.isBrowser) {\r\n let str = localStorage.getItem(key);\r\n try {\r\n return JSON.parse(localStorage.getItem(key) || 'null') || null;\r\n } catch (_e) {\r\n return str;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * 设置本地值\r\n */\r\n setLocal(key: string, value: any) {\r\n if (this.platform.isBrowser) {\r\n if (XIsString(value)) {\r\n localStorage.setItem(key, value);\r\n } else {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 获取当前会话的值\r\n */\r\n getSession(key: string) {\r\n if (this.platform.isBrowser) {\r\n let str = localStorage.getItem(key);\r\n try {\r\n return JSON.parse(sessionStorage.getItem(key) || 'null') || null;\r\n } catch (_e) {\r\n return str;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * 设置当前会话值\r\n */\r\n setSession(key: string, value: any) {\r\n if (this.platform.isBrowser) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n }\r\n\r\n /**\r\n * 移除本地值\r\n */\r\n removeLocal(key: string) {\r\n if (this.platform.isBrowser) {\r\n localStorage.removeItem(key);\r\n }\r\n }\r\n\r\n /**\r\n * 移除当前会话\r\n */\r\n removeSession(key: string) {\r\n if (this.platform.isBrowser) {\r\n sessionStorage.removeItem(key);\r\n }\r\n }\r\n\r\n /**\r\n * 生成guid\r\n */\r\n guid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n }\r\n}\r\n","import { XId, XQuery, XResultList } from '../interfaces';\r\nimport { XHttpService } from './http.service';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface XRepositoryInput {\r\n api?: string;\r\n controller: XController;\r\n}\r\n\r\nexport interface XController {\r\n name: string;\r\n}\r\n\r\nexport abstract class XRepositoryAbstract {\r\n abstract getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<any>>;\r\n abstract get(id: number | string): Observable<any>;\r\n abstract post(entity: any): Observable<any>;\r\n abstract put(entity: any): Observable<any>;\r\n abstract delete(id: number | string): Observable<boolean>;\r\n}\r\n\r\nexport class XRepositoryService<Entity extends XId> extends XRepositoryAbstract {\r\n api = '';\r\n constructor(public http: XHttpService, public input: XRepositoryInput) {\r\n super();\r\n this.api = typeof input.api !== 'undefined' ? input.api : '';\r\n }\r\n\r\n getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<Entity>> {\r\n index = index ? index : 1;\r\n size = size ? size : 10;\r\n return this.http.post(`${this.api}${this.input.controller.name}/${size}/${index}`, query);\r\n }\r\n\r\n get(id: number | string): Observable<Entity> {\r\n return this.http.get(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n\r\n post(entity: Entity): Observable<Entity> {\r\n return this.http.post(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n put(entity: Entity): Observable<Entity> {\r\n return this.http.put(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n delete(id: number | string): Observable<boolean> {\r\n return this.http.delete(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n}\r\n","import {\r\n XSize,\r\n XBoolean,\r\n XType,\r\n XEffect,\r\n XNumber,\r\n XPositionLeftRight,\r\n XJustify,\r\n XShape,\r\n XFit,\r\n XShadow,\r\n XTrigger,\r\n XDisplayDirection,\r\n XCorner,\r\n XDirection,\r\n XPlace,\r\n XPosition,\r\n XPlacement,\r\n XPositionTopBottom,\r\n XStatus,\r\n XAlign,\r\n XTemplate\r\n} from '../interfaces';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { XTheme } from '../theme';\r\n\r\nexport interface XConfig {\r\n components?: XComponentConfig;\r\n theme?: XTheme;\r\n}\r\n\r\nexport type XConfigKey = keyof XConfig;\r\n\r\nexport type XComponentConfigKey = keyof XComponentConfig;\r\n\r\nexport const X_CONFIG = new InjectionToken<XConfig>('x-config');\r\n\r\nexport interface XComponentConfig {\r\n affix?: XAffixConfig;\r\n alert?: XAlertConfig;\r\n anchor?: XAnchorConfig;\r\n avatar?: XAvatarConfig;\r\n autoComplete?: XAutoCompleteConfig;\r\n backTop?: XBackTopConfig;\r\n badge?: XBadgeConfgig;\r\n button?: XButtonConfig;\r\n buttons?: XButtonsConfig;\r\n calendar?: XCalendarConfig;\r\n card?: XCardConfig;\r\n carousel?: XCarouselConfig;\r\n cascade?: XCascadeConfig;\r\n checkbox?: XCheckboxConfig;\r\n collapse?: XCollapseConfig;\r\n color?: XColorConfig;\r\n colorPicker?: XColorPickerConfig;\r\n comment?: XCommentConfig;\r\n container?: XContainerConfig;\r\n header?: XHeaderConfig;\r\n aside?: XAsideConfig;\r\n footer?: XFooterConfig;\r\n crumb?: XCrumbComfig;\r\n datePicker?: XDatePickerConfig;\r\n dateRange?: XDateRangeConfig;\r\n dialog?: XDialogConfig;\r\n drawer?: XDrawerConfig;\r\n dropdown?: XDropdownConfig;\r\n description?: XDescriptionConfig;\r\n empty?: XEmptyConfig;\r\n find?: XFindConfig;\r\n form?: XFormConfig;\r\n highlight?: XHighlightConfig;\r\n icon?: XIconConfig;\r\n inner?: XInnerConfig;\r\n input?: XInputConfig;\r\n inputGroup?: XInputGroupConfig;\r\n inputNumber?: XInputNumberConfig;\r\n image?: XImageConfig;\r\n col?: XColConfig;\r\n row?: XRowConfig;\r\n ripple?: XRippleConfig;\r\n link?: XLinkConfig;\r\n list?: XListConfig;\r\n listOption?: XListOptionConfig;\r\n loading?: XLoadingConfig;\r\n menu?: XMenuConfig;\r\n message?: XMessageConfig;\r\n messageBox?: XMessageBoxConfig;\r\n notification?: XNotificationConfig;\r\n outlet?: XOutletConfig;\r\n pageHeader?: XPageHeaderConfig;\r\n pagination?: XPaginationConfig;\r\n pattern?: XPatternConfig;\r\n popconfirm?: XPopconfirmConfig;\r\n popover?: XPopoverConfig;\r\n portal?: XPortalConfig;\r\n progress?: XProgressConfing;\r\n radio?: XRadioConfig;\r\n rate?: XRateConfig;\r\n result?: XResultConfig;\r\n select?: XSelectConfig;\r\n skeleton?: XSkeletonConfig;\r\n slider?: XSliderConfig;\r\n sliderSelect?: XSliderSelectConfig;\r\n statistic?: XStatisticConfig;\r\n countdown?: XCountdownConfig;\r\n steps?: XStepsConfig;\r\n switch?: XSwitchConfig;\r\n table?: XTableConfig;\r\n tabs?: XTabsConfig;\r\n tag?: XTagConfig;\r\n textRetract?: XTextRetractConfig;\r\n theme?: XThemeConfig;\r\n timeAgo?: XTimeAgoConfig;\r\n timePicker?: XTimePickerConfig;\r\n timeRange?: XTimeRangeConfig;\r\n timeline?: XTimelineConfig;\r\n tooltip?: XTooltipConfig;\r\n transfer?: XTransferConfig;\r\n tree?: XTreeConfig;\r\n treeFile?: XTreeFileConfig;\r\n treeSelect?: XTreeSelectConfig;\r\n textarea?: XTextareaConfig;\r\n upload?: XUploadConfig;\r\n keyword?: XKeywordConfig;\r\n}\r\n\r\nexport interface XAffixConfig {\r\n top?: string;\r\n left?: string;\r\n}\r\n\r\nexport interface XAlertConfig {\r\n effect?: XEffect;\r\n hideClose?: XBoolean;\r\n showIcon?: XBoolean;\r\n disabledAnimation?: XBoolean;\r\n draggable?: XBoolean;\r\n resizable?: XBoolean;\r\n dragHandleTitle?: XBoolean;\r\n duration?: XNumber;\r\n}\r\n\r\nexport interface XAnchorConfig {\r\n affixTop?: string;\r\n affixWidth?: string;\r\n layout?: XPositionLeftRight;\r\n justify?: XJustify;\r\n}\r\n\r\nexport interface XAvatarConfig {\r\n size?: XSize;\r\n shape?: XShape;\r\n fit?: XFit;\r\n gap?: number;\r\n backgroundColor?: string;\r\n}\r\n\r\nexport interface XAutoCompleteConfig {\r\n placement?: XPositionTopBottom;\r\n debounceTime?: number;\r\n size?: XSize;\r\n bordered?: boolean;\r\n caseSensitive?: boolean;\r\n onlySelect?: boolean;\r\n}\r\n\r\nexport interface XBackTopConfig {\r\n right?: string;\r\n bottom?: string;\r\n visibilityHeight?: XNumber;\r\n}\r\n\r\nexport interface XBadgeConfgig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XButtonConfig {\r\n size?: XSize;\r\n type?: XType;\r\n plain?: XBoolean;\r\n round?: XBoolean;\r\n circle?: XBoolean;\r\n attrType?: 'submit' | 'button' | 'reset';\r\n}\r\n\r\nexport interface XButtonsConfig {\r\n space?: XNumber;\r\n hiddenBorder?: XBoolean;\r\n}\r\n\r\nexport interface XCalendarConfig {}\r\n\r\nexport interface XCardConfig {\r\n shadow?: XShadow;\r\n}\r\n\r\nexport interface XCarouselConfig {\r\n height?: string;\r\n trigger?: XTrigger;\r\n arrow?: XShadow;\r\n direction?: XDisplayDirection;\r\n}\r\n\r\nexport interface XCascadeConfig {\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: boolean;\r\n nodeTrigger?: XTrigger;\r\n nodeHoverDelay?: XNumber;\r\n}\r\n\r\nexport interface XCheckboxConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XCollapseConfig {\r\n showIcon?: Boolean;\r\n ghost?: Boolean;\r\n iconPosition?: 'left' | 'right';\r\n bordered?: Boolean;\r\n}\r\n\r\nexport interface XColorConfig {\r\n merge?: string;\r\n amounts?: string;\r\n}\r\n\r\nexport interface XColorPickerConfig {\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XCommentConfig {\r\n contentMax?: number;\r\n}\r\n\r\nexport interface XContainerConfig {\r\n direction?: XDirection;\r\n}\r\n\r\nexport interface XHeaderConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XAsideConfig {\r\n width?: number;\r\n}\r\n\r\nexport interface XFooterConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XCrumbComfig {\r\n separator?: string;\r\n}\r\n\r\nexport interface XDatePickerConfig {\r\n format?: string;\r\n clearable?: XBoolean;\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: boolean;\r\n}\r\n\r\nexport interface XDateRangeConfig {\r\n format?: string;\r\n clearable?: XBoolean;\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XDialogConfig {\r\n placement?: XPlace;\r\n offset?: string;\r\n width?: string;\r\n minWidth?: string;\r\n minHeight?: string;\r\n effect?: XEffect;\r\n showCancel?: XBoolean;\r\n cancelText?: string;\r\n showConfirm?: XBoolean;\r\n confirmText?: string;\r\n backdropClose?: XBoolean;\r\n draggable?: XBoolean;\r\n resizable?: XBoolean;\r\n maximize?: XBoolean;\r\n hasBackdrop?: XBoolean;\r\n className?: string;\r\n buttonsCenter?: XBoolean;\r\n}\r\n\r\nexport interface XDrawerConfig {\r\n placement?: XPosition;\r\n size?: string;\r\n backdropClose?: XBoolean;\r\n hasBackdrop?: XBoolean;\r\n className?: string;\r\n}\r\n\r\nexport interface XDropdownConfig {\r\n trigger?: XTrigger;\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XDescriptionConfig {\r\n bordered?: XBoolean;\r\n size?: XSize;\r\n}\r\n\r\nexport interface XEmptyConfig {\r\n img?: XTemplate;\r\n content?: XTemplate;\r\n}\r\n\r\nexport interface XFindConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n columnLabel?: string;\r\n dialogTitle?: string;\r\n dialogCheckboxLabel?: string;\r\n dialogCheckboxWidth?: number;\r\n dialogEmptyContent?: string;\r\n dialogButtonsCenter?: XBoolean;\r\n tableIndex?: number;\r\n tableSize?: number;\r\n tableLoading?: XBoolean;\r\n tableVirtualScroll?: boolean;\r\n tableRowHeight?: XNumber;\r\n treeExpandedLevel?: XNumber;\r\n}\r\n\r\nexport interface XFormConfig {\r\n space?: XNumber;\r\n labelSuffix?: string;\r\n width?: string;\r\n}\r\n\r\nexport interface XHighlightConfig {}\r\n\r\nexport interface XIconConfig {\r\n href?: string;\r\n}\r\n\r\nexport interface XInnerConfig {\r\n padding?: string;\r\n}\r\n\r\nexport interface XInputConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n inputPadding?: XNumber;\r\n inputIconPadding?: XNumber;\r\n}\r\n\r\nexport interface XInputGroupConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n compact?: XBoolean;\r\n}\r\n\r\nexport interface XInputNumberConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XImageConfig {\r\n previewText?: string;\r\n}\r\n\r\nexport interface XColConfig {}\r\n\r\nexport interface XRowConfig {}\r\n\r\nexport interface XRippleConfig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XLinkConfig {\r\n underline?: XBoolean;\r\n iconRight?: XBoolean;\r\n preventDefault?: XBoolean;\r\n}\r\n\r\nexport interface XListConfig {\r\n selectAllText?: string;\r\n loadMoreText?: string;\r\n loadingMoreText?: string;\r\n caseSensitive?: boolean;\r\n}\r\n\r\nexport interface XListOptionConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XLoadingConfig {\r\n size?: XSize;\r\n text?: string;\r\n icon?: string;\r\n color?: string;\r\n background?: string;\r\n zIndex?: number;\r\n}\r\n\r\nexport interface XMenuConfig {\r\n size?: XSize;\r\n width?: string;\r\n trigger?: XTrigger;\r\n}\r\n\r\nexport interface XMessageConfig {\r\n type?: XStatus;\r\n width?: string;\r\n placement?: XPlace;\r\n displayType?: string;\r\n offset?: string | string[];\r\n duration?: number;\r\n hideClose?: boolean;\r\n showIcon?: boolean;\r\n}\r\n\r\nexport interface XMessageBoxConfig {}\r\n\r\nexport interface XNotificationConfig {}\r\n\r\nexport interface XOutletConfig {}\r\n\r\nexport interface XPageHeaderConfig {\r\n backIcon?: string;\r\n backText?: string;\r\n}\r\n\r\nexport interface XPaginationConfig {\r\n index?: XNumber;\r\n size?: XNumber;\r\n space?: XNumber;\r\n pageLinkSize?: XNumber;\r\n hiddenBorder?: boolean;\r\n showEllipsis?: boolean;\r\n showTotal?: boolean;\r\n showSize?: boolean;\r\n sizeWidth?: number;\r\n sizeData?: number[];\r\n showInputSize?: boolean;\r\n inputSizeWidth?: number;\r\n showJump?: boolean;\r\n jumpWidth?: number;\r\n simple?: boolean;\r\n simpleIndexWidth?: number;\r\n}\r\n\r\nexport interface XPatternConfig {}\r\n\r\nexport interface XPopconfirmConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n icon?: string;\r\n iconColor?: string;\r\n cancelText?: string;\r\n confirmText?: string;\r\n}\r\n\r\nexport interface XPopoverConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n}\r\n\r\nexport interface XPortalConfig {}\r\n\r\nexport interface XProgressConfing {\r\n height?: string;\r\n stepWidth?: string;\r\n}\r\n\r\nexport interface XRadioConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XRateConfig {\r\n color?: string | { [color: string]: (rate: number) => boolean };\r\n}\r\n\r\nexport interface XResultConfig {}\r\n\r\nexport interface XSelectConfig {\r\n placement?: XPositionTopBottom;\r\n clearable?: XBoolean;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n portalMaxHeight?: string;\r\n selectAllText?: string;\r\n search?: XBoolean;\r\n caseSensitive?: XBoolean;\r\n debounceTime?: number;\r\n maxTagCount?: number;\r\n virtualScroll?: XBoolean;\r\n}\r\n\r\nexport interface XSkeletonConfig {}\r\n\r\nexport interface XSliderConfig {\r\n animated?: XBoolean;\r\n size?: XSize;\r\n showExpand?: XBoolean;\r\n autoShowArrow?: XBoolean;\r\n trigger?: XTrigger;\r\n}\r\n\r\nexport interface XSliderSelectConfig {}\r\n\r\nexport interface XStatisticConfig {}\r\n\r\nexport interface XCountdownConfig {\r\n format?: string;\r\n}\r\n\r\nexport interface XStepsConfig {}\r\n\r\nexport interface XSwitchConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTableConfig {\r\n index?: number;\r\n size?: number;\r\n loading?: XBoolean;\r\n showHeader?: XBoolean;\r\n virtualScroll?: boolean;\r\n rowHeight?: XNumber;\r\n itemSize?: XNumber;\r\n bordered?: XNumber;\r\n allowSelectRow?: XBoolean;\r\n allowCheckRow?: XBoolean;\r\n rowSize?: XSize;\r\n showPagination?: XBoolean;\r\n treeTable?: XBoolean;\r\n expandedAll?: XBoolean;\r\n expandedLevel?: XNumber;\r\n hiddenPaginationBorder?: XBoolean;\r\n hiddenWrapBorder?: XBoolean;\r\n showEmpty?: XBoolean;\r\n emptyImg?: XTemplate;\r\n emptyContent?: XTemplate;\r\n}\r\n\r\nexport interface XTabsConfig {\r\n size?: XSize;\r\n trigger?: XTrigger;\r\n}\r\n\r\nexport interface XTagConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n closable?: XBoolean;\r\n dark?: XBoolean;\r\n}\r\n\r\nexport interface XTextRetractConfig {\r\n max?: XNumber;\r\n}\r\n\r\nexport interface XThemeConfig {\r\n amounts?: XNumber[];\r\n}\r\n\r\nexport interface XTimeAgoConfig {}\r\n\r\nexport interface XTimePickerConfig {\r\n format?: string;\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n use12Hours?: XBoolean;\r\n defaultNow?: XBoolean;\r\n}\r\n\r\nexport interface XTimeRangeConfig {}\r\n\r\nexport interface XTimelineConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTooltipConfig {\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XTransferConfig {\r\n titles?: string[];\r\n drag?: XBoolean;\r\n virtualScroll?: XBoolean;\r\n}\r\n\r\nexport interface XTreeConfig {\r\n spacing?: XNumber;\r\n nodeHeight?: XNumber;\r\n nodeAlignItems?: XAlign;\r\n virtualScroll?: boolean;\r\n onlyLeaf?: boolean;\r\n showLine?: boolean;\r\n}\r\n\r\nexport interface XTextareaConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n}\r\n\r\nexport interface XTreeFileConfig {\r\n maxHeight?: XNumber;\r\n spacing?: XNumber;\r\n}\r\n\r\nexport interface XTreeSelectConfig {\r\n placement?: XPositionTopBottom;\r\n clearable?: XBoolean;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n portalMaxHeight?: string;\r\n selectAllText?: string;\r\n search?: XBoolean;\r\n caseSensitive?: XBoolean;\r\n debounceTime?: number;\r\n maxTagCount?: number;\r\n virtualScroll?: XBoolean;\r\n showPath?: XBoolean;\r\n separator?: string;\r\n onlyLeaf?: boolean;\r\n}\r\n\r\nexport interface XUploadConfig {\r\n download?: XBoolean;\r\n multipleModel?: 'cover' | 'add';\r\n}\r\n\r\nexport interface XKeywordConfig {\r\n type?: XType;\r\n color?: string;\r\n caseSensitive?: boolean;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface XTheme {\r\n colors?: XColorsTheme;\r\n}\r\n\r\nexport interface XColorsTheme {\r\n primary?: string;\r\n success?: string;\r\n warning?: string;\r\n danger?: string;\r\n info?: string;\r\n text?: string;\r\n border?: string;\r\n background?: string;\r\n [property: string]: any;\r\n}\r\n\r\nexport type XThemeKey = keyof XTheme;\r\n\r\nexport type XColors = 'primary' | 'success' | 'warning' | 'danger' | 'info';\r\n\r\nexport const X_THEME = new InjectionToken<XTheme>('x-theme');\r\n\r\nexport const X_THEME_PREFIX = '--x-';\r\n\r\nexport const X_THEME_MERGE = '#ffffff';\r\n\r\nexport const X_THEME_BLACK_MERGE = '#cccccc';\r\n\r\nexport const X_THEME_AMOUNTS = [0, -0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9];\r\n\r\nexport const X_THEME_BACKGROUNDS = [-0.2, -0.3, -0.4];\r\n\r\nexport const X_THEME_TEXTS = [\r\n [-0.5, 0],\r\n [-0.6, 0.2],\r\n [-0.7, 0.4]\r\n];\r\n\r\nexport const X_THEME_BORDERS = [\r\n [-0.8, 0],\r\n [-0.9, 0.2]\r\n];\r\n\r\nexport const X_THEME_EXCHANGES = [\r\n [-0.1, -0.1],\r\n [0.1, -0.1],\r\n [0.2, 0.2],\r\n [0.3, 0],\r\n [0.4, -0.4],\r\n [0.5, -0.2],\r\n [0.6, 0],\r\n [0.7, -0.4],\r\n [0.8, -0.4],\r\n [0.9, -0.2]\r\n];\r\n\r\nexport const X_THEME_COLORS: XColorsTheme = {\r\n primary: '#1976d2',\r\n success: '#67c23a',\r\n warning: '#e6a23c',\r\n danger: '#f56c6c',\r\n info: '#909399',\r\n text: '#333333',\r\n border: '#dddddd',\r\n background: '#ffffff'\r\n};\r\n\r\nexport const X_THEME_DARK_COLORS: XColorsTheme = {\r\n text: '#dddddd',\r\n border: '#424242',\r\n background: '#1e1e1f'\r\n};\r\n\r\nexport const X_THEME_COLOR_KEYS = Object.keys(X_THEME_COLORS);\r\n","import { Injectable, RendererFactory2, Renderer2, inject } from '@angular/core';\r\nimport {\r\n XTheme,\r\n XColorsTheme,\r\n X_THEME_COLORS,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_PREFIX,\r\n X_THEME_AMOUNTS,\r\n X_THEME_MERGE,\r\n X_THEME_BLACK_MERGE,\r\n X_THEME_EXCHANGES,\r\n X_THEME_BACKGROUNDS,\r\n X_THEME_TEXTS,\r\n X_THEME_BORDERS\r\n} from './theme';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { XComputed } from '../util';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XThemeService {\r\n private colorsProp: XColorsTheme = {};\r\n private colorsStyleEle!: HTMLStyleElement;\r\n private renderer2: Renderer2;\r\n private declaration: CSSStyleDeclaration;\r\n private doc: Document = inject(DOCUMENT);\r\n\r\n constructor(private factory: RendererFactory2) {\r\n this.renderer2 = this.factory.createRenderer(null, null);\r\n this.declaration = XComputed(this.doc.documentElement);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n if (theme?.colors) Object.assign(X_THEME_COLORS, theme.colors);\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return {\r\n colors: this.getColors(includesAll)\r\n };\r\n }\r\n\r\n setColors(colors?: XColorsTheme) {\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(this.colorsProp, this.setRoot(key, colors[key]));\r\n }\r\n this.createColorsStyle();\r\n }\r\n\r\n getColors(includes = false, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n const keys = includes ? Object.keys(this.colorsProp) : X_THEME_COLOR_KEYS.map((x) => `${prefix}${x}`);\r\n keys.forEach((x) => {\r\n result[x.replace(prefix, '')] = this.declaration.getPropertyValue(`${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsInProperty(colors?: XColorsTheme, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n Object.keys(colors as XColorsTheme).forEach((x) => {\r\n result[x] = this.declaration.getPropertyValue(`${prefix}${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsTheme(colors?: XColorsTheme) {\r\n if (typeof colors === 'undefined') colors = X_THEME_COLORS;\r\n else colors = Object.assign({}, X_THEME_COLORS, colors);\r\n return colors;\r\n }\r\n\r\n setRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n if (X_THEME_COLOR_KEYS.includes(color)) {\r\n for (let amount of X_THEME_AMOUNTS) {\r\n if (amount === 0) {\r\n result[`${prefix}${color}`] = value;\r\n } else {\r\n result[`${prefix}${color}${this.getSuffix(amount)}`] = toHex(\r\n mixColors(amount > 0 ? X_THEME_MERGE : X_THEME_BLACK_MERGE, value, Math.abs(amount))\r\n );\r\n }\r\n }\r\n } else {\r\n result[`${prefix}${color}`] = value;\r\n }\r\n return result;\r\n }\r\n\r\n setDarkRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n const allColors = this.setRoot(color, value, '');\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n const allColors = this.setRoot(color, value, prefix);\r\n X_THEME_EXCHANGES.forEach((x) => {\r\n if (x[1] >= -0.1) {\r\n const curr = this.getSuffix(x[0]);\r\n const next = this.getSuffix(x[1]);\r\n result[`${prefix}${color}${curr}`] = allColors[`${prefix}${color}${next}`];\r\n }\r\n });\r\n } else if (['background'].includes(color)) {\r\n result = this.getDefineColors(Object.assign({}, this.getColorsInProperty(X_THEME_COLORS), allColors), '', true);\r\n }\r\n return result;\r\n }\r\n\r\n getDefineColors(colors?: XColorsTheme, prefix = X_THEME_PREFIX, darken = false): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(result, this.setRoot(key, colors[key], prefix));\r\n }\r\n if (darken) {\r\n const colorsFunc = (nums: number[] | number[][], callback: Function) => {\r\n for (let num of nums) {\r\n for (let color in colors) {\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n callback(num, color);\r\n }\r\n }\r\n }\r\n };\r\n colorsFunc(X_THEME_BACKGROUNDS, (background: number, color: string) => {\r\n const theme = this.getSuffix(background);\r\n result[`${prefix}${color}${theme}`] = result[`${prefix}background${theme.replace('a', '')}`];\r\n });\r\n colorsFunc(X_THEME_TEXTS, (text: number[], color: string) => {\r\n const curr = this.getSuffix(text[0]);\r\n const next = this.getSuffix(text[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}text${next}`];\r\n });\r\n colorsFunc(X_THEME_BORDERS, (border: number[], color: string) => {\r\n const curr = this.getSuffix(border[0]);\r\n const next = this.getSuffix(border[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}border${next}`];\r\n });\r\n colorsFunc(X_THEME_EXCHANGES, (exchange: number[], color: string) => {\r\n const curr = this.getSuffix(exchange[0]);\r\n const next = this.getSuffix(exchange[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}${color}${next}`];\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n getSuffix(num: number): string {\r\n if (num > 0) {\r\n return `-${Math.abs(num * 1000)}`;\r\n } else if (num < 0) {\r\n return `-a${Math.abs(num * 1000)}`;\r\n }\r\n return '';\r\n }\r\n\r\n createColorsStyle() {\r\n if (this.colorsStyleEle) this.renderer2.removeChild(this.colorsStyleEle.parentNode, this.colorsStyleEle);\r\n const styles = Object.entries(this.colorsProp)\r\n .map((x) => `${x[0]}: ${x[1]};`)\r\n .join('');\r\n this.colorsStyleEle = this.renderer2.createElement('style');\r\n this.colorsStyleEle.innerHTML = `.x-theme-colors{${styles}}`;\r\n this.renderer2.addClass(this.doc.documentElement, 'x-theme-colors');\r\n this.doc.documentElement.getElementsByTagName('head')[0].appendChild(this.colorsStyleEle);\r\n }\r\n}\r\n\r\nexport function mixColors(color1: string, color2: string, weight: number) {\r\n let rgb1 = toRgb(color1);\r\n let rgb2 = toRgb(color2);\r\n let weight1 = weight;\r\n let weight2 = 1 - weight;\r\n let result: { r: number; g: number; b: number };\r\n\r\n const inRange = (num: number) => {\r\n return num > 255 ? 255 : num < 0 ? 0 : num;\r\n };\r\n\r\n result = {\r\n r: inRange(Math.round(rgb1.r * weight1 + rgb2.r * weight2)),\r\n g: inRange(Math.round(rgb1.g * weight1 + rgb2.g * weight2)),\r\n b: inRange(Math.round(rgb1.b * weight1 + rgb2.b * weight2))\r\n };\r\n\r\n return result;\r\n}\r\n\r\nexport function toHex(rgb: { r: number; g: number; b: number }) {\r\n return '#' + ((1 << 24) + (rgb.r << 16) + (rgb.g << 8) + rgb.b).toString(16).slice(1);\r\n}\r\n\r\nexport function toRgb(hex: string) {\r\n if (hex.indexOf('#') == 0) hex = hex.slice(1);\r\n let num = parseInt(hex, 16);\r\n let r = num >> 16;\r\n if (r > 255) r = 255;\r\n else if (r < 0) r = 0;\r\n let g = (num >> 8) & 0x00ff;\r\n if (g > 255) g = 255;\r\n else if (g < 0) g = 0;\r\n let b = num & 0x0000ff;\r\n if (b > 255) b = 255;\r\n else if (b < 0) b = 0;\r\n\r\n return { r: r, g: g, b: b };\r\n}\r\n","// tslint:disable no-any\r\n\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { XConfig, X_CONFIG, XComponentConfigKey, XComponentConfig } from './config';\r\nimport { XThemeService, XTheme, X_THEME_COLORS, X_THEME_DARK_COLORS } from '../theme';\r\nimport { filter, mapTo } from 'rxjs/operators';\r\n\r\nconst isDefined = function (value?: any): boolean {\r\n return value !== undefined;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XConfigService {\r\n private componentConfigUpdated$ = new Subject<keyof XComponentConfig>();\r\n private config: XConfig;\r\n private defaultConfig = inject(X_CONFIG, { optional: true })!;\r\n public themeService = inject(XThemeService, { optional: true })!;\r\n\r\n constructor() {\r\n this.config = this.defaultConfig || {};\r\n this.setInitialTheme(this.config.theme);\r\n }\r\n\r\n getConfigForComponent<T extends XComponentConfigKey>(componentName: T): XComponentConfig[T] {\r\n return this.config?.components ? this.config.components[componentName] : undefined;\r\n }\r\n\r\n getConfigChangeEventForComponent(componentName: XComponentConfigKey): Observable<void> {\r\n return this.componentConfigUpdated$.pipe(\r\n filter((n) => n === componentName),\r\n mapTo(undefined)\r\n );\r\n }\r\n\r\n set<T extends XComponentConfigKey>(componentName: T, value: XComponentConfig[T]): void {\r\n if (this.config?.components) {\r\n this.config.components[componentName] = { ...this.config.components[componentName], ...value };\r\n this.componentConfigUpdated$.next(componentName);\r\n }\r\n }\r\n\r\n setDarkTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_DARK_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', true)\r\n });\r\n }\r\n\r\n setLightTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', false)\r\n });\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.themeService.setTheme(theme);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.themeService.setInitialTheme(theme);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return this.themeService.getTheme(includesAll);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:typedef\r\nexport function XWithConfig<T>(componentName: XComponentConfigKey, innerDefaultValue?: T) {\r\n return function ConfigDecorator(target: any, propName: any, originalDescriptor?: TypedPropertyDescriptor<T>): any {\r\n const privatePropName = `$$__assignedValue__${propName}`;\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false\r\n });\r\n\r\n return {\r\n get(): T | undefined {\r\n const originalValue = originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n\r\n if (isDefined(originalValue)) {\r\n return originalValue;\r\n }\r\n\r\n const componentConfig = this.configService?.getConfigForComponent(componentName) || {};\r\n const configValue = componentConfig[propName];\r\n\r\n return isDefined(configValue) ? configValue : innerDefaultValue;\r\n },\r\n set(value: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(value);\r\n } else {\r\n this[privatePropName] = value;\r\n }\r\n },\r\n configurable: true,\r\n enumerable: true\r\n };\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["XDURATION_BASE_EASE_IN","XDURATION_BASE_EASE_OUT","i1"],"mappings":"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"}