@ng-nest/ui 12.0.8 → 12.0.10

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 (386) hide show
  1. package/auto-complete/auto-complete-portal.component.d.ts +1 -3
  2. package/auto-complete/auto-complete.component.d.ts +1 -1
  3. package/back-top/back-top.component.d.ts +1 -2
  4. package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
  5. package/bundles/ng-nest-ui-anchor.umd.js +1 -1
  6. package/bundles/ng-nest-ui-anchor.umd.js.map +1 -1
  7. package/bundles/ng-nest-ui-auto-complete.umd.js +7 -6
  8. package/bundles/ng-nest-ui-auto-complete.umd.js.map +1 -1
  9. package/bundles/ng-nest-ui-back-top.umd.js +2 -2
  10. package/bundles/ng-nest-ui-back-top.umd.js.map +1 -1
  11. package/bundles/ng-nest-ui-badge.umd.js +2 -1
  12. package/bundles/ng-nest-ui-badge.umd.js.map +1 -1
  13. package/bundles/ng-nest-ui-button.umd.js +4 -3
  14. package/bundles/ng-nest-ui-button.umd.js.map +1 -1
  15. package/bundles/ng-nest-ui-calendar.umd.js +4 -3
  16. package/bundles/ng-nest-ui-calendar.umd.js.map +1 -1
  17. package/bundles/ng-nest-ui-carousel.umd.js +3 -2
  18. package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
  19. package/bundles/ng-nest-ui-cascade.umd.js +9 -9
  20. package/bundles/ng-nest-ui-cascade.umd.js.map +1 -1
  21. package/bundles/ng-nest-ui-checkbox.umd.js +3 -2
  22. package/bundles/ng-nest-ui-checkbox.umd.js.map +1 -1
  23. package/bundles/ng-nest-ui-color-picker.umd.js +9 -10
  24. package/bundles/ng-nest-ui-color-picker.umd.js.map +1 -1
  25. package/bundles/ng-nest-ui-color.umd.js +1 -1
  26. package/bundles/ng-nest-ui-color.umd.js.map +1 -1
  27. package/bundles/ng-nest-ui-comment.umd.js +3 -2
  28. package/bundles/ng-nest-ui-comment.umd.js.map +1 -1
  29. package/bundles/ng-nest-ui-container.umd.js.map +1 -1
  30. package/bundles/ng-nest-ui-core.umd.js +3 -3
  31. package/bundles/ng-nest-ui-core.umd.js.map +1 -1
  32. package/bundles/ng-nest-ui-crumb.umd.js +3 -2
  33. package/bundles/ng-nest-ui-crumb.umd.js.map +1 -1
  34. package/bundles/ng-nest-ui-date-picker.umd.js +34 -44
  35. package/bundles/ng-nest-ui-date-picker.umd.js.map +1 -1
  36. package/bundles/ng-nest-ui-description.umd.js +5 -6
  37. package/bundles/ng-nest-ui-description.umd.js.map +1 -1
  38. package/bundles/ng-nest-ui-dialog.umd.js +2 -1
  39. package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
  40. package/bundles/ng-nest-ui-drawer.umd.js +2 -1
  41. package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
  42. package/bundles/ng-nest-ui-dropdown.umd.js +4 -3
  43. package/bundles/ng-nest-ui-dropdown.umd.js.map +1 -1
  44. package/bundles/ng-nest-ui-find.umd.js +6 -5
  45. package/bundles/ng-nest-ui-find.umd.js.map +1 -1
  46. package/bundles/ng-nest-ui-form.umd.js +6 -10
  47. package/bundles/ng-nest-ui-form.umd.js.map +1 -1
  48. package/bundles/ng-nest-ui-highlight.umd.js +2 -1
  49. package/bundles/ng-nest-ui-highlight.umd.js.map +1 -1
  50. package/bundles/ng-nest-ui-i18n.umd.js +2 -1
  51. package/bundles/ng-nest-ui-i18n.umd.js.map +1 -1
  52. package/bundles/ng-nest-ui-icon.umd.js +3 -2
  53. package/bundles/ng-nest-ui-icon.umd.js.map +1 -1
  54. package/bundles/ng-nest-ui-inner.umd.js +1 -1
  55. package/bundles/ng-nest-ui-inner.umd.js.map +1 -1
  56. package/bundles/ng-nest-ui-input.umd.js +7 -6
  57. package/bundles/ng-nest-ui-input.umd.js.map +1 -1
  58. package/bundles/ng-nest-ui-list.umd.js +4 -3
  59. package/bundles/ng-nest-ui-list.umd.js.map +1 -1
  60. package/bundles/ng-nest-ui-loading.umd.js +2 -1
  61. package/bundles/ng-nest-ui-loading.umd.js.map +1 -1
  62. package/bundles/ng-nest-ui-menu.umd.js +6 -6
  63. package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
  64. package/bundles/ng-nest-ui-message-box.umd.js +28 -26
  65. package/bundles/ng-nest-ui-message-box.umd.js.map +1 -1
  66. package/bundles/ng-nest-ui-message.umd.js +1 -1
  67. package/bundles/ng-nest-ui-message.umd.js.map +1 -1
  68. package/bundles/ng-nest-ui-notification.umd.js +1 -1
  69. package/bundles/ng-nest-ui-notification.umd.js.map +1 -1
  70. package/bundles/ng-nest-ui-pagination.umd.js +3 -2
  71. package/bundles/ng-nest-ui-pagination.umd.js.map +1 -1
  72. package/bundles/ng-nest-ui-popover.umd.js +3 -2
  73. package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
  74. package/bundles/ng-nest-ui-progress.umd.js +3 -2
  75. package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
  76. package/bundles/ng-nest-ui-radio.umd.js +3 -2
  77. package/bundles/ng-nest-ui-radio.umd.js.map +1 -1
  78. package/bundles/ng-nest-ui-rate.umd.js +5 -5
  79. package/bundles/ng-nest-ui-rate.umd.js.map +1 -1
  80. package/bundles/ng-nest-ui-ripple.umd.js.map +1 -1
  81. package/bundles/ng-nest-ui-select.umd.js +6 -5
  82. package/bundles/ng-nest-ui-select.umd.js.map +1 -1
  83. package/bundles/ng-nest-ui-skeleton.umd.js +2 -1
  84. package/bundles/ng-nest-ui-skeleton.umd.js.map +1 -1
  85. package/bundles/ng-nest-ui-slider.umd.js +7 -8
  86. package/bundles/ng-nest-ui-slider.umd.js.map +1 -1
  87. package/bundles/ng-nest-ui-statistic.umd.js +6 -4
  88. package/bundles/ng-nest-ui-statistic.umd.js.map +1 -1
  89. package/bundles/ng-nest-ui-steps.umd.js +4 -3
  90. package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
  91. package/bundles/ng-nest-ui-table.umd.js +13 -10
  92. package/bundles/ng-nest-ui-table.umd.js.map +1 -1
  93. package/bundles/ng-nest-ui-tabs.umd.js +5 -4
  94. package/bundles/ng-nest-ui-tabs.umd.js.map +1 -1
  95. package/bundles/ng-nest-ui-tag.umd.js +2 -1
  96. package/bundles/ng-nest-ui-tag.umd.js.map +1 -1
  97. package/bundles/ng-nest-ui-text-retract.umd.js +2 -1
  98. package/bundles/ng-nest-ui-text-retract.umd.js.map +1 -1
  99. package/bundles/ng-nest-ui-textarea.umd.js +3 -12
  100. package/bundles/ng-nest-ui-textarea.umd.js.map +1 -1
  101. package/bundles/ng-nest-ui-theme.umd.js +2 -2
  102. package/bundles/ng-nest-ui-theme.umd.js.map +1 -1
  103. package/bundles/ng-nest-ui-time-picker.umd.js +32 -15
  104. package/bundles/ng-nest-ui-time-picker.umd.js.map +1 -1
  105. package/bundles/ng-nest-ui-timeline.umd.js +3 -2
  106. package/bundles/ng-nest-ui-timeline.umd.js.map +1 -1
  107. package/bundles/ng-nest-ui-tooltip.umd.js +3 -2
  108. package/bundles/ng-nest-ui-tooltip.umd.js.map +1 -1
  109. package/bundles/ng-nest-ui-transfer.umd.js +3 -2
  110. package/bundles/ng-nest-ui-transfer.umd.js.map +1 -1
  111. package/bundles/ng-nest-ui-tree.umd.js +8 -7
  112. package/bundles/ng-nest-ui-tree.umd.js.map +1 -1
  113. package/bundles/ng-nest-ui-upload.umd.js +5 -4
  114. package/bundles/ng-nest-ui-upload.umd.js.map +1 -1
  115. package/button/buttons.component.d.ts +1 -1
  116. package/calendar/calendar.component.d.ts +2 -2
  117. package/carousel/carousel.component.d.ts +1 -1
  118. package/cascade/cascade-portal.component.d.ts +4 -7
  119. package/cascade/cascade.component.d.ts +1 -1
  120. package/checkbox/checkbox.component.d.ts +1 -1
  121. package/color/color.component.d.ts +2 -2
  122. package/color-picker/color-picker-portal.component.d.ts +1 -3
  123. package/color-picker/color-picker.component.d.ts +2 -3
  124. package/comment/comment.component.d.ts +1 -1
  125. package/core/services/reuse-strategy.service.d.ts +1 -1
  126. package/crumb/crumb.component.d.ts +1 -1
  127. package/date-picker/date-picker-portal.component.d.ts +1 -3
  128. package/date-picker/date-picker.component.d.ts +3 -4
  129. package/date-picker/date-picker.property.d.ts +1 -16
  130. package/date-picker/date-range-portal.component.d.ts +1 -3
  131. package/date-picker/date-range.component.d.ts +2 -3
  132. package/date-picker/picker-date.component.d.ts +1 -1
  133. package/date-picker/picker-month.component.d.ts +1 -1
  134. package/date-picker/picker-year.component.d.ts +1 -1
  135. package/description/description.component.d.ts +2 -4
  136. package/dropdown/dropdown-portal.component.d.ts +1 -3
  137. package/dropdown/dropdown.component.d.ts +2 -2
  138. package/esm2015/alert/alert.component.js +1 -1
  139. package/esm2015/anchor/anchor.component.js +2 -2
  140. package/esm2015/anchor/anchor.property.js +1 -1
  141. package/esm2015/auto-complete/auto-complete-portal.component.js +4 -4
  142. package/esm2015/auto-complete/auto-complete.component.js +5 -4
  143. package/esm2015/auto-complete/auto-complete.property.js +1 -1
  144. package/esm2015/back-top/back-top.component.js +3 -3
  145. package/esm2015/badge/badge.component.js +3 -2
  146. package/esm2015/button/button.component.js +5 -4
  147. package/esm2015/button/buttons.component.js +1 -1
  148. package/esm2015/calendar/calendar.component.js +5 -4
  149. package/esm2015/carousel/carousel.component.js +4 -3
  150. package/esm2015/cascade/cascade-portal.component.js +6 -7
  151. package/esm2015/cascade/cascade.component.js +5 -4
  152. package/esm2015/checkbox/checkbox.component.js +4 -3
  153. package/esm2015/checkbox/checkbox.property.js +1 -1
  154. package/esm2015/color/color.component.js +2 -2
  155. package/esm2015/color-picker/color-picker-portal.component.js +3 -3
  156. package/esm2015/color-picker/color-picker.component.js +8 -9
  157. package/esm2015/comment/comment.component.js +4 -3
  158. package/esm2015/container/container.component.js +2 -2
  159. package/esm2015/core/animation/fade.js +1 -1
  160. package/esm2015/core/services/http.service.js +2 -2
  161. package/esm2015/core/services/preloading-strategy.service.js +2 -2
  162. package/esm2015/core/services/reuse-strategy.service.js +2 -2
  163. package/esm2015/crumb/crumb.component.js +4 -3
  164. package/esm2015/date-picker/date-picker-portal.component.js +4 -4
  165. package/esm2015/date-picker/date-picker.component.js +9 -13
  166. package/esm2015/date-picker/date-picker.property.js +8 -17
  167. package/esm2015/date-picker/date-range-portal.component.js +2 -2
  168. package/esm2015/date-picker/date-range.component.js +7 -7
  169. package/esm2015/date-picker/picker-date.component.js +4 -3
  170. package/esm2015/date-picker/picker-month.component.js +4 -3
  171. package/esm2015/date-picker/picker-year.component.js +4 -3
  172. package/esm2015/description/description.component.js +6 -7
  173. package/esm2015/dialog/dialog.component.js +3 -2
  174. package/esm2015/dialog/dialog.property.js +1 -1
  175. package/esm2015/drawer/drawer.component.js +3 -2
  176. package/esm2015/dropdown/dropdown-portal.component.js +2 -2
  177. package/esm2015/dropdown/dropdown.component.js +4 -3
  178. package/esm2015/find/find.component.js +7 -6
  179. package/esm2015/form/control.component.js +1 -1
  180. package/esm2015/form/form.component.js +6 -5
  181. package/esm2015/form/form.property.js +3 -8
  182. package/esm2015/highlight/highlight.component.js +3 -2
  183. package/esm2015/highlight/highlight.property.js +1 -1
  184. package/esm2015/i18n/i18n.directive.js +3 -2
  185. package/esm2015/icon/icon.component.js +4 -3
  186. package/esm2015/inner/inner.component.js +2 -2
  187. package/esm2015/input/input-group.component.js +2 -4
  188. package/esm2015/input/input.component.js +7 -4
  189. package/esm2015/input/input.property.js +1 -1
  190. package/esm2015/list/list.component.js +5 -4
  191. package/esm2015/list/list.property.js +1 -1
  192. package/esm2015/loading/loading.component.js +3 -2
  193. package/esm2015/menu/menu-node.component.js +1 -1
  194. package/esm2015/menu/menu.component.js +7 -7
  195. package/esm2015/message/message.component.js +2 -2
  196. package/esm2015/message-box/message-box.component.js +17 -21
  197. package/esm2015/message-box/message-box.service.js +7 -5
  198. package/esm2015/notification/notification.component.js +2 -2
  199. package/esm2015/notification/notification.property.js +1 -1
  200. package/esm2015/pagination/pagination.component.js +4 -3
  201. package/esm2015/popover/popover.directive.js +4 -3
  202. package/esm2015/progress/progress.component.js +4 -3
  203. package/esm2015/radio/radio.component.js +4 -3
  204. package/esm2015/radio/radio.property.js +1 -1
  205. package/esm2015/rate/rate.component.js +6 -6
  206. package/esm2015/ripple/ripple.directive.js +1 -1
  207. package/esm2015/ripple/ripple.property.js +1 -1
  208. package/esm2015/select/select-portal.component.js +3 -3
  209. package/esm2015/select/select.component.js +5 -4
  210. package/esm2015/skeleton/skeleton.component.js +3 -2
  211. package/esm2015/slider/slider.component.js +8 -9
  212. package/esm2015/statistic/countdown.component.js +5 -4
  213. package/esm2015/statistic/statistic.component.js +3 -2
  214. package/esm2015/steps/steps.component.js +5 -4
  215. package/esm2015/steps/steps.property.js +1 -1
  216. package/esm2015/table/drag.directive.js +2 -2
  217. package/esm2015/table/table-body.component.js +4 -3
  218. package/esm2015/table/table-foot.component.js +1 -1
  219. package/esm2015/table/table-head.component.js +5 -4
  220. package/esm2015/table/table.component.js +6 -5
  221. package/esm2015/table/table.property.js +1 -1
  222. package/esm2015/tabs/tab.component.js +1 -1
  223. package/esm2015/tabs/tabs.component.js +6 -5
  224. package/esm2015/tag/tag.component.js +3 -2
  225. package/esm2015/text-retract/text-retract.component.js +3 -2
  226. package/esm2015/textarea/textarea.component.js +3 -2
  227. package/esm2015/textarea/textarea.property.js +2 -12
  228. package/esm2015/theme/theme.component.js +3 -3
  229. package/esm2015/theme/theme.property.js +1 -1
  230. package/esm2015/time-picker/time-picker-frame.component.js +9 -5
  231. package/esm2015/time-picker/time-picker-portal.component.js +2 -2
  232. package/esm2015/time-picker/time-picker.component.js +25 -12
  233. package/esm2015/timeline/timeline.component.js +4 -3
  234. package/esm2015/tooltip/tooltip.directive.js +4 -3
  235. package/esm2015/tooltip/tooltip.property.js +1 -1
  236. package/esm2015/transfer/transfer.component.js +4 -3
  237. package/esm2015/tree/tree-node.component.js +2 -2
  238. package/esm2015/tree/tree.component.js +8 -7
  239. package/esm2015/tree/tree.property.js +1 -1
  240. package/esm2015/upload/upload-portal.component.js +2 -2
  241. package/esm2015/upload/upload.component.js +5 -4
  242. package/fesm2015/ng-nest-ui-alert.js.map +1 -1
  243. package/fesm2015/ng-nest-ui-anchor.js +1 -1
  244. package/fesm2015/ng-nest-ui-anchor.js.map +1 -1
  245. package/fesm2015/ng-nest-ui-auto-complete.js +7 -6
  246. package/fesm2015/ng-nest-ui-auto-complete.js.map +1 -1
  247. package/fesm2015/ng-nest-ui-back-top.js +2 -2
  248. package/fesm2015/ng-nest-ui-back-top.js.map +1 -1
  249. package/fesm2015/ng-nest-ui-badge.js +2 -1
  250. package/fesm2015/ng-nest-ui-badge.js.map +1 -1
  251. package/fesm2015/ng-nest-ui-button.js +4 -3
  252. package/fesm2015/ng-nest-ui-button.js.map +1 -1
  253. package/fesm2015/ng-nest-ui-calendar.js +4 -3
  254. package/fesm2015/ng-nest-ui-calendar.js.map +1 -1
  255. package/fesm2015/ng-nest-ui-carousel.js +3 -2
  256. package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
  257. package/fesm2015/ng-nest-ui-cascade.js +9 -9
  258. package/fesm2015/ng-nest-ui-cascade.js.map +1 -1
  259. package/fesm2015/ng-nest-ui-checkbox.js +3 -2
  260. package/fesm2015/ng-nest-ui-checkbox.js.map +1 -1
  261. package/fesm2015/ng-nest-ui-color-picker.js +9 -10
  262. package/fesm2015/ng-nest-ui-color-picker.js.map +1 -1
  263. package/fesm2015/ng-nest-ui-color.js +1 -1
  264. package/fesm2015/ng-nest-ui-color.js.map +1 -1
  265. package/fesm2015/ng-nest-ui-comment.js +3 -2
  266. package/fesm2015/ng-nest-ui-comment.js.map +1 -1
  267. package/fesm2015/ng-nest-ui-container.js +1 -1
  268. package/fesm2015/ng-nest-ui-container.js.map +1 -1
  269. package/fesm2015/ng-nest-ui-core.js +3 -3
  270. package/fesm2015/ng-nest-ui-core.js.map +1 -1
  271. package/fesm2015/ng-nest-ui-crumb.js +3 -2
  272. package/fesm2015/ng-nest-ui-crumb.js.map +1 -1
  273. package/fesm2015/ng-nest-ui-date-picker.js +34 -44
  274. package/fesm2015/ng-nest-ui-date-picker.js.map +1 -1
  275. package/fesm2015/ng-nest-ui-description.js +5 -6
  276. package/fesm2015/ng-nest-ui-description.js.map +1 -1
  277. package/fesm2015/ng-nest-ui-dialog.js +2 -1
  278. package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
  279. package/fesm2015/ng-nest-ui-drawer.js +2 -1
  280. package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
  281. package/fesm2015/ng-nest-ui-dropdown.js +4 -3
  282. package/fesm2015/ng-nest-ui-dropdown.js.map +1 -1
  283. package/fesm2015/ng-nest-ui-find.js +6 -5
  284. package/fesm2015/ng-nest-ui-find.js.map +1 -1
  285. package/fesm2015/ng-nest-ui-form.js +7 -11
  286. package/fesm2015/ng-nest-ui-form.js.map +1 -1
  287. package/fesm2015/ng-nest-ui-highlight.js +2 -1
  288. package/fesm2015/ng-nest-ui-highlight.js.map +1 -1
  289. package/fesm2015/ng-nest-ui-i18n.js +2 -1
  290. package/fesm2015/ng-nest-ui-i18n.js.map +1 -1
  291. package/fesm2015/ng-nest-ui-icon.js +3 -2
  292. package/fesm2015/ng-nest-ui-icon.js.map +1 -1
  293. package/fesm2015/ng-nest-ui-inner.js +1 -1
  294. package/fesm2015/ng-nest-ui-inner.js.map +1 -1
  295. package/fesm2015/ng-nest-ui-input.js +7 -6
  296. package/fesm2015/ng-nest-ui-input.js.map +1 -1
  297. package/fesm2015/ng-nest-ui-list.js +4 -3
  298. package/fesm2015/ng-nest-ui-list.js.map +1 -1
  299. package/fesm2015/ng-nest-ui-loading.js +2 -1
  300. package/fesm2015/ng-nest-ui-loading.js.map +1 -1
  301. package/fesm2015/ng-nest-ui-menu.js +6 -6
  302. package/fesm2015/ng-nest-ui-menu.js.map +1 -1
  303. package/fesm2015/ng-nest-ui-message-box.js +22 -24
  304. package/fesm2015/ng-nest-ui-message-box.js.map +1 -1
  305. package/fesm2015/ng-nest-ui-message.js +1 -1
  306. package/fesm2015/ng-nest-ui-message.js.map +1 -1
  307. package/fesm2015/ng-nest-ui-notification.js +1 -1
  308. package/fesm2015/ng-nest-ui-notification.js.map +1 -1
  309. package/fesm2015/ng-nest-ui-pagination.js +3 -2
  310. package/fesm2015/ng-nest-ui-pagination.js.map +1 -1
  311. package/fesm2015/ng-nest-ui-popover.js +3 -2
  312. package/fesm2015/ng-nest-ui-popover.js.map +1 -1
  313. package/fesm2015/ng-nest-ui-progress.js +3 -2
  314. package/fesm2015/ng-nest-ui-progress.js.map +1 -1
  315. package/fesm2015/ng-nest-ui-radio.js +3 -2
  316. package/fesm2015/ng-nest-ui-radio.js.map +1 -1
  317. package/fesm2015/ng-nest-ui-rate.js +5 -5
  318. package/fesm2015/ng-nest-ui-rate.js.map +1 -1
  319. package/fesm2015/ng-nest-ui-ripple.js.map +1 -1
  320. package/fesm2015/ng-nest-ui-select.js +6 -5
  321. package/fesm2015/ng-nest-ui-select.js.map +1 -1
  322. package/fesm2015/ng-nest-ui-skeleton.js +2 -1
  323. package/fesm2015/ng-nest-ui-skeleton.js.map +1 -1
  324. package/fesm2015/ng-nest-ui-slider.js +7 -8
  325. package/fesm2015/ng-nest-ui-slider.js.map +1 -1
  326. package/fesm2015/ng-nest-ui-statistic.js +6 -4
  327. package/fesm2015/ng-nest-ui-statistic.js.map +1 -1
  328. package/fesm2015/ng-nest-ui-steps.js +4 -3
  329. package/fesm2015/ng-nest-ui-steps.js.map +1 -1
  330. package/fesm2015/ng-nest-ui-table.js +13 -10
  331. package/fesm2015/ng-nest-ui-table.js.map +1 -1
  332. package/fesm2015/ng-nest-ui-tabs.js +5 -4
  333. package/fesm2015/ng-nest-ui-tabs.js.map +1 -1
  334. package/fesm2015/ng-nest-ui-tag.js +2 -1
  335. package/fesm2015/ng-nest-ui-tag.js.map +1 -1
  336. package/fesm2015/ng-nest-ui-text-retract.js +2 -1
  337. package/fesm2015/ng-nest-ui-text-retract.js.map +1 -1
  338. package/fesm2015/ng-nest-ui-textarea.js +3 -12
  339. package/fesm2015/ng-nest-ui-textarea.js.map +1 -1
  340. package/fesm2015/ng-nest-ui-theme.js +2 -2
  341. package/fesm2015/ng-nest-ui-theme.js.map +1 -1
  342. package/fesm2015/ng-nest-ui-time-picker.js +33 -16
  343. package/fesm2015/ng-nest-ui-time-picker.js.map +1 -1
  344. package/fesm2015/ng-nest-ui-timeline.js +3 -2
  345. package/fesm2015/ng-nest-ui-timeline.js.map +1 -1
  346. package/fesm2015/ng-nest-ui-tooltip.js +3 -2
  347. package/fesm2015/ng-nest-ui-tooltip.js.map +1 -1
  348. package/fesm2015/ng-nest-ui-transfer.js +3 -2
  349. package/fesm2015/ng-nest-ui-transfer.js.map +1 -1
  350. package/fesm2015/ng-nest-ui-tree.js +8 -7
  351. package/fesm2015/ng-nest-ui-tree.js.map +1 -1
  352. package/fesm2015/ng-nest-ui-upload.js +5 -4
  353. package/fesm2015/ng-nest-ui-upload.js.map +1 -1
  354. package/find/find.component.d.ts +1 -1
  355. package/form/control.component.d.ts +1 -1
  356. package/form/form.component.d.ts +1 -1
  357. package/form/form.property.d.ts +6 -6
  358. package/inner/inner.component.d.ts +1 -1
  359. package/input/input-group.component.d.ts +2 -4
  360. package/list/list.component.d.ts +2 -2
  361. package/menu/menu.component.d.ts +1 -1
  362. package/message/message.component.d.ts +1 -1
  363. package/message-box/message-box.component.d.ts +2 -1
  364. package/notification/notification.component.d.ts +1 -1
  365. package/package.json +1 -1
  366. package/pagination/pagination.component.d.ts +1 -1
  367. package/radio/radio.component.d.ts +1 -1
  368. package/rate/rate.component.d.ts +5 -5
  369. package/select/select-portal.component.d.ts +1 -3
  370. package/select/select.component.d.ts +1 -1
  371. package/slider/slider.component.d.ts +1 -1
  372. package/steps/steps.component.d.ts +1 -1
  373. package/table/table-body.component.d.ts +1 -1
  374. package/table/table-head.component.d.ts +1 -1
  375. package/table/table.component.d.ts +1 -1
  376. package/table/table.property.d.ts +10 -0
  377. package/textarea/textarea.property.d.ts +1 -6
  378. package/theme/theme.component.d.ts +1 -1
  379. package/time-picker/time-picker-frame.component.d.ts +1 -0
  380. package/time-picker/time-picker-portal.component.d.ts +1 -3
  381. package/time-picker/time-picker.component.d.ts +5 -3
  382. package/timeline/timeline.component.d.ts +1 -1
  383. package/transfer/transfer.component.d.ts +1 -1
  384. package/tree/tree-node.component.d.ts +1 -1
  385. package/tree/tree.component.d.ts +1 -1
  386. package/upload/upload.component.d.ts +3 -3
@@ -162,9 +162,10 @@ class XIconComponent extends XIconProperty {
162
162
  }
163
163
  ngOnInit() { }
164
164
  ngOnChanges(changes) {
165
- if (XIsChange(changes.type)) {
165
+ const { type } = changes;
166
+ if (XIsChange(type)) {
166
167
  this.setSvgElement();
167
- this.renderer.removeClass(this.elementRef.nativeElement, changes.type.previousValue);
168
+ this.renderer.removeClass(this.elementRef.nativeElement, type.previousValue);
168
169
  this.renderer.addClass(this.elementRef.nativeElement, `${this.type}`);
169
170
  }
170
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-icon.js","sources":["../../../../lib/ng-nest/ui/icon/icon.property.ts","../../../../lib/ng-nest/ui/icon/icon.service.ts","../../../../lib/ng-nest/ui/icon/icon.component.ts","../../../../lib/ng-nest/ui/icon/icon.component.html","../../../../lib/ng-nest/ui/icon/icon.module.ts","../../../../lib/ng-nest/ui/icon/ng-nest-ui-icon.ts"],"sourcesContent":["import { XProperty, XInputNumber, XInputBoolean, XNumber, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Icon\r\n * @selector x-icon\r\n * @decorator component\r\n */\r\nexport const XIconPrefix = 'x-icon';\r\n\r\nconst X_CONFIG_NAME = 'icon';\r\n\r\nexport const XIconHref = 'https://ngnest.com/static/icons/';\r\n\r\n/**\r\n * Icon Property\r\n */\r\n@Component({ template: '' })\r\nexport class XIconProperty extends XProperty {\r\n /**\r\n * @zh_CN SVG 图标根路劲地址,可以通过全局只配置一次,所有图标资源在 github 上的 ng-nest-icon 中\r\n * @en_US The root address of the SVG icon can be configured only once globally. All icon resources are in ng-nest-icon on github\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, XIconHref) href?: string;\r\n /**\r\n * @zh_CN 图标类型\r\n * @en_US Icon type\r\n */\r\n @Input() type?: string;\r\n /**\r\n * @zh_CN 图标颜色\r\n * @en_US Icon color\r\n */\r\n @Input() color?: string | string[];\r\n /**\r\n * @zh_CN 图标旋转角度\r\n * @en_US Icon rotation angle\r\n */\r\n @Input() @XInputNumber() rotate?: XNumber;\r\n /**\r\n * @zh_CN loading效果(图标一直旋转)\r\n * @en_US Loading effect (icon keeps rotating)\r\n */\r\n @Input() @XInputBoolean() spin?: XBoolean;\r\n /**\r\n * @zh_CN 变化为的图标(未实现)\r\n * @en_US Icon to change to (not implemented)\r\n */\r\n @Input() to?: string;\r\n}\r\n\r\n/**\r\n * @zh_CN 图标来源\r\n * @en_US Icon source\r\n */\r\nexport type XIconSource = 'ant-design' | 'eva' | 'feather' | 'font-awesome' | 'material-design';\r\n","import { Injectable, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subscriber } from 'rxjs';\r\nimport { XHasIn } from '@ng-nest/ui/core';\r\n\r\ntype Task<T> = {\r\n name: string;\r\n observable: Observable<T>;\r\n callback: Function;\r\n};\r\n\r\n// @dynamic\r\n@Injectable()\r\nexport class XIconService {\r\n rootUrl = `https://ngnest.com/static/icons/`;\r\n caches: { [property: string]: any } = {};\r\n queue: Task<any>[] = [];\r\n activeTaskXm: number = 0;\r\n isRunningTask = false;\r\n limit: number = 10;\r\n\r\n constructor(private sanitizer: DomSanitizer, private http: HttpClient) {}\r\n\r\n public addTask<T>(task: Task<T>) {\r\n this.queue.push(task);\r\n this.runTask();\r\n }\r\n\r\n private execute<T>(task: Task<T>) {\r\n this.isRunningTask = true;\r\n if (XHasIn(this.caches, task.name)) {\r\n task.callback(this.caches[task.name]);\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n return;\r\n }\r\n return task.observable.subscribe(\r\n (result) => {\r\n this.caches[task.name] = result;\r\n task.callback(result);\r\n return result;\r\n },\r\n (error) => {\r\n console.error(error);\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n },\r\n () => {\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n }\r\n );\r\n }\r\n\r\n private runTask() {\r\n if (!this.isRunningTask && this.activeTaskXm < this.limit && this.queue.length > 0) {\r\n const task = this.queue.shift();\r\n this.activeTaskXm++;\r\n this.execute(task!);\r\n }\r\n }\r\n\r\n getSvgs(...icons: string[]): Observable<string[]> {\r\n return Observable.create((subscriber: Subscriber<string[]>) => {\r\n let result: string[] = [];\r\n icons.forEach((icon, index) =>\r\n this.addTask({\r\n name: icon,\r\n observable: this.getSvgElement(icon),\r\n callback: (svg: string) => {\r\n result.push(svg);\r\n if (index === icons.length - 1) {\r\n subscriber.next(result);\r\n subscriber.complete();\r\n }\r\n }\r\n })\r\n );\r\n });\r\n }\r\n\r\n getSvgElement(icon: string): Observable<string> {\r\n const url = `${this.rootUrl}${icon}.svg`;\r\n const safeUrl = this.sanitizer.sanitize(SecurityContext.URL, url);\r\n return this.http.get(safeUrl as string, { responseType: 'text' });\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n Renderer2,\r\n ChangeDetectorRef,\r\n OnChanges,\r\n SimpleChanges,\r\n Inject,\r\n Optional,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { XIconPrefix, XIconProperty } from './icon.property';\r\nimport { XIconService } from './icon.service';\r\nimport { warnIconTypeNotFound, warnSVGTagNotFound, XIsChange, XIsEmpty, XConfigService } from '@ng-nest/ui/core';\r\n\r\n// 来源路径对应\r\nexport const XSouceUrl: { [property: string]: string } = {\r\n adf: `ant-design/fill/`,\r\n ado: `ant-design/outline/`,\r\n adt: `ant-design/twotone/`,\r\n eaf: `eva/fill/`,\r\n eao: `eva/outline/`,\r\n fto: `feather/`,\r\n fab: `font-awesome/brands/`,\r\n far: `font-awesome/regular/`,\r\n fas: `font-awesome/solid/`,\r\n mdf: `material-design/fill/`,\r\n mdo: `material-design/outline/`\r\n};\r\n\r\nexport const XViewBox = [\r\n // { souces: [\"adf\", \"ado\", \"adt\"], value: \"0 0 1024 1024\" },\r\n // { souces: [\"eaf\", \"eao\"], value: \"0 0 24 24\" },\r\n // { souces: [\"fto\"], value: \"0 0 24 24\" }\r\n];\r\n\r\n@Component({\r\n selector: `${XIconPrefix}`,\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XIconComponent extends XIconProperty implements OnInit, OnChanges {\r\n private _svgElement!: SVGElement;\r\n private _loaded: boolean = false;\r\n\r\n @HostBinding('class.x-icon-spin') get getSpin() {\r\n return this.spin;\r\n }\r\n\r\n constructor(\r\n public elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n public iconService: XIconService,\r\n private cdr: ChangeDetectorRef,\r\n @Optional() @Inject(DOCUMENT) private document: any,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n this.iconService.rootUrl = this.href as string;\r\n this.renderer.addClass(this.elementRef.nativeElement, XIconPrefix);\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (XIsChange(changes.type)) {\r\n this.setSvgElement();\r\n this.renderer.removeClass(this.elementRef.nativeElement, changes.type.previousValue);\r\n this.renderer.addClass(this.elementRef.nativeElement, `${this.type}`);\r\n }\r\n }\r\n\r\n getSvg() {\r\n if (this._loaded) return;\r\n let height = this.document.documentElement.clientHeight;\r\n let width = this.document.documentElement.clientWidth;\r\n let box = this.elementRef.nativeElement.getBoundingClientRect();\r\n if (box.top <= height && box.left <= width) {\r\n this.setSvgElement();\r\n this.renderer.addClass(this.elementRef.nativeElement, `${this.type}`);\r\n this._loaded = true;\r\n }\r\n }\r\n\r\n setSvgElement() {\r\n const typeIcon = this.setSourceUrl(this.type);\r\n const toIcon = this.setSourceUrl(this.to);\r\n let icons = [typeIcon];\r\n if (XIsEmpty(typeIcon)) return;\r\n if (!XIsEmpty(toIcon)) {\r\n icons = [...icons, toIcon];\r\n }\r\n this.iconService.getSvgs(...icons).subscribe((x) => this.setSvgs(x));\r\n }\r\n\r\n setSvgs(svgs: string[]) {\r\n if (svgs?.length > 0) {\r\n let firstChild = this.elementRef.nativeElement.firstChild;\r\n if (firstChild) {\r\n this.renderer.removeChild(this.elementRef.nativeElement, firstChild);\r\n }\r\n this._svgElement = this.buildSvg(svgs.shift() as string) as SVGAElement;\r\n // this.setAnimates(svgs);\r\n this.setAttributes(this._svgElement);\r\n this.renderer.appendChild(this.elementRef.nativeElement, this._svgElement);\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n setSourceUrl(type?: string) {\r\n if (typeof type === 'undefined') return '';\r\n const split = type.split('-');\r\n const souce = split.shift();\r\n if (typeof souce === 'undefined') return '';\r\n const souceUrl = XSouceUrl[souce];\r\n const fileName = split.join('-');\r\n if (!souceUrl || !fileName) {\r\n warnIconTypeNotFound();\r\n }\r\n return `${souceUrl}${fileName}`;\r\n }\r\n\r\n setAttributes(svgEle: SVGElement) {\r\n if (svgEle) {\r\n this.renderer.setAttribute(svgEle, 'width', '1em');\r\n this.renderer.setAttribute(svgEle, 'height', '1em');\r\n }\r\n }\r\n\r\n buildSvg(svgStr: string): SVGAElement | undefined {\r\n const result = this.document.createElementNS('http://www.w3.org/2000/svg', 'svg') as SVGAElement;\r\n const svg = this.createSvg(svgStr);\r\n if (!svg) return;\r\n svg.children.forEach((x) => {\r\n x.removeAttribute('class');\r\n if (x.tagName === 'rect') {\r\n x.setAttribute('fill', 'none');\r\n }\r\n result.appendChild(x);\r\n });\r\n this.setAttribute(result, svg.ele, 'viewBox');\r\n this.setAttribute(result, svg.ele, 'fill', 'currentColor');\r\n this.setAttribute(result, svg.ele, 'stroke');\r\n this.setAttribute(result, svg.ele, 'stroke-width');\r\n this.setAttribute(result, svg.ele, 'stroke-linecap');\r\n this.setAttribute(result, svg.ele, 'stroke-linejoin');\r\n if (!result) {\r\n warnSVGTagNotFound();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n createSvg(svgStr: string) {\r\n const div = this.document.createElement('div');\r\n div.innerHTML = svgStr;\r\n let svgEle = div.querySelector('svg') as SVGElement;\r\n if (!svgEle) return null;\r\n return {\r\n ele: svgEle,\r\n children: svgEle.querySelectorAll('path, polyline, polygon, circle, line, rect')\r\n };\r\n }\r\n\r\n setAttribute(svg: SVGElement, svgEle: SVGElement, attribute: string, def?: string) {\r\n let attr = svgEle.getAttribute(attribute);\r\n if (attr) {\r\n svg.setAttribute(attribute, attr);\r\n } else if (def) {\r\n svg.setAttribute(attribute, def);\r\n }\r\n }\r\n\r\n //<animate begin=\"mouseenter\" dur=\"500ms\" repeatCount=\"1\" attributeName=\"d\" from=\"M86.425,13.204l5.648,12.741H0.55 l0.125-12.616L0.55,0.544h91.523L86.425,13.204z\" to=\"M92.725,13.521l0.044,12.887H1.245 l7-12.616l-7-12.785h91.523L92.725,13.521z\" fill=\"freeze\"></animate>\r\n\r\n setAnimates(svgs: string[]) {\r\n if (svgs?.length > 0) {\r\n let svg = this.createSvg(svgs.shift() as string);\r\n for (let i = 0; i < this._svgElement.children.length; i++) {\r\n let child = this._svgElement.children[i];\r\n let toChild = svg?.children[i];\r\n if (child?.nodeName === 'path' && toChild?.nodeName === 'path') {\r\n let toAnimate = document.createElement('animate');\r\n toAnimate.setAttribute('dur', '500ms');\r\n toAnimate.setAttribute('repeatCount', '1');\r\n toAnimate.setAttribute('attributeName', 'd');\r\n toAnimate.setAttribute('fill', 'freeze');\r\n toAnimate.setAttribute('from', child.getAttribute('d') as string);\r\n toAnimate.setAttribute('to', toChild.getAttribute('d') as string);\r\n this.renderer.appendChild(child, toAnimate);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XIconComponent } from './icon.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { XIconService } from './icon.service';\r\nimport { XIconProperty } from './icon.property';\r\n\r\n@NgModule({\r\n declarations: [XIconComponent, XIconProperty],\r\n exports: [XIconComponent],\r\n imports: [CommonModule, HttpClientModule],\r\n providers: [XIconService]\r\n})\r\nexport class XIconModule {}\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-icon.js","sources":["../../../../lib/ng-nest/ui/icon/icon.property.ts","../../../../lib/ng-nest/ui/icon/icon.service.ts","../../../../lib/ng-nest/ui/icon/icon.component.ts","../../../../lib/ng-nest/ui/icon/icon.component.html","../../../../lib/ng-nest/ui/icon/icon.module.ts","../../../../lib/ng-nest/ui/icon/ng-nest-ui-icon.ts"],"sourcesContent":["import { XProperty, XInputNumber, XInputBoolean, XNumber, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Icon\r\n * @selector x-icon\r\n * @decorator component\r\n */\r\nexport const XIconPrefix = 'x-icon';\r\n\r\nconst X_CONFIG_NAME = 'icon';\r\n\r\nexport const XIconHref = 'https://ngnest.com/static/icons/';\r\n\r\n/**\r\n * Icon Property\r\n */\r\n@Component({ template: '' })\r\nexport class XIconProperty extends XProperty {\r\n /**\r\n * @zh_CN SVG 图标根路劲地址,可以通过全局只配置一次,所有图标资源在 github 上的 ng-nest-icon 中\r\n * @en_US The root address of the SVG icon can be configured only once globally. All icon resources are in ng-nest-icon on github\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, XIconHref) href?: string;\r\n /**\r\n * @zh_CN 图标类型\r\n * @en_US Icon type\r\n */\r\n @Input() type?: string;\r\n /**\r\n * @zh_CN 图标颜色\r\n * @en_US Icon color\r\n */\r\n @Input() color?: string | string[];\r\n /**\r\n * @zh_CN 图标旋转角度\r\n * @en_US Icon rotation angle\r\n */\r\n @Input() @XInputNumber() rotate?: XNumber;\r\n /**\r\n * @zh_CN loading效果(图标一直旋转)\r\n * @en_US Loading effect (icon keeps rotating)\r\n */\r\n @Input() @XInputBoolean() spin?: XBoolean;\r\n /**\r\n * @zh_CN 变化为的图标(未实现)\r\n * @en_US Icon to change to (not implemented)\r\n */\r\n @Input() to?: string;\r\n}\r\n\r\n/**\r\n * @zh_CN 图标来源\r\n * @en_US Icon source\r\n */\r\nexport type XIconSource = 'ant-design' | 'eva' | 'feather' | 'font-awesome' | 'material-design';\r\n","import { Injectable, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subscriber } from 'rxjs';\r\nimport { XHasIn } from '@ng-nest/ui/core';\r\n\r\ntype Task<T> = {\r\n name: string;\r\n observable: Observable<T>;\r\n callback: Function;\r\n};\r\n\r\n// @dynamic\r\n@Injectable()\r\nexport class XIconService {\r\n rootUrl = `https://ngnest.com/static/icons/`;\r\n caches: { [property: string]: any } = {};\r\n queue: Task<any>[] = [];\r\n activeTaskXm: number = 0;\r\n isRunningTask = false;\r\n limit: number = 10;\r\n\r\n constructor(private sanitizer: DomSanitizer, private http: HttpClient) {}\r\n\r\n public addTask<T>(task: Task<T>) {\r\n this.queue.push(task);\r\n this.runTask();\r\n }\r\n\r\n private execute<T>(task: Task<T>) {\r\n this.isRunningTask = true;\r\n if (XHasIn(this.caches, task.name)) {\r\n task.callback(this.caches[task.name]);\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n return;\r\n }\r\n return task.observable.subscribe(\r\n (result) => {\r\n this.caches[task.name] = result;\r\n task.callback(result);\r\n return result;\r\n },\r\n (error) => {\r\n console.error(error);\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n },\r\n () => {\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n }\r\n );\r\n }\r\n\r\n private runTask() {\r\n if (!this.isRunningTask && this.activeTaskXm < this.limit && this.queue.length > 0) {\r\n const task = this.queue.shift();\r\n this.activeTaskXm++;\r\n this.execute(task!);\r\n }\r\n }\r\n\r\n getSvgs(...icons: string[]): Observable<string[]> {\r\n return Observable.create((subscriber: Subscriber<string[]>) => {\r\n let result: string[] = [];\r\n icons.forEach((icon, index) =>\r\n this.addTask({\r\n name: icon,\r\n observable: this.getSvgElement(icon),\r\n callback: (svg: string) => {\r\n result.push(svg);\r\n if (index === icons.length - 1) {\r\n subscriber.next(result);\r\n subscriber.complete();\r\n }\r\n }\r\n })\r\n );\r\n });\r\n }\r\n\r\n getSvgElement(icon: string): Observable<string> {\r\n const url = `${this.rootUrl}${icon}.svg`;\r\n const safeUrl = this.sanitizer.sanitize(SecurityContext.URL, url);\r\n return this.http.get(safeUrl as string, { responseType: 'text' });\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n Renderer2,\r\n ChangeDetectorRef,\r\n OnChanges,\r\n SimpleChanges,\r\n Inject,\r\n Optional,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { XIconPrefix, XIconProperty } from './icon.property';\r\nimport { XIconService } from './icon.service';\r\nimport { warnIconTypeNotFound, warnSVGTagNotFound, XIsChange, XIsEmpty, XConfigService } from '@ng-nest/ui/core';\r\n\r\n// 来源路径对应\r\nexport const XSouceUrl: { [property: string]: string } = {\r\n adf: `ant-design/fill/`,\r\n ado: `ant-design/outline/`,\r\n adt: `ant-design/twotone/`,\r\n eaf: `eva/fill/`,\r\n eao: `eva/outline/`,\r\n fto: `feather/`,\r\n fab: `font-awesome/brands/`,\r\n far: `font-awesome/regular/`,\r\n fas: `font-awesome/solid/`,\r\n mdf: `material-design/fill/`,\r\n mdo: `material-design/outline/`\r\n};\r\n\r\nexport const XViewBox = [\r\n // { souces: [\"adf\", \"ado\", \"adt\"], value: \"0 0 1024 1024\" },\r\n // { souces: [\"eaf\", \"eao\"], value: \"0 0 24 24\" },\r\n // { souces: [\"fto\"], value: \"0 0 24 24\" }\r\n];\r\n\r\n@Component({\r\n selector: `${XIconPrefix}`,\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XIconComponent extends XIconProperty implements OnInit, OnChanges {\r\n private _svgElement!: SVGElement;\r\n private _loaded: boolean = false;\r\n\r\n @HostBinding('class.x-icon-spin') get getSpin() {\r\n return this.spin;\r\n }\r\n\r\n constructor(\r\n public elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n public iconService: XIconService,\r\n private cdr: ChangeDetectorRef,\r\n @Optional() @Inject(DOCUMENT) private document: any,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n this.iconService.rootUrl = this.href as string;\r\n this.renderer.addClass(this.elementRef.nativeElement, XIconPrefix);\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { type } = changes;\r\n if (XIsChange(type)) {\r\n this.setSvgElement();\r\n this.renderer.removeClass(this.elementRef.nativeElement, type.previousValue);\r\n this.renderer.addClass(this.elementRef.nativeElement, `${this.type}`);\r\n }\r\n }\r\n\r\n getSvg() {\r\n if (this._loaded) return;\r\n let height = this.document.documentElement.clientHeight;\r\n let width = this.document.documentElement.clientWidth;\r\n let box = this.elementRef.nativeElement.getBoundingClientRect();\r\n if (box.top <= height && box.left <= width) {\r\n this.setSvgElement();\r\n this.renderer.addClass(this.elementRef.nativeElement, `${this.type}`);\r\n this._loaded = true;\r\n }\r\n }\r\n\r\n setSvgElement() {\r\n const typeIcon = this.setSourceUrl(this.type);\r\n const toIcon = this.setSourceUrl(this.to);\r\n let icons = [typeIcon];\r\n if (XIsEmpty(typeIcon)) return;\r\n if (!XIsEmpty(toIcon)) {\r\n icons = [...icons, toIcon];\r\n }\r\n this.iconService.getSvgs(...icons).subscribe((x) => this.setSvgs(x));\r\n }\r\n\r\n setSvgs(svgs: string[]) {\r\n if (svgs?.length > 0) {\r\n let firstChild = this.elementRef.nativeElement.firstChild;\r\n if (firstChild) {\r\n this.renderer.removeChild(this.elementRef.nativeElement, firstChild);\r\n }\r\n this._svgElement = this.buildSvg(svgs.shift() as string) as SVGAElement;\r\n // this.setAnimates(svgs);\r\n this.setAttributes(this._svgElement);\r\n this.renderer.appendChild(this.elementRef.nativeElement, this._svgElement);\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n setSourceUrl(type?: string) {\r\n if (typeof type === 'undefined') return '';\r\n const split = type.split('-');\r\n const souce = split.shift();\r\n if (typeof souce === 'undefined') return '';\r\n const souceUrl = XSouceUrl[souce];\r\n const fileName = split.join('-');\r\n if (!souceUrl || !fileName) {\r\n warnIconTypeNotFound();\r\n }\r\n return `${souceUrl}${fileName}`;\r\n }\r\n\r\n setAttributes(svgEle: SVGElement) {\r\n if (svgEle) {\r\n this.renderer.setAttribute(svgEle, 'width', '1em');\r\n this.renderer.setAttribute(svgEle, 'height', '1em');\r\n }\r\n }\r\n\r\n buildSvg(svgStr: string): SVGAElement | undefined {\r\n const result = this.document.createElementNS('http://www.w3.org/2000/svg', 'svg') as SVGAElement;\r\n const svg = this.createSvg(svgStr);\r\n if (!svg) return;\r\n svg.children.forEach((x) => {\r\n x.removeAttribute('class');\r\n if (x.tagName === 'rect') {\r\n x.setAttribute('fill', 'none');\r\n }\r\n result.appendChild(x);\r\n });\r\n this.setAttribute(result, svg.ele, 'viewBox');\r\n this.setAttribute(result, svg.ele, 'fill', 'currentColor');\r\n this.setAttribute(result, svg.ele, 'stroke');\r\n this.setAttribute(result, svg.ele, 'stroke-width');\r\n this.setAttribute(result, svg.ele, 'stroke-linecap');\r\n this.setAttribute(result, svg.ele, 'stroke-linejoin');\r\n if (!result) {\r\n warnSVGTagNotFound();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n createSvg(svgStr: string) {\r\n const div = this.document.createElement('div');\r\n div.innerHTML = svgStr;\r\n let svgEle = div.querySelector('svg') as SVGElement;\r\n if (!svgEle) return null;\r\n return {\r\n ele: svgEle,\r\n children: svgEle.querySelectorAll('path, polyline, polygon, circle, line, rect')\r\n };\r\n }\r\n\r\n setAttribute(svg: SVGElement, svgEle: SVGElement, attribute: string, def?: string) {\r\n let attr = svgEle.getAttribute(attribute);\r\n if (attr) {\r\n svg.setAttribute(attribute, attr);\r\n } else if (def) {\r\n svg.setAttribute(attribute, def);\r\n }\r\n }\r\n\r\n //<animate begin=\"mouseenter\" dur=\"500ms\" repeatCount=\"1\" attributeName=\"d\" from=\"M86.425,13.204l5.648,12.741H0.55 l0.125-12.616L0.55,0.544h91.523L86.425,13.204z\" to=\"M92.725,13.521l0.044,12.887H1.245 l7-12.616l-7-12.785h91.523L92.725,13.521z\" fill=\"freeze\"></animate>\r\n\r\n setAnimates(svgs: string[]) {\r\n if (svgs?.length > 0) {\r\n let svg = this.createSvg(svgs.shift() as string);\r\n for (let i = 0; i < this._svgElement.children.length; i++) {\r\n let child = this._svgElement.children[i];\r\n let toChild = svg?.children[i];\r\n if (child?.nodeName === 'path' && toChild?.nodeName === 'path') {\r\n let toAnimate = document.createElement('animate');\r\n toAnimate.setAttribute('dur', '500ms');\r\n toAnimate.setAttribute('repeatCount', '1');\r\n toAnimate.setAttribute('attributeName', 'd');\r\n toAnimate.setAttribute('fill', 'freeze');\r\n toAnimate.setAttribute('from', child.getAttribute('d') as string);\r\n toAnimate.setAttribute('to', toChild.getAttribute('d') as string);\r\n this.renderer.appendChild(child, toAnimate);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XIconComponent } from './icon.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { XIconService } from './icon.service';\r\nimport { XIconProperty } from './icon.property';\r\n\r\n@NgModule({\r\n declarations: [XIconComponent, XIconProperty],\r\n exports: [XIconComponent],\r\n imports: [CommonModule, HttpClientModule],\r\n providers: [XIconService]\r\n})\r\nexport class XIconModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ class XInnerComponent extends XInnerProperty {
41
41
  ngOnInit() {
42
42
  this.setStyle();
43
43
  }
44
- ngOnChanges(changes) {
44
+ ngOnChanges(_changes) {
45
45
  this.setStyle();
46
46
  }
47
47
  setStyle() {
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-inner.js","sources":["../../../../lib/ng-nest/ui/inner/inner.property.ts","../../../../lib/ng-nest/ui/inner/inner.component.ts","../../../../lib/ng-nest/ui/inner/inner.component.html","../../../../lib/ng-nest/ui/inner/inner.module.ts","../../../../lib/ng-nest/ui/inner/ng-nest-ui-inner.ts"],"sourcesContent":["import { XProperty, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Inner\r\n * @selector x-inner\r\n * @decorator component\r\n */\r\nexport const XInnerPrefix = 'x-inner';\r\nconst X_CONFIG_NAME = 'inner';\r\n\r\n/**\r\n * Inner Property\r\n */\r\n@Component({ template: '' })\r\nexport class XInnerProperty extends XProperty {\r\n /**\r\n * @zh_CN 内边距\r\n * @en_US Inner padding\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '1rem') padding?: string;\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n Renderer2,\r\n ElementRef,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XInnerPrefix, XInnerProperty } from './inner.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XInnerPrefix}`,\r\n templateUrl: './inner.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XInnerComponent extends XInnerProperty implements OnInit, OnChanges {\r\n private _ele: HTMLElement;\r\n\r\n constructor(private renderer: Renderer2, private elementRef: ElementRef, public configService: XConfigService) {\r\n super();\r\n this.renderer.addClass(this.elementRef.nativeElement, XInnerPrefix);\r\n this._ele = this.elementRef.nativeElement;\r\n }\r\n\r\n ngOnInit() {\r\n this.setStyle();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.setStyle();\r\n }\r\n\r\n setStyle() {\r\n this.renderer.setStyle(this._ele, 'padding', this.padding);\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XInnerComponent } from './inner.component';\r\nimport { XInnerProperty } from './inner.property';\r\n\r\n@NgModule({\r\n declarations: [XInnerComponent, XInnerProperty],\r\n exports: [XInnerComponent],\r\n imports: [CommonModule]\r\n})\r\nexport class XInnerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAGA;;;;;MAKa,YAAY,GAAG,UAAU;AACtC,MAAM,aAAa,GAAG,OAAO,CAAC;AAE9B;;;MAIa,cAAe,SAAQ,SAAS;;8HAAhC,cAAc;kHAAd,cAAc,2GADJ,EAAE;AAM8B;IAA3C,WAAW,CAAS,aAAa,EAAE,MAAM,CAAC;+CAAkB;2FAL3D,cAAc;kBAD1B,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;8BAM4B,OAAO;sBAA3D,KAAK;;;MCAK,eAAgB,SAAQ,cAAc;IAGjD,YAAoB,QAAmB,EAAU,UAAsB,EAAS,aAA6B;QAC3G,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAAW;QAAU,eAAU,GAAV,UAAU,CAAY;QAAS,kBAAa,GAAb,aAAa,CAAgB;QAE3G,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KAC3C;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5D;;+HAnBU,eAAe;mHAAf,eAAe,2FCpB5B,+BACA;2FDmBa,eAAe;kBAP3B,SAAS;mBAAC;oBACT,QAAQ,EAAE,GAAG,YAAY,EAAE;oBAC3B,WAAW,EAAE,wBAAwB;oBACrC,SAAS,EAAE,CAAC,oBAAoB,CAAC;oBACjC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;;;METY,YAAY;;4HAAZ,YAAY;6HAAZ,YAAY,iBAJR,eAAe,EAAE,cAAc,aAEpC,YAAY,aADZ,eAAe;6HAGd,YAAY,YAFd,CAAC,YAAY,CAAC;2FAEZ,YAAY;kBALxB,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;oBAC/C,OAAO,EAAE,CAAC,eAAe,CAAC;oBAC1B,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB;;;ACTD;;;;;;"}
1
+ {"version":3,"file":"ng-nest-ui-inner.js","sources":["../../../../lib/ng-nest/ui/inner/inner.property.ts","../../../../lib/ng-nest/ui/inner/inner.component.ts","../../../../lib/ng-nest/ui/inner/inner.component.html","../../../../lib/ng-nest/ui/inner/inner.module.ts","../../../../lib/ng-nest/ui/inner/ng-nest-ui-inner.ts"],"sourcesContent":["import { XProperty, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Inner\r\n * @selector x-inner\r\n * @decorator component\r\n */\r\nexport const XInnerPrefix = 'x-inner';\r\nconst X_CONFIG_NAME = 'inner';\r\n\r\n/**\r\n * Inner Property\r\n */\r\n@Component({ template: '' })\r\nexport class XInnerProperty extends XProperty {\r\n /**\r\n * @zh_CN 内边距\r\n * @en_US Inner padding\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '1rem') padding?: string;\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n Renderer2,\r\n ElementRef,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XInnerPrefix, XInnerProperty } from './inner.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XInnerPrefix}`,\r\n templateUrl: './inner.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XInnerComponent extends XInnerProperty implements OnInit, OnChanges {\r\n private _ele: HTMLElement;\r\n\r\n constructor(private renderer: Renderer2, private elementRef: ElementRef, public configService: XConfigService) {\r\n super();\r\n this.renderer.addClass(this.elementRef.nativeElement, XInnerPrefix);\r\n this._ele = this.elementRef.nativeElement;\r\n }\r\n\r\n ngOnInit() {\r\n this.setStyle();\r\n }\r\n\r\n ngOnChanges(_changes: SimpleChanges): void {\r\n this.setStyle();\r\n }\r\n\r\n setStyle() {\r\n this.renderer.setStyle(this._ele, 'padding', this.padding);\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XInnerComponent } from './inner.component';\r\nimport { XInnerProperty } from './inner.property';\r\n\r\n@NgModule({\r\n declarations: [XInnerComponent, XInnerProperty],\r\n exports: [XInnerComponent],\r\n imports: [CommonModule]\r\n})\r\nexport class XInnerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAGA;;;;;MAKa,YAAY,GAAG,UAAU;AACtC,MAAM,aAAa,GAAG,OAAO,CAAC;AAE9B;;;MAIa,cAAe,SAAQ,SAAS;;8HAAhC,cAAc;kHAAd,cAAc,2GADJ,EAAE;AAM8B;IAA3C,WAAW,CAAS,aAAa,EAAE,MAAM,CAAC;+CAAkB;2FAL3D,cAAc;kBAD1B,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;8BAM4B,OAAO;sBAA3D,KAAK;;;MCAK,eAAgB,SAAQ,cAAc;IAGjD,YAAoB,QAAmB,EAAU,UAAsB,EAAS,aAA6B;QAC3G,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAAW;QAAU,eAAU,GAAV,UAAU,CAAY;QAAS,kBAAa,GAAb,aAAa,CAAgB;QAE3G,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KAC3C;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,WAAW,CAAC,QAAuB;QACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5D;;+HAnBU,eAAe;mHAAf,eAAe,2FCpB5B,+BACA;2FDmBa,eAAe;kBAP3B,SAAS;mBAAC;oBACT,QAAQ,EAAE,GAAG,YAAY,EAAE;oBAC3B,WAAW,EAAE,wBAAwB;oBACrC,SAAS,EAAE,CAAC,oBAAoB,CAAC;oBACjC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;;;METY,YAAY;;4HAAZ,YAAY;6HAAZ,YAAY,iBAJR,eAAe,EAAE,cAAc,aAEpC,YAAY,aADZ,eAAe;6HAGd,YAAY,YAFd,CAAC,YAAY,CAAC;2FAEZ,YAAY;kBALxB,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;oBAC/C,OAAO,EAAE,CAAC,eAAe,CAAC;oBAC1B,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB;;;ACTD;;;;;;"}
@@ -193,11 +193,9 @@ class XInputGroupComponent extends XInputGroupProperty {
193
193
  this.cdr = cdr;
194
194
  this.configService = configService;
195
195
  }
196
- ngOnInit() { }
197
- ngOnChanges(changes) { }
198
196
  }
199
197
  /** @nocollapse */ XInputGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XInputGroupComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
200
- /** @nocollapse */ XInputGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XInputGroupComponent, selector: "x-input-group", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-input-group\" [class.x-input-group-compact]=\"compact\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-group{display:inline-block}.x-input-group{display:flex}.x-input-group-compact>*{display:inline-block}.x-input-group-compact>* input,.x-input-group-compact>* .x-button{border-radius:0!important}.x-input-group-compact>* input:hover,.x-input-group-compact>* input:focus,.x-input-group-compact>* .x-button:hover,.x-input-group-compact>* .x-button:focus{z-index:1}.x-input-group-compact>*:first-child input,.x-input-group-compact>*:first-child .x-button{border-top-left-radius:var(--x-border-radius)!important;border-bottom-left-radius:var(--x-border-radius)!important}.x-input-group-compact>*:last-child input,.x-input-group-compact>*:last-child .x-button{border-top-right-radius:var(--x-border-radius)!important;border-bottom-right-radius:var(--x-border-radius)!important}.x-input-group-compact>*:not(:last-child){margin-right:calc(var(--x-border-width) * -1)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
198
+ /** @nocollapse */ XInputGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XInputGroupComponent, selector: "x-input-group", usesInheritance: true, ngImport: i0, template: "<div class=\"x-input-group\" [class.x-input-group-compact]=\"compact\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-group{display:inline-block}.x-input-group{display:flex}.x-input-group-compact>*{display:inline-block}.x-input-group-compact>* input,.x-input-group-compact>* .x-button{border-radius:0!important}.x-input-group-compact>* input:hover,.x-input-group-compact>* input:focus,.x-input-group-compact>* .x-button:hover,.x-input-group-compact>* .x-button:focus{z-index:1}.x-input-group-compact>*:first-child input,.x-input-group-compact>*:first-child .x-button{border-top-left-radius:var(--x-border-radius)!important;border-bottom-left-radius:var(--x-border-radius)!important}.x-input-group-compact>*:last-child input,.x-input-group-compact>*:last-child .x-button{border-top-right-radius:var(--x-border-radius)!important;border-bottom-right-radius:var(--x-border-radius)!important}.x-input-group-compact>*:not(:last-child){margin-right:calc(var(--x-border-width) * -1)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
201
199
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XInputGroupComponent, decorators: [{
202
200
  type: Component,
203
201
  args: [{
@@ -253,9 +251,10 @@ class XInputComponent extends XInputProperty {
253
251
  this.setClassMap();
254
252
  }
255
253
  ngOnChanges(changes) {
256
- XIsChange(changes.clearable) && this.setClearable();
257
- XIsChange(changes.size, changes.labelAlign) && this.setClassMap();
258
- XIsChange(changes.justify, changes.align, changes.direction) && this.setFlexClass();
254
+ const { clearable, size, labelAlign, justify, align, direction } = changes;
255
+ XIsChange(clearable) && this.setClearable();
256
+ XIsChange(size, labelAlign) && this.setClassMap();
257
+ XIsChange(justify, align, direction) && this.setFlexClass();
259
258
  }
260
259
  ngOnDestroy() {
261
260
  this._unSubject.next();
@@ -326,6 +325,8 @@ class XInputComponent extends XInputProperty {
326
325
  }
327
326
  inputFocus(type = 'after') {
328
327
  this.inputRef.nativeElement.focus();
328
+ if (!this.value)
329
+ return;
329
330
  if (type === 'after') {
330
331
  this.inputRef.nativeElement.setSelectionRange(this.value.length, this.value.length);
331
332
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-input.js","sources":["../../../../lib/ng-nest/ui/input/input.property.ts","../../../../lib/ng-nest/ui/input/input-group.component.ts","../../../../lib/ng-nest/ui/input/input-group.component.html","../../../../lib/ng-nest/ui/input/input.component.ts","../../../../lib/ng-nest/ui/input/input.component.html","../../../../lib/ng-nest/ui/input/input.module.ts","../../../../lib/ng-nest/ui/input/ng-nest-ui-input.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 XProperty,\r\n XTemplate\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component, TemplateRef } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * Input\r\n * @selector x-input\r\n * @decorator component\r\n */\r\nexport const XInputPrefix = 'x-input';\r\nconst X_CONFIG_NAME = 'input';\r\n\r\n/**\r\n * Input Property\r\n */\r\n@Component({ template: '' })\r\nexport class XInputProperty extends XControlValueAccessor<any> implements XInputOption {\r\n /**\r\n * @zh_CN 输入类型\r\n * @en_US Input type\r\n */\r\n @Input() type?: XInputType = 'text';\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 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<XInputIconLayoutType>(X_CONFIG_NAME, 'right') iconLayout: XInputIconLayoutType = '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;\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 Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 输入框样式\r\n * @en_US Input Style\r\n */\r\n @Input() inputStyle!: { [style: string]: any };\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n @Input() @XInputBoolean() pointer!: XBoolean;\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 * @zh_CN 获取焦点的事件\r\n * @en_US Focus event\r\n */\r\n @Output() xFocus = new EventEmitter<any>();\r\n /**\r\n * @zh_CN 失去焦点的事件\r\n * @en_US Blur event\r\n */\r\n @Output() xBlur = new EventEmitter<any>();\r\n /**\r\n * @zh_CN Input\r\n * @en_US Input event\r\n */\r\n @Output() xInput = new EventEmitter<any>();\r\n /**\r\n * @zh_CN Keydown\r\n * @en_US Keydown event\r\n */\r\n @Output() xKeydown = new EventEmitter<any>();\r\n /**\r\n * @zh_CN Click\r\n * @en_US Click event\r\n */\r\n @Output() xClick = new EventEmitter<any>();\r\n /**\r\n * @zh_CN Mouseenter\r\n * @en_US Mouseenter event\r\n */\r\n @Output() xMouseenter = new EventEmitter<any>();\r\n /**\r\n * @zh_CN Mouseleave\r\n * @en_US Mouseleave event\r\n */\r\n @Output() xMouseleave = new EventEmitter<any>();\r\n}\r\n\r\n/**\r\n * Input Option\r\n * @undocument true\r\n */\r\nexport interface XInputOption extends XFormOption {\r\n /**\r\n * @zh_CN 输入类型\r\n * @en_US Input type\r\n */\r\n type?: XInputType;\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?: XInputIconLayoutType;\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 Display Border\r\n */\r\n bordered?: XBoolean;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US 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 Input box type\r\n * @value \"text\" 文本\r\n * @value \"password\" 密码\r\n * @value \"number\" 数字\r\n */\r\nexport type XInputType = 'text' | 'password' | 'number';\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 XInputIconLayoutType = XPositionLeftRight;\r\n\r\n/**\r\n * Input Group\r\n * @selector x-input-group\r\n * @decorator component\r\n */\r\nexport const XInputGroupPrefix = 'x-input-group';\r\nconst X_CONFIG_GROUP_NAME = 'inputGroup';\r\n\r\n/**\r\n * Input Group Property\r\n */\r\n@Component({ template: '' })\r\nexport class XInputGroupProperty extends XProperty {\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_GROUP_NAME) size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_GROUP_NAME) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 是否使用紧凑模式\r\n * @en_US Whether to use a compact mode\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_GROUP_NAME) compact!: XBoolean;\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n OnChanges,\r\n OnInit,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\nimport { XInputGroupPrefix, XInputGroupProperty } from './input.property';\r\n\r\n@Component({\r\n selector: `${XInputGroupPrefix}`,\r\n templateUrl: './input-group.component.html',\r\n styleUrls: ['./input-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XInputGroupComponent extends XInputGroupProperty implements OnInit, OnChanges {\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(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {}\r\n}\r\n","<div class=\"x-input-group\" [class.x-input-group-compact]=\"compact\">\r\n <ng-content></ng-content>\r\n</div>\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 Input,\r\n Optional,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { XInputPrefix, XInputProperty } from './input.property';\r\nimport { XIsEmpty, XIsChange, XClearClass, XConfigService, XIsUndefined } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XInputGroupComponent } from './input-group.component';\r\n\r\n@Component({\r\n selector: `${XInputPrefix}`,\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XInputComponent)]\r\n})\r\nexport class XInputComponent extends XInputProperty implements OnInit, OnChanges {\r\n @ViewChild('inputElement', { static: true }) inputElement!: ElementRef;\r\n @ViewChild('inputRef', { static: true }) inputRef!: 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 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 flexClass: string[] = [];\r\n private _required: boolean = false;\r\n private _unSubject = new Subject();\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 get beforeIsTemplate() {\r\n return this.before instanceof TemplateRef;\r\n }\r\n\r\n get afterIsTemplate() {\r\n return this.after instanceof TemplateRef;\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 @Optional() public inputGroup: XInputGroupComponent\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setPadding();\r\n this.setFlexClass();\r\n this.setInheritedValue();\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n XIsChange(changes.clearable) && this.setClearable();\r\n XIsChange(changes.size, changes.labelAlign) && this.setClassMap();\r\n XIsChange(changes.justify, changes.align, changes.direction) && this.setFlexClass();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\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.inputRef.nativeElement.focus();\r\n }\r\n\r\n setFlexClass() {\r\n if (this.flexClass.length > 0) {\r\n for (let cls of this.flexClass) {\r\n this.renderer.removeClass(this.inputElement.nativeElement, cls);\r\n }\r\n }\r\n this.flexClass = this.setFlex(this.inputElement.nativeElement, this.renderer, this.justify, this.align, this.direction);\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 setInheritedValue() {\r\n if (!this.inputGroup) return;\r\n if (!XIsUndefined(this.inputGroup.size)) {\r\n this.size = this.inputGroup.size;\r\n }\r\n if (!XIsUndefined(this.inputGroup.bordered)) {\r\n this.bordered = this.inputGroup.bordered;\r\n }\r\n }\r\n\r\n setPadding() {\r\n this.paddingLeft =\r\n this.maxlength && this.icon && this.iconLayout === 'right'\r\n ? (this.lengthTotal.length + 2) * 0.385\r\n : this.icon && this.iconLayout === 'left'\r\n ? 1.8\r\n : 0.4;\r\n this.paddingRight =\r\n this.maxlength && this.icon && this.iconLayout === 'left'\r\n ? (this.lengthTotal.length + 2) * 0.385\r\n : this.icon && this.iconLayout === 'right'\r\n ? 1.8\r\n : this.maxlength && !this.icon\r\n ? (this.lengthTotal.length + 2) * 0.385\r\n : 0.4;\r\n }\r\n\r\n inputFocus(type: 'focus' | 'select' | 'before' | 'after' = 'after') {\r\n this.inputRef.nativeElement.focus();\r\n if (type === 'after') {\r\n this.inputRef.nativeElement.setSelectionRange(this.value.length, this.value.length);\r\n } else if (type === 'before') {\r\n this.inputRef.nativeElement.setSelectionRange(0, 0);\r\n } else if (type === 'select') {\r\n this.inputRef.nativeElement.setSelectionRange(0, this.value.length);\r\n }\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap, this.labelMap);\r\n this.classMap[`${XInputPrefix}-${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","<div\r\n #inputElement\r\n class=\"x-input\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-input-icon]=\"getIcon\"\r\n [class.x-input-active]=\"active\"\r\n [class.x-input-pointer]=\"pointer\"\r\n [class.x-input-bordered]=\"bordered\"\r\n [class.x-input-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-input-icon-right]=\"getIconLayoutRight\"\r\n [class.x-input-after]=\"after\"\r\n [class.x-input-before]=\"before\"\r\n [class.x-input-after-template]=\"afterIsTemplate\"\r\n [class.x-input-before-template]=\"beforeIsTemplate\"\r\n [class.x-input-value-template]=\"valueTpl\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-input-row\">\r\n <div class=\"x-input-row-before\" *ngIf=\"before\" [class.x-input-row-before-template]=\"beforeIsTemplate\">\r\n <ng-container *xOutlet=\"before\">{{ before }}</ng-container>\r\n </div>\r\n <div class=\"x-input-input\" (mouseenter)=\"xMouseenter.emit($event)\" (mouseleave)=\"xMouseleave.emit($event)\">\r\n <div\r\n class=\"x-input-value-template-value\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (click)=\"xClick.emit($event)\"\r\n *ngIf=\"valueTpl\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"valueTpl; context: valueTplContext ? valueTplContext : { $value: value }\"></ng-container>\r\n </div>\r\n <input\r\n #inputRef\r\n [ngStyle]=\"inputStyle\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (focus)=\"xFocus.emit($event)\"\r\n (blur)=\"xBlur.emit($event)\"\r\n (input)=\"xInput.emit($event)\"\r\n (keydown)=\"xKeydown.emit($event)\"\r\n (click)=\"xClick.emit($event)\"\r\n />\r\n <x-icon *ngIf=\"clearShow\" class=\"x-input-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft)\" [type]=\"icon\" [spin]=\"iconSpin\"></x-icon>\r\n <span class=\"x-input-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-input-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n <div class=\"x-input-row-after\" *ngIf=\"after\" [class.x-input-row-after-template]=\"afterIsTemplate\">\r\n <ng-container *xOutlet=\"after\">{{ after }}</ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputComponent } from './input.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XInputGroupProperty, XInputProperty } from './input.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\nimport { XInputGroupComponent } from './input-group.component';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\n\r\n@NgModule({\r\n declarations: [XInputComponent, XInputProperty, XInputGroupComponent, XInputGroupProperty],\r\n exports: [XInputComponent, XInputGroupComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XIconModule, XBaseFormModule, XOutletModule]\r\n})\r\nexport class XInputModule {}\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-input.js","sources":["../../../../lib/ng-nest/ui/input/input.property.ts","../../../../lib/ng-nest/ui/input/input-group.component.ts","../../../../lib/ng-nest/ui/input/input-group.component.html","../../../../lib/ng-nest/ui/input/input.component.ts","../../../../lib/ng-nest/ui/input/input.component.html","../../../../lib/ng-nest/ui/input/input.module.ts","../../../../lib/ng-nest/ui/input/ng-nest-ui-input.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 XProperty,\r\n XTemplate\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 * Input\r\n * @selector x-input\r\n * @decorator component\r\n */\r\nexport const XInputPrefix = 'x-input';\r\nconst X_CONFIG_NAME = 'input';\r\n\r\n/**\r\n * Input Property\r\n */\r\n@Component({ template: '' })\r\nexport class XInputProperty extends XControlValueAccessor<any> implements XInputOption {\r\n /**\r\n * @zh_CN 输入类型\r\n * @en_US Input type\r\n */\r\n @Input() type?: XInputType = 'text';\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 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<XInputIconLayoutType>(X_CONFIG_NAME, 'right') iconLayout: XInputIconLayoutType = '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;\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 Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 输入框样式\r\n * @en_US Input Style\r\n */\r\n @Input() inputStyle!: { [style: string]: any };\r\n /**\r\n * @zh_CN 输入框点击样式\r\n * @en_US Input pointer\r\n */\r\n @Input() @XInputBoolean() pointer!: XBoolean;\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 * @zh_CN 获取焦点的事件\r\n * @en_US Focus event\r\n */\r\n @Output() xFocus = new EventEmitter<any>();\r\n /**\r\n * @zh_CN 失去焦点的事件\r\n * @en_US Blur event\r\n */\r\n @Output() xBlur = new EventEmitter<any>();\r\n /**\r\n * @zh_CN Input\r\n * @en_US Input event\r\n */\r\n @Output() xInput = new EventEmitter<any>();\r\n /**\r\n * @zh_CN Keydown\r\n * @en_US Keydown event\r\n */\r\n @Output() xKeydown = new EventEmitter<any>();\r\n /**\r\n * @zh_CN Click\r\n * @en_US Click event\r\n */\r\n @Output() xClick = new EventEmitter<any>();\r\n /**\r\n * @zh_CN Mouseenter\r\n * @en_US Mouseenter event\r\n */\r\n @Output() xMouseenter = new EventEmitter<any>();\r\n /**\r\n * @zh_CN Mouseleave\r\n * @en_US Mouseleave event\r\n */\r\n @Output() xMouseleave = new EventEmitter<any>();\r\n}\r\n\r\n/**\r\n * Input Option\r\n * @undocument true\r\n */\r\nexport interface XInputOption extends XFormOption {\r\n /**\r\n * @zh_CN 输入类型\r\n * @en_US Input type\r\n */\r\n type?: XInputType;\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?: XInputIconLayoutType;\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 Display Border\r\n */\r\n bordered?: XBoolean;\r\n /**\r\n * @zh_CN 前置标签\r\n * @en_US Before label\r\n */\r\n before?: XTemplate;\r\n /**\r\n * @zh_CN 后置标签\r\n * @en_US After label\r\n */\r\n after?: XTemplate;\r\n /**\r\n * @zh_CN 清除按钮的事件\r\n * @en_US 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 Input box type\r\n * @value \"text\" 文本\r\n * @value \"password\" 密码\r\n * @value \"number\" 数字\r\n */\r\nexport type XInputType = 'text' | 'password' | 'number';\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 XInputIconLayoutType = XPositionLeftRight;\r\n\r\n/**\r\n * Input Group\r\n * @selector x-input-group\r\n * @decorator component\r\n */\r\nexport const XInputGroupPrefix = 'x-input-group';\r\nconst X_CONFIG_GROUP_NAME = 'inputGroup';\r\n\r\n/**\r\n * Input Group Property\r\n */\r\n@Component({ template: '' })\r\nexport class XInputGroupProperty extends XProperty {\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_GROUP_NAME) size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_GROUP_NAME) bordered!: XBoolean;\r\n /**\r\n * @zh_CN 是否使用紧凑模式\r\n * @en_US Whether to use a compact mode\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_GROUP_NAME) compact!: XBoolean;\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Renderer2, ViewEncapsulation } from '@angular/core';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\nimport { XInputGroupPrefix, XInputGroupProperty } from './input.property';\r\n\r\n@Component({\r\n selector: `${XInputGroupPrefix}`,\r\n templateUrl: './input-group.component.html',\r\n styleUrls: ['./input-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XInputGroupComponent extends XInputGroupProperty {\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","<div class=\"x-input-group\" [class.x-input-group-compact]=\"compact\">\r\n <ng-content></ng-content>\r\n</div>\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 Optional,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { XInputPrefix, XInputProperty } from './input.property';\r\nimport { XIsEmpty, XIsChange, XClearClass, XConfigService, XIsUndefined } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XInputGroupComponent } from './input-group.component';\r\n\r\n@Component({\r\n selector: `${XInputPrefix}`,\r\n templateUrl: './input.component.html',\r\n styleUrls: ['./input.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XInputComponent)]\r\n})\r\nexport class XInputComponent extends XInputProperty implements OnInit, OnChanges {\r\n @ViewChild('inputElement', { static: true }) inputElement!: ElementRef;\r\n @ViewChild('inputRef', { static: true }) inputRef!: 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 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 flexClass: string[] = [];\r\n private _required: boolean = false;\r\n private _unSubject = new Subject<void>();\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 get beforeIsTemplate() {\r\n return this.before instanceof TemplateRef;\r\n }\r\n\r\n get afterIsTemplate() {\r\n return this.after instanceof TemplateRef;\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 @Optional() public inputGroup: XInputGroupComponent\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setPadding();\r\n this.setFlexClass();\r\n this.setInheritedValue();\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { clearable, size, labelAlign, justify, align, direction } = changes;\r\n XIsChange(clearable) && this.setClearable();\r\n XIsChange(size, labelAlign) && this.setClassMap();\r\n XIsChange(justify, align, direction) && this.setFlexClass();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\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.inputRef.nativeElement.focus();\r\n }\r\n\r\n setFlexClass() {\r\n if (this.flexClass.length > 0) {\r\n for (let cls of this.flexClass) {\r\n this.renderer.removeClass(this.inputElement.nativeElement, cls);\r\n }\r\n }\r\n this.flexClass = this.setFlex(this.inputElement.nativeElement, this.renderer, this.justify, this.align, this.direction);\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 setInheritedValue() {\r\n if (!this.inputGroup) return;\r\n if (!XIsUndefined(this.inputGroup.size)) {\r\n this.size = this.inputGroup.size;\r\n }\r\n if (!XIsUndefined(this.inputGroup.bordered)) {\r\n this.bordered = this.inputGroup.bordered;\r\n }\r\n }\r\n\r\n setPadding() {\r\n this.paddingLeft =\r\n this.maxlength && this.icon && this.iconLayout === 'right'\r\n ? (this.lengthTotal.length + 2) * 0.385\r\n : this.icon && this.iconLayout === 'left'\r\n ? 1.8\r\n : 0.4;\r\n this.paddingRight =\r\n this.maxlength && this.icon && this.iconLayout === 'left'\r\n ? (this.lengthTotal.length + 2) * 0.385\r\n : this.icon && this.iconLayout === 'right'\r\n ? 1.8\r\n : this.maxlength && !this.icon\r\n ? (this.lengthTotal.length + 2) * 0.385\r\n : 0.4;\r\n }\r\n\r\n inputFocus(type: 'focus' | 'select' | 'before' | 'after' = 'after') {\r\n this.inputRef.nativeElement.focus();\r\n if (!this.value) return;\r\n if (type === 'after') {\r\n this.inputRef.nativeElement.setSelectionRange(this.value.length, this.value.length);\r\n } else if (type === 'before') {\r\n this.inputRef.nativeElement.setSelectionRange(0, 0);\r\n } else if (type === 'select') {\r\n this.inputRef.nativeElement.setSelectionRange(0, this.value.length);\r\n }\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.classMap, this.labelMap);\r\n this.classMap[`${XInputPrefix}-${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","<div\r\n #inputElement\r\n class=\"x-input\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-clearable]=\"clearable\"\r\n [class.x-clear-show]=\"clearShow\"\r\n [class.x-input-icon]=\"getIcon\"\r\n [class.x-input-active]=\"active\"\r\n [class.x-input-pointer]=\"pointer\"\r\n [class.x-input-bordered]=\"bordered\"\r\n [class.x-input-icon-left]=\"getIconLayoutLeft\"\r\n [class.x-input-icon-right]=\"getIconLayoutRight\"\r\n [class.x-input-after]=\"after\"\r\n [class.x-input-before]=\"before\"\r\n [class.x-input-after-template]=\"afterIsTemplate\"\r\n [class.x-input-before-template]=\"beforeIsTemplate\"\r\n [class.x-input-value-template]=\"valueTpl\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-input-row\">\r\n <div class=\"x-input-row-before\" *ngIf=\"before\" [class.x-input-row-before-template]=\"beforeIsTemplate\">\r\n <ng-container *xOutlet=\"before\">{{ before }}</ng-container>\r\n </div>\r\n <div class=\"x-input-input\" (mouseenter)=\"xMouseenter.emit($event)\" (mouseleave)=\"xMouseleave.emit($event)\">\r\n <div\r\n class=\"x-input-value-template-value\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (click)=\"xClick.emit($event)\"\r\n *ngIf=\"valueTpl\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"valueTpl; context: valueTplContext ? valueTplContext : { $value: value }\"></ng-container>\r\n </div>\r\n <input\r\n #inputRef\r\n [ngStyle]=\"inputStyle\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [maxlength]=\"maxlength\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"change($event)\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.padding-right.rem]=\"paddingRight\"\r\n (focus)=\"xFocus.emit($event)\"\r\n (blur)=\"xBlur.emit($event)\"\r\n (input)=\"xInput.emit($event)\"\r\n (keydown)=\"xKeydown.emit($event)\"\r\n (click)=\"xClick.emit($event)\"\r\n />\r\n <x-icon *ngIf=\"clearShow\" class=\"x-input-clear\" type=\"fto-x\" (click)=\"onClear()\"></x-icon>\r\n <x-icon *ngIf=\"icon && ((!clearShow && getIconLayoutRight) || getIconLayoutLeft)\" [type]=\"icon\" [spin]=\"iconSpin\"></x-icon>\r\n <span class=\"x-input-max-length\" *ngIf=\"maxlength\">{{ lengthTotal }}</span>\r\n <span class=\"x-input-error-message\" *ngIf=\"invalid\">{{ invalidMessage }}</span>\r\n <ng-container *ngIf=\"requiredIsEmpty || invalid\">\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n </ng-container>\r\n </div>\r\n <div class=\"x-input-row-after\" *ngIf=\"after\" [class.x-input-row-after-template]=\"afterIsTemplate\">\r\n <ng-container *xOutlet=\"after\">{{ after }}</ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputComponent } from './input.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XInputGroupProperty, XInputProperty } from './input.property';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\nimport { XInputGroupComponent } from './input-group.component';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\n\r\n@NgModule({\r\n declarations: [XInputComponent, XInputProperty, XInputGroupComponent, XInputGroupProperty],\r\n exports: [XInputComponent, XInputGroupComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XIconModule, XBaseFormModule, XOutletModule]\r\n})\r\nexport class XInputModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -243,7 +243,8 @@ class XListComponent extends XListProperty {
243
243
  }
244
244
  ngOnInit() { }
245
245
  ngOnChanges(changes) {
246
- XIsChange(changes.data) && this.setData();
246
+ const { data } = changes;
247
+ XIsChange(data) && this.setData();
247
248
  }
248
249
  ngAfterViewInit() {
249
250
  this.initKeyManager();
@@ -272,7 +273,7 @@ class XListComponent extends XListProperty {
272
273
  this.keyManagerChange.emit(num);
273
274
  });
274
275
  }
275
- setScorllTop(num) {
276
+ setScorllTop(_num) {
276
277
  if (!this.scrollElement)
277
278
  return;
278
279
  let ele = this.keyManager.activeItem.elementRef.nativeElement;
@@ -404,7 +405,7 @@ class XListComponent extends XListProperty {
404
405
  moveItemInArray(this.nodes, event.previousIndex, event.currentIndex);
405
406
  this.cdr.detectChanges();
406
407
  }
407
- trackByNode(index, item) {
408
+ trackByNode(_index, item) {
408
409
  return item.id;
409
410
  }
410
411
  setUnActive(num) {
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-list.js","sources":["../../../../lib/ng-nest/ui/list/list.property.ts","../../../../lib/ng-nest/ui/list/list-option.component.ts","../../../../lib/ng-nest/ui/list/list-option.component.html","../../../../lib/ng-nest/ui/list/list.component.ts","../../../../lib/ng-nest/ui/list/list.component.html","../../../../lib/ng-nest/ui/list/list.module.ts","../../../../lib/ng-nest/ui/list/ng-nest-ui-list.ts"],"sourcesContent":["import { XData, XParentIdentityProperty, XDataConvert, XInputNumber, XInputBoolean, XNumber, XBoolean } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component, TemplateRef, ElementRef } from '@angular/core';\r\nimport { XControlValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * List\r\n * @selector x-list\r\n * @decorator component\r\n */\r\nexport const XListPrefix = 'x-list';\r\n\r\n/**\r\n * List Property\r\n */\r\n@Component({ template: '' })\r\nexport class XListProperty extends XControlValueAccessor<any> {\r\n /**\r\n * @zh_CN 列表数据\r\n * @en_US List data\r\n */\r\n @Input() @XDataConvert() data: XData<XListNode> = [];\r\n /**\r\n * @zh_CN 多选个数\r\n * @en_US Multiple choice\r\n */\r\n @Input() @XInputNumber() multiple: XNumber = 1;\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n @Input() @XInputBoolean() checked?: XBoolean;\r\n /**\r\n * @zh_CN 拖动\r\n * @en_US Drag\r\n */\r\n @Input() @XInputBoolean() drag?: XBoolean;\r\n /**\r\n * @zh_CN 当开启多选的时候,ngModel 的值为对象数组\r\n * @en_US When multiple selection is enabled, the value of ngmodel is an array of objects\r\n */\r\n @Input() @XInputBoolean() objectArray?: XBoolean;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n @Input() nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 滚动区域元素\r\n * @en_US Rolling area element\r\n */\r\n @Input() scrollElement?: HTMLElement;\r\n /**\r\n * @zh_CN 节点 mouseenter 事件\r\n * @en_US Node mouseenter event\r\n */\r\n @Output() nodeMouseenter = new EventEmitter<XListNode>();\r\n /**\r\n * @zh_CN 节点 mouseleave 事件\r\n * @en_US Node mouseleave event\r\n */\r\n @Output() nodeMouseleave = new EventEmitter<XListNode>();\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeClick = new EventEmitter<XListNode>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n @Output() keyManagerTabOut = new EventEmitter<void>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n @Output() keyManagerChange = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * @zh_CN List 数据对象\r\n * @en_US List data object\r\n */\r\nexport interface XListNode extends XParentIdentityProperty<any> {\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Iicon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 分割线\r\n * @en_US Split line\r\n */\r\n divided?: boolean;\r\n /**\r\n * @zh_CN 事件\r\n * @en_US Event\r\n */\r\n event?: Event;\r\n /**\r\n * @zh_CN 悬停\r\n * @en_US Hover\r\n */\r\n hover?: boolean;\r\n /**\r\n * @zh_CN 激活\r\n * @en_US Active\r\n */\r\n active?: boolean;\r\n}\r\n\r\n/**\r\n * List Option\r\n * @selector x-list-option\r\n * @decorator component\r\n */\r\nexport const XListOptionPrefix = 'x-list-option';\r\n\r\n/**\r\n * List Option Property\r\n */\r\n@Component({ template: '' })\r\nexport class XListOptionProperty {\r\n /**\r\n * @zh_CN 节点参数\r\n * @en_US Node param\r\n */\r\n @Input() node?: XListNode;\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n @Input() @XInputBoolean() checked?: XBoolean;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n @Input() nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 选中\r\n * @en_US selected\r\n */\r\n @Input() @XInputBoolean() selected?: boolean;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US disabled\r\n */\r\n @Input() @XInputBoolean() disabled?: boolean;\r\n /**\r\n * @zh_CN 激活\r\n * @en_US active\r\n */\r\n @Input() @XInputBoolean() active?: boolean;\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 Split line\r\n */\r\n @Input() divided?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US label\r\n */\r\n @Input() label?: string;\r\n /**\r\n * @zh_CN 有子节点\r\n * @en_US leaf\r\n */\r\n @Input() @XInputBoolean() leaf?: boolean;\r\n /**\r\n * @zh_CN 有子节点\r\n * @en_US leaf\r\n */\r\n @Output() activeChange = new EventEmitter<boolean>();\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { XListOptionPrefix, XListOptionProperty } from './list.property';\r\nimport { Highlightable } from '@angular/cdk/a11y';\r\n\r\n@Component({\r\n selector: `${XListOptionPrefix}`,\r\n templateUrl: './list-option.component.html',\r\n styleUrls: ['./list-option.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XListOptionComponent extends XListOptionProperty implements Highlightable {\r\n @HostBinding('attr.role') role = 'option';\r\n constructor(public elementRef: ElementRef, private cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n setActiveStyles(): void {\r\n this.active = true;\r\n this.activeChange.emit(this.active);\r\n this.cdr.detectChanges();\r\n }\r\n setInactiveStyles(): void {\r\n this.active = false;\r\n this.activeChange.emit(this.active);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getLabel() {\r\n return this.label as string;\r\n }\r\n}\r\n","<div\r\n class=\"x-list-option\"\r\n [class.x-selected]=\"selected\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-active]=\"active\"\r\n [class.x-list-icon]=\"icon\"\r\n [class.x-list-divided]=\"divided\"\r\n>\r\n <span>\r\n <ng-container *ngIf=\"!nodeTpl\"\r\n ><x-icon [type]=\"icon\" *ngIf=\"icon\"></x-icon> {{ label }}</ng-container\r\n >\r\n <ng-container *ngIf=\"nodeTpl\">\r\n <ng-template *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-template>\r\n </ng-container>\r\n </span>\r\n <x-icon class=\"x-list-leaf\" type=\"fto-chevron-right\" *ngIf=\"leaf\"></x-icon>\r\n <x-icon class=\"x-list-checked\" type=\"fto-check\" *ngIf=\"checked && !leaf && selected\"></x-icon>\r\n</div>\r\n","import { 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 SimpleChanges,\r\n OnChanges,\r\n QueryList,\r\n ElementRef,\r\n ViewChild,\r\n HostBinding,\r\n HostListener,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport { XListPrefix, XListNode, XListProperty } from './list.property';\r\nimport {\r\n XIsChange,\r\n XSetData,\r\n XConfigService,\r\n XIsEmpty,\r\n XIsUndefined,\r\n XIsNull\r\n} from '@ng-nest/ui/core';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { ActiveDescendantKeyManager, FocusKeyManager } from '@angular/cdk/a11y';\r\nimport { ENTER } from '@angular/cdk/keycodes';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XListPrefix}`,\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XListComponent)]\r\n})\r\nexport class XListComponent extends XListProperty implements OnInit, OnChanges {\r\n nodes: XListNode[] = [];\r\n selectedNodes: XListNode[] = [];\r\n @ViewChild('listItems') listItems!: ElementRef;\r\n @ViewChildren(XListOptionComponent)\r\n options!: QueryList<XListOptionComponent>;\r\n keyManager!: ActiveDescendantKeyManager<XListOptionComponent>;\r\n\r\n @HostBinding('attr.role') role = 'listbox';\r\n @HostBinding('attr.tabindex') tabindex = -1;\r\n\r\n @HostListener('keydown', ['$event']) keydown($event: KeyboardEvent) {\r\n this.keyManager.onKeydown($event);\r\n const activeIndex = this.keyManager.activeItemIndex as number;\r\n if ($event.keyCode === ENTER && !XIsUndefined(activeIndex)) {\r\n this.setUnActive(activeIndex);\r\n this.onNodeClick($event, this.nodes[activeIndex]);\r\n }\r\n }\r\n\r\n get isEmpty() {\r\n return XIsEmpty(this.nodes);\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n this.setSelected();\r\n this.setKeyManager();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public cdr: ChangeDetectorRef,\r\n public elementRef: ElementRef,\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 ngAfterViewInit() {\r\n this.initKeyManager();\r\n }\r\n\r\n ngAfterViewChecked() {}\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n private setData() {\r\n XSetData<XListNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.setSelected();\r\n this.setKeyManager();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n private initKeyManager() {\r\n this.keyManager = new ActiveDescendantKeyManager<XListOptionComponent>(this.options).withWrap();\r\n\r\n this.keyManager.tabOut.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.setUnActive(this.keyManager.activeItemIndex as number);\r\n this.keyManagerTabOut.emit();\r\n });\r\n\r\n this.keyManager.change.pipe(takeUntil(this._unSubject)).subscribe((num: number) => {\r\n this.setScorllTop(num);\r\n this.keyManagerChange.emit(num);\r\n });\r\n }\r\n\r\n setScorllTop(num: number) {\r\n if (!this.scrollElement) return;\r\n let ele = this.keyManager.activeItem!.elementRef.nativeElement as HTMLElement;\r\n let list = this.scrollElement;\r\n let min = list.scrollTop;\r\n let max = list.scrollTop + list.clientHeight;\r\n if (ele.offsetTop + ele.clientHeight > max) {\r\n let scrollTop = ele.offsetTop + ele.clientHeight - list.clientHeight;\r\n list.scrollTop = scrollTop;\r\n }\r\n if (ele.offsetTop < min) {\r\n list.scrollTop = ele.offsetTop;\r\n }\r\n }\r\n\r\n setSelected() {\r\n if (this.nodes.length > 0) {\r\n this.nodes\r\n .filter((x) => x.selected)\r\n .map((x) => {\r\n x.selected = false;\r\n });\r\n let valArry: any[] = [];\r\n if (this.value instanceof Array) {\r\n valArry = this.value;\r\n } else {\r\n valArry = [this.value];\r\n }\r\n if (this.objectArray) {\r\n this.selectedNodes = this.nodes\r\n .filter(\r\n (x) => !XIsEmpty(valArry.find((y) => !XIsUndefined(y) && !XIsNull(y) && y.id === x.id))\r\n )\r\n .map((x) => {\r\n x.selected = true;\r\n return x;\r\n });\r\n } else {\r\n this.selectedNodes = this.nodes\r\n .filter((x) => valArry.indexOf(x.id) > -1)\r\n .map((x) => {\r\n x.selected = true;\r\n return x;\r\n });\r\n }\r\n }\r\n }\r\n\r\n setKeyManager() {\r\n if (XIsUndefined(this.keyManager) || XIsUndefined(this.nodes) || this.nodes.length === 0)\r\n return;\r\n let activeIndex = 0;\r\n if (XIsUndefined(this.value) || this.value.length === 0) {\r\n this.keyManager.updateActiveItem(activeIndex);\r\n return;\r\n }\r\n let valArry: any[] = [];\r\n if (this.value instanceof Array) {\r\n valArry = this.value;\r\n } else {\r\n valArry = [this.value];\r\n }\r\n const last = valArry[valArry.length - 1];\r\n if (this.objectArray) {\r\n activeIndex = this.nodes.findIndex((x) => x.id === last.id);\r\n } else {\r\n activeIndex = this.nodes.findIndex((x) => x.id === last);\r\n }\r\n this.keyManager.updateActiveItem(activeIndex);\r\n this.setScorllTop(activeIndex);\r\n }\r\n\r\n onNodeClick(event: Event, node: XListNode) {\r\n if (XIsUndefined(node) || node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n if (node.disabled || (node.selected && this.multiple === 1)) return;\r\n const selected = !node.selected;\r\n if (selected) {\r\n if (this.selectedNodes.length < this.multiple || this.multiple === 0) {\r\n node.selected = selected;\r\n this.selectedNodes = [...this.selectedNodes, node];\r\n this.cdr.detectChanges();\r\n } else if (this.multiple === 1 && this.selectedNodes.length === 1) {\r\n node.selected = selected;\r\n this.selectedNodes[0].selected = false;\r\n this.selectedNodes[0] = node;\r\n this.cdr.detectChanges();\r\n } else {\r\n return;\r\n }\r\n } else {\r\n node.selected = selected;\r\n this.selectedNodes.splice(\r\n this.selectedNodes.findIndex((x) => x.id == node.id),\r\n 1\r\n );\r\n }\r\n if (this.multiple === 1 && this.selectedNodes.length === 1) {\r\n this.value = this.objectArray ? this.selectedNodes[0] : this.selectedNodes[0].id;\r\n } else {\r\n this.value = this.objectArray ? this.selectedNodes : this.selectedNodes.map((x) => x.id);\r\n }\r\n if (this.onChange) this.onChange(this.value);\r\n this.cdr.detectChanges();\r\n node.event = event;\r\n this.nodeClick.emit(node);\r\n }\r\n\r\n onMouseenter(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n node.event = event;\r\n this.nodeMouseenter.emit(node);\r\n }\r\n\r\n onMouseleave(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n node.event = event;\r\n this.nodeMouseleave.emit(node);\r\n }\r\n\r\n dropCdk(event: CdkDragDrop<XListNode[]>) {\r\n moveItemInArray(this.nodes, event.previousIndex, event.currentIndex);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByNode(index: number, item: XListNode) {\r\n return item.id;\r\n }\r\n\r\n setUnActive(num: number) {\r\n if (num > -1) this.nodes[num].active = false;\r\n }\r\n}\r\n","<div\r\n class=\"x-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [hidden]=\"isEmpty\"\r\n>\r\n <x-list-option\r\n cdkDrag\r\n *ngFor=\"let node of nodes; trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [selected]=\"node.selected\"\r\n [disabled]=\"node.disabled\"\r\n [(active)]=\"node.active\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n</div>\r\n<x-empty *ngIf=\"isEmpty\"></x-empty>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XListComponent } from './list.component';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XListOptionProperty, XListProperty } from './list.property';\r\nimport { XEmptyModule } from '@ng-nest/ui/empty';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XListComponent, XListOptionComponent, XListProperty, XListOptionProperty],\r\n exports: [XListComponent, XListOptionComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DragDropModule,\r\n A11yModule,\r\n XIconModule,\r\n XEmptyModule,\r\n XBaseFormModule\r\n ]\r\n})\r\nexport class XListModule {}\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-list.js","sources":["../../../../lib/ng-nest/ui/list/list.property.ts","../../../../lib/ng-nest/ui/list/list-option.component.ts","../../../../lib/ng-nest/ui/list/list-option.component.html","../../../../lib/ng-nest/ui/list/list.component.ts","../../../../lib/ng-nest/ui/list/list.component.html","../../../../lib/ng-nest/ui/list/list.module.ts","../../../../lib/ng-nest/ui/list/ng-nest-ui-list.ts"],"sourcesContent":["import { XData, XParentIdentityProperty, XDataConvert, XInputNumber, XInputBoolean, XNumber, XBoolean } from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component, TemplateRef } from '@angular/core';\r\nimport { XControlValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * List\r\n * @selector x-list\r\n * @decorator component\r\n */\r\nexport const XListPrefix = 'x-list';\r\n\r\n/**\r\n * List Property\r\n */\r\n@Component({ template: '' })\r\nexport class XListProperty extends XControlValueAccessor<any> {\r\n /**\r\n * @zh_CN 列表数据\r\n * @en_US List data\r\n */\r\n @Input() @XDataConvert() data: XData<XListNode> = [];\r\n /**\r\n * @zh_CN 多选个数\r\n * @en_US Multiple choice\r\n */\r\n @Input() @XInputNumber() multiple: XNumber = 1;\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n @Input() @XInputBoolean() checked?: XBoolean;\r\n /**\r\n * @zh_CN 拖动\r\n * @en_US Drag\r\n */\r\n @Input() @XInputBoolean() drag?: XBoolean;\r\n /**\r\n * @zh_CN 当开启多选的时候,ngModel 的值为对象数组\r\n * @en_US When multiple selection is enabled, the value of ngmodel is an array of objects\r\n */\r\n @Input() @XInputBoolean() objectArray?: XBoolean;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n @Input() nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 滚动区域元素\r\n * @en_US Rolling area element\r\n */\r\n @Input() scrollElement?: HTMLElement;\r\n /**\r\n * @zh_CN 节点 mouseenter 事件\r\n * @en_US Node mouseenter event\r\n */\r\n @Output() nodeMouseenter = new EventEmitter<XListNode>();\r\n /**\r\n * @zh_CN 节点 mouseleave 事件\r\n * @en_US Node mouseleave event\r\n */\r\n @Output() nodeMouseleave = new EventEmitter<XListNode>();\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeClick = new EventEmitter<XListNode>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n @Output() keyManagerTabOut = new EventEmitter<void>();\r\n /**\r\n * @zh_CN Tab out 事件\r\n * @en_US Tab Out event\r\n */\r\n @Output() keyManagerChange = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * @zh_CN List 数据对象\r\n * @en_US List data object\r\n */\r\nexport interface XListNode extends XParentIdentityProperty<any> {\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Iicon\r\n */\r\n icon?: string;\r\n /**\r\n * @zh_CN 分割线\r\n * @en_US Split line\r\n */\r\n divided?: boolean;\r\n /**\r\n * @zh_CN 事件\r\n * @en_US Event\r\n */\r\n event?: Event;\r\n /**\r\n * @zh_CN 悬停\r\n * @en_US Hover\r\n */\r\n hover?: boolean;\r\n /**\r\n * @zh_CN 激活\r\n * @en_US Active\r\n */\r\n active?: boolean;\r\n}\r\n\r\n/**\r\n * List Option\r\n * @selector x-list-option\r\n * @decorator component\r\n */\r\nexport const XListOptionPrefix = 'x-list-option';\r\n\r\n/**\r\n * List Option Property\r\n */\r\n@Component({ template: '' })\r\nexport class XListOptionProperty {\r\n /**\r\n * @zh_CN 节点参数\r\n * @en_US Node param\r\n */\r\n @Input() node?: XListNode;\r\n /**\r\n * @zh_CN 选中\r\n * @en_US Selected\r\n */\r\n @Input() @XInputBoolean() checked?: XBoolean;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n @Input() nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 选中\r\n * @en_US selected\r\n */\r\n @Input() @XInputBoolean() selected?: boolean;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US disabled\r\n */\r\n @Input() @XInputBoolean() disabled?: boolean;\r\n /**\r\n * @zh_CN 激活\r\n * @en_US active\r\n */\r\n @Input() @XInputBoolean() active?: boolean;\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 Split line\r\n */\r\n @Input() divided?: boolean;\r\n /**\r\n * @zh_CN 标签\r\n * @en_US label\r\n */\r\n @Input() label?: string;\r\n /**\r\n * @zh_CN 有子节点\r\n * @en_US leaf\r\n */\r\n @Input() @XInputBoolean() leaf?: boolean;\r\n /**\r\n * @zh_CN 有子节点\r\n * @en_US leaf\r\n */\r\n @Output() activeChange = new EventEmitter<boolean>();\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { XListOptionPrefix, XListOptionProperty } from './list.property';\r\nimport { Highlightable } from '@angular/cdk/a11y';\r\n\r\n@Component({\r\n selector: `${XListOptionPrefix}`,\r\n templateUrl: './list-option.component.html',\r\n styleUrls: ['./list-option.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XListOptionComponent extends XListOptionProperty implements Highlightable {\r\n @HostBinding('attr.role') role = 'option';\r\n constructor(public elementRef: ElementRef, private cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n setActiveStyles(): void {\r\n this.active = true;\r\n this.activeChange.emit(this.active);\r\n this.cdr.detectChanges();\r\n }\r\n setInactiveStyles(): void {\r\n this.active = false;\r\n this.activeChange.emit(this.active);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getLabel() {\r\n return this.label as string;\r\n }\r\n}\r\n","<div\r\n class=\"x-list-option\"\r\n [class.x-selected]=\"selected\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-active]=\"active\"\r\n [class.x-list-icon]=\"icon\"\r\n [class.x-list-divided]=\"divided\"\r\n>\r\n <span>\r\n <ng-container *ngIf=\"!nodeTpl\"\r\n ><x-icon [type]=\"icon\" *ngIf=\"icon\"></x-icon> {{ label }}</ng-container\r\n >\r\n <ng-container *ngIf=\"nodeTpl\">\r\n <ng-template *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-template>\r\n </ng-container>\r\n </span>\r\n <x-icon class=\"x-list-leaf\" type=\"fto-chevron-right\" *ngIf=\"leaf\"></x-icon>\r\n <x-icon class=\"x-list-checked\" type=\"fto-check\" *ngIf=\"checked && !leaf && selected\"></x-icon>\r\n</div>\r\n","import { 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 SimpleChanges,\r\n OnChanges,\r\n QueryList,\r\n ElementRef,\r\n ViewChild,\r\n HostBinding,\r\n HostListener,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport { XListPrefix, XListNode, XListProperty } from './list.property';\r\nimport { XIsChange, XSetData, XConfigService, XIsEmpty, XIsUndefined, XIsNull } from '@ng-nest/ui/core';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\r\nimport { ENTER } from '@angular/cdk/keycodes';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XListPrefix}`,\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XListComponent)]\r\n})\r\nexport class XListComponent extends XListProperty implements OnInit, OnChanges {\r\n nodes: XListNode[] = [];\r\n selectedNodes: XListNode[] = [];\r\n @ViewChild('listItems') listItems!: ElementRef;\r\n @ViewChildren(XListOptionComponent)\r\n options!: QueryList<XListOptionComponent>;\r\n keyManager!: ActiveDescendantKeyManager<XListOptionComponent>;\r\n\r\n @HostBinding('attr.role') role = 'listbox';\r\n @HostBinding('attr.tabindex') tabindex = -1;\r\n\r\n @HostListener('keydown', ['$event']) keydown($event: KeyboardEvent) {\r\n this.keyManager.onKeydown($event);\r\n const activeIndex = this.keyManager.activeItemIndex as number;\r\n if ($event.keyCode === ENTER && !XIsUndefined(activeIndex)) {\r\n this.setUnActive(activeIndex);\r\n this.onNodeClick($event, this.nodes[activeIndex]);\r\n }\r\n }\r\n\r\n get isEmpty() {\r\n return XIsEmpty(this.nodes);\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n this.setSelected();\r\n this.setKeyManager();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public cdr: ChangeDetectorRef,\r\n public elementRef: ElementRef,\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 const { data } = changes;\r\n XIsChange(data) && this.setData();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initKeyManager();\r\n }\r\n\r\n ngAfterViewChecked() {}\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n private setData() {\r\n XSetData<XListNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.setSelected();\r\n this.setKeyManager();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n private initKeyManager() {\r\n this.keyManager = new ActiveDescendantKeyManager<XListOptionComponent>(this.options).withWrap();\r\n\r\n this.keyManager.tabOut.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.setUnActive(this.keyManager.activeItemIndex as number);\r\n this.keyManagerTabOut.emit();\r\n });\r\n\r\n this.keyManager.change.pipe(takeUntil(this._unSubject)).subscribe((num: number) => {\r\n this.setScorllTop(num);\r\n this.keyManagerChange.emit(num);\r\n });\r\n }\r\n\r\n setScorllTop(_num: number) {\r\n if (!this.scrollElement) return;\r\n let ele = this.keyManager.activeItem!.elementRef.nativeElement as HTMLElement;\r\n let list = this.scrollElement;\r\n let min = list.scrollTop;\r\n let max = list.scrollTop + list.clientHeight;\r\n if (ele.offsetTop + ele.clientHeight > max) {\r\n let scrollTop = ele.offsetTop + ele.clientHeight - list.clientHeight;\r\n list.scrollTop = scrollTop;\r\n }\r\n if (ele.offsetTop < min) {\r\n list.scrollTop = ele.offsetTop;\r\n }\r\n }\r\n\r\n setSelected() {\r\n if (this.nodes.length > 0) {\r\n this.nodes\r\n .filter((x) => x.selected)\r\n .map((x) => {\r\n x.selected = false;\r\n });\r\n let valArry: any[] = [];\r\n if (this.value instanceof Array) {\r\n valArry = this.value;\r\n } else {\r\n valArry = [this.value];\r\n }\r\n if (this.objectArray) {\r\n this.selectedNodes = this.nodes\r\n .filter((x) => !XIsEmpty(valArry.find((y) => !XIsUndefined(y) && !XIsNull(y) && y.id === x.id)))\r\n .map((x) => {\r\n x.selected = true;\r\n return x;\r\n });\r\n } else {\r\n this.selectedNodes = this.nodes\r\n .filter((x) => valArry.indexOf(x.id) > -1)\r\n .map((x) => {\r\n x.selected = true;\r\n return x;\r\n });\r\n }\r\n }\r\n }\r\n\r\n setKeyManager() {\r\n if (XIsUndefined(this.keyManager) || XIsUndefined(this.nodes) || this.nodes.length === 0) return;\r\n let activeIndex = 0;\r\n if (XIsUndefined(this.value) || this.value.length === 0) {\r\n this.keyManager.updateActiveItem(activeIndex);\r\n return;\r\n }\r\n let valArry: any[] = [];\r\n if (this.value instanceof Array) {\r\n valArry = this.value;\r\n } else {\r\n valArry = [this.value];\r\n }\r\n const last = valArry[valArry.length - 1];\r\n if (this.objectArray) {\r\n activeIndex = this.nodes.findIndex((x) => x.id === last.id);\r\n } else {\r\n activeIndex = this.nodes.findIndex((x) => x.id === last);\r\n }\r\n this.keyManager.updateActiveItem(activeIndex);\r\n this.setScorllTop(activeIndex);\r\n }\r\n\r\n onNodeClick(event: Event, node: XListNode) {\r\n if (XIsUndefined(node) || node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n if (node.disabled || (node.selected && this.multiple === 1)) return;\r\n const selected = !node.selected;\r\n if (selected) {\r\n if (this.selectedNodes.length < this.multiple || this.multiple === 0) {\r\n node.selected = selected;\r\n this.selectedNodes = [...this.selectedNodes, node];\r\n this.cdr.detectChanges();\r\n } else if (this.multiple === 1 && this.selectedNodes.length === 1) {\r\n node.selected = selected;\r\n this.selectedNodes[0].selected = false;\r\n this.selectedNodes[0] = node;\r\n this.cdr.detectChanges();\r\n } else {\r\n return;\r\n }\r\n } else {\r\n node.selected = selected;\r\n this.selectedNodes.splice(\r\n this.selectedNodes.findIndex((x) => x.id == node.id),\r\n 1\r\n );\r\n }\r\n if (this.multiple === 1 && this.selectedNodes.length === 1) {\r\n this.value = this.objectArray ? this.selectedNodes[0] : this.selectedNodes[0].id;\r\n } else {\r\n this.value = this.objectArray ? this.selectedNodes : this.selectedNodes.map((x) => x.id);\r\n }\r\n if (this.onChange) this.onChange(this.value);\r\n this.cdr.detectChanges();\r\n node.event = event;\r\n this.nodeClick.emit(node);\r\n }\r\n\r\n onMouseenter(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n node.event = event;\r\n this.nodeMouseenter.emit(node);\r\n }\r\n\r\n onMouseleave(event: Event, node: XListNode) {\r\n if (node.disabled) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n node.event = event;\r\n this.nodeMouseleave.emit(node);\r\n }\r\n\r\n dropCdk(event: CdkDragDrop<XListNode[]>) {\r\n moveItemInArray(this.nodes, event.previousIndex, event.currentIndex);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n trackByNode(_index: number, item: XListNode) {\r\n return item.id;\r\n }\r\n\r\n setUnActive(num: number) {\r\n if (num > -1) this.nodes[num].active = false;\r\n }\r\n}\r\n","<div\r\n class=\"x-list\"\r\n cdkDropList\r\n (cdkDropListDropped)=\"dropCdk($event)\"\r\n [cdkDropListDisabled]=\"!drag\"\r\n [hidden]=\"isEmpty\"\r\n>\r\n <x-list-option\r\n cdkDrag\r\n *ngFor=\"let node of nodes; trackBy: trackByNode\"\r\n [node]=\"node\"\r\n [checked]=\"checked\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [selected]=\"node.selected\"\r\n [disabled]=\"node.disabled\"\r\n [(active)]=\"node.active\"\r\n [icon]=\"node.icon\"\r\n [label]=\"node.label\"\r\n [leaf]=\"node.leaf\"\r\n (click)=\"onNodeClick($event, node)\"\r\n (mouseenter)=\"onMouseenter($event, node)\"\r\n (mouseleave)=\"onMouseleave($event, node)\"\r\n ></x-list-option>\r\n</div>\r\n<x-empty *ngIf=\"isEmpty\"></x-empty>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XListComponent } from './list.component';\r\nimport { XListOptionComponent } from './list-option.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XListOptionProperty, XListProperty } from './list.property';\r\nimport { XEmptyModule } from '@ng-nest/ui/empty';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\n\r\n@NgModule({\r\n declarations: [XListComponent, XListOptionComponent, XListProperty, XListOptionProperty],\r\n exports: [XListComponent, XListOptionComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DragDropModule,\r\n A11yModule,\r\n XIconModule,\r\n XEmptyModule,\r\n XBaseFormModule\r\n ]\r\n})\r\nexport class XListModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -92,7 +92,8 @@ class XLoadingComponent extends XLoadingProperty {
92
92
  this.setClassMap();
93
93
  }
94
94
  ngOnChanges(changes) {
95
- XIsChange(changes.loading) && this.setLoading();
95
+ const { loading } = changes;
96
+ XIsChange(loading) && this.setLoading();
96
97
  }
97
98
  setClassMap() {
98
99
  this.classMap[`${XLoadingPrefix}-${this.size}`] = !XIsEmpty(this.size);
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-loading.js","sources":["../../../../lib/ng-nest/ui/loading/loading.property.ts","../../../../lib/ng-nest/ui/loading/loading.component.ts","../../../../lib/ng-nest/ui/loading/loading.component.html","../../../../lib/ng-nest/ui/loading/loading.module.ts","../../../../lib/ng-nest/ui/loading/ng-nest-ui-loading.ts"],"sourcesContent":["import { XProperty, XInputBoolean, XSize, XTemplate, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Loading\r\n * @selector x-loading\r\n * @decorator component\r\n */\r\nexport const XLoadingPrefix = 'x-loading';\r\nconst X_CONFIG_NAME = 'loading';\r\n\r\n/**\r\n * Loading Property\r\n */\r\n@Component({ template: '' })\r\nexport class XLoadingProperty extends XProperty {\r\n /**\r\n * @zh_CN 显示 loading\r\n * @en_US Show loading\r\n */\r\n @Input('x-loading') @XInputBoolean() loading: XBoolean = false;\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 Display text, support custom template\r\n */\r\n @Input() @XWithConfig<XTemplate>(X_CONFIG_NAME) text?: XTemplate;\r\n /**\r\n * @zh_CN 显示的图标\r\n * @en_US Icon displayed\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) icon?: string;\r\n /**\r\n * @zh_CN 颜色\r\n * @en_US Color\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) color?: string;\r\n /**\r\n * @zh_CN 全屏显示\r\n * @en_US Full-screen display\r\n */\r\n @Input() @XInputBoolean() fullScreen?: XBoolean;\r\n /**\r\n * @zh_CN 背景样式\r\n * @en_US Background style\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) background?: 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 HostBinding,\r\n ViewChild,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { XLoadingPrefix, XLoadingProperty } from './loading.property';\r\nimport { XIsChange, XIsEmpty, XConfigService } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef } from '@ng-nest/ui/portal';\r\n\r\n@Component({\r\n selector: `${XLoadingPrefix}, [${XLoadingPrefix}]`,\r\n templateUrl: './loading.component.html',\r\n styleUrls: ['./loading.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XLoadingComponent extends XLoadingProperty implements OnInit, OnChanges {\r\n @HostBinding('class.x-loading-parent') get getLoading() {\r\n return this.loading;\r\n }\r\n @ViewChild('loadingTpl', { static: false }) loadingTpl!: TemplateRef<void>;\r\n portalRef!: XPortalOverlayRef<any>;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public portal: XPortalService,\r\n public viewContainerRef: ViewContainerRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n XIsChange(changes.loading) && this.setLoading();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XLoadingPrefix}-${this.size}`] = !XIsEmpty(this.size);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n setLoading() {\r\n if (this.fullScreen) {\r\n if (this.loading) {\r\n this.createFullScreen();\r\n } else {\r\n this.closeFullScreen();\r\n }\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n createFullScreen() {\r\n this.portalRef = this.portal.attach({\r\n content: this.loadingTpl,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n width: '100%',\r\n height: '100%',\r\n positionStrategy: this.portal.setPlacement()\r\n }\r\n });\r\n }\r\n\r\n closeFullScreen() {\r\n if (this.portalRef?.overlayRef?.hasAttached()) {\r\n this.portalRef.overlayRef.detach();\r\n }\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n\r\n<ng-container *ngIf=\"!fullScreen\">\r\n <ng-container *ngTemplateOutlet=\"loadingTpl\"></ng-container>\r\n</ng-container>\r\n\r\n<ng-template #loadingTpl>\r\n <div #loading class=\"x-loading\" [ngClass]=\"classMap\" [style.background]=\"background\" *ngIf=\"loading\">\r\n <div class=\"x-loading-spinner\" [style.color]=\"color\">\r\n <ng-container *ngIf=\"icon; else circularTpl\">\r\n <div class=\"x-loading-icon\">\r\n <x-icon [type]=\"icon\"></x-icon>\r\n </div>\r\n </ng-container>\r\n <div class=\"x-loading-text\">\r\n <ng-container *xOutlet=\"text\">{{ text }}</ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #circularTpl>\r\n <svg class=\"x-loading-circular\" viewBox=\"25 25 50 50\">\r\n <circle class=\"x-loading-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" />\r\n </svg>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XLoadingComponent } from './loading.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XLoadingProperty } from './loading.property';\r\n\r\n@NgModule({\r\n declarations: [XLoadingComponent, XLoadingProperty],\r\n exports: [XLoadingComponent],\r\n imports: [CommonModule, XIconModule, XOutletModule, XPortalModule]\r\n})\r\nexport class XLoadingModule {}\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-loading.js","sources":["../../../../lib/ng-nest/ui/loading/loading.property.ts","../../../../lib/ng-nest/ui/loading/loading.component.ts","../../../../lib/ng-nest/ui/loading/loading.component.html","../../../../lib/ng-nest/ui/loading/loading.module.ts","../../../../lib/ng-nest/ui/loading/ng-nest-ui-loading.ts"],"sourcesContent":["import { XProperty, XInputBoolean, XSize, XTemplate, XBoolean, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Loading\r\n * @selector x-loading\r\n * @decorator component\r\n */\r\nexport const XLoadingPrefix = 'x-loading';\r\nconst X_CONFIG_NAME = 'loading';\r\n\r\n/**\r\n * Loading Property\r\n */\r\n@Component({ template: '' })\r\nexport class XLoadingProperty extends XProperty {\r\n /**\r\n * @zh_CN 显示 loading\r\n * @en_US Show loading\r\n */\r\n @Input('x-loading') @XInputBoolean() loading: XBoolean = false;\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 Display text, support custom template\r\n */\r\n @Input() @XWithConfig<XTemplate>(X_CONFIG_NAME) text?: XTemplate;\r\n /**\r\n * @zh_CN 显示的图标\r\n * @en_US Icon displayed\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) icon?: string;\r\n /**\r\n * @zh_CN 颜色\r\n * @en_US Color\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) color?: string;\r\n /**\r\n * @zh_CN 全屏显示\r\n * @en_US Full-screen display\r\n */\r\n @Input() @XInputBoolean() fullScreen?: XBoolean;\r\n /**\r\n * @zh_CN 背景样式\r\n * @en_US Background style\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) background?: 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 HostBinding,\r\n ViewChild,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { XLoadingPrefix, XLoadingProperty } from './loading.property';\r\nimport { XIsChange, XIsEmpty, XConfigService } from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef } from '@ng-nest/ui/portal';\r\n\r\n@Component({\r\n selector: `${XLoadingPrefix}, [${XLoadingPrefix}]`,\r\n templateUrl: './loading.component.html',\r\n styleUrls: ['./loading.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XLoadingComponent extends XLoadingProperty implements OnInit, OnChanges {\r\n @HostBinding('class.x-loading-parent') get getLoading() {\r\n return this.loading;\r\n }\r\n @ViewChild('loadingTpl', { static: false }) loadingTpl!: TemplateRef<void>;\r\n portalRef!: XPortalOverlayRef<any>;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public portal: XPortalService,\r\n public viewContainerRef: ViewContainerRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const { loading } = changes;\r\n XIsChange(loading) && this.setLoading();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XLoadingPrefix}-${this.size}`] = !XIsEmpty(this.size);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n setLoading() {\r\n if (this.fullScreen) {\r\n if (this.loading) {\r\n this.createFullScreen();\r\n } else {\r\n this.closeFullScreen();\r\n }\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n createFullScreen() {\r\n this.portalRef = this.portal.attach({\r\n content: this.loadingTpl,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: {\r\n width: '100%',\r\n height: '100%',\r\n positionStrategy: this.portal.setPlacement()\r\n }\r\n });\r\n }\r\n\r\n closeFullScreen() {\r\n if (this.portalRef?.overlayRef?.hasAttached()) {\r\n this.portalRef.overlayRef.detach();\r\n }\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n\r\n<ng-container *ngIf=\"!fullScreen\">\r\n <ng-container *ngTemplateOutlet=\"loadingTpl\"></ng-container>\r\n</ng-container>\r\n\r\n<ng-template #loadingTpl>\r\n <div #loading class=\"x-loading\" [ngClass]=\"classMap\" [style.background]=\"background\" *ngIf=\"loading\">\r\n <div class=\"x-loading-spinner\" [style.color]=\"color\">\r\n <ng-container *ngIf=\"icon; else circularTpl\">\r\n <div class=\"x-loading-icon\">\r\n <x-icon [type]=\"icon\"></x-icon>\r\n </div>\r\n </ng-container>\r\n <div class=\"x-loading-text\">\r\n <ng-container *xOutlet=\"text\">{{ text }}</ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #circularTpl>\r\n <svg class=\"x-loading-circular\" viewBox=\"25 25 50 50\">\r\n <circle class=\"x-loading-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" />\r\n </svg>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XLoadingComponent } from './loading.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XLoadingProperty } from './loading.property';\r\n\r\n@NgModule({\r\n declarations: [XLoadingComponent, XLoadingProperty],\r\n exports: [XLoadingComponent],\r\n imports: [CommonModule, XIconModule, XOutletModule, XPortalModule]\r\n})\r\nexport class XLoadingModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -186,10 +186,11 @@ class XMenuComponent extends XMenuProperty {
186
186
  this.setClassMap();
187
187
  }
188
188
  ngOnChanges(changes) {
189
- XIsChange(changes.data) && this.setData();
190
- XIsChange(changes.activatedId) && this.setActivatedNode(this.nodes);
191
- XIsChange(changes.collapsed) && this.setClassMap();
192
- if (XIsChange(changes.target)) {
189
+ const { data, activatedId, collapsed, target } = changes;
190
+ XIsChange(data) && this.setData();
191
+ XIsChange(activatedId) && this.setActivatedNode(this.nodes);
192
+ XIsChange(collapsed) && this.setClassMap();
193
+ if (XIsChange(target)) {
193
194
  this._target = typeof this.target === 'string' ? this.doc.querySelector(this.target) : this.target;
194
195
  }
195
196
  }
@@ -317,7 +318,6 @@ class XMenuComponent extends XMenuProperty {
317
318
  }
318
319
  setActivatedNode(nodes) {
319
320
  this.activated = nodes.find((x) => x.id == this.activatedId);
320
- // console.log(this.nodes)
321
321
  this.rootIndex = nodes.findIndex((x) => x.id == this.activatedId && !x.pid);
322
322
  if (this.activated) {
323
323
  this.setParentOpen(nodes, this.activated);
@@ -335,7 +335,7 @@ class XMenuComponent extends XMenuProperty {
335
335
  };
336
336
  getParent(node);
337
337
  }
338
- trackByNode(index, item) {
338
+ trackByNode(_index, item) {
339
339
  return item.id;
340
340
  }
341
341
  }