@ng-nest/ui 13.0.0 → 13.0.4

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 (546) hide show
  1. package/README.md +1 -1
  2. package/carousel/carousel-panel.component.d.ts +2 -3
  3. package/core/config/config.d.ts +4 -0
  4. package/date-picker/date-picker.component.d.ts +1 -1
  5. package/date-picker/date-picker.property.d.ts +51 -1
  6. package/date-picker/date-range-portal.component.d.ts +7 -5
  7. package/date-picker/date-range.component.d.ts +5 -1
  8. package/date-picker/examples/en_US/default/disabled/README.md +1 -1
  9. package/date-picker/examples/en_US/default/time/README.md +6 -0
  10. package/date-picker/examples/zh_CN/default/disabled/README.md +1 -1
  11. package/date-picker/examples/zh_CN/default/time/README.md +6 -0
  12. package/date-picker/picker-date.component.d.ts +3 -0
  13. package/dialog/dialog-container.component.d.ts +18 -0
  14. package/dialog/dialog-container.directives.d.ts +24 -0
  15. package/dialog/dialog-ref.d.ts +9 -0
  16. package/dialog/dialog.module.d.ts +13 -11
  17. package/dialog/dialog.property.d.ts +84 -6
  18. package/dialog/dialog.service.d.ts +19 -0
  19. package/dialog/examples/en_US/default/service/README.md +6 -0
  20. package/dialog/examples/zh_CN/default/service/README.md +6 -0
  21. package/dialog/public-api.d.ts +4 -0
  22. package/drawer/drawer-container.component.d.ts +18 -0
  23. package/drawer/drawer-container.directives.d.ts +19 -0
  24. package/drawer/drawer-ref.d.ts +9 -0
  25. package/drawer/drawer.module.d.ts +8 -6
  26. package/drawer/drawer.property.d.ts +83 -2
  27. package/drawer/drawer.service.d.ts +19 -0
  28. package/drawer/examples/en_US/default/service/README.md +6 -0
  29. package/drawer/examples/zh_CN/default/service/README.md +6 -0
  30. package/drawer/public-api.d.ts +5 -0
  31. package/esm2020/affix/affix.component.mjs +3 -3
  32. package/esm2020/affix/affix.module.mjs +4 -4
  33. package/esm2020/affix/affix.property.mjs +3 -3
  34. package/esm2020/alert/alert.component.mjs +5 -5
  35. package/esm2020/alert/alert.module.mjs +4 -4
  36. package/esm2020/alert/alert.property.mjs +3 -3
  37. package/esm2020/anchor/anchor.component.mjs +3 -3
  38. package/esm2020/anchor/anchor.module.mjs +4 -4
  39. package/esm2020/anchor/anchor.property.mjs +3 -3
  40. package/esm2020/api/api.component.mjs +3 -3
  41. package/esm2020/api/api.module.mjs +4 -4
  42. package/esm2020/auto-complete/auto-complete-portal.component.mjs +5 -5
  43. package/esm2020/auto-complete/auto-complete.component.mjs +4 -4
  44. package/esm2020/auto-complete/auto-complete.module.mjs +4 -4
  45. package/esm2020/auto-complete/auto-complete.property.mjs +3 -3
  46. package/esm2020/avatar/avatar.component.mjs +3 -3
  47. package/esm2020/avatar/avatar.module.mjs +4 -4
  48. package/esm2020/avatar/avatar.property.mjs +3 -3
  49. package/esm2020/back-top/back-top.component.mjs +3 -3
  50. package/esm2020/back-top/back-top.module.mjs +4 -4
  51. package/esm2020/back-top/back-top.property.mjs +3 -3
  52. package/esm2020/badge/badge.component.mjs +3 -3
  53. package/esm2020/badge/badge.module.mjs +4 -4
  54. package/esm2020/badge/badge.property.mjs +3 -3
  55. package/esm2020/base-form/base-form.component.mjs +3 -3
  56. package/esm2020/base-form/base-form.module.mjs +4 -4
  57. package/esm2020/base-form/base-form.property.mjs +3 -3
  58. package/esm2020/border/border.component.mjs +3 -3
  59. package/esm2020/border/border.module.mjs +4 -4
  60. package/esm2020/button/button.component.mjs +4 -4
  61. package/esm2020/button/button.module.mjs +4 -4
  62. package/esm2020/button/button.property.mjs +6 -6
  63. package/esm2020/button/buttons.component.mjs +3 -3
  64. package/esm2020/calendar/calendar.component.mjs +3 -3
  65. package/esm2020/calendar/calendar.module.mjs +4 -4
  66. package/esm2020/calendar/calendar.property.mjs +3 -3
  67. package/esm2020/card/card.component.mjs +4 -4
  68. package/esm2020/card/card.module.mjs +4 -4
  69. package/esm2020/card/card.property.mjs +3 -3
  70. package/esm2020/carousel/carousel-panel.component.mjs +14 -13
  71. package/esm2020/carousel/carousel.component.mjs +3 -3
  72. package/esm2020/carousel/carousel.module.mjs +4 -4
  73. package/esm2020/carousel/carousel.property.mjs +6 -6
  74. package/esm2020/cascade/cascade-portal.component.mjs +5 -5
  75. package/esm2020/cascade/cascade.component.mjs +4 -4
  76. package/esm2020/cascade/cascade.module.mjs +4 -4
  77. package/esm2020/cascade/cascade.property.mjs +3 -3
  78. package/esm2020/checkbox/checkbox.component.mjs +4 -4
  79. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  80. package/esm2020/checkbox/checkbox.property.mjs +3 -3
  81. package/esm2020/collapse/collapse-panel.component.mjs +3 -3
  82. package/esm2020/collapse/collapse.component.mjs +3 -3
  83. package/esm2020/collapse/collapse.module.mjs +4 -4
  84. package/esm2020/collapse/collapse.property.mjs +6 -6
  85. package/esm2020/color/color.component.mjs +3 -3
  86. package/esm2020/color/color.module.mjs +4 -4
  87. package/esm2020/color/color.property.mjs +3 -3
  88. package/esm2020/color-picker/color-picker-portal.component.mjs +5 -5
  89. package/esm2020/color-picker/color-picker.component.mjs +4 -4
  90. package/esm2020/color-picker/color-picker.module.mjs +4 -4
  91. package/esm2020/color-picker/color-picker.property.mjs +3 -3
  92. package/esm2020/comment/comment-reply.component.mjs +3 -3
  93. package/esm2020/comment/comment.component.mjs +3 -3
  94. package/esm2020/comment/comment.module.mjs +4 -4
  95. package/esm2020/comment/comment.property.mjs +6 -6
  96. package/esm2020/container/aside.component.mjs +3 -3
  97. package/esm2020/container/container.component.mjs +3 -3
  98. package/esm2020/container/container.module.mjs +4 -4
  99. package/esm2020/container/container.property.mjs +12 -12
  100. package/esm2020/container/footer.component.mjs +4 -4
  101. package/esm2020/container/header.component.mjs +4 -4
  102. package/esm2020/container/main.component.mjs +4 -4
  103. package/esm2020/core/config/config.mjs +1 -1
  104. package/esm2020/core/config/config.service.mjs +3 -3
  105. package/esm2020/core/services/http.service.mjs +3 -3
  106. package/esm2020/core/services/preloading-strategy.service.mjs +3 -3
  107. package/esm2020/core/services/storage.service.mjs +3 -3
  108. package/esm2020/core/theme/theme.service.mjs +3 -3
  109. package/esm2020/crumb/crumb.component.mjs +3 -3
  110. package/esm2020/crumb/crumb.module.mjs +4 -4
  111. package/esm2020/crumb/crumb.property.mjs +3 -3
  112. package/esm2020/date-picker/date-picker-portal.component.mjs +6 -6
  113. package/esm2020/date-picker/date-picker.component.mjs +6 -10
  114. package/esm2020/date-picker/date-picker.module.mjs +4 -4
  115. package/esm2020/date-picker/date-picker.property.mjs +86 -16
  116. package/esm2020/date-picker/date-range-portal.component.mjs +47 -28
  117. package/esm2020/date-picker/date-range.component.mjs +33 -10
  118. package/esm2020/date-picker/picker-date.component.mjs +33 -6
  119. package/esm2020/date-picker/picker-month.component.mjs +3 -3
  120. package/esm2020/date-picker/picker-year.component.mjs +3 -3
  121. package/esm2020/description/description-item.component.mjs +3 -3
  122. package/esm2020/description/description.component.mjs +3 -3
  123. package/esm2020/description/description.module.mjs +4 -4
  124. package/esm2020/description/description.property.mjs +6 -6
  125. package/esm2020/dialog/dialog-container.component.mjs +52 -0
  126. package/esm2020/dialog/dialog-container.directives.mjs +73 -0
  127. package/esm2020/dialog/dialog-ref.mjs +17 -0
  128. package/esm2020/dialog/dialog.component.mjs +5 -5
  129. package/esm2020/dialog/dialog.module.mjs +39 -9
  130. package/esm2020/dialog/dialog.property.mjs +20 -19
  131. package/esm2020/dialog/dialog.service.mjs +67 -0
  132. package/esm2020/dialog/public-api.mjs +5 -1
  133. package/esm2020/doc/doc.component.mjs +4 -4
  134. package/esm2020/doc/doc.module.mjs +4 -4
  135. package/esm2020/drawer/drawer-container.component.mjs +52 -0
  136. package/esm2020/drawer/drawer-container.directives.mjs +57 -0
  137. package/esm2020/drawer/drawer-ref.mjs +17 -0
  138. package/esm2020/drawer/drawer.component.mjs +5 -5
  139. package/esm2020/drawer/drawer.module.mjs +24 -8
  140. package/esm2020/drawer/drawer.property.mjs +24 -8
  141. package/esm2020/drawer/drawer.service.mjs +65 -0
  142. package/esm2020/drawer/public-api.mjs +6 -1
  143. package/esm2020/dropdown/dropdown-portal.component.mjs +3 -3
  144. package/esm2020/dropdown/dropdown.component.mjs +3 -3
  145. package/esm2020/dropdown/dropdown.module.mjs +4 -4
  146. package/esm2020/dropdown/dropdown.property.mjs +3 -3
  147. package/esm2020/empty/empty.component.mjs +3 -3
  148. package/esm2020/empty/empty.module.mjs +4 -4
  149. package/esm2020/empty/empty.property.mjs +3 -3
  150. package/esm2020/examples/examples.component.mjs +3 -3
  151. package/esm2020/examples/examples.module.mjs +4 -4
  152. package/esm2020/find/find.component.mjs +4 -4
  153. package/esm2020/find/find.module.mjs +4 -4
  154. package/esm2020/find/find.property.mjs +3 -3
  155. package/esm2020/form/control.component.mjs +3 -3
  156. package/esm2020/form/form.component.mjs +3 -3
  157. package/esm2020/form/form.module.mjs +4 -4
  158. package/esm2020/form/form.property.mjs +6 -6
  159. package/esm2020/highlight/highlight.component.mjs +3 -3
  160. package/esm2020/highlight/highlight.module.mjs +4 -4
  161. package/esm2020/highlight/highlight.property.mjs +3 -3
  162. package/esm2020/i18n/i18n.directive.mjs +3 -3
  163. package/esm2020/i18n/i18n.module.mjs +4 -4
  164. package/esm2020/i18n/i18n.pipe.mjs +3 -3
  165. package/esm2020/i18n/i18n.service.mjs +3 -3
  166. package/esm2020/icon/icon.component.mjs +3 -3
  167. package/esm2020/icon/icon.module.mjs +4 -4
  168. package/esm2020/icon/icon.property.mjs +3 -3
  169. package/esm2020/icon/icon.service.mjs +3 -3
  170. package/esm2020/inner/inner.component.mjs +3 -3
  171. package/esm2020/inner/inner.module.mjs +4 -4
  172. package/esm2020/inner/inner.property.mjs +3 -3
  173. package/esm2020/input/input-group.component.mjs +3 -3
  174. package/esm2020/input/input.component.mjs +8 -5
  175. package/esm2020/input/input.module.mjs +4 -4
  176. package/esm2020/input/input.property.mjs +6 -6
  177. package/esm2020/input-number/input-number.component.mjs +3 -3
  178. package/esm2020/input-number/input-number.module.mjs +4 -4
  179. package/esm2020/input-number/input-number.property.mjs +3 -3
  180. package/esm2020/layout/col.component.mjs +3 -3
  181. package/esm2020/layout/layout.module.mjs +4 -4
  182. package/esm2020/layout/layout.property.mjs +6 -6
  183. package/esm2020/layout/row.component.mjs +3 -3
  184. package/esm2020/link/link.component.mjs +3 -3
  185. package/esm2020/link/link.module.mjs +4 -4
  186. package/esm2020/link/link.property.mjs +3 -3
  187. package/esm2020/list/list-option.component.mjs +3 -3
  188. package/esm2020/list/list.component.mjs +3 -3
  189. package/esm2020/list/list.module.mjs +4 -4
  190. package/esm2020/list/list.property.mjs +6 -6
  191. package/esm2020/loading/loading.component.mjs +3 -3
  192. package/esm2020/loading/loading.module.mjs +4 -4
  193. package/esm2020/loading/loading.property.mjs +3 -3
  194. package/esm2020/menu/menu-node.component.mjs +3 -3
  195. package/esm2020/menu/menu.component.mjs +5 -5
  196. package/esm2020/menu/menu.module.mjs +4 -4
  197. package/esm2020/menu/menu.property.mjs +6 -6
  198. package/esm2020/message/message.component.mjs +3 -3
  199. package/esm2020/message/message.module.mjs +4 -4
  200. package/esm2020/message/message.property.mjs +2 -2
  201. package/esm2020/message/message.service.mjs +6 -6
  202. package/esm2020/message-box/message-box.component.mjs +3 -3
  203. package/esm2020/message-box/message-box.module.mjs +4 -4
  204. package/esm2020/message-box/message-box.service.mjs +3 -3
  205. package/esm2020/notification/notification.component.mjs +3 -3
  206. package/esm2020/notification/notification.module.mjs +4 -4
  207. package/esm2020/notification/notification.service.mjs +3 -3
  208. package/esm2020/outlet/outlet.directive.mjs +3 -3
  209. package/esm2020/outlet/outlet.module.mjs +4 -4
  210. package/esm2020/page-header/page-header.component.mjs +3 -3
  211. package/esm2020/page-header/page-header.module.mjs +4 -4
  212. package/esm2020/page-header/page-header.property.mjs +3 -3
  213. package/esm2020/pagination/pagination.component.mjs +4 -4
  214. package/esm2020/pagination/pagination.module.mjs +4 -4
  215. package/esm2020/pagination/pagination.property.mjs +3 -3
  216. package/esm2020/pattern/pattern.component.mjs +3 -3
  217. package/esm2020/pattern/pattern.module.mjs +4 -4
  218. package/esm2020/popconfirm/popconfirm.component.mjs +3 -3
  219. package/esm2020/popconfirm/popconfirm.module.mjs +4 -4
  220. package/esm2020/popconfirm/popconfirm.property.mjs +3 -3
  221. package/esm2020/popover/popover-portal.component.mjs +3 -3
  222. package/esm2020/popover/popover.directive.mjs +3 -3
  223. package/esm2020/popover/popover.module.mjs +4 -4
  224. package/esm2020/popover/popover.property.mjs +3 -3
  225. package/esm2020/portal/portal.module.mjs +6 -5
  226. package/esm2020/portal/portal.service.mjs +11 -12
  227. package/esm2020/progress/progress.component.mjs +179 -18
  228. package/esm2020/progress/progress.module.mjs +4 -4
  229. package/esm2020/progress/progress.property.mjs +52 -5
  230. package/esm2020/radio/radio.component.mjs +4 -4
  231. package/esm2020/radio/radio.module.mjs +4 -4
  232. package/esm2020/radio/radio.property.mjs +3 -3
  233. package/esm2020/rate/rate.component.mjs +4 -4
  234. package/esm2020/rate/rate.module.mjs +4 -4
  235. package/esm2020/rate/rate.property.mjs +3 -3
  236. package/esm2020/result/result.component.mjs +4 -4
  237. package/esm2020/result/result.module.mjs +4 -4
  238. package/esm2020/result/result.property.mjs +3 -3
  239. package/esm2020/ripple/ripple.directive.mjs +3 -3
  240. package/esm2020/ripple/ripple.module.mjs +4 -4
  241. package/esm2020/ripple/ripple.property.mjs +3 -3
  242. package/esm2020/select/select-portal.component.mjs +5 -5
  243. package/esm2020/select/select.component.mjs +4 -4
  244. package/esm2020/select/select.module.mjs +4 -4
  245. package/esm2020/select/select.property.mjs +3 -3
  246. package/esm2020/skeleton/skeleton.component.mjs +3 -3
  247. package/esm2020/skeleton/skeleton.module.mjs +4 -4
  248. package/esm2020/skeleton/skeleton.property.mjs +3 -3
  249. package/esm2020/slider/slider.component.mjs +3 -3
  250. package/esm2020/slider/slider.module.mjs +4 -4
  251. package/esm2020/slider/slider.property.mjs +3 -3
  252. package/esm2020/slider-select/slider-select.component.mjs +4 -4
  253. package/esm2020/slider-select/slider-select.module.mjs +4 -4
  254. package/esm2020/slider-select/slider-select.property.mjs +3 -3
  255. package/esm2020/statistic/countdown.component.mjs +3 -3
  256. package/esm2020/statistic/statistic.component.mjs +3 -3
  257. package/esm2020/statistic/statistic.module.mjs +4 -4
  258. package/esm2020/statistic/statistic.property.mjs +6 -6
  259. package/esm2020/steps/steps.component.mjs +18 -11
  260. package/esm2020/steps/steps.module.mjs +4 -4
  261. package/esm2020/steps/steps.property.mjs +10 -5
  262. package/esm2020/switch/switch.component.mjs +4 -4
  263. package/esm2020/switch/switch.module.mjs +4 -4
  264. package/esm2020/switch/switch.property.mjs +3 -3
  265. package/esm2020/table/drag.directive.mjs +3 -3
  266. package/esm2020/table/table-body.component.mjs +3 -3
  267. package/esm2020/table/table-foot.component.mjs +3 -3
  268. package/esm2020/table/table-head.component.mjs +3 -3
  269. package/esm2020/table/table.component.mjs +3 -3
  270. package/esm2020/table/table.module.mjs +4 -4
  271. package/esm2020/table/table.property.mjs +13 -13
  272. package/esm2020/tabs/tab-content.component.mjs +3 -3
  273. package/esm2020/tabs/tab.component.mjs +3 -3
  274. package/esm2020/tabs/tabs.component.mjs +3 -3
  275. package/esm2020/tabs/tabs.module.mjs +4 -4
  276. package/esm2020/tabs/tabs.property.mjs +6 -6
  277. package/esm2020/tag/tag.component.mjs +4 -4
  278. package/esm2020/tag/tag.module.mjs +4 -4
  279. package/esm2020/tag/tag.property.mjs +3 -3
  280. package/esm2020/text-retract/text-retract.component.mjs +3 -3
  281. package/esm2020/text-retract/text-retract.module.mjs +4 -4
  282. package/esm2020/text-retract/text-retract.property.mjs +3 -3
  283. package/esm2020/textarea/textarea.component.mjs +4 -4
  284. package/esm2020/textarea/textarea.module.mjs +4 -4
  285. package/esm2020/textarea/textarea.property.mjs +3 -3
  286. package/esm2020/theme/theme.component.mjs +3 -3
  287. package/esm2020/theme/theme.module.mjs +4 -4
  288. package/esm2020/theme/theme.property.mjs +3 -3
  289. package/esm2020/time-ago/time-ago.module.mjs +4 -4
  290. package/esm2020/time-ago/time-ago.pipe.mjs +3 -3
  291. package/esm2020/time-picker/time-picker-frame.component.mjs +11 -8
  292. package/esm2020/time-picker/time-picker-portal.component.mjs +3 -3
  293. package/esm2020/time-picker/time-picker.component.mjs +27 -14
  294. package/esm2020/time-picker/time-picker.module.mjs +4 -4
  295. package/esm2020/time-picker/time-picker.property.mjs +3 -3
  296. package/esm2020/time-range/time-range.module.mjs +4 -4
  297. package/esm2020/time-range/time-range.pipe.mjs +3 -3
  298. package/esm2020/timeline/timeline.component.mjs +3 -3
  299. package/esm2020/timeline/timeline.module.mjs +4 -4
  300. package/esm2020/timeline/timeline.property.mjs +3 -3
  301. package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
  302. package/esm2020/tooltip/tooltip.directive.mjs +3 -3
  303. package/esm2020/tooltip/tooltip.module.mjs +4 -4
  304. package/esm2020/tooltip/tooltip.property.mjs +3 -3
  305. package/esm2020/transfer/transfer.component.mjs +3 -3
  306. package/esm2020/transfer/transfer.module.mjs +4 -4
  307. package/esm2020/transfer/transfer.property.mjs +3 -3
  308. package/esm2020/tree/tree-node.component.mjs +3 -3
  309. package/esm2020/tree/tree.component.mjs +3 -3
  310. package/esm2020/tree/tree.module.mjs +4 -4
  311. package/esm2020/tree/tree.property.mjs +6 -6
  312. package/esm2020/tree-file/tree-file.component.mjs +4 -4
  313. package/esm2020/tree-file/tree-file.module.mjs +4 -4
  314. package/esm2020/tree-file/tree-file.property.mjs +3 -3
  315. package/esm2020/typography/typography.component.mjs +3 -3
  316. package/esm2020/typography/typography.module.mjs +4 -4
  317. package/esm2020/typography/typography.property.mjs +3 -3
  318. package/esm2020/upload/upload-portal.component.mjs +4 -4
  319. package/esm2020/upload/upload.component.mjs +3 -3
  320. package/esm2020/upload/upload.module.mjs +4 -4
  321. package/esm2020/upload/upload.property.mjs +3 -3
  322. package/fesm2015/ng-nest-ui-affix.mjs +10 -10
  323. package/fesm2015/ng-nest-ui-alert.mjs +12 -11
  324. package/fesm2015/ng-nest-ui-alert.mjs.map +1 -1
  325. package/fesm2015/ng-nest-ui-anchor.mjs +10 -10
  326. package/fesm2015/ng-nest-ui-api.mjs +7 -7
  327. package/fesm2015/ng-nest-ui-auto-complete.mjs +16 -15
  328. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  329. package/fesm2015/ng-nest-ui-avatar.mjs +11 -10
  330. package/fesm2015/ng-nest-ui-back-top.mjs +10 -10
  331. package/fesm2015/ng-nest-ui-badge.mjs +11 -10
  332. package/fesm2015/ng-nest-ui-base-form.mjs +11 -10
  333. package/fesm2015/ng-nest-ui-border.mjs +8 -7
  334. package/fesm2015/ng-nest-ui-button.mjs +18 -17
  335. package/fesm2015/ng-nest-ui-calendar.mjs +11 -10
  336. package/fesm2015/ng-nest-ui-card.mjs +12 -11
  337. package/fesm2015/ng-nest-ui-carousel.mjs +27 -26
  338. package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
  339. package/fesm2015/ng-nest-ui-cascade.mjs +16 -15
  340. package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
  341. package/fesm2015/ng-nest-ui-checkbox.mjs +12 -11
  342. package/fesm2015/ng-nest-ui-collapse.mjs +17 -16
  343. package/fesm2015/ng-nest-ui-color-picker.mjs +16 -15
  344. package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
  345. package/fesm2015/ng-nest-ui-color.mjs +11 -10
  346. package/fesm2015/ng-nest-ui-comment.mjs +17 -16
  347. package/fesm2015/ng-nest-ui-container.mjs +35 -34
  348. package/fesm2015/ng-nest-ui-core.mjs +16 -15
  349. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  350. package/fesm2015/ng-nest-ui-crumb.mjs +11 -10
  351. package/fesm2015/ng-nest-ui-date-picker.mjs +216 -80
  352. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  353. package/fesm2015/ng-nest-ui-description.mjs +17 -16
  354. package/fesm2015/ng-nest-ui-dialog.mjs +258 -33
  355. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  356. package/fesm2015/ng-nest-ui-doc.mjs +8 -8
  357. package/fesm2015/ng-nest-ui-drawer.mjs +227 -20
  358. package/fesm2015/ng-nest-ui-drawer.mjs.map +1 -1
  359. package/fesm2015/ng-nest-ui-dropdown.mjs +13 -13
  360. package/fesm2015/ng-nest-ui-empty.mjs +11 -10
  361. package/fesm2015/ng-nest-ui-examples.mjs +7 -7
  362. package/fesm2015/ng-nest-ui-find.mjs +12 -11
  363. package/fesm2015/ng-nest-ui-form.mjs +17 -16
  364. package/fesm2015/ng-nest-ui-highlight.mjs +11 -10
  365. package/fesm2015/ng-nest-ui-i18n.mjs +14 -13
  366. package/fesm2015/ng-nest-ui-icon.mjs +14 -13
  367. package/fesm2015/ng-nest-ui-inner.mjs +10 -10
  368. package/fesm2015/ng-nest-ui-input-number.mjs +11 -10
  369. package/fesm2015/ng-nest-ui-input.mjs +21 -17
  370. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  371. package/fesm2015/ng-nest-ui-layout.mjs +17 -16
  372. package/fesm2015/ng-nest-ui-link.mjs +11 -10
  373. package/fesm2015/ng-nest-ui-list.mjs +17 -16
  374. package/fesm2015/ng-nest-ui-loading.mjs +11 -10
  375. package/fesm2015/ng-nest-ui-menu.mjs +17 -17
  376. package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
  377. package/fesm2015/ng-nest-ui-message-box.mjs +10 -10
  378. package/fesm2015/ng-nest-ui-message.mjs +14 -13
  379. package/fesm2015/ng-nest-ui-message.mjs.map +1 -1
  380. package/fesm2015/ng-nest-ui-notification.mjs +10 -10
  381. package/fesm2015/ng-nest-ui-outlet.mjs +8 -7
  382. package/fesm2015/ng-nest-ui-page-header.mjs +10 -10
  383. package/fesm2015/ng-nest-ui-pagination.mjs +12 -11
  384. package/fesm2015/ng-nest-ui-pattern.mjs +7 -7
  385. package/fesm2015/ng-nest-ui-popconfirm.mjs +10 -10
  386. package/fesm2015/ng-nest-ui-popover.mjs +13 -13
  387. package/fesm2015/ng-nest-ui-portal.mjs +16 -15
  388. package/fesm2015/ng-nest-ui-portal.mjs.map +1 -1
  389. package/fesm2015/ng-nest-ui-progress.mjs +235 -26
  390. package/fesm2015/ng-nest-ui-progress.mjs.map +1 -1
  391. package/fesm2015/ng-nest-ui-radio.mjs +12 -11
  392. package/fesm2015/ng-nest-ui-rate.mjs +12 -11
  393. package/fesm2015/ng-nest-ui-result.mjs +11 -11
  394. package/fesm2015/ng-nest-ui-ripple.mjs +11 -10
  395. package/fesm2015/ng-nest-ui-select.mjs +16 -15
  396. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  397. package/fesm2015/ng-nest-ui-skeleton.mjs +10 -10
  398. package/fesm2015/ng-nest-ui-slider-select.mjs +12 -11
  399. package/fesm2015/ng-nest-ui-slider.mjs +11 -10
  400. package/fesm2015/ng-nest-ui-statistic.mjs +17 -16
  401. package/fesm2015/ng-nest-ui-steps.mjs +30 -18
  402. package/fesm2015/ng-nest-ui-steps.mjs.map +1 -1
  403. package/fesm2015/ng-nest-ui-switch.mjs +12 -11
  404. package/fesm2015/ng-nest-ui-table.mjs +32 -31
  405. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  406. package/fesm2015/ng-nest-ui-tabs.mjs +20 -19
  407. package/fesm2015/ng-nest-ui-tag.mjs +12 -11
  408. package/fesm2015/ng-nest-ui-text-retract.mjs +11 -10
  409. package/fesm2015/ng-nest-ui-textarea.mjs +12 -11
  410. package/fesm2015/ng-nest-ui-theme.mjs +11 -10
  411. package/fesm2015/ng-nest-ui-time-ago.mjs +8 -7
  412. package/fesm2015/ng-nest-ui-time-picker.mjs +47 -30
  413. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  414. package/fesm2015/ng-nest-ui-time-range.mjs +8 -7
  415. package/fesm2015/ng-nest-ui-timeline.mjs +11 -10
  416. package/fesm2015/ng-nest-ui-tooltip.mjs +14 -13
  417. package/fesm2015/ng-nest-ui-transfer.mjs +10 -10
  418. package/fesm2015/ng-nest-ui-tree-file.mjs +12 -11
  419. package/fesm2015/ng-nest-ui-tree.mjs +17 -16
  420. package/fesm2015/ng-nest-ui-typography.mjs +11 -10
  421. package/fesm2015/ng-nest-ui-upload.mjs +14 -14
  422. package/fesm2020/ng-nest-ui-affix.mjs +10 -10
  423. package/fesm2020/ng-nest-ui-alert.mjs +12 -11
  424. package/fesm2020/ng-nest-ui-alert.mjs.map +1 -1
  425. package/fesm2020/ng-nest-ui-anchor.mjs +10 -10
  426. package/fesm2020/ng-nest-ui-api.mjs +7 -7
  427. package/fesm2020/ng-nest-ui-auto-complete.mjs +16 -15
  428. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  429. package/fesm2020/ng-nest-ui-avatar.mjs +11 -10
  430. package/fesm2020/ng-nest-ui-back-top.mjs +10 -10
  431. package/fesm2020/ng-nest-ui-badge.mjs +11 -10
  432. package/fesm2020/ng-nest-ui-base-form.mjs +11 -10
  433. package/fesm2020/ng-nest-ui-border.mjs +8 -7
  434. package/fesm2020/ng-nest-ui-button.mjs +18 -17
  435. package/fesm2020/ng-nest-ui-calendar.mjs +11 -10
  436. package/fesm2020/ng-nest-ui-card.mjs +12 -11
  437. package/fesm2020/ng-nest-ui-carousel.mjs +27 -25
  438. package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
  439. package/fesm2020/ng-nest-ui-cascade.mjs +16 -15
  440. package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
  441. package/fesm2020/ng-nest-ui-checkbox.mjs +12 -11
  442. package/fesm2020/ng-nest-ui-collapse.mjs +17 -16
  443. package/fesm2020/ng-nest-ui-color-picker.mjs +16 -15
  444. package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
  445. package/fesm2020/ng-nest-ui-color.mjs +11 -10
  446. package/fesm2020/ng-nest-ui-comment.mjs +17 -16
  447. package/fesm2020/ng-nest-ui-container.mjs +35 -34
  448. package/fesm2020/ng-nest-ui-core.mjs +16 -15
  449. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  450. package/fesm2020/ng-nest-ui-crumb.mjs +11 -10
  451. package/fesm2020/ng-nest-ui-date-picker.mjs +216 -80
  452. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  453. package/fesm2020/ng-nest-ui-description.mjs +17 -16
  454. package/fesm2020/ng-nest-ui-dialog.mjs +256 -33
  455. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  456. package/fesm2020/ng-nest-ui-doc.mjs +8 -8
  457. package/fesm2020/ng-nest-ui-drawer.mjs +225 -20
  458. package/fesm2020/ng-nest-ui-drawer.mjs.map +1 -1
  459. package/fesm2020/ng-nest-ui-dropdown.mjs +13 -13
  460. package/fesm2020/ng-nest-ui-empty.mjs +11 -10
  461. package/fesm2020/ng-nest-ui-examples.mjs +7 -7
  462. package/fesm2020/ng-nest-ui-find.mjs +12 -11
  463. package/fesm2020/ng-nest-ui-form.mjs +17 -16
  464. package/fesm2020/ng-nest-ui-highlight.mjs +11 -10
  465. package/fesm2020/ng-nest-ui-i18n.mjs +14 -13
  466. package/fesm2020/ng-nest-ui-icon.mjs +14 -13
  467. package/fesm2020/ng-nest-ui-inner.mjs +10 -10
  468. package/fesm2020/ng-nest-ui-input-number.mjs +11 -10
  469. package/fesm2020/ng-nest-ui-input.mjs +21 -17
  470. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  471. package/fesm2020/ng-nest-ui-layout.mjs +17 -16
  472. package/fesm2020/ng-nest-ui-link.mjs +11 -10
  473. package/fesm2020/ng-nest-ui-list.mjs +17 -16
  474. package/fesm2020/ng-nest-ui-loading.mjs +11 -10
  475. package/fesm2020/ng-nest-ui-menu.mjs +17 -17
  476. package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
  477. package/fesm2020/ng-nest-ui-message-box.mjs +10 -10
  478. package/fesm2020/ng-nest-ui-message.mjs +14 -13
  479. package/fesm2020/ng-nest-ui-message.mjs.map +1 -1
  480. package/fesm2020/ng-nest-ui-notification.mjs +10 -10
  481. package/fesm2020/ng-nest-ui-outlet.mjs +8 -7
  482. package/fesm2020/ng-nest-ui-page-header.mjs +10 -10
  483. package/fesm2020/ng-nest-ui-pagination.mjs +12 -11
  484. package/fesm2020/ng-nest-ui-pattern.mjs +7 -7
  485. package/fesm2020/ng-nest-ui-popconfirm.mjs +10 -10
  486. package/fesm2020/ng-nest-ui-popover.mjs +13 -13
  487. package/fesm2020/ng-nest-ui-portal.mjs +16 -15
  488. package/fesm2020/ng-nest-ui-portal.mjs.map +1 -1
  489. package/fesm2020/ng-nest-ui-progress.mjs +234 -25
  490. package/fesm2020/ng-nest-ui-progress.mjs.map +1 -1
  491. package/fesm2020/ng-nest-ui-radio.mjs +12 -11
  492. package/fesm2020/ng-nest-ui-rate.mjs +12 -11
  493. package/fesm2020/ng-nest-ui-result.mjs +11 -11
  494. package/fesm2020/ng-nest-ui-ripple.mjs +11 -10
  495. package/fesm2020/ng-nest-ui-select.mjs +16 -15
  496. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  497. package/fesm2020/ng-nest-ui-skeleton.mjs +10 -10
  498. package/fesm2020/ng-nest-ui-slider-select.mjs +12 -11
  499. package/fesm2020/ng-nest-ui-slider.mjs +11 -10
  500. package/fesm2020/ng-nest-ui-statistic.mjs +17 -16
  501. package/fesm2020/ng-nest-ui-steps.mjs +30 -18
  502. package/fesm2020/ng-nest-ui-steps.mjs.map +1 -1
  503. package/fesm2020/ng-nest-ui-switch.mjs +12 -11
  504. package/fesm2020/ng-nest-ui-table.mjs +32 -31
  505. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  506. package/fesm2020/ng-nest-ui-tabs.mjs +20 -19
  507. package/fesm2020/ng-nest-ui-tag.mjs +12 -11
  508. package/fesm2020/ng-nest-ui-text-retract.mjs +11 -10
  509. package/fesm2020/ng-nest-ui-textarea.mjs +12 -11
  510. package/fesm2020/ng-nest-ui-theme.mjs +11 -10
  511. package/fesm2020/ng-nest-ui-time-ago.mjs +8 -7
  512. package/fesm2020/ng-nest-ui-time-picker.mjs +47 -30
  513. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  514. package/fesm2020/ng-nest-ui-time-range.mjs +8 -7
  515. package/fesm2020/ng-nest-ui-timeline.mjs +11 -10
  516. package/fesm2020/ng-nest-ui-tooltip.mjs +14 -13
  517. package/fesm2020/ng-nest-ui-transfer.mjs +10 -10
  518. package/fesm2020/ng-nest-ui-tree-file.mjs +12 -11
  519. package/fesm2020/ng-nest-ui-tree.mjs +17 -16
  520. package/fesm2020/ng-nest-ui-typography.mjs +11 -10
  521. package/fesm2020/ng-nest-ui-upload.mjs +14 -14
  522. package/layout/examples/en_US/default/flex/README.md +1 -1
  523. package/layout/examples/zh_CN/default/flex/README.md +1 -1
  524. package/message/message.property.d.ts +1 -1
  525. package/package.json +7 -7
  526. package/portal/portal.module.d.ts +1 -1
  527. package/portal/portal.service.d.ts +2 -3
  528. package/progress/examples/en_US/default/circle/README.md +6 -0
  529. package/progress/examples/en_US/default/dashboard/README.md +6 -0
  530. package/progress/examples/en_US/default/gradient/README.md +6 -0
  531. package/progress/examples/en_US/default/steps/README.md +6 -0
  532. package/progress/examples/en_US/default/subsection/README.md +6 -0
  533. package/progress/examples/zh_CN/default/circle/README.md +6 -0
  534. package/progress/examples/zh_CN/default/dashboard/README.md +6 -0
  535. package/progress/examples/zh_CN/default/gradient/README.md +6 -0
  536. package/progress/examples/zh_CN/default/steps/README.md +6 -0
  537. package/progress/examples/zh_CN/default/subsection/README.md +6 -0
  538. package/progress/progress.component.d.ts +31 -3
  539. package/progress/progress.property.d.ts +80 -5
  540. package/steps/examples/en_US/default/node-status/README.md +6 -0
  541. package/steps/examples/zh_CN/default/node-status/README.md +6 -0
  542. package/steps/steps.property.d.ts +7 -2
  543. package/style/core/index.scss +1 -0
  544. package/table/table.property.d.ts +1 -1
  545. package/time-picker/time-picker-frame.component.d.ts +1 -0
  546. package/time-picker/time-picker.component.d.ts +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-core.mjs","sources":["../../../../lib/ng-nest/ui/core/util/chunk.ts","../../../../lib/ng-nest/ui/core/util/guid.ts","../../../../lib/ng-nest/ui/core/util/group-by.ts","../../../../lib/ng-nest/ui/core/util/resize.ts","../../../../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/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/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/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":["export function chunk<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 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","export function groupBy<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 const XResize = (...element: Element[]): Observable<{ entry: ResizeObserverEntry; resizeObserver: ResizeObserver }> => {\r\n return new Observable(\r\n (\r\n x: Subscriber<{\r\n entry: ResizeObserverEntry;\r\n resizeObserver: ResizeObserver;\r\n }>\r\n ) => {\r\n const resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\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","/**\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 computedStyle(element: HTMLElement, style: string) {\r\n let computed = getComputedStyle(element);\r\n let value = computed[style as any];\r\n return value.replace(/px/g, '');\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 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\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 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_BASE_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_BASE_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_BASE_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_BASE_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_BASE_EASE_IN)]),\r\n transition(':leave', [animate(XDURATION_BASE_EASE_OUT, style({ opacity: 0 }))])\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\nexport const XIsString = XIsType('String');\r\nexport const XIsArray = XIsType('Array');\r\nexport const XIsNumber = XIsType('Number');\r\nexport const XIsBoolean = XIsType('Boolean');\r\nexport const XIsObject = XIsType('Object');\r\nexport const XIsNull = XIsType('Null');\r\nexport const XIsFunction = XIsType('Function');\r\nexport const XIsDate = XIsType('Date');\r\nexport const XIsRegExp = XIsType('RegExp');\r\nexport const XIsValue = (object: any) => XIsString(object) || XIsNumber(object) || XIsBoolean(object) || XIsDate(object);\r\nexport const XIsUndefined = (object: any) => typeof object === 'undefined';\r\nexport const XIsEmpty = (object: any) => typeof object === 'undefined' || object === null || object === '' || object.length === 0;\r\nexport const XIsValueArray = (object: any) => XIsArray(object) && object.length > 0 && !XIsObject(object[0]);\r\nexport const XIsObjectArray = (object: any) => XIsArray(object) && object.length > 0 && XIsObject(object[0]);\r\nexport const XIsObservable = (object: any) => isObservable(object);\r\nexport const XIsTemplateRef = (object: any) => {\r\n if (!XIsEmpty(object) && object.elementRef) return true;\r\n else return false;\r\n};\r\nexport const XIsXTemplate = (object: any) => XIsString(object) || XIsNumber(object) || XIsDate(object) || XIsTemplateRef(object);\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 selected?: boolean;\r\n // 禁用\r\n disabled?: 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(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 });\r\n }\r\n return value;\r\n}\r\n\r\nexport function XSetData<T>(data: XData<T>, unSubject: Subject<void>, toConvert = true, funcParam = 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 XAddSeconds(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setSeconds(dt.getSeconds() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMinutes(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setMinutes(dt.getMinutes() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddHours(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setHours(dt.getHours() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\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 dt.setMonth(dt.getMonth() + amount);\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 let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setFullYear(dt.getFullYear() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n","import { Renderer2 } from '@angular/core';\r\nimport { XAlign, XDirection, XIsEmpty, XJustify } from '../interfaces';\r\n\r\nexport function setFlex(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 if (order === 'desc') {\r\n return (b[prop] - a[prop]) as number;\r\n } else {\r\n return (a[prop] - b[prop]) as number;\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","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 { Injectable } from '@angular/core';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XStorageService {\r\n constructor() {}\r\n\r\n /**\r\n * 获取本地值\r\n */\r\n getLocal(key: string) {\r\n return JSON.parse(localStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置本地值\r\n */\r\n setLocal(key: string, value: any) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 获取当前会话的值\r\n */\r\n getSession(key: string) {\r\n return JSON.parse(sessionStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置当前会话值\r\n */\r\n setSession(key: string, value: any) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 移除本地值\r\n */\r\n removeLocal(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * 移除当前会话\r\n */\r\n removeSession(key: string) {\r\n sessionStorage.removeItem(key);\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} 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 col?: XColConfig;\r\n row?: XRowConfig;\r\n ripple?: XRippleConfig;\r\n link?: XLinkConfig;\r\n list?: XListConfig;\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 textarea?: XTextareaConfig;\r\n upload?: XUploadConfig;\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 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}\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}\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}\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\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}\r\n\r\nexport interface XDialogConfig {\r\n placement?: XPlace;\r\n offset?: string;\r\n width?: 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 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}\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 content?: string;\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 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}\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 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}\r\n\r\nexport interface XListConfig {}\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}\r\n\r\nexport interface XMenuConfig {\r\n size?: XSize;\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 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}\r\n\r\nexport interface XRadioConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XRateConfig {}\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}\r\n\r\nexport interface XSkeletonConfig {}\r\n\r\nexport interface XSliderConfig {\r\n animated?: XBoolean;\r\n size?: XSize;\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\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 rowSize?: XSize;\r\n}\r\n\r\nexport interface XTabsConfig {\r\n size?: XSize;\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}\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}\r\n\r\nexport interface XTreeConfig {\r\n spacing?: XNumber;\r\n nodeHeight?: XNumber;\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 XUploadConfig {}\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, Inject, RendererFactory2, Renderer2 } 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\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\r\n constructor(@Inject(DOCUMENT) private doc: any, private factory: RendererFactory2) {\r\n this.renderer2 = this.factory.createRenderer(null, null);\r\n this.declaration = getComputedStyle(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, Optional, 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 public themeService!: XThemeService;\r\n\r\n constructor(@Optional() themeService?: XThemeService, @Optional() @Inject(X_CONFIG) defaultConfig?: XConfig) {\r\n this.config = defaultConfig || {};\r\n if (themeService) {\r\n this.themeService = themeService;\r\n }\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"],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-core.mjs","sources":["../../../../lib/ng-nest/ui/core/util/chunk.ts","../../../../lib/ng-nest/ui/core/util/guid.ts","../../../../lib/ng-nest/ui/core/util/group-by.ts","../../../../lib/ng-nest/ui/core/util/resize.ts","../../../../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/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/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/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":["export function chunk<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 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","export function groupBy<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 const XResize = (...element: Element[]): Observable<{ entry: ResizeObserverEntry; resizeObserver: ResizeObserver }> => {\r\n return new Observable(\r\n (\r\n x: Subscriber<{\r\n entry: ResizeObserverEntry;\r\n resizeObserver: ResizeObserver;\r\n }>\r\n ) => {\r\n const resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\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","/**\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 computedStyle(element: HTMLElement, style: string) {\r\n let computed = getComputedStyle(element);\r\n let value = computed[style as any];\r\n return value.replace(/px/g, '');\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 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\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 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_BASE_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_BASE_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_BASE_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_BASE_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_BASE_EASE_IN)]),\r\n transition(':leave', [animate(XDURATION_BASE_EASE_OUT, style({ opacity: 0 }))])\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\nexport const XIsString = XIsType('String');\r\nexport const XIsArray = XIsType('Array');\r\nexport const XIsNumber = XIsType('Number');\r\nexport const XIsBoolean = XIsType('Boolean');\r\nexport const XIsObject = XIsType('Object');\r\nexport const XIsNull = XIsType('Null');\r\nexport const XIsFunction = XIsType('Function');\r\nexport const XIsDate = XIsType('Date');\r\nexport const XIsRegExp = XIsType('RegExp');\r\nexport const XIsValue = (object: any) => XIsString(object) || XIsNumber(object) || XIsBoolean(object) || XIsDate(object);\r\nexport const XIsUndefined = (object: any) => typeof object === 'undefined';\r\nexport const XIsEmpty = (object: any) => typeof object === 'undefined' || object === null || object === '' || object.length === 0;\r\nexport const XIsValueArray = (object: any) => XIsArray(object) && object.length > 0 && !XIsObject(object[0]);\r\nexport const XIsObjectArray = (object: any) => XIsArray(object) && object.length > 0 && XIsObject(object[0]);\r\nexport const XIsObservable = (object: any) => isObservable(object);\r\nexport const XIsTemplateRef = (object: any) => {\r\n if (!XIsEmpty(object) && object.elementRef) return true;\r\n else return false;\r\n};\r\nexport const XIsXTemplate = (object: any) => XIsString(object) || XIsNumber(object) || XIsDate(object) || XIsTemplateRef(object);\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 selected?: boolean;\r\n // 禁用\r\n disabled?: 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(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 });\r\n }\r\n return value;\r\n}\r\n\r\nexport function XSetData<T>(data: XData<T>, unSubject: Subject<void>, toConvert = true, funcParam = 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 XAddSeconds(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setSeconds(dt.getSeconds() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMinutes(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setMinutes(dt.getMinutes() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddHours(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setHours(dt.getHours() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\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 dt.setMonth(dt.getMonth() + amount);\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 let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setFullYear(dt.getFullYear() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n","import { Renderer2 } from '@angular/core';\r\nimport { XAlign, XDirection, XIsEmpty, XJustify } from '../interfaces';\r\n\r\nexport function setFlex(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 if (order === 'desc') {\r\n return (b[prop] - a[prop]) as number;\r\n } else {\r\n return (a[prop] - b[prop]) as number;\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","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 { Injectable } from '@angular/core';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XStorageService {\r\n constructor() {}\r\n\r\n /**\r\n * 获取本地值\r\n */\r\n getLocal(key: string) {\r\n return JSON.parse(localStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置本地值\r\n */\r\n setLocal(key: string, value: any) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 获取当前会话的值\r\n */\r\n getSession(key: string) {\r\n return JSON.parse(sessionStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置当前会话值\r\n */\r\n setSession(key: string, value: any) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 移除本地值\r\n */\r\n removeLocal(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * 移除当前会话\r\n */\r\n removeSession(key: string) {\r\n sessionStorage.removeItem(key);\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} 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 col?: XColConfig;\r\n row?: XRowConfig;\r\n ripple?: XRippleConfig;\r\n link?: XLinkConfig;\r\n list?: XListConfig;\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 textarea?: XTextareaConfig;\r\n upload?: XUploadConfig;\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 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}\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}\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}\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\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}\r\n\r\nexport interface XDialogConfig {\r\n placement?: XPlace;\r\n offset?: string;\r\n width?: 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 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 content?: string;\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 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}\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 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}\r\n\r\nexport interface XListConfig {}\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}\r\n\r\nexport interface XMenuConfig {\r\n size?: XSize;\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 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\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}\r\n\r\nexport interface XSkeletonConfig {}\r\n\r\nexport interface XSliderConfig {\r\n animated?: XBoolean;\r\n size?: XSize;\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\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 rowSize?: XSize;\r\n}\r\n\r\nexport interface XTabsConfig {\r\n size?: XSize;\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}\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}\r\n\r\nexport interface XTreeConfig {\r\n spacing?: XNumber;\r\n nodeHeight?: XNumber;\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 XUploadConfig {}\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, Inject, RendererFactory2, Renderer2 } 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\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\r\n constructor(@Inject(DOCUMENT) private doc: any, private factory: RendererFactory2) {\r\n this.renderer2 = this.factory.createRenderer(null, null);\r\n this.declaration = getComputedStyle(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, Optional, 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 public themeService!: XThemeService;\r\n\r\n constructor(@Optional() themeService?: XThemeService, @Optional() @Inject(X_CONFIG) defaultConfig?: XConfig) {\r\n this.config = defaultConfig || {};\r\n if (themeService) {\r\n this.themeService = themeService;\r\n }\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"],"mappings":"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"}