@ng-nest/ui 17.0.4 → 17.0.5

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 (419) hide show
  1. package/esm2022/affix/affix.component.mjs +3 -3
  2. package/esm2022/affix/affix.module.mjs +4 -4
  3. package/esm2022/affix/affix.property.mjs +3 -3
  4. package/esm2022/alert/alert.component.mjs +5 -5
  5. package/esm2022/alert/alert.module.mjs +4 -4
  6. package/esm2022/alert/alert.property.mjs +3 -3
  7. package/esm2022/anchor/anchor-inner.component.mjs +3 -3
  8. package/esm2022/anchor/anchor.component.mjs +3 -3
  9. package/esm2022/anchor/anchor.module.mjs +4 -4
  10. package/esm2022/anchor/anchor.property.mjs +6 -6
  11. package/esm2022/api/api.component.mjs +3 -3
  12. package/esm2022/api/api.module.mjs +4 -4
  13. package/esm2022/auto-complete/auto-complete-portal.component.mjs +3 -3
  14. package/esm2022/auto-complete/auto-complete.component.mjs +3 -3
  15. package/esm2022/auto-complete/auto-complete.module.mjs +4 -4
  16. package/esm2022/auto-complete/auto-complete.property.mjs +3 -3
  17. package/esm2022/avatar/avatar-group.component.mjs +3 -3
  18. package/esm2022/avatar/avatar.component.mjs +3 -3
  19. package/esm2022/avatar/avatar.module.mjs +4 -4
  20. package/esm2022/avatar/avatar.property.mjs +6 -6
  21. package/esm2022/back-top/back-top.component.mjs +3 -3
  22. package/esm2022/back-top/back-top.module.mjs +4 -4
  23. package/esm2022/back-top/back-top.property.mjs +3 -3
  24. package/esm2022/badge/badge.component.mjs +3 -3
  25. package/esm2022/badge/badge.module.mjs +4 -4
  26. package/esm2022/badge/badge.property.mjs +3 -3
  27. package/esm2022/base-form/base-form.component.mjs +3 -3
  28. package/esm2022/base-form/base-form.module.mjs +4 -4
  29. package/esm2022/base-form/base-form.property.mjs +3 -3
  30. package/esm2022/border/border.component.mjs +3 -3
  31. package/esm2022/border/border.module.mjs +4 -4
  32. package/esm2022/button/button.component.mjs +5 -4
  33. package/esm2022/button/button.module.mjs +4 -4
  34. package/esm2022/button/button.property.mjs +6 -6
  35. package/esm2022/button/buttons.component.mjs +3 -3
  36. package/esm2022/calendar/calendar.component.mjs +3 -3
  37. package/esm2022/calendar/calendar.module.mjs +4 -4
  38. package/esm2022/calendar/calendar.property.mjs +3 -3
  39. package/esm2022/card/card.component.mjs +3 -3
  40. package/esm2022/card/card.module.mjs +4 -4
  41. package/esm2022/card/card.property.mjs +3 -3
  42. package/esm2022/carousel/carousel-panel.component.mjs +3 -3
  43. package/esm2022/carousel/carousel.component.mjs +3 -3
  44. package/esm2022/carousel/carousel.module.mjs +4 -4
  45. package/esm2022/carousel/carousel.property.mjs +6 -6
  46. package/esm2022/cascade/cascade-portal.component.mjs +3 -3
  47. package/esm2022/cascade/cascade.component.mjs +3 -3
  48. package/esm2022/cascade/cascade.module.mjs +4 -4
  49. package/esm2022/cascade/cascade.property.mjs +3 -3
  50. package/esm2022/checkbox/checkbox.component.mjs +3 -3
  51. package/esm2022/checkbox/checkbox.module.mjs +4 -4
  52. package/esm2022/checkbox/checkbox.property.mjs +3 -3
  53. package/esm2022/collapse/collapse-panel.component.mjs +3 -3
  54. package/esm2022/collapse/collapse.component.mjs +3 -3
  55. package/esm2022/collapse/collapse.module.mjs +4 -4
  56. package/esm2022/collapse/collapse.property.mjs +6 -6
  57. package/esm2022/color/color.component.mjs +3 -3
  58. package/esm2022/color/color.module.mjs +4 -4
  59. package/esm2022/color/color.property.mjs +3 -3
  60. package/esm2022/color-picker/color-picker-portal.component.mjs +5 -5
  61. package/esm2022/color-picker/color-picker.component.mjs +3 -3
  62. package/esm2022/color-picker/color-picker.module.mjs +4 -4
  63. package/esm2022/color-picker/color-picker.property.mjs +3 -3
  64. package/esm2022/comment/comment-reply.component.mjs +3 -3
  65. package/esm2022/comment/comment.component.mjs +3 -3
  66. package/esm2022/comment/comment.module.mjs +4 -4
  67. package/esm2022/comment/comment.property.mjs +6 -6
  68. package/esm2022/container/aside.component.mjs +3 -3
  69. package/esm2022/container/container.component.mjs +3 -3
  70. package/esm2022/container/container.module.mjs +4 -4
  71. package/esm2022/container/container.property.mjs +12 -12
  72. package/esm2022/container/footer.component.mjs +3 -3
  73. package/esm2022/container/header.component.mjs +3 -3
  74. package/esm2022/container/main.component.mjs +3 -3
  75. package/esm2022/core/config/config.service.mjs +3 -3
  76. package/esm2022/core/services/http.service.mjs +3 -3
  77. package/esm2022/core/services/preloading-strategy.service.mjs +3 -3
  78. package/esm2022/core/services/storage.service.mjs +3 -3
  79. package/esm2022/core/theme/theme.service.mjs +3 -3
  80. package/esm2022/crumb/crumb.component.mjs +3 -3
  81. package/esm2022/crumb/crumb.module.mjs +4 -4
  82. package/esm2022/crumb/crumb.property.mjs +3 -3
  83. package/esm2022/date-picker/date-picker-portal.component.mjs +3 -3
  84. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  85. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  86. package/esm2022/date-picker/date-picker.property.mjs +18 -18
  87. package/esm2022/date-picker/date-quarter.pipe.mjs +3 -3
  88. package/esm2022/date-picker/date-range-portal.component.mjs +3 -3
  89. package/esm2022/date-picker/date-range.component.mjs +3 -3
  90. package/esm2022/date-picker/picker-date.component.mjs +3 -3
  91. package/esm2022/date-picker/picker-month.component.mjs +3 -3
  92. package/esm2022/date-picker/picker-quarter.component.mjs +3 -3
  93. package/esm2022/date-picker/picker-year.component.mjs +3 -3
  94. package/esm2022/description/description-item.component.mjs +3 -3
  95. package/esm2022/description/description.component.mjs +3 -3
  96. package/esm2022/description/description.module.mjs +4 -4
  97. package/esm2022/description/description.property.mjs +6 -6
  98. package/esm2022/dialog/dialog-container.component.mjs +5 -5
  99. package/esm2022/dialog/dialog-portal.component.mjs +3 -3
  100. package/esm2022/dialog/dialog-portal.directives.mjs +18 -18
  101. package/esm2022/dialog/dialog.component.mjs +5 -5
  102. package/esm2022/dialog/dialog.module.mjs +4 -4
  103. package/esm2022/dialog/dialog.property.mjs +6 -6
  104. package/esm2022/dialog/dialog.service.mjs +3 -3
  105. package/esm2022/doc/doc.component.mjs +3 -3
  106. package/esm2022/doc/doc.module.mjs +4 -4
  107. package/esm2022/drag/drag.directive.mjs +3 -3
  108. package/esm2022/drag/drag.module.mjs +4 -4
  109. package/esm2022/drag/drag.property.mjs +3 -3
  110. package/esm2022/drawer/drawer-container.component.mjs +5 -5
  111. package/esm2022/drawer/drawer-portal.component.mjs +3 -3
  112. package/esm2022/drawer/drawer-portal.directives.mjs +9 -9
  113. package/esm2022/drawer/drawer.component.mjs +3 -3
  114. package/esm2022/drawer/drawer.module.mjs +4 -4
  115. package/esm2022/drawer/drawer.property.mjs +6 -6
  116. package/esm2022/drawer/drawer.service.mjs +3 -3
  117. package/esm2022/dropdown/dropdown-portal.component.mjs +3 -3
  118. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  119. package/esm2022/dropdown/dropdown.module.mjs +4 -4
  120. package/esm2022/dropdown/dropdown.property.mjs +3 -3
  121. package/esm2022/empty/empty.component.mjs +3 -3
  122. package/esm2022/empty/empty.module.mjs +4 -4
  123. package/esm2022/empty/empty.property.mjs +3 -3
  124. package/esm2022/examples/examples.component.mjs +4 -4
  125. package/esm2022/examples/examples.module.mjs +4 -4
  126. package/esm2022/find/find.component.mjs +5 -5
  127. package/esm2022/find/find.module.mjs +4 -4
  128. package/esm2022/find/find.property.mjs +3 -3
  129. package/esm2022/form/control.component.mjs +3 -3
  130. package/esm2022/form/form.component.mjs +3 -3
  131. package/esm2022/form/form.module.mjs +4 -4
  132. package/esm2022/form/form.property.mjs +6 -6
  133. package/esm2022/highlight/highlight.component.mjs +3 -3
  134. package/esm2022/highlight/highlight.module.mjs +4 -4
  135. package/esm2022/highlight/highlight.property.mjs +3 -3
  136. package/esm2022/i18n/i18n.directive.mjs +3 -3
  137. package/esm2022/i18n/i18n.module.mjs +4 -4
  138. package/esm2022/i18n/i18n.pipe.mjs +3 -3
  139. package/esm2022/i18n/i18n.service.mjs +3 -3
  140. package/esm2022/icon/icon.component.mjs +3 -3
  141. package/esm2022/icon/icon.module.mjs +4 -4
  142. package/esm2022/icon/icon.property.mjs +3 -3
  143. package/esm2022/icon/icon.service.mjs +3 -3
  144. package/esm2022/image/image-group.component.mjs +3 -3
  145. package/esm2022/image/image-preview.component.mjs +3 -3
  146. package/esm2022/image/image.component.mjs +5 -5
  147. package/esm2022/image/image.module.mjs +4 -4
  148. package/esm2022/image/image.property.mjs +6 -6
  149. package/esm2022/inner/inner.component.mjs +3 -3
  150. package/esm2022/inner/inner.module.mjs +4 -4
  151. package/esm2022/inner/inner.property.mjs +3 -3
  152. package/esm2022/input/input-group.component.mjs +3 -3
  153. package/esm2022/input/input.component.mjs +5 -5
  154. package/esm2022/input/input.module.mjs +4 -4
  155. package/esm2022/input/input.property.mjs +6 -6
  156. package/esm2022/input-number/input-number.component.mjs +16 -11
  157. package/esm2022/input-number/input-number.module.mjs +4 -4
  158. package/esm2022/input-number/input-number.property.mjs +3 -3
  159. package/esm2022/keyword/keyword.directive.mjs +3 -3
  160. package/esm2022/keyword/keyword.module.mjs +4 -4
  161. package/esm2022/keyword/keyword.property.mjs +3 -3
  162. package/esm2022/layout/col.component.mjs +3 -3
  163. package/esm2022/layout/layout.module.mjs +4 -4
  164. package/esm2022/layout/layout.property.mjs +6 -6
  165. package/esm2022/layout/row.component.mjs +3 -3
  166. package/esm2022/link/link.component.mjs +3 -3
  167. package/esm2022/link/link.module.mjs +4 -4
  168. package/esm2022/link/link.property.mjs +3 -3
  169. package/esm2022/list/list-drop-group.directive.mjs +3 -3
  170. package/esm2022/list/list-option.component.mjs +3 -3
  171. package/esm2022/list/list.component.mjs +3 -3
  172. package/esm2022/list/list.module.mjs +4 -4
  173. package/esm2022/list/list.property.mjs +6 -6
  174. package/esm2022/loading/loading.component.mjs +3 -3
  175. package/esm2022/loading/loading.module.mjs +4 -4
  176. package/esm2022/loading/loading.property.mjs +3 -3
  177. package/esm2022/menu/menu-node.component.mjs +3 -3
  178. package/esm2022/menu/menu.component.mjs +5 -5
  179. package/esm2022/menu/menu.module.mjs +4 -4
  180. package/esm2022/menu/menu.property.mjs +6 -6
  181. package/esm2022/message/message.component.mjs +3 -3
  182. package/esm2022/message/message.module.mjs +4 -4
  183. package/esm2022/message/message.property.mjs +1 -1
  184. package/esm2022/message/message.service.mjs +4 -5
  185. package/esm2022/message-box/message-box.component.mjs +7 -5
  186. package/esm2022/message-box/message-box.module.mjs +4 -4
  187. package/esm2022/message-box/message-box.service.mjs +3 -3
  188. package/esm2022/notification/notification.component.mjs +3 -3
  189. package/esm2022/notification/notification.module.mjs +4 -4
  190. package/esm2022/notification/notification.service.mjs +3 -3
  191. package/esm2022/outlet/outlet.directive.mjs +3 -3
  192. package/esm2022/outlet/outlet.module.mjs +4 -4
  193. package/esm2022/page-header/page-header.component.mjs +3 -3
  194. package/esm2022/page-header/page-header.module.mjs +4 -4
  195. package/esm2022/page-header/page-header.property.mjs +3 -3
  196. package/esm2022/pagination/pagination.component.mjs +3 -3
  197. package/esm2022/pagination/pagination.module.mjs +4 -4
  198. package/esm2022/pagination/pagination.property.mjs +3 -3
  199. package/esm2022/pattern/pattern.component.mjs +3 -3
  200. package/esm2022/pattern/pattern.module.mjs +4 -4
  201. package/esm2022/popconfirm/popconfirm.component.mjs +3 -3
  202. package/esm2022/popconfirm/popconfirm.module.mjs +4 -4
  203. package/esm2022/popconfirm/popconfirm.property.mjs +3 -3
  204. package/esm2022/popover/popover-portal.component.mjs +3 -3
  205. package/esm2022/popover/popover.directive.mjs +3 -3
  206. package/esm2022/popover/popover.module.mjs +4 -4
  207. package/esm2022/popover/popover.property.mjs +3 -3
  208. package/esm2022/portal/portal.module.mjs +4 -4
  209. package/esm2022/portal/portal.service.mjs +3 -3
  210. package/esm2022/progress/progress.component.mjs +3 -3
  211. package/esm2022/progress/progress.module.mjs +4 -4
  212. package/esm2022/progress/progress.property.mjs +3 -3
  213. package/esm2022/radio/radio.component.mjs +3 -3
  214. package/esm2022/radio/radio.module.mjs +4 -4
  215. package/esm2022/radio/radio.property.mjs +3 -3
  216. package/esm2022/rate/rate.component.mjs +3 -3
  217. package/esm2022/rate/rate.module.mjs +4 -4
  218. package/esm2022/rate/rate.property.mjs +3 -3
  219. package/esm2022/resizable/resizable.directive.mjs +3 -3
  220. package/esm2022/resizable/resizable.module.mjs +4 -4
  221. package/esm2022/resizable/resizable.property.mjs +3 -3
  222. package/esm2022/result/result.component.mjs +3 -3
  223. package/esm2022/result/result.module.mjs +4 -4
  224. package/esm2022/result/result.property.mjs +3 -3
  225. package/esm2022/ripple/ripple.directive.mjs +3 -3
  226. package/esm2022/ripple/ripple.module.mjs +4 -4
  227. package/esm2022/ripple/ripple.property.mjs +3 -3
  228. package/esm2022/select/select-portal.component.mjs +3 -3
  229. package/esm2022/select/select.component.mjs +3 -3
  230. package/esm2022/select/select.module.mjs +4 -4
  231. package/esm2022/select/select.property.mjs +3 -3
  232. package/esm2022/skeleton/skeleton.component.mjs +3 -3
  233. package/esm2022/skeleton/skeleton.module.mjs +4 -4
  234. package/esm2022/skeleton/skeleton.property.mjs +3 -3
  235. package/esm2022/slider/slider.component.mjs +3 -3
  236. package/esm2022/slider/slider.module.mjs +4 -4
  237. package/esm2022/slider/slider.property.mjs +3 -3
  238. package/esm2022/slider-select/slider-select.component.mjs +3 -3
  239. package/esm2022/slider-select/slider-select.module.mjs +4 -4
  240. package/esm2022/slider-select/slider-select.property.mjs +3 -3
  241. package/esm2022/statistic/countdown.component.mjs +3 -3
  242. package/esm2022/statistic/statistic.component.mjs +3 -3
  243. package/esm2022/statistic/statistic.module.mjs +4 -4
  244. package/esm2022/statistic/statistic.property.mjs +6 -6
  245. package/esm2022/steps/steps.component.mjs +3 -3
  246. package/esm2022/steps/steps.module.mjs +4 -4
  247. package/esm2022/steps/steps.property.mjs +3 -3
  248. package/esm2022/switch/switch.component.mjs +3 -3
  249. package/esm2022/switch/switch.module.mjs +4 -4
  250. package/esm2022/switch/switch.property.mjs +3 -3
  251. package/esm2022/table/table-body.component.mjs +8 -6
  252. package/esm2022/table/table-foot.component.mjs +3 -3
  253. package/esm2022/table/table-head.component.mjs +3 -3
  254. package/esm2022/table/table.component.mjs +16 -6
  255. package/esm2022/table/table.module.mjs +4 -4
  256. package/esm2022/table/table.property.mjs +12 -12
  257. package/esm2022/tabs/tab-content.component.mjs +3 -3
  258. package/esm2022/tabs/tab-link.directive.mjs +6 -6
  259. package/esm2022/tabs/tab.component.mjs +3 -3
  260. package/esm2022/tabs/tabs.component.mjs +5 -5
  261. package/esm2022/tabs/tabs.module.mjs +4 -4
  262. package/esm2022/tabs/tabs.property.mjs +6 -6
  263. package/esm2022/tag/tag.component.mjs +3 -3
  264. package/esm2022/tag/tag.module.mjs +4 -4
  265. package/esm2022/tag/tag.property.mjs +3 -3
  266. package/esm2022/text-retract/text-retract.component.mjs +3 -3
  267. package/esm2022/text-retract/text-retract.module.mjs +4 -4
  268. package/esm2022/text-retract/text-retract.property.mjs +3 -3
  269. package/esm2022/textarea/textarea.component.mjs +3 -3
  270. package/esm2022/textarea/textarea.module.mjs +4 -4
  271. package/esm2022/textarea/textarea.property.mjs +3 -3
  272. package/esm2022/theme/theme.component.mjs +3 -3
  273. package/esm2022/theme/theme.module.mjs +4 -4
  274. package/esm2022/theme/theme.property.mjs +3 -3
  275. package/esm2022/time-ago/time-ago.module.mjs +4 -4
  276. package/esm2022/time-ago/time-ago.pipe.mjs +3 -3
  277. package/esm2022/time-picker/time-picker-frame.component.mjs +3 -3
  278. package/esm2022/time-picker/time-picker-portal.component.mjs +3 -3
  279. package/esm2022/time-picker/time-picker.component.mjs +3 -3
  280. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  281. package/esm2022/time-picker/time-picker.property.mjs +3 -3
  282. package/esm2022/time-range/time-range.module.mjs +4 -4
  283. package/esm2022/time-range/time-range.pipe.mjs +3 -3
  284. package/esm2022/timeline/timeline.component.mjs +3 -3
  285. package/esm2022/timeline/timeline.module.mjs +4 -4
  286. package/esm2022/timeline/timeline.property.mjs +3 -3
  287. package/esm2022/tooltip/tooltip-portal.component.mjs +3 -3
  288. package/esm2022/tooltip/tooltip.directive.mjs +3 -3
  289. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  290. package/esm2022/tooltip/tooltip.property.mjs +3 -3
  291. package/esm2022/transfer/transfer.component.mjs +3 -3
  292. package/esm2022/transfer/transfer.module.mjs +4 -4
  293. package/esm2022/transfer/transfer.property.mjs +3 -3
  294. package/esm2022/tree/tree-node.component.mjs +3 -3
  295. package/esm2022/tree/tree.component.mjs +3 -3
  296. package/esm2022/tree/tree.module.mjs +4 -4
  297. package/esm2022/tree/tree.property.mjs +6 -6
  298. package/esm2022/tree/tree.service.mjs +3 -3
  299. package/esm2022/tree-file/tree-file.component.mjs +3 -3
  300. package/esm2022/tree-file/tree-file.module.mjs +4 -4
  301. package/esm2022/tree-file/tree-file.property.mjs +3 -3
  302. package/esm2022/tree-select/tree-select-portal.component.mjs +3 -3
  303. package/esm2022/tree-select/tree-select.component.mjs +3 -3
  304. package/esm2022/tree-select/tree-select.module.mjs +4 -4
  305. package/esm2022/tree-select/tree-select.property.mjs +3 -3
  306. package/esm2022/typography/typography.component.mjs +3 -3
  307. package/esm2022/typography/typography.module.mjs +4 -4
  308. package/esm2022/typography/typography.property.mjs +3 -3
  309. package/esm2022/upload/upload-portal.component.mjs +5 -5
  310. package/esm2022/upload/upload.component.mjs +3 -3
  311. package/esm2022/upload/upload.module.mjs +4 -4
  312. package/esm2022/upload/upload.property.mjs +3 -3
  313. package/fesm2022/ng-nest-ui-affix.mjs +10 -10
  314. package/fesm2022/ng-nest-ui-alert.mjs +12 -12
  315. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  316. package/fesm2022/ng-nest-ui-anchor.mjs +16 -16
  317. package/fesm2022/ng-nest-ui-api.mjs +8 -8
  318. package/fesm2022/ng-nest-ui-auto-complete.mjs +14 -14
  319. package/fesm2022/ng-nest-ui-avatar.mjs +16 -16
  320. package/fesm2022/ng-nest-ui-back-top.mjs +11 -11
  321. package/fesm2022/ng-nest-ui-badge.mjs +10 -10
  322. package/fesm2022/ng-nest-ui-base-form.mjs +11 -11
  323. package/fesm2022/ng-nest-ui-border.mjs +8 -8
  324. package/fesm2022/ng-nest-ui-button.mjs +19 -18
  325. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  326. package/fesm2022/ng-nest-ui-calendar.mjs +11 -11
  327. package/fesm2022/ng-nest-ui-card.mjs +10 -10
  328. package/fesm2022/ng-nest-ui-carousel.mjs +17 -17
  329. package/fesm2022/ng-nest-ui-cascade.mjs +15 -15
  330. package/fesm2022/ng-nest-ui-checkbox.mjs +11 -11
  331. package/fesm2022/ng-nest-ui-collapse.mjs +16 -16
  332. package/fesm2022/ng-nest-ui-color-picker.mjs +14 -14
  333. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  334. package/fesm2022/ng-nest-ui-color.mjs +11 -11
  335. package/fesm2022/ng-nest-ui-comment.mjs +18 -18
  336. package/fesm2022/ng-nest-ui-container.mjs +32 -32
  337. package/fesm2022/ng-nest-ui-core.mjs +16 -16
  338. package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
  339. package/fesm2022/ng-nest-ui-date-picker.mjs +50 -50
  340. package/fesm2022/ng-nest-ui-description.mjs +16 -16
  341. package/fesm2022/ng-nest-ui-dialog.mjs +44 -44
  342. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  343. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  344. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  345. package/fesm2022/ng-nest-ui-drawer.mjs +33 -33
  346. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  347. package/fesm2022/ng-nest-ui-dropdown.mjs +15 -15
  348. package/fesm2022/ng-nest-ui-empty.mjs +11 -11
  349. package/fesm2022/ng-nest-ui-examples.mjs +9 -9
  350. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  351. package/fesm2022/ng-nest-ui-find.mjs +12 -12
  352. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  353. package/fesm2022/ng-nest-ui-form.mjs +17 -17
  354. package/fesm2022/ng-nest-ui-highlight.mjs +12 -12
  355. package/fesm2022/ng-nest-ui-i18n.mjs +13 -13
  356. package/fesm2022/ng-nest-ui-icon.mjs +13 -13
  357. package/fesm2022/ng-nest-ui-image.mjs +20 -20
  358. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  359. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  360. package/fesm2022/ng-nest-ui-input-number.mjs +22 -17
  361. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  362. package/fesm2022/ng-nest-ui-input.mjs +17 -17
  363. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  364. package/fesm2022/ng-nest-ui-keyword.mjs +11 -11
  365. package/fesm2022/ng-nest-ui-layout.mjs +17 -17
  366. package/fesm2022/ng-nest-ui-link.mjs +11 -11
  367. package/fesm2022/ng-nest-ui-list.mjs +20 -20
  368. package/fesm2022/ng-nest-ui-loading.mjs +11 -11
  369. package/fesm2022/ng-nest-ui-menu.mjs +18 -18
  370. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  371. package/fesm2022/ng-nest-ui-message-box.mjs +14 -12
  372. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  373. package/fesm2022/ng-nest-ui-message.mjs +11 -12
  374. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  375. package/fesm2022/ng-nest-ui-notification.mjs +11 -11
  376. package/fesm2022/ng-nest-ui-outlet.mjs +8 -8
  377. package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
  378. package/fesm2022/ng-nest-ui-pagination.mjs +11 -11
  379. package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
  380. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
  381. package/fesm2022/ng-nest-ui-popover.mjs +14 -14
  382. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  383. package/fesm2022/ng-nest-ui-progress.mjs +10 -10
  384. package/fesm2022/ng-nest-ui-radio.mjs +11 -11
  385. package/fesm2022/ng-nest-ui-rate.mjs +11 -11
  386. package/fesm2022/ng-nest-ui-resizable.mjs +10 -10
  387. package/fesm2022/ng-nest-ui-result.mjs +10 -10
  388. package/fesm2022/ng-nest-ui-ripple.mjs +13 -13
  389. package/fesm2022/ng-nest-ui-select.mjs +13 -13
  390. package/fesm2022/ng-nest-ui-skeleton.mjs +11 -11
  391. package/fesm2022/ng-nest-ui-slider-select.mjs +11 -11
  392. package/fesm2022/ng-nest-ui-slider.mjs +11 -11
  393. package/fesm2022/ng-nest-ui-statistic.mjs +16 -16
  394. package/fesm2022/ng-nest-ui-steps.mjs +11 -11
  395. package/fesm2022/ng-nest-ui-switch.mjs +11 -11
  396. package/fesm2022/ng-nest-ui-table.mjs +45 -33
  397. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  398. package/fesm2022/ng-nest-ui-tabs.mjs +26 -26
  399. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  400. package/fesm2022/ng-nest-ui-tag.mjs +10 -10
  401. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
  402. package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
  403. package/fesm2022/ng-nest-ui-theme.mjs +11 -11
  404. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  405. package/fesm2022/ng-nest-ui-time-picker.mjs +18 -18
  406. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  407. package/fesm2022/ng-nest-ui-timeline.mjs +11 -11
  408. package/fesm2022/ng-nest-ui-tooltip.mjs +14 -14
  409. package/fesm2022/ng-nest-ui-transfer.mjs +11 -11
  410. package/fesm2022/ng-nest-ui-tree-file.mjs +11 -11
  411. package/fesm2022/ng-nest-ui-tree-select.mjs +14 -14
  412. package/fesm2022/ng-nest-ui-tree.mjs +20 -20
  413. package/fesm2022/ng-nest-ui-typography.mjs +11 -11
  414. package/fesm2022/ng-nest-ui-upload.mjs +15 -15
  415. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  416. package/input-number/input-number.component.d.ts +1 -1
  417. package/message/message.property.d.ts +0 -1
  418. package/package.json +40 -40
  419. package/table/table.component.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-image.mjs","sources":["../../../../lib/ng-nest/ui/image/image.property.ts","../../../../lib/ng-nest/ui/image/image-preview.component.ts","../../../../lib/ng-nest/ui/image/image-preview.component.html","../../../../lib/ng-nest/ui/image/image-group.component.ts","../../../../lib/ng-nest/ui/image/image-group.component.html","../../../../lib/ng-nest/ui/image/image.component.ts","../../../../lib/ng-nest/ui/image/image.component.html","../../../../lib/ng-nest/ui/image/image.module.ts","../../../../lib/ng-nest/ui/image/ng-nest-ui-image.ts"],"sourcesContent":["import { Input, Component, Output, EventEmitter } from '@angular/core';\r\nimport { XProperty, XTemplate, XWithConfig } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Image\r\n * @selector x-image\r\n * @decorator component\r\n */\r\nexport const XImagePrefix = 'x-image';\r\nconst X_CONFIG_NAME = 'image';\r\n\r\n/**\r\n * Image Property\r\n */\r\n@Component({ selector: `${XImagePrefix}-property`, template: '' })\r\nexport class XImageProperty extends XProperty {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n */\r\n @Input() src?: string;\r\n /**\r\n * @zh_CN 图片宽度\r\n * @en_US Picture width\r\n */\r\n @Input() width?: string;\r\n /**\r\n * @zh_CN 图片高度\r\n * @en_US Picture height\r\n */\r\n @Input() height?: string;\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n */\r\n @Input() alt?: string;\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n */\r\n @Input() fallback?: string;\r\n /**\r\n * @zh_CN 预览文字\r\n * @en_US Preview text\r\n * @default '预览'\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) previewText?: string;\r\n /**\r\n * @zh_CN 渐进加载显示的图片\r\n * @en_US Gradually loaded the display of the display\r\n */\r\n @Input() placeholder?: string;\r\n /**\r\n * @zh_CN 自定义预览操作\r\n * @en_US Custom preview operation\r\n */\r\n @Input() previewTpl?: XTemplate;\r\n /**\r\n * @zh_CN 图片加载错误\r\n * @en_US Picture load failed\r\n */\r\n @Output() error = new EventEmitter();\r\n /**\r\n * @zh_CN 图片加载完成\r\n * @en_US Picture loading complete\r\n */\r\n @Output() load = new EventEmitter();\r\n}\r\n\r\n/**\r\n * @zh_CN 图片节点数据\r\n * @en_US Image node data\r\n */\r\nexport interface XImageNode {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n */\r\n src?: string;\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n */\r\n alt?: string;\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n */\r\n fallback?: string;\r\n /**\r\n * @zh_CN 当前激活的图片\r\n * @en_US Current activated pictures\r\n */\r\n activated?: boolean;\r\n}\r\n\r\n/**\r\n * Image Preview\r\n * @selector x-image-preview\r\n * @decorator component\r\n */\r\nexport const XImagePreviewPrefix = 'x-image-preview';\r\n\r\n/**\r\n * Image Preview Property\r\n */\r\n@Component({ selector: `${XImagePreviewPrefix}-property`, template: '' })\r\nexport class XImagePreviewProperty extends XProperty {}\r\n\r\n/**\r\n * Image Group\r\n * @selector x-image-group\r\n * @decorator component\r\n */\r\nexport const XImageGroupPrefix = 'x-image-group';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n inject,\r\n OnInit\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePreviewPrefix, XImagePreviewProperty } from './image.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\nimport { XDialogCloseDirective, X_DIALOG_DATA } from '@ng-nest/ui/dialog';\r\nimport { DOCUMENT, NgClass } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\n@Component({\r\n selector: `${XImagePreviewPrefix}`,\r\n standalone: true,\r\n imports: [NgClass, XIconComponent, DragDropModule, XDialogCloseDirective],\r\n templateUrl: './image-preview.component.html',\r\n styleUrls: ['./image-preview.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImagePreviewComponent extends XImagePreviewProperty implements OnInit {\r\n imgScale3d = {\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n };\r\n rotate = 0;\r\n\r\n position = {\r\n x: 0,\r\n y: 0\r\n };\r\n\r\n activated?: XImageNode;\r\n total = 1;\r\n current = 1;\r\n\r\n private document = inject(DOCUMENT);\r\n\r\n get getWrapperTransform() {\r\n return `translate3d(${this.position.x}px, ${this.position.y}px, 0)`;\r\n }\r\n get getImgTransform() {\r\n return `scale3d(${this.imgScale3d.x}, ${this.imgScale3d.y}, ${this.imgScale3d.z}) rotate(${this.rotate}deg)`;\r\n }\r\n\r\n @ViewChild('imageRef') imageRef!: ElementRef<HTMLImageElement>;\r\n\r\n data = inject<XImageNode[]>(X_DIALOG_DATA);\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit() {\r\n this.setActivated();\r\n }\r\n\r\n initialization() {\r\n this.imgScale3d = {\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n };\r\n this.rotate = 0;\r\n this.position = {\r\n x: 0,\r\n y: 0\r\n };\r\n }\r\n\r\n setActivated() {\r\n if (!this.data) return;\r\n if (this.data.length === 1) {\r\n this.activated = this.data[0];\r\n this.total = this.current = 1;\r\n } else {\r\n this.total = this.data.length;\r\n this.activated = this.data.find((x, index) => {\r\n if (x.activated) {\r\n this.current = index + 1;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n }\r\n\r\n onCurrentChange(num: number) {\r\n this.current += num;\r\n this.activated = this.data[this.current - 1];\r\n this.initialization();\r\n }\r\n\r\n onRotate(deg: number) {\r\n this.rotate += deg;\r\n }\r\n\r\n onScale(zoom: number) {\r\n this.imgScale3d.x += zoom;\r\n this.imgScale3d.y += zoom;\r\n }\r\n\r\n onDragReleased() {\r\n let width = this.imageRef.nativeElement.offsetWidth * this.imgScale3d.x;\r\n let height = this.imageRef.nativeElement.offsetHeight * this.imgScale3d.x;\r\n const clientWidth = this.document.documentElement.clientWidth;\r\n const clientHeight = this.document.defaultView?.innerHeight || this.document.documentElement.clientHeight;\r\n const isRotate = this.rotate % 180 !== 0;\r\n const box = this.imageRef.nativeElement.getBoundingClientRect();\r\n const docElem = this.document.documentElement;\r\n const left =\r\n box.left +\r\n (this.document.defaultView?.pageXOffset || docElem.scrollLeft) -\r\n (docElem.clientLeft || this.document.body.clientLeft || 0);\r\n const top =\r\n box.top +\r\n (this.document.defaultView?.pageYOffset || docElem.scrollTop) -\r\n (docElem.clientTop || this.document.body.clientTop || 0);\r\n width = isRotate ? height : width;\r\n height = isRotate ? width : height;\r\n\r\n let position = { x: 0, y: 0 };\r\n if (width > clientWidth || height > clientHeight) {\r\n const x = this.fitPoint(left, width, clientWidth);\r\n const y = this.fitPoint(top, height, clientHeight);\r\n position.x = x ? x : 0;\r\n position.y = y ? y : 0;\r\n }\r\n\r\n this.position = { ...this.position, ...position };\r\n }\r\n\r\n fitPoint(start: number, size: number, clientSize: number): number | null {\r\n const startAddSize = start + size;\r\n const offsetStart = (size - clientSize) / 2;\r\n let distance: number | null = null;\r\n\r\n if (size > clientSize) {\r\n if (start > 0) {\r\n distance = offsetStart;\r\n }\r\n if (start < 0 && startAddSize < clientSize) {\r\n distance = -offsetStart;\r\n }\r\n } else {\r\n if (start < 0 || startAddSize > clientSize) {\r\n distance = start < 0 ? offsetStart : -offsetStart;\r\n }\r\n }\r\n\r\n return distance;\r\n }\r\n}\r\n","<div class=\"x-image-preview\" [ngClass]=\"classMap\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n @if (total != 1) {\r\n <span class=\"x-image-preview-current\">{{ current }} / {{ total }}</span>\r\n }\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon\r\n type=\"fto-zoom-out\"\r\n [class.x-image-preview-disabled]=\"imgScale3d.x === 1\"\r\n (click)=\"imgScale3d.x > 1 && onScale(-1)\"\r\n ></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"getWrapperTransform\"\r\n [cdkDragFreeDragPosition]=\"position\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img\r\n #imageRef\r\n [src]=\"activated?.src\"\r\n [attr.alt]=\"activated?.alt\"\r\n cdkDragHandle\r\n [style.transform]=\"getImgTransform\"\r\n />\r\n </div>\r\n @if (data && data.length > 1) {\r\n <div\r\n [class.x-image-preview-disabled]=\"current === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n [class.x-image-preview-disabled]=\"current === total\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current != total && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\nimport { XImageComponent } from './image.component';\r\nimport { XImageGroupPrefix } from './image.property';\r\n\r\n@Component({\r\n selector: `${XImageGroupPrefix}`,\r\n standalone: true,\r\n templateUrl: './image-group.component.html',\r\n styleUrls: ['./image-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageGroupComponent {\r\n images: XImageComponent[] = [];\r\n\r\n constructor() {\r\n console.log('group cons');\r\n }\r\n\r\n ngOnInit() {\r\n console.log('group');\r\n }\r\n\r\n addImage(image: XImageComponent): void {\r\n console.log('add');\r\n this.images.push(image);\r\n }\r\n\r\n removeImage(image: XImageComponent): void {\r\n console.log('remove');\r\n this.images.splice(this.images.indexOf(image), 1);\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePrefix, XImageProperty } from './image.property';\r\nimport { XConfigService, XIsChange } from '@ng-nest/ui/core';\r\nimport { XDialogService } from '@ng-nest/ui/dialog';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XI18nImage, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { map, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XImageGroupComponent } from './image-group.component';\r\nimport { NgClass } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\n\r\n@Component({\r\n selector: `${XImagePrefix}`,\r\n standalone: true,\r\n imports: [NgClass, XIconComponent, XOutletDirective],\r\n templateUrl: './image.component.html',\r\n styleUrls: ['./image.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageComponent extends XImageProperty implements OnInit, OnChanges {\r\n locale: XI18nImage = {};\r\n isError = false;\r\n isLoaded = false;\r\n private _unSubject = new Subject<void>();\r\n\r\n get getPreviewText() {\r\n return this.previewText || this.locale.previewText;\r\n }\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n private dialog = inject(XDialogService);\r\n private i18n = inject(XI18nService);\r\n private group = inject(XImageGroupComponent, { optional: true });\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit(): void {\r\n if (this.group) {\r\n this.group.addImage(this);\r\n }\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.image as XI18nImage),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n let { src } = changes;\r\n if (XIsChange(src)) {\r\n this.isLoaded = false;\r\n this.isError = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.group) {\r\n this.group.removeImage(this);\r\n }\r\n }\r\n\r\n onPreview() {\r\n let data: XImageNode[] = [];\r\n if (this.group) {\r\n const activatedIndex = this.group.images.indexOf(this);\r\n data = this.group.images.map((x, index) => ({\r\n src: x.src,\r\n alt: x.alt,\r\n fallback: x.fallback,\r\n activated: index === activatedIndex\r\n }));\r\n } else {\r\n data = [{ src: this.src, alt: this.alt, fallback: this.fallback }];\r\n }\r\n this.dialog.create(XImagePreviewComponent, {\r\n width: '100%',\r\n height: '100%',\r\n className: 'x-image-preview-portal',\r\n data: data\r\n });\r\n }\r\n\r\n onError(event: Event) {\r\n this.src = this.fallback;\r\n this.isError = true;\r\n this.cdr.detectChanges();\r\n this.error.emit(event);\r\n }\r\n\r\n onLoad(event: Event) {\r\n this.isLoaded = true;\r\n this.isError = false;\r\n this.cdr.detectChanges();\r\n this.load.emit(event);\r\n }\r\n}\r\n","<div class=\"x-image\" [ngClass]=\"classMap\">\r\n @if (!isError && !fallback) {\r\n <img\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n }\r\n @if (placeholder && !isLoaded) {\r\n <img class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n }\r\n @if (isError && !fallback) {\r\n <div class=\"x-image-error-icon\" [style.width]=\"width\" [style.height]=\"height\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n }\r\n <ng-container *xOutlet=\"previewTpl; context: { $image: this }\">\r\n @if (!isError) {\r\n <div class=\"x-image-overlay\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ getPreviewText }}</span>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XImageComponent } from './image.component';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XImageGroupComponent } from './image-group.component';\r\n\r\n@NgModule({\r\n exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent],\r\n imports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent]\r\n})\r\nexport class XImageModule {}\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-image.mjs","sources":["../../../../lib/ng-nest/ui/image/image.property.ts","../../../../lib/ng-nest/ui/image/image-preview.component.ts","../../../../lib/ng-nest/ui/image/image-preview.component.html","../../../../lib/ng-nest/ui/image/image-group.component.ts","../../../../lib/ng-nest/ui/image/image-group.component.html","../../../../lib/ng-nest/ui/image/image.component.ts","../../../../lib/ng-nest/ui/image/image.component.html","../../../../lib/ng-nest/ui/image/image.module.ts","../../../../lib/ng-nest/ui/image/ng-nest-ui-image.ts"],"sourcesContent":["import { Input, Component, Output, EventEmitter } from '@angular/core';\r\nimport { XProperty, XTemplate, XWithConfig } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Image\r\n * @selector x-image\r\n * @decorator component\r\n */\r\nexport const XImagePrefix = 'x-image';\r\nconst X_CONFIG_NAME = 'image';\r\n\r\n/**\r\n * Image Property\r\n */\r\n@Component({ selector: `${XImagePrefix}-property`, template: '' })\r\nexport class XImageProperty extends XProperty {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n */\r\n @Input() src?: string;\r\n /**\r\n * @zh_CN 图片宽度\r\n * @en_US Picture width\r\n */\r\n @Input() width?: string;\r\n /**\r\n * @zh_CN 图片高度\r\n * @en_US Picture height\r\n */\r\n @Input() height?: string;\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n */\r\n @Input() alt?: string;\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n */\r\n @Input() fallback?: string;\r\n /**\r\n * @zh_CN 预览文字\r\n * @en_US Preview text\r\n * @default '预览'\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) previewText?: string;\r\n /**\r\n * @zh_CN 渐进加载显示的图片\r\n * @en_US Gradually loaded the display of the display\r\n */\r\n @Input() placeholder?: string;\r\n /**\r\n * @zh_CN 自定义预览操作\r\n * @en_US Custom preview operation\r\n */\r\n @Input() previewTpl?: XTemplate;\r\n /**\r\n * @zh_CN 图片加载错误\r\n * @en_US Picture load failed\r\n */\r\n @Output() error = new EventEmitter();\r\n /**\r\n * @zh_CN 图片加载完成\r\n * @en_US Picture loading complete\r\n */\r\n @Output() load = new EventEmitter();\r\n}\r\n\r\n/**\r\n * @zh_CN 图片节点数据\r\n * @en_US Image node data\r\n */\r\nexport interface XImageNode {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n */\r\n src?: string;\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n */\r\n alt?: string;\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n */\r\n fallback?: string;\r\n /**\r\n * @zh_CN 当前激活的图片\r\n * @en_US Current activated pictures\r\n */\r\n activated?: boolean;\r\n}\r\n\r\n/**\r\n * Image Preview\r\n * @selector x-image-preview\r\n * @decorator component\r\n */\r\nexport const XImagePreviewPrefix = 'x-image-preview';\r\n\r\n/**\r\n * Image Preview Property\r\n */\r\n@Component({ selector: `${XImagePreviewPrefix}-property`, template: '' })\r\nexport class XImagePreviewProperty extends XProperty {}\r\n\r\n/**\r\n * Image Group\r\n * @selector x-image-group\r\n * @decorator component\r\n */\r\nexport const XImageGroupPrefix = 'x-image-group';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n ViewChild,\r\n inject,\r\n OnInit\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePreviewPrefix, XImagePreviewProperty } from './image.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\nimport { XDialogCloseDirective, X_DIALOG_DATA } from '@ng-nest/ui/dialog';\r\nimport { DOCUMENT, NgClass } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\n@Component({\r\n selector: `${XImagePreviewPrefix}`,\r\n standalone: true,\r\n imports: [NgClass, XIconComponent, DragDropModule, XDialogCloseDirective],\r\n templateUrl: './image-preview.component.html',\r\n styleUrls: ['./image-preview.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImagePreviewComponent extends XImagePreviewProperty implements OnInit {\r\n imgScale3d = {\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n };\r\n rotate = 0;\r\n\r\n position = {\r\n x: 0,\r\n y: 0\r\n };\r\n\r\n activated?: XImageNode;\r\n total = 1;\r\n current = 1;\r\n\r\n private document = inject(DOCUMENT);\r\n\r\n get getWrapperTransform() {\r\n return `translate3d(${this.position.x}px, ${this.position.y}px, 0)`;\r\n }\r\n get getImgTransform() {\r\n return `scale3d(${this.imgScale3d.x}, ${this.imgScale3d.y}, ${this.imgScale3d.z}) rotate(${this.rotate}deg)`;\r\n }\r\n\r\n @ViewChild('imageRef') imageRef!: ElementRef<HTMLImageElement>;\r\n\r\n data = inject<XImageNode[]>(X_DIALOG_DATA);\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit() {\r\n this.setActivated();\r\n }\r\n\r\n initialization() {\r\n this.imgScale3d = {\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n };\r\n this.rotate = 0;\r\n this.position = {\r\n x: 0,\r\n y: 0\r\n };\r\n }\r\n\r\n setActivated() {\r\n if (!this.data) return;\r\n if (this.data.length === 1) {\r\n this.activated = this.data[0];\r\n this.total = this.current = 1;\r\n } else {\r\n this.total = this.data.length;\r\n this.activated = this.data.find((x, index) => {\r\n if (x.activated) {\r\n this.current = index + 1;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n }\r\n\r\n onCurrentChange(num: number) {\r\n this.current += num;\r\n this.activated = this.data[this.current - 1];\r\n this.initialization();\r\n }\r\n\r\n onRotate(deg: number) {\r\n this.rotate += deg;\r\n }\r\n\r\n onScale(zoom: number) {\r\n this.imgScale3d.x += zoom;\r\n this.imgScale3d.y += zoom;\r\n }\r\n\r\n onDragReleased() {\r\n let width = this.imageRef.nativeElement.offsetWidth * this.imgScale3d.x;\r\n let height = this.imageRef.nativeElement.offsetHeight * this.imgScale3d.x;\r\n const clientWidth = this.document.documentElement.clientWidth;\r\n const clientHeight = this.document.defaultView?.innerHeight || this.document.documentElement.clientHeight;\r\n const isRotate = this.rotate % 180 !== 0;\r\n const box = this.imageRef.nativeElement.getBoundingClientRect();\r\n const docElem = this.document.documentElement;\r\n const left =\r\n box.left +\r\n (this.document.defaultView?.pageXOffset || docElem.scrollLeft) -\r\n (docElem.clientLeft || this.document.body.clientLeft || 0);\r\n const top =\r\n box.top +\r\n (this.document.defaultView?.pageYOffset || docElem.scrollTop) -\r\n (docElem.clientTop || this.document.body.clientTop || 0);\r\n width = isRotate ? height : width;\r\n height = isRotate ? width : height;\r\n\r\n let position = { x: 0, y: 0 };\r\n if (width > clientWidth || height > clientHeight) {\r\n const x = this.fitPoint(left, width, clientWidth);\r\n const y = this.fitPoint(top, height, clientHeight);\r\n position.x = x ? x : 0;\r\n position.y = y ? y : 0;\r\n }\r\n\r\n this.position = { ...this.position, ...position };\r\n }\r\n\r\n fitPoint(start: number, size: number, clientSize: number): number | null {\r\n const startAddSize = start + size;\r\n const offsetStart = (size - clientSize) / 2;\r\n let distance: number | null = null;\r\n\r\n if (size > clientSize) {\r\n if (start > 0) {\r\n distance = offsetStart;\r\n }\r\n if (start < 0 && startAddSize < clientSize) {\r\n distance = -offsetStart;\r\n }\r\n } else {\r\n if (start < 0 || startAddSize > clientSize) {\r\n distance = start < 0 ? offsetStart : -offsetStart;\r\n }\r\n }\r\n\r\n return distance;\r\n }\r\n}\r\n","<div class=\"x-image-preview\" [ngClass]=\"classMap\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n @if (total != 1) {\r\n <span class=\"x-image-preview-current\">{{ current }} / {{ total }}</span>\r\n }\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon\r\n type=\"fto-zoom-out\"\r\n [class.x-image-preview-disabled]=\"imgScale3d.x === 1\"\r\n (click)=\"imgScale3d.x > 1 && onScale(-1)\"\r\n ></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"getWrapperTransform\"\r\n [cdkDragFreeDragPosition]=\"position\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img\r\n #imageRef\r\n [src]=\"activated?.src\"\r\n [attr.alt]=\"activated?.alt\"\r\n cdkDragHandle\r\n [style.transform]=\"getImgTransform\"\r\n />\r\n </div>\r\n @if (data && data.length > 1) {\r\n <div\r\n [class.x-image-preview-disabled]=\"current === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n [class.x-image-preview-disabled]=\"current === total\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current != total && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\nimport { XImageComponent } from './image.component';\r\nimport { XImageGroupPrefix } from './image.property';\r\n\r\n@Component({\r\n selector: `${XImageGroupPrefix}`,\r\n standalone: true,\r\n templateUrl: './image-group.component.html',\r\n styleUrls: ['./image-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageGroupComponent {\r\n images: XImageComponent[] = [];\r\n\r\n constructor() {\r\n console.log('group cons');\r\n }\r\n\r\n ngOnInit() {\r\n console.log('group');\r\n }\r\n\r\n addImage(image: XImageComponent): void {\r\n console.log('add');\r\n this.images.push(image);\r\n }\r\n\r\n removeImage(image: XImageComponent): void {\r\n console.log('remove');\r\n this.images.splice(this.images.indexOf(image), 1);\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePrefix, XImageProperty } from './image.property';\r\nimport { XConfigService, XIsChange } from '@ng-nest/ui/core';\r\nimport { XDialogService } from '@ng-nest/ui/dialog';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XI18nImage, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { map, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XImageGroupComponent } from './image-group.component';\r\nimport { NgClass } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\n\r\n@Component({\r\n selector: `${XImagePrefix}`,\r\n standalone: true,\r\n imports: [NgClass, XIconComponent, XOutletDirective],\r\n templateUrl: './image.component.html',\r\n styleUrls: ['./image.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageComponent extends XImageProperty implements OnInit, OnChanges {\r\n locale: XI18nImage = {};\r\n isError = false;\r\n isLoaded = false;\r\n private _unSubject = new Subject<void>();\r\n\r\n get getPreviewText() {\r\n return this.previewText || this.locale.previewText;\r\n }\r\n\r\n private cdr = inject(ChangeDetectorRef);\r\n private dialog = inject(XDialogService);\r\n private i18n = inject(XI18nService);\r\n private group = inject(XImageGroupComponent, { optional: true });\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit(): void {\r\n if (this.group) {\r\n this.group.addImage(this);\r\n }\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.image as XI18nImage),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n let { src } = changes;\r\n if (XIsChange(src)) {\r\n this.isLoaded = false;\r\n this.isError = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.group) {\r\n this.group.removeImage(this);\r\n }\r\n }\r\n\r\n onPreview() {\r\n let data: XImageNode[] = [];\r\n if (this.group) {\r\n const activatedIndex = this.group.images.indexOf(this);\r\n data = this.group.images.map((x, index) => ({\r\n src: x.src,\r\n alt: x.alt,\r\n fallback: x.fallback,\r\n activated: index === activatedIndex\r\n }));\r\n } else {\r\n data = [{ src: this.src, alt: this.alt, fallback: this.fallback }];\r\n }\r\n this.dialog.create(XImagePreviewComponent, {\r\n width: '100%',\r\n height: '100%',\r\n className: 'x-image-preview-portal',\r\n data: data\r\n });\r\n }\r\n\r\n onError(event: Event) {\r\n this.src = this.fallback;\r\n this.isError = true;\r\n this.cdr.detectChanges();\r\n this.error.emit(event);\r\n }\r\n\r\n onLoad(event: Event) {\r\n this.isLoaded = true;\r\n this.isError = false;\r\n this.cdr.detectChanges();\r\n this.load.emit(event);\r\n }\r\n}\r\n","<div class=\"x-image\" [ngClass]=\"classMap\">\r\n @if (!isError && !fallback) {\r\n <img\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n }\r\n @if (placeholder && !isLoaded) {\r\n <img class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n }\r\n @if (isError && !fallback) {\r\n <div class=\"x-image-error-icon\" [style.width]=\"width\" [style.height]=\"height\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n }\r\n <ng-container *xOutlet=\"previewTpl; context: { $image: this }\">\r\n @if (!isError) {\r\n <div class=\"x-image-overlay\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ getPreviewText }}</span>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XImageComponent } from './image.component';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XImageGroupComponent } from './image-group.component';\r\n\r\n@NgModule({\r\n exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent],\r\n imports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent]\r\n})\r\nexport class XImageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, Renderer2, inject, ElementRef, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
2
+ import { Component, Input, inject, Renderer2, ElementRef, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
3
  import { __decorate } from 'tslib';
4
4
  import { XProperty, XWithConfig, XConfigService } from '@ng-nest/ui/core';
5
5
 
@@ -14,13 +14,13 @@ const X_CONFIG_NAME = 'inner';
14
14
  * Inner Property
15
15
  */
16
16
  class XInnerProperty extends XProperty {
17
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInnerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
18
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XInnerProperty, selector: "x-inner-property", inputs: { padding: "padding" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
17
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInnerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
18
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: XInnerProperty, selector: "x-inner-property", inputs: { padding: "padding" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
19
19
  }
20
20
  __decorate([
21
21
  XWithConfig(X_CONFIG_NAME, '1rem')
22
22
  ], XInnerProperty.prototype, "padding", void 0);
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInnerProperty, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInnerProperty, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: `${XInnerPrefix}-property`, template: '' }]
26
26
  }], propDecorators: { padding: [{
@@ -45,20 +45,20 @@ class XInnerComponent extends XInnerProperty {
45
45
  setStyle() {
46
46
  this.renderer.setStyle(this._ele, 'padding', this.padding);
47
47
  }
48
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInnerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
49
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XInnerComponent, isStandalone: true, selector: "x-inner", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-inner{margin:0;padding:0;display:block;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
48
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInnerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
49
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: XInnerComponent, isStandalone: true, selector: "x-inner", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-inner{margin:0;padding:0;display:block;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInnerComponent, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInnerComponent, decorators: [{
52
52
  type: Component,
53
53
  args: [{ selector: `${XInnerPrefix}`, standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n", styles: [".x-inner{margin:0;padding:0;display:block;width:100%;height:100%}\n"] }]
54
54
  }] });
55
55
 
56
56
  class XInnerModule {
57
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
58
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: XInnerModule, imports: [XInnerComponent], exports: [XInnerComponent] }); }
59
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInnerModule }); }
57
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
58
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: XInnerModule, imports: [XInnerComponent], exports: [XInnerComponent] }); }
59
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInnerModule }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInnerModule, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInnerModule, decorators: [{
62
62
  type: NgModule,
63
63
  args: [{
64
64
  exports: [XInnerComponent],
@@ -1,7 +1,7 @@
1
1
  import { Subject, distinctUntilChanged, interval, fromEvent } from 'rxjs';
2
2
  import * as i0 from '@angular/core';
3
3
  import { Component, Input, inject, Renderer2, ChangeDetectorRef, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';
4
- import { XInputNumber, XWithConfig, XInputBoolean, XConfigService, XClearClass, XIsEmpty, isNotNil, XIsFunction } from '@ng-nest/ui/core';
4
+ import { XInputNumber, XWithConfig, XInputBoolean, XConfigService, XClearClass, XIsEmpty, isNotNil, XIsString, XIsFunction } from '@ng-nest/ui/core';
5
5
  import { __decorate } from 'tslib';
6
6
  import { XControlValueAccessor, XValueAccessor } from '@ng-nest/ui/base-form';
7
7
  import { XInputComponent } from '@ng-nest/ui/input';
@@ -49,8 +49,8 @@ class XInputNumberProperty extends XControlValueAccessor {
49
49
  */
50
50
  this.precision = 0;
51
51
  }
52
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInputNumberProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
53
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: XInputNumberProperty, selector: "x-input-number-property", inputs: { min: "min", max: "max", step: "step", debounce: "debounce", precision: "precision", size: "size", bordered: "bordered", formatter: "formatter" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
52
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInputNumberProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
53
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: XInputNumberProperty, selector: "x-input-number-property", inputs: { min: "min", max: "max", step: "step", debounce: "debounce", precision: "precision", size: "size", bordered: "bordered", formatter: "formatter" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
54
54
  }
55
55
  __decorate([
56
56
  XInputNumber()
@@ -74,7 +74,7 @@ __decorate([
74
74
  XInputBoolean(),
75
75
  XWithConfig(X_CONFIG_NAME, true)
76
76
  ], XInputNumberProperty.prototype, "bordered", void 0);
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInputNumberProperty, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInputNumberProperty, decorators: [{
78
78
  type: Component,
79
79
  args: [{ selector: `${XInputNumberPrefix}-property`, template: '' }]
80
80
  }], propDecorators: { min: [{
@@ -191,17 +191,22 @@ class XInputNumberComponent extends XInputNumberProperty {
191
191
  this.valueChange.next(this.value);
192
192
  }
193
193
  verify(value) {
194
+ if (XIsString(value) && Number(value).toString() !== value) {
195
+ return;
196
+ }
197
+ value = Number(Number(value).toFixed(Number(this.precision)));
194
198
  const oldValue = this.value;
195
199
  this.value = value;
196
200
  if (Number.isNaN(+this.value)) {
197
201
  this.value = oldValue;
198
202
  this.setDisplayValue();
199
- return;
200
203
  }
201
- this.maxDisabled = value >= this.max;
202
- this.minDisabled = value <= this.min;
203
- this.value = this.maxDisabled ? this.max : this.minDisabled ? this.min : value;
204
- this.setDisplayValue();
204
+ else {
205
+ this.maxDisabled = value >= Number(this.max);
206
+ this.minDisabled = value <= Number(this.min);
207
+ this.value = this.maxDisabled ? this.max : this.minDisabled ? this.min : value;
208
+ this.setDisplayValue();
209
+ }
205
210
  }
206
211
  onInput(x) {
207
212
  const input = x.target;
@@ -218,12 +223,12 @@ class XInputNumberComponent extends XInputNumberProperty {
218
223
  this.ngOnInit();
219
224
  this.cdr.detectChanges();
220
225
  }
221
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInputNumberComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
222
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: XInputNumberComponent, isStandalone: true, selector: "x-input-number", providers: [XValueAccessor(XInputNumberComponent)], viewQueries: [{ propertyName: "inputNumber", first: true, predicate: ["inputNumber"], descendants: true, static: true }, { propertyName: "inputEleRef", first: true, predicate: XInputComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #inputNumber class=\"x-input-number\">\r\n <div class=\"x-input-number-row\">\r\n <ng-template #beforeButtonTpl>\r\n <x-button\r\n class=\"x-input-number-reduce\"\r\n icon=\"fto-minus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || minDisabled\"\r\n (click)=\"!minDisabled && plus($event, step, false); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!minDisabled && down($event, step, false)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n <x-input\r\n #inputEleRef\r\n class=\"x-input-number-input\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n (ngModelChange)=\"change($event)\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"beforeButtonTpl\"\r\n [after]=\"afterButtonTpl\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n (xInput)=\"onInput($event); formControlValidator()\"\r\n ></x-input>\r\n <ng-template #afterButtonTpl>\r\n <x-button\r\n class=\"x-input-number-plus\"\r\n icon=\"fto-plus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || maxDisabled\"\r\n (click)=\"!maxDisabled && plus($event, step); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!maxDisabled && down($event, step)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n @if (invalid) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-number{display:inline-block;width:12rem}.x-input-number{margin:0;padding:0;width:100%}.x-input-number-input{width:100%}.x-input-number-input input{text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "component", type: XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
226
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInputNumberComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
227
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: XInputNumberComponent, isStandalone: true, selector: "x-input-number", providers: [XValueAccessor(XInputNumberComponent)], viewQueries: [{ propertyName: "inputNumber", first: true, predicate: ["inputNumber"], descendants: true, static: true }, { propertyName: "inputEleRef", first: true, predicate: XInputComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #inputNumber class=\"x-input-number\">\r\n <div class=\"x-input-number-row\">\r\n <ng-template #beforeButtonTpl>\r\n <x-button\r\n class=\"x-input-number-reduce\"\r\n icon=\"fto-minus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || minDisabled\"\r\n (click)=\"!minDisabled && plus($event, step, false); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!minDisabled && down($event, step, false)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n <x-input\r\n #inputEleRef\r\n class=\"x-input-number-input\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n (ngModelChange)=\"change($event)\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"beforeButtonTpl\"\r\n [after]=\"afterButtonTpl\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n (xInput)=\"onInput($event); formControlValidator()\"\r\n (xBlur)=\"onBlur()\"\r\n ></x-input>\r\n <ng-template #afterButtonTpl>\r\n <x-button\r\n class=\"x-input-number-plus\"\r\n icon=\"fto-plus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || maxDisabled\"\r\n (click)=\"!maxDisabled && plus($event, step); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!maxDisabled && down($event, step)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n @if (invalid) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-number{display:inline-block;width:12rem}.x-input-number{margin:0;padding:0;width:100%}.x-input-number-input{width:100%}.x-input-number-input input{text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "component", type: XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
223
228
  }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInputNumberComponent, decorators: [{
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInputNumberComponent, decorators: [{
225
230
  type: Component,
226
- args: [{ selector: `${XInputNumberPrefix}`, standalone: true, imports: [FormsModule, ReactiveFormsModule, XInputComponent, XButtonComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XInputNumberComponent)], template: "<div #inputNumber class=\"x-input-number\">\r\n <div class=\"x-input-number-row\">\r\n <ng-template #beforeButtonTpl>\r\n <x-button\r\n class=\"x-input-number-reduce\"\r\n icon=\"fto-minus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || minDisabled\"\r\n (click)=\"!minDisabled && plus($event, step, false); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!minDisabled && down($event, step, false)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n <x-input\r\n #inputEleRef\r\n class=\"x-input-number-input\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n (ngModelChange)=\"change($event)\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"beforeButtonTpl\"\r\n [after]=\"afterButtonTpl\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n (xInput)=\"onInput($event); formControlValidator()\"\r\n ></x-input>\r\n <ng-template #afterButtonTpl>\r\n <x-button\r\n class=\"x-input-number-plus\"\r\n icon=\"fto-plus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || maxDisabled\"\r\n (click)=\"!maxDisabled && plus($event, step); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!maxDisabled && down($event, step)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n @if (invalid) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-number{display:inline-block;width:12rem}.x-input-number{margin:0;padding:0;width:100%}.x-input-number-input{width:100%}.x-input-number-input input{text-align:center}\n"] }]
231
+ args: [{ selector: `${XInputNumberPrefix}`, standalone: true, imports: [FormsModule, ReactiveFormsModule, XInputComponent, XButtonComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XInputNumberComponent)], template: "<div #inputNumber class=\"x-input-number\">\r\n <div class=\"x-input-number-row\">\r\n <ng-template #beforeButtonTpl>\r\n <x-button\r\n class=\"x-input-number-reduce\"\r\n icon=\"fto-minus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || minDisabled\"\r\n (click)=\"!minDisabled && plus($event, step, false); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!minDisabled && down($event, step, false)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n <x-input\r\n #inputEleRef\r\n class=\"x-input-number-input\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n (ngModelChange)=\"change($event)\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"beforeButtonTpl\"\r\n [after]=\"afterButtonTpl\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n (xInput)=\"onInput($event); formControlValidator()\"\r\n (xBlur)=\"onBlur()\"\r\n ></x-input>\r\n <ng-template #afterButtonTpl>\r\n <x-button\r\n class=\"x-input-number-plus\"\r\n icon=\"fto-plus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || maxDisabled\"\r\n (click)=\"!maxDisabled && plus($event, step); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!maxDisabled && down($event, step)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n @if (invalid) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-number{display:inline-block;width:12rem}.x-input-number{margin:0;padding:0;width:100%}.x-input-number-input{width:100%}.x-input-number-input input{text-align:center}\n"] }]
227
232
  }], propDecorators: { inputNumber: [{
228
233
  type: ViewChild,
229
234
  args: ['inputNumber', { static: true }]
@@ -233,11 +238,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
233
238
  }] } });
234
239
 
235
240
  class XInputNumberModule {
236
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
237
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: XInputNumberModule, imports: [XInputNumberComponent], exports: [XInputNumberComponent] }); }
238
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInputNumberModule, imports: [XInputNumberComponent] }); }
241
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
242
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: XInputNumberModule, imports: [XInputNumberComponent], exports: [XInputNumberComponent] }); }
243
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInputNumberModule, imports: [XInputNumberComponent] }); }
239
244
  }
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XInputNumberModule, decorators: [{
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: XInputNumberModule, decorators: [{
241
246
  type: NgModule,
242
247
  args: [{
243
248
  exports: [XInputNumberComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-input-number.mjs","sources":["../../../../lib/ng-nest/ui/input-number/input-number.property.ts","../../../../lib/ng-nest/ui/input-number/input-number.component.ts","../../../../lib/ng-nest/ui/input-number/input-number.component.html","../../../../lib/ng-nest/ui/input-number/input-number.module.ts","../../../../lib/ng-nest/ui/input-number/ng-nest-ui-input-number.ts"],"sourcesContent":["import { XBoolean, XInputBoolean, XInputNumber, XNumber, XSize, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * InputNumber\r\n * @selector x-input-number\r\n * @decorator component\r\n */\r\nexport const XInputNumberPrefix = 'x-input-number';\r\n\r\nconst X_CONFIG_NAME = 'inputNumber';\r\n\r\n/**\r\n * InputNumber Property\r\n */\r\n@Component({ selector: `${XInputNumberPrefix}-property`, template: '' })\r\nexport class XInputNumberProperty extends XControlValueAccessor<any> implements XInputNumberOption {\r\n /**\r\n * @zh_CN 最小值\r\n * @en_US Minimum\r\n */\r\n @Input() @XInputNumber() min: XNumber = Number.MIN_SAFE_INTEGER;\r\n /**\r\n * @zh_CN 最大值\r\n * @en_US Max\r\n */\r\n @Input() @XInputNumber() max: XNumber = Number.MAX_SAFE_INTEGER;\r\n /**\r\n * @zh_CN 步数\r\n * @en_US Step count\r\n */\r\n @Input() @XInputNumber() step: XNumber = 1;\r\n /**\r\n * @zh_CN 按住后步进速度\r\n * @en_US Stepping speed after pressing\r\n */\r\n @Input() @XInputNumber() debounce: XNumber = 40;\r\n /**\r\n * @zh_CN 精度\r\n * @en_US Precision\r\n */\r\n @Input() @XInputNumber() precision: XNumber = 0;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') override size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n\r\n /**\r\n * @zh_CN 数字格式化\r\n * @en_US Display Formatter\r\n */\r\n @Input() formatter!: (value: number) => XNumber;\r\n}\r\n\r\n/**\r\n * InputNumber Option\r\n * @undocument true\r\n */\r\nexport interface XInputNumberOption extends XFormOption {\r\n /**\r\n * @zh_CN 最小值\r\n * @en_US Minimum\r\n */\r\n min?: XNumber;\r\n /**\r\n * @zh_CN 最大值\r\n * @en_US Max\r\n */\r\n max?: XNumber;\r\n /**\r\n * @zh_CN 步数\r\n * @en_US Step count\r\n */\r\n step?: XNumber;\r\n /**\r\n * @zh_CN 按住后步进速度\r\n * @en_US Stepping speed after pressing\r\n */\r\n debounce?: XNumber;\r\n /**\r\n * @zh_CN 精度\r\n * @en_US Precision\r\n */\r\n precision?: XNumber;\r\n\r\n /**\r\n *\r\n * @zh_CN 数字格式化\r\n * @en_US Display Formate\r\n */\r\n xFormatter?: (value: number) => XNumber;\r\n}\r\n","import { Subject, Subscription, distinctUntilChanged, fromEvent, interval } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n ViewChild,\r\n inject\r\n} from '@angular/core';\r\nimport { XIsEmpty, XNumber, XClearClass, XConfigService, isNotNil, XIsFunction } from '@ng-nest/ui/core';\r\nimport { XInputNumberPrefix, XInputNumberProperty } from './input-number.property';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XInputNumberPrefix}`,\r\n standalone: true,\r\n imports: [FormsModule, ReactiveFormsModule, XInputComponent, XButtonComponent],\r\n templateUrl: './input-number.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XInputNumberComponent)]\r\n})\r\nexport class XInputNumberComponent extends XInputNumberProperty implements OnInit {\r\n @ViewChild('inputNumber', { static: true }) inputNumber!: ElementRef<HTMLElement>;\r\n\r\n @ViewChild(XInputComponent, { static: true }) inputEleRef!: XInputComponent;\r\n\r\n override writeValue(value: any) {\r\n this.value = value;\r\n this.setDisplayValue();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n displayValue: any = '';\r\n minDisabled: boolean = false;\r\n maxDisabled: boolean = false;\r\n mousedown$!: Subscription;\r\n mouseup$!: Subscription;\r\n timer: any;\r\n icon: string = '';\r\n iconSpin = false;\r\n clearable = false;\r\n isDown = false;\r\n valueChange = new Subject<any>();\r\n\r\n document = inject(DOCUMENT);\r\n private renderer = inject(Renderer2);\r\n override cdr = inject(ChangeDetectorRef);\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit() {\r\n this.setFlex(this.inputNumber.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n this.valueChange.pipe(distinctUntilChanged()).subscribe((x) => {\r\n this.onChange && this.onChange(x);\r\n });\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n setDisplayValue() {\r\n if (!XIsEmpty(this.value) && !this.formatter) {\r\n this.displayValue = Number(this.value).toFixed(Number(this.precision));\r\n } else if (this.formatter) {\r\n const displayValue = isNotNil(this.formatter(Number(this.value))) ? this.formatter(Number(this.value)) : '';\r\n if (isNotNil(displayValue)) {\r\n this.displayValue = displayValue;\r\n }\r\n }\r\n }\r\n\r\n change(value: any) {\r\n this.verify(value);\r\n this.valueChange.next(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onBlur() {\r\n this.displayValue = this.displayValue;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n down(event: Event, limit: XNumber, increase: boolean = true): void {\r\n if (this.disabled) return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDown = true;\r\n this.timer = setTimeout(() => {\r\n this.mousedown$ = interval(Number(this.debounce)).subscribe(() => {\r\n this.plus(event, limit, increase);\r\n });\r\n this.mouseup$ = fromEvent(this.document.documentElement, 'mouseup').subscribe((event: Event) => {\r\n this.up(event);\r\n });\r\n }, 150);\r\n }\r\n\r\n up(event: Event) {\r\n if (this.disabled) return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDown = false;\r\n if (this.mousedown$) this.mousedown$.unsubscribe();\r\n if (this.mouseup$) this.mouseup$.unsubscribe();\r\n }\r\n\r\n plus(event: Event, limit: XNumber, increase: boolean = true) {\r\n if (this.disabled) return;\r\n limit = Number(limit);\r\n if (!increase) limit = -limit;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (this.timer) clearTimeout(this.timer);\r\n if (Number.isNaN(+this.value)) this.value = 0;\r\n let value = Number(this.value) + limit;\r\n this.verify(value);\r\n this.cdr.detectChanges();\r\n this.valueChange.next(this.value);\r\n }\r\n\r\n verify(value: any) {\r\n const oldValue: number = this.value;\r\n this.value = value;\r\n if (Number.isNaN(+this.value)) {\r\n this.value = oldValue;\r\n this.setDisplayValue();\r\n return;\r\n }\r\n this.maxDisabled = value >= this.max;\r\n this.minDisabled = value <= this.min;\r\n this.value = this.maxDisabled ? this.max : this.minDisabled ? this.min : value;\r\n this.setDisplayValue();\r\n }\r\n\r\n onInput(x: Event) {\r\n const input = x.target as HTMLInputElement;\r\n let value = input.value;\r\n if (XIsFunction(this.formatter)) {\r\n value = value.replace(/[^0-9]/g, '');\r\n }\r\n this.verify(value);\r\n this.inputEleRef.inputRef.nativeElement.value = this.displayValue;\r\n this.cdr.detectChanges();\r\n this.valueChange.next(this.value);\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div #inputNumber class=\"x-input-number\">\r\n <div class=\"x-input-number-row\">\r\n <ng-template #beforeButtonTpl>\r\n <x-button\r\n class=\"x-input-number-reduce\"\r\n icon=\"fto-minus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || minDisabled\"\r\n (click)=\"!minDisabled && plus($event, step, false); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!minDisabled && down($event, step, false)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n <x-input\r\n #inputEleRef\r\n class=\"x-input-number-input\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n (ngModelChange)=\"change($event)\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"beforeButtonTpl\"\r\n [after]=\"afterButtonTpl\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n (xInput)=\"onInput($event); formControlValidator()\"\r\n ></x-input>\r\n <ng-template #afterButtonTpl>\r\n <x-button\r\n class=\"x-input-number-plus\"\r\n icon=\"fto-plus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || maxDisabled\"\r\n (click)=\"!maxDisabled && plus($event, step); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!maxDisabled && down($event, step)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n @if (invalid) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XInputNumberComponent } from './input-number.component';\r\n\r\n@NgModule({\r\n exports: [XInputNumberComponent],\r\n imports: [XInputNumberComponent]\r\n})\r\nexport class XInputNumberModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-input-number.mjs","sources":["../../../../lib/ng-nest/ui/input-number/input-number.property.ts","../../../../lib/ng-nest/ui/input-number/input-number.component.ts","../../../../lib/ng-nest/ui/input-number/input-number.component.html","../../../../lib/ng-nest/ui/input-number/input-number.module.ts","../../../../lib/ng-nest/ui/input-number/ng-nest-ui-input-number.ts"],"sourcesContent":["import { XBoolean, XInputBoolean, XInputNumber, XNumber, XSize, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * InputNumber\r\n * @selector x-input-number\r\n * @decorator component\r\n */\r\nexport const XInputNumberPrefix = 'x-input-number';\r\n\r\nconst X_CONFIG_NAME = 'inputNumber';\r\n\r\n/**\r\n * InputNumber Property\r\n */\r\n@Component({ selector: `${XInputNumberPrefix}-property`, template: '' })\r\nexport class XInputNumberProperty extends XControlValueAccessor<any> implements XInputNumberOption {\r\n /**\r\n * @zh_CN 最小值\r\n * @en_US Minimum\r\n */\r\n @Input() @XInputNumber() min: XNumber = Number.MIN_SAFE_INTEGER;\r\n /**\r\n * @zh_CN 最大值\r\n * @en_US Max\r\n */\r\n @Input() @XInputNumber() max: XNumber = Number.MAX_SAFE_INTEGER;\r\n /**\r\n * @zh_CN 步数\r\n * @en_US Step count\r\n */\r\n @Input() @XInputNumber() step: XNumber = 1;\r\n /**\r\n * @zh_CN 按住后步进速度\r\n * @en_US Stepping speed after pressing\r\n */\r\n @Input() @XInputNumber() debounce: XNumber = 40;\r\n /**\r\n * @zh_CN 精度\r\n * @en_US Precision\r\n */\r\n @Input() @XInputNumber() precision: XNumber = 0;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') override size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\r\n\r\n /**\r\n * @zh_CN 数字格式化\r\n * @en_US Display Formatter\r\n */\r\n @Input() formatter!: (value: number) => XNumber;\r\n}\r\n\r\n/**\r\n * InputNumber Option\r\n * @undocument true\r\n */\r\nexport interface XInputNumberOption extends XFormOption {\r\n /**\r\n * @zh_CN 最小值\r\n * @en_US Minimum\r\n */\r\n min?: XNumber;\r\n /**\r\n * @zh_CN 最大值\r\n * @en_US Max\r\n */\r\n max?: XNumber;\r\n /**\r\n * @zh_CN 步数\r\n * @en_US Step count\r\n */\r\n step?: XNumber;\r\n /**\r\n * @zh_CN 按住后步进速度\r\n * @en_US Stepping speed after pressing\r\n */\r\n debounce?: XNumber;\r\n /**\r\n * @zh_CN 精度\r\n * @en_US Precision\r\n */\r\n precision?: XNumber;\r\n\r\n /**\r\n *\r\n * @zh_CN 数字格式化\r\n * @en_US Display Formate\r\n */\r\n xFormatter?: (value: number) => XNumber;\r\n}\r\n","import { Subject, Subscription, distinctUntilChanged, fromEvent, interval } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n ViewChild,\r\n inject\r\n} from '@angular/core';\r\nimport { XIsEmpty, XNumber, XClearClass, XConfigService, isNotNil, XIsFunction, XIsString } from '@ng-nest/ui/core';\r\nimport { XInputNumberPrefix, XInputNumberProperty } from './input-number.property';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XInputNumberPrefix}`,\r\n standalone: true,\r\n imports: [FormsModule, ReactiveFormsModule, XInputComponent, XButtonComponent],\r\n templateUrl: './input-number.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XInputNumberComponent)]\r\n})\r\nexport class XInputNumberComponent extends XInputNumberProperty implements OnInit {\r\n @ViewChild('inputNumber', { static: true }) inputNumber!: ElementRef<HTMLElement>;\r\n\r\n @ViewChild(XInputComponent, { static: true }) inputEleRef!: XInputComponent;\r\n\r\n override writeValue(value: any) {\r\n this.value = value;\r\n this.setDisplayValue();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n displayValue: any = '';\r\n minDisabled: boolean = false;\r\n maxDisabled: boolean = false;\r\n mousedown$!: Subscription;\r\n mouseup$!: Subscription;\r\n timer: any;\r\n icon: string = '';\r\n iconSpin = false;\r\n clearable = false;\r\n isDown = false;\r\n valueChange = new Subject<any>();\r\n\r\n document = inject(DOCUMENT);\r\n private renderer = inject(Renderer2);\r\n override cdr = inject(ChangeDetectorRef);\r\n configService = inject(XConfigService);\r\n\r\n ngOnInit() {\r\n this.setFlex(this.inputNumber.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n this.valueChange.pipe(distinctUntilChanged()).subscribe((x) => {\r\n this.onChange && this.onChange(x);\r\n });\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n setDisplayValue() {\r\n if (!XIsEmpty(this.value) && !this.formatter) {\r\n this.displayValue = Number(this.value).toFixed(Number(this.precision));\r\n } else if (this.formatter) {\r\n const displayValue = isNotNil(this.formatter(Number(this.value))) ? this.formatter(Number(this.value)) : '';\r\n if (isNotNil(displayValue)) {\r\n this.displayValue = displayValue;\r\n }\r\n }\r\n }\r\n\r\n change(value: any) {\r\n this.verify(value);\r\n this.valueChange.next(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onBlur() {\r\n this.displayValue = this.displayValue;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n down(event: Event, limit: XNumber, increase: boolean = true): void {\r\n if (this.disabled) return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDown = true;\r\n this.timer = setTimeout(() => {\r\n this.mousedown$ = interval(Number(this.debounce)).subscribe(() => {\r\n this.plus(event, limit, increase);\r\n });\r\n this.mouseup$ = fromEvent(this.document.documentElement, 'mouseup').subscribe((event: Event) => {\r\n this.up(event);\r\n });\r\n }, 150);\r\n }\r\n\r\n up(event: Event) {\r\n if (this.disabled) return;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDown = false;\r\n if (this.mousedown$) this.mousedown$.unsubscribe();\r\n if (this.mouseup$) this.mouseup$.unsubscribe();\r\n }\r\n\r\n plus(event: Event, limit: XNumber, increase: boolean = true) {\r\n if (this.disabled) return;\r\n limit = Number(limit);\r\n if (!increase) limit = -limit;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (this.timer) clearTimeout(this.timer);\r\n if (Number.isNaN(+this.value)) this.value = 0;\r\n let value = Number(this.value) + limit;\r\n this.verify(value);\r\n this.cdr.detectChanges();\r\n this.valueChange.next(this.value);\r\n }\r\n\r\n verify(value: string | number) {\r\n if (XIsString(value) && Number(value).toString() !== value) {\r\n return;\r\n }\r\n value = Number(Number(value).toFixed(Number(this.precision)));\r\n const oldValue: number = this.value;\r\n this.value = value;\r\n if (Number.isNaN(+this.value)) {\r\n this.value = oldValue;\r\n this.setDisplayValue();\r\n } else {\r\n this.maxDisabled = value >= Number(this.max);\r\n this.minDisabled = value <= Number(this.min);\r\n this.value = this.maxDisabled ? this.max : this.minDisabled ? this.min : value;\r\n this.setDisplayValue();\r\n }\r\n }\r\n\r\n onInput(x: Event) {\r\n const input = x.target as HTMLInputElement;\r\n let value = input.value;\r\n if (XIsFunction(this.formatter)) {\r\n value = value.replace(/[^0-9]/g, '');\r\n }\r\n this.verify(value);\r\n this.inputEleRef.inputRef.nativeElement.value = this.displayValue;\r\n this.cdr.detectChanges();\r\n this.valueChange.next(this.value);\r\n }\r\n\r\n formControlChanges() {\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<div #inputNumber class=\"x-input-number\">\r\n <div class=\"x-input-number-row\">\r\n <ng-template #beforeButtonTpl>\r\n <x-button\r\n class=\"x-input-number-reduce\"\r\n icon=\"fto-minus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || minDisabled\"\r\n (click)=\"!minDisabled && plus($event, step, false); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!minDisabled && down($event, step, false)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n <x-input\r\n #inputEleRef\r\n class=\"x-input-number-input\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n (ngModelChange)=\"change($event)\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"beforeButtonTpl\"\r\n [after]=\"afterButtonTpl\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n (xInput)=\"onInput($event); formControlValidator()\"\r\n (xBlur)=\"onBlur()\"\r\n ></x-input>\r\n <ng-template #afterButtonTpl>\r\n <x-button\r\n class=\"x-input-number-plus\"\r\n icon=\"fto-plus\"\r\n [size]=\"size\"\r\n [onlyIcon]=\"!bordered\"\r\n [disabled]=\"disabled || maxDisabled\"\r\n (click)=\"!maxDisabled && plus($event, step); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!maxDisabled && down($event, step)\"\r\n (mouseup)=\"up($event)\"\r\n ></x-button>\r\n </ng-template>\r\n @if (invalid) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XInputNumberComponent } from './input-number.component';\r\n\r\n@NgModule({\r\n exports: [XInputNumberComponent],\r\n imports: [XInputNumberComponent]\r\n})\r\nexport class XInputNumberModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}