@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-textarea.js","sources":["../../../../lib/ng-nest/ui/textarea/textarea.property.ts","../../../../lib/ng-nest/ui/textarea/textarea.component.ts","../../../../lib/ng-nest/ui/textarea/textarea.module.ts","../../../../lib/ng-nest/ui/textarea/ng-nest-ui-textarea.ts"],"sourcesContent":["import {\r\n XInputBoolean,\r\n XInputNumber,\r\n XSize,\r\n XNumber,\r\n XBoolean,\r\n XWithConfig,\r\n XPositionLeftRight\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Textarea\r\n * @selector x-textarea\r\n * @decorator component\r\n */\r\nexport const XTextareaPrefix = 'x-textarea';\r\nconst X_CONFIG_NAME = 'textarea';\r\n\r\n/**\r\n * Textarea Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTextareaProperty extends XControlValueAccessor<any> implements XTextareaOption {\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() clearable: XBoolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Read only\r\n */\r\n @Input() @XInputBoolean() readonly: XBoolean = false;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n @Input() icon: string;\r\n /**\r\n * @zh_CN 图标布局方式\r\n * @en_US Icon layout\r\n */\r\n @Input() @XWithConfig<XTextareaIconLayoutType>(X_CONFIG_NAME, 'right') iconLayout: XTextareaIconLayoutType = 'right';\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n @Input() @XInputBoolean() iconSpin: XBoolean = false;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n @Input() @XInputNumber() maxlength: XNumber = 0;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US height\r\n */\r\n @Input() height: string = '4rem';\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n @Output() clearEmit = new EventEmitter<any>();\r\n}\r\n\r\n/**\r\n * Textarea Option\r\n * @undocument true\r\n */\r\nexport interface XTextareaOption extends XFormOption {\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: XBoolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Read only\r\n */\r\n readonly?: XBoolean;\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 Icon layout\r\n */\r\n iconLayout?: XTextareaIconLayoutType;\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n iconSpin?: XBoolean;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n maxlength?: XNumber;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n clearClick?: (value: any) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 图标布局方式,指在输入框中的位置\r\n * @en_US Icon layout, refers to the position in the input box\r\n * @value \"left\" 靠左\r\n * @value \"right\" 靠右\r\n */\r\nexport type XTextareaIconLayoutType = XPositionLeftRight;\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n ViewChild,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XTextareaPrefix, XTextareaProperty } from './textarea.property';\r\nimport { XIsEmpty, XIsChange, XClearClass, XConfigService } from '@ng-nest/ui/core';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XTextareaPrefix}`,\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XTextareaComponent)]\r\n})\r\nexport class XTextareaComponent extends XTextareaProperty implements OnInit, OnChanges {\r\n @ViewChild('textarea', { static: true }) textarea: ElementRef;\r\n @ViewChild('textareaRef', { static: true }) textareaRef: ElementRef;\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n this.change(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _required: boolean = false;\r\n valueLength: number = 0;\r\n lengthTotal: string = '';\r\n paddingLeft: number = 0.4;\r\n paddingRight: number = 0.4;\r\n clearShow: boolean = false;\r\n\r\n get getIcon() {\r\n return !XIsEmpty(this.icon);\r\n }\r\n\r\n get getIconLayoutLeft() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'left';\r\n }\r\n\r\n get getIconLayoutRight() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'right';\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setPadding();\r\n this.setFlex(this.textarea.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.clearable) && this.setClearable();\r\n }\r\n\r\n change(value: any) {\r\n if (this._required && !this.disabled) {\r\n this.required = XIsEmpty(value);\r\n }\r\n this.setClearable();\r\n if (this.maxlength) {\r\n this.valueLength = XIsEmpty(value) ? 0 : `${value}`.length;\r\n this.lengthTotal = `${this.valueLength}/${this.maxlength}`;\r\n }\r\n this.setPadding();\r\n if (this.onChange) this.onChange(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onClear() {\r\n const clearValue = this.value;\r\n this.value = '';\r\n this.change(this.value);\r\n this.clearEmit.emit(clearValue);\r\n this.textareaRef.nativeElement.focus();\r\n }\r\n\r\n setClearable() {\r\n if (this.clearable && !this.disabled) {\r\n this.clearShow = !XIsEmpty(this.value);\r\n } else {\r\n this.clearShow = false;\r\n }\r\n }\r\n\r\n setPadding() {\r\n this.paddingLeft = this.icon && this.iconLayout === 'left' ? 1.8 : 0.4;\r\n this.paddingRight = this.icon && this.iconLayout === 'right' ? 1.8 : 0.4;\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap, this.labelMap);\r\n this.classMap[`${XTextareaPrefix}-${this.size}`] = this.size ? true : false;\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.change(this.value);\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XTextareaComponent } from './textarea.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XTextareaProperty } from './textarea.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XTextareaComponent, XTextareaProperty],\r\n exports: [XTextareaComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XIconModule, XBaseFormModule]\r\n})\r\nexport class XTextareaModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-textarea.js","sources":["../../../../lib/ng-nest/ui/textarea/textarea.property.ts","../../../../lib/ng-nest/ui/textarea/textarea.component.ts","../../../../lib/ng-nest/ui/textarea/textarea.module.ts","../../../../lib/ng-nest/ui/textarea/ng-nest-ui-textarea.ts"],"sourcesContent":["import {\r\n XInputBoolean,\r\n XInputNumber,\r\n XSize,\r\n XNumber,\r\n XBoolean,\r\n XWithConfig,\r\n XPositionLeftRight\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Textarea\r\n * @selector x-textarea\r\n * @decorator component\r\n */\r\nexport const XTextareaPrefix = 'x-textarea';\r\nconst X_CONFIG_NAME = 'textarea';\r\n\r\n/**\r\n * Textarea Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTextareaProperty extends XControlValueAccessor<any> implements XTextareaOption {\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) @XInputBoolean() clearable?: XBoolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Read only\r\n */\r\n @Input() @XInputBoolean() readonly: XBoolean = false;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n @Input() icon?: string;\r\n /**\r\n * @zh_CN 图标布局方式\r\n * @en_US Icon layout\r\n */\r\n @Input() @XWithConfig<XTextareaIconLayoutType>(X_CONFIG_NAME, 'right') iconLayout: XTextareaIconLayoutType = 'right';\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n @Input() @XInputBoolean() iconSpin: XBoolean = false;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n @Input() @XInputNumber() maxlength: XNumber = 0;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US height\r\n */\r\n @Input() height: string = '4rem';\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n @Output() clearEmit = new EventEmitter<any>();\r\n}\r\n\r\n/**\r\n * Textarea Option\r\n * @undocument true\r\n */\r\nexport interface XTextareaOption extends XFormOption {\r\n /**\r\n * @zh_CN 清除按钮\r\n * @en_US Clear button\r\n */\r\n clearable?: XBoolean;\r\n /**\r\n * @zh_CN 只读\r\n * @en_US Read only\r\n */\r\n readonly?: XBoolean;\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 Icon layout\r\n */\r\n iconLayout?: XTextareaIconLayoutType;\r\n /**\r\n * @zh_CN 图标动画\r\n * @en_US Icon animation\r\n */\r\n iconSpin?: XBoolean;\r\n /**\r\n * @zh_CN 输入最大长度\r\n * @en_US Enter the maximum length\r\n */\r\n maxlength?: XNumber;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US Clear button event\r\n */\r\n clearClick?: (value: any) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 图标布局方式,指在输入框中的位置\r\n * @en_US Icon layout, refers to the position in the input box\r\n * @value \"left\" 靠左\r\n * @value \"right\" 靠右\r\n */\r\nexport type XTextareaIconLayoutType = XPositionLeftRight;\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n ViewChild,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XTextareaPrefix, XTextareaProperty } from './textarea.property';\r\nimport { XIsEmpty, XIsChange, XClearClass, XConfigService } from '@ng-nest/ui/core';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XTextareaPrefix}`,\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XTextareaComponent)]\r\n})\r\nexport class XTextareaComponent extends XTextareaProperty implements OnInit, OnChanges {\r\n @ViewChild('textarea', { static: true }) textarea!: ElementRef;\r\n @ViewChild('textareaRef', { static: true }) textareaRef!: ElementRef;\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n this.change(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _required: boolean = false;\r\n valueLength: number = 0;\r\n lengthTotal: string = '';\r\n paddingLeft: number = 0.4;\r\n paddingRight: number = 0.4;\r\n clearShow: boolean = false;\r\n\r\n get getIcon() {\r\n return !XIsEmpty(this.icon);\r\n }\r\n\r\n get getIconLayoutLeft() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'left';\r\n }\r\n\r\n get getIconLayoutRight() {\r\n return !XIsEmpty(this.icon) && this.iconLayout === 'right';\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setPadding();\r\n this.setFlex(this.textarea.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.clearable) && this.setClearable();\r\n }\r\n\r\n change(value: any) {\r\n if (this._required && !this.disabled) {\r\n this.required = XIsEmpty(value);\r\n }\r\n this.setClearable();\r\n if (this.maxlength) {\r\n this.valueLength = XIsEmpty(value) ? 0 : `${value}`.length;\r\n this.lengthTotal = `${this.valueLength}/${this.maxlength}`;\r\n }\r\n this.setPadding();\r\n if (this.onChange) this.onChange(value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onClear() {\r\n const clearValue = this.value;\r\n this.value = '';\r\n this.change(this.value);\r\n this.clearEmit.emit(clearValue);\r\n this.textareaRef.nativeElement.focus();\r\n }\r\n\r\n setClearable() {\r\n if (this.clearable && !this.disabled) {\r\n this.clearShow = !XIsEmpty(this.value);\r\n } else {\r\n this.clearShow = false;\r\n }\r\n }\r\n\r\n setPadding() {\r\n this.paddingLeft = this.icon && this.iconLayout === 'left' ? 1.8 : 0.4;\r\n this.paddingRight = this.icon && this.iconLayout === 'right' ? 1.8 : 0.4;\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap, this.labelMap);\r\n this.classMap[`${XTextareaPrefix}-${this.size}`] = this.size ? true : false;\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n formControlChanges() {\r\n this.change(this.value);\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XTextareaComponent } from './textarea.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XTextareaProperty } from './textarea.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XTextareaComponent, XTextareaProperty],\r\n exports: [XTextareaComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XIconModule, XBaseFormModule]\r\n})\r\nexport class XTextareaModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-theme.js","sources":["../../../../lib/ng-nest/ui/theme/theme.property.ts","../../../../lib/ng-nest/ui/theme/theme.component.ts","../../../../lib/ng-nest/ui/theme/theme.module.ts","../../../../lib/ng-nest/ui/theme/ng-nest-ui-theme.ts"],"sourcesContent":["import { XWithConfig, XNumber, XColorsTheme, XInputBoolean, XBoolean } from '@ng-nest/ui/core';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Theme\r\n * @selector x-theme\r\n * @decorator component\r\n */\r\nexport const XThemePrefix = 'x-theme';\r\n\r\nconst X_CONFIG_NAME = 'theme';\r\n\r\nexport const XThemeAmounts = [-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\n/**\r\n * Theme Property\r\n */\r\n@Component({ template: '' })\r\nexport class XThemeProperty extends XControlValueAccessor<XColorsTheme> {\r\n /**\r\n * @zh_CN 参数前缀\r\n * @en_US Parameter prefix\r\n */\r\n @Input() prefix: string = '--x-';\r\n /**\r\n * @zh_CN 混合的颜色占比\r\n * @en_US Proportion of mixed colors\r\n */\r\n @Input() @XWithConfig<XNumber[]>(X_CONFIG_NAME, XThemeAmounts) amounts: XNumber[];\r\n /**\r\n * @zh_CN 显示暗黑模式的设置\r\n * @en_US Show dark mode settings\r\n */\r\n @Input() @XInputBoolean() showDark: XBoolean;\r\n /**\r\n * @zh_CN 详细设置\r\n * @en_US Detailed settings\r\n */\r\n @Input() @XInputBoolean() showDetail: XBoolean;\r\n /**\r\n * @zh_CN 暗黑模式\r\n * @en_US Dark mode\r\n */\r\n @Input() @XInputBoolean() dark: XBoolean = false;\r\n /**\r\n * @zh_CN 初始化默认值事件\r\n * @en_US Initialize default value event\r\n */\r\n @Output() defaultClick = new EventEmitter<XColorsTheme>();\r\n /**\r\n * @zh_CN 暗黑模式改变事件\r\n * @en_US Dark mode change event\r\n */\r\n @Output() darkChange = new EventEmitter<XBoolean>();\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Optional, OnDestroy } from '@angular/core';\r\nimport { XThemeProperty } from './theme.property';\r\nimport {\r\n XConfigService,\r\n XThemeService,\r\n XColorsTheme,\r\n XTheme,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_COLORS,\r\n X_THEME_DARK_COLORS\r\n} from '@ng-nest/ui/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { XControl } from '@ng-nest/ui/form';\r\nimport { debounceTime, takeUntil, map } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService, XI18nTheme } from '@ng-nest/ui/i18n';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: 'x-theme',\r\n templateUrl: './theme.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XThemeComponent)]\r\n})\r\nexport class XThemeComponent extends XThemeProperty implements OnInit, OnDestroy {\r\n formGroup = new FormGroup({});\r\n\r\n theme: XTheme = {\r\n colors: {}\r\n };\r\n width = '45rem';\r\n beforeColors: XColorsTheme = {};\r\n currentColors: XColorsTheme = {};\r\n darkBeforeColors: XColorsTheme = {};\r\n controls: XControl[] = [\r\n { control: 'color-picker', id: 'primary', label: '主色', span: 5 },\r\n { control: 'color-picker', id: 'success', label: '成功', span: 5 },\r\n { control: 'color-picker', id: 'warning', label: '警告', span: 5 },\r\n { control: 'color-picker', id: 'danger', label: '危险', span: 5 },\r\n { control: 'color-picker', id: 'info', label: '信息', span: 5 },\r\n { control: 'color-picker', id: 'background', label: '背景', span: 5 },\r\n { control: 'color-picker', id: 'border', label: '边框', span: 5 },\r\n { control: 'color-picker', id: 'text', label: '文字', span: 5 }\r\n ];\r\n\r\n value: XColorsTheme = {};\r\n\r\n themeService: XThemeService;\r\n\r\n locale: XI18nTheme = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n writeValue(value: XColorsTheme) {\r\n this.value = value;\r\n if (this.value && Object.keys(this.value).length > 0) {\r\n this.theme = { colors: this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS, this.value), '', this.dark as boolean) };\r\n this.formGroup.patchValue(this.theme.colors as XColorsTheme);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n constructor(public configService: XConfigService, public i18n: XI18nService, public cdr: ChangeDetectorRef) {\r\n super();\r\n this.themeService = this.configService.themeService;\r\n }\r\n\r\n ngOnInit() {\r\n this.theme = this.configService.getTheme(true);\r\n this.setControls();\r\n this.setDefaultColors();\r\n this.controls.map((x: XControl) => {\r\n x.value = (this.theme.colors as XColorsTheme)[x.id];\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.theme as XI18nTheme),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.setControlsLabel();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.formGroup.valueChanges.pipe(debounceTime(100), takeUntil(this._unSubject)).subscribe((x: XColorsTheme) => {\r\n this.beforeColors = this.currentColors;\r\n let changes = this.getChanges(x);\r\n if (this.isOneAndInColorKeys(changes)) {\r\n let [key, value] = Object.entries(changes)[0];\r\n let colors = !this.dark ? this.themeService.setRoot(key, value, '') : this.themeService.setDarkRoot(key, value, '');\r\n Object.assign(x, colors);\r\n this.currentColors = x;\r\n this.formGroup.patchValue(x);\r\n } else {\r\n this.currentColors = x;\r\n this.value = x;\r\n this.configService.setTheme({ colors: x });\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setControlsLabel() {\r\n Object.keys(this.locale).forEach((x) => {\r\n let control = this.controls.find((y) => y.id === x);\r\n if (control) {\r\n control.label = (this.locale as any)[x];\r\n control.change && control.change();\r\n }\r\n });\r\n }\r\n\r\n setDefaultColors() {\r\n this.beforeColors = this.theme.colors as XColorsTheme;\r\n this.currentColors = this.beforeColors;\r\n this.darkBeforeColors = this.beforeColors;\r\n }\r\n\r\n setControls() {\r\n [...this.controls].forEach((control, index) => {\r\n let addControls: XControl[] = [];\r\n control.span = !this.showDetail ? 6 : 5;\r\n this.width = !this.showDetail ? '36rem' : '45rem';\r\n for (let amount of this.amounts) {\r\n addControls.push({\r\n control: 'color-picker',\r\n id: `${control.id}${this.themeService.getSuffix(amount as number)}`,\r\n label: '',\r\n hidden: !this.showDetail\r\n });\r\n }\r\n this.controls.splice(index * this.amounts.length + index + 1, 0, ...addControls);\r\n });\r\n }\r\n\r\n default() {\r\n this.dark = false;\r\n let colors = this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS), '', this.dark);\r\n this.beforeColors = colors;\r\n this.currentColors = colors;\r\n this.formGroup.patchValue(colors);\r\n this.defaultClick.emit(colors);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n isOneAndInColorKeys(colors: XColorsTheme) {\r\n const keys = Object.keys(colors);\r\n if (keys.length === 1 && X_THEME_COLOR_KEYS.includes(keys[0])) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getChanges(colors: XColorsTheme) {\r\n let result: XColorsTheme = {};\r\n for (let color in colors) {\r\n if (colors[color] !== this.beforeColors[color]) {\r\n result[color] = colors[color];\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n darkChanges($event: Event) {\r\n let colors = this.darkBeforeColors as XColorsTheme;\r\n if (this.dark) {\r\n this.beforeColors = this.formGroup.value;\r\n this.darkBeforeColors = this.formGroup.value;\r\n colors = this.themeService.getDefineColors(\r\n Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), X_THEME_DARK_COLORS),\r\n '',\r\n this.dark as boolean\r\n );\r\n }\r\n this.formGroup.patchValue(colors);\r\n this.darkChange.emit(this.dark);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XThemeComponent } from './theme.component';\r\nimport { XThemeProperty } from './theme.property';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XFormModule } from '@ng-nest/ui/form';\r\nimport { XSwitchModule } from '@ng-nest/ui/switch';\r\nimport { XLayoutModule } from '@ng-nest/ui/layout';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XThemeComponent, XThemeProperty],\r\n exports: [XThemeComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XSwitchModule,\r\n XButtonModule,\r\n XLayoutModule,\r\n XFormModule,\r\n XI18nModule,\r\n XBaseFormModule\r\n ]\r\n})\r\nexport class XThemeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-theme.js","sources":["../../../../lib/ng-nest/ui/theme/theme.property.ts","../../../../lib/ng-nest/ui/theme/theme.component.ts","../../../../lib/ng-nest/ui/theme/theme.module.ts","../../../../lib/ng-nest/ui/theme/ng-nest-ui-theme.ts"],"sourcesContent":["import { XWithConfig, XNumber, XColorsTheme, XInputBoolean, XBoolean } from '@ng-nest/ui/core';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Theme\r\n * @selector x-theme\r\n * @decorator component\r\n */\r\nexport const XThemePrefix = 'x-theme';\r\n\r\nconst X_CONFIG_NAME = 'theme';\r\n\r\nexport const XThemeAmounts = [-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\n/**\r\n * Theme Property\r\n */\r\n@Component({ template: '' })\r\nexport class XThemeProperty extends XControlValueAccessor<XColorsTheme> {\r\n /**\r\n * @zh_CN 参数前缀\r\n * @en_US Parameter prefix\r\n */\r\n @Input() prefix: string = '--x-';\r\n /**\r\n * @zh_CN 混合的颜色占比\r\n * @en_US Proportion of mixed colors\r\n */\r\n @Input() @XWithConfig<XNumber[]>(X_CONFIG_NAME, XThemeAmounts) amounts!: XNumber[];\r\n /**\r\n * @zh_CN 显示暗黑模式的设置\r\n * @en_US Show dark mode settings\r\n */\r\n @Input() @XInputBoolean() showDark?: XBoolean;\r\n /**\r\n * @zh_CN 详细设置\r\n * @en_US Detailed settings\r\n */\r\n @Input() @XInputBoolean() showDetail?: XBoolean;\r\n /**\r\n * @zh_CN 暗黑模式\r\n * @en_US Dark mode\r\n */\r\n @Input() @XInputBoolean() dark: XBoolean = false;\r\n /**\r\n * @zh_CN 初始化默认值事件\r\n * @en_US Initialize default value event\r\n */\r\n @Output() defaultClick = new EventEmitter<XColorsTheme>();\r\n /**\r\n * @zh_CN 暗黑模式改变事件\r\n * @en_US Dark mode change event\r\n */\r\n @Output() darkChange = new EventEmitter<XBoolean>();\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Optional, OnDestroy } from '@angular/core';\r\nimport { XThemeProperty } from './theme.property';\r\nimport {\r\n XConfigService,\r\n XThemeService,\r\n XColorsTheme,\r\n XTheme,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_COLORS,\r\n X_THEME_DARK_COLORS\r\n} from '@ng-nest/ui/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { XControl } from '@ng-nest/ui/form';\r\nimport { debounceTime, takeUntil, map } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { XI18nService, XI18nTheme } from '@ng-nest/ui/i18n';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: 'x-theme',\r\n templateUrl: './theme.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XThemeComponent)]\r\n})\r\nexport class XThemeComponent extends XThemeProperty implements OnInit, OnDestroy {\r\n formGroup = new FormGroup({});\r\n\r\n theme: XTheme = {\r\n colors: {}\r\n };\r\n width = '45rem';\r\n beforeColors: XColorsTheme = {};\r\n currentColors: XColorsTheme = {};\r\n darkBeforeColors: XColorsTheme = {};\r\n controls: XControl[] = [\r\n { control: 'color-picker', id: 'primary', label: '主色', span: 5 },\r\n { control: 'color-picker', id: 'success', label: '成功', span: 5 },\r\n { control: 'color-picker', id: 'warning', label: '警告', span: 5 },\r\n { control: 'color-picker', id: 'danger', label: '危险', span: 5 },\r\n { control: 'color-picker', id: 'info', label: '信息', span: 5 },\r\n { control: 'color-picker', id: 'background', label: '背景', span: 5 },\r\n { control: 'color-picker', id: 'border', label: '边框', span: 5 },\r\n { control: 'color-picker', id: 'text', label: '文字', span: 5 }\r\n ];\r\n\r\n value: XColorsTheme = {};\r\n\r\n themeService: XThemeService;\r\n\r\n locale: XI18nTheme = {};\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n writeValue(value: XColorsTheme) {\r\n this.value = value;\r\n if (this.value && Object.keys(this.value).length > 0) {\r\n this.theme = { colors: this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS, this.value), '', this.dark as boolean) };\r\n this.formGroup.patchValue(this.theme.colors as XColorsTheme);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n constructor(public configService: XConfigService, public i18n: XI18nService, public cdr: ChangeDetectorRef) {\r\n super();\r\n this.themeService = this.configService.themeService;\r\n }\r\n\r\n ngOnInit() {\r\n this.theme = this.configService.getTheme(true);\r\n this.setControls();\r\n this.setDefaultColors();\r\n this.controls.map((x: XControl) => {\r\n x.value = (this.theme.colors as XColorsTheme)[x.id];\r\n });\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.theme as XI18nTheme),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.setControlsLabel();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.formGroup.valueChanges.pipe(debounceTime(100), takeUntil(this._unSubject)).subscribe((x: XColorsTheme) => {\r\n this.beforeColors = this.currentColors;\r\n let changes = this.getChanges(x);\r\n if (this.isOneAndInColorKeys(changes)) {\r\n let [key, value] = Object.entries(changes)[0];\r\n let colors = !this.dark ? this.themeService.setRoot(key, value, '') : this.themeService.setDarkRoot(key, value, '');\r\n Object.assign(x, colors);\r\n this.currentColors = x;\r\n this.formGroup.patchValue(x);\r\n } else {\r\n this.currentColors = x;\r\n this.value = x;\r\n this.configService.setTheme({ colors: x });\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setControlsLabel() {\r\n Object.keys(this.locale).forEach((x) => {\r\n let control = this.controls.find((y) => y.id === x);\r\n if (control) {\r\n control.label = (this.locale as any)[x];\r\n control.change && control.change();\r\n }\r\n });\r\n }\r\n\r\n setDefaultColors() {\r\n this.beforeColors = this.theme.colors as XColorsTheme;\r\n this.currentColors = this.beforeColors;\r\n this.darkBeforeColors = this.beforeColors;\r\n }\r\n\r\n setControls() {\r\n [...this.controls].forEach((control, index) => {\r\n let addControls: XControl[] = [];\r\n control.span = !this.showDetail ? 6 : 5;\r\n this.width = !this.showDetail ? '36rem' : '45rem';\r\n for (let amount of this.amounts) {\r\n addControls.push({\r\n control: 'color-picker',\r\n id: `${control.id}${this.themeService.getSuffix(amount as number)}`,\r\n label: '',\r\n hidden: !this.showDetail\r\n });\r\n }\r\n this.controls.splice(index * this.amounts.length + index + 1, 0, ...addControls);\r\n });\r\n }\r\n\r\n default() {\r\n this.dark = false;\r\n let colors = this.themeService.getDefineColors(Object.assign({}, X_THEME_COLORS), '', this.dark);\r\n this.beforeColors = colors;\r\n this.currentColors = colors;\r\n this.formGroup.patchValue(colors);\r\n this.defaultClick.emit(colors);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n isOneAndInColorKeys(colors: XColorsTheme) {\r\n const keys = Object.keys(colors);\r\n if (keys.length === 1 && X_THEME_COLOR_KEYS.includes(keys[0])) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getChanges(colors: XColorsTheme) {\r\n let result: XColorsTheme = {};\r\n for (let color in colors) {\r\n if (colors[color] !== this.beforeColors[color]) {\r\n result[color] = colors[color];\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n darkChanges($event: Event) {\r\n let colors = this.darkBeforeColors as XColorsTheme;\r\n if (this.dark) {\r\n this.beforeColors = this.formGroup.value;\r\n this.darkBeforeColors = this.formGroup.value;\r\n colors = this.themeService.getDefineColors(\r\n Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), X_THEME_DARK_COLORS),\r\n '',\r\n this.dark as boolean\r\n );\r\n }\r\n this.formGroup.patchValue(colors);\r\n this.darkChange.emit(this.dark);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XThemeComponent } from './theme.component';\r\nimport { XThemeProperty } from './theme.property';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XFormModule } from '@ng-nest/ui/form';\r\nimport { XSwitchModule } from '@ng-nest/ui/switch';\r\nimport { XLayoutModule } from '@ng-nest/ui/layout';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XThemeComponent, XThemeProperty],\r\n exports: [XThemeComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XSwitchModule,\r\n XButtonModule,\r\n XLayoutModule,\r\n XFormModule,\r\n XI18nModule,\r\n XBaseFormModule\r\n ]\r\n})\r\nexport class XThemeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ class XTimeAgoPipe {
17
17
  this.locale = {};
18
18
  }
19
19
  transform(input) {
20
+ if (!input)
21
+ return '';
20
22
  const date = XToDate(input);
21
23
  if (isNaN(date.valueOf())) {
22
24
  return input;
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-time-ago.js","sources":["../../../../lib/ng-nest/ui/time-ago/time-ago.property.ts","../../../../lib/ng-nest/ui/time-ago/time-ago.pipe.ts","../../../../lib/ng-nest/ui/time-ago/time-ago.module.ts","../../../../lib/ng-nest/ui/time-ago/ng-nest-ui-time-ago.ts"],"sourcesContent":["/**\r\n * TimeAgo\r\n * @selector xTimeAgo\r\n * @decorator Pipe\r\n */\r\nexport const XTimeAgoPrefix = 'xTimeAgo';\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { XToDate, XDate } from '@ng-nest/ui/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { XTimeAgoPrefix } from './time-ago.property';\r\nimport { XI18nService, XI18nTimeAgo } from '@ng-nest/ui/i18n';\r\n\r\n@Pipe({ name: `${XTimeAgoPrefix}`, pure: false })\r\nexport class XTimeAgoPipe implements PipeTransform {\r\n locale: XI18nTimeAgo = {};\r\n private catchContent: any;\r\n constructor(private datePipe: DatePipe, private i18n: XI18nService) {}\r\n transform(input: XDate): string {\r\n const date = XToDate(input);\r\n if (isNaN(date.valueOf())) {\r\n return input as string;\r\n }\r\n this.locale = this.i18n.getLocale().timeAgo as XI18nTimeAgo;\r\n const content = this.getDiff(date);\r\n if (this.catchContent !== content) {\r\n this.catchContent = content;\r\n }\r\n return this.catchContent;\r\n }\r\n\r\n getDiff(date: Date): string {\r\n const time = date.getTime();\r\n const second = 1000;\r\n const minute = 1000 * 60;\r\n const hour = minute * 60;\r\n const day = hour * 24;\r\n const now = new Date();\r\n const diffValue = now.getTime() - time;\r\n if (diffValue < 0) {\r\n return '';\r\n }\r\n const dayDiff = diffValue / day;\r\n const hourDiff = diffValue / hour;\r\n const minDiff = diffValue / minute;\r\n const secondDiff = diffValue / second;\r\n let result = '';\r\n if (date.getFullYear() !== now.getFullYear()) {\r\n result = this.datePipe.transform(time, 'yyyy-MM-dd') as string;\r\n } else if (dayDiff >= 1) {\r\n result = this.datePipe.transform(time, 'MM-dd HH:mm') as string;\r\n } else if (hourDiff >= 1) {\r\n result = `${Math.floor(hourDiff)}${this.locale.hoursAgo}`;\r\n } else if (minDiff >= 1) {\r\n result = `${Math.floor(minDiff)}${this.locale.minutesAgo}`;\r\n } else if (secondDiff >= 1) {\r\n result = `${Math.floor(secondDiff)}${this.locale.secondsAgo}`;\r\n } else result = this.locale.just as string;\r\n return result;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { XTimeAgoPipe } from './time-ago.pipe';\r\n\r\n@NgModule({\r\n declarations: [XTimeAgoPipe],\r\n exports: [XTimeAgoPipe],\r\n providers: [DatePipe]\r\n})\r\nexport class XTimeAgoModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-time-ago.js","sources":["../../../../lib/ng-nest/ui/time-ago/time-ago.property.ts","../../../../lib/ng-nest/ui/time-ago/time-ago.pipe.ts","../../../../lib/ng-nest/ui/time-ago/time-ago.module.ts","../../../../lib/ng-nest/ui/time-ago/ng-nest-ui-time-ago.ts"],"sourcesContent":["/**\r\n * TimeAgo\r\n * @selector xTimeAgo\r\n * @decorator Pipe\r\n */\r\nexport const XTimeAgoPrefix = 'xTimeAgo';\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { XToDate, XDate } from '@ng-nest/ui/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { XTimeAgoPrefix } from './time-ago.property';\r\nimport { XI18nService, XI18nTimeAgo } from '@ng-nest/ui/i18n';\r\n\r\n@Pipe({ name: `${XTimeAgoPrefix}`, pure: false })\r\nexport class XTimeAgoPipe implements PipeTransform {\r\n locale: XI18nTimeAgo = {};\r\n private catchContent: any;\r\n constructor(private datePipe: DatePipe, private i18n: XI18nService) {}\r\n transform(input?: XDate): string {\r\n if (!input) return '';\r\n const date = XToDate(input);\r\n if (isNaN(date.valueOf())) {\r\n return input as string;\r\n }\r\n this.locale = this.i18n.getLocale().timeAgo as XI18nTimeAgo;\r\n const content = this.getDiff(date);\r\n if (this.catchContent !== content) {\r\n this.catchContent = content;\r\n }\r\n return this.catchContent;\r\n }\r\n\r\n getDiff(date: Date): string {\r\n const time = date.getTime();\r\n const second = 1000;\r\n const minute = 1000 * 60;\r\n const hour = minute * 60;\r\n const day = hour * 24;\r\n const now = new Date();\r\n const diffValue = now.getTime() - time;\r\n if (diffValue < 0) {\r\n return '';\r\n }\r\n const dayDiff = diffValue / day;\r\n const hourDiff = diffValue / hour;\r\n const minDiff = diffValue / minute;\r\n const secondDiff = diffValue / second;\r\n let result = '';\r\n if (date.getFullYear() !== now.getFullYear()) {\r\n result = this.datePipe.transform(time, 'yyyy-MM-dd') as string;\r\n } else if (dayDiff >= 1) {\r\n result = this.datePipe.transform(time, 'MM-dd HH:mm') as string;\r\n } else if (hourDiff >= 1) {\r\n result = `${Math.floor(hourDiff)}${this.locale.hoursAgo}`;\r\n } else if (minDiff >= 1) {\r\n result = `${Math.floor(minDiff)}${this.locale.minutesAgo}`;\r\n } else if (secondDiff >= 1) {\r\n result = `${Math.floor(secondDiff)}${this.locale.secondsAgo}`;\r\n } else result = this.locale.just as string;\r\n return result;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { XTimeAgoPipe } from './time-ago.pipe';\r\n\r\n@NgModule({\r\n declarations: [XTimeAgoPipe],\r\n exports: [XTimeAgoPipe],\r\n providers: [DatePipe]\r\n})\r\nexport class XTimeAgoModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-time-picker.js","sources":["../../../../lib/ng-nest/ui/time-picker/time-picker.property.ts","../../../../lib/ng-nest/ui/time-picker/time-picker-portal.component.ts","../../../../lib/ng-nest/ui/time-picker/time-picker.component.ts","../../../../lib/ng-nest/ui/time-picker/time-picker-frame.component.ts","../../../../lib/ng-nest/ui/time-picker/time-picker.module.ts","../../../../lib/ng-nest/ui/time-picker/ng-nest-ui-time-picker.ts"],"sourcesContent":["import { XCorner, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * TimePicker\r\n * @selector x-time-picker\r\n * @decorator component\r\n */\r\nexport const XTimePickerPrefix = 'x-time-picker';\r\nconst X_CONFIG_NAME = 'timePicker';\r\n\r\n/**\r\n * TimePicker Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTimePickerProperty extends XControlValueAccessor<any> {\r\n /**\r\n * @zh_CN 时间类型\r\n * @en_US Time type\r\n */\r\n @Input() type: XTimePickerType = 'time';\r\n /**\r\n * @zh_CN 格式化\r\n * @en_US Format\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, 'HH:mm:ss') format: string;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_NAME, 'bottom-start') placement: XCorner;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * TimePicker Option\r\n * @undocument true\r\n */\r\nexport interface XTimePickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 时间类型\r\n * @en_US Time type\r\n */\r\n type?: XTimePickerType;\r\n /**\r\n * @zh_CN 格式化\r\n * @en_US Format\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeClick?: (date: number) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 时间选择\r\n * @en_US Time selection\r\n */\r\nexport type XTimePickerType = 'time' | 'hour' | 'minute';\r\n\r\n/**\r\n * TimePickerPortal\r\n * @selector x-time-picker-portal\r\n * @decorator component\r\n */\r\nexport const XTimePickerPortalPrefix = 'x-time-picker-portal';\r\n\r\n/**\r\n * TimePickerFrame\r\n * @selector x-time-picker-frame\r\n * @decorator component\r\n */\r\nexport const XTimePickerFramePrefix = 'x-time-picker-frame';\r\n","import { XListNode } from '@ng-nest/ui/list';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n Renderer2,\r\n OnDestroy,\r\n HostBinding,\r\n HostListener\r\n} from '@angular/core';\r\nimport { XTimePickerPortalPrefix, XTimePickerType } from './time-picker.property';\r\nimport { XConnectBaseAnimation, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XTimePickerPortalPrefix}`,\r\n templateUrl: './time-picker-portal.component.html',\r\n styleUrls: ['./time-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XTimePickerPortalComponent implements OnInit, OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public placement: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start(event: { toState: any }) {\r\n this.animating(true);\r\n }\r\n type: XTimePickerType = 'time';\r\n value: any;\r\n valueChange: Subject<any>;\r\n positionChange: Subject<any>;\r\n closePortal: Function;\r\n destroyPortal: Function;\r\n animating: Function;\r\n nodeEmit: (date: Date) => void;\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x: any) => {\r\n this.value = x;\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n}\r\n","import { XTimePickerPortalComponent } from './time-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n ViewContainerRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { XTimePickerPrefix, XTimePickerProperty } from './time-picker.property';\r\nimport { XIsEmpty, XIsDate, XIsNumber, XCorner, XClearClass } from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Overlay, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XTimePickerPrefix}`,\r\n templateUrl: './time-picker.component.html',\r\n styleUrls: ['./time-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XTimePickerComponent), DatePipe]\r\n})\r\nexport class XTimePickerComponent extends XTimePickerProperty implements OnInit {\r\n @ViewChild('datePicker', { static: true }) datePicker: ElementRef;\r\n @ViewChild('inputCom', { static: true }) inputCom: XInputComponent;\r\n\r\n writeValue(value: any) {\r\n if (XIsDate(value)) this.value = value.getTime();\r\n else if (XIsNumber(value)) this.value = value;\r\n else if (XIsEmpty(value)) this.value = '';\r\n this.setDisplayValue();\r\n this.valueChange.next(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n readonly: boolean = true;\r\n clearable: boolean = false;\r\n enter: boolean = false;\r\n animating = false;\r\n displayValue: any = '';\r\n portal: XPortalOverlayRef<XTimePickerPortalComponent>;\r\n icon: string = 'fto-clock';\r\n box: DOMRect;\r\n protalHeight: number;\r\n maxNodes: number = 8;\r\n protalTobottom: boolean = true;\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n private elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private datePipe: DatePipe,\r\n private overlay: Overlay\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.datePicker.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setFormat();\r\n this.setClassMap();\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n setFormat() {\r\n if (this.format === 'HH:mm:ss') {\r\n if (this.type === 'hour') {\r\n this.format = 'HH';\r\n } else if (this.type === 'minute') {\r\n this.format = 'HH:mm';\r\n }\r\n }\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n menter() {\r\n if (this.disabled) return;\r\n this.enter = true;\r\n if (!XIsEmpty(this.value)) {\r\n this.icon = '';\r\n this.clearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled) return;\r\n this.enter = false;\r\n if (this.clearable) {\r\n this.icon = 'fto-clock';\r\n this.clearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = '';\r\n this.displayValue = '';\r\n this.mleave();\r\n this.valueChange.next(this.value);\r\n if (this.onChange) this.onChange(this.value);\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.animating) return;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XTimePickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n type: this.type,\r\n value: this.value,\r\n placement: this.placement,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: Date) => this.onNodeClick(node),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onNodeClick(date: Date) {\r\n this.value = date.getTime();\r\n this.setDisplayValue();\r\n this.cdr.detectChanges();\r\n if (this.onChange) this.onChange(this.value);\r\n this.nodeEmit.emit(this.value);\r\n }\r\n\r\n setDisplayValue() {\r\n this.displayValue = this.datePipe.transform(this.value, this.format);\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputElement,\r\n placement: [this.placement, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-time-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n if (this.portalAttached()) {\r\n this.portal.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { XTimePickerFramePrefix, XTimePickerType } from './time-picker.property';\r\nimport { XListNode } from '@ng-nest/ui/list';\r\nimport { reqAnimFrame, XIsChange, XIsEmpty } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTimePickerFramePrefix}`,\r\n templateUrl: './time-picker-frame.component.html',\r\n styleUrls: ['./time-picker-frame.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTimePickerFrameComponent {\r\n @Input() type: XTimePickerType = 'time';\r\n @Input() value: number;\r\n @Output() nodeEmit = new EventEmitter<Date>();\r\n @ViewChild('hourRef', { static: false }) hourRef: ElementRef;\r\n @ViewChild('minuteRef', { static: false }) minuteRef: ElementRef;\r\n @ViewChild('secondRef', { static: false }) secondRef: ElementRef;\r\n model: Date;\r\n now = new Date();\r\n hour: number = 0;\r\n minute: number = 0;\r\n second: number = 0;\r\n hourDate = Array.from({ length: 24 }).map((_, i) => {\r\n return {\r\n label: this.prefixZero(i, 2),\r\n id: i\r\n };\r\n });\r\n minuteDate = Array.from({ length: 60 }).map((_, i) => {\r\n return {\r\n label: this.prefixZero(i, 2),\r\n id: i\r\n };\r\n });\r\n secondDate = Array.from({ length: 60 }).map((_, i) => {\r\n return {\r\n label: this.prefixZero(i, 2),\r\n id: i\r\n };\r\n });\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (XIsChange(changes.value)) {\r\n this.init();\r\n this.setScrollTop();\r\n }\r\n }\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n } else {\r\n this.model = new Date(0, 0, 0, this.now.getHours(), this.now.getMinutes(), this.now.getSeconds());\r\n }\r\n this.setTime(this.model);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDefault() {\r\n const date = new Date(this.value);\r\n this.model = new Date(0, 0, 0, date.getHours(), date.getMinutes(), date.getSeconds());\r\n }\r\n\r\n setTime(date: Date) {\r\n this.hour = date.getHours();\r\n this.minute = date.getMinutes();\r\n this.second = date.getSeconds();\r\n }\r\n\r\n prefixZero(num: number, n: number) {\r\n return (Array(n).join('0') + num).slice(-n);\r\n }\r\n\r\n setScrollTop() {\r\n this.selected(this.hourRef.nativeElement, this.hour);\r\n this.selected(this.minuteRef.nativeElement, this.minute);\r\n this.selected(this.secondRef.nativeElement, this.second);\r\n }\r\n\r\n selected(ele: HTMLElement, num: number) {\r\n let current = ele.querySelector(`ul li:nth-child(${num + 1})`) as HTMLElement;\r\n if (current) {\r\n ele.scrollTop = current.offsetTop;\r\n }\r\n }\r\n\r\n hourClick(date: XListNode) {\r\n this.hour = date.id;\r\n this.model.setHours(this.hour);\r\n this.nodeEmit.emit(this.model);\r\n this.cdr.detectChanges();\r\n this.scrollTo(this.hourRef.nativeElement, (date.event?.srcElement as HTMLElement).offsetTop, 120);\r\n }\r\n\r\n minuteClick(date: XListNode) {\r\n this.minute = date.id;\r\n this.model.setMinutes(this.minute);\r\n this.nodeEmit.emit(this.model);\r\n this.cdr.detectChanges();\r\n this.scrollTo(this.minuteRef.nativeElement, (date.event?.srcElement as HTMLElement).offsetTop, 120);\r\n }\r\n\r\n secondClick(date: XListNode) {\r\n this.second = date.id;\r\n this.model.setSeconds(this.second);\r\n this.nodeEmit.emit(this.model);\r\n this.cdr.detectChanges();\r\n this.scrollTo(this.secondRef.nativeElement, (date.event?.srcElement as HTMLElement).offsetTop, 120);\r\n }\r\n\r\n private scrollTo(element: HTMLElement, to: number, duration: number): void {\r\n const difference = to - element.scrollTop;\r\n const perTick = (difference / duration) * 10;\r\n reqAnimFrame(() => {\r\n element.scrollTop = element.scrollTop + perTick;\r\n if (element.scrollTop === to || duration <= 0) {\r\n return;\r\n } else {\r\n this.scrollTo(element, to, duration - 10);\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XListModule } from '@ng-nest/ui/list';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\nimport { XTimePickerComponent } from './time-picker.component';\r\nimport { XTimePickerPortalComponent } from './time-picker-portal.component';\r\nimport { XTimePickerProperty } from './time-picker.property';\r\nimport { XTimePickerFrameComponent } from './time-picker-frame.component';\r\n\r\n@NgModule({\r\n declarations: [XTimePickerComponent, XTimePickerPortalComponent, XTimePickerFrameComponent, XTimePickerProperty],\r\n exports: [XTimePickerComponent, XTimePickerPortalComponent, XTimePickerFrameComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XPortalModule,\r\n XInputModule,\r\n XListModule,\r\n XButtonModule,\r\n XIconModule,\r\n XBaseFormModule\r\n ],\r\n entryComponents: [XTimePickerPortalComponent]\r\n})\r\nexport class XTimePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-time-picker.js","sources":["../../../../lib/ng-nest/ui/time-picker/time-picker.property.ts","../../../../lib/ng-nest/ui/time-picker/time-picker-portal.component.ts","../../../../lib/ng-nest/ui/time-picker/time-picker.component.ts","../../../../lib/ng-nest/ui/time-picker/time-picker-frame.component.ts","../../../../lib/ng-nest/ui/time-picker/time-picker.module.ts","../../../../lib/ng-nest/ui/time-picker/ng-nest-ui-time-picker.ts"],"sourcesContent":["import { XCorner, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * TimePicker\r\n * @selector x-time-picker\r\n * @decorator component\r\n */\r\nexport const XTimePickerPrefix = 'x-time-picker';\r\nconst X_CONFIG_NAME = 'timePicker';\r\n\r\n/**\r\n * TimePicker Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTimePickerProperty extends XControlValueAccessor<any> {\r\n /**\r\n * @zh_CN 时间类型\r\n * @en_US Time type\r\n */\r\n @Input() type: XTimePickerType = 'time';\r\n /**\r\n * @zh_CN 格式化\r\n * @en_US Format\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, 'HH:mm:ss') format?: string;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XCorner>(X_CONFIG_NAME, 'bottom-start') placement?: XCorner;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * TimePicker Option\r\n * @undocument true\r\n */\r\nexport interface XTimePickerOption extends XFormOption {\r\n /**\r\n * @zh_CN 时间类型\r\n * @en_US Time type\r\n */\r\n type?: XTimePickerType;\r\n /**\r\n * @zh_CN 格式化\r\n * @en_US Format\r\n */\r\n format?: string;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XCorner;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n nodeClick?: (date: number) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN 时间选择\r\n * @en_US Time selection\r\n */\r\nexport type XTimePickerType = 'time' | 'hour' | 'minute';\r\n\r\n/**\r\n * TimePickerPortal\r\n * @selector x-time-picker-portal\r\n * @decorator component\r\n */\r\nexport const XTimePickerPortalPrefix = 'x-time-picker-portal';\r\n\r\n/**\r\n * TimePickerFrame\r\n * @selector x-time-picker-frame\r\n * @decorator component\r\n */\r\nexport const XTimePickerFramePrefix = 'x-time-picker-frame';\r\n","import { XListNode } from '@ng-nest/ui/list';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n Renderer2,\r\n OnDestroy,\r\n HostBinding,\r\n HostListener\r\n} from '@angular/core';\r\nimport { XTimePickerPortalPrefix, XTimePickerType } from './time-picker.property';\r\nimport { XConnectBaseAnimation, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XTimePickerPortalPrefix}`,\r\n templateUrl: './time-picker-portal.component.html',\r\n styleUrls: ['./time-picker-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XTimePickerPortalComponent implements OnInit, OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start(event: { toState: any }) {\r\n this.animating(true);\r\n }\r\n type: XTimePickerType = 'time';\r\n value: any;\r\n valueChange!: Subject<any>;\r\n positionChange!: Subject<any>;\r\n closePortal!: Function;\r\n destroyPortal!: Function;\r\n animating!: Function;\r\n nodeEmit!: (date: Date) => void;\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x: any) => {\r\n this.value = x;\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n}\r\n","import { XTimePickerPortalComponent } from './time-picker-portal.component';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XTimePickerPrefix, XTimePickerProperty } from './time-picker.property';\r\nimport { XIsEmpty, XIsDate, XIsNumber, XCorner, XClearClass } from '@ng-nest/ui/core';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Overlay, OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XTimePickerPrefix}`,\r\n templateUrl: './time-picker.component.html',\r\n styleUrls: ['./time-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XTimePickerComponent), DatePipe]\r\n})\r\nexport class XTimePickerComponent extends XTimePickerProperty implements OnInit {\r\n @ViewChild('datePicker', { static: true }) datePicker!: ElementRef;\r\n @ViewChild('inputCom', { static: true }) inputCom!: XInputComponent;\r\n\r\n writeValue(value: any) {\r\n if (XIsDate(value)) this.value = value.getTime();\r\n else if (XIsNumber(value)) this.value = value;\r\n else if (XIsEmpty(value)) this.value = '';\r\n this.setDisplayValue();\r\n this.valueChange.next(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n readonly: boolean = true;\r\n clearable: boolean = false;\r\n enter: boolean = false;\r\n animating = false;\r\n displayValue: any = '';\r\n portal!: XPortalOverlayRef<XTimePickerPortalComponent>;\r\n icon: string = 'fto-clock';\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 8;\r\n protalTobottom: boolean = true;\r\n valueChange: Subject<any> = new Subject();\r\n dataChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n closeSubject: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n private elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private datePipe: DatePipe,\r\n private overlay: Overlay\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.datePicker.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setFormat();\r\n this.setClassMap();\r\n this.setSubject();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n setFormat() {\r\n if (this.format === 'HH:mm:ss') {\r\n if (this.type === 'hour') {\r\n this.format = 'HH';\r\n } else if (this.type === 'minute') {\r\n this.format = 'HH:mm';\r\n }\r\n }\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.closePortal();\r\n });\r\n }\r\n\r\n menter() {\r\n if (this.disabled) return;\r\n this.enter = true;\r\n if (!XIsEmpty(this.value)) {\r\n this.icon = '';\r\n this.clearable = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n mleave() {\r\n if (this.disabled) return;\r\n this.enter = false;\r\n if (this.clearable) {\r\n this.icon = 'fto-clock';\r\n this.clearable = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = '';\r\n this.displayValue = '';\r\n this.mleave();\r\n this.valueChange.next(this.value);\r\n if (this.onChange) this.onChange(this.value);\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (this.disabled || this.animating) return;\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XTimePickerPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XCorner;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n type: this.type,\r\n value: this.value,\r\n placement: this.placement,\r\n valueChange: this.valueChange,\r\n positionChange: this.positionChange,\r\n closePortal: () => this.closeSubject.next(),\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: Date) => this.onNodeClick(node),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onNodeClick(date: Date) {\r\n this.value = date.getTime();\r\n this.setDisplayValue();\r\n this.cdr.detectChanges();\r\n if (this.onChange) this.onChange(this.value);\r\n this.nodeEmit.emit(this.value);\r\n }\r\n\r\n setDisplayValue() {\r\n this.displayValue = this.datePipe.transform(this.value, this.format);\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputElement,\r\n placement: [this.placement as XCorner, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-time-picker-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n if (this.portalAttached()) {\r\n this.portal.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { XTimePickerFramePrefix, XTimePickerType } from './time-picker.property';\r\nimport { XListNode } from '@ng-nest/ui/list';\r\nimport { reqAnimFrame, XIsChange, XIsEmpty } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XTimePickerFramePrefix}`,\r\n templateUrl: './time-picker-frame.component.html',\r\n styleUrls: ['./time-picker-frame.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTimePickerFrameComponent {\r\n @Input() type: XTimePickerType = 'time';\r\n @Input() value!: number;\r\n @Output() nodeEmit = new EventEmitter<Date>();\r\n @ViewChild('hourRef', { static: false }) hourRef!: ElementRef;\r\n @ViewChild('minuteRef', { static: false }) minuteRef!: ElementRef;\r\n @ViewChild('secondRef', { static: false }) secondRef!: ElementRef;\r\n model!: Date;\r\n now = new Date();\r\n hour: number = 0;\r\n minute: number = 0;\r\n second: number = 0;\r\n hourDate = Array.from({ length: 24 }).map((_, i) => {\r\n return {\r\n label: this.prefixZero(i, 2),\r\n id: i\r\n };\r\n });\r\n minuteDate = Array.from({ length: 60 }).map((_, i) => {\r\n return {\r\n label: this.prefixZero(i, 2),\r\n id: i\r\n };\r\n });\r\n secondDate = Array.from({ length: 60 }).map((_, i) => {\r\n return {\r\n label: this.prefixZero(i, 2),\r\n id: i\r\n };\r\n });\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (XIsChange(changes.value)) {\r\n this.init();\r\n this.setScrollTop();\r\n }\r\n }\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n init() {\r\n if (!XIsEmpty(this.value)) {\r\n this.setDefault();\r\n } else {\r\n this.model = new Date(0, 0, 0, this.now.getHours(), this.now.getMinutes(), this.now.getSeconds());\r\n }\r\n this.setTime(this.model);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setDefault() {\r\n const date = new Date(this.value);\r\n this.model = new Date(0, 0, 0, date.getHours(), date.getMinutes(), date.getSeconds());\r\n }\r\n\r\n setTime(date: Date) {\r\n this.hour = date.getHours();\r\n this.minute = date.getMinutes();\r\n this.second = date.getSeconds();\r\n }\r\n\r\n prefixZero(num: number, n: number) {\r\n return (Array(n).join('0') + num).slice(-n);\r\n }\r\n\r\n setScrollTop() {\r\n this.selected(this.hourRef.nativeElement, this.hour);\r\n this.selected(this.minuteRef.nativeElement, this.minute);\r\n this.selected(this.secondRef.nativeElement, this.second);\r\n }\r\n\r\n selected(ele: HTMLElement, num: number) {\r\n let current = ele.querySelector(`ul li:nth-child(${num + 1})`) as HTMLElement;\r\n if (current) {\r\n ele.scrollTop = current.offsetTop;\r\n }\r\n }\r\n\r\n hourClick(date: XListNode) {\r\n this.hour = date.id;\r\n this.model.setHours(this.hour);\r\n this.nodeEmit.emit(this.model);\r\n this.cdr.detectChanges();\r\n this.scrollTo(this.hourRef.nativeElement, (date.event?.srcElement as HTMLElement).offsetTop, 120);\r\n }\r\n\r\n minuteClick(date: XListNode) {\r\n this.minute = date.id;\r\n this.model.setMinutes(this.minute);\r\n this.nodeEmit.emit(this.model);\r\n this.cdr.detectChanges();\r\n this.scrollTo(this.minuteRef.nativeElement, (date.event?.srcElement as HTMLElement).offsetTop, 120);\r\n }\r\n\r\n secondClick(date: XListNode) {\r\n this.second = date.id;\r\n this.model.setSeconds(this.second);\r\n this.nodeEmit.emit(this.model);\r\n this.cdr.detectChanges();\r\n this.scrollTo(this.secondRef.nativeElement, (date.event?.srcElement as HTMLElement).offsetTop, 120);\r\n }\r\n\r\n private scrollTo(element: HTMLElement, to: number, duration: number): void {\r\n const difference = to - element.scrollTop;\r\n const perTick = (difference / duration) * 10;\r\n reqAnimFrame(() => {\r\n element.scrollTop = element.scrollTop + perTick;\r\n if (element.scrollTop === to || duration <= 0) {\r\n return;\r\n } else {\r\n this.scrollTo(element, to, duration - 10);\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XListModule } from '@ng-nest/ui/list';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\nimport { XTimePickerComponent } from './time-picker.component';\r\nimport { XTimePickerPortalComponent } from './time-picker-portal.component';\r\nimport { XTimePickerProperty } from './time-picker.property';\r\nimport { XTimePickerFrameComponent } from './time-picker-frame.component';\r\n\r\n@NgModule({\r\n declarations: [XTimePickerComponent, XTimePickerPortalComponent, XTimePickerFrameComponent, XTimePickerProperty],\r\n exports: [XTimePickerComponent, XTimePickerPortalComponent, XTimePickerFrameComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XPortalModule,\r\n XInputModule,\r\n XListModule,\r\n XButtonModule,\r\n XIconModule,\r\n XBaseFormModule\r\n ],\r\n entryComponents: [XTimePickerPortalComponent]\r\n})\r\nexport class XTimePickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-timeline.js","sources":["../../../../lib/ng-nest/ui/timeline/timeline.property.ts","../../../../lib/ng-nest/ui/timeline/timeline.component.ts","../../../../lib/ng-nest/ui/timeline/timeline.module.ts","../../../../lib/ng-nest/ui/timeline/ng-nest-ui-timeline.ts"],"sourcesContent":["import { XType, XSize, XData, XTemplate, XProperty, XIdentityProperty, XDataConvert, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Timeline\r\n * @selector x-timeline\r\n * @decorator component\r\n */\r\nexport const XTimelinePrefix = 'x-timeline';\r\nconst X_CONFIG_NAME = 'timeline';\r\n\r\n/**\r\n * Timeline Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTimelineProperty extends XProperty {\r\n /**\r\n * @zh_CN 数据\r\n * @en_US Date\r\n */\r\n @Input() @XDataConvert() data: XData<XTimelineNode> = [];\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Type\r\n */\r\n @Input() type: XType;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') size: XSize;\r\n /**\r\n * @zh_CN 内容模板\r\n * @en_US Content template\r\n */\r\n @Input() wrapper: XTemplate;\r\n}\r\n\r\n/**\r\n * @zh_CN Timeline 数据对象\r\n * @en_US Timeline 数据对象\r\n */\r\nexport interface XTimelineNode extends XIdentityProperty {\r\n /**\r\n * @zh_CN 时间\r\n * @en_US Time\r\n */\r\n time?: string | Date;\r\n /**\r\n * @zh_CN 内容\r\n * @en_US Content\r\n */\r\n content?: string;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Type\r\n */\r\n type?: XType;\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 Color\r\n */\r\n color?: string;\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges\r\n} from '@angular/core';\r\nimport { XTimelinePrefix, XTimelineNode, XTimelineProperty } from './timeline.property';\r\nimport { XIsChange, XSetData, XConfigService } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XTimelinePrefix}`,\r\n templateUrl: './timeline.component.html',\r\n styleUrls: ['./timeline.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTimelineComponent extends XTimelineProperty implements OnInit, OnChanges {\r\n nodes: XTimelineNode[] = [];\r\n private _unSubject = new Subject<void>();\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {}\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 trackByNode(index: number, item: XTimelineNode) {\r\n return item.id;\r\n }\r\n\r\n private setData() {\r\n XSetData<XTimelineNode>(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 { XTimelineComponent } from './timeline.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XTimeAgoModule } from '@ng-nest/ui/time-ago';\r\nimport { XLinkModule } from '@ng-nest/ui/link';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XTimelineProperty } from './timeline.property';\r\n\r\n@NgModule({\r\n declarations: [XTimelineComponent, XTimelineProperty],\r\n exports: [XTimelineComponent],\r\n imports: [CommonModule, XIconModule, XTimeAgoModule, XLinkModule, XOutletModule]\r\n})\r\nexport class XTimelineModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;AAGA;;;;;MAKa,eAAe,GAAG,aAAa;AAC5C,MAAM,aAAa,GAAG,UAAU,CAAC;AAEjC;;;MAIa,iBAAkB,SAAQ,SAAS;IADhD;;;;;;QAM2B,SAAI,GAAyB,EAAE,CAAC;KAgB1D;;;YAtBA,SAAS,SAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;;;mBAMxB,KAAK;mBAKL,KAAK;mBAKL,KAAK;sBAKL,KAAK;;AAfmB;IAAf,YAAY,EAAE;;+CAAiC;AAUH;IAA5C,WAAW,CAAQ,aAAa,EAAE,QAAQ,CAAC;;+CAAa;;MCRvD,kBAAmB,SAAQ,iBAAiB;IAGvD,YACS,QAAmB,EACnB,UAAsB,EACtB,GAAsB,EACtB,aAA6B;QAEpC,KAAK,EAAE,CAAC;QALD,aAAQ,GAAR,QAAQ,CAAW;QACnB,eAAU,GAAV,UAAU,CAAY;QACtB,QAAG,GAAH,GAAG,CAAmB;QACtB,kBAAa,GAAb,aAAa,CAAgB;QANtC,UAAK,GAAoB,EAAE,CAAC;QACpB,eAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;KAQxC;IAED,QAAQ,MAAK;IAEb,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,WAAW,CAAC,KAAa,EAAE,IAAmB;QAC5C,OAAO,IAAI,CAAC,EAAE,CAAC;KAChB;IAEO,OAAO;QACb,QAAQ,CAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC1B,CAAC,CAAC;KACJ;;;YAvCF,SAAS,SAAC;gBACT,QAAQ,EAAE,GAAG,eAAe,EAAE;gBAC9B,u+BAAwC;gBAExC,aAAa,EAAE,iBAAiB,CAAC,IAAI;gBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;;YAjBC,SAAS;YACT,UAAU;YACV,iBAAiB;YAMW,cAAc;;;MCE/B,eAAe;;;YAL3B,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;gBACrD,OAAO,EAAE,CAAC,kBAAkB,CAAC;gBAC7B,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,CAAC;aACjF;;;ACbD;;;;;;"}
1
+ {"version":3,"file":"ng-nest-ui-timeline.js","sources":["../../../../lib/ng-nest/ui/timeline/timeline.property.ts","../../../../lib/ng-nest/ui/timeline/timeline.component.ts","../../../../lib/ng-nest/ui/timeline/timeline.module.ts","../../../../lib/ng-nest/ui/timeline/ng-nest-ui-timeline.ts"],"sourcesContent":["import { XType, XSize, XData, XTemplate, XProperty, XIdentityProperty, XDataConvert, XWithConfig, XDate } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Timeline\r\n * @selector x-timeline\r\n * @decorator component\r\n */\r\nexport const XTimelinePrefix = 'x-timeline';\r\nconst X_CONFIG_NAME = 'timeline';\r\n\r\n/**\r\n * Timeline Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTimelineProperty extends XProperty {\r\n /**\r\n * @zh_CN 数据\r\n * @en_US Date\r\n */\r\n @Input() @XDataConvert() data: XData<XTimelineNode> = [];\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Type\r\n */\r\n @Input() type?: XType;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') size?: XSize;\r\n /**\r\n * @zh_CN 内容模板\r\n * @en_US Content template\r\n */\r\n @Input() wrapper?: XTemplate;\r\n}\r\n\r\n/**\r\n * @zh_CN Timeline 数据对象\r\n * @en_US Timeline 数据对象\r\n */\r\nexport interface XTimelineNode extends XIdentityProperty {\r\n /**\r\n * @zh_CN 时间\r\n * @en_US Time\r\n */\r\n time?: XDate;\r\n /**\r\n * @zh_CN 内容\r\n * @en_US Content\r\n */\r\n content?: string;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n size?: XSize;\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Type\r\n */\r\n type?: XType;\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 Color\r\n */\r\n color?: string;\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges\r\n} from '@angular/core';\r\nimport { XTimelinePrefix, XTimelineNode, XTimelineProperty } from './timeline.property';\r\nimport { XIsChange, XSetData, XConfigService } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XTimelinePrefix}`,\r\n templateUrl: './timeline.component.html',\r\n styleUrls: ['./timeline.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTimelineComponent extends XTimelineProperty implements OnInit, OnChanges {\r\n nodes: XTimelineNode[] = [];\r\n private _unSubject = new Subject<void>();\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {}\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 trackByNode(index: number, item: XTimelineNode) {\r\n return item.id;\r\n }\r\n\r\n private setData() {\r\n XSetData<XTimelineNode>(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 { XTimelineComponent } from './timeline.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XTimeAgoModule } from '@ng-nest/ui/time-ago';\r\nimport { XLinkModule } from '@ng-nest/ui/link';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XTimelineProperty } from './timeline.property';\r\n\r\n@NgModule({\r\n declarations: [XTimelineComponent, XTimelineProperty],\r\n exports: [XTimelineComponent],\r\n imports: [CommonModule, XIconModule, XTimeAgoModule, XLinkModule, XOutletModule]\r\n})\r\nexport class XTimelineModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;AAGA;;;;;MAKa,eAAe,GAAG,aAAa;AAC5C,MAAM,aAAa,GAAG,UAAU,CAAC;AAEjC;;;MAIa,iBAAkB,SAAQ,SAAS;IADhD;;;;;;QAM2B,SAAI,GAAyB,EAAE,CAAC;KAgB1D;;;YAtBA,SAAS,SAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;;;mBAMxB,KAAK;mBAKL,KAAK;mBAKL,KAAK;sBAKL,KAAK;;AAfmB;IAAf,YAAY,EAAE;;+CAAiC;AAUH;IAA5C,WAAW,CAAQ,aAAa,EAAE,QAAQ,CAAC;;+CAAc;;MCRxD,kBAAmB,SAAQ,iBAAiB;IAGvD,YACS,QAAmB,EACnB,UAAsB,EACtB,GAAsB,EACtB,aAA6B;QAEpC,KAAK,EAAE,CAAC;QALD,aAAQ,GAAR,QAAQ,CAAW;QACnB,eAAU,GAAV,UAAU,CAAY;QACtB,QAAG,GAAH,GAAG,CAAmB;QACtB,kBAAa,GAAb,aAAa,CAAgB;QANtC,UAAK,GAAoB,EAAE,CAAC;QACpB,eAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;KAQxC;IAED,QAAQ,MAAK;IAEb,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,WAAW,CAAC,KAAa,EAAE,IAAmB;QAC5C,OAAO,IAAI,CAAC,EAAE,CAAC;KAChB;IAEO,OAAO;QACb,QAAQ,CAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC1B,CAAC,CAAC;KACJ;;;YAvCF,SAAS,SAAC;gBACT,QAAQ,EAAE,GAAG,eAAe,EAAE;gBAC9B,u+BAAwC;gBAExC,aAAa,EAAE,iBAAiB,CAAC,IAAI;gBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;;YAjBC,SAAS;YACT,UAAU;YACV,iBAAiB;YAMW,cAAc;;;MCE/B,eAAe;;;YAL3B,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;gBACrD,OAAO,EAAE,CAAC,kBAAkB,CAAC;gBAC7B,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,CAAC;aACjF;;;ACbD;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-tooltip.js","sources":["../../../../lib/ng-nest/ui/tooltip/tooltip.property.ts","../../../../lib/ng-nest/ui/tooltip/tooltip-portal.component.ts","../../../../lib/ng-nest/ui/tooltip/tooltip.directive.ts","../../../../lib/ng-nest/ui/tooltip/tooltip.module.ts","../../../../lib/ng-nest/ui/tooltip/ng-nest-ui-tooltip.ts"],"sourcesContent":["import { XPlacement, XInputBoolean, XBoolean, XInputNumber, XNumber, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Directive } from '@angular/core';\r\n\r\n/**\r\n * Tooltip\r\n * @selector x-tooltip\r\n * @decorator directive\r\n */\r\nexport const XTooltipPrefix = 'x-tooltip';\r\nconst X_CONFIG_NAME = 'tooltip';\r\n\r\n/**\r\n * Tooltip Property\r\n */\r\n@Directive({ selector: `[${XTooltipPrefix}], ${XTooltipPrefix}` })\r\nexport class XTooltipProperty {\r\n /**\r\n * @zh_CN 内容\r\n * @en_US Content\r\n */\r\n @Input() content: string;\r\n /**\r\n * @zh_CN 显示位置\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom') placement: XPlacement;\r\n /**\r\n * @zh_CN 显示/隐藏\r\n * @en_US Show/hide\r\n */\r\n @Input() @XInputBoolean() visible: XBoolean;\r\n /**\r\n * @zh_CN 手动处理关闭事件\r\n * @en_US Manually handle the shutdown event\r\n */\r\n @Input() @XInputBoolean() manual: XBoolean;\r\n}\r\n\r\n/**\r\n * Tooltip Portal\r\n * @selector x-tooltip-portal\r\n * @decorator component\r\n */\r\nexport const XTooltipPortalPrefix = 'x-tooltip-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n ElementRef,\r\n OnDestroy,\r\n ViewChild,\r\n Renderer2,\r\n HostListener,\r\n AfterViewInit,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { XTooltipPortalPrefix } from './tooltip.property';\r\nimport { XPlacement, XClassMap, XFadeAnimation } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XTooltipPortalPrefix}`,\r\n templateUrl: './tooltip-portal.component.html',\r\n styleUrls: ['./tooltip-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XFadeAnimation]\r\n})\r\nexport class XTooltipPortalComponent implements OnInit, OnDestroy, OnDestroy, AfterViewInit {\r\n @HostListener('mouseenter') mouseenter() {\r\n this.portalHover(true);\r\n }\r\n @HostListener('mouseleave') mouseleave() {\r\n this.portalHover(false);\r\n }\r\n\r\n @HostBinding('@x-fade-animation') animation: any;\r\n\r\n @ViewChild('tooltipPortal', { static: true }) tooltipPortal: ElementRef;\r\n @ViewChild('tooltipArrow', { static: false }) tooltipArrow: ElementRef;\r\n\r\n contentChange: BehaviorSubject<any>;\r\n classMap: XClassMap = {};\r\n box: DOMRect;\r\n portalBox: DOMRect;\r\n arrowBox: DOMRect;\r\n portalHover: Function;\r\n viewInit: Function;\r\n destroy: Function;\r\n placement: XPlacement;\r\n previousPlacement: XPlacement;\r\n content: string;\r\n positionChange: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(private renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.contentChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.content = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.setClassMap();\r\n setTimeout(() => this.setArrow());\r\n this.cdr.detectChanges();\r\n });\r\n this.setClassMap();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.viewInit();\r\n this.portalBox = this.tooltipPortal.nativeElement.getBoundingClientRect();\r\n this.arrowBox = this.tooltipArrow.nativeElement.getBoundingClientRect();\r\n this.setArrow();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XTooltipPortalPrefix}-${this.previousPlacement}`] = false;\r\n this.classMap[`${XTooltipPortalPrefix}-${this.placement}`] = true;\r\n this.previousPlacement = `${this.placement}` as XPlacement;\r\n }\r\n\r\n setArrow() {\r\n let offset = this.arrowBox.height / 2;\r\n if (this.portalBox.height > this.box.height && (this.includes('right-') || this.includes('left-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.tooltipArrow.nativeElement, 'top', `${this.box.height / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.tooltipArrow.nativeElement, 'bottom', `${this.box.height / 2 - offset}px`);\r\n }\r\n } else if (this.portalBox.width > this.box.width && (this.includes('top-') || this.includes('bottom-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.tooltipArrow.nativeElement, 'left', `${this.box.width / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.tooltipArrow.nativeElement, 'right', `${this.box.width / 2 - offset}px`);\r\n }\r\n }\r\n }\r\n\r\n includes(arrow: string) {\r\n return this.placement.indexOf(arrow) >= 0;\r\n }\r\n}\r\n","import { ElementRef, ViewContainerRef, Directive, HostListener, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XTooltipPortalComponent } from './tooltip-portal.component';\r\nimport { XTooltipPrefix, XTooltipProperty } from './tooltip.property';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { XIsChange, XPlacement } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, Overlay } from '@angular/cdk/overlay';\r\n\r\n@Directive({ selector: `[${XTooltipPrefix}], ${XTooltipPrefix}` })\r\nexport class XTooltipDirective extends XTooltipProperty implements OnChanges, OnDestroy {\r\n portal: XPortalOverlayRef<XTooltipPortalComponent>;\r\n box: DOMRect;\r\n contentChange: BehaviorSubject<any> = new BehaviorSubject(null);\r\n positionChange: Subject<any> = new Subject();\r\n timeoutHide: any;\r\n private _unSubject = new Subject();\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay\r\n ) {\r\n super();\r\n }\r\n\r\n @HostListener('mouseenter') mouseenter() {\r\n !this.manual && this.show();\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n !this.manual && this.hide();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.content) && this.contentChange.next(this.content);\r\n if (XIsChange(changes.visible)) {\r\n if (this.visible) this.show();\r\n else this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.contentChange.unsubscribe();\r\n }\r\n\r\n show() {\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n if (!this.portal || (this.portal && !this.portal.overlayRef?.hasAttached())) {\r\n this.visible = true;\r\n this.createPortal();\r\n }\r\n }\r\n\r\n hide() {\r\n if (this.portal?.overlayRef?.hasAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.visible = false;\r\n this.portal.overlayRef?.dispose();\r\n });\r\n }\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.portalService.setPlacement({\r\n elementRef: this.elementRef,\r\n placement: [this.placement, 'bottom', 'top', 'left', 'right']\r\n }),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XTooltipPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPlacement;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n this.box = this.elementRef.nativeElement.getBoundingClientRect();\r\n Object.assign(componentRef.instance, {\r\n box: this.box,\r\n content: this.content,\r\n contentChange: this.contentChange,\r\n placement: this.placement,\r\n positionChange: this.positionChange,\r\n portalHover: (hover: boolean) => {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.hide();\r\n }\r\n },\r\n viewInit: () => this.updatePortal()\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n updatePortal() {\r\n this.portal.overlayRef?.updatePosition();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XTooltipDirective } from './tooltip.directive';\r\nimport { XTooltipPortalComponent } from './tooltip-portal.component';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XTooltipProperty } from './tooltip.property';\r\n\r\n@NgModule({\r\n declarations: [XTooltipDirective, XTooltipPortalComponent, XTooltipProperty],\r\n exports: [XTooltipDirective, XTooltipPortalComponent],\r\n imports: [CommonModule, XPortalModule],\r\n entryComponents: [XTooltipPortalComponent]\r\n})\r\nexport class XTooltipModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-tooltip.js","sources":["../../../../lib/ng-nest/ui/tooltip/tooltip.property.ts","../../../../lib/ng-nest/ui/tooltip/tooltip-portal.component.ts","../../../../lib/ng-nest/ui/tooltip/tooltip.directive.ts","../../../../lib/ng-nest/ui/tooltip/tooltip.module.ts","../../../../lib/ng-nest/ui/tooltip/ng-nest-ui-tooltip.ts"],"sourcesContent":["import { XPlacement, XInputBoolean, XBoolean, XInputNumber, XNumber, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Directive } from '@angular/core';\r\n\r\n/**\r\n * Tooltip\r\n * @selector x-tooltip\r\n * @decorator directive\r\n */\r\nexport const XTooltipPrefix = 'x-tooltip';\r\nconst X_CONFIG_NAME = 'tooltip';\r\n\r\n/**\r\n * Tooltip Property\r\n */\r\n@Directive({ selector: `[${XTooltipPrefix}], ${XTooltipPrefix}` })\r\nexport class XTooltipProperty {\r\n /**\r\n * @zh_CN 内容\r\n * @en_US Content\r\n */\r\n @Input() content?: string;\r\n /**\r\n * @zh_CN 显示位置\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XPlacement>(X_CONFIG_NAME, 'bottom') placement?: XPlacement;\r\n /**\r\n * @zh_CN 显示/隐藏\r\n * @en_US Show/hide\r\n */\r\n @Input() @XInputBoolean() visible?: XBoolean;\r\n /**\r\n * @zh_CN 手动处理关闭事件\r\n * @en_US Manually handle the shutdown event\r\n */\r\n @Input() @XInputBoolean() manual?: XBoolean;\r\n}\r\n\r\n/**\r\n * Tooltip Portal\r\n * @selector x-tooltip-portal\r\n * @decorator component\r\n */\r\nexport const XTooltipPortalPrefix = 'x-tooltip-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n ElementRef,\r\n OnDestroy,\r\n ViewChild,\r\n Renderer2,\r\n HostListener,\r\n AfterViewInit,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { XTooltipPortalPrefix } from './tooltip.property';\r\nimport { XPlacement, XClassMap, XFadeAnimation } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: `${XTooltipPortalPrefix}`,\r\n templateUrl: './tooltip-portal.component.html',\r\n styleUrls: ['./tooltip-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XFadeAnimation]\r\n})\r\nexport class XTooltipPortalComponent implements OnInit, OnDestroy, OnDestroy, AfterViewInit {\r\n @HostListener('mouseenter') mouseenter() {\r\n this.portalHover(true);\r\n }\r\n @HostListener('mouseleave') mouseleave() {\r\n this.portalHover(false);\r\n }\r\n\r\n @HostBinding('@x-fade-animation') animation: any;\r\n\r\n @ViewChild('tooltipPortal', { static: true }) tooltipPortal!: ElementRef;\r\n @ViewChild('tooltipArrow', { static: false }) tooltipArrow!: ElementRef;\r\n\r\n contentChange!: BehaviorSubject<any>;\r\n classMap: XClassMap = {};\r\n box!: DOMRect;\r\n portalBox!: DOMRect;\r\n arrowBox!: DOMRect;\r\n portalHover!: Function;\r\n viewInit!: Function;\r\n destroy!: Function;\r\n placement!: XPlacement;\r\n previousPlacement!: XPlacement;\r\n content!: string;\r\n positionChange: Subject<any> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(private renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.contentChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.content = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.setClassMap();\r\n setTimeout(() => this.setArrow());\r\n this.cdr.detectChanges();\r\n });\r\n this.setClassMap();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.viewInit();\r\n this.portalBox = this.tooltipPortal.nativeElement.getBoundingClientRect();\r\n this.arrowBox = this.tooltipArrow.nativeElement.getBoundingClientRect();\r\n this.setArrow();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XTooltipPortalPrefix}-${this.previousPlacement}`] = false;\r\n this.classMap[`${XTooltipPortalPrefix}-${this.placement}`] = true;\r\n this.previousPlacement = `${this.placement}` as XPlacement;\r\n }\r\n\r\n setArrow() {\r\n let offset = this.arrowBox.height / 2;\r\n if (this.portalBox.height > this.box.height && (this.includes('right-') || this.includes('left-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.tooltipArrow.nativeElement, 'top', `${this.box.height / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.tooltipArrow.nativeElement, 'bottom', `${this.box.height / 2 - offset}px`);\r\n }\r\n } else if (this.portalBox.width > this.box.width && (this.includes('top-') || this.includes('bottom-'))) {\r\n if (this.includes('-start')) {\r\n this.renderer.setStyle(this.tooltipArrow.nativeElement, 'left', `${this.box.width / 2 - offset}px`);\r\n } else if (this.includes('-end')) {\r\n this.renderer.setStyle(this.tooltipArrow.nativeElement, 'right', `${this.box.width / 2 - offset}px`);\r\n }\r\n }\r\n }\r\n\r\n includes(arrow: string) {\r\n return this.placement.indexOf(arrow) >= 0;\r\n }\r\n}\r\n","import { ElementRef, ViewContainerRef, Directive, HostListener, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XTooltipPortalComponent } from './tooltip-portal.component';\r\nimport { XTooltipPrefix, XTooltipProperty } from './tooltip.property';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { XIsChange, XPlacement } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { OverlayConfig, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, Overlay } from '@angular/cdk/overlay';\r\n\r\n@Directive({ selector: `[${XTooltipPrefix}], ${XTooltipPrefix}` })\r\nexport class XTooltipDirective extends XTooltipProperty implements OnChanges, OnDestroy {\r\n portal!: XPortalOverlayRef<XTooltipPortalComponent>;\r\n box!: DOMRect;\r\n contentChange: BehaviorSubject<any> = new BehaviorSubject(null);\r\n positionChange: Subject<any> = new Subject();\r\n timeoutHide: any;\r\n private _unSubject = new Subject();\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay\r\n ) {\r\n super();\r\n }\r\n\r\n @HostListener('mouseenter') mouseenter() {\r\n !this.manual && this.show();\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n !this.manual && this.hide();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.content) && this.contentChange.next(this.content);\r\n if (XIsChange(changes.visible)) {\r\n if (this.visible) this.show();\r\n else this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.contentChange.unsubscribe();\r\n }\r\n\r\n show() {\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n if (!this.portal || (this.portal && !this.portal.overlayRef?.hasAttached())) {\r\n this.visible = true;\r\n this.createPortal();\r\n }\r\n }\r\n\r\n hide() {\r\n if (this.portal?.overlayRef?.hasAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.visible = false;\r\n this.portal.overlayRef?.dispose();\r\n });\r\n }\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n positionStrategy: this.portalService.setPlacement({\r\n elementRef: this.elementRef,\r\n placement: [this.placement as XPlacement, 'bottom', 'top', 'left', 'right']\r\n }),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XTooltipPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPlacement;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal?.componentRef;\r\n if (!componentRef) return;\r\n this.box = this.elementRef.nativeElement.getBoundingClientRect();\r\n Object.assign(componentRef.instance, {\r\n box: this.box,\r\n content: this.content,\r\n contentChange: this.contentChange,\r\n placement: this.placement,\r\n positionChange: this.positionChange,\r\n portalHover: (hover: boolean) => {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.hide();\r\n }\r\n },\r\n viewInit: () => this.updatePortal()\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n updatePortal() {\r\n this.portal.overlayRef?.updatePosition();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XTooltipDirective } from './tooltip.directive';\r\nimport { XTooltipPortalComponent } from './tooltip-portal.component';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XTooltipProperty } from './tooltip.property';\r\n\r\n@NgModule({\r\n declarations: [XTooltipDirective, XTooltipPortalComponent, XTooltipProperty],\r\n exports: [XTooltipDirective, XTooltipPortalComponent],\r\n imports: [CommonModule, XPortalModule],\r\n entryComponents: [XTooltipPortalComponent]\r\n})\r\nexport class XTooltipModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -146,11 +146,12 @@ class XTransferComponent extends XTransferProperty {
146
146
  this.cdr.detectChanges();
147
147
  }
148
148
  dropCdk(event) {
149
- if (event.previousContainer === event.container) {
150
- moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
149
+ const ev = event;
150
+ if (ev.previousContainer === ev.container) {
151
+ moveItemInArray(ev.container.data, ev.previousIndex, ev.currentIndex);
151
152
  }
152
153
  else {
153
- transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
154
+ transferArrayItem(ev.previousContainer.data, ev.container.data, ev.previousIndex, ev.currentIndex);
154
155
  this.setCheckedCount(this.left, this.right);
155
156
  this.setCheckedAll(this.left, this.right);
156
157
  this.setButtonDisabled(this.left, this.right);
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-transfer.js","sources":["../../../../lib/ng-nest/ui/transfer/transfer.property.ts","../../../../lib/ng-nest/ui/transfer/transfer.component.ts","../../../../lib/ng-nest/ui/transfer/transfer.module.ts","../../../../lib/ng-nest/ui/transfer/ng-nest-ui-transfer.ts"],"sourcesContent":["import {\r\n XData,\r\n XDataConvert,\r\n XInputBoolean,\r\n XParentIdentityProperty,\r\n XBoolean,\r\n XWithConfig\r\n} from '@ng-nest/ui/core';\r\nimport { TemplateRef, Input, Component } from '@angular/core';\r\nimport { XControlValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Transfer\r\n * @selector x-transfer\r\n * @decorator component\r\n */\r\nexport const XTransferPrefix = 'x-transfer';\r\n\r\nconst X_CONFIG_NAME = 'transfer';\r\n\r\n/**\r\n * Transfer Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTransferProperty extends XControlValueAccessor<any[]> {\r\n /**\r\n * @zh_CN 数据对象\r\n * @en_US Data object\r\n */\r\n @Input() @XDataConvert() data: XData<XTransferNode> = [];\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n @Input() @XWithConfig<string[]>(X_CONFIG_NAME) titles: string[];\r\n /**\r\n * @zh_CN 是否能拖动\r\n * @en_US Can drag\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() drag: XBoolean;\r\n /**\r\n * @zh_CN 是否显示搜索(暂未实现)\r\n * @en_US Whether to display search (not implemented yet)\r\n */\r\n @Input() @XInputBoolean() search: XBoolean;\r\n /**\r\n * @zh_CN 数据自定义模板\r\n * @en_US Data customization template\r\n */\r\n @Input() nodeTpl: TemplateRef<any>;\r\n /**\r\n * @zh_CN 标题自定义模板\r\n * @en_US Title custom template\r\n */\r\n @Input() titleTpl: TemplateRef<any>;\r\n}\r\n\r\n/**\r\n * Transfer Node\r\n */\r\nexport interface XTransferNode extends XParentIdentityProperty<XTransferNode> {\r\n /**\r\n * @zh_CN checkbox 是否选中\r\n * @en_US whether checkbox is selected\r\n */\r\n checked?: boolean;\r\n /**\r\n * @zh_CN 序号\r\n * @en_US Serial number\r\n */\r\n index?: number;\r\n}\r\n\r\n/**\r\n * Transfer Source\r\n */\r\nexport interface XTransferSource {\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n title?: string;\r\n /**\r\n * @zh_CN 搜索的数据\r\n * @en_US Searched data\r\n */\r\n searchInput?: string;\r\n /**\r\n * @zh_CN 全选\r\n * @en_US Select all\r\n */\r\n checkedAll?: boolean;\r\n /**\r\n * @zh_CN 选中的数量\r\n * @en_US Selected quantity\r\n */\r\n checkedCount?: number;\r\n /**\r\n * @zh_CN 不确定状态的样式\r\n * @en_US Uncertain state style\r\n */\r\n indeterminate?: boolean;\r\n /**\r\n * @zh_CN 列表数据\r\n * @en_US List data\r\n */\r\n list?: XTransferNode[];\r\n /**\r\n * @zh_CN 搜索数据,用来还原\r\n * @en_US Search data to restore\r\n */\r\n searchList?: XTransferNode[];\r\n /**\r\n * @zh_CN 按钮禁用\r\n * @en_US Button disabled\r\n */\r\n disabledButton?: boolean;\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XTransferPrefix, XTransferNode, XTransferSource, XTransferProperty } from './transfer.property';\r\nimport { XIsChange, XIsEmpty, XSetData, XConfigService } from '@ng-nest/ui/core';\r\nimport { of, Subject } from 'rxjs';\r\nimport { delay, takeUntil } from 'rxjs/operators';\r\nimport { transferArrayItem, moveItemInArray, CdkDragDrop, CdkDrag } from '@angular/cdk/drag-drop';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XTransferPrefix}`,\r\n templateUrl: './transfer.component.html',\r\n styleUrls: ['./transfer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XTransferComponent)]\r\n})\r\nexport class XTransferComponent extends XTransferProperty implements OnInit, OnChanges, OnDestroy {\r\n nodes: XTransferNode[] = [];\r\n left: XTransferSource = {\r\n list: [],\r\n searchList: [],\r\n checkedCount: 0,\r\n disabledButton: true\r\n };\r\n right: XTransferSource = {\r\n list: [],\r\n searchList: [],\r\n checkedCount: 0,\r\n disabledButton: true\r\n };\r\n searchInput: string = '';\r\n private _titles = ['List', 'Selected'];\r\n private _unSubject = new Subject<void>();\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n this.setList();\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setTitles();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n XIsChange(changes.data) && this.setData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n searchInputChange(source: XTransferSource) {\r\n source.list = source.searchList?.filter((x) => x.label.indexOf(source.searchInput) >= 0);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n checkedAllChange($event: boolean, source: XTransferSource) {\r\n let list = (source.list?.filter((x) => !x.disabled) as XTransferNode[]).map((x) => {\r\n x.checked = $event;\r\n return x;\r\n });\r\n source.checkedCount = $event ? list.length : 0;\r\n source.indeterminate = $event;\r\n this.setButtonDisabled(source);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n checkedChange($event: boolean, source: XTransferSource) {\r\n if (!$event) (source.checkedCount as number)--;\r\n else (source.checkedCount as number)++;\r\n this.setCheckedAll(source);\r\n this.setButtonDisabled(source);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n move(from: XTransferSource, to: XTransferSource) {\r\n if (from.disabledButton) return;\r\n let checkedItems = from.list?.filter((x) => !XIsEmpty(x.checked)) as XTransferNode[];\r\n let j = 0;\r\n checkedItems.forEach((x) => {\r\n const index = from.list?.indexOf(x) as number;\r\n x.checked = false;\r\n transferArrayItem(from.list as XTransferNode[], to.list as XTransferNode[], index, j);\r\n j++;\r\n });\r\n from.checkedAll = false;\r\n from.checkedCount = 0;\r\n from.indeterminate = false;\r\n from.disabledButton = true;\r\n this.setSearchList(from, to);\r\n this.setValue();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n dropCdk(event: CdkDragDrop<XTransferSource[]>) {\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n } else {\r\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\r\n this.setCheckedCount(this.left, this.right);\r\n this.setCheckedAll(this.left, this.right);\r\n this.setButtonDisabled(this.left, this.right);\r\n }\r\n this.setSearchList(this.left, this.right);\r\n this.setValue();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n predicate(item: CdkDrag<XTransferNode>) {\r\n return !item.data.disabled;\r\n }\r\n\r\n trackByNode(index: number, item: XTransferNode) {\r\n return item.id;\r\n }\r\n\r\n private setCheckedAll(...sources: XTransferSource[]) {\r\n for (let source of sources) {\r\n if ((source.checkedCount as number) > 0) {\r\n if (source.checkedCount === source.list?.filter((x) => !x.disabled).length) {\r\n source.checkedAll = true;\r\n } else {\r\n source.checkedAll = false;\r\n source.indeterminate = true;\r\n }\r\n } else {\r\n source.indeterminate = false;\r\n }\r\n }\r\n }\r\n\r\n private setCheckedCount(...sources: XTransferSource[]) {\r\n for (let source of sources) source.checkedCount = source.list?.filter((x) => !XIsEmpty(x.checked)).length;\r\n }\r\n\r\n private setButtonDisabled(...sources: XTransferSource[]) {\r\n for (let source of sources) source.disabledButton = source.checkedCount === 0;\r\n }\r\n\r\n private setValue() {\r\n this.value = this.right.list?.map((x) => x.id) as any[];\r\n this.onChange(this.value);\r\n }\r\n\r\n private setSearchList(...sources: XTransferSource[]) {\r\n if (this.search) {\r\n for (let source of sources) {\r\n if (XIsEmpty(source.searchInput)) {\r\n source.searchList = [...(source.list as XTransferNode[])];\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setData() {\r\n XSetData<XTransferNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n });\r\n }\r\n\r\n private setList() {\r\n if (!XIsEmpty(this.value)) {\r\n this.left.list = this.nodes.filter((x) => this.value.indexOf(x.id) < 0);\r\n this.right.list = this.nodes.filter((x) => this.value.indexOf(x.id) >= 0);\r\n } else {\r\n this.left.list = this.nodes;\r\n }\r\n this.setSearchList(this.left, this.right);\r\n // ToDo: x-checkbox error. Attempt to use a destroyed view: detectChanges\r\n of(true)\r\n .pipe(delay(0), takeUntil(this._unSubject))\r\n .subscribe(() => this.cdr.detectChanges());\r\n }\r\n\r\n private setTitles() {\r\n if (XIsEmpty(this.titles)) {\r\n this.titles = this._titles;\r\n }\r\n this.left.title = this.titles[0];\r\n if (this.titles.length > 1) this.right.title = this.titles[1];\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XTransferComponent } from './transfer.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XCheckboxModule } from '@ng-nest/ui/checkbox';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XTransferProperty } from './transfer.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XTransferComponent, XTransferProperty],\r\n exports: [XTransferComponent],\r\n imports: [CommonModule, FormsModule, DragDropModule, XOutletModule, XCheckboxModule, XButtonModule, XInputModule, XBaseFormModule]\r\n})\r\nexport class XTransferModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-transfer.js","sources":["../../../../lib/ng-nest/ui/transfer/transfer.property.ts","../../../../lib/ng-nest/ui/transfer/transfer.component.ts","../../../../lib/ng-nest/ui/transfer/transfer.module.ts","../../../../lib/ng-nest/ui/transfer/ng-nest-ui-transfer.ts"],"sourcesContent":["import {\r\n XData,\r\n XDataConvert,\r\n XInputBoolean,\r\n XParentIdentityProperty,\r\n XBoolean,\r\n XWithConfig\r\n} from '@ng-nest/ui/core';\r\nimport { TemplateRef, Input, Component } from '@angular/core';\r\nimport { XControlValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Transfer\r\n * @selector x-transfer\r\n * @decorator component\r\n */\r\nexport const XTransferPrefix = 'x-transfer';\r\n\r\nconst X_CONFIG_NAME = 'transfer';\r\n\r\n/**\r\n * Transfer Property\r\n */\r\n@Component({ template: '' })\r\nexport class XTransferProperty extends XControlValueAccessor<any[]> {\r\n /**\r\n * @zh_CN 数据对象\r\n * @en_US Data object\r\n */\r\n @Input() @XDataConvert() data: XData<XTransferNode> = [];\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n @Input() @XWithConfig<string[]>(X_CONFIG_NAME) titles!: string[];\r\n /**\r\n * @zh_CN 是否能拖动\r\n * @en_US Can drag\r\n */\r\n @Input() @XWithConfig<XBoolean>(X_CONFIG_NAME) @XInputBoolean() drag?: XBoolean;\r\n /**\r\n * @zh_CN 是否显示搜索(暂未实现)\r\n * @en_US Whether to display search (not implemented yet)\r\n */\r\n @Input() @XInputBoolean() search?: XBoolean;\r\n /**\r\n * @zh_CN 数据自定义模板\r\n * @en_US Data customization template\r\n */\r\n @Input() nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 标题自定义模板\r\n * @en_US Title custom template\r\n */\r\n @Input() titleTpl?: TemplateRef<any>;\r\n}\r\n\r\n/**\r\n * Transfer Node\r\n */\r\nexport interface XTransferNode extends XParentIdentityProperty<XTransferNode> {\r\n /**\r\n * @zh_CN checkbox 是否选中\r\n * @en_US whether checkbox is selected\r\n */\r\n checked?: boolean;\r\n /**\r\n * @zh_CN 序号\r\n * @en_US Serial number\r\n */\r\n index?: number;\r\n}\r\n\r\n/**\r\n * Transfer Source\r\n */\r\nexport interface XTransferSource {\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n title?: string;\r\n /**\r\n * @zh_CN 搜索的数据\r\n * @en_US Searched data\r\n */\r\n searchInput?: string;\r\n /**\r\n * @zh_CN 全选\r\n * @en_US Select all\r\n */\r\n checkedAll?: boolean;\r\n /**\r\n * @zh_CN 选中的数量\r\n * @en_US Selected quantity\r\n */\r\n checkedCount?: number;\r\n /**\r\n * @zh_CN 不确定状态的样式\r\n * @en_US Uncertain state style\r\n */\r\n indeterminate?: boolean;\r\n /**\r\n * @zh_CN 列表数据\r\n * @en_US List data\r\n */\r\n list?: XTransferNode[];\r\n /**\r\n * @zh_CN 搜索数据,用来还原\r\n * @en_US Search data to restore\r\n */\r\n searchList?: XTransferNode[];\r\n /**\r\n * @zh_CN 按钮禁用\r\n * @en_US Button disabled\r\n */\r\n disabledButton?: boolean;\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { XTransferPrefix, XTransferNode, XTransferSource, XTransferProperty } from './transfer.property';\r\nimport { XIsChange, XIsEmpty, XSetData, XConfigService } from '@ng-nest/ui/core';\r\nimport { of, Subject } from 'rxjs';\r\nimport { delay, takeUntil } from 'rxjs/operators';\r\nimport { transferArrayItem, moveItemInArray, CdkDragDrop, CdkDrag } from '@angular/cdk/drag-drop';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XTransferPrefix}`,\r\n templateUrl: './transfer.component.html',\r\n styleUrls: ['./transfer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XTransferComponent)]\r\n})\r\nexport class XTransferComponent extends XTransferProperty implements OnInit, OnChanges, OnDestroy {\r\n nodes: XTransferNode[] = [];\r\n left: XTransferSource = {\r\n list: [],\r\n searchList: [],\r\n checkedCount: 0,\r\n disabledButton: true\r\n };\r\n right: XTransferSource = {\r\n list: [],\r\n searchList: [],\r\n checkedCount: 0,\r\n disabledButton: true\r\n };\r\n searchInput: string = '';\r\n private _titles = ['List', 'Selected'];\r\n private _unSubject = new Subject<void>();\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n this.setList();\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setTitles();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n XIsChange(changes.data) && this.setData();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n searchInputChange(source: XTransferSource) {\r\n source.list = source.searchList?.filter((x) => x.label.indexOf(source.searchInput) >= 0);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n checkedAllChange($event: boolean, source: XTransferSource) {\r\n let list = (source.list?.filter((x) => !x.disabled) as XTransferNode[]).map((x) => {\r\n x.checked = $event;\r\n return x;\r\n });\r\n source.checkedCount = $event ? list.length : 0;\r\n source.indeterminate = $event;\r\n this.setButtonDisabled(source);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n checkedChange($event: boolean, source: XTransferSource) {\r\n if (!$event) (source.checkedCount as number)--;\r\n else (source.checkedCount as number)++;\r\n this.setCheckedAll(source);\r\n this.setButtonDisabled(source);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n move(from: XTransferSource, to: XTransferSource) {\r\n if (from.disabledButton) return;\r\n let checkedItems = from.list?.filter((x) => !XIsEmpty(x.checked)) as XTransferNode[];\r\n let j = 0;\r\n checkedItems.forEach((x) => {\r\n const index = from.list?.indexOf(x) as number;\r\n x.checked = false;\r\n transferArrayItem(from.list as XTransferNode[], to.list as XTransferNode[], index, j);\r\n j++;\r\n });\r\n from.checkedAll = false;\r\n from.checkedCount = 0;\r\n from.indeterminate = false;\r\n from.disabledButton = true;\r\n this.setSearchList(from, to);\r\n this.setValue();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n dropCdk(event: CdkDragDrop<XTransferNode[] | undefined, any>) {\r\n const ev = event as CdkDragDrop<XTransferNode[]>;\r\n if (ev.previousContainer === ev.container) {\r\n moveItemInArray(ev.container.data, ev.previousIndex, ev.currentIndex);\r\n } else {\r\n transferArrayItem(ev.previousContainer.data, ev.container.data, ev.previousIndex, ev.currentIndex);\r\n this.setCheckedCount(this.left, this.right);\r\n this.setCheckedAll(this.left, this.right);\r\n this.setButtonDisabled(this.left, this.right);\r\n }\r\n this.setSearchList(this.left, this.right);\r\n this.setValue();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n predicate(item: CdkDrag<XTransferNode>) {\r\n return !item.data.disabled;\r\n }\r\n\r\n trackByNode(index: number, item: XTransferNode) {\r\n return item.id;\r\n }\r\n\r\n private setCheckedAll(...sources: XTransferSource[]) {\r\n for (let source of sources) {\r\n if ((source.checkedCount as number) > 0) {\r\n if (source.checkedCount === source.list?.filter((x) => !x.disabled).length) {\r\n source.checkedAll = true;\r\n } else {\r\n source.checkedAll = false;\r\n source.indeterminate = true;\r\n }\r\n } else {\r\n source.indeterminate = false;\r\n }\r\n }\r\n }\r\n\r\n private setCheckedCount(...sources: XTransferSource[]) {\r\n for (let source of sources) source.checkedCount = source.list?.filter((x) => !XIsEmpty(x.checked)).length;\r\n }\r\n\r\n private setButtonDisabled(...sources: XTransferSource[]) {\r\n for (let source of sources) source.disabledButton = source.checkedCount === 0;\r\n }\r\n\r\n private setValue() {\r\n this.value = this.right.list?.map((x) => x.id) as any[];\r\n this.onChange(this.value);\r\n }\r\n\r\n private setSearchList(...sources: XTransferSource[]) {\r\n if (this.search) {\r\n for (let source of sources) {\r\n if (XIsEmpty(source.searchInput)) {\r\n source.searchList = [...(source.list as XTransferNode[])];\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setData() {\r\n XSetData<XTransferNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n });\r\n }\r\n\r\n private setList() {\r\n if (!XIsEmpty(this.value)) {\r\n this.left.list = this.nodes.filter((x) => this.value.indexOf(x.id) < 0);\r\n this.right.list = this.nodes.filter((x) => this.value.indexOf(x.id) >= 0);\r\n } else {\r\n this.left.list = this.nodes;\r\n }\r\n this.setSearchList(this.left, this.right);\r\n // ToDo: x-checkbox error. Attempt to use a destroyed view: detectChanges\r\n of(true)\r\n .pipe(delay(0), takeUntil(this._unSubject))\r\n .subscribe(() => this.cdr.detectChanges());\r\n }\r\n\r\n private setTitles() {\r\n if (XIsEmpty(this.titles)) {\r\n this.titles = this._titles;\r\n }\r\n this.left.title = this.titles[0];\r\n if (this.titles.length > 1) this.right.title = this.titles[1];\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XTransferComponent } from './transfer.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XCheckboxModule } from '@ng-nest/ui/checkbox';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XTransferProperty } from './transfer.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XTransferComponent, XTransferProperty],\r\n exports: [XTransferComponent],\r\n imports: [CommonModule, FormsModule, DragDropModule, XOutletModule, XCheckboxModule, XButtonModule, XInputModule, XBaseFormModule]\r\n})\r\nexport class XTransferModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}