@ng-nest/ui 12.0.5 → 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 (794) hide show
  1. package/auto-complete/auto-complete-portal.component.d.ts +3 -3
  2. package/auto-complete/auto-complete.component.d.ts +6 -2
  3. package/auto-complete/auto-complete.property.d.ts +17 -2
  4. package/back-top/back-top.component.d.ts +1 -2
  5. package/base-form/base-form.component.d.ts +1 -1
  6. package/base-form/base-form.property.d.ts +48 -3
  7. package/bundles/ng-nest-ui-affix.umd.js +25 -21
  8. package/bundles/ng-nest-ui-affix.umd.js.map +1 -1
  9. package/bundles/ng-nest-ui-alert.umd.js +25 -21
  10. package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
  11. package/bundles/ng-nest-ui-anchor.umd.js +26 -22
  12. package/bundles/ng-nest-ui-anchor.umd.js.map +1 -1
  13. package/bundles/ng-nest-ui-api.umd.js +12 -14
  14. package/bundles/ng-nest-ui-api.umd.js.map +1 -1
  15. package/bundles/ng-nest-ui-auto-complete.umd.js +74 -36
  16. package/bundles/ng-nest-ui-auto-complete.umd.js.map +1 -1
  17. package/bundles/ng-nest-ui-avatar.umd.js +25 -21
  18. package/bundles/ng-nest-ui-avatar.umd.js.map +1 -1
  19. package/bundles/ng-nest-ui-back-top.umd.js +27 -23
  20. package/bundles/ng-nest-ui-back-top.umd.js.map +1 -1
  21. package/bundles/ng-nest-ui-badge.umd.js +27 -22
  22. package/bundles/ng-nest-ui-badge.umd.js.map +1 -1
  23. package/bundles/ng-nest-ui-base-form.umd.js +67 -22
  24. package/bundles/ng-nest-ui-base-form.umd.js.map +1 -1
  25. package/bundles/ng-nest-ui-border.umd.js +12 -14
  26. package/bundles/ng-nest-ui-border.umd.js.map +1 -1
  27. package/bundles/ng-nest-ui-button.umd.js +36 -29
  28. package/bundles/ng-nest-ui-button.umd.js.map +1 -1
  29. package/bundles/ng-nest-ui-calendar.umd.js +29 -24
  30. package/bundles/ng-nest-ui-calendar.umd.js.map +1 -1
  31. package/bundles/ng-nest-ui-card.umd.js +25 -21
  32. package/bundles/ng-nest-ui-card.umd.js.map +1 -1
  33. package/bundles/ng-nest-ui-carousel.umd.js +35 -30
  34. package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
  35. package/bundles/ng-nest-ui-cascade.umd.js +94 -36
  36. package/bundles/ng-nest-ui-cascade.umd.js.map +1 -1
  37. package/bundles/ng-nest-ui-checkbox.umd.js +28 -23
  38. package/bundles/ng-nest-ui-checkbox.umd.js.map +1 -1
  39. package/bundles/ng-nest-ui-collapse.umd.js +31 -27
  40. package/bundles/ng-nest-ui-collapse.umd.js.map +1 -1
  41. package/bundles/ng-nest-ui-color-picker.umd.js +79 -44
  42. package/bundles/ng-nest-ui-color-picker.umd.js.map +1 -1
  43. package/bundles/ng-nest-ui-color.umd.js +26 -22
  44. package/bundles/ng-nest-ui-color.umd.js.map +1 -1
  45. package/bundles/ng-nest-ui-comment.umd.js +34 -29
  46. package/bundles/ng-nest-ui-comment.umd.js.map +1 -1
  47. package/bundles/ng-nest-ui-container.umd.js +46 -42
  48. package/bundles/ng-nest-ui-container.umd.js.map +1 -1
  49. package/bundles/ng-nest-ui-core.umd.js +136 -35
  50. package/bundles/ng-nest-ui-core.umd.js.map +1 -1
  51. package/bundles/ng-nest-ui-crumb.umd.js +28 -23
  52. package/bundles/ng-nest-ui-crumb.umd.js.map +1 -1
  53. package/bundles/ng-nest-ui-date-picker.umd.js +923 -176
  54. package/bundles/ng-nest-ui-date-picker.umd.js.map +1 -1
  55. package/bundles/ng-nest-ui-description.umd.js +35 -32
  56. package/bundles/ng-nest-ui-description.umd.js.map +1 -1
  57. package/bundles/ng-nest-ui-dialog.umd.js +27 -22
  58. package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
  59. package/bundles/ng-nest-ui-doc.umd.js +12 -14
  60. package/bundles/ng-nest-ui-doc.umd.js.map +1 -1
  61. package/bundles/ng-nest-ui-drawer.umd.js +27 -22
  62. package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
  63. package/bundles/ng-nest-ui-dropdown.umd.js +32 -27
  64. package/bundles/ng-nest-ui-dropdown.umd.js.map +1 -1
  65. package/bundles/ng-nest-ui-empty.umd.js +25 -21
  66. package/bundles/ng-nest-ui-empty.umd.js.map +1 -1
  67. package/bundles/ng-nest-ui-examples.umd.js +12 -14
  68. package/bundles/ng-nest-ui-examples.umd.js.map +1 -1
  69. package/bundles/ng-nest-ui-find.umd.js +45 -27
  70. package/bundles/ng-nest-ui-find.umd.js.map +1 -1
  71. package/bundles/ng-nest-ui-form.umd.js +36 -36
  72. package/bundles/ng-nest-ui-form.umd.js.map +1 -1
  73. package/bundles/ng-nest-ui-highlight.umd.js +27 -22
  74. package/bundles/ng-nest-ui-highlight.umd.js.map +1 -1
  75. package/bundles/ng-nest-ui-i18n.umd.js +545 -140
  76. package/bundles/ng-nest-ui-i18n.umd.js.map +1 -1
  77. package/bundles/ng-nest-ui-icon.umd.js +34 -29
  78. package/bundles/ng-nest-ui-icon.umd.js.map +1 -1
  79. package/bundles/ng-nest-ui-inner.umd.js +26 -22
  80. package/bundles/ng-nest-ui-inner.umd.js.map +1 -1
  81. package/bundles/ng-nest-ui-input-number.umd.js +44 -24
  82. package/bundles/ng-nest-ui-input-number.umd.js.map +1 -1
  83. package/bundles/ng-nest-ui-input.umd.js +208 -50
  84. package/bundles/ng-nest-ui-input.umd.js.map +1 -1
  85. package/bundles/ng-nest-ui-layout.umd.js +31 -27
  86. package/bundles/ng-nest-ui-layout.umd.js.map +1 -1
  87. package/bundles/ng-nest-ui-link.umd.js +25 -21
  88. package/bundles/ng-nest-ui-link.umd.js.map +1 -1
  89. package/bundles/ng-nest-ui-list.umd.js +35 -30
  90. package/bundles/ng-nest-ui-list.umd.js.map +1 -1
  91. package/bundles/ng-nest-ui-loading.umd.js +27 -22
  92. package/bundles/ng-nest-ui-loading.umd.js.map +1 -1
  93. package/bundles/ng-nest-ui-menu.umd.js +38 -31
  94. package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
  95. package/bundles/ng-nest-ui-message-box.umd.js +53 -47
  96. package/bundles/ng-nest-ui-message-box.umd.js.map +1 -1
  97. package/bundles/ng-nest-ui-message.umd.js +26 -22
  98. package/bundles/ng-nest-ui-message.umd.js.map +1 -1
  99. package/bundles/ng-nest-ui-notification.umd.js +26 -22
  100. package/bundles/ng-nest-ui-notification.umd.js.map +1 -1
  101. package/bundles/ng-nest-ui-outlet.umd.js +22 -18
  102. package/bundles/ng-nest-ui-outlet.umd.js.map +1 -1
  103. package/bundles/ng-nest-ui-page-header.umd.js +25 -21
  104. package/bundles/ng-nest-ui-page-header.umd.js.map +1 -1
  105. package/bundles/ng-nest-ui-pagination.umd.js +115 -26
  106. package/bundles/ng-nest-ui-pagination.umd.js.map +1 -1
  107. package/bundles/ng-nest-ui-pattern.umd.js +12 -14
  108. package/bundles/ng-nest-ui-pattern.umd.js.map +1 -1
  109. package/bundles/ng-nest-ui-popconfirm.umd.js +25 -21
  110. package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
  111. package/bundles/ng-nest-ui-popover.umd.js +31 -26
  112. package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
  113. package/bundles/ng-nest-ui-portal.umd.js +22 -18
  114. package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
  115. package/bundles/ng-nest-ui-progress.umd.js +28 -23
  116. package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
  117. package/bundles/ng-nest-ui-radio.umd.js +28 -23
  118. package/bundles/ng-nest-ui-radio.umd.js.map +1 -1
  119. package/bundles/ng-nest-ui-rate.umd.js +30 -26
  120. package/bundles/ng-nest-ui-rate.umd.js.map +1 -1
  121. package/bundles/ng-nest-ui-result.umd.js +25 -21
  122. package/bundles/ng-nest-ui-result.umd.js.map +1 -1
  123. package/bundles/ng-nest-ui-ripple.umd.js +25 -21
  124. package/bundles/ng-nest-ui-ripple.umd.js.map +1 -1
  125. package/bundles/ng-nest-ui-select.umd.js +53 -34
  126. package/bundles/ng-nest-ui-select.umd.js.map +1 -1
  127. package/bundles/ng-nest-ui-skeleton.umd.js +27 -22
  128. package/bundles/ng-nest-ui-skeleton.umd.js.map +1 -1
  129. package/bundles/ng-nest-ui-slider-select.umd.js +25 -21
  130. package/bundles/ng-nest-ui-slider-select.umd.js.map +1 -1
  131. package/bundles/ng-nest-ui-slider.umd.js +32 -29
  132. package/bundles/ng-nest-ui-slider.umd.js.map +1 -1
  133. package/bundles/ng-nest-ui-statistic.umd.js +37 -31
  134. package/bundles/ng-nest-ui-statistic.umd.js.map +1 -1
  135. package/bundles/ng-nest-ui-steps.umd.js +35 -27
  136. package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
  137. package/bundles/ng-nest-ui-switch.umd.js +25 -21
  138. package/bundles/ng-nest-ui-switch.umd.js.map +1 -1
  139. package/bundles/ng-nest-ui-table.umd.js +58 -51
  140. package/bundles/ng-nest-ui-table.umd.js.map +1 -1
  141. package/bundles/ng-nest-ui-tabs.umd.js +39 -34
  142. package/bundles/ng-nest-ui-tabs.umd.js.map +1 -1
  143. package/bundles/ng-nest-ui-tag.umd.js +36 -21
  144. package/bundles/ng-nest-ui-tag.umd.js.map +1 -1
  145. package/bundles/ng-nest-ui-text-retract.umd.js +27 -22
  146. package/bundles/ng-nest-ui-text-retract.umd.js.map +1 -1
  147. package/bundles/ng-nest-ui-textarea.umd.js +27 -32
  148. package/bundles/ng-nest-ui-textarea.umd.js.map +1 -1
  149. package/bundles/ng-nest-ui-theme.umd.js +26 -22
  150. package/bundles/ng-nest-ui-theme.umd.js.map +1 -1
  151. package/bundles/ng-nest-ui-time-ago.umd.js +12 -14
  152. package/bundles/ng-nest-ui-time-ago.umd.js.map +1 -1
  153. package/bundles/ng-nest-ui-time-picker.umd.js +87 -46
  154. package/bundles/ng-nest-ui-time-picker.umd.js.map +1 -1
  155. package/bundles/ng-nest-ui-time-range.umd.js +22 -18
  156. package/bundles/ng-nest-ui-time-range.umd.js.map +1 -1
  157. package/bundles/ng-nest-ui-timeline.umd.js +28 -23
  158. package/bundles/ng-nest-ui-timeline.umd.js.map +1 -1
  159. package/bundles/ng-nest-ui-tooltip.umd.js +31 -26
  160. package/bundles/ng-nest-ui-tooltip.umd.js.map +1 -1
  161. package/bundles/ng-nest-ui-transfer.umd.js +28 -23
  162. package/bundles/ng-nest-ui-transfer.umd.js.map +1 -1
  163. package/bundles/ng-nest-ui-tree-file.umd.js +25 -21
  164. package/bundles/ng-nest-ui-tree-file.umd.js.map +1 -1
  165. package/bundles/ng-nest-ui-tree.umd.js +39 -34
  166. package/bundles/ng-nest-ui-tree.umd.js.map +1 -1
  167. package/bundles/ng-nest-ui-typography.umd.js +25 -21
  168. package/bundles/ng-nest-ui-typography.umd.js.map +1 -1
  169. package/bundles/ng-nest-ui-upload.umd.js +32 -27
  170. package/bundles/ng-nest-ui-upload.umd.js.map +1 -1
  171. package/bundles/ng-nest-ui.umd.js +83 -243
  172. package/bundles/ng-nest-ui.umd.js.map +1 -1
  173. package/button/buttons.component.d.ts +1 -1
  174. package/calendar/calendar.component.d.ts +2 -2
  175. package/carousel/carousel.component.d.ts +1 -1
  176. package/cascade/cascade-portal.component.d.ts +13 -7
  177. package/cascade/cascade.component.d.ts +7 -1
  178. package/cascade/cascade.property.d.ts +33 -3
  179. package/checkbox/checkbox.component.d.ts +1 -1
  180. package/color/color.component.d.ts +2 -2
  181. package/color-picker/color-picker-portal.component.d.ts +3 -3
  182. package/color-picker/color-picker.component.d.ts +10 -4
  183. package/color-picker/color-picker.property.d.ts +12 -2
  184. package/comment/comment.component.d.ts +1 -1
  185. package/core/config/config.d.ts +39 -0
  186. package/core/functions/clone-deep.d.ts +1 -0
  187. package/core/functions/drop.d.ts +1 -0
  188. package/core/functions/flex.d.ts +1 -1
  189. package/core/functions/has-in.d.ts +1 -0
  190. package/core/functions/order-by.d.ts +1 -0
  191. package/core/functions/public-api.d.ts +5 -0
  192. package/core/functions/remove.d.ts +1 -0
  193. package/core/services/reuse-strategy.service.d.ts +1 -1
  194. package/crumb/crumb.component.d.ts +1 -1
  195. package/date-picker/date-picker-portal.component.d.ts +10 -12
  196. package/date-picker/date-picker.component.d.ts +5 -5
  197. package/date-picker/date-picker.module.d.ts +12 -10
  198. package/date-picker/date-picker.property.d.ts +169 -8
  199. package/date-picker/date-range-portal.component.d.ts +65 -0
  200. package/date-picker/date-range.component.d.ts +74 -0
  201. package/date-picker/picker-date.component.d.ts +13 -4
  202. package/date-picker/picker-month.component.d.ts +6 -3
  203. package/date-picker/picker-year.component.d.ts +4 -2
  204. package/date-picker/public-api.d.ts +2 -0
  205. package/description/description.component.d.ts +2 -4
  206. package/dropdown/dropdown-portal.component.d.ts +1 -3
  207. package/dropdown/dropdown.component.d.ts +2 -2
  208. package/esm2015/affix/affix.component.js +3 -3
  209. package/esm2015/affix/affix.module.js +4 -4
  210. package/esm2015/affix/affix.property.js +3 -3
  211. package/esm2015/alert/alert.component.js +4 -4
  212. package/esm2015/alert/alert.module.js +4 -4
  213. package/esm2015/alert/alert.property.js +3 -3
  214. package/esm2015/anchor/anchor.component.js +5 -5
  215. package/esm2015/anchor/anchor.module.js +4 -4
  216. package/esm2015/anchor/anchor.property.js +4 -4
  217. package/esm2015/api/api.component.js +3 -3
  218. package/esm2015/api/api.module.js +4 -4
  219. package/esm2015/auto-complete/auto-complete-portal.component.js +6 -6
  220. package/esm2015/auto-complete/auto-complete.component.js +29 -12
  221. package/esm2015/auto-complete/auto-complete.module.js +4 -4
  222. package/esm2015/auto-complete/auto-complete.property.js +22 -5
  223. package/esm2015/avatar/avatar.component.js +3 -3
  224. package/esm2015/avatar/avatar.module.js +4 -4
  225. package/esm2015/avatar/avatar.property.js +3 -3
  226. package/esm2015/back-top/back-top.component.js +6 -6
  227. package/esm2015/back-top/back-top.module.js +4 -4
  228. package/esm2015/back-top/back-top.property.js +3 -3
  229. package/esm2015/badge/badge.component.js +6 -5
  230. package/esm2015/badge/badge.module.js +4 -4
  231. package/esm2015/badge/badge.property.js +3 -3
  232. package/esm2015/base-form/base-form.component.js +5 -5
  233. package/esm2015/base-form/base-form.module.js +4 -4
  234. package/esm2015/base-form/base-form.property.js +46 -5
  235. package/esm2015/border/border.component.js +3 -3
  236. package/esm2015/border/border.module.js +4 -4
  237. package/esm2015/button/button.component.js +10 -7
  238. package/esm2015/button/button.module.js +4 -4
  239. package/esm2015/button/button.property.js +6 -6
  240. package/esm2015/button/buttons.component.js +4 -4
  241. package/esm2015/calendar/calendar.component.js +8 -7
  242. package/esm2015/calendar/calendar.module.js +4 -4
  243. package/esm2015/calendar/calendar.property.js +3 -3
  244. package/esm2015/card/card.component.js +3 -3
  245. package/esm2015/card/card.module.js +4 -4
  246. package/esm2015/card/card.property.js +3 -3
  247. package/esm2015/carousel/carousel-panel.component.js +4 -4
  248. package/esm2015/carousel/carousel.component.js +8 -7
  249. package/esm2015/carousel/carousel.module.js +4 -4
  250. package/esm2015/carousel/carousel.property.js +6 -6
  251. package/esm2015/cascade/cascade-portal.component.js +23 -11
  252. package/esm2015/cascade/cascade.component.js +25 -9
  253. package/esm2015/cascade/cascade.module.js +4 -4
  254. package/esm2015/cascade/cascade.property.js +28 -5
  255. package/esm2015/checkbox/checkbox.component.js +7 -6
  256. package/esm2015/checkbox/checkbox.module.js +4 -4
  257. package/esm2015/checkbox/checkbox.property.js +4 -4
  258. package/esm2015/collapse/collapse-panel.component.js +4 -4
  259. package/esm2015/collapse/collapse.component.js +3 -3
  260. package/esm2015/collapse/collapse.module.js +4 -4
  261. package/esm2015/collapse/collapse.property.js +6 -6
  262. package/esm2015/color/color.component.js +5 -5
  263. package/esm2015/color/color.module.js +4 -4
  264. package/esm2015/color/color.property.js +3 -3
  265. package/esm2015/color-picker/color-picker-portal.component.js +5 -5
  266. package/esm2015/color-picker/color-picker.component.js +33 -14
  267. package/esm2015/color-picker/color-picker.module.js +4 -4
  268. package/esm2015/color-picker/color-picker.property.js +16 -5
  269. package/esm2015/comment/comment-reply.component.js +3 -3
  270. package/esm2015/comment/comment.component.js +7 -6
  271. package/esm2015/comment/comment.module.js +4 -4
  272. package/esm2015/comment/comment.property.js +6 -6
  273. package/esm2015/container/aside.component.js +3 -3
  274. package/esm2015/container/container.component.js +5 -5
  275. package/esm2015/container/container.module.js +4 -4
  276. package/esm2015/container/container.property.js +12 -12
  277. package/esm2015/container/footer.component.js +3 -3
  278. package/esm2015/container/header.component.js +3 -3
  279. package/esm2015/container/main.component.js +3 -3
  280. package/esm2015/core/animation/fade.js +1 -1
  281. package/esm2015/core/config/config.js +1 -1
  282. package/esm2015/core/config/config.service.js +3 -3
  283. package/esm2015/core/functions/clone-deep.js +12 -0
  284. package/esm2015/core/functions/drop.js +8 -0
  285. package/esm2015/core/functions/flex.js +18 -7
  286. package/esm2015/core/functions/has-in.js +4 -0
  287. package/esm2015/core/functions/order-by.js +31 -0
  288. package/esm2015/core/functions/public-api.js +6 -1
  289. package/esm2015/core/functions/remove.js +15 -0
  290. package/esm2015/core/services/http.service.js +5 -5
  291. package/esm2015/core/services/preloading-strategy.service.js +5 -5
  292. package/esm2015/core/services/reuse-strategy.service.js +2 -2
  293. package/esm2015/core/services/storage.service.js +3 -3
  294. package/esm2015/core/theme/theme.service.js +3 -3
  295. package/esm2015/crumb/crumb.component.js +7 -6
  296. package/esm2015/crumb/crumb.module.js +4 -4
  297. package/esm2015/crumb/crumb.property.js +3 -3
  298. package/esm2015/date-picker/date-picker-portal.component.js +24 -43
  299. package/esm2015/date-picker/date-picker.component.js +24 -23
  300. package/esm2015/date-picker/date-picker.module.js +31 -11
  301. package/esm2015/date-picker/date-picker.property.js +190 -19
  302. package/esm2015/date-picker/date-range-portal.component.js +208 -0
  303. package/esm2015/date-picker/date-range.component.js +307 -0
  304. package/esm2015/date-picker/picker-date.component.js +50 -15
  305. package/esm2015/date-picker/picker-month.component.js +25 -9
  306. package/esm2015/date-picker/picker-year.component.js +21 -9
  307. package/esm2015/date-picker/public-api.js +3 -1
  308. package/esm2015/description/description-item.component.js +4 -4
  309. package/esm2015/description/description.component.js +8 -9
  310. package/esm2015/description/description.module.js +4 -4
  311. package/esm2015/description/description.property.js +6 -6
  312. package/esm2015/dialog/dialog.component.js +6 -5
  313. package/esm2015/dialog/dialog.module.js +4 -4
  314. package/esm2015/dialog/dialog.property.js +4 -4
  315. package/esm2015/doc/doc.component.js +3 -3
  316. package/esm2015/doc/doc.module.js +4 -4
  317. package/esm2015/drawer/drawer.component.js +6 -5
  318. package/esm2015/drawer/drawer.module.js +4 -4
  319. package/esm2015/drawer/drawer.property.js +3 -3
  320. package/esm2015/dropdown/dropdown-portal.component.js +5 -5
  321. package/esm2015/dropdown/dropdown.component.js +7 -6
  322. package/esm2015/dropdown/dropdown.module.js +4 -4
  323. package/esm2015/dropdown/dropdown.property.js +3 -3
  324. package/esm2015/empty/empty.component.js +3 -3
  325. package/esm2015/empty/empty.module.js +4 -4
  326. package/esm2015/empty/empty.property.js +3 -3
  327. package/esm2015/examples/examples.component.js +3 -3
  328. package/esm2015/examples/examples.module.js +4 -4
  329. package/esm2015/find/find.component.js +13 -10
  330. package/esm2015/find/find.module.js +4 -4
  331. package/esm2015/find/find.property.js +16 -5
  332. package/esm2015/form/control.component.js +4 -4
  333. package/esm2015/form/form.component.js +9 -8
  334. package/esm2015/form/form.module.js +4 -4
  335. package/esm2015/form/form.property.js +8 -13
  336. package/esm2015/highlight/highlight.component.js +6 -5
  337. package/esm2015/highlight/highlight.module.js +4 -4
  338. package/esm2015/highlight/highlight.property.js +4 -4
  339. package/esm2015/i18n/i18n.directive.js +6 -5
  340. package/esm2015/i18n/i18n.module.js +4 -4
  341. package/esm2015/i18n/i18n.pipe.js +3 -3
  342. package/esm2015/i18n/i18n.property.js +1 -1
  343. package/esm2015/i18n/i18n.service.js +3 -3
  344. package/esm2015/i18n/languages/ar_EG.js +11 -3
  345. package/esm2015/i18n/languages/bg_BG.js +11 -3
  346. package/esm2015/i18n/languages/ca_ES.js +11 -3
  347. package/esm2015/i18n/languages/cs_CZ.js +11 -3
  348. package/esm2015/i18n/languages/da_DK.js +11 -3
  349. package/esm2015/i18n/languages/de_DE.js +11 -3
  350. package/esm2015/i18n/languages/el_GR.js +11 -3
  351. package/esm2015/i18n/languages/en_GB.js +11 -3
  352. package/esm2015/i18n/languages/en_US.js +11 -3
  353. package/esm2015/i18n/languages/es_ES.js +11 -3
  354. package/esm2015/i18n/languages/et_EE.js +11 -3
  355. package/esm2015/i18n/languages/fa_IR.js +11 -3
  356. package/esm2015/i18n/languages/fi_FI.js +11 -3
  357. package/esm2015/i18n/languages/fr_BE.js +10 -2
  358. package/esm2015/i18n/languages/fr_FR.js +11 -3
  359. package/esm2015/i18n/languages/he_IL.js +11 -3
  360. package/esm2015/i18n/languages/hi_IN.js +11 -3
  361. package/esm2015/i18n/languages/hr_HR.js +11 -3
  362. package/esm2015/i18n/languages/hu_HU.js +11 -3
  363. package/esm2015/i18n/languages/hy_AM.js +11 -3
  364. package/esm2015/i18n/languages/id_ID.js +11 -3
  365. package/esm2015/i18n/languages/is_IS.js +11 -3
  366. package/esm2015/i18n/languages/it_IT.js +11 -3
  367. package/esm2015/i18n/languages/ja_JP.js +11 -3
  368. package/esm2015/i18n/languages/ka_GE.js +11 -3
  369. package/esm2015/i18n/languages/kn_IN.js +11 -3
  370. package/esm2015/i18n/languages/ko_KR.js +11 -3
  371. package/esm2015/i18n/languages/ku_IQ.js +11 -3
  372. package/esm2015/i18n/languages/lv_LV.js +11 -3
  373. package/esm2015/i18n/languages/mn_MN.js +11 -3
  374. package/esm2015/i18n/languages/ms_MY.js +11 -3
  375. package/esm2015/i18n/languages/nb_NO.js +11 -3
  376. package/esm2015/i18n/languages/ne_NP.js +11 -3
  377. package/esm2015/i18n/languages/nl_BE.js +11 -3
  378. package/esm2015/i18n/languages/nl_NL.js +11 -3
  379. package/esm2015/i18n/languages/pl_PL.js +11 -3
  380. package/esm2015/i18n/languages/pt_BR.js +11 -3
  381. package/esm2015/i18n/languages/pt_PT.js +11 -3
  382. package/esm2015/i18n/languages/ro_RO.js +11 -3
  383. package/esm2015/i18n/languages/ru_RU.js +11 -3
  384. package/esm2015/i18n/languages/sk_SK.js +11 -3
  385. package/esm2015/i18n/languages/sl_SI.js +11 -3
  386. package/esm2015/i18n/languages/sr_RS.js +11 -3
  387. package/esm2015/i18n/languages/sv_SE.js +11 -3
  388. package/esm2015/i18n/languages/ta_IN.js +11 -3
  389. package/esm2015/i18n/languages/th_TH.js +29 -21
  390. package/esm2015/i18n/languages/tr_TR.js +11 -3
  391. package/esm2015/i18n/languages/uk_UA.js +11 -3
  392. package/esm2015/i18n/languages/vi_VN.js +11 -3
  393. package/esm2015/i18n/languages/zh_CN.js +10 -3
  394. package/esm2015/i18n/languages/zh_TW.js +10 -3
  395. package/esm2015/icon/icon.component.js +7 -6
  396. package/esm2015/icon/icon.module.js +4 -4
  397. package/esm2015/icon/icon.property.js +3 -3
  398. package/esm2015/icon/icon.service.js +6 -6
  399. package/esm2015/inner/inner.component.js +5 -5
  400. package/esm2015/inner/inner.module.js +4 -4
  401. package/esm2015/inner/inner.property.js +3 -3
  402. package/esm2015/input/input-group.component.js +26 -0
  403. package/esm2015/input/input.component.js +60 -15
  404. package/esm2015/input/input.module.js +11 -9
  405. package/esm2015/input/input.property.js +77 -22
  406. package/esm2015/input/public-api.js +2 -1
  407. package/esm2015/input-number/input-number.component.js +9 -5
  408. package/esm2015/input-number/input-number.module.js +7 -6
  409. package/esm2015/input-number/input-number.property.js +17 -5
  410. package/esm2015/layout/col.component.js +3 -3
  411. package/esm2015/layout/layout.module.js +4 -4
  412. package/esm2015/layout/layout.property.js +6 -6
  413. package/esm2015/layout/row.component.js +3 -3
  414. package/esm2015/link/link.component.js +3 -3
  415. package/esm2015/link/link.module.js +4 -4
  416. package/esm2015/link/link.property.js +3 -3
  417. package/esm2015/list/list-option.component.js +3 -3
  418. package/esm2015/list/list.component.js +8 -7
  419. package/esm2015/list/list.module.js +4 -4
  420. package/esm2015/list/list.property.js +7 -7
  421. package/esm2015/loading/loading.component.js +6 -5
  422. package/esm2015/loading/loading.module.js +4 -4
  423. package/esm2015/loading/loading.property.js +3 -3
  424. package/esm2015/menu/menu-node.component.js +4 -4
  425. package/esm2015/menu/menu.component.js +11 -8
  426. package/esm2015/menu/menu.module.js +4 -4
  427. package/esm2015/menu/menu.property.js +6 -6
  428. package/esm2015/message/message.component.js +5 -5
  429. package/esm2015/message/message.module.js +4 -4
  430. package/esm2015/message/message.service.js +3 -3
  431. package/esm2015/message-box/message-box.component.js +20 -24
  432. package/esm2015/message-box/message-box.module.js +4 -4
  433. package/esm2015/message-box/message-box.service.js +10 -8
  434. package/esm2015/notification/notification.component.js +5 -5
  435. package/esm2015/notification/notification.module.js +4 -4
  436. package/esm2015/notification/notification.property.js +1 -1
  437. package/esm2015/notification/notification.service.js +3 -3
  438. package/esm2015/outlet/outlet.directive.js +3 -3
  439. package/esm2015/outlet/outlet.module.js +4 -4
  440. package/esm2015/page-header/page-header.component.js +3 -3
  441. package/esm2015/page-header/page-header.module.js +4 -4
  442. package/esm2015/page-header/page-header.property.js +3 -3
  443. package/esm2015/pagination/pagination.component.js +45 -7
  444. package/esm2015/pagination/pagination.module.js +10 -6
  445. package/esm2015/pagination/pagination.property.js +52 -4
  446. package/esm2015/pattern/pattern.component.js +3 -3
  447. package/esm2015/pattern/pattern.module.js +4 -4
  448. package/esm2015/popconfirm/popconfirm.component.js +3 -3
  449. package/esm2015/popconfirm/popconfirm.module.js +4 -4
  450. package/esm2015/popconfirm/popconfirm.property.js +3 -3
  451. package/esm2015/popover/popover-portal.component.js +4 -4
  452. package/esm2015/popover/popover.directive.js +7 -6
  453. package/esm2015/popover/popover.module.js +4 -4
  454. package/esm2015/popover/popover.property.js +3 -3
  455. package/esm2015/portal/portal.module.js +4 -4
  456. package/esm2015/portal/portal.service.js +3 -3
  457. package/esm2015/progress/progress.component.js +7 -6
  458. package/esm2015/progress/progress.module.js +4 -4
  459. package/esm2015/progress/progress.property.js +3 -3
  460. package/esm2015/radio/radio.component.js +7 -6
  461. package/esm2015/radio/radio.module.js +4 -4
  462. package/esm2015/radio/radio.property.js +4 -4
  463. package/esm2015/rate/rate.component.js +9 -9
  464. package/esm2015/rate/rate.module.js +4 -4
  465. package/esm2015/rate/rate.property.js +3 -3
  466. package/esm2015/result/result.component.js +3 -3
  467. package/esm2015/result/result.module.js +4 -4
  468. package/esm2015/result/result.property.js +3 -3
  469. package/esm2015/ripple/ripple.directive.js +4 -4
  470. package/esm2015/ripple/ripple.module.js +4 -4
  471. package/esm2015/ripple/ripple.property.js +4 -4
  472. package/esm2015/select/select-portal.component.js +6 -6
  473. package/esm2015/select/select.component.js +15 -11
  474. package/esm2015/select/select.module.js +4 -4
  475. package/esm2015/select/select.property.js +15 -4
  476. package/esm2015/skeleton/skeleton.component.js +6 -5
  477. package/esm2015/skeleton/skeleton.module.js +4 -4
  478. package/esm2015/skeleton/skeleton.property.js +3 -3
  479. package/esm2015/slider/slider.component.js +11 -12
  480. package/esm2015/slider/slider.module.js +4 -4
  481. package/esm2015/slider/slider.property.js +3 -3
  482. package/esm2015/slider-select/slider-select.component.js +3 -3
  483. package/esm2015/slider-select/slider-select.module.js +4 -4
  484. package/esm2015/slider-select/slider-select.property.js +3 -3
  485. package/esm2015/statistic/countdown.component.js +8 -7
  486. package/esm2015/statistic/statistic.component.js +6 -5
  487. package/esm2015/statistic/statistic.module.js +4 -4
  488. package/esm2015/statistic/statistic.property.js +6 -6
  489. package/esm2015/steps/steps.component.js +9 -7
  490. package/esm2015/steps/steps.module.js +7 -6
  491. package/esm2015/steps/steps.property.js +6 -4
  492. package/esm2015/switch/switch.component.js +3 -3
  493. package/esm2015/switch/switch.module.js +4 -4
  494. package/esm2015/switch/switch.property.js +3 -3
  495. package/esm2015/table/drag.directive.js +5 -5
  496. package/esm2015/table/table-body.component.js +7 -6
  497. package/esm2015/table/table-foot.component.js +4 -4
  498. package/esm2015/table/table-head.component.js +7 -6
  499. package/esm2015/table/table.component.js +9 -8
  500. package/esm2015/table/table.module.js +4 -4
  501. package/esm2015/table/table.property.js +13 -13
  502. package/esm2015/tabs/tab-content.component.js +3 -3
  503. package/esm2015/tabs/tab.component.js +4 -4
  504. package/esm2015/tabs/tabs.component.js +9 -8
  505. package/esm2015/tabs/tabs.module.js +4 -4
  506. package/esm2015/tabs/tabs.property.js +6 -6
  507. package/esm2015/tag/tag.component.js +10 -5
  508. package/esm2015/tag/tag.module.js +4 -4
  509. package/esm2015/tag/tag.property.js +10 -4
  510. package/esm2015/text-retract/text-retract.component.js +6 -5
  511. package/esm2015/text-retract/text-retract.module.js +4 -4
  512. package/esm2015/text-retract/text-retract.property.js +3 -3
  513. package/esm2015/textarea/textarea.component.js +6 -5
  514. package/esm2015/textarea/textarea.module.js +4 -4
  515. package/esm2015/textarea/textarea.property.js +4 -14
  516. package/esm2015/theme/theme.component.js +5 -5
  517. package/esm2015/theme/theme.module.js +4 -4
  518. package/esm2015/theme/theme.property.js +4 -4
  519. package/esm2015/time-ago/time-ago.module.js +4 -4
  520. package/esm2015/time-ago/time-ago.pipe.js +3 -3
  521. package/esm2015/time-picker/time-picker-frame.component.js +22 -12
  522. package/esm2015/time-picker/time-picker-portal.component.js +5 -5
  523. package/esm2015/time-picker/time-picker.component.js +31 -15
  524. package/esm2015/time-picker/time-picker.module.js +4 -4
  525. package/esm2015/time-picker/time-picker.property.js +16 -5
  526. package/esm2015/time-range/time-range.module.js +4 -4
  527. package/esm2015/time-range/time-range.pipe.js +3 -3
  528. package/esm2015/timeline/timeline.component.js +7 -6
  529. package/esm2015/timeline/timeline.module.js +4 -4
  530. package/esm2015/timeline/timeline.property.js +3 -3
  531. package/esm2015/tooltip/tooltip-portal.component.js +4 -4
  532. package/esm2015/tooltip/tooltip.directive.js +7 -6
  533. package/esm2015/tooltip/tooltip.module.js +4 -4
  534. package/esm2015/tooltip/tooltip.property.js +4 -4
  535. package/esm2015/transfer/transfer.component.js +7 -6
  536. package/esm2015/transfer/transfer.module.js +4 -4
  537. package/esm2015/transfer/transfer.property.js +3 -3
  538. package/esm2015/tree/tree-node.component.js +5 -5
  539. package/esm2015/tree/tree.component.js +11 -10
  540. package/esm2015/tree/tree.module.js +4 -4
  541. package/esm2015/tree/tree.property.js +7 -7
  542. package/esm2015/tree-file/tree-file.component.js +3 -3
  543. package/esm2015/tree-file/tree-file.module.js +4 -4
  544. package/esm2015/tree-file/tree-file.property.js +3 -3
  545. package/esm2015/typography/typography.component.js +3 -3
  546. package/esm2015/typography/typography.module.js +4 -4
  547. package/esm2015/typography/typography.property.js +3 -3
  548. package/esm2015/upload/upload-portal.component.js +5 -5
  549. package/esm2015/upload/upload.component.js +7 -6
  550. package/esm2015/upload/upload.module.js +4 -4
  551. package/esm2015/upload/upload.property.js +3 -3
  552. package/fesm2015/ng-nest-ui-affix.js +10 -10
  553. package/fesm2015/ng-nest-ui-alert.js +10 -10
  554. package/fesm2015/ng-nest-ui-alert.js.map +1 -1
  555. package/fesm2015/ng-nest-ui-anchor.js +11 -11
  556. package/fesm2015/ng-nest-ui-anchor.js.map +1 -1
  557. package/fesm2015/ng-nest-ui-api.js +7 -7
  558. package/fesm2015/ng-nest-ui-auto-complete.js +59 -25
  559. package/fesm2015/ng-nest-ui-auto-complete.js.map +1 -1
  560. package/fesm2015/ng-nest-ui-avatar.js +10 -10
  561. package/fesm2015/ng-nest-ui-back-top.js +12 -12
  562. package/fesm2015/ng-nest-ui-back-top.js.map +1 -1
  563. package/fesm2015/ng-nest-ui-badge.js +12 -11
  564. package/fesm2015/ng-nest-ui-badge.js.map +1 -1
  565. package/fesm2015/ng-nest-ui-base-form.js +53 -12
  566. package/fesm2015/ng-nest-ui-base-form.js.map +1 -1
  567. package/fesm2015/ng-nest-ui-border.js +7 -7
  568. package/fesm2015/ng-nest-ui-button.js +22 -19
  569. package/fesm2015/ng-nest-ui-button.js.map +1 -1
  570. package/fesm2015/ng-nest-ui-calendar.js +14 -13
  571. package/fesm2015/ng-nest-ui-calendar.js.map +1 -1
  572. package/fesm2015/ng-nest-ui-card.js +10 -10
  573. package/fesm2015/ng-nest-ui-carousel.js +20 -19
  574. package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
  575. package/fesm2015/ng-nest-ui-cascade.js +80 -28
  576. package/fesm2015/ng-nest-ui-cascade.js.map +1 -1
  577. package/fesm2015/ng-nest-ui-checkbox.js +13 -12
  578. package/fesm2015/ng-nest-ui-checkbox.js.map +1 -1
  579. package/fesm2015/ng-nest-ui-collapse.js +16 -16
  580. package/fesm2015/ng-nest-ui-collapse.js.map +1 -1
  581. package/fesm2015/ng-nest-ui-color-picker.js +55 -24
  582. package/fesm2015/ng-nest-ui-color-picker.js.map +1 -1
  583. package/fesm2015/ng-nest-ui-color.js +11 -11
  584. package/fesm2015/ng-nest-ui-color.js.map +1 -1
  585. package/fesm2015/ng-nest-ui-comment.js +19 -18
  586. package/fesm2015/ng-nest-ui-comment.js.map +1 -1
  587. package/fesm2015/ng-nest-ui-container.js +32 -32
  588. package/fesm2015/ng-nest-ui-container.js.map +1 -1
  589. package/fesm2015/ng-nest-ui-core.js +106 -25
  590. package/fesm2015/ng-nest-ui-core.js.map +1 -1
  591. package/fesm2015/ng-nest-ui-crumb.js +13 -12
  592. package/fesm2015/ng-nest-ui-crumb.js.map +1 -1
  593. package/fesm2015/ng-nest-ui-date-picker.js +876 -156
  594. package/fesm2015/ng-nest-ui-date-picker.js.map +1 -1
  595. package/fesm2015/ng-nest-ui-description.js +21 -22
  596. package/fesm2015/ng-nest-ui-description.js.map +1 -1
  597. package/fesm2015/ng-nest-ui-dialog.js +12 -11
  598. package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
  599. package/fesm2015/ng-nest-ui-doc.js +7 -7
  600. package/fesm2015/ng-nest-ui-drawer.js +12 -11
  601. package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
  602. package/fesm2015/ng-nest-ui-dropdown.js +17 -16
  603. package/fesm2015/ng-nest-ui-dropdown.js.map +1 -1
  604. package/fesm2015/ng-nest-ui-empty.js +10 -10
  605. package/fesm2015/ng-nest-ui-examples.js +7 -7
  606. package/fesm2015/ng-nest-ui-find.js +31 -17
  607. package/fesm2015/ng-nest-ui-find.js.map +1 -1
  608. package/fesm2015/ng-nest-ui-form.js +22 -26
  609. package/fesm2015/ng-nest-ui-form.js.map +1 -1
  610. package/fesm2015/ng-nest-ui-highlight.js +12 -11
  611. package/fesm2015/ng-nest-ui-highlight.js.map +1 -1
  612. package/fesm2015/ng-nest-ui-i18n.js +540 -133
  613. package/fesm2015/ng-nest-ui-i18n.js.map +1 -1
  614. package/fesm2015/ng-nest-ui-icon.js +18 -18
  615. package/fesm2015/ng-nest-ui-icon.js.map +1 -1
  616. package/fesm2015/ng-nest-ui-inner.js +11 -11
  617. package/fesm2015/ng-nest-ui-inner.js.map +1 -1
  618. package/fesm2015/ng-nest-ui-input-number.js +31 -14
  619. package/fesm2015/ng-nest-ui-input-number.js.map +1 -1
  620. package/fesm2015/ng-nest-ui-input.js +164 -42
  621. package/fesm2015/ng-nest-ui-input.js.map +1 -1
  622. package/fesm2015/ng-nest-ui-layout.js +16 -16
  623. package/fesm2015/ng-nest-ui-link.js +10 -10
  624. package/fesm2015/ng-nest-ui-list.js +20 -19
  625. package/fesm2015/ng-nest-ui-list.js.map +1 -1
  626. package/fesm2015/ng-nest-ui-loading.js +12 -11
  627. package/fesm2015/ng-nest-ui-loading.js.map +1 -1
  628. package/fesm2015/ng-nest-ui-menu.js +23 -20
  629. package/fesm2015/ng-nest-ui-menu.js.map +1 -1
  630. package/fesm2015/ng-nest-ui-message-box.js +32 -34
  631. package/fesm2015/ng-nest-ui-message-box.js.map +1 -1
  632. package/fesm2015/ng-nest-ui-message.js +11 -11
  633. package/fesm2015/ng-nest-ui-message.js.map +1 -1
  634. package/fesm2015/ng-nest-ui-notification.js +11 -11
  635. package/fesm2015/ng-nest-ui-notification.js.map +1 -1
  636. package/fesm2015/ng-nest-ui-outlet.js +7 -7
  637. package/fesm2015/ng-nest-ui-page-header.js +10 -10
  638. package/fesm2015/ng-nest-ui-pagination.js +104 -14
  639. package/fesm2015/ng-nest-ui-pagination.js.map +1 -1
  640. package/fesm2015/ng-nest-ui-pattern.js +7 -7
  641. package/fesm2015/ng-nest-ui-popconfirm.js +10 -10
  642. package/fesm2015/ng-nest-ui-popover.js +16 -15
  643. package/fesm2015/ng-nest-ui-popover.js.map +1 -1
  644. package/fesm2015/ng-nest-ui-portal.js +7 -7
  645. package/fesm2015/ng-nest-ui-progress.js +13 -12
  646. package/fesm2015/ng-nest-ui-progress.js.map +1 -1
  647. package/fesm2015/ng-nest-ui-radio.js +13 -12
  648. package/fesm2015/ng-nest-ui-radio.js.map +1 -1
  649. package/fesm2015/ng-nest-ui-rate.js +15 -15
  650. package/fesm2015/ng-nest-ui-rate.js.map +1 -1
  651. package/fesm2015/ng-nest-ui-result.js +10 -10
  652. package/fesm2015/ng-nest-ui-ripple.js +10 -10
  653. package/fesm2015/ng-nest-ui-ripple.js.map +1 -1
  654. package/fesm2015/ng-nest-ui-select.js +37 -22
  655. package/fesm2015/ng-nest-ui-select.js.map +1 -1
  656. package/fesm2015/ng-nest-ui-skeleton.js +12 -11
  657. package/fesm2015/ng-nest-ui-skeleton.js.map +1 -1
  658. package/fesm2015/ng-nest-ui-slider-select.js +10 -10
  659. package/fesm2015/ng-nest-ui-slider.js +17 -18
  660. package/fesm2015/ng-nest-ui-slider.js.map +1 -1
  661. package/fesm2015/ng-nest-ui-statistic.js +22 -20
  662. package/fesm2015/ng-nest-ui-statistic.js.map +1 -1
  663. package/fesm2015/ng-nest-ui-steps.js +19 -14
  664. package/fesm2015/ng-nest-ui-steps.js.map +1 -1
  665. package/fesm2015/ng-nest-ui-switch.js +10 -10
  666. package/fesm2015/ng-nest-ui-table.js +43 -40
  667. package/fesm2015/ng-nest-ui-table.js.map +1 -1
  668. package/fesm2015/ng-nest-ui-tabs.js +24 -23
  669. package/fesm2015/ng-nest-ui-tabs.js.map +1 -1
  670. package/fesm2015/ng-nest-ui-tag.js +22 -11
  671. package/fesm2015/ng-nest-ui-tag.js.map +1 -1
  672. package/fesm2015/ng-nest-ui-text-retract.js +12 -11
  673. package/fesm2015/ng-nest-ui-text-retract.js.map +1 -1
  674. package/fesm2015/ng-nest-ui-textarea.js +12 -21
  675. package/fesm2015/ng-nest-ui-textarea.js.map +1 -1
  676. package/fesm2015/ng-nest-ui-theme.js +11 -11
  677. package/fesm2015/ng-nest-ui-theme.js.map +1 -1
  678. package/fesm2015/ng-nest-ui-time-ago.js +7 -7
  679. package/fesm2015/ng-nest-ui-time-picker.js +73 -36
  680. package/fesm2015/ng-nest-ui-time-picker.js.map +1 -1
  681. package/fesm2015/ng-nest-ui-time-range.js +7 -7
  682. package/fesm2015/ng-nest-ui-timeline.js +13 -12
  683. package/fesm2015/ng-nest-ui-timeline.js.map +1 -1
  684. package/fesm2015/ng-nest-ui-tooltip.js +16 -15
  685. package/fesm2015/ng-nest-ui-tooltip.js.map +1 -1
  686. package/fesm2015/ng-nest-ui-transfer.js +13 -12
  687. package/fesm2015/ng-nest-ui-transfer.js.map +1 -1
  688. package/fesm2015/ng-nest-ui-tree-file.js +10 -10
  689. package/fesm2015/ng-nest-ui-tree.js +24 -23
  690. package/fesm2015/ng-nest-ui-tree.js.map +1 -1
  691. package/fesm2015/ng-nest-ui-typography.js +10 -10
  692. package/fesm2015/ng-nest-ui-upload.js +17 -16
  693. package/fesm2015/ng-nest-ui-upload.js.map +1 -1
  694. package/find/find.component.d.ts +1 -1
  695. package/find/find.property.d.ts +22 -2
  696. package/form/control.component.d.ts +1 -1
  697. package/form/form.component.d.ts +1 -1
  698. package/form/form.property.d.ts +6 -6
  699. package/i18n/i18n.property.d.ts +3 -0
  700. package/i18n/languages/ar_EG.d.ts +8 -0
  701. package/i18n/languages/bg_BG.d.ts +8 -0
  702. package/i18n/languages/ca_ES.d.ts +8 -0
  703. package/i18n/languages/cs_CZ.d.ts +8 -0
  704. package/i18n/languages/da_DK.d.ts +8 -0
  705. package/i18n/languages/de_DE.d.ts +8 -0
  706. package/i18n/languages/el_GR.d.ts +8 -0
  707. package/i18n/languages/en_GB.d.ts +8 -0
  708. package/i18n/languages/en_US.d.ts +8 -0
  709. package/i18n/languages/es_ES.d.ts +8 -0
  710. package/i18n/languages/et_EE.d.ts +8 -0
  711. package/i18n/languages/fa_IR.d.ts +8 -0
  712. package/i18n/languages/fi_FI.d.ts +8 -0
  713. package/i18n/languages/fr_BE.d.ts +8 -0
  714. package/i18n/languages/fr_FR.d.ts +8 -0
  715. package/i18n/languages/he_IL.d.ts +8 -0
  716. package/i18n/languages/hi_IN.d.ts +8 -0
  717. package/i18n/languages/hr_HR.d.ts +8 -0
  718. package/i18n/languages/hu_HU.d.ts +8 -0
  719. package/i18n/languages/hy_AM.d.ts +8 -0
  720. package/i18n/languages/id_ID.d.ts +8 -0
  721. package/i18n/languages/is_IS.d.ts +8 -0
  722. package/i18n/languages/it_IT.d.ts +8 -0
  723. package/i18n/languages/ja_JP.d.ts +8 -0
  724. package/i18n/languages/ka_GE.d.ts +8 -0
  725. package/i18n/languages/kn_IN.d.ts +8 -0
  726. package/i18n/languages/ko_KR.d.ts +8 -0
  727. package/i18n/languages/ku_IQ.d.ts +8 -0
  728. package/i18n/languages/lv_LV.d.ts +8 -0
  729. package/i18n/languages/mn_MN.d.ts +8 -0
  730. package/i18n/languages/ms_MY.d.ts +8 -0
  731. package/i18n/languages/nb_NO.d.ts +8 -0
  732. package/i18n/languages/ne_NP.d.ts +8 -0
  733. package/i18n/languages/nl_BE.d.ts +8 -0
  734. package/i18n/languages/nl_NL.d.ts +8 -0
  735. package/i18n/languages/pl_PL.d.ts +8 -0
  736. package/i18n/languages/pt_BR.d.ts +8 -0
  737. package/i18n/languages/pt_PT.d.ts +8 -0
  738. package/i18n/languages/ro_RO.d.ts +8 -0
  739. package/i18n/languages/ru_RU.d.ts +8 -0
  740. package/i18n/languages/sk_SK.d.ts +8 -0
  741. package/i18n/languages/sl_SI.d.ts +8 -0
  742. package/i18n/languages/sr_RS.d.ts +8 -0
  743. package/i18n/languages/sv_SE.d.ts +8 -0
  744. package/i18n/languages/ta_IN.d.ts +8 -0
  745. package/i18n/languages/th_TH.d.ts +8 -0
  746. package/i18n/languages/tr_TR.d.ts +8 -0
  747. package/i18n/languages/uk_UA.d.ts +8 -0
  748. package/i18n/languages/vi_VN.d.ts +8 -0
  749. package/i18n/languages/zh_CN.d.ts +7 -0
  750. package/i18n/languages/zh_TW.d.ts +7 -0
  751. package/inner/inner.component.d.ts +1 -1
  752. package/input/input-group.component.d.ts +13 -0
  753. package/input/input.component.d.ts +10 -3
  754. package/input/input.module.d.ts +7 -5
  755. package/input/input.property.d.ts +79 -14
  756. package/input/public-api.d.ts +1 -0
  757. package/input-number/input-number.component.d.ts +3 -0
  758. package/input-number/input-number.module.d.ts +4 -3
  759. package/input-number/input-number.property.d.ts +12 -2
  760. package/list/list.component.d.ts +2 -2
  761. package/menu/menu.component.d.ts +1 -1
  762. package/message/message.component.d.ts +1 -1
  763. package/message-box/message-box.component.d.ts +2 -1
  764. package/notification/notification.component.d.ts +1 -1
  765. package/package.json +1 -1
  766. package/pagination/pagination.component.d.ts +5 -1
  767. package/pagination/pagination.module.d.ts +7 -3
  768. package/pagination/pagination.property.d.ts +49 -3
  769. package/radio/radio.component.d.ts +1 -1
  770. package/rate/rate.component.d.ts +5 -5
  771. package/select/select-portal.component.d.ts +3 -3
  772. package/select/select.component.d.ts +1 -1
  773. package/select/select.property.d.ts +12 -2
  774. package/slider/slider.component.d.ts +1 -1
  775. package/steps/steps.component.d.ts +1 -1
  776. package/steps/steps.module.d.ts +2 -1
  777. package/steps/steps.property.d.ts +7 -2
  778. package/table/table-body.component.d.ts +1 -1
  779. package/table/table-head.component.d.ts +1 -1
  780. package/table/table.component.d.ts +1 -1
  781. package/table/table.property.d.ts +10 -0
  782. package/tag/tag.component.d.ts +2 -1
  783. package/tag/tag.property.d.ts +6 -1
  784. package/textarea/textarea.property.d.ts +1 -6
  785. package/theme/theme.component.d.ts +1 -1
  786. package/time-picker/time-picker-frame.component.d.ts +4 -0
  787. package/time-picker/time-picker-portal.component.d.ts +3 -3
  788. package/time-picker/time-picker.component.d.ts +5 -3
  789. package/time-picker/time-picker.property.d.ts +12 -2
  790. package/timeline/timeline.component.d.ts +1 -1
  791. package/transfer/transfer.component.d.ts +1 -1
  792. package/tree/tree-node.component.d.ts +1 -1
  793. package/tree/tree.component.d.ts +1 -1
  794. package/upload/upload.component.d.ts +3 -3
@@ -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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"}
@@ -60,8 +60,8 @@ class XMenuProperty extends XProperty {
60
60
  this.activatedIdChange = new EventEmitter();
61
61
  }
62
62
  }
63
- /** @nocollapse */ XMenuProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
64
- /** @nocollapse */ XMenuProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XMenuProperty, selector: "ng-component", inputs: { data: "data", layout: "layout", size: "size", collapsed: "collapsed", trigger: "trigger", nodeTpl: "nodeTpl", expandedAll: "expandedAll", expandedLevel: "expandedLevel", activatedId: "activatedId", target: "target", portalMinWidth: "portalMinWidth" }, outputs: { nodeClick: "nodeClick", activatedIdChange: "activatedIdChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
63
+ /** @nocollapse */ XMenuProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
64
+ /** @nocollapse */ XMenuProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XMenuProperty, selector: "ng-component", inputs: { data: "data", layout: "layout", size: "size", collapsed: "collapsed", trigger: "trigger", nodeTpl: "nodeTpl", expandedAll: "expandedAll", expandedLevel: "expandedLevel", activatedId: "activatedId", target: "target", portalMinWidth: "portalMinWidth" }, outputs: { nodeClick: "nodeClick", activatedIdChange: "activatedIdChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
65
65
  __decorate([
66
66
  XDataConvert()
67
67
  ], XMenuProperty.prototype, "data", void 0);
@@ -80,7 +80,7 @@ __decorate([
80
80
  __decorate([
81
81
  XInputNumber()
82
82
  ], XMenuProperty.prototype, "expandedLevel", void 0);
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuProperty, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuProperty, decorators: [{
84
84
  type: Component,
85
85
  args: [{ template: '' }]
86
86
  }], propDecorators: { data: [{
@@ -121,9 +121,9 @@ const XMenuNodePrefix = 'x-menu-node';
121
121
  */
122
122
  class XMenuNodeProperty extends XProperty {
123
123
  }
124
- /** @nocollapse */ XMenuNodeProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuNodeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
125
- /** @nocollapse */ XMenuNodeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XMenuNodeProperty, selector: "ng-component", inputs: { node: "node" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuNodeProperty, decorators: [{
124
+ /** @nocollapse */ XMenuNodeProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuNodeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
125
+ /** @nocollapse */ XMenuNodeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XMenuNodeProperty, selector: "ng-component", inputs: { node: "node" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuNodeProperty, decorators: [{
127
127
  type: Component,
128
128
  args: [{ template: '' }]
129
129
  }], propDecorators: { node: [{
@@ -149,9 +149,9 @@ class XMenuNodeComponent extends XMenuNodeProperty {
149
149
  };
150
150
  }
151
151
  }
152
- /** @nocollapse */ XMenuNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuNodeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
153
- /** @nocollapse */ XMenuNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XMenuNodeComponent, selector: "x-menu-node", inputs: { menu: "menu" }, usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"node.routerLink && !node.leaf; else menuTpl\" [routerLink]=\"node.routerLink\">\r\n <ng-container *ngTemplateOutlet=\"menuTpl\"></ng-container>\r\n</a>\r\n\r\n<ng-template #menuTpl>\r\n <x-icon class=\"x-menu-icon\" *ngIf=\"node.icon\" [type]=\"node.icon\"></x-icon>\r\n <span class=\"x-menu-text\" *ngIf=\"node.label\">{{ node.label }}</span>\r\n <x-icon class=\"x-menu-arrow\" *ngIf=\"node.leaf\" [class.is-open]=\"node.open\" type=\"fto-chevron-down\"></x-icon>\r\n</ng-template>\r\n", components: [{ type: i2.XIconComponent, selector: "x-icon" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuNodeComponent, decorators: [{
152
+ /** @nocollapse */ XMenuNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuNodeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
153
+ /** @nocollapse */ XMenuNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XMenuNodeComponent, selector: "x-menu-node", inputs: { menu: "menu" }, usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"node.routerLink && !node.leaf; else menuTpl\" [routerLink]=\"node.routerLink\">\r\n <ng-container *ngTemplateOutlet=\"menuTpl\"></ng-container>\r\n</a>\r\n\r\n<ng-template #menuTpl>\r\n <x-icon class=\"x-menu-icon\" *ngIf=\"node.icon\" [type]=\"node.icon\"></x-icon>\r\n <span class=\"x-menu-text\" *ngIf=\"node.label\">{{ node.label }}</span>\r\n <x-icon class=\"x-menu-arrow\" *ngIf=\"node.leaf\" [class.is-open]=\"node.open\" type=\"fto-chevron-down\"></x-icon>\r\n</ng-template>\r\n", components: [{ type: i2.XIconComponent, selector: "x-icon" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuNodeComponent, decorators: [{
155
155
  type: Component,
156
156
  args: [{
157
157
  selector: `${XMenuNodePrefix}`,
@@ -186,9 +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.collapsed) && this.setClassMap();
191
- 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)) {
192
194
  this._target = typeof this.target === 'string' ? this.doc.querySelector(this.target) : this.target;
193
195
  }
194
196
  }
@@ -316,6 +318,7 @@ class XMenuComponent extends XMenuProperty {
316
318
  }
317
319
  setActivatedNode(nodes) {
318
320
  this.activated = nodes.find((x) => x.id == this.activatedId);
321
+ this.rootIndex = nodes.findIndex((x) => x.id == this.activatedId && !x.pid);
319
322
  if (this.activated) {
320
323
  this.setParentOpen(nodes, this.activated);
321
324
  }
@@ -332,13 +335,13 @@ class XMenuComponent extends XMenuProperty {
332
335
  };
333
336
  getParent(node);
334
337
  }
335
- trackByNode(index, item) {
338
+ trackByNode(_index, item) {
336
339
  return item.id;
337
340
  }
338
341
  }
339
- /** @nocollapse */ XMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
340
- /** @nocollapse */ XMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XMenuComponent, selector: "x-menu", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #menu class=\"x-menu\" [ngClass]=\"classMap\">\r\n <div class=\"x-menu-nodes\" *ngIf=\"layout === 'column'\">\r\n <ng-container *ngFor=\"let node of nodes; trackBy: trackByNode\">\r\n <ng-container *ngTemplateOutlet=\"nodeColumnTpl; context: { $node: node, $children: true }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-slider\r\n *ngIf=\"layout === 'row'\"\r\n [data]=\"nodes\"\r\n [size]=\"size\"\r\n [nodeTpl]=\"nodeRowTpl\"\r\n [nodeJustify]=\"'center'\"\r\n [activatedIndex]=\"rootIndex\"\r\n (indexChange)=\"rootIndexChange($event)\"\r\n ></x-slider>\r\n</div>\r\n\r\n<ng-template #nodeTpl let-node=\"$node\">\r\n <x-dropdown\r\n *ngIf=\"node.level === 0 && collapsed\"\r\n [disabled]=\"!node.leaf\"\r\n [data]=\"node.children\"\r\n [trigger]=\"trigger\"\r\n placement=\"right-start\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n [portalMinWidth]=\"portalMinWidth\"\r\n children\r\n >\r\n <x-menu-node [node]=\"node\" [menu]=\"this\"></x-menu-node>\r\n </x-dropdown>\r\n <x-menu-node *ngIf=\"!collapsed\" [node]=\"node\" [menu]=\"this\"></x-menu-node>\r\n</ng-template>\r\n\r\n<ng-template #nodeRowTpl let-node=\"$node\">\r\n <x-dropdown\r\n [disabled]=\"!node.leaf\"\r\n [data]=\"node.children\"\r\n [trigger]=\"trigger\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n [portalMinWidth]=\"portalMinWidth\"\r\n children\r\n >\r\n <div class=\"x-menu-node\" [ngClass]=\"nodeClassMap\">\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </div>\r\n </x-dropdown>\r\n</ng-template>\r\n\r\n<ng-template #nodeColumnTpl let-node=\"$node\">\r\n <div\r\n class=\"x-menu-node\"\r\n [class.x-activated]=\"activated?.id === node.id\"\r\n [class.x-menu-category]=\"node.categoryNode\"\r\n [ngClass]=\"nodeClassMap\"\r\n (click)=\"onToggle($event, node)\"\r\n [style.padding-left.rem]=\"(node.level + 1) * 0.875\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </div>\r\n <div class=\"x-menu-nodes\" *ngIf=\"node.childrenLoaded || (node.leaf && node.open)\" [hidden]=\"!node.open\">\r\n <ng-container *ngFor=\"let child of node.children; trackBy: trackByNode\">\r\n <ng-container *ngTemplateOutlet=\"nodeColumnTpl; context: { $node: child }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: ["x-menu{display:block}.x-menu{margin:0;padding:0}.x-menu-icon.x-icon{font-size:1rem}.x-menu-arrow.x-icon,.x-menu-icon.x-icon{transition:opacity var(--x-animation-duration-base)}.x-menu-arrow.x-icon.is-open{transform:rotate(180deg)}.x-menu-node.x-size-big{padding:0 calc(var(--x-padding-big) + .25rem);height:calc(var(--x-height-big) + .75rem);line-height:calc(var(--x-height-big) + .75rem)}.x-menu-node.x-size-big.x-menu-category{height:calc(calc(var(--x-height-big) + .75rem) * 1.5)}.x-menu-node.x-size-large{padding:0 calc(var(--x-padding-large) + .25rem);height:calc(var(--x-height-large) + .75rem);line-height:calc(var(--x-height-large) + .75rem)}.x-menu-node.x-size-large.x-menu-category{height:calc(calc(var(--x-height-large) + .75rem) * 1.5)}.x-menu-node.x-size-medium{padding:0 calc(var(--x-padding-medium) + .25rem);height:calc(var(--x-height-medium) + .75rem);line-height:calc(var(--x-height-medium) + .75rem)}.x-menu-node.x-size-medium.x-menu-category{height:calc(calc(var(--x-height-medium) + .75rem) * 1.5)}.x-menu-node.x-size-small{padding:0 var(--x-padding-small);height:calc(var(--x-height-small) + .5rem);line-height:calc(var(--x-height-small) + .5rem)}.x-menu-node.x-size-small.x-menu-category{height:calc(calc(var(--x-height-small) + .5rem) * 1.5)}.x-menu-node.x-size-mini{padding:0 var(--x-padding-mini);height:calc(var(--x-height-mini) + .5rem);line-height:calc(var(--x-height-mini) + .5rem)}.x-menu-node.x-size-mini.x-menu-category{height:calc(calc(var(--x-height-mini) + .5rem) * 1.5)}.x-menu x-slider .x-slider-scroll>ul>li.x-slider-highlight{background-color:inherit;border-radius:0;border:none;border-bottom:.125rem solid var(--x-primary)}.x-menu x-slider .x-slider-scroll>ul>li>x-link{padding:0!important;height:inherit!important;line-height:inherit!important}.x-menu-column{width:12rem;transition:var(--x-animation-duration-base)}.x-menu-row .x-menu-text{margin-left:.25rem}.x-menu-nodes .x-menu-node{cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:width var(--x-animation-duration-base),background-color var(--x-animation-duration-base);border-right:.125rem solid var(--x-border);position:relative;-webkit-user-select:none;user-select:none;padding-right:.875rem}.x-menu-nodes .x-menu-node .x-menu-text{flex:1;margin:0 .25rem;transition:background-color var(--x-animation-duration-base),opacity var(--x-animation-duration-base);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-menu-nodes .x-menu-node:hover{color:var(--x-primary);background-color:var(--x-background-a100)}.x-menu-nodes .x-menu-node x-menu-node{flex:1;display:flex;align-items:center;justify-content:space-between;overflow:hidden}.x-menu-nodes .x-menu-node x-menu-node>a{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-decoration:none}.x-menu-nodes .x-menu-node.x-activated{color:var(--x-primary);background-color:var(--x-background-a100)}.x-menu-nodes .x-menu-node.x-activated:after{content:\"\";position:absolute;height:100%;right:-.125rem;top:0;border-right:.125rem solid var(--x-primary)}.x-menu-nodes .x-menu-node.x-menu-category{cursor:inherit;color:var(--x-text-400)}.x-menu-nodes .x-menu-node.x-menu-category:hover{background-color:initial}.x-menu-nodes .x-menu-node.x-menu-category>x-menu-node{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border-300)}.x-menu-collapsed.x-menu-column{width:3rem}.x-menu-collapsed .x-menu-nodes .x-dropdown,.x-menu-collapsed .x-menu-nodes x-dropdown{display:flex;flex:1}.x-menu-collapsed .x-menu-nodes .x-menu-node{padding-left:0!important;padding-right:0}.x-menu-collapsed .x-menu-nodes .x-menu-node x-menu-node{padding-left:.875rem}.x-menu-collapsed .x-menu-nodes .x-menu-node .x-menu-text{opacity:0;width:0}.x-menu-collapsed .x-menu-nodes .x-menu-nodes{display:none}.x-menu-collapsed .x-menu-arrow.x-icon{opacity:0;width:0}"], components: [{ type: i2$1.XSliderComponent, selector: "x-slider" }, { type: i3.XDropdownComponent, selector: "x-dropdown" }, { type: XMenuNodeComponent, selector: "x-menu-node", inputs: ["menu"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuComponent, decorators: [{
342
+ /** @nocollapse */ XMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
343
+ /** @nocollapse */ XMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XMenuComponent, selector: "x-menu", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #menu class=\"x-menu\" [ngClass]=\"classMap\">\r\n <div class=\"x-menu-nodes\" *ngIf=\"layout === 'column'\">\r\n <ng-container *ngFor=\"let node of nodes; trackBy: trackByNode\">\r\n <ng-container *ngTemplateOutlet=\"nodeColumnTpl; context: { $node: node, $children: true }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-slider\r\n *ngIf=\"layout === 'row'\"\r\n [data]=\"nodes\"\r\n [size]=\"size\"\r\n [nodeTpl]=\"nodeRowTpl\"\r\n [nodeJustify]=\"'center'\"\r\n [activatedIndex]=\"rootIndex\"\r\n (indexChange)=\"rootIndexChange($event)\"\r\n ></x-slider>\r\n</div>\r\n\r\n<ng-template #nodeTpl let-node=\"$node\">\r\n <x-dropdown\r\n *ngIf=\"node.level === 0 && collapsed\"\r\n [disabled]=\"!node.leaf\"\r\n [data]=\"node.children\"\r\n [trigger]=\"trigger\"\r\n placement=\"right-start\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n [portalMinWidth]=\"portalMinWidth\"\r\n children\r\n >\r\n <x-menu-node [node]=\"node\" [menu]=\"this\"></x-menu-node>\r\n </x-dropdown>\r\n <x-menu-node *ngIf=\"!collapsed\" [node]=\"node\" [menu]=\"this\"></x-menu-node>\r\n</ng-template>\r\n\r\n<ng-template #nodeRowTpl let-node=\"$node\">\r\n <x-dropdown\r\n [disabled]=\"!node.leaf\"\r\n [data]=\"node.children\"\r\n [trigger]=\"trigger\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n [portalMinWidth]=\"portalMinWidth\"\r\n children\r\n >\r\n <div class=\"x-menu-node\" [ngClass]=\"nodeClassMap\">\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </div>\r\n </x-dropdown>\r\n</ng-template>\r\n\r\n<ng-template #nodeColumnTpl let-node=\"$node\">\r\n <div\r\n class=\"x-menu-node\"\r\n [class.x-activated]=\"activated?.id === node.id\"\r\n [class.x-menu-category]=\"node.categoryNode\"\r\n [ngClass]=\"nodeClassMap\"\r\n (click)=\"onToggle($event, node)\"\r\n [style.padding-left.rem]=\"(node.level + 1) * 0.875\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </div>\r\n <div class=\"x-menu-nodes\" *ngIf=\"node.childrenLoaded || (node.leaf && node.open)\" [hidden]=\"!node.open\">\r\n <ng-container *ngFor=\"let child of node.children; trackBy: trackByNode\">\r\n <ng-container *ngTemplateOutlet=\"nodeColumnTpl; context: { $node: child }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: ["x-menu{display:block}.x-menu{margin:0;padding:0}.x-menu-icon.x-icon{font-size:1rem;transition:opacity var(--x-animation-duration-base)}.x-menu-arrow.x-icon{transition:opacity var(--x-animation-duration-base)}.x-menu-arrow.x-icon.is-open{transform:rotate(180deg)}.x-menu-node.x-size-big{padding:0 calc(var(--x-padding-big) + .25rem);height:calc(var(--x-height-big) + .75rem);line-height:calc(var(--x-height-big) + .75rem)}.x-menu-node.x-size-big.x-menu-category{height:calc(calc(var(--x-height-big) + .75rem) * 1.5)}.x-menu-node.x-size-large{padding:0 calc(var(--x-padding-large) + .25rem);height:calc(var(--x-height-large) + .75rem);line-height:calc(var(--x-height-large) + .75rem)}.x-menu-node.x-size-large.x-menu-category{height:calc(calc(var(--x-height-large) + .75rem) * 1.5)}.x-menu-node.x-size-medium{padding:0 calc(var(--x-padding-medium) + .25rem);height:calc(var(--x-height-medium) + .75rem);line-height:calc(var(--x-height-medium) + .75rem)}.x-menu-node.x-size-medium.x-menu-category{height:calc(calc(var(--x-height-medium) + .75rem) * 1.5)}.x-menu-node.x-size-small{padding:0 var(--x-padding-small);height:calc(var(--x-height-small) + .5rem);line-height:calc(var(--x-height-small) + .5rem)}.x-menu-node.x-size-small.x-menu-category{height:calc(calc(var(--x-height-small) + .5rem) * 1.5)}.x-menu-node.x-size-mini{padding:0 var(--x-padding-mini);height:calc(var(--x-height-mini) + .5rem);line-height:calc(var(--x-height-mini) + .5rem)}.x-menu-node.x-size-mini.x-menu-category{height:calc(calc(var(--x-height-mini) + .5rem) * 1.5)}.x-menu x-slider .x-slider-scroll>ul>li.x-slider-highlight{background-color:inherit;border-radius:0;border:none;border-bottom:.125rem solid var(--x-primary)}.x-menu x-slider .x-slider-scroll>ul>li>x-link{padding:0!important;height:inherit!important;line-height:inherit!important}.x-menu-column{width:12rem;transition:var(--x-animation-duration-base)}.x-menu-row .x-menu-text{margin-left:.25rem}.x-menu-nodes .x-menu-node{cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:width var(--x-animation-duration-base),background-color var(--x-animation-duration-base);border-right:.125rem solid var(--x-border);position:relative;-webkit-user-select:none;user-select:none;padding-right:.875rem}.x-menu-nodes .x-menu-node .x-menu-text{flex:1;margin:0 .25rem;transition:background-color var(--x-animation-duration-base),opacity var(--x-animation-duration-base);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-menu-nodes .x-menu-node:hover{color:var(--x-primary);background-color:var(--x-background-a100)}.x-menu-nodes .x-menu-node x-menu-node{flex:1;display:flex;align-items:center;justify-content:space-between;overflow:hidden}.x-menu-nodes .x-menu-node x-menu-node>a{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-decoration:none}.x-menu-nodes .x-menu-node.x-activated{color:var(--x-primary);background-color:var(--x-background-a100)}.x-menu-nodes .x-menu-node.x-activated:after{content:\"\";position:absolute;height:100%;right:-.125rem;top:0;border-right:.125rem solid var(--x-primary)}.x-menu-nodes .x-menu-node.x-menu-category{cursor:inherit;color:var(--x-text-400)}.x-menu-nodes .x-menu-node.x-menu-category:hover{background-color:transparent}.x-menu-nodes .x-menu-node.x-menu-category>x-menu-node{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border-300)}.x-menu-collapsed.x-menu-column{width:3rem}.x-menu-collapsed .x-menu-nodes x-dropdown,.x-menu-collapsed .x-menu-nodes .x-dropdown{display:flex;flex:1}.x-menu-collapsed .x-menu-nodes .x-menu-node{padding-left:0!important;padding-right:0}.x-menu-collapsed .x-menu-nodes .x-menu-node x-menu-node{padding-left:.875rem}.x-menu-collapsed .x-menu-nodes .x-menu-node .x-menu-text{opacity:0;width:0}.x-menu-collapsed .x-menu-nodes .x-menu-nodes{display:none}.x-menu-collapsed .x-menu-arrow.x-icon{opacity:0;width:0}\n"], components: [{ type: i2$1.XSliderComponent, selector: "x-slider" }, { type: i3.XDropdownComponent, selector: "x-dropdown" }, { type: XMenuNodeComponent, selector: "x-menu-node", inputs: ["menu"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuComponent, decorators: [{
342
345
  type: Component,
343
346
  args: [{
344
347
  selector: `${XMenuPrefix}`,
@@ -354,10 +357,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImpor
354
357
 
355
358
  class XMenuModule {
356
359
  }
357
- /** @nocollapse */ XMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
358
- /** @nocollapse */ XMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuModule, declarations: [XMenuComponent, XMenuNodeComponent, XMenuProperty, XMenuNodeProperty], imports: [CommonModule, RouterModule, XDropdownModule, XSliderModule, XIconModule], exports: [XMenuComponent, XMenuNodeComponent] });
359
- /** @nocollapse */ XMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuModule, imports: [[CommonModule, RouterModule, XDropdownModule, XSliderModule, XIconModule]] });
360
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMenuModule, decorators: [{
360
+ /** @nocollapse */ XMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
361
+ /** @nocollapse */ XMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuModule, declarations: [XMenuComponent, XMenuNodeComponent, XMenuProperty, XMenuNodeProperty], imports: [CommonModule, RouterModule, XDropdownModule, XSliderModule, XIconModule], exports: [XMenuComponent, XMenuNodeComponent] });
362
+ /** @nocollapse */ XMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuModule, imports: [[CommonModule, RouterModule, XDropdownModule, XSliderModule, XIconModule]] });
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMenuModule, decorators: [{
361
364
  type: NgModule,
362
365
  args: [{
363
366
  declarations: [XMenuComponent, XMenuNodeComponent, XMenuProperty, XMenuNodeProperty],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-menu.js","sources":["../../../../lib/ng-nest/ui/menu/menu.property.ts","../../../../lib/ng-nest/ui/menu/menu-node.component.ts","../../../../lib/ng-nest/ui/menu/menu-node.component.html","../../../../lib/ng-nest/ui/menu/menu.component.ts","../../../../lib/ng-nest/ui/menu/menu.component.html","../../../../lib/ng-nest/ui/menu/menu.module.ts","../../../../lib/ng-nest/ui/menu/ng-nest-ui-menu.ts"],"sourcesContent":["import {\r\n XParentIdentityProperty,\r\n XData,\r\n XSize,\r\n XProperty,\r\n XDataConvert,\r\n XInputNumber,\r\n XNumber,\r\n XInputBoolean,\r\n XBoolean,\r\n XWithConfig,\r\n XTrigger\r\n} from '@ng-nest/ui/core';\r\nimport { TemplateRef, Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Menu\r\n * @selector x-menu\r\n * @decorator component\r\n */\r\nexport const XMenuPrefix = 'x-menu';\r\nconst X_CONFIG_NAME = 'menu';\r\n\r\n/**\r\n * Menu Property\r\n */\r\n@Component({ template: '' })\r\nexport class XMenuProperty extends XProperty {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XMenuNode> = [];\r\n /**\r\n * @zh_CN 布局方向\r\n * @en_US Layout direction\r\n */\r\n @Input() layout: XMenuLayout = 'row';\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 Shrink menu\r\n */\r\n @Input() @XInputBoolean() collapsed: XBoolean = false;\r\n /**\r\n * @zh_CN 触发方式,只针对横向布局\r\n * @en_US Trigger mode, only for horizontal layout\r\n */\r\n @Input() @XWithConfig<XMenuTrigger>(X_CONFIG_NAME, 'hover') trigger?: XMenuTrigger;\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 展开的所有层级,只对 layout 布局为 'column' 的生效\r\n * @en_US All expanded levels are only effective for the layout of'column'\r\n */\r\n @Input() @XInputBoolean() expandedAll?: XBoolean;\r\n /**\r\n * @zh_CN 默认展开的层级,只对 layout 布局为 'column' 的生效\r\n * @en_US The level expanded by default is only valid for the layout of'column'\r\n */\r\n @Input() @XInputNumber() expandedLevel: XNumber = -1;\r\n /**\r\n * @zh_CN 当前激活的节点 id\r\n * @en_US Currently active node id\r\n */\r\n @Input() activatedId: any;\r\n /**\r\n * @zh_CN 滚动容器\r\n * @en_US Rolling container\r\n */\r\n @Input() target?: string | HTMLElement;\r\n /**\r\n * @zh_CN 弹框的最小宽度\r\n * @en_US Portal min-width\r\n */\r\n @Input() portalMinWidth?: string | number;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeClick = new EventEmitter<XMenuNode>();\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() activatedIdChange = new EventEmitter<any>();\r\n}\r\n\r\n/**\r\n * @zh_CN MenuNode 节点数据\r\n * @en_US MenuNode node data\r\n */\r\nexport interface XMenuNode extends XParentIdentityProperty<XMenuNode> {\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 Unfold\r\n */\r\n open?: boolean;\r\n /**\r\n * @zh_CN 子节点已加载过\r\n * @en_US Child node has been loaded\r\n */\r\n childrenLoaded?: boolean;\r\n /**\r\n * @zh_CN 分类显示,设置值后节点显示成分类样式\r\n * @en_US Category display, after setting the value, the node is displayed in a category style\r\n */\r\n category?: string;\r\n /**\r\n * @zh_CN 分类节点,通过内部计算\r\n * @en_US Classification node, through internal calculation\r\n */\r\n categoryNode?: boolean;\r\n /**\r\n * @zh_CN 检查更新\r\n * @en_US Check for updates\r\n */\r\n change?: Function;\r\n /**\r\n * @zh_CN 路由\r\n * @en_US Router\r\n */\r\n routerLink?: string | any[];\r\n}\r\n\r\n/**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\nexport type XMenuLayout = 'row' | 'column';\r\n\r\n/**\r\n * @zh_CN 触发方式\r\n * @en_US Trigger method\r\n */\r\nexport type XMenuTrigger = XTrigger;\r\n\r\n/**\r\n * Menu Node\r\n * @selector x-menu-node\r\n * @decorator component\r\n */\r\nexport const XMenuNodePrefix = 'x-menu-node';\r\n\r\n/**\r\n * Menu Node Property\r\n */\r\n@Component({ template: '' })\r\nexport class XMenuNodeProperty extends XProperty {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() node!: XMenuNode;\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Host, Optional, ElementRef, Input } from '@angular/core';\r\nimport { XMenuNodeProperty, XMenuNodePrefix } from './menu.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XMenuNodePrefix}`,\r\n templateUrl: './menu-node.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XMenuNodeComponent extends XMenuNodeProperty {\r\n @Input() menu: any;\r\n constructor(\r\n // @Host() @Optional() public menu: XMenuComponent,\r\n public cdr: ChangeDetectorRef,\r\n public elementRef: ElementRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n ngOnInit() {\r\n if (this.menu?.activatedId == this.node.id) {\r\n this.menu.activatedElementRef = this.elementRef;\r\n }\r\n this.node.change = () => {\r\n this.cdr.detectChanges();\r\n };\r\n }\r\n}\r\n","<a *ngIf=\"node.routerLink && !node.leaf; else menuTpl\" [routerLink]=\"node.routerLink\">\r\n <ng-container *ngTemplateOutlet=\"menuTpl\"></ng-container>\r\n</a>\r\n\r\n<ng-template #menuTpl>\r\n <x-icon class=\"x-menu-icon\" *ngIf=\"node.icon\" [type]=\"node.icon\"></x-icon>\r\n <span class=\"x-menu-text\" *ngIf=\"node.label\">{{ node.label }}</span>\r\n <x-icon class=\"x-menu-arrow\" *ngIf=\"node.leaf\" [class.is-open]=\"node.open\" type=\"fto-chevron-down\"></x-icon>\r\n</ng-template>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n OnDestroy,\r\n AfterViewInit,\r\n Input,\r\n Inject\r\n} from '@angular/core';\r\nimport { XMenuPrefix, XMenuNode, XMenuProperty } from './menu.property';\r\nimport { XClassMap, XIsChange, XIsEmpty, XSetData, groupBy, XConfigService } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XMenuPrefix}`,\r\n templateUrl: './menu.component.html',\r\n styleUrls: ['./menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XMenuComponent extends XMenuProperty implements OnInit, OnChanges, OnDestroy, AfterViewInit {\r\n showCategory = false;\r\n get scroll(): HTMLElement {\r\n return this._target;\r\n }\r\n nodeClassMap: XClassMap = {};\r\n datas: XMenuNode[] = [];\r\n nodes: XMenuNode[] = [];\r\n rootIndex: number = 0;\r\n activated!: XMenuNode;\r\n activatedElementRef!: ElementRef;\r\n expanded: any[] = [];\r\n private _unSubject = new Subject<void>();\r\n private _target!: HTMLElement;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n @Inject(DOCUMENT) public doc: any,\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.data) && this.setData();\r\n XIsChange(changes.collapsed) && this.setClassMap();\r\n if (XIsChange(changes.target)) {\r\n this._target = typeof this.target === 'string' ? this.doc.querySelector(this.target) : this.target;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.activatedElementRef && this.scroll) {\r\n const nodeRect: DOMRect = this.activatedElementRef.nativeElement.getBoundingClientRect();\r\n const scrollRect: DOMRect = this.scroll.getBoundingClientRect();\r\n let scrollTop = nodeRect.top - scrollRect.top - scrollRect.height;\r\n if (scrollTop > 0) {\r\n let offset = 0;\r\n while (offset < scrollRect.height / 2) {\r\n offset = offset + nodeRect.height;\r\n }\r\n this.scroll.scrollTop = scrollTop + offset;\r\n }\r\n }\r\n }\r\n\r\n onNodeClick(node: XMenuNode) {\r\n if (!this.collapsed) {\r\n this.rootIndex = this.nodes.indexOf(this.getRoot(node));\r\n this.activatedId = node.id;\r\n this.activated = node;\r\n this.nodeClick.emit(node);\r\n this.activatedIdChange.emit(node.id);\r\n this.cdr.detectChanges();\r\n } else {\r\n this.onToggle(null, node, true);\r\n }\r\n }\r\n\r\n rootIndexChange(index: number) {\r\n this.rootIndex = index;\r\n let node = this.nodes[index];\r\n this.activatedId = node.id;\r\n this.activated = node;\r\n this.nodeClick.emit(node);\r\n this.activatedIdChange.emit(node.id);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onToggle(event: Event | null, node: XMenuNode, isDropdown = false) {\r\n if ((this.collapsed && !isDropdown) || node.categoryNode) return;\r\n if (!node.leaf) {\r\n this.activated = node;\r\n } else {\r\n event?.stopPropagation();\r\n node.open = !node.open;\r\n if (node.open && !node.childrenLoaded) {\r\n node.childrenLoaded = true;\r\n }\r\n }\r\n this.nodeClick.emit(node);\r\n node.change && node.change();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XMenuPrefix}-${this.layout}`] = this.layout ? true : false;\r\n this.classMap[`${XMenuPrefix}-collapsed`] = Boolean(this.collapsed);\r\n this.nodeClassMap[`x-size-${this.size}`] = this.size ? true : false;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private setData() {\r\n XSetData<XMenuNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.setDataChange(x);\r\n });\r\n }\r\n\r\n private setDataChange(value: XMenuNode[]) {\r\n !XIsEmpty(this.activatedId) && this.setActivatedNode(value);\r\n let handlerDatas: XMenuNode[] = [];\r\n const getChildren = (node: XMenuNode, level: number) => {\r\n node.level = level;\r\n node.children = value.filter((y) => y.pid === node.id);\r\n node.leaf = node.children?.length > 0;\r\n if (node.leaf) {\r\n node.open = Boolean(this.expandedAll) || level <= this.expandedLevel || this.expanded.indexOf(node.id) >= 0;\r\n node.childrenLoaded = node.open;\r\n node.children.map((y) => getChildren(y, level + 1));\r\n node.children = this.setCategory(node.children);\r\n }\r\n handlerDatas = [...handlerDatas, node];\r\n return node;\r\n };\r\n\r\n this.nodes = this.setCategory(value.filter((x) => XIsEmpty(x.pid))).map((x) => getChildren(x, 0));\r\n this.datas = handlerDatas;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private getRoot(value: XMenuNode) {\r\n let root = value;\r\n const getParent = (node: XMenuNode) => {\r\n const parent = this.datas.find((x) => node.pid === x.id) as XMenuNode;\r\n if (XIsEmpty(parent?.pid)) root = parent;\r\n else getParent(parent);\r\n };\r\n if (!XIsEmpty(value.pid)) getParent(value);\r\n return root;\r\n }\r\n\r\n setCategory(nodes: XMenuNode[]) {\r\n const group = groupBy(nodes as XMenuNode[], 'category');\r\n for (let list of group) {\r\n const first = list[0];\r\n if (first.category) {\r\n list.unshift({\r\n id: `${first.pid}__${first.category}`,\r\n pid: first.pid,\r\n label: first.category,\r\n level: first.level,\r\n categoryNode: true\r\n });\r\n }\r\n }\r\n let con: XMenuNode[] = [];\r\n group.map((x) => {\r\n con = con.concat(x);\r\n });\r\n return con;\r\n }\r\n\r\n setActivatedNode(nodes: XMenuNode[]) {\r\n this.activated = nodes.find((x) => x.id == this.activatedId) as XMenuNode;\r\n if (this.activated) {\r\n this.setParentOpen(nodes, this.activated);\r\n }\r\n }\r\n\r\n setParentOpen(nodes: XMenuNode[], node: XMenuNode) {\r\n const getParent = (child: XMenuNode) => {\r\n if (XIsEmpty(child.pid)) return;\r\n const parent = nodes.find((x) => x.id === child.pid) as XMenuNode;\r\n if (!XIsEmpty(parent)) {\r\n this.expanded = [...this.expanded, parent.id];\r\n getParent(parent);\r\n }\r\n };\r\n getParent(node);\r\n }\r\n\r\n trackByNode(index: number, item: XMenuNode) {\r\n return item.id;\r\n }\r\n}\r\n","<div #menu class=\"x-menu\" [ngClass]=\"classMap\">\r\n <div class=\"x-menu-nodes\" *ngIf=\"layout === 'column'\">\r\n <ng-container *ngFor=\"let node of nodes; trackBy: trackByNode\">\r\n <ng-container *ngTemplateOutlet=\"nodeColumnTpl; context: { $node: node, $children: true }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-slider\r\n *ngIf=\"layout === 'row'\"\r\n [data]=\"nodes\"\r\n [size]=\"size\"\r\n [nodeTpl]=\"nodeRowTpl\"\r\n [nodeJustify]=\"'center'\"\r\n [activatedIndex]=\"rootIndex\"\r\n (indexChange)=\"rootIndexChange($event)\"\r\n ></x-slider>\r\n</div>\r\n\r\n<ng-template #nodeTpl let-node=\"$node\">\r\n <x-dropdown\r\n *ngIf=\"node.level === 0 && collapsed\"\r\n [disabled]=\"!node.leaf\"\r\n [data]=\"node.children\"\r\n [trigger]=\"trigger\"\r\n placement=\"right-start\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n [portalMinWidth]=\"portalMinWidth\"\r\n children\r\n >\r\n <x-menu-node [node]=\"node\" [menu]=\"this\"></x-menu-node>\r\n </x-dropdown>\r\n <x-menu-node *ngIf=\"!collapsed\" [node]=\"node\" [menu]=\"this\"></x-menu-node>\r\n</ng-template>\r\n\r\n<ng-template #nodeRowTpl let-node=\"$node\">\r\n <x-dropdown\r\n [disabled]=\"!node.leaf\"\r\n [data]=\"node.children\"\r\n [trigger]=\"trigger\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n [portalMinWidth]=\"portalMinWidth\"\r\n children\r\n >\r\n <div class=\"x-menu-node\" [ngClass]=\"nodeClassMap\">\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </div>\r\n </x-dropdown>\r\n</ng-template>\r\n\r\n<ng-template #nodeColumnTpl let-node=\"$node\">\r\n <div\r\n class=\"x-menu-node\"\r\n [class.x-activated]=\"activated?.id === node.id\"\r\n [class.x-menu-category]=\"node.categoryNode\"\r\n [ngClass]=\"nodeClassMap\"\r\n (click)=\"onToggle($event, node)\"\r\n [style.padding-left.rem]=\"(node.level + 1) * 0.875\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </div>\r\n <div class=\"x-menu-nodes\" *ngIf=\"node.childrenLoaded || (node.leaf && node.open)\" [hidden]=\"!node.open\">\r\n <ng-container *ngFor=\"let child of node.children; trackBy: trackByNode\">\r\n <ng-container *ngTemplateOutlet=\"nodeColumnTpl; context: { $node: child }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XMenuComponent } from './menu.component';\r\nimport { XMenuNodeComponent } from './menu-node.component';\r\nimport { XDropdownModule } from '@ng-nest/ui/dropdown';\r\nimport { XSliderModule } from '@ng-nest/ui/slider';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XMenuProperty, XMenuNodeProperty } from './menu.property';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n declarations: [XMenuComponent, XMenuNodeComponent, XMenuProperty, XMenuNodeProperty],\r\n exports: [XMenuComponent, XMenuNodeComponent],\r\n imports: [CommonModule, RouterModule, XDropdownModule, XSliderModule, XIconModule]\r\n})\r\nexport class XMenuModule {}\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-menu.js","sources":["../../../../lib/ng-nest/ui/menu/menu.property.ts","../../../../lib/ng-nest/ui/menu/menu-node.component.ts","../../../../lib/ng-nest/ui/menu/menu-node.component.html","../../../../lib/ng-nest/ui/menu/menu.component.ts","../../../../lib/ng-nest/ui/menu/menu.component.html","../../../../lib/ng-nest/ui/menu/menu.module.ts","../../../../lib/ng-nest/ui/menu/ng-nest-ui-menu.ts"],"sourcesContent":["import {\r\n XParentIdentityProperty,\r\n XData,\r\n XSize,\r\n XProperty,\r\n XDataConvert,\r\n XInputNumber,\r\n XNumber,\r\n XInputBoolean,\r\n XBoolean,\r\n XWithConfig,\r\n XTrigger\r\n} from '@ng-nest/ui/core';\r\nimport { TemplateRef, Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Menu\r\n * @selector x-menu\r\n * @decorator component\r\n */\r\nexport const XMenuPrefix = 'x-menu';\r\nconst X_CONFIG_NAME = 'menu';\r\n\r\n/**\r\n * Menu Property\r\n */\r\n@Component({ template: '' })\r\nexport class XMenuProperty extends XProperty {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XMenuNode> = [];\r\n /**\r\n * @zh_CN 布局方向\r\n * @en_US Layout direction\r\n */\r\n @Input() layout: XMenuLayout = 'row';\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 Shrink menu\r\n */\r\n @Input() @XInputBoolean() collapsed: XBoolean = false;\r\n /**\r\n * @zh_CN 触发方式,只针对横向布局\r\n * @en_US Trigger mode, only for horizontal layout\r\n */\r\n @Input() @XWithConfig<XMenuTrigger>(X_CONFIG_NAME, 'hover') trigger?: XMenuTrigger;\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 展开的所有层级,只对 layout 布局为 'column' 的生效\r\n * @en_US All expanded levels are only effective for the layout of'column'\r\n */\r\n @Input() @XInputBoolean() expandedAll?: XBoolean;\r\n /**\r\n * @zh_CN 默认展开的层级,只对 layout 布局为 'column' 的生效\r\n * @en_US The level expanded by default is only valid for the layout of'column'\r\n */\r\n @Input() @XInputNumber() expandedLevel: XNumber = -1;\r\n /**\r\n * @zh_CN 当前激活的节点 id\r\n * @en_US Currently active node id\r\n */\r\n @Input() activatedId: any;\r\n /**\r\n * @zh_CN 滚动容器\r\n * @en_US Rolling container\r\n */\r\n @Input() target?: string | HTMLElement;\r\n /**\r\n * @zh_CN 弹框的最小宽度\r\n * @en_US Portal min-width\r\n */\r\n @Input() portalMinWidth?: string | number;\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeClick = new EventEmitter<XMenuNode>();\r\n /**\r\n * @zh_CN 节点点击的事件\r\n * @en_US Node click event\r\n */\r\n @Output() activatedIdChange = new EventEmitter<any>();\r\n}\r\n\r\n/**\r\n * @zh_CN MenuNode 节点数据\r\n * @en_US MenuNode node data\r\n */\r\nexport interface XMenuNode extends XParentIdentityProperty<XMenuNode> {\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 Unfold\r\n */\r\n open?: boolean;\r\n /**\r\n * @zh_CN 子节点已加载过\r\n * @en_US Child node has been loaded\r\n */\r\n childrenLoaded?: boolean;\r\n /**\r\n * @zh_CN 分类显示,设置值后节点显示成分类样式\r\n * @en_US Category display, after setting the value, the node is displayed in a category style\r\n */\r\n category?: string;\r\n /**\r\n * @zh_CN 分类节点,通过内部计算\r\n * @en_US Classification node, through internal calculation\r\n */\r\n categoryNode?: boolean;\r\n /**\r\n * @zh_CN 检查更新\r\n * @en_US Check for updates\r\n */\r\n change?: Function;\r\n /**\r\n * @zh_CN 路由\r\n * @en_US Router\r\n */\r\n routerLink?: string | any[];\r\n}\r\n\r\n/**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\nexport type XMenuLayout = 'row' | 'column';\r\n\r\n/**\r\n * @zh_CN 触发方式\r\n * @en_US Trigger method\r\n */\r\nexport type XMenuTrigger = XTrigger;\r\n\r\n/**\r\n * Menu Node\r\n * @selector x-menu-node\r\n * @decorator component\r\n */\r\nexport const XMenuNodePrefix = 'x-menu-node';\r\n\r\n/**\r\n * Menu Node Property\r\n */\r\n@Component({ template: '' })\r\nexport class XMenuNodeProperty extends XProperty {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() node!: XMenuNode;\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, ElementRef, Input } from '@angular/core';\r\nimport { XMenuNodeProperty, XMenuNodePrefix } from './menu.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XMenuNodePrefix}`,\r\n templateUrl: './menu-node.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XMenuNodeComponent extends XMenuNodeProperty {\r\n @Input() menu: any;\r\n constructor(\r\n // @Host() @Optional() public menu: XMenuComponent,\r\n public cdr: ChangeDetectorRef,\r\n public elementRef: ElementRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n ngOnInit() {\r\n if (this.menu?.activatedId == this.node.id) {\r\n this.menu.activatedElementRef = this.elementRef;\r\n }\r\n this.node.change = () => {\r\n this.cdr.detectChanges();\r\n };\r\n }\r\n}\r\n","<a *ngIf=\"node.routerLink && !node.leaf; else menuTpl\" [routerLink]=\"node.routerLink\">\r\n <ng-container *ngTemplateOutlet=\"menuTpl\"></ng-container>\r\n</a>\r\n\r\n<ng-template #menuTpl>\r\n <x-icon class=\"x-menu-icon\" *ngIf=\"node.icon\" [type]=\"node.icon\"></x-icon>\r\n <span class=\"x-menu-text\" *ngIf=\"node.label\">{{ node.label }}</span>\r\n <x-icon class=\"x-menu-arrow\" *ngIf=\"node.leaf\" [class.is-open]=\"node.open\" type=\"fto-chevron-down\"></x-icon>\r\n</ng-template>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n OnDestroy,\r\n AfterViewInit,\r\n Inject\r\n} from '@angular/core';\r\nimport { XMenuPrefix, XMenuNode, XMenuProperty } from './menu.property';\r\nimport { XClassMap, XIsChange, XIsEmpty, XSetData, groupBy, XConfigService } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XMenuPrefix}`,\r\n templateUrl: './menu.component.html',\r\n styleUrls: ['./menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XMenuComponent extends XMenuProperty implements OnInit, OnChanges, OnDestroy, AfterViewInit {\r\n showCategory = false;\r\n get scroll(): HTMLElement {\r\n return this._target;\r\n }\r\n nodeClassMap: XClassMap = {};\r\n datas: XMenuNode[] = [];\r\n nodes: XMenuNode[] = [];\r\n rootIndex: number = 0;\r\n activated!: XMenuNode;\r\n activatedElementRef!: ElementRef;\r\n expanded: any[] = [];\r\n private _unSubject = new Subject<void>();\r\n private _target!: HTMLElement;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n @Inject(DOCUMENT) public doc: any,\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 { data, activatedId, collapsed, target } = changes;\r\n XIsChange(data) && this.setData();\r\n XIsChange(activatedId) && this.setActivatedNode(this.nodes);\r\n XIsChange(collapsed) && this.setClassMap();\r\n if (XIsChange(target)) {\r\n this._target = typeof this.target === 'string' ? this.doc.querySelector(this.target) : this.target;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.activatedElementRef && this.scroll) {\r\n const nodeRect: DOMRect = this.activatedElementRef.nativeElement.getBoundingClientRect();\r\n const scrollRect: DOMRect = this.scroll.getBoundingClientRect();\r\n let scrollTop = nodeRect.top - scrollRect.top - scrollRect.height;\r\n if (scrollTop > 0) {\r\n let offset = 0;\r\n while (offset < scrollRect.height / 2) {\r\n offset = offset + nodeRect.height;\r\n }\r\n this.scroll.scrollTop = scrollTop + offset;\r\n }\r\n }\r\n }\r\n\r\n onNodeClick(node: XMenuNode) {\r\n if (!this.collapsed) {\r\n this.rootIndex = this.nodes.indexOf(this.getRoot(node));\r\n this.activatedId = node.id;\r\n this.activated = node;\r\n this.nodeClick.emit(node);\r\n this.activatedIdChange.emit(node.id);\r\n this.cdr.detectChanges();\r\n } else {\r\n this.onToggle(null, node, true);\r\n }\r\n }\r\n\r\n rootIndexChange(index: number) {\r\n this.rootIndex = index;\r\n let node = this.nodes[index];\r\n this.activatedId = node.id;\r\n this.activated = node;\r\n this.nodeClick.emit(node);\r\n this.activatedIdChange.emit(node.id);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onToggle(event: Event | null, node: XMenuNode, isDropdown = false) {\r\n if ((this.collapsed && !isDropdown) || node.categoryNode) return;\r\n if (!node.leaf) {\r\n this.activated = node;\r\n } else {\r\n event?.stopPropagation();\r\n node.open = !node.open;\r\n if (node.open && !node.childrenLoaded) {\r\n node.childrenLoaded = true;\r\n }\r\n }\r\n this.nodeClick.emit(node);\r\n node.change && node.change();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XMenuPrefix}-${this.layout}`] = this.layout ? true : false;\r\n this.classMap[`${XMenuPrefix}-collapsed`] = Boolean(this.collapsed);\r\n this.nodeClassMap[`x-size-${this.size}`] = this.size ? true : false;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private setData() {\r\n XSetData<XMenuNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.setDataChange(x);\r\n });\r\n }\r\n\r\n private setDataChange(value: XMenuNode[]) {\r\n !XIsEmpty(this.activatedId) && this.setActivatedNode(value);\r\n let handlerDatas: XMenuNode[] = [];\r\n const getChildren = (node: XMenuNode, level: number) => {\r\n node.level = level;\r\n node.children = value.filter((y) => y.pid === node.id);\r\n node.leaf = node.children?.length > 0;\r\n if (node.leaf) {\r\n node.open = Boolean(this.expandedAll) || level <= this.expandedLevel || this.expanded.indexOf(node.id) >= 0;\r\n node.childrenLoaded = node.open;\r\n node.children.map((y) => getChildren(y, level + 1));\r\n node.children = this.setCategory(node.children);\r\n }\r\n handlerDatas = [...handlerDatas, node];\r\n return node;\r\n };\r\n\r\n this.nodes = this.setCategory(value.filter((x) => XIsEmpty(x.pid))).map((x) => getChildren(x, 0));\r\n this.datas = handlerDatas;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private getRoot(value: XMenuNode) {\r\n let root = value;\r\n const getParent = (node: XMenuNode) => {\r\n const parent = this.datas.find((x) => node.pid === x.id) as XMenuNode;\r\n if (XIsEmpty(parent?.pid)) root = parent;\r\n else getParent(parent);\r\n };\r\n if (!XIsEmpty(value.pid)) getParent(value);\r\n return root;\r\n }\r\n\r\n setCategory(nodes: XMenuNode[]) {\r\n const group = groupBy(nodes as XMenuNode[], 'category');\r\n for (let list of group) {\r\n const first = list[0];\r\n if (first.category) {\r\n list.unshift({\r\n id: `${first.pid}__${first.category}`,\r\n pid: first.pid,\r\n label: first.category,\r\n level: first.level,\r\n categoryNode: true\r\n });\r\n }\r\n }\r\n let con: XMenuNode[] = [];\r\n group.map((x) => {\r\n con = con.concat(x);\r\n });\r\n return con;\r\n }\r\n\r\n setActivatedNode(nodes: XMenuNode[]) {\r\n this.activated = nodes.find((x) => x.id == this.activatedId) as XMenuNode;\r\n this.rootIndex = nodes.findIndex((x) => x.id == this.activatedId && !x.pid);\r\n if (this.activated) {\r\n this.setParentOpen(nodes, this.activated);\r\n }\r\n }\r\n\r\n setParentOpen(nodes: XMenuNode[], node: XMenuNode) {\r\n const getParent = (child: XMenuNode) => {\r\n if (XIsEmpty(child.pid)) return;\r\n const parent = nodes.find((x) => x.id === child.pid) as XMenuNode;\r\n if (!XIsEmpty(parent)) {\r\n this.expanded = [...this.expanded, parent.id];\r\n getParent(parent);\r\n }\r\n };\r\n getParent(node);\r\n }\r\n\r\n trackByNode(_index: number, item: XMenuNode) {\r\n return item.id;\r\n }\r\n}\r\n","<div #menu class=\"x-menu\" [ngClass]=\"classMap\">\r\n <div class=\"x-menu-nodes\" *ngIf=\"layout === 'column'\">\r\n <ng-container *ngFor=\"let node of nodes; trackBy: trackByNode\">\r\n <ng-container *ngTemplateOutlet=\"nodeColumnTpl; context: { $node: node, $children: true }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-slider\r\n *ngIf=\"layout === 'row'\"\r\n [data]=\"nodes\"\r\n [size]=\"size\"\r\n [nodeTpl]=\"nodeRowTpl\"\r\n [nodeJustify]=\"'center'\"\r\n [activatedIndex]=\"rootIndex\"\r\n (indexChange)=\"rootIndexChange($event)\"\r\n ></x-slider>\r\n</div>\r\n\r\n<ng-template #nodeTpl let-node=\"$node\">\r\n <x-dropdown\r\n *ngIf=\"node.level === 0 && collapsed\"\r\n [disabled]=\"!node.leaf\"\r\n [data]=\"node.children\"\r\n [trigger]=\"trigger\"\r\n placement=\"right-start\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n [portalMinWidth]=\"portalMinWidth\"\r\n children\r\n >\r\n <x-menu-node [node]=\"node\" [menu]=\"this\"></x-menu-node>\r\n </x-dropdown>\r\n <x-menu-node *ngIf=\"!collapsed\" [node]=\"node\" [menu]=\"this\"></x-menu-node>\r\n</ng-template>\r\n\r\n<ng-template #nodeRowTpl let-node=\"$node\">\r\n <x-dropdown\r\n [disabled]=\"!node.leaf\"\r\n [data]=\"node.children\"\r\n [trigger]=\"trigger\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n [portalMinWidth]=\"portalMinWidth\"\r\n children\r\n >\r\n <div class=\"x-menu-node\" [ngClass]=\"nodeClassMap\">\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </div>\r\n </x-dropdown>\r\n</ng-template>\r\n\r\n<ng-template #nodeColumnTpl let-node=\"$node\">\r\n <div\r\n class=\"x-menu-node\"\r\n [class.x-activated]=\"activated?.id === node.id\"\r\n [class.x-menu-category]=\"node.categoryNode\"\r\n [ngClass]=\"nodeClassMap\"\r\n (click)=\"onToggle($event, node)\"\r\n [style.padding-left.rem]=\"(node.level + 1) * 0.875\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </div>\r\n <div class=\"x-menu-nodes\" *ngIf=\"node.childrenLoaded || (node.leaf && node.open)\" [hidden]=\"!node.open\">\r\n <ng-container *ngFor=\"let child of node.children; trackBy: trackByNode\">\r\n <ng-container *ngTemplateOutlet=\"nodeColumnTpl; context: { $node: child }\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XMenuComponent } from './menu.component';\r\nimport { XMenuNodeComponent } from './menu-node.component';\r\nimport { XDropdownModule } from '@ng-nest/ui/dropdown';\r\nimport { XSliderModule } from '@ng-nest/ui/slider';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XMenuProperty, XMenuNodeProperty } from './menu.property';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n declarations: [XMenuComponent, XMenuNodeComponent, XMenuProperty, XMenuNodeProperty],\r\n exports: [XMenuComponent, XMenuNodeComponent],\r\n imports: [CommonModule, RouterModule, XDropdownModule, XSliderModule, XIconModule]\r\n})\r\nexport class XMenuModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -35,17 +35,17 @@ class XMessageBoxComponent {
35
35
  this.action = 'close';
36
36
  this.formGroup = new FormGroup({});
37
37
  }
38
+ get msgInput() {
39
+ return this.messageBox.input;
40
+ }
38
41
  get getLabel() {
39
- var _a;
40
- return (_a = this.messageBox.input) === null || _a === void 0 ? void 0 : _a.content;
42
+ return this.msgInput.content;
41
43
  }
42
44
  get getPattern() {
43
- var _a;
44
- return (_a = this.messageBox.input) === null || _a === void 0 ? void 0 : _a.inputPattern;
45
+ return this.msgInput.inputPattern;
45
46
  }
46
47
  ngOnInit() {
47
- var _a;
48
- ((_a = this.messageBox.input) === null || _a === void 0 ? void 0 : _a.showInput) && this.createFormGroup();
48
+ this.msgInput.showInput && this.createFormGroup();
49
49
  }
50
50
  onClose() {
51
51
  this.action = 'close';
@@ -56,24 +56,24 @@ class XMessageBoxComponent {
56
56
  this.hideBox();
57
57
  }
58
58
  hideBox() {
59
- var _a, _b, _c, _d;
60
- if (((_a = this.messageBox.input) === null || _a === void 0 ? void 0 : _a.hide) && ((_b = this.messageBox.input) === null || _b === void 0 ? void 0 : _b.hide) !== true)
61
- this.messageBox.input.hide = true;
62
- (_d = (_c = this.messageBox.ref) === null || _c === void 0 ? void 0 : _c.overlayRef) === null || _d === void 0 ? void 0 : _d.detach();
59
+ var _a, _b;
60
+ if (this.msgInput.hide && this.msgInput.hide !== true) {
61
+ this.msgInput.hide = true;
62
+ }
63
+ (_b = (_a = this.messageBox.ref) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.detach();
63
64
  this.cdr.detectChanges();
64
65
  }
65
66
  onConfirm() {
66
- var _a;
67
- if (!((_a = this.messageBox.input) === null || _a === void 0 ? void 0 : _a.showInput) || (this.messageBox.input.showInput && this.formGroup.valid)) {
67
+ if (!this.msgInput.showInput || (this.msgInput.showInput && this.formGroup.valid)) {
68
68
  this.action = 'confirm';
69
69
  this.hideBox();
70
70
  }
71
71
  }
72
72
  moveDone($event) {
73
- var _a, _b, _c;
73
+ var _a, _b;
74
74
  if ($event.toState === 'void') {
75
- ((_a = this.messageBox.input) === null || _a === void 0 ? void 0 : _a.callback) && this.messageBox.input.callback(this.action, this.getInputValue());
76
- (_c = (_b = this.messageBox.ref) === null || _b === void 0 ? void 0 : _b.overlayRef) === null || _c === void 0 ? void 0 : _c.dispose();
75
+ this.msgInput.callback && this.msgInput.callback(this.action, this.getInputValue());
76
+ (_b = (_a = this.messageBox.ref) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.dispose();
77
77
  }
78
78
  }
79
79
  getInputValue() {
@@ -81,16 +81,12 @@ class XMessageBoxComponent {
81
81
  return (_a = this.formGroup.controls['inputValue']) === null || _a === void 0 ? void 0 : _a.value;
82
82
  }
83
83
  createFormGroup() {
84
- var _a, _b;
85
- this.formGroup.addControl('inputValue', new FormControl((_a = this.messageBox.input) === null || _a === void 0 ? void 0 : _a.inputValue, [
86
- Validators.required,
87
- Validators.pattern((_b = this.messageBox.input) === null || _b === void 0 ? void 0 : _b.inputPattern)
88
- ]));
84
+ this.formGroup.addControl('inputValue', new FormControl(this.msgInput.inputValue, [Validators.required, Validators.pattern(this.msgInput.inputPattern)]));
89
85
  }
90
86
  }
91
- /** @nocollapse */ XMessageBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMessageBoxComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
92
- /** @nocollapse */ XMessageBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.3", type: XMessageBoxComponent, selector: "x-message-box", ngImport: i0, template: "<div\r\n class=\"x-message-box\"\r\n *ngIf=\"!messageBox?.input?.hide\"\r\n [@x-move-box-animation]=\"messageBox.input?.placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n>\r\n <x-alert\r\n (close)=\"onClose()\"\r\n [title]=\"messageBox.input?.title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"messageBox.input?.type\"\r\n [effect]=\"messageBox.input?.effect\"\r\n [hideClose]=\"messageBox.input?.hideClose\"\r\n [closeText]=\"messageBox.input?.closeText\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n <ng-template #contentTpl let-iconTpl=\"$iconTpl\">\r\n <div class=\"x-message-box-inner\">\r\n <div class=\"x-message-box-content\">\r\n <ng-container *ngIf=\"!messageBox.input?.showInput; else inputTpl\">\r\n <ng-container *ngIf=\"messageBox.input?.showIcon\">\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *xOutlet=\"messageBox.input?.content\">\r\n {{ messageBox.input?.content }}\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #inputTpl>\r\n <x-input\r\n [ngModel]=\"messageBox.input?.inputValue\"\r\n [type]=\"messageBox.input?.inputType\"\r\n [label]=\"getLabel\"\r\n [placeholder]=\"messageBox.input?.inputPlaceholder\"\r\n [pattern]=\"getPattern\"\r\n [message]=\"messageBox.input?.inputInvalidMessage\"\r\n ></x-input>\r\n </ng-template>\r\n </div>\r\n <x-buttons space=\"1\">\r\n <x-button *ngIf=\"messageBox.input?.showCancel\" (click)=\"onCancel()\">{{ messageBox.input?.cancelText }}</x-button>\r\n <x-button type=\"primary\" (click)=\"onConfirm()\" [disabled]=\"formGroup?.invalid\">{{ messageBox.input?.confirmText }}</x-button>\r\n </x-buttons>\r\n </div>\r\n </ng-template>\r\n</div>\r\n", styles: [".x-message-box{margin:0;padding:0}.x-message-box-inner{display:flex;flex-direction:column;margin:.5rem 0}.x-message-box-inner>x-buttons{margin-top:1rem;align-self:flex-end}.x-message-box-content{display:inline-flex}.x-message-box-content form,.x-message-box-portal x-message-box{width:100%}"], components: [{ type: i1.XAlertComponent, selector: "x-alert" }, { type: i2.XInputComponent, selector: "x-input" }, { type: i3.XButtonsComponent, selector: "x-buttons" }, { type: i3.XButtonComponent, selector: "x-button" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }], animations: [XMoveBoxAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMessageBoxComponent, decorators: [{
87
+ /** @nocollapse */ XMessageBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMessageBoxComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
88
+ /** @nocollapse */ XMessageBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: XMessageBoxComponent, selector: "x-message-box", ngImport: i0, template: "<div\r\n class=\"x-message-box\"\r\n *ngIf=\"!messageBox?.input?.hide\"\r\n [@x-move-box-animation]=\"messageBox.input?.placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n>\r\n <x-alert\r\n (close)=\"onClose()\"\r\n [title]=\"messageBox.input?.title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"messageBox.input?.type\"\r\n [effect]=\"messageBox.input?.effect\"\r\n [hideClose]=\"messageBox.input?.hideClose\"\r\n [closeText]=\"messageBox.input?.closeText\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n <ng-template #contentTpl let-iconTpl=\"$iconTpl\">\r\n <div class=\"x-message-box-inner\">\r\n <div class=\"x-message-box-content\">\r\n <ng-container *ngIf=\"!messageBox.input?.showInput; else inputTpl\">\r\n <ng-container *ngIf=\"messageBox.input?.showIcon\">\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *xOutlet=\"messageBox.input?.content\">\r\n {{ messageBox.input?.content }}\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #inputTpl>\r\n <form [formGroup]=\"formGroup\">\r\n <x-input\r\n formControlName=\"inputValue\"\r\n [type]=\"messageBox.input?.inputType\"\r\n [label]=\"getLabel\"\r\n [placeholder]=\"messageBox.input?.inputPlaceholder\"\r\n [pattern]=\"getPattern\"\r\n [message]=\"messageBox.input?.inputInvalidMessage\"\r\n ></x-input>\r\n </form>\r\n </ng-template>\r\n </div>\r\n <x-buttons space=\"1\">\r\n <x-button *ngIf=\"messageBox.input?.showCancel\" (click)=\"onCancel()\">{{ messageBox.input?.cancelText }}</x-button>\r\n <x-button type=\"primary\" (click)=\"onConfirm()\" [disabled]=\"formGroup?.invalid\">{{ messageBox.input?.confirmText }}</x-button>\r\n </x-buttons>\r\n </div>\r\n </ng-template>\r\n</div>\r\n", styles: [".x-message-box{margin:0;padding:0}.x-message-box-inner{display:flex;flex-direction:column;margin:.5rem 0}.x-message-box-inner>x-buttons{margin-top:1rem;align-self:flex-end}.x-message-box-content{display:inline-flex}.x-message-box-content>form{width:100%}.x-message-box-content>form>x-input{width:100%}.x-message-box-portal x-message-box{width:100%}\n"], components: [{ type: i1.XAlertComponent, selector: "x-alert" }, { type: i2.XInputComponent, selector: "x-input" }, { type: i3.XButtonsComponent, selector: "x-buttons" }, { type: i3.XButtonComponent, selector: "x-button" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }], animations: [XMoveBoxAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMessageBoxComponent, decorators: [{
94
90
  type: Component,
95
91
  args: [{
96
92
  selector: `${XMessageBoxPrefix}`,
@@ -155,11 +151,13 @@ class XMessageBoxService {
155
151
  return this.createMessageBoxPlacement(opt);
156
152
  }
157
153
  createMessageBoxPlacement(option) {
158
- var _a, _b, _c, _d;
159
154
  let result = { ref: this.create(option), input: option };
160
- ((_b = (_a = result.ref) === null || _a === void 0 ? void 0 : _a.componentRef) === null || _b === void 0 ? void 0 : _b.instance).messageBox = result;
161
- if (option.backdropClose)
162
- (_d = (_c = result.ref) === null || _c === void 0 ? void 0 : _c.overlayRef) === null || _d === void 0 ? void 0 : _d.backdropClick().subscribe(() => { var _a, _b; return (_b = (_a = result.ref) === null || _a === void 0 ? void 0 : _a.componentRef) === null || _b === void 0 ? void 0 : _b.instance.onClose(); });
155
+ const { overlayRef, componentRef } = result.ref;
156
+ const { instance } = componentRef;
157
+ instance.messageBox = result;
158
+ if (option.backdropClose && overlayRef) {
159
+ overlayRef.backdropClick().subscribe(() => instance.onClose());
160
+ }
163
161
  return result;
164
162
  }
165
163
  setLocal() {
@@ -167,16 +165,16 @@ class XMessageBoxService {
167
165
  this.default = Object.assign(Object.assign({}, this.default), messageBoxLocale);
168
166
  }
169
167
  }
170
- /** @nocollapse */ XMessageBoxService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMessageBoxService, deps: [{ token: i1$1.XPortalService }, { token: i2$1.XI18nService }], target: i0.ɵɵFactoryTarget.Injectable });
171
- /** @nocollapse */ XMessageBoxService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMessageBoxService });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMessageBoxService, decorators: [{
168
+ /** @nocollapse */ XMessageBoxService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMessageBoxService, deps: [{ token: i1$1.XPortalService }, { token: i2$1.XI18nService }], target: i0.ɵɵFactoryTarget.Injectable });
169
+ /** @nocollapse */ XMessageBoxService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMessageBoxService });
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMessageBoxService, decorators: [{
173
171
  type: Injectable
174
172
  }], ctorParameters: function () { return [{ type: i1$1.XPortalService }, { type: i2$1.XI18nService }]; } });
175
173
 
176
174
  class XMessageBoxModule {
177
175
  }
178
- /** @nocollapse */ XMessageBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMessageBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
179
- /** @nocollapse */ XMessageBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMessageBoxModule, declarations: [XMessageBoxComponent], imports: [CommonModule,
176
+ /** @nocollapse */ XMessageBoxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMessageBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
177
+ /** @nocollapse */ XMessageBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMessageBoxModule, declarations: [XMessageBoxComponent], imports: [CommonModule,
180
178
  FormsModule,
181
179
  ReactiveFormsModule,
182
180
  XPortalModule,
@@ -185,7 +183,7 @@ class XMessageBoxModule {
185
183
  XIconModule,
186
184
  XAlertModule,
187
185
  XOutletModule], exports: [XMessageBoxComponent] });
188
- /** @nocollapse */ XMessageBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMessageBoxModule, providers: [XMessageBoxService], imports: [[
186
+ /** @nocollapse */ XMessageBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMessageBoxModule, providers: [XMessageBoxService], imports: [[
189
187
  CommonModule,
190
188
  FormsModule,
191
189
  ReactiveFormsModule,
@@ -196,7 +194,7 @@ class XMessageBoxModule {
196
194
  XAlertModule,
197
195
  XOutletModule
198
196
  ]] });
199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.3", ngImport: i0, type: XMessageBoxModule, decorators: [{
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: XMessageBoxModule, decorators: [{
200
198
  type: NgModule,
201
199
  args: [{
202
200
  declarations: [XMessageBoxComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-message-box.js","sources":["../../../../lib/ng-nest/ui/message-box/message-box.property.ts","../../../../lib/ng-nest/ui/message-box/message-box.component.ts","../../../../lib/ng-nest/ui/message-box/message-box.component.html","../../../../lib/ng-nest/ui/message-box/message-box.service.ts","../../../../lib/ng-nest/ui/message-box/message-box.module.ts","../../../../lib/ng-nest/ui/message-box/ng-nest-ui-message-box.ts"],"sourcesContent":["import { XStatus, XPlace } from '@ng-nest/ui/core';\r\nimport { XAlertOption } from '@ng-nest/ui/alert';\r\nimport { XMessageBoxComponent } from './message-box.component';\r\nimport { XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { XInputType } from '@ng-nest/ui/input';\r\n\r\n/**\r\n * MessageBox\r\n * @selector x-message-box\r\n * @decorator component\r\n */\r\nexport const XMessageBoxPrefix = 'x-message-box';\r\n\r\nexport const XMessageBoxPortal = 'x-message-box-portal';\r\n\r\n/**\r\n * MessageBox Option\r\n */\r\nexport interface XMessageBoxOption extends XAlertOption {\r\n /**\r\n * @zh_CN 方位,九宫格\r\n * @en_US Direction, nine grid\r\n * @default 'top'\r\n */\r\n placement?: XPlace;\r\n /**\r\n * @zh_CN 偏移距离\r\n * @en_US Offset distance\r\n * @default '2rem'\r\n */\r\n offset?: string | string[];\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n * @default 'info'\r\n */\r\n type?: XMessageBoxType;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n * @default '16rem'\r\n */\r\n width?: string;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n height?: string;\r\n /**\r\n * @zh_CN 隐藏关闭按钮\r\n * @en_US Hide close button\r\n * @default true\r\n */\r\n hideClose?: boolean;\r\n /**\r\n * @zh_CN 显示图标\r\n * @en_US Show icon\r\n * @default true\r\n */\r\n showIcon?: boolean;\r\n /**\r\n * @zh_CN 显示取消按钮\r\n * @en_US Show cancel button\r\n */\r\n showCancel?: boolean;\r\n /**\r\n * @zh_CN 关闭事件\r\n * @en_US Close event\r\n */\r\n callback?: XMessageBoxCallback;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n * @default false\r\n */\r\n backdropClose?: boolean;\r\n /**\r\n * @zh_CN 确认按钮文字\r\n * @en_US Confirm button text\r\n * @default '确定'\r\n */\r\n confirmText?: string;\r\n /**\r\n * @zh_CN 取消按钮文字\r\n * @en_US Cancel button text\r\n * @default '取消'\r\n */\r\n cancelText?: string;\r\n /**\r\n * @zh_CN 是否显示输入框\r\n * @en_US Whether to show the input box\r\n */\r\n showInput?: boolean;\r\n /**\r\n * @zh_CN 匹配规则\r\n * @en_US Matching rules\r\n */\r\n inputPattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 匹配失败的信息提示\r\n * @en_US Information prompt for matching failure\r\n */\r\n inputInvalidMessage?: string;\r\n /**\r\n * @zh_CN 输入框的占位符\r\n * @en_US Placeholder for input box\r\n */\r\n inputPlaceholder?: string;\r\n /**\r\n * @zh_CN 输入框的类型\r\n * @en_US Type of input box\r\n */\r\n inputType?: XInputType;\r\n /**\r\n * @zh_CN 输入框的值\r\n * @en_US Value of input box\r\n */\r\n inputValue?: string;\r\n /**\r\n * @zh_CN 输入框的验证函数\r\n * @en_US Validation function of input box\r\n */\r\n inputValidator?: Function;\r\n}\r\n\r\nexport interface XMessageBoxCallback {\r\n (action: XMessageBoxAction, message?: string): void;\r\n}\r\n\r\nexport type XMessageBoxAction = 'confirm' | 'cancel' | 'close';\r\n\r\n/**\r\n * @zh_CN 创建的消息对象\r\n * @en_US Message object created\r\n */\r\nexport interface XMessageBoxOverlayRef extends XPortalOverlayRef<XMessageBoxComponent> {}\r\n\r\nexport interface XMessageBoxRef {\r\n ref?: XMessageBoxOverlayRef;\r\n input?: XMessageBoxOption;\r\n}\r\n\r\n/**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\nexport type XMessageBoxType = XStatus;\r\n","import { Component, ViewEncapsulation, Renderer2, ElementRef, ChangeDetectorRef, ChangeDetectionStrategy, OnInit } from '@angular/core';\r\nimport { XMoveBoxAnimation } from '@ng-nest/ui/core';\r\nimport { XMessageBoxPrefix, XMessageBoxRef, XMessageBoxAction } from './message-box.property';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: `${XMessageBoxPrefix}`,\r\n templateUrl: './message-box.component.html',\r\n styleUrls: ['./message-box.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XMoveBoxAnimation]\r\n})\r\nexport class XMessageBoxComponent implements OnInit {\r\n messageBox: XMessageBoxRef = {};\r\n action: XMessageBoxAction = 'close';\r\n formGroup: FormGroup = new FormGroup({});\r\n constructor(public renderer: Renderer2, public elementRef: ElementRef, public cdr: ChangeDetectorRef) {}\r\n\r\n get getLabel() {\r\n return this.messageBox.input?.content as string;\r\n }\r\n\r\n get getPattern() {\r\n return this.messageBox.input?.inputPattern as RegExp;\r\n }\r\n\r\n ngOnInit() {\r\n this.messageBox.input?.showInput && this.createFormGroup();\r\n }\r\n\r\n onClose() {\r\n this.action = 'close';\r\n this.hideBox();\r\n }\r\n\r\n onCancel() {\r\n this.action = 'cancel';\r\n this.hideBox();\r\n }\r\n\r\n hideBox() {\r\n if (this.messageBox.input?.hide && this.messageBox.input?.hide !== true) this.messageBox.input.hide = true;\r\n this.messageBox.ref?.overlayRef?.detach();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onConfirm() {\r\n if (!this.messageBox.input?.showInput || (this.messageBox.input.showInput && this.formGroup.valid)) {\r\n this.action = 'confirm';\r\n this.hideBox();\r\n }\r\n }\r\n\r\n moveDone($event: { toState: string }) {\r\n if ($event.toState === 'void') {\r\n this.messageBox.input?.callback && this.messageBox.input.callback(this.action, this.getInputValue());\r\n this.messageBox.ref?.overlayRef?.dispose();\r\n }\r\n }\r\n\r\n getInputValue() {\r\n return this.formGroup.controls['inputValue']?.value;\r\n }\r\n\r\n createFormGroup() {\r\n this.formGroup.addControl(\r\n 'inputValue',\r\n new FormControl(this.messageBox.input?.inputValue, [\r\n Validators.required,\r\n Validators.pattern(this.messageBox.input?.inputPattern as RegExp)\r\n ])\r\n );\r\n }\r\n}\r\n","<div\r\n class=\"x-message-box\"\r\n *ngIf=\"!messageBox?.input?.hide\"\r\n [@x-move-box-animation]=\"messageBox.input?.placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n>\r\n <x-alert\r\n (close)=\"onClose()\"\r\n [title]=\"messageBox.input?.title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"messageBox.input?.type\"\r\n [effect]=\"messageBox.input?.effect\"\r\n [hideClose]=\"messageBox.input?.hideClose\"\r\n [closeText]=\"messageBox.input?.closeText\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n <ng-template #contentTpl let-iconTpl=\"$iconTpl\">\r\n <div class=\"x-message-box-inner\">\r\n <div class=\"x-message-box-content\">\r\n <ng-container *ngIf=\"!messageBox.input?.showInput; else inputTpl\">\r\n <ng-container *ngIf=\"messageBox.input?.showIcon\">\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *xOutlet=\"messageBox.input?.content\">\r\n {{ messageBox.input?.content }}\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #inputTpl>\r\n <x-input\r\n [ngModel]=\"messageBox.input?.inputValue\"\r\n [type]=\"messageBox.input?.inputType\"\r\n [label]=\"getLabel\"\r\n [placeholder]=\"messageBox.input?.inputPlaceholder\"\r\n [pattern]=\"getPattern\"\r\n [message]=\"messageBox.input?.inputInvalidMessage\"\r\n ></x-input>\r\n </ng-template>\r\n </div>\r\n <x-buttons space=\"1\">\r\n <x-button *ngIf=\"messageBox.input?.showCancel\" (click)=\"onCancel()\">{{ messageBox.input?.cancelText }}</x-button>\r\n <x-button type=\"primary\" (click)=\"onConfirm()\" [disabled]=\"formGroup?.invalid\">{{ messageBox.input?.confirmText }}</x-button>\r\n </x-buttons>\r\n </div>\r\n </ng-template>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { XTemplate, XIsXTemplate, fillDefault, XIsString } from '@ng-nest/ui/core';\r\nimport { XMessageBoxOption, XMessageBoxOverlayRef, XMessageBoxRef, XMessageBoxPortal } from './message-box.property';\r\nimport { XMessageBoxComponent } from './message-box.component';\r\nimport { XPortalService } from '@ng-nest/ui/portal';\r\nimport { XI18nService } from '@ng-nest/ui/i18n';\r\n\r\n@Injectable()\r\nexport class XMessageBoxService {\r\n default: XMessageBoxOption = {\r\n type: 'info',\r\n width: '20rem',\r\n placement: 'center',\r\n offset: '2rem',\r\n effect: 'white',\r\n duration: 3000,\r\n showIcon: false,\r\n showInput: false,\r\n backdropClose: false,\r\n cancelText: '取消',\r\n confirmText: '确认',\r\n inputPlaceholder: '',\r\n hide: false\r\n };\r\n\r\n constructor(public portal: XPortalService, public i18n: XI18nService) {}\r\n\r\n alert(option: XTemplate | XMessageBoxOption): XMessageBoxRef {\r\n return this.createMessageBox(option, { showIcon: false, showCancel: false, showInput: false });\r\n }\r\n\r\n confirm(option: XTemplate | XMessageBoxOption): XMessageBoxRef {\r\n return this.createMessageBox(option, { showIcon: true, showCancel: true, showInput: false });\r\n }\r\n\r\n prompt(option: XTemplate | XMessageBoxOption): XMessageBoxRef {\r\n return this.createMessageBox(option, { showIcon: false, showCancel: true, showInput: true });\r\n }\r\n\r\n create(option: XMessageBoxOption): XMessageBoxOverlayRef {\r\n const offset = XIsString(option.offset) ? [option.offset as string] : (option.offset as string[]);\r\n return this.portal.attach({\r\n content: XMessageBoxComponent,\r\n overlayConfig: {\r\n panelClass: XMessageBoxPortal,\r\n hasBackdrop: true,\r\n positionStrategy: this.portal.setPlace(option.placement, option.width, option.height, ...offset)\r\n }\r\n });\r\n }\r\n\r\n private createMessageBox(option: XTemplate | XMessageBoxOption, def: XMessageBoxOption): XMessageBoxRef {\r\n let opt: XMessageBoxOption;\r\n if (XIsXTemplate(option)) {\r\n opt = { title: option as XTemplate };\r\n } else {\r\n opt = option as XMessageBoxOption;\r\n }\r\n this.setLocal();\r\n fillDefault(opt, Object.assign(this.default, def));\r\n return this.createMessageBoxPlacement(opt);\r\n }\r\n\r\n private createMessageBoxPlacement(option: XMessageBoxOption): XMessageBoxRef {\r\n let result = { ref: this.create(option), input: option };\r\n (result.ref?.componentRef?.instance as any).messageBox = result;\r\n if (option.backdropClose) result.ref?.overlayRef?.backdropClick().subscribe(() => result.ref?.componentRef?.instance.onClose());\r\n return result;\r\n }\r\n\r\n private setLocal() {\r\n const messageBoxLocale = this.i18n.getLocale().messageBox;\r\n this.default = { ...this.default, ...messageBoxLocale };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XMessageBoxComponent } from './message-box.component';\r\nimport { XAlertModule } from '@ng-nest/ui/alert';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XMessageBoxService } from './message-box.service';\r\n\r\n@NgModule({\r\n declarations: [XMessageBoxComponent],\r\n exports: [XMessageBoxComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XPortalModule,\r\n XInputModule,\r\n XButtonModule,\r\n XIconModule,\r\n XAlertModule,\r\n XOutletModule\r\n ],\r\n providers: [XMessageBoxService]\r\n})\r\nexport class XMessageBoxModule {}\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-message-box.js","sources":["../../../../lib/ng-nest/ui/message-box/message-box.property.ts","../../../../lib/ng-nest/ui/message-box/message-box.component.ts","../../../../lib/ng-nest/ui/message-box/message-box.component.html","../../../../lib/ng-nest/ui/message-box/message-box.service.ts","../../../../lib/ng-nest/ui/message-box/message-box.module.ts","../../../../lib/ng-nest/ui/message-box/ng-nest-ui-message-box.ts"],"sourcesContent":["import { XStatus, XPlace } from '@ng-nest/ui/core';\r\nimport { XAlertOption } from '@ng-nest/ui/alert';\r\nimport { XMessageBoxComponent } from './message-box.component';\r\nimport { XPortalOverlayRef } from '@ng-nest/ui/portal';\r\nimport { XInputType } from '@ng-nest/ui/input';\r\n\r\n/**\r\n * MessageBox\r\n * @selector x-message-box\r\n * @decorator component\r\n */\r\nexport const XMessageBoxPrefix = 'x-message-box';\r\n\r\nexport const XMessageBoxPortal = 'x-message-box-portal';\r\n\r\n/**\r\n * MessageBox Option\r\n */\r\nexport interface XMessageBoxOption extends XAlertOption {\r\n /**\r\n * @zh_CN 方位,九宫格\r\n * @en_US Direction, nine grid\r\n * @default 'top'\r\n */\r\n placement?: XPlace;\r\n /**\r\n * @zh_CN 偏移距离\r\n * @en_US Offset distance\r\n * @default '2rem'\r\n */\r\n offset?: string | string[];\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n * @default 'info'\r\n */\r\n type?: XMessageBoxType;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n * @default '16rem'\r\n */\r\n width?: string;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US Height\r\n */\r\n height?: string;\r\n /**\r\n * @zh_CN 隐藏关闭按钮\r\n * @en_US Hide close button\r\n * @default true\r\n */\r\n hideClose?: boolean;\r\n /**\r\n * @zh_CN 显示图标\r\n * @en_US Show icon\r\n * @default true\r\n */\r\n showIcon?: boolean;\r\n /**\r\n * @zh_CN 显示取消按钮\r\n * @en_US Show cancel button\r\n */\r\n showCancel?: boolean;\r\n /**\r\n * @zh_CN 关闭事件\r\n * @en_US Close event\r\n */\r\n callback?: XMessageBoxCallback;\r\n /**\r\n * @zh_CN 点击遮罩关闭\r\n * @en_US Click the mask to close\r\n * @default false\r\n */\r\n backdropClose?: boolean;\r\n /**\r\n * @zh_CN 确认按钮文字\r\n * @en_US Confirm button text\r\n * @default '确定'\r\n */\r\n confirmText?: string;\r\n /**\r\n * @zh_CN 取消按钮文字\r\n * @en_US Cancel button text\r\n * @default '取消'\r\n */\r\n cancelText?: string;\r\n /**\r\n * @zh_CN 是否显示输入框\r\n * @en_US Whether to show the input box\r\n */\r\n showInput?: boolean;\r\n /**\r\n * @zh_CN 匹配规则\r\n * @en_US Matching rules\r\n */\r\n inputPattern?: RegExp | RegExp[];\r\n /**\r\n * @zh_CN 匹配失败的信息提示\r\n * @en_US Information prompt for matching failure\r\n */\r\n inputInvalidMessage?: string;\r\n /**\r\n * @zh_CN 输入框的占位符\r\n * @en_US Placeholder for input box\r\n */\r\n inputPlaceholder?: string;\r\n /**\r\n * @zh_CN 输入框的类型\r\n * @en_US Type of input box\r\n */\r\n inputType?: XInputType;\r\n /**\r\n * @zh_CN 输入框的值\r\n * @en_US Value of input box\r\n */\r\n inputValue?: string;\r\n /**\r\n * @zh_CN 输入框的验证函数\r\n * @en_US Validation function of input box\r\n */\r\n inputValidator?: Function;\r\n}\r\n\r\nexport interface XMessageBoxCallback {\r\n (action: XMessageBoxAction, message?: string): void;\r\n}\r\n\r\nexport type XMessageBoxAction = 'confirm' | 'cancel' | 'close';\r\n\r\n/**\r\n * @zh_CN 创建的消息对象\r\n * @en_US Message object created\r\n */\r\nexport interface XMessageBoxOverlayRef extends XPortalOverlayRef<XMessageBoxComponent> {}\r\n\r\nexport interface XMessageBoxRef {\r\n ref?: XMessageBoxOverlayRef;\r\n input?: XMessageBoxOption;\r\n}\r\n\r\n/**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\nexport type XMessageBoxType = XStatus;\r\n","import { Component, ViewEncapsulation, Renderer2, ElementRef, ChangeDetectorRef, ChangeDetectionStrategy, OnInit } from '@angular/core';\r\nimport { XMoveBoxAnimation } from '@ng-nest/ui/core';\r\nimport { XMessageBoxPrefix, XMessageBoxRef, XMessageBoxAction, XMessageBoxOption } from './message-box.property';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: `${XMessageBoxPrefix}`,\r\n templateUrl: './message-box.component.html',\r\n styleUrls: ['./message-box.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XMoveBoxAnimation]\r\n})\r\nexport class XMessageBoxComponent implements OnInit {\r\n messageBox: XMessageBoxRef = {};\r\n action: XMessageBoxAction = 'close';\r\n formGroup: FormGroup = new FormGroup({});\r\n constructor(public renderer: Renderer2, public elementRef: ElementRef, public cdr: ChangeDetectorRef) {}\r\n\r\n get msgInput(): XMessageBoxOption {\r\n return this.messageBox.input as XMessageBoxOption;\r\n }\r\n\r\n get getLabel() {\r\n return this.msgInput.content as string;\r\n }\r\n\r\n get getPattern() {\r\n return this.msgInput.inputPattern as RegExp;\r\n }\r\n\r\n ngOnInit() {\r\n this.msgInput.showInput && this.createFormGroup();\r\n }\r\n\r\n onClose() {\r\n this.action = 'close';\r\n this.hideBox();\r\n }\r\n\r\n onCancel() {\r\n this.action = 'cancel';\r\n this.hideBox();\r\n }\r\n\r\n hideBox() {\r\n if (this.msgInput.hide && this.msgInput.hide !== true) {\r\n this.msgInput.hide = true;\r\n }\r\n this.messageBox.ref?.overlayRef?.detach();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onConfirm() {\r\n if (!this.msgInput.showInput || (this.msgInput.showInput && this.formGroup.valid)) {\r\n this.action = 'confirm';\r\n this.hideBox();\r\n }\r\n }\r\n\r\n moveDone($event: { toState: string }) {\r\n if ($event.toState === 'void') {\r\n this.msgInput.callback && this.msgInput.callback(this.action, this.getInputValue());\r\n\r\n this.messageBox.ref?.overlayRef?.dispose();\r\n }\r\n }\r\n\r\n getInputValue() {\r\n return this.formGroup.controls['inputValue']?.value;\r\n }\r\n\r\n createFormGroup() {\r\n this.formGroup.addControl(\r\n 'inputValue',\r\n new FormControl(this.msgInput.inputValue, [Validators.required, Validators.pattern(this.msgInput.inputPattern as RegExp)])\r\n );\r\n }\r\n}\r\n","<div\r\n class=\"x-message-box\"\r\n *ngIf=\"!messageBox?.input?.hide\"\r\n [@x-move-box-animation]=\"messageBox.input?.placement\"\r\n (@x-move-box-animation.done)=\"moveDone($event)\"\r\n>\r\n <x-alert\r\n (close)=\"onClose()\"\r\n [title]=\"messageBox.input?.title\"\r\n [content]=\"contentTpl\"\r\n [type]=\"messageBox.input?.type\"\r\n [effect]=\"messageBox.input?.effect\"\r\n [hideClose]=\"messageBox.input?.hideClose\"\r\n [closeText]=\"messageBox.input?.closeText\"\r\n showIcon=\"false\"\r\n duration=\"0\"\r\n manual\r\n disabledAnimation\r\n ></x-alert>\r\n <ng-template #contentTpl let-iconTpl=\"$iconTpl\">\r\n <div class=\"x-message-box-inner\">\r\n <div class=\"x-message-box-content\">\r\n <ng-container *ngIf=\"!messageBox.input?.showInput; else inputTpl\">\r\n <ng-container *ngIf=\"messageBox.input?.showIcon\">\r\n <ng-container *ngTemplateOutlet=\"iconTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *xOutlet=\"messageBox.input?.content\">\r\n {{ messageBox.input?.content }}\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #inputTpl>\r\n <form [formGroup]=\"formGroup\">\r\n <x-input\r\n formControlName=\"inputValue\"\r\n [type]=\"messageBox.input?.inputType\"\r\n [label]=\"getLabel\"\r\n [placeholder]=\"messageBox.input?.inputPlaceholder\"\r\n [pattern]=\"getPattern\"\r\n [message]=\"messageBox.input?.inputInvalidMessage\"\r\n ></x-input>\r\n </form>\r\n </ng-template>\r\n </div>\r\n <x-buttons space=\"1\">\r\n <x-button *ngIf=\"messageBox.input?.showCancel\" (click)=\"onCancel()\">{{ messageBox.input?.cancelText }}</x-button>\r\n <x-button type=\"primary\" (click)=\"onConfirm()\" [disabled]=\"formGroup?.invalid\">{{ messageBox.input?.confirmText }}</x-button>\r\n </x-buttons>\r\n </div>\r\n </ng-template>\r\n</div>\r\n","import { ComponentRef, Injectable } from '@angular/core';\r\nimport { XTemplate, XIsXTemplate, fillDefault, XIsString } from '@ng-nest/ui/core';\r\nimport { XMessageBoxOption, XMessageBoxOverlayRef, XMessageBoxRef, XMessageBoxPortal } from './message-box.property';\r\nimport { XMessageBoxComponent } from './message-box.component';\r\nimport { XPortalService } from '@ng-nest/ui/portal';\r\nimport { XI18nService } from '@ng-nest/ui/i18n';\r\n\r\n@Injectable()\r\nexport class XMessageBoxService {\r\n default: XMessageBoxOption = {\r\n type: 'info',\r\n width: '20rem',\r\n placement: 'center',\r\n offset: '2rem',\r\n effect: 'white',\r\n duration: 3000,\r\n showIcon: false,\r\n showInput: false,\r\n backdropClose: false,\r\n cancelText: '取消',\r\n confirmText: '确认',\r\n inputPlaceholder: '',\r\n hide: false\r\n };\r\n\r\n constructor(public portal: XPortalService, public i18n: XI18nService) {}\r\n\r\n alert(option: XTemplate | XMessageBoxOption): XMessageBoxRef {\r\n return this.createMessageBox(option, { showIcon: false, showCancel: false, showInput: false });\r\n }\r\n\r\n confirm(option: XTemplate | XMessageBoxOption): XMessageBoxRef {\r\n return this.createMessageBox(option, { showIcon: true, showCancel: true, showInput: false });\r\n }\r\n\r\n prompt(option: XTemplate | XMessageBoxOption): XMessageBoxRef {\r\n return this.createMessageBox(option, { showIcon: false, showCancel: true, showInput: true });\r\n }\r\n\r\n create(option: XMessageBoxOption): XMessageBoxOverlayRef {\r\n const offset = XIsString(option.offset) ? [option.offset as string] : (option.offset as string[]);\r\n return this.portal.attach({\r\n content: XMessageBoxComponent,\r\n overlayConfig: {\r\n panelClass: XMessageBoxPortal,\r\n hasBackdrop: true,\r\n positionStrategy: this.portal.setPlace(option.placement, option.width, option.height, ...offset)\r\n }\r\n });\r\n }\r\n\r\n private createMessageBox(option: XTemplate | XMessageBoxOption, def: XMessageBoxOption): XMessageBoxRef {\r\n let opt: XMessageBoxOption;\r\n if (XIsXTemplate(option)) {\r\n opt = { title: option as XTemplate };\r\n } else {\r\n opt = option as XMessageBoxOption;\r\n }\r\n this.setLocal();\r\n fillDefault(opt, Object.assign(this.default, def));\r\n return this.createMessageBoxPlacement(opt);\r\n }\r\n\r\n private createMessageBoxPlacement(option: XMessageBoxOption): XMessageBoxRef {\r\n let result = { ref: this.create(option), input: option };\r\n const { overlayRef, componentRef } = result.ref;\r\n const { instance } = componentRef as ComponentRef<XMessageBoxComponent>;\r\n instance.messageBox = result;\r\n if (option.backdropClose && overlayRef) {\r\n overlayRef.backdropClick().subscribe(() => instance.onClose());\r\n }\r\n return result;\r\n }\r\n\r\n private setLocal() {\r\n const messageBoxLocale = this.i18n.getLocale().messageBox;\r\n this.default = { ...this.default, ...messageBoxLocale };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XMessageBoxComponent } from './message-box.component';\r\nimport { XAlertModule } from '@ng-nest/ui/alert';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XMessageBoxService } from './message-box.service';\r\n\r\n@NgModule({\r\n declarations: [XMessageBoxComponent],\r\n exports: [XMessageBoxComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n XPortalModule,\r\n XInputModule,\r\n XButtonModule,\r\n XIconModule,\r\n XAlertModule,\r\n XOutletModule\r\n ],\r\n providers: [XMessageBoxService]\r\n})\r\nexport class XMessageBoxModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}