@ng-nest/ui 11.2.9 → 11.2.13

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 (639) hide show
  1. package/affix/affix.property.d.ts +2 -2
  2. package/alert/alert.property.d.ts +22 -12
  3. package/alert/ng-nest-ui-alert.metadata.json +1 -1
  4. package/auto-complete/auto-complete.property.d.ts +3 -3
  5. package/avatar/avatar.property.d.ts +6 -6
  6. package/back-top/back-top.property.d.ts +4 -4
  7. package/badge/badge.property.d.ts +3 -3
  8. package/base-form/base-form.component.d.ts +1 -1
  9. package/base-form/base-form.property.d.ts +10 -10
  10. package/border/ng-nest-ui-border.metadata.json +1 -1
  11. package/bundles/ng-nest-ui-affix.umd.js +10 -4
  12. package/bundles/ng-nest-ui-affix.umd.js.map +1 -1
  13. package/bundles/ng-nest-ui-affix.umd.min.js.map +1 -1
  14. package/bundles/ng-nest-ui-alert.umd.js +26 -12
  15. package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
  16. package/bundles/ng-nest-ui-alert.umd.min.js +2 -2
  17. package/bundles/ng-nest-ui-alert.umd.min.js.map +1 -1
  18. package/bundles/ng-nest-ui-anchor.umd.js +10 -4
  19. package/bundles/ng-nest-ui-anchor.umd.js.map +1 -1
  20. package/bundles/ng-nest-ui-anchor.umd.min.js.map +1 -1
  21. package/bundles/ng-nest-ui-auto-complete.umd.js +15 -8
  22. package/bundles/ng-nest-ui-auto-complete.umd.js.map +1 -1
  23. package/bundles/ng-nest-ui-auto-complete.umd.min.js +2 -2
  24. package/bundles/ng-nest-ui-auto-complete.umd.min.js.map +1 -1
  25. package/bundles/ng-nest-ui-avatar.umd.js +10 -4
  26. package/bundles/ng-nest-ui-avatar.umd.js.map +1 -1
  27. package/bundles/ng-nest-ui-avatar.umd.min.js.map +1 -1
  28. package/bundles/ng-nest-ui-back-top.umd.js +10 -4
  29. package/bundles/ng-nest-ui-back-top.umd.js.map +1 -1
  30. package/bundles/ng-nest-ui-back-top.umd.min.js.map +1 -1
  31. package/bundles/ng-nest-ui-badge.umd.js +10 -4
  32. package/bundles/ng-nest-ui-badge.umd.js.map +1 -1
  33. package/bundles/ng-nest-ui-badge.umd.min.js.map +1 -1
  34. package/bundles/ng-nest-ui-base-form.umd.js +10 -4
  35. package/bundles/ng-nest-ui-base-form.umd.js.map +1 -1
  36. package/bundles/ng-nest-ui-base-form.umd.min.js.map +1 -1
  37. package/bundles/ng-nest-ui-border.umd.js +1 -1
  38. package/bundles/ng-nest-ui-border.umd.js.map +1 -1
  39. package/bundles/ng-nest-ui-border.umd.min.js.map +1 -1
  40. package/bundles/ng-nest-ui-button.umd.js +11 -5
  41. package/bundles/ng-nest-ui-button.umd.js.map +1 -1
  42. package/bundles/ng-nest-ui-button.umd.min.js +1 -1
  43. package/bundles/ng-nest-ui-button.umd.min.js.map +1 -1
  44. package/bundles/ng-nest-ui-calendar.umd.js +16 -6
  45. package/bundles/ng-nest-ui-calendar.umd.js.map +1 -1
  46. package/bundles/ng-nest-ui-calendar.umd.min.js +1 -1
  47. package/bundles/ng-nest-ui-calendar.umd.min.js.map +1 -1
  48. package/bundles/ng-nest-ui-card.umd.js +10 -4
  49. package/bundles/ng-nest-ui-card.umd.js.map +1 -1
  50. package/bundles/ng-nest-ui-card.umd.min.js.map +1 -1
  51. package/bundles/ng-nest-ui-carousel.umd.js +10 -4
  52. package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
  53. package/bundles/ng-nest-ui-carousel.umd.min.js.map +1 -1
  54. package/bundles/ng-nest-ui-cascade.umd.js +10 -4
  55. package/bundles/ng-nest-ui-cascade.umd.js.map +1 -1
  56. package/bundles/ng-nest-ui-cascade.umd.min.js.map +1 -1
  57. package/bundles/ng-nest-ui-checkbox.umd.js +16 -9
  58. package/bundles/ng-nest-ui-checkbox.umd.js.map +1 -1
  59. package/bundles/ng-nest-ui-checkbox.umd.min.js +2 -2
  60. package/bundles/ng-nest-ui-checkbox.umd.min.js.map +1 -1
  61. package/bundles/ng-nest-ui-collapse.umd.js +10 -4
  62. package/bundles/ng-nest-ui-collapse.umd.js.map +1 -1
  63. package/bundles/ng-nest-ui-collapse.umd.min.js.map +1 -1
  64. package/bundles/ng-nest-ui-color-picker.umd.js +10 -4
  65. package/bundles/ng-nest-ui-color-picker.umd.js.map +1 -1
  66. package/bundles/ng-nest-ui-color-picker.umd.min.js.map +1 -1
  67. package/bundles/ng-nest-ui-color.umd.js +10 -4
  68. package/bundles/ng-nest-ui-color.umd.js.map +1 -1
  69. package/bundles/ng-nest-ui-color.umd.min.js.map +1 -1
  70. package/bundles/ng-nest-ui-comment.umd.js +16 -6
  71. package/bundles/ng-nest-ui-comment.umd.js.map +1 -1
  72. package/bundles/ng-nest-ui-comment.umd.min.js +2 -2
  73. package/bundles/ng-nest-ui-comment.umd.min.js.map +1 -1
  74. package/bundles/ng-nest-ui-container.umd.js +10 -4
  75. package/bundles/ng-nest-ui-container.umd.js.map +1 -1
  76. package/bundles/ng-nest-ui-container.umd.min.js.map +1 -1
  77. package/bundles/ng-nest-ui-core.umd.js +30 -8
  78. package/bundles/ng-nest-ui-core.umd.js.map +1 -1
  79. package/bundles/ng-nest-ui-core.umd.min.js +2 -2
  80. package/bundles/ng-nest-ui-core.umd.min.js.map +1 -1
  81. package/bundles/ng-nest-ui-crumb.umd.js +10 -4
  82. package/bundles/ng-nest-ui-crumb.umd.js.map +1 -1
  83. package/bundles/ng-nest-ui-crumb.umd.min.js.map +1 -1
  84. package/bundles/ng-nest-ui-date-picker.umd.js +16 -7
  85. package/bundles/ng-nest-ui-date-picker.umd.js.map +1 -1
  86. package/bundles/ng-nest-ui-date-picker.umd.min.js +1 -1
  87. package/bundles/ng-nest-ui-date-picker.umd.min.js.map +1 -1
  88. package/bundles/ng-nest-ui-dialog.umd.js +25 -12
  89. package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
  90. package/bundles/ng-nest-ui-dialog.umd.min.js +2 -2
  91. package/bundles/ng-nest-ui-dialog.umd.min.js.map +1 -1
  92. package/bundles/ng-nest-ui-drawer.umd.js +10 -4
  93. package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
  94. package/bundles/ng-nest-ui-drawer.umd.min.js.map +1 -1
  95. package/bundles/ng-nest-ui-dropdown.umd.js +10 -4
  96. package/bundles/ng-nest-ui-dropdown.umd.js.map +1 -1
  97. package/bundles/ng-nest-ui-dropdown.umd.min.js.map +1 -1
  98. package/bundles/ng-nest-ui-empty.umd.js +10 -4
  99. package/bundles/ng-nest-ui-empty.umd.js.map +1 -1
  100. package/bundles/ng-nest-ui-empty.umd.min.js.map +1 -1
  101. package/bundles/ng-nest-ui-find.umd.js +79 -12
  102. package/bundles/ng-nest-ui-find.umd.js.map +1 -1
  103. package/bundles/ng-nest-ui-find.umd.min.js +2 -2
  104. package/bundles/ng-nest-ui-find.umd.min.js.map +1 -1
  105. package/bundles/ng-nest-ui-form.umd.js +16 -9
  106. package/bundles/ng-nest-ui-form.umd.js.map +1 -1
  107. package/bundles/ng-nest-ui-form.umd.min.js +1 -1
  108. package/bundles/ng-nest-ui-form.umd.min.js.map +1 -1
  109. package/bundles/ng-nest-ui-highlight.umd.js +10 -4
  110. package/bundles/ng-nest-ui-highlight.umd.js.map +1 -1
  111. package/bundles/ng-nest-ui-highlight.umd.min.js.map +1 -1
  112. package/bundles/ng-nest-ui-i18n.umd.js +1 -1
  113. package/bundles/ng-nest-ui-i18n.umd.js.map +1 -1
  114. package/bundles/ng-nest-ui-i18n.umd.min.js +1 -1
  115. package/bundles/ng-nest-ui-i18n.umd.min.js.map +1 -1
  116. package/bundles/ng-nest-ui-icon.umd.js +10 -4
  117. package/bundles/ng-nest-ui-icon.umd.js.map +1 -1
  118. package/bundles/ng-nest-ui-icon.umd.min.js.map +1 -1
  119. package/bundles/ng-nest-ui-inner.umd.js +10 -4
  120. package/bundles/ng-nest-ui-inner.umd.js.map +1 -1
  121. package/bundles/ng-nest-ui-inner.umd.min.js.map +1 -1
  122. package/bundles/ng-nest-ui-input-number.umd.js +10 -4
  123. package/bundles/ng-nest-ui-input-number.umd.js.map +1 -1
  124. package/bundles/ng-nest-ui-input-number.umd.min.js.map +1 -1
  125. package/bundles/ng-nest-ui-input.umd.js +10 -4
  126. package/bundles/ng-nest-ui-input.umd.js.map +1 -1
  127. package/bundles/ng-nest-ui-input.umd.min.js.map +1 -1
  128. package/bundles/ng-nest-ui-layout.umd.js +10 -4
  129. package/bundles/ng-nest-ui-layout.umd.js.map +1 -1
  130. package/bundles/ng-nest-ui-layout.umd.min.js.map +1 -1
  131. package/bundles/ng-nest-ui-link.umd.js +10 -4
  132. package/bundles/ng-nest-ui-link.umd.js.map +1 -1
  133. package/bundles/ng-nest-ui-link.umd.min.js.map +1 -1
  134. package/bundles/ng-nest-ui-list.umd.js +10 -4
  135. package/bundles/ng-nest-ui-list.umd.js.map +1 -1
  136. package/bundles/ng-nest-ui-list.umd.min.js.map +1 -1
  137. package/bundles/ng-nest-ui-loading.umd.js +10 -4
  138. package/bundles/ng-nest-ui-loading.umd.js.map +1 -1
  139. package/bundles/ng-nest-ui-loading.umd.min.js.map +1 -1
  140. package/bundles/ng-nest-ui-menu.umd.js +22 -11
  141. package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
  142. package/bundles/ng-nest-ui-menu.umd.min.js +2 -2
  143. package/bundles/ng-nest-ui-menu.umd.min.js.map +1 -1
  144. package/bundles/ng-nest-ui-message-box.umd.js +37 -10
  145. package/bundles/ng-nest-ui-message-box.umd.js.map +1 -1
  146. package/bundles/ng-nest-ui-message-box.umd.min.js +1 -1
  147. package/bundles/ng-nest-ui-message-box.umd.min.js.map +1 -1
  148. package/bundles/ng-nest-ui-message.umd.js +10 -4
  149. package/bundles/ng-nest-ui-message.umd.js.map +1 -1
  150. package/bundles/ng-nest-ui-message.umd.min.js.map +1 -1
  151. package/bundles/ng-nest-ui-notification.umd.js +10 -4
  152. package/bundles/ng-nest-ui-notification.umd.js.map +1 -1
  153. package/bundles/ng-nest-ui-notification.umd.min.js.map +1 -1
  154. package/bundles/ng-nest-ui-outlet.umd.js +10 -4
  155. package/bundles/ng-nest-ui-outlet.umd.js.map +1 -1
  156. package/bundles/ng-nest-ui-outlet.umd.min.js.map +1 -1
  157. package/bundles/ng-nest-ui-page-header.umd.js +10 -4
  158. package/bundles/ng-nest-ui-page-header.umd.js.map +1 -1
  159. package/bundles/ng-nest-ui-page-header.umd.min.js.map +1 -1
  160. package/bundles/ng-nest-ui-pagination.umd.js +10 -4
  161. package/bundles/ng-nest-ui-pagination.umd.js.map +1 -1
  162. package/bundles/ng-nest-ui-pagination.umd.min.js.map +1 -1
  163. package/bundles/ng-nest-ui-popconfirm.umd.js +11 -5
  164. package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
  165. package/bundles/ng-nest-ui-popconfirm.umd.min.js +2 -2
  166. package/bundles/ng-nest-ui-popconfirm.umd.min.js.map +1 -1
  167. package/bundles/ng-nest-ui-popover.umd.js +10 -4
  168. package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
  169. package/bundles/ng-nest-ui-popover.umd.min.js.map +1 -1
  170. package/bundles/ng-nest-ui-portal.umd.js +10 -4
  171. package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
  172. package/bundles/ng-nest-ui-portal.umd.min.js.map +1 -1
  173. package/bundles/ng-nest-ui-progress.umd.js +10 -4
  174. package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
  175. package/bundles/ng-nest-ui-progress.umd.min.js.map +1 -1
  176. package/bundles/ng-nest-ui-radio.umd.js +11 -5
  177. package/bundles/ng-nest-ui-radio.umd.js.map +1 -1
  178. package/bundles/ng-nest-ui-radio.umd.min.js +1 -1
  179. package/bundles/ng-nest-ui-radio.umd.min.js.map +1 -1
  180. package/bundles/ng-nest-ui-rate.umd.js +10 -4
  181. package/bundles/ng-nest-ui-rate.umd.js.map +1 -1
  182. package/bundles/ng-nest-ui-rate.umd.min.js.map +1 -1
  183. package/bundles/ng-nest-ui-result.umd.js +18 -5
  184. package/bundles/ng-nest-ui-result.umd.js.map +1 -1
  185. package/bundles/ng-nest-ui-result.umd.min.js +1 -1
  186. package/bundles/ng-nest-ui-result.umd.min.js.map +1 -1
  187. package/bundles/ng-nest-ui-ripple.umd.js +11 -5
  188. package/bundles/ng-nest-ui-ripple.umd.js.map +1 -1
  189. package/bundles/ng-nest-ui-ripple.umd.min.js +2 -2
  190. package/bundles/ng-nest-ui-ripple.umd.min.js.map +1 -1
  191. package/bundles/ng-nest-ui-select.umd.js +12 -6
  192. package/bundles/ng-nest-ui-select.umd.js.map +1 -1
  193. package/bundles/ng-nest-ui-select.umd.min.js +1 -1
  194. package/bundles/ng-nest-ui-select.umd.min.js.map +1 -1
  195. package/bundles/ng-nest-ui-skeleton.umd.js +11 -5
  196. package/bundles/ng-nest-ui-skeleton.umd.js.map +1 -1
  197. package/bundles/ng-nest-ui-skeleton.umd.min.js +1 -1
  198. package/bundles/ng-nest-ui-skeleton.umd.min.js.map +1 -1
  199. package/bundles/ng-nest-ui-slider-select.umd.js +10 -4
  200. package/bundles/ng-nest-ui-slider-select.umd.js.map +1 -1
  201. package/bundles/ng-nest-ui-slider-select.umd.min.js.map +1 -1
  202. package/bundles/ng-nest-ui-slider.umd.js +10 -4
  203. package/bundles/ng-nest-ui-slider.umd.js.map +1 -1
  204. package/bundles/ng-nest-ui-slider.umd.min.js.map +1 -1
  205. package/bundles/ng-nest-ui-statistic.umd.js +10 -4
  206. package/bundles/ng-nest-ui-statistic.umd.js.map +1 -1
  207. package/bundles/ng-nest-ui-statistic.umd.min.js.map +1 -1
  208. package/bundles/ng-nest-ui-steps.umd.js +10 -4
  209. package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
  210. package/bundles/ng-nest-ui-steps.umd.min.js.map +1 -1
  211. package/bundles/ng-nest-ui-switch.umd.js +10 -4
  212. package/bundles/ng-nest-ui-switch.umd.js.map +1 -1
  213. package/bundles/ng-nest-ui-switch.umd.min.js.map +1 -1
  214. package/bundles/ng-nest-ui-table.umd.js +78 -26
  215. package/bundles/ng-nest-ui-table.umd.js.map +1 -1
  216. package/bundles/ng-nest-ui-table.umd.min.js +2 -2
  217. package/bundles/ng-nest-ui-table.umd.min.js.map +1 -1
  218. package/bundles/ng-nest-ui-tabs.umd.js +12 -6
  219. package/bundles/ng-nest-ui-tabs.umd.js.map +1 -1
  220. package/bundles/ng-nest-ui-tabs.umd.min.js +1 -1
  221. package/bundles/ng-nest-ui-tabs.umd.min.js.map +1 -1
  222. package/bundles/ng-nest-ui-tag.umd.js +10 -4
  223. package/bundles/ng-nest-ui-tag.umd.js.map +1 -1
  224. package/bundles/ng-nest-ui-tag.umd.min.js.map +1 -1
  225. package/bundles/ng-nest-ui-text-retract.umd.js +10 -4
  226. package/bundles/ng-nest-ui-text-retract.umd.js.map +1 -1
  227. package/bundles/ng-nest-ui-text-retract.umd.min.js.map +1 -1
  228. package/bundles/ng-nest-ui-textarea.umd.js +10 -4
  229. package/bundles/ng-nest-ui-textarea.umd.js.map +1 -1
  230. package/bundles/ng-nest-ui-textarea.umd.min.js.map +1 -1
  231. package/bundles/ng-nest-ui-theme.umd.js +10 -4
  232. package/bundles/ng-nest-ui-theme.umd.js.map +1 -1
  233. package/bundles/ng-nest-ui-theme.umd.min.js.map +1 -1
  234. package/bundles/ng-nest-ui-time-ago.umd.js +2 -0
  235. package/bundles/ng-nest-ui-time-ago.umd.js.map +1 -1
  236. package/bundles/ng-nest-ui-time-ago.umd.min.js +1 -1
  237. package/bundles/ng-nest-ui-time-ago.umd.min.js.map +1 -1
  238. package/bundles/ng-nest-ui-time-picker.umd.js +10 -4
  239. package/bundles/ng-nest-ui-time-picker.umd.js.map +1 -1
  240. package/bundles/ng-nest-ui-time-picker.umd.min.js.map +1 -1
  241. package/bundles/ng-nest-ui-time-range.umd.js +10 -4
  242. package/bundles/ng-nest-ui-time-range.umd.js.map +1 -1
  243. package/bundles/ng-nest-ui-time-range.umd.min.js.map +1 -1
  244. package/bundles/ng-nest-ui-timeline.umd.js +10 -4
  245. package/bundles/ng-nest-ui-timeline.umd.js.map +1 -1
  246. package/bundles/ng-nest-ui-timeline.umd.min.js.map +1 -1
  247. package/bundles/ng-nest-ui-tooltip.umd.js +10 -4
  248. package/bundles/ng-nest-ui-tooltip.umd.js.map +1 -1
  249. package/bundles/ng-nest-ui-tooltip.umd.min.js.map +1 -1
  250. package/bundles/ng-nest-ui-transfer.umd.js +14 -7
  251. package/bundles/ng-nest-ui-transfer.umd.js.map +1 -1
  252. package/bundles/ng-nest-ui-transfer.umd.min.js +1 -1
  253. package/bundles/ng-nest-ui-transfer.umd.min.js.map +1 -1
  254. package/bundles/ng-nest-ui-tree-file.umd.js +27 -5
  255. package/bundles/ng-nest-ui-tree-file.umd.js.map +1 -1
  256. package/bundles/ng-nest-ui-tree-file.umd.min.js +1 -1
  257. package/bundles/ng-nest-ui-tree-file.umd.min.js.map +1 -1
  258. package/bundles/ng-nest-ui-tree.umd.js +27 -14
  259. package/bundles/ng-nest-ui-tree.umd.js.map +1 -1
  260. package/bundles/ng-nest-ui-tree.umd.min.js +1 -1
  261. package/bundles/ng-nest-ui-tree.umd.min.js.map +1 -1
  262. package/bundles/ng-nest-ui-typography.umd.js +11 -6
  263. package/bundles/ng-nest-ui-typography.umd.js.map +1 -1
  264. package/bundles/ng-nest-ui-typography.umd.min.js +1 -1
  265. package/bundles/ng-nest-ui-typography.umd.min.js.map +1 -1
  266. package/bundles/ng-nest-ui-upload.umd.js +10 -4
  267. package/bundles/ng-nest-ui-upload.umd.js.map +1 -1
  268. package/bundles/ng-nest-ui-upload.umd.min.js.map +1 -1
  269. package/button/button.property.d.ts +14 -14
  270. package/button/buttons.component.d.ts +2 -2
  271. package/button/ng-nest-ui-button.metadata.json +1 -1
  272. package/calendar/calendar.property.d.ts +1 -1
  273. package/card/card.property.d.ts +1 -1
  274. package/carousel/carousel.property.d.ts +7 -7
  275. package/cascade/cascade.property.d.ts +1 -1
  276. package/checkbox/checkbox.component.d.ts +1 -0
  277. package/checkbox/checkbox.property.d.ts +4 -4
  278. package/checkbox/ng-nest-ui-checkbox.metadata.json +1 -1
  279. package/collapse/collapse.property.d.ts +3 -3
  280. package/color/color.property.d.ts +2 -2
  281. package/color-picker/color-picker.property.d.ts +1 -1
  282. package/comment/comment.component.d.ts +1 -0
  283. package/comment/comment.property.d.ts +1 -1
  284. package/comment/ng-nest-ui-comment.metadata.json +1 -1
  285. package/container/aside.component.d.ts +1 -1
  286. package/container/container.property.d.ts +3 -3
  287. package/container/header.component.d.ts +1 -1
  288. package/core/config/config.d.ts +7 -0
  289. package/core/ng-nest-ui-core.metadata.json +1 -1
  290. package/core/util/html.d.ts +4 -0
  291. package/core/util/public-api.d.ts +1 -0
  292. package/core/util/resize.d.ts +1 -1
  293. package/crumb/crumb.property.d.ts +2 -2
  294. package/date-picker/date-picker.property.d.ts +8 -8
  295. package/date-picker/ng-nest-ui-date-picker.metadata.json +1 -1
  296. package/date-picker/picker-date.component.d.ts +3 -2
  297. package/dialog/dialog.property.d.ts +16 -6
  298. package/dialog/ng-nest-ui-dialog.metadata.json +1 -1
  299. package/drawer/drawer.property.d.ts +3 -3
  300. package/dropdown/dropdown.property.d.ts +4 -4
  301. package/esm2015/affix/affix.property.js +1 -1
  302. package/esm2015/alert/alert.component.js +5 -4
  303. package/esm2015/alert/alert.module.js +3 -2
  304. package/esm2015/alert/alert.property.js +8 -1
  305. package/esm2015/anchor/anchor.component.js +1 -1
  306. package/esm2015/anchor/anchor.property.js +1 -1
  307. package/esm2015/auto-complete/auto-complete-portal.component.js +1 -1
  308. package/esm2015/auto-complete/auto-complete.component.js +6 -5
  309. package/esm2015/auto-complete/auto-complete.property.js +1 -1
  310. package/esm2015/avatar/avatar.property.js +1 -1
  311. package/esm2015/back-top/back-top.component.js +1 -1
  312. package/esm2015/back-top/back-top.property.js +1 -1
  313. package/esm2015/badge/badge.property.js +1 -1
  314. package/esm2015/base-form/base-form.component.js +1 -1
  315. package/esm2015/base-form/base-form.property.js +1 -1
  316. package/esm2015/border/border.component.js +2 -2
  317. package/esm2015/button/button.property.js +1 -1
  318. package/esm2015/button/buttons.component.js +1 -1
  319. package/esm2015/calendar/calendar.component.js +7 -3
  320. package/esm2015/calendar/calendar.property.js +1 -1
  321. package/esm2015/card/card.property.js +1 -1
  322. package/esm2015/carousel/carousel-panel.component.js +1 -1
  323. package/esm2015/carousel/carousel.component.js +1 -1
  324. package/esm2015/carousel/carousel.property.js +1 -1
  325. package/esm2015/cascade/cascade-portal.component.js +1 -1
  326. package/esm2015/cascade/cascade.component.js +1 -1
  327. package/esm2015/cascade/cascade.property.js +1 -1
  328. package/esm2015/checkbox/checkbox.component.js +7 -6
  329. package/esm2015/checkbox/checkbox.property.js +1 -1
  330. package/esm2015/collapse/collapse-panel.component.js +1 -1
  331. package/esm2015/collapse/collapse.property.js +1 -1
  332. package/esm2015/color/color.component.js +1 -1
  333. package/esm2015/color/color.property.js +1 -1
  334. package/esm2015/color-picker/color-picker-portal.component.js +1 -1
  335. package/esm2015/color-picker/color-picker.component.js +1 -1
  336. package/esm2015/color-picker/color-picker.property.js +1 -1
  337. package/esm2015/comment/comment-reply.component.js +1 -1
  338. package/esm2015/comment/comment.component.js +6 -2
  339. package/esm2015/comment/comment.property.js +2 -2
  340. package/esm2015/container/container.property.js +1 -1
  341. package/esm2015/core/config/config.js +1 -1
  342. package/esm2015/core/config/config.service.js +1 -1
  343. package/esm2015/core/theme/theme.service.js +1 -1
  344. package/esm2015/core/util/html.js +11 -0
  345. package/esm2015/core/util/public-api.js +2 -1
  346. package/esm2015/core/util/resize.js +2 -2
  347. package/esm2015/crumb/crumb.property.js +1 -1
  348. package/esm2015/date-picker/date-picker-portal.component.js +1 -1
  349. package/esm2015/date-picker/date-picker.component.js +1 -1
  350. package/esm2015/date-picker/date-picker.property.js +1 -1
  351. package/esm2015/date-picker/picker-date.component.js +6 -3
  352. package/esm2015/date-picker/picker-month.component.js +2 -2
  353. package/esm2015/date-picker/picker-year.component.js +1 -1
  354. package/esm2015/dialog/dialog.component.js +3 -3
  355. package/esm2015/dialog/dialog.module.js +3 -1
  356. package/esm2015/dialog/dialog.property.js +8 -2
  357. package/esm2015/drawer/drawer.component.js +1 -1
  358. package/esm2015/drawer/drawer.property.js +1 -1
  359. package/esm2015/dropdown/dropdown-portal.component.js +1 -1
  360. package/esm2015/dropdown/dropdown.component.js +1 -1
  361. package/esm2015/dropdown/dropdown.property.js +1 -1
  362. package/esm2015/find/find.component.js +43 -4
  363. package/esm2015/find/find.module.js +3 -1
  364. package/esm2015/find/find.property.js +19 -2
  365. package/esm2015/form/control.component.js +7 -7
  366. package/esm2015/form/form.component.js +2 -2
  367. package/esm2015/form/form.property.js +1 -1
  368. package/esm2015/highlight/highlight.component.js +1 -1
  369. package/esm2015/highlight/highlight.property.js +1 -1
  370. package/esm2015/i18n/i18n.directive.js +1 -1
  371. package/esm2015/i18n/i18n.service.js +1 -1
  372. package/esm2015/i18n/ng-nest-ui-i18n.js +1 -2
  373. package/esm2015/i18n/public-api.js +2 -1
  374. package/esm2015/icon/icon.component.js +1 -1
  375. package/esm2015/icon/icon.property.js +1 -1
  376. package/esm2015/inner/inner.property.js +1 -1
  377. package/esm2015/input/input.component.js +1 -1
  378. package/esm2015/input/input.property.js +1 -1
  379. package/esm2015/input-number/input-number.component.js +1 -1
  380. package/esm2015/layout/layout.property.js +1 -1
  381. package/esm2015/link/link.property.js +1 -1
  382. package/esm2015/list/list.component.js +1 -1
  383. package/esm2015/list/list.property.js +1 -1
  384. package/esm2015/loading/loading.component.js +1 -1
  385. package/esm2015/loading/loading.property.js +1 -1
  386. package/esm2015/menu/menu-node.component.js +8 -6
  387. package/esm2015/menu/menu.component.js +2 -2
  388. package/esm2015/menu/menu.property.js +2 -2
  389. package/esm2015/message-box/message-box.component.js +20 -7
  390. package/esm2015/message-box/message-box.property.js +1 -1
  391. package/esm2015/outlet/outlet.directive.js +1 -1
  392. package/esm2015/page-header/page-header.property.js +1 -1
  393. package/esm2015/pagination/pagination.component.js +1 -1
  394. package/esm2015/pagination/pagination.property.js +1 -1
  395. package/esm2015/popconfirm/popconfirm.component.js +2 -2
  396. package/esm2015/popconfirm/popconfirm.property.js +1 -1
  397. package/esm2015/popover/popover-portal.component.js +1 -1
  398. package/esm2015/popover/popover.directive.js +1 -1
  399. package/esm2015/popover/popover.property.js +1 -1
  400. package/esm2015/progress/progress.component.js +1 -1
  401. package/esm2015/progress/progress.property.js +1 -1
  402. package/esm2015/radio/radio.component.js +2 -2
  403. package/esm2015/radio/radio.property.js +1 -1
  404. package/esm2015/rate/rate.component.js +1 -1
  405. package/esm2015/rate/rate.property.js +2 -2
  406. package/esm2015/result/result.component.js +5 -2
  407. package/esm2015/result/result.property.js +1 -1
  408. package/esm2015/ripple/ripple.directive.js +2 -2
  409. package/esm2015/ripple/ripple.property.js +1 -1
  410. package/esm2015/select/select-portal.component.js +1 -1
  411. package/esm2015/select/select.component.js +4 -4
  412. package/esm2015/select/select.property.js +1 -1
  413. package/esm2015/skeleton/skeleton.component.js +2 -2
  414. package/esm2015/skeleton/skeleton.property.js +1 -1
  415. package/esm2015/slider/slider.component.js +1 -1
  416. package/esm2015/slider/slider.property.js +1 -1
  417. package/esm2015/slider-select/slider-select.component.js +1 -1
  418. package/esm2015/slider-select/slider-select.property.js +1 -1
  419. package/esm2015/statistic/countdown.component.js +1 -1
  420. package/esm2015/statistic/statistic.property.js +1 -1
  421. package/esm2015/steps/steps.property.js +1 -1
  422. package/esm2015/switch/switch.component.js +1 -1
  423. package/esm2015/table/table-body.component.js +19 -9
  424. package/esm2015/table/table-foot.component.js +7 -7
  425. package/esm2015/table/table-head.component.js +13 -9
  426. package/esm2015/table/table.component.js +10 -3
  427. package/esm2015/table/table.property.js +8 -3
  428. package/esm2015/tabs/tab-content.component.js +1 -1
  429. package/esm2015/tabs/tab.component.js +1 -1
  430. package/esm2015/tabs/tabs.component.js +3 -3
  431. package/esm2015/tabs/tabs.property.js +1 -1
  432. package/esm2015/tag/tag.property.js +1 -1
  433. package/esm2015/text-retract/text-retract.component.js +1 -1
  434. package/esm2015/text-retract/text-retract.property.js +1 -1
  435. package/esm2015/textarea/textarea.component.js +1 -1
  436. package/esm2015/textarea/textarea.property.js +1 -1
  437. package/esm2015/theme/theme.property.js +1 -1
  438. package/esm2015/time-ago/time-ago.pipe.js +3 -1
  439. package/esm2015/time-picker/time-picker-frame.component.js +1 -1
  440. package/esm2015/time-picker/time-picker-portal.component.js +1 -1
  441. package/esm2015/time-picker/time-picker.component.js +2 -2
  442. package/esm2015/time-picker/time-picker.property.js +1 -1
  443. package/esm2015/timeline/timeline.property.js +1 -1
  444. package/esm2015/tooltip/tooltip-portal.component.js +1 -1
  445. package/esm2015/tooltip/tooltip.directive.js +1 -1
  446. package/esm2015/tooltip/tooltip.property.js +1 -1
  447. package/esm2015/transfer/transfer.component.js +5 -4
  448. package/esm2015/transfer/transfer.property.js +1 -1
  449. package/esm2015/tree/tree-node.component.js +10 -7
  450. package/esm2015/tree/tree.component.js +2 -2
  451. package/esm2015/tree/tree.property.js +3 -2
  452. package/esm2015/tree-file/tree-file.component.js +10 -2
  453. package/esm2015/tree-file/tree-file.property.js +1 -1
  454. package/esm2015/typography/typography.component.js +2 -3
  455. package/esm2015/typography/typography.property.js +1 -1
  456. package/esm2015/upload/upload-portal.component.js +1 -1
  457. package/esm2015/upload/upload.component.js +1 -1
  458. package/esm2015/upload/upload.property.js +1 -1
  459. package/fesm2015/ng-nest-ui-affix.js.map +1 -1
  460. package/fesm2015/ng-nest-ui-alert.js +14 -5
  461. package/fesm2015/ng-nest-ui-alert.js.map +1 -1
  462. package/fesm2015/ng-nest-ui-anchor.js.map +1 -1
  463. package/fesm2015/ng-nest-ui-auto-complete.js +5 -4
  464. package/fesm2015/ng-nest-ui-auto-complete.js.map +1 -1
  465. package/fesm2015/ng-nest-ui-avatar.js.map +1 -1
  466. package/fesm2015/ng-nest-ui-back-top.js.map +1 -1
  467. package/fesm2015/ng-nest-ui-badge.js.map +1 -1
  468. package/fesm2015/ng-nest-ui-base-form.js.map +1 -1
  469. package/fesm2015/ng-nest-ui-border.js +1 -1
  470. package/fesm2015/ng-nest-ui-border.js.map +1 -1
  471. package/fesm2015/ng-nest-ui-button.js +1 -1
  472. package/fesm2015/ng-nest-ui-button.js.map +1 -1
  473. package/fesm2015/ng-nest-ui-calendar.js +6 -2
  474. package/fesm2015/ng-nest-ui-calendar.js.map +1 -1
  475. package/fesm2015/ng-nest-ui-card.js.map +1 -1
  476. package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
  477. package/fesm2015/ng-nest-ui-cascade.js.map +1 -1
  478. package/fesm2015/ng-nest-ui-checkbox.js +6 -5
  479. package/fesm2015/ng-nest-ui-checkbox.js.map +1 -1
  480. package/fesm2015/ng-nest-ui-collapse.js.map +1 -1
  481. package/fesm2015/ng-nest-ui-color-picker.js.map +1 -1
  482. package/fesm2015/ng-nest-ui-color.js.map +1 -1
  483. package/fesm2015/ng-nest-ui-comment.js +6 -2
  484. package/fesm2015/ng-nest-ui-comment.js.map +1 -1
  485. package/fesm2015/ng-nest-ui-container.js.map +1 -1
  486. package/fesm2015/ng-nest-ui-core.js +13 -2
  487. package/fesm2015/ng-nest-ui-core.js.map +1 -1
  488. package/fesm2015/ng-nest-ui-crumb.js.map +1 -1
  489. package/fesm2015/ng-nest-ui-date-picker.js +6 -3
  490. package/fesm2015/ng-nest-ui-date-picker.js.map +1 -1
  491. package/fesm2015/ng-nest-ui-dialog.js +12 -4
  492. package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
  493. package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
  494. package/fesm2015/ng-nest-ui-dropdown.js.map +1 -1
  495. package/fesm2015/ng-nest-ui-find.js +62 -4
  496. package/fesm2015/ng-nest-ui-find.js.map +1 -1
  497. package/fesm2015/ng-nest-ui-form.js +7 -6
  498. package/fesm2015/ng-nest-ui-form.js.map +1 -1
  499. package/fesm2015/ng-nest-ui-highlight.js.map +1 -1
  500. package/fesm2015/ng-nest-ui-i18n.js +1 -1
  501. package/fesm2015/ng-nest-ui-i18n.js.map +1 -1
  502. package/fesm2015/ng-nest-ui-icon.js.map +1 -1
  503. package/fesm2015/ng-nest-ui-inner.js.map +1 -1
  504. package/fesm2015/ng-nest-ui-input-number.js.map +1 -1
  505. package/fesm2015/ng-nest-ui-input.js.map +1 -1
  506. package/fesm2015/ng-nest-ui-layout.js.map +1 -1
  507. package/fesm2015/ng-nest-ui-link.js.map +1 -1
  508. package/fesm2015/ng-nest-ui-list.js.map +1 -1
  509. package/fesm2015/ng-nest-ui-loading.js.map +1 -1
  510. package/fesm2015/ng-nest-ui-menu.js +10 -7
  511. package/fesm2015/ng-nest-ui-menu.js.map +1 -1
  512. package/fesm2015/ng-nest-ui-message-box.js +19 -6
  513. package/fesm2015/ng-nest-ui-message-box.js.map +1 -1
  514. package/fesm2015/ng-nest-ui-outlet.js.map +1 -1
  515. package/fesm2015/ng-nest-ui-page-header.js.map +1 -1
  516. package/fesm2015/ng-nest-ui-pagination.js.map +1 -1
  517. package/fesm2015/ng-nest-ui-popconfirm.js +1 -1
  518. package/fesm2015/ng-nest-ui-popconfirm.js.map +1 -1
  519. package/fesm2015/ng-nest-ui-popover.js.map +1 -1
  520. package/fesm2015/ng-nest-ui-progress.js.map +1 -1
  521. package/fesm2015/ng-nest-ui-radio.js +1 -1
  522. package/fesm2015/ng-nest-ui-radio.js.map +1 -1
  523. package/fesm2015/ng-nest-ui-rate.js.map +1 -1
  524. package/fesm2015/ng-nest-ui-result.js +4 -1
  525. package/fesm2015/ng-nest-ui-result.js.map +1 -1
  526. package/fesm2015/ng-nest-ui-ripple.js +1 -1
  527. package/fesm2015/ng-nest-ui-ripple.js.map +1 -1
  528. package/fesm2015/ng-nest-ui-select.js +3 -3
  529. package/fesm2015/ng-nest-ui-select.js.map +1 -1
  530. package/fesm2015/ng-nest-ui-skeleton.js +1 -1
  531. package/fesm2015/ng-nest-ui-skeleton.js.map +1 -1
  532. package/fesm2015/ng-nest-ui-slider-select.js.map +1 -1
  533. package/fesm2015/ng-nest-ui-slider.js.map +1 -1
  534. package/fesm2015/ng-nest-ui-statistic.js.map +1 -1
  535. package/fesm2015/ng-nest-ui-steps.js.map +1 -1
  536. package/fesm2015/ng-nest-ui-switch.js.map +1 -1
  537. package/fesm2015/ng-nest-ui-table.js +50 -21
  538. package/fesm2015/ng-nest-ui-table.js.map +1 -1
  539. package/fesm2015/ng-nest-ui-tabs.js +2 -2
  540. package/fesm2015/ng-nest-ui-tabs.js.map +1 -1
  541. package/fesm2015/ng-nest-ui-tag.js.map +1 -1
  542. package/fesm2015/ng-nest-ui-text-retract.js.map +1 -1
  543. package/fesm2015/ng-nest-ui-textarea.js.map +1 -1
  544. package/fesm2015/ng-nest-ui-theme.js.map +1 -1
  545. package/fesm2015/ng-nest-ui-time-ago.js +2 -0
  546. package/fesm2015/ng-nest-ui-time-ago.js.map +1 -1
  547. package/fesm2015/ng-nest-ui-time-picker.js.map +1 -1
  548. package/fesm2015/ng-nest-ui-timeline.js.map +1 -1
  549. package/fesm2015/ng-nest-ui-tooltip.js.map +1 -1
  550. package/fesm2015/ng-nest-ui-transfer.js +4 -3
  551. package/fesm2015/ng-nest-ui-transfer.js.map +1 -1
  552. package/fesm2015/ng-nest-ui-tree-file.js +9 -1
  553. package/fesm2015/ng-nest-ui-tree-file.js.map +1 -1
  554. package/fesm2015/ng-nest-ui-tree.js +12 -7
  555. package/fesm2015/ng-nest-ui-tree.js.map +1 -1
  556. package/fesm2015/ng-nest-ui-typography.js +1 -2
  557. package/fesm2015/ng-nest-ui-typography.js.map +1 -1
  558. package/fesm2015/ng-nest-ui-upload.js.map +1 -1
  559. package/find/find.component.d.ts +3 -0
  560. package/find/find.property.d.ts +53 -9
  561. package/find/ng-nest-ui-find.metadata.json +1 -1
  562. package/form/control.component.d.ts +2 -3
  563. package/form/form.property.d.ts +5 -5
  564. package/form/ng-nest-ui-form.metadata.json +1 -1
  565. package/highlight/highlight.property.d.ts +2 -2
  566. package/i18n/ng-nest-ui-i18n.d.ts +0 -1
  567. package/i18n/ng-nest-ui-i18n.metadata.json +1 -1
  568. package/i18n/public-api.d.ts +1 -0
  569. package/icon/icon.component.d.ts +2 -2
  570. package/icon/icon.property.d.ts +6 -6
  571. package/inner/inner.property.d.ts +1 -1
  572. package/input/input.property.d.ts +4 -4
  573. package/layout/layout.property.d.ts +11 -11
  574. package/link/link.property.d.ts +3 -3
  575. package/list/list.property.d.ts +8 -8
  576. package/list/ng-nest-ui-list.metadata.json +1 -1
  577. package/loading/loading.property.d.ts +6 -6
  578. package/menu/menu-node.component.d.ts +2 -3
  579. package/menu/menu.property.d.ts +6 -6
  580. package/menu/ng-nest-ui-menu.metadata.json +1 -1
  581. package/message-box/message-box.component.d.ts +3 -0
  582. package/message-box/message-box.property.d.ts +4 -3
  583. package/message-box/ng-nest-ui-message-box.metadata.json +1 -1
  584. package/outlet/outlet.directive.d.ts +1 -1
  585. package/package.json +1 -1
  586. package/page-header/page-header.property.d.ts +4 -4
  587. package/pagination/pagination.property.d.ts +2 -2
  588. package/popconfirm/ng-nest-ui-popconfirm.metadata.json +1 -1
  589. package/popconfirm/popconfirm.component.d.ts +2 -2
  590. package/popconfirm/popconfirm.property.d.ts +7 -7
  591. package/popover/popover.property.d.ts +4 -4
  592. package/progress/progress.property.d.ts +2 -2
  593. package/radio/ng-nest-ui-radio.metadata.json +1 -1
  594. package/radio/radio.property.d.ts +3 -3
  595. package/rate/rate.property.d.ts +3 -2
  596. package/result/ng-nest-ui-result.metadata.json +1 -1
  597. package/result/result.component.d.ts +1 -0
  598. package/result/result.property.d.ts +3 -3
  599. package/ripple/ripple.property.d.ts +2 -2
  600. package/select/ng-nest-ui-select.metadata.json +1 -1
  601. package/select/select.property.d.ts +5 -5
  602. package/skeleton/ng-nest-ui-skeleton.metadata.json +1 -1
  603. package/skeleton/skeleton.property.d.ts +2 -2
  604. package/slider/slider.property.d.ts +6 -6
  605. package/slider-select/slider-select.property.d.ts +1 -1
  606. package/statistic/statistic.property.d.ts +1 -1
  607. package/steps/steps.property.d.ts +1 -1
  608. package/style/core/index.scss +1 -1
  609. package/style/directives/index.scss +2 -0
  610. package/style/directives/ripple/index.scss +6 -0
  611. package/style/directives/ripple/mixin.scss +37 -0
  612. package/style/directives/ripple/param.scss +3 -0
  613. package/table/ng-nest-ui-table.metadata.json +1 -1
  614. package/table/table-body.component.d.ts +6 -4
  615. package/table/table-foot.component.d.ts +2 -3
  616. package/table/table-head.component.d.ts +3 -3
  617. package/table/table.component.d.ts +1 -0
  618. package/table/table.property.d.ts +22 -12
  619. package/tabs/ng-nest-ui-tabs.metadata.json +1 -1
  620. package/tabs/tabs.property.d.ts +5 -5
  621. package/tag/tag.property.d.ts +3 -3
  622. package/text-retract/text-retract.property.d.ts +2 -2
  623. package/textarea/textarea.property.d.ts +2 -2
  624. package/theme/theme.property.d.ts +2 -2
  625. package/time-ago/time-ago.pipe.d.ts +1 -1
  626. package/time-picker/time-picker.property.d.ts +2 -2
  627. package/timeline/timeline.property.d.ts +5 -5
  628. package/tooltip/tooltip.property.d.ts +4 -4
  629. package/transfer/transfer.component.d.ts +1 -1
  630. package/transfer/transfer.property.d.ts +4 -4
  631. package/tree/ng-nest-ui-tree.metadata.json +1 -1
  632. package/tree/tree-node.component.d.ts +3 -3
  633. package/tree/tree.property.d.ts +12 -13
  634. package/tree-file/ng-nest-ui-tree-file.metadata.json +1 -1
  635. package/tree-file/tree-file.component.d.ts +3 -0
  636. package/tree-file/tree-file.property.d.ts +2 -2
  637. package/typography/typography.property.d.ts +1 -1
  638. package/upload/upload.property.d.ts +5 -5
  639. package/style/core/directive.scss +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-core.js","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/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/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 ResizeObserver from 'resize-observer-polyfill';\r\nimport { 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","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, state, 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(-100%)',\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(-100%)',\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(100%)',\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(100%)',\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 { 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} 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 dialog?: XDialogConfig;\r\n drawer?: XDrawerConfig;\r\n dropdown?: XDropdownConfig;\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 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 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}\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}\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}\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 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 XEmptyConfig {\r\n content?: string;\r\n}\r\n\r\nexport interface XFindConfig {\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}\r\n\r\nexport interface XInputNumberConfig {}\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\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}\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}\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 virtualScroll?: boolean;\r\n rowHeight?: XNumber;\r\n itemSize?: XNumber;\r\n bordered?: XNumber;\r\n allowSelectRow?: XBoolean;\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 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}\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.js","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/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\nimport ResizeObserver from 'resize-observer-polyfill';\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, state, 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(-100%)',\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(-100%)',\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(100%)',\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(100%)',\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 { 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} 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 dialog?: XDialogConfig;\r\n drawer?: XDrawerConfig;\r\n dropdown?: XDropdownConfig;\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 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}\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}\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}\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 XEmptyConfig {\r\n content?: string;\r\n}\r\n\r\nexport interface XFindConfig {\r\n columnLabel?: string;\r\n dialogTitle?: string;\r\n dialogCheckboxLabel?: string;\r\n dialogCheckboxWidth?: number;\r\n dialogEmptyContent?: string;\r\n dialogButtonsCenter?: XBoolean;\r\n tableIndex?: number;\r\n tableSize?: number;\r\n tableLoading?: XBoolean;\r\n tableVirtualScroll?: boolean;\r\n tableRowHeight?: XNumber;\r\n treeExpandedLevel?: XNumber;\r\n}\r\n\r\nexport interface XFormConfig {\r\n space?: XNumber;\r\n labelSuffix?: string;\r\n width?: string;\r\n}\r\n\r\nexport interface XHighlightConfig {}\r\n\r\nexport interface XIconConfig {\r\n href?: string;\r\n}\r\n\r\nexport interface XInnerConfig {\r\n padding?: string;\r\n}\r\n\r\nexport interface XInputConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n}\r\n\r\nexport interface XInputNumberConfig {}\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\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}\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}\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 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 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}\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 +1 @@
1
- {"version":3,"file":"ng-nest-ui-crumb.js","sources":["../../../../lib/ng-nest/ui/crumb/crumb.property.ts","../../../../lib/ng-nest/ui/crumb/crumb.component.ts","../../../../lib/ng-nest/ui/crumb/crumb.module.ts","../../../../lib/ng-nest/ui/crumb/ng-nest-ui-crumb.ts"],"sourcesContent":["import { XData, XProperty, XDataConvert, XIdentityProperty, XTemplate, XWithConfig } from '@ng-nest/ui/core';\r\nimport { TemplateRef, Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Crumb\r\n * @selector x-crumb\r\n * @decorator component\r\n */\r\nexport const XCrumbPrefix = 'x-crumb';\r\nconst X_CONFIG_NAME = 'crumb';\r\n\r\n/**\r\n * Crumb Property\r\n */\r\n@Component({ template: '' })\r\nexport class XCrumbProperty extends XProperty {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XCrumbNode> = [];\r\n /**\r\n * @zh_CN 节点自定义模板\r\n * @en_US Node custom template\r\n */\r\n @Input() nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 分隔符\r\n * @en_US Separator\r\n */\r\n @Input() @XWithConfig<XTemplate>(X_CONFIG_NAME, '/') separator: XTemplate;\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeClick = new EventEmitter<XCrumbNodeClick>();\r\n}\r\n\r\n/**\r\n * @zh_CN Crumb 数据对象\r\n * @en_US Crumb data object\r\n */\r\nexport interface XCrumbNode extends XIdentityProperty {\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 自定义数据属性\r\n * @en_US Custom data attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN Crumb 点击返回的对象\r\n * @en_US Crumb Click to return the object\r\n */\r\nexport interface XCrumbNodeClick {\r\n /**\r\n * @zh_CN 事件\r\n * @en_US event\r\n */\r\n event: Event;\r\n /**\r\n * @zh_CN 点击的节点数据\r\n * @en_US Clicked node data\r\n */\r\n node: XCrumbNode;\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n ChangeDetectorRef,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XCrumbPrefix, XCrumbNode, XCrumbProperty } from './crumb.property';\r\nimport { XIsChange, XSetData, XConfigService } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XCrumbPrefix}`,\r\n templateUrl: './crumb.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCrumbComponent extends XCrumbProperty implements OnChanges, OnDestroy {\r\n nodes: XCrumbNode[] = [];\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(private cdr: ChangeDetectorRef, public configService: XConfigService) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n action(type: string, option: XCrumbNode, event: Event) {\r\n switch (type) {\r\n case 'click':\r\n this.nodeClick.emit({\r\n event: event,\r\n node: option\r\n });\r\n break;\r\n }\r\n }\r\n\r\n trackByNode(index: number, item: XCrumbNode) {\r\n return item.id;\r\n }\r\n\r\n private setData() {\r\n XSetData<XCrumbNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XCrumbComponent } from './crumb.component';\r\nimport { XLinkModule } from '@ng-nest/ui/link';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XCrumbProperty } from './crumb.property';\r\n\r\n@NgModule({\r\n declarations: [XCrumbComponent, XCrumbProperty],\r\n exports: [XCrumbComponent],\r\n imports: [CommonModule, XLinkModule, XOutletModule]\r\n})\r\nexport class XCrumbModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAGA;;;;;MAKa,YAAY,GAAG,UAAU;AACtC,MAAM,aAAa,GAAG,OAAO,CAAC;AAE9B;;;MAIa,cAAe,SAAQ,SAAS;IAD7C;;;;;;QAM2B,SAAI,GAAsB,EAAE,CAAC;;;;;QAe5C,cAAS,GAAG,IAAI,YAAY,EAAmB,CAAC;KAC3D;;;YAtBA,SAAS,SAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;;;mBAMxB,KAAK;sBAKL,KAAK;wBAKL,KAAK;wBAKL,MAAM;;AAfkB;IAAf,YAAY,EAAE;;4CAA8B;AAUD;IAA3C,WAAW,CAAY,aAAa,EAAE,GAAG,CAAC;;iDAAsB;;MCV/D,eAAgB,SAAQ,cAAc;IAIjD,YAAoB,GAAsB,EAAS,aAA6B;QAC9E,KAAK,EAAE,CAAC;QADU,QAAG,GAAH,GAAG,CAAmB;QAAS,kBAAa,GAAb,aAAa,CAAgB;QAHhF,UAAK,GAAiB,EAAE,CAAC;QACjB,eAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;KAIxC;IAED,WAAW,CAAC,OAAsB;QAChC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;KAC3C;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KAC/B;IAED,MAAM,CAAC,IAAY,EAAE,MAAkB,EAAE,KAAY;QACnD,QAAQ,IAAI;YACV,KAAK,OAAO;gBACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClB,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,MAAM;iBACb,CAAC,CAAC;gBACH,MAAM;SACT;KACF;IAED,WAAW,CAAC,KAAa,EAAE,IAAgB;QACzC,OAAO,IAAI,CAAC,EAAE,CAAC;KAChB;IAEO,OAAO;QACb,QAAQ,CAAa,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC1B,CAAC,CAAC;KACJ;;;YA5CF,SAAS,SAAC;gBACT,QAAQ,EAAE,GAAG,YAAY,EAAE;gBAC3B,osBAAqC;gBAErC,aAAa,EAAE,iBAAiB,CAAC,IAAI;gBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;;YAbC,iBAAiB;YAIW,cAAc;;;MCE/B,YAAY;;;YALxB,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;gBAC/C,OAAO,EAAE,CAAC,eAAe,CAAC;gBAC1B,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC;aACpD;;;ACXD;;;;;;"}
1
+ {"version":3,"file":"ng-nest-ui-crumb.js","sources":["../../../../lib/ng-nest/ui/crumb/crumb.property.ts","../../../../lib/ng-nest/ui/crumb/crumb.component.ts","../../../../lib/ng-nest/ui/crumb/crumb.module.ts","../../../../lib/ng-nest/ui/crumb/ng-nest-ui-crumb.ts"],"sourcesContent":["import { XData, XProperty, XDataConvert, XIdentityProperty, XTemplate, XWithConfig } from '@ng-nest/ui/core';\r\nimport { TemplateRef, Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Crumb\r\n * @selector x-crumb\r\n * @decorator component\r\n */\r\nexport const XCrumbPrefix = 'x-crumb';\r\nconst X_CONFIG_NAME = 'crumb';\r\n\r\n/**\r\n * Crumb Property\r\n */\r\n@Component({ template: '' })\r\nexport class XCrumbProperty extends XProperty {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XCrumbNode> = [];\r\n /**\r\n * @zh_CN 节点自定义模板\r\n * @en_US Node custom template\r\n */\r\n @Input() nodeTpl!: TemplateRef<any>;\r\n /**\r\n * @zh_CN 分隔符\r\n * @en_US Separator\r\n */\r\n @Input() @XWithConfig<XTemplate>(X_CONFIG_NAME, '/') separator?: XTemplate;\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeClick = new EventEmitter<XCrumbNodeClick>();\r\n}\r\n\r\n/**\r\n * @zh_CN Crumb 数据对象\r\n * @en_US Crumb data object\r\n */\r\nexport interface XCrumbNode extends XIdentityProperty {\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n disabled?: boolean;\r\n /**\r\n * @zh_CN 自定义数据属性\r\n * @en_US Custom data attributes\r\n */\r\n [property: string]: any;\r\n}\r\n\r\n/**\r\n * @zh_CN Crumb 点击返回的对象\r\n * @en_US Crumb Click to return the object\r\n */\r\nexport interface XCrumbNodeClick {\r\n /**\r\n * @zh_CN 事件\r\n * @en_US event\r\n */\r\n event: Event;\r\n /**\r\n * @zh_CN 点击的节点数据\r\n * @en_US Clicked node data\r\n */\r\n node: XCrumbNode;\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n SimpleChanges,\r\n ChangeDetectorRef,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XCrumbPrefix, XCrumbNode, XCrumbProperty } from './crumb.property';\r\nimport { XIsChange, XSetData, XConfigService } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XCrumbPrefix}`,\r\n templateUrl: './crumb.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCrumbComponent extends XCrumbProperty implements OnChanges, OnDestroy {\r\n nodes: XCrumbNode[] = [];\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(private cdr: ChangeDetectorRef, public configService: XConfigService) {\r\n super();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.data) && this.setData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n action(type: string, option: XCrumbNode, event: Event) {\r\n switch (type) {\r\n case 'click':\r\n this.nodeClick.emit({\r\n event: event,\r\n node: option\r\n });\r\n break;\r\n }\r\n }\r\n\r\n trackByNode(index: number, item: XCrumbNode) {\r\n return item.id;\r\n }\r\n\r\n private setData() {\r\n XSetData<XCrumbNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XCrumbComponent } from './crumb.component';\r\nimport { XLinkModule } from '@ng-nest/ui/link';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XCrumbProperty } from './crumb.property';\r\n\r\n@NgModule({\r\n declarations: [XCrumbComponent, XCrumbProperty],\r\n exports: [XCrumbComponent],\r\n imports: [CommonModule, XLinkModule, XOutletModule]\r\n})\r\nexport class XCrumbModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAGA;;;;;MAKa,YAAY,GAAG,UAAU;AACtC,MAAM,aAAa,GAAG,OAAO,CAAC;AAE9B;;;MAIa,cAAe,SAAQ,SAAS;IAD7C;;;;;;QAM2B,SAAI,GAAsB,EAAE,CAAC;;;;;QAe5C,cAAS,GAAG,IAAI,YAAY,EAAmB,CAAC;KAC3D;;;YAtBA,SAAS,SAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;;;mBAMxB,KAAK;sBAKL,KAAK;wBAKL,KAAK;wBAKL,MAAM;;AAfkB;IAAf,YAAY,EAAE;;4CAA8B;AAUD;IAA3C,WAAW,CAAY,aAAa,EAAE,GAAG,CAAC;;iDAAuB;;MCVhE,eAAgB,SAAQ,cAAc;IAIjD,YAAoB,GAAsB,EAAS,aAA6B;QAC9E,KAAK,EAAE,CAAC;QADU,QAAG,GAAH,GAAG,CAAmB;QAAS,kBAAa,GAAb,aAAa,CAAgB;QAHhF,UAAK,GAAiB,EAAE,CAAC;QACjB,eAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;KAIxC;IAED,WAAW,CAAC,OAAsB;QAChC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;KAC3C;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KAC/B;IAED,MAAM,CAAC,IAAY,EAAE,MAAkB,EAAE,KAAY;QACnD,QAAQ,IAAI;YACV,KAAK,OAAO;gBACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClB,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,MAAM;iBACb,CAAC,CAAC;gBACH,MAAM;SACT;KACF;IAED,WAAW,CAAC,KAAa,EAAE,IAAgB;QACzC,OAAO,IAAI,CAAC,EAAE,CAAC;KAChB;IAEO,OAAO;QACb,QAAQ,CAAa,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC1B,CAAC,CAAC;KACJ;;;YA5CF,SAAS,SAAC;gBACT,QAAQ,EAAE,GAAG,YAAY,EAAE;gBAC3B,osBAAqC;gBAErC,aAAa,EAAE,iBAAiB,CAAC,IAAI;gBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;;YAbC,iBAAiB;YAIW,cAAc;;;MCE/B,YAAY;;;YALxB,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;gBAC/C,OAAO,EAAE,CAAC,eAAe,CAAC;gBAC1B,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC;aACpD;;;ACXD;;;;;;"}
@@ -696,14 +696,17 @@ class XPickerDateComponent extends XPickerDateProperty {
696
696
  this.modelChange.emit(date);
697
697
  this.cdr.markForCheck();
698
698
  }
699
- trackByNode(index, item) {
699
+ trackByTitleNode(_index, item) {
700
+ return item;
701
+ }
702
+ trackByWeekNode(_index, item) {
700
703
  return item;
701
704
  }
702
705
  }
703
706
  XPickerDateComponent.decorators = [
704
707
  { type: Component, args: [{
705
708
  selector: `${XPickerDatePrefix}`,
706
- template: "<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <table class=\"x-picker-date-table\" cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let weeks of dates\">\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByNode\">\r\n <td\r\n [class.x-date-last-or-next]=\"(week | date: 'yyyyMM') !== (display | date: 'yyyyMM')\"\r\n [class.x-date-now]=\"(week | date: 'yyyyMMdd') === (now | date: 'yyyyMMdd')\"\r\n (click)=\"dateTemp && dateClick(week)\"\r\n >\r\n <x-button\r\n *ngIf=\"!dateTemp\"\r\n type=\"text\"\r\n size=\"mini\"\r\n [title]=\"week | date: 'yyyy-MM-dd'\"\r\n [activated]=\"(week | date: 'yyyyMMdd') === (model | date: 'yyyyMMdd')\"\r\n (click)=\"dateClick(week)\"\r\n >{{ week | date: 'd' }}</x-button\r\n >\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n",
709
+ template: "<div class=\"x-picker-date\" [class.x-date-picker-datetemp]=\"dateTemp\">\r\n <table class=\"x-picker-date-table\" cellspacing=\"0\" cellpadding=\"0\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let title of titles; trackBy: trackByTitleNode\">{{ title | xI18n }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let weeks of dates\">\r\n <ng-container *ngFor=\"let week of weeks; trackBy: trackByWeekNode\">\r\n <td\r\n [class.x-date-last-or-next]=\"(week | date: 'yyyyMM') !== (display | date: 'yyyyMM')\"\r\n [class.x-date-now]=\"(week | date: 'yyyyMMdd') === (now | date: 'yyyyMMdd')\"\r\n (click)=\"dateTemp && dateClick(week)\"\r\n >\r\n <x-button\r\n *ngIf=\"!dateTemp\"\r\n type=\"text\"\r\n size=\"mini\"\r\n title=\"{{ week | date: 'yyyy-MM-dd' }}\"\r\n [activated]=\"(week | date: 'yyyyMMdd') === (model | date: 'yyyyMMdd')\"\r\n (click)=\"dateClick(week)\"\r\n >{{ week | date: 'd' }}</x-button\r\n >\r\n <ng-container *ngIf=\"dateTemp\">\r\n <ng-container *ngTemplateOutlet=\"dateTemp; context: { date$: week }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n",
707
710
  encapsulation: ViewEncapsulation.None,
708
711
  changeDetection: ChangeDetectionStrategy.OnPush,
709
712
  styles: [".x-picker-date{margin:0;padding:0}.x-picker-date-table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-date-table th{font-weight:400;height:2rem}.x-picker-date-table td{height:2rem;padding:.125rem 0;text-align:center}.x-picker-date-table td x-button .x-button{width:1.625rem;height:1.5rem;margin:0 auto;border:.0625rem solid transparent}.x-picker-date-table td x-button .x-button:hover{background-color:var(--x-primary-900)}.x-picker-date-table td x-button .x-button-activated,.x-picker-date-table td x-button .x-button-activated:hover{color:var(--x-background-100);background-color:var(--x-primary)}.x-picker-date-table td.x-date-last-or-next x-button .x-button{color:var(--x-text-400)}.x-picker-date-table td.x-date-now x-button .x-button{color:var(--x-primary);background-color:initial;border-color:var(--x-primary)}"]
@@ -771,7 +774,7 @@ class XPickerMonthComponent extends XPickerMonthProperty {
771
774
  XPickerMonthComponent.decorators = [
772
775
  { type: Component, args: [{
773
776
  selector: 'x-picker-month',
774
- template: "<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp\">\r\n <table class=\"x-picker-month-table\" cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let months of dates\">\r\n <ng-container *ngFor=\"let month of months; trackBy: trackByMonth\">\r\n <td\r\n [class.x-date-last-or-next]=\"(month | date: 'yyyy') !== (display | date: 'yyyy')\"\r\n [class.x-date-now]=\"(month | date: 'yyyyMM') === (now | date: 'yyyyMM')\"\r\n (click)=\"monthTemp && monthClick(month)\"\r\n >\r\n <x-button\r\n *ngIf=\"!monthTemp\"\r\n type=\"text\"\r\n [title]=\"month | date: 'yyyy-MM'\"\r\n [activated]=\"(month | date: 'yyyyMM') === (model | date: 'yyyyMM')\"\r\n (click)=\"monthClick(month)\"\r\n >{{ getLocaleMonth(month) }}</x-button\r\n >\r\n <ng-container *ngIf=\"monthTemp\">\r\n <ng-container *ngTemplateOutlet=\"monthTemp; context: { date$: month }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n</div>\r\n",
777
+ template: "<div class=\"x-picker-month\" [class.x-date-picker-monthtemp]=\"monthTemp\">\r\n <table class=\"x-picker-month-table\" cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let months of dates\">\r\n <ng-container *ngFor=\"let month of months; trackBy: trackByMonth\">\r\n <td\r\n [class.x-date-last-or-next]=\"(month | date: 'yyyy') !== (display | date: 'yyyy')\"\r\n [class.x-date-now]=\"(month | date: 'yyyyMM') === (now | date: 'yyyyMM')\"\r\n (click)=\"monthTemp && monthClick(month)\"\r\n >\r\n <x-button\r\n *ngIf=\"!monthTemp\"\r\n type=\"text\"\r\n title=\"{{ month | date: 'yyyy-MM' }}\"\r\n [activated]=\"(month | date: 'yyyyMM') === (model | date: 'yyyyMM')\"\r\n (click)=\"monthClick(month)\"\r\n >{{ getLocaleMonth(month) }}</x-button\r\n >\r\n <ng-container *ngIf=\"monthTemp\">\r\n <ng-container *ngTemplateOutlet=\"monthTemp; context: { date$: month }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n</div>\r\n",
775
778
  encapsulation: ViewEncapsulation.None,
776
779
  changeDetection: ChangeDetectionStrategy.OnPush,
777
780
  providers: [DatePipe, LowerCasePipe],