@veltra/desktop 1.2.9 → 1.2.12

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 (470) hide show
  1. package/dist/components/action/action-group.js.map +1 -1
  2. package/dist/components/action/action-group.vue.d.ts +2 -2
  3. package/dist/components/action/action-group.vue_vue_type_script_setup_true_lang.js +1 -1
  4. package/dist/components/action/action-group.vue_vue_type_script_setup_true_lang.js.map +1 -1
  5. package/dist/components/action/action.js +2 -2
  6. package/dist/components/action/action.js.map +1 -1
  7. package/dist/components/action/action.vue.d.ts +1 -1
  8. package/dist/components/auto-complete/auto-complete.js +4 -4
  9. package/dist/components/auto-complete/auto-complete.js.map +1 -1
  10. package/dist/components/auto-complete/auto-complete.vue.d.ts +2 -2
  11. package/dist/components/auto-complete/use-keyboard.js.map +1 -1
  12. package/dist/components/badge/badge.js +2 -2
  13. package/dist/components/badge/badge.js.map +1 -1
  14. package/dist/components/batch-edit/batch-edit-form.js +2 -2
  15. package/dist/components/batch-edit/batch-edit-form.js.map +1 -1
  16. package/dist/components/batch-edit/batch-edit-list.js +2 -2
  17. package/dist/components/batch-edit/batch-edit-list.js.map +1 -1
  18. package/dist/components/batch-edit/batch-edit.js +6 -3
  19. package/dist/components/batch-edit/batch-edit.js.map +1 -1
  20. package/dist/components/batch-edit/use-edit-state.js +7 -3
  21. package/dist/components/batch-edit/use-edit-state.js.map +1 -1
  22. package/dist/components/batch-edit/use-features.js.map +1 -1
  23. package/dist/components/batch-edit/use-handlers.js.map +1 -1
  24. package/dist/components/breadcrumb/breadcrumb.js +2 -2
  25. package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
  26. package/dist/components/button/button-group.js +2 -2
  27. package/dist/components/button/button-group.js.map +1 -1
  28. package/dist/components/button/button.js +2 -2
  29. package/dist/components/button/button.js.map +1 -1
  30. package/dist/components/calendar/calendar.js +3 -3
  31. package/dist/components/calendar/calendar.js.map +1 -1
  32. package/dist/components/calendar/utils.js.map +1 -1
  33. package/dist/components/card/card-action.js +2 -2
  34. package/dist/components/card/card-action.js.map +1 -1
  35. package/dist/components/card/card-content.js +2 -2
  36. package/dist/components/card/card-content.js.map +1 -1
  37. package/dist/components/card/card-cover.js +2 -2
  38. package/dist/components/card/card-cover.js.map +1 -1
  39. package/dist/components/card/card-header.js +2 -2
  40. package/dist/components/card/card-header.js.map +1 -1
  41. package/dist/components/card/card.js +2 -2
  42. package/dist/components/card/card.js.map +1 -1
  43. package/dist/components/cascade/cascade-panel-item.js +1 -1
  44. package/dist/components/cascade/cascade-panel-item.js.map +1 -1
  45. package/dist/components/cascade/cascade.js +7 -3
  46. package/dist/components/cascade/cascade.js.map +1 -1
  47. package/dist/components/cascade/cascade.vue.d.ts +7 -4
  48. package/dist/components/cascade/use-check.js +3 -1
  49. package/dist/components/cascade/use-check.js.map +1 -1
  50. package/dist/components/cascade/use-data-map.js.map +1 -1
  51. package/dist/components/cascade/use-select.js +30 -14
  52. package/dist/components/cascade/use-select.js.map +1 -1
  53. package/dist/components/check-tag/check-tag.js +2 -2
  54. package/dist/components/check-tag/check-tag.js.map +1 -1
  55. package/dist/components/checkbox/checkbox-button.js +4 -4
  56. package/dist/components/checkbox/checkbox-button.js.map +1 -1
  57. package/dist/components/checkbox/checkbox-button.vue.d.ts +2 -2
  58. package/dist/components/checkbox/checkbox.js +4 -4
  59. package/dist/components/checkbox/checkbox.js.map +1 -1
  60. package/dist/components/checkbox/checkbox.vue.d.ts +1 -1
  61. package/dist/components/checkbox-group/checkbox-group.js +4 -4
  62. package/dist/components/checkbox-group/checkbox-group.js.map +1 -1
  63. package/dist/components/checkbox-group/checkbox-group.vue.d.ts +2 -2
  64. package/dist/components/code-editor/basic-setup.js +44 -0
  65. package/dist/components/code-editor/basic-setup.js.map +1 -0
  66. package/dist/components/code-editor/code-editor.js +5 -5
  67. package/dist/components/code-editor/code-editor.js.map +1 -1
  68. package/dist/components/code-editor/code-editor.vue.d.ts +1 -1
  69. package/dist/components/collapse/collapse-item.js +2 -2
  70. package/dist/components/collapse/collapse-item.js.map +1 -1
  71. package/dist/components/collapse/collapse.js +2 -2
  72. package/dist/components/collapse/collapse.js.map +1 -1
  73. package/dist/components/condition-editor/components/condition-group.js +2 -2
  74. package/dist/components/condition-editor/components/condition-group.js.map +1 -1
  75. package/dist/components/condition-editor/components/condition-row.js +2 -2
  76. package/dist/components/condition-editor/components/condition-row.js.map +1 -1
  77. package/dist/components/condition-editor/condition-editor.js +2 -2
  78. package/dist/components/condition-editor/condition-editor.js.map +1 -1
  79. package/dist/components/condition-editor/core/evaluator.js.map +1 -1
  80. package/dist/components/contextmenu/contextmenu-item.js +2 -2
  81. package/dist/components/contextmenu/contextmenu-item.js.map +1 -1
  82. package/dist/components/contextmenu/contextmenu-panel.js +2 -2
  83. package/dist/components/contextmenu/contextmenu-panel.js.map +1 -1
  84. package/dist/components/contextmenu/contextmenu-sub.js +2 -2
  85. package/dist/components/contextmenu/contextmenu-sub.js.map +1 -1
  86. package/dist/components/contextmenu/contextmenu.js +2 -2
  87. package/dist/components/contextmenu/contextmenu.js.map +1 -1
  88. package/dist/components/date-panel/date-panel.js +2 -2
  89. package/dist/components/date-panel/date-panel.js.map +1 -1
  90. package/dist/components/date-panel/date-panel.vue.d.ts +1 -1
  91. package/dist/components/date-panel/headers/day.js +2 -2
  92. package/dist/components/date-panel/headers/day.js.map +1 -1
  93. package/dist/components/date-panel/headers/month.js +2 -2
  94. package/dist/components/date-panel/headers/month.js.map +1 -1
  95. package/dist/components/date-panel/headers/year.js +2 -2
  96. package/dist/components/date-panel/headers/year.js.map +1 -1
  97. package/dist/components/date-panel/panels/day.js +2 -2
  98. package/dist/components/date-panel/panels/day.js.map +1 -1
  99. package/dist/components/date-panel/panels/month.js +2 -2
  100. package/dist/components/date-panel/panels/month.js.map +1 -1
  101. package/dist/components/date-panel/panels/year.js +2 -2
  102. package/dist/components/date-panel/panels/year.js.map +1 -1
  103. package/dist/components/date-panel/use-panel-date.js.map +1 -1
  104. package/dist/components/date-picker/date-picker.js +2 -2
  105. package/dist/components/date-picker/date-picker.js.map +1 -1
  106. package/dist/components/date-picker/date-picker.vue.d.ts +2 -2
  107. package/dist/components/date-range-picker/date-range-picker.js +2 -2
  108. package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
  109. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +2 -2
  110. package/dist/components/dialog/dialog.js +4 -4
  111. package/dist/components/dialog/dialog.js.map +1 -1
  112. package/dist/components/drawer/drawer.js +4 -4
  113. package/dist/components/drawer/drawer.js.map +1 -1
  114. package/dist/components/dropdown/dropdown.js +2 -2
  115. package/dist/components/dropdown/dropdown.js.map +1 -1
  116. package/dist/components/dual-nav/dual-nav-app.js +2 -2
  117. package/dist/components/dual-nav/dual-nav-app.js.map +1 -1
  118. package/dist/components/dual-nav/dual-nav.js +2 -2
  119. package/dist/components/dual-nav/dual-nav.js.map +1 -1
  120. package/dist/components/empty/empty.js +2 -2
  121. package/dist/components/empty/empty.js.map +1 -1
  122. package/dist/components/empty/empty.vue.d.ts +1 -1
  123. package/dist/components/expression-editor/components/path-preview.js +2 -2
  124. package/dist/components/expression-editor/components/path-preview.js.map +1 -1
  125. package/dist/components/expression-editor/components/variable-picker.js +2 -2
  126. package/dist/components/expression-editor/components/variable-picker.js.map +1 -1
  127. package/dist/components/expression-editor/core/editor.js.map +1 -1
  128. package/dist/components/expression-editor/core/model.js.map +1 -1
  129. package/dist/components/expression-editor/expression-editor.js +2 -2
  130. package/dist/components/expression-editor/expression-editor.js.map +1 -1
  131. package/dist/components/file-picker/file-picker.js +2 -2
  132. package/dist/components/file-picker/file-picker.js.map +1 -1
  133. package/dist/components/file-picker/file-picker.vue.d.ts +1 -1
  134. package/dist/components/file-picker/helper.js.map +1 -1
  135. package/dist/components/file-viewer/file-viewer.js +4 -4
  136. package/dist/components/file-viewer/file-viewer.js.map +1 -1
  137. package/dist/components/file-viewer/helper.js.map +1 -1
  138. package/dist/components/file-viewer/previewers/docx-previewer.js +2 -2
  139. package/dist/components/file-viewer/previewers/docx-previewer.js.map +1 -1
  140. package/dist/components/file-viewer/previewers/image-previewer.js +2 -2
  141. package/dist/components/file-viewer/previewers/image-previewer.js.map +1 -1
  142. package/dist/components/file-viewer/previewers/pdf-previewer.js +2 -2
  143. package/dist/components/file-viewer/previewers/pdf-previewer.js.map +1 -1
  144. package/dist/components/file-viewer/previewers/pdf-viewport-scroll.js +2 -2
  145. package/dist/components/file-viewer/previewers/pdf-viewport-scroll.js.map +1 -1
  146. package/dist/components/file-viewer/previewers/pdf-zoom-bridge.js +2 -2
  147. package/dist/components/file-viewer/previewers/pdf-zoom-bridge.js.map +1 -1
  148. package/dist/components/file-viewer/previewers/sheet-previewer.js +2 -2
  149. package/dist/components/file-viewer/previewers/sheet-previewer.js.map +1 -1
  150. package/dist/components/file-viewer/previewers/text-previewer.js +2 -2
  151. package/dist/components/file-viewer/previewers/text-previewer.js.map +1 -1
  152. package/dist/components/file-viewer/previewers/video-previewer.js +2 -2
  153. package/dist/components/file-viewer/previewers/video-previewer.js.map +1 -1
  154. package/dist/components/file-viewer/sheet-parser.js.map +1 -1
  155. package/dist/components/float-button/float-button.js +2 -2
  156. package/dist/components/float-button/float-button.js.map +1 -1
  157. package/dist/components/form/form.js.map +1 -1
  158. package/dist/components/form/form.vue_vue_type_script_setup_true_lang.js +1 -1
  159. package/dist/components/form/form.vue_vue_type_script_setup_true_lang.js.map +1 -1
  160. package/dist/components/form/use-form-fields.js.map +1 -1
  161. package/dist/components/form/use-node-interceptor.js.map +1 -1
  162. package/dist/components/form-item/form-item.js.map +1 -1
  163. package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js +1 -1
  164. package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
  165. package/dist/components/form-item/validate.js.map +1 -1
  166. package/dist/components/gantt-chart/gantt-chart.js +2 -2
  167. package/dist/components/gantt-chart/gantt-chart.js.map +1 -1
  168. package/dist/components/grid/breakpoint.js.map +1 -1
  169. package/dist/components/grid/grid-item.js +2 -2
  170. package/dist/components/grid/grid-item.js.map +1 -1
  171. package/dist/components/grid/grid.js +2 -2
  172. package/dist/components/grid/grid.js.map +1 -1
  173. package/dist/components/grid-input/grid-input.js +2 -2
  174. package/dist/components/grid-input/grid-input.js.map +1 -1
  175. package/dist/components/group-input/group-input.js +2 -2
  176. package/dist/components/group-input/group-input.js.map +1 -1
  177. package/dist/components/icon/icon.js +2 -2
  178. package/dist/components/icon/icon.js.map +1 -1
  179. package/dist/components/input/input.js.map +1 -1
  180. package/dist/components/input/input.vue.d.ts +4 -4
  181. package/dist/components/input/input.vue_vue_type_script_setup_true_lang.js +1 -1
  182. package/dist/components/input/input.vue_vue_type_script_setup_true_lang.js.map +1 -1
  183. package/dist/components/kbd/kbd.js +2 -2
  184. package/dist/components/kbd/kbd.js.map +1 -1
  185. package/dist/components/layout/layout-resizer.js +2 -2
  186. package/dist/components/layout/layout-resizer.js.map +1 -1
  187. package/dist/components/layout/layout.js +2 -2
  188. package/dist/components/layout/layout.js.map +1 -1
  189. package/dist/components/list/list-item.js +2 -2
  190. package/dist/components/list/list-item.js.map +1 -1
  191. package/dist/components/list/list.js +2 -2
  192. package/dist/components/list/list.js.map +1 -1
  193. package/dist/components/loading/directive.js.map +1 -1
  194. package/dist/components/loading/loading.js +2 -2
  195. package/dist/components/loading/loading.js.map +1 -1
  196. package/dist/components/message/message-box.js +2 -2
  197. package/dist/components/message/message-box.js.map +1 -1
  198. package/dist/components/message/message.js +2 -2
  199. package/dist/components/message/message.js.map +1 -1
  200. package/dist/components/message/message2.js.map +1 -1
  201. package/dist/components/message-confirm/message-confirm.js +2 -2
  202. package/dist/components/message-confirm/message-confirm.js.map +1 -1
  203. package/dist/components/multi-select/multi-select-option.js +2 -2
  204. package/dist/components/multi-select/multi-select-option.js.map +1 -1
  205. package/dist/components/multi-select/multi-select.js +4 -4
  206. package/dist/components/multi-select/multi-select.js.map +1 -1
  207. package/dist/components/multi-select/multi-select.vue.d.ts +3 -3
  208. package/dist/components/multi-tree-select/multi-tree-select.js +4 -4
  209. package/dist/components/multi-tree-select/multi-tree-select.js.map +1 -1
  210. package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +5 -5
  211. package/dist/components/nav/nav-icon.js +2 -2
  212. package/dist/components/nav/nav-icon.js.map +1 -1
  213. package/dist/components/nav/nav-item-collapsed.js +2 -2
  214. package/dist/components/nav/nav-item-collapsed.js.map +1 -1
  215. package/dist/components/nav/nav-item.js +2 -2
  216. package/dist/components/nav/nav-item.js.map +1 -1
  217. package/dist/components/nav/nav-sub-collapsed.js +2 -2
  218. package/dist/components/nav/nav-sub-collapsed.js.map +1 -1
  219. package/dist/components/nav/nav-sub.js +2 -2
  220. package/dist/components/nav/nav-sub.js.map +1 -1
  221. package/dist/components/nav/nav.js +2 -2
  222. package/dist/components/nav/nav.js.map +1 -1
  223. package/dist/components/notification/index.js.map +1 -1
  224. package/dist/components/notification/notification.js +2 -2
  225. package/dist/components/notification/notification.js.map +1 -1
  226. package/dist/components/number/number.js +2 -2
  227. package/dist/components/number/number.js.map +1 -1
  228. package/dist/components/number-input/number-input.js +4 -4
  229. package/dist/components/number-input/number-input.js.map +1 -1
  230. package/dist/components/number-input/number-input.vue.d.ts +4 -4
  231. package/dist/components/number-range-input/number-range-input.js +4 -4
  232. package/dist/components/number-range-input/number-range-input.js.map +1 -1
  233. package/dist/components/number-range-input/number-range-input.vue.d.ts +2 -2
  234. package/dist/components/paginator/paginator.js +4 -4
  235. package/dist/components/paginator/paginator.js.map +1 -1
  236. package/dist/components/palette/color-transform.js.map +1 -1
  237. package/dist/components/palette/palette-alpha.js +2 -2
  238. package/dist/components/palette/palette-alpha.js.map +1 -1
  239. package/dist/components/palette/palette-color-switch.js +1 -1
  240. package/dist/components/palette/palette-color-switch.js.map +1 -1
  241. package/dist/components/palette/palette-hue.js +2 -2
  242. package/dist/components/palette/palette-hue.js.map +1 -1
  243. package/dist/components/palette/palette-sv.js +2 -2
  244. package/dist/components/palette/palette-sv.js.map +1 -1
  245. package/dist/components/palette/palette.js +3 -3
  246. package/dist/components/palette/palette.js.map +1 -1
  247. package/dist/components/palette/palette.vue.d.ts +1 -1
  248. package/dist/components/palette/use-hsv.js.map +1 -1
  249. package/dist/components/password-input/password-input.js +3 -3
  250. package/dist/components/password-input/password-input.js.map +1 -1
  251. package/dist/components/password-input/password-input.vue.d.ts +2 -2
  252. package/dist/components/pop-confirm/pop-confirm.js +2 -2
  253. package/dist/components/pop-confirm/pop-confirm.js.map +1 -1
  254. package/dist/components/pop-confirm/pop-confirm.vue.d.ts +1 -1
  255. package/dist/components/progress/progress.js +2 -2
  256. package/dist/components/progress/progress.js.map +1 -1
  257. package/dist/components/progress-nodes/progress-nodes.js +2 -2
  258. package/dist/components/progress-nodes/progress-nodes.js.map +1 -1
  259. package/dist/components/radio/radio.js +4 -4
  260. package/dist/components/radio/radio.js.map +1 -1
  261. package/dist/components/radio-group/radio-group.js +4 -4
  262. package/dist/components/radio-group/radio-group.js.map +1 -1
  263. package/dist/components/radio-group/radio-group.vue.d.ts +2 -2
  264. package/dist/components/rich-text-editor/rich-text-editor.js +2 -2
  265. package/dist/components/rich-text-editor/rich-text-editor.js.map +1 -1
  266. package/dist/components/rich-text-editor/rich-text-editor.vue.d.ts +2 -2
  267. package/dist/components/rich-text-editor/toolbar.js +1 -1
  268. package/dist/components/rich-text-editor/toolbar.js.map +1 -1
  269. package/dist/components/scroll/scroll-bar.js +2 -2
  270. package/dist/components/scroll/scroll-bar.js.map +1 -1
  271. package/dist/components/scroll/scroll.js +2 -2
  272. package/dist/components/scroll/scroll.js.map +1 -1
  273. package/dist/components/select/select.js +4 -4
  274. package/dist/components/select/select.js.map +1 -1
  275. package/dist/components/select/select.vue.d.ts +2 -2
  276. package/dist/components/select/use-keyboard.js.map +1 -1
  277. package/dist/components/select/use-options.js.map +1 -1
  278. package/dist/components/slider/slider-thumb.js +1 -1
  279. package/dist/components/slider/slider-thumb.js.map +1 -1
  280. package/dist/components/slider/slider.js +2 -2
  281. package/dist/components/slider/slider.js.map +1 -1
  282. package/dist/components/steps/steps.js +2 -2
  283. package/dist/components/steps/steps.js.map +1 -1
  284. package/dist/components/steps/steps.vue.d.ts +3 -3
  285. package/dist/components/switch/switch.js +4 -4
  286. package/dist/components/switch/switch.js.map +1 -1
  287. package/dist/components/switch/switch.vue.d.ts +1 -1
  288. package/dist/components/table/table-body.js +2 -2
  289. package/dist/components/table/table-body.js.map +1 -1
  290. package/dist/components/table/table-cell.js +2 -2
  291. package/dist/components/table/table-cell.js.map +1 -1
  292. package/dist/components/table/table-foot.js +2 -2
  293. package/dist/components/table/table-foot.js.map +1 -1
  294. package/dist/components/table/table-head.js.map +1 -1
  295. package/dist/components/table/table-row.js.map +1 -1
  296. package/dist/components/table/table.js +2 -2
  297. package/dist/components/table/table.js.map +1 -1
  298. package/dist/components/table/use-check.js.map +1 -1
  299. package/dist/components/table/use-col-resize.js.map +1 -1
  300. package/dist/components/table/use-columns.js.map +1 -1
  301. package/dist/components/table/use-rows.js.map +1 -1
  302. package/dist/components/table/use-table.js.map +1 -1
  303. package/dist/components/table-editor/table-editor.js +2 -2
  304. package/dist/components/table-editor/table-editor.js.map +1 -1
  305. package/dist/components/tabs/tabs-horizontal.js +4 -4
  306. package/dist/components/tabs/tabs-horizontal.js.map +1 -1
  307. package/dist/components/tabs/tabs-horizontal.vue.d.ts +2 -2
  308. package/dist/components/tabs/tabs-vertical.js +4 -4
  309. package/dist/components/tabs/tabs-vertical.js.map +1 -1
  310. package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
  311. package/dist/components/tabs/tabs.js +4 -4
  312. package/dist/components/tabs/tabs.js.map +1 -1
  313. package/dist/components/tabs/tabs.vue.d.ts +2 -2
  314. package/dist/components/tag/tag.js +2 -2
  315. package/dist/components/tag/tag.js.map +1 -1
  316. package/dist/components/text/text.js +2 -2
  317. package/dist/components/text/text.js.map +1 -1
  318. package/dist/components/textarea/textarea.js +4 -4
  319. package/dist/components/textarea/textarea.js.map +1 -1
  320. package/dist/components/textarea/textarea.vue.d.ts +4 -4
  321. package/dist/components/theme/theme.js +1 -1
  322. package/dist/components/theme/theme.js.map +1 -1
  323. package/dist/components/tip/tip.js +2 -2
  324. package/dist/components/tip/tip.js.map +1 -1
  325. package/dist/components/tip/tip.vue.d.ts +1 -1
  326. package/dist/components/tip/use-nest.js.map +1 -1
  327. package/dist/components/tree/tree-node.js +2 -2
  328. package/dist/components/tree/tree-node.js.map +1 -1
  329. package/dist/components/tree/tree-node2.js.map +1 -1
  330. package/dist/components/tree/tree.js +2 -2
  331. package/dist/components/tree/tree.js.map +1 -1
  332. package/dist/components/tree/use-check.js.map +1 -1
  333. package/dist/components/tree-select/tree-select.js +7 -6
  334. package/dist/components/tree-select/tree-select.js.map +1 -1
  335. package/dist/components/tree-select/tree-select.vue.d.ts +7 -6
  336. package/dist/components/watermark/watermark.js +2 -2
  337. package/dist/components/watermark/watermark.js.map +1 -1
  338. package/dist/types/cascade.d.ts +10 -6
  339. package/dist/types/tree-select.d.ts +2 -1
  340. package/package.json +24 -20
  341. package/src/components/action/action-group.vue +1 -1
  342. package/src/components/action/action.vue +1 -1
  343. package/src/components/auto-complete/auto-complete.vue +1 -1
  344. package/src/components/badge/badge.vue +1 -1
  345. package/src/components/batch-edit/batch-edit-form.vue +1 -2
  346. package/src/components/batch-edit/batch-edit-list.vue +1 -1
  347. package/src/components/batch-edit/batch-edit.vue +2 -2
  348. package/src/components/batch-edit/use-edit-state.ts +12 -6
  349. package/src/components/breadcrumb/breadcrumb.vue +1 -1
  350. package/src/components/button/button-group.vue +1 -1
  351. package/src/components/button/button.vue +1 -1
  352. package/src/components/calendar/calendar.vue +1 -1
  353. package/src/components/card/card-action.vue +1 -1
  354. package/src/components/card/card-content.vue +1 -1
  355. package/src/components/card/card-cover.vue +1 -1
  356. package/src/components/card/card-header.vue +1 -1
  357. package/src/components/card/card.vue +1 -1
  358. package/src/components/cascade/cascade.vue +3 -2
  359. package/src/components/cascade/use-check.ts +3 -1
  360. package/src/components/cascade/use-select.ts +43 -29
  361. package/src/components/check-tag/check-tag.vue +1 -1
  362. package/src/components/checkbox/checkbox-button.vue +1 -1
  363. package/src/components/checkbox/checkbox.vue +1 -1
  364. package/src/components/checkbox-group/checkbox-group.vue +1 -1
  365. package/src/components/code-editor/basic-setup.ts +63 -0
  366. package/src/components/code-editor/code-editor.vue +3 -3
  367. package/src/components/collapse/collapse-item.vue +1 -1
  368. package/src/components/collapse/collapse.vue +1 -1
  369. package/src/components/condition-editor/components/condition-group.vue +1 -1
  370. package/src/components/condition-editor/components/condition-row.vue +1 -1
  371. package/src/components/condition-editor/condition-editor.vue +1 -1
  372. package/src/components/contextmenu/contextmenu-item.vue +1 -1
  373. package/src/components/contextmenu/contextmenu-panel.vue +1 -1
  374. package/src/components/contextmenu/contextmenu-sub.vue +1 -1
  375. package/src/components/contextmenu/contextmenu.vue +1 -1
  376. package/src/components/date-panel/date-panel.vue +1 -1
  377. package/src/components/date-panel/headers/day.vue +1 -1
  378. package/src/components/date-panel/headers/month.vue +1 -1
  379. package/src/components/date-panel/headers/year.vue +1 -1
  380. package/src/components/date-panel/panels/day.vue +1 -1
  381. package/src/components/date-panel/panels/month.vue +1 -1
  382. package/src/components/date-panel/panels/year.vue +1 -1
  383. package/src/components/date-picker/date-picker.vue +1 -1
  384. package/src/components/date-range-picker/date-range-picker.vue +1 -1
  385. package/src/components/dialog/dialog.vue +1 -1
  386. package/src/components/drawer/drawer.vue +1 -1
  387. package/src/components/dropdown/dropdown.vue +1 -1
  388. package/src/components/dual-nav/dual-nav-app.vue +1 -1
  389. package/src/components/dual-nav/dual-nav.vue +1 -1
  390. package/src/components/empty/empty.vue +1 -1
  391. package/src/components/expression-editor/components/path-preview.vue +1 -1
  392. package/src/components/expression-editor/components/variable-picker.vue +1 -1
  393. package/src/components/expression-editor/expression-editor.vue +1 -1
  394. package/src/components/file-picker/file-picker.vue +1 -1
  395. package/src/components/file-viewer/file-viewer.vue +1 -1
  396. package/src/components/file-viewer/previewers/docx-previewer.vue +1 -1
  397. package/src/components/file-viewer/previewers/image-previewer.vue +1 -1
  398. package/src/components/file-viewer/previewers/pdf-previewer.vue +1 -1
  399. package/src/components/file-viewer/previewers/pdf-viewport-scroll.vue +1 -1
  400. package/src/components/file-viewer/previewers/pdf-zoom-bridge.vue +1 -1
  401. package/src/components/file-viewer/previewers/sheet-previewer.vue +1 -1
  402. package/src/components/file-viewer/previewers/text-previewer.vue +1 -1
  403. package/src/components/file-viewer/previewers/video-previewer.vue +1 -1
  404. package/src/components/float-button/float-button.vue +1 -1
  405. package/src/components/form/form.vue +1 -1
  406. package/src/components/form-item/form-item.vue +1 -1
  407. package/src/components/gantt-chart/gantt-chart.vue +1 -1
  408. package/src/components/grid/grid-item.vue +1 -1
  409. package/src/components/grid/grid.vue +1 -1
  410. package/src/components/grid-input/grid-input.vue +1 -1
  411. package/src/components/group-input/group-input.vue +1 -1
  412. package/src/components/icon/icon.vue +1 -1
  413. package/src/components/input/input.vue +1 -1
  414. package/src/components/kbd/kbd.vue +1 -1
  415. package/src/components/layout/layout-resizer.vue +1 -1
  416. package/src/components/layout/layout.vue +1 -1
  417. package/src/components/list/list-item.vue +1 -1
  418. package/src/components/list/list.vue +1 -1
  419. package/src/components/loading/loading.vue +1 -1
  420. package/src/components/message/message-box.vue +1 -1
  421. package/src/components/message/message.vue +1 -1
  422. package/src/components/message-confirm/message-confirm.vue +1 -1
  423. package/src/components/multi-select/multi-select-option.vue +1 -1
  424. package/src/components/multi-select/multi-select.vue +1 -1
  425. package/src/components/multi-tree-select/multi-tree-select.vue +1 -1
  426. package/src/components/nav/nav-icon.vue +1 -1
  427. package/src/components/nav/nav-item-collapsed.vue +1 -1
  428. package/src/components/nav/nav-item.vue +1 -1
  429. package/src/components/nav/nav-sub-collapsed.vue +1 -1
  430. package/src/components/nav/nav-sub.vue +1 -1
  431. package/src/components/nav/nav.vue +1 -1
  432. package/src/components/notification/notification.vue +1 -1
  433. package/src/components/number/number.vue +1 -1
  434. package/src/components/number-input/number-input.vue +1 -1
  435. package/src/components/number-range-input/number-range-input.vue +1 -1
  436. package/src/components/paginator/paginator.vue +1 -1
  437. package/src/components/palette/palette-alpha.vue +1 -1
  438. package/src/components/palette/palette-hue.vue +1 -1
  439. package/src/components/palette/palette-sv.vue +1 -1
  440. package/src/components/palette/palette.vue +1 -1
  441. package/src/components/password-input/password-input.vue +1 -1
  442. package/src/components/pop-confirm/pop-confirm.vue +1 -1
  443. package/src/components/progress/progress.vue +1 -1
  444. package/src/components/progress-nodes/progress-nodes.vue +1 -1
  445. package/src/components/radio/radio.vue +1 -1
  446. package/src/components/radio-group/radio-group.vue +1 -1
  447. package/src/components/scroll/scroll-bar.vue +1 -1
  448. package/src/components/scroll/scroll.vue +1 -1
  449. package/src/components/select/select.vue +1 -1
  450. package/src/components/slider/slider.vue +1 -1
  451. package/src/components/steps/steps.vue +1 -1
  452. package/src/components/switch/switch.vue +1 -1
  453. package/src/components/table/table-body.vue +1 -1
  454. package/src/components/table/table-cell.vue +1 -1
  455. package/src/components/table/table-foot.vue +1 -1
  456. package/src/components/table/table.vue +1 -1
  457. package/src/components/table-editor/table-editor.vue +1 -1
  458. package/src/components/tabs/tabs-horizontal.vue +1 -1
  459. package/src/components/tabs/tabs-vertical.vue +1 -1
  460. package/src/components/tabs/tabs.vue +1 -1
  461. package/src/components/tag/tag.vue +1 -1
  462. package/src/components/text/text.vue +1 -1
  463. package/src/components/textarea/textarea.vue +1 -1
  464. package/src/components/tip/tip.vue +1 -1
  465. package/src/components/tree/tree-node.vue +1 -1
  466. package/src/components/tree/tree.vue +1 -1
  467. package/src/components/tree-select/tree-select.vue +3 -3
  468. package/src/components/watermark/watermark.vue +1 -1
  469. package/src/types/cascade.ts +10 -6
  470. package/src/types/tree-select.ts +2 -1
@@ -11,10 +11,10 @@ import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
11
11
  import { ArrowDown, Close, Search } from "@veltra/icons/normal";
12
12
  import { dfs, o } from "@cat-kit/core";
13
13
  //#region src/components/multi-tree-select/multi-tree-select.vue
14
- const _sfc_main = /* @__PURE__ */ defineComponent({
15
- name: "MultiTreeSelect",
14
+ const _sfc_main = /*@__PURE__*/ defineComponent({
15
+ name: "UMultiTreeSelect",
16
16
  __name: "multi-tree-select",
17
- props: /* @__PURE__ */ mergeModels({
17
+ props: /*@__PURE__*/ mergeModels({
18
18
  modelValue: {},
19
19
  placeholder: { default: "请选择" },
20
20
  clearable: {
@@ -61,7 +61,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
61
61
  "modelValue": { default: () => [] },
62
62
  "modelModifiers": {}
63
63
  }),
64
- emits: /* @__PURE__ */ mergeModels([
64
+ emits: /*@__PURE__*/ mergeModels([
65
65
  "clear",
66
66
  "update:modelValue",
67
67
  "change"
@@ -1 +1 @@
1
- {"version":3,"file":"multi-tree-select.js","names":[],"sources":["../../../src/components/multi-tree-select/multi-tree-select.vue"],"sourcesContent":["<template>\n <u-dropdown\n v-if=\"!readonly\"\n :class=\"[cls.b, cls.m(size), bem.is('disabled', disabled)]\"\n trigger=\"click\"\n :content-class=\"[cls.e('panel'), cls.em('panel', size), contentClass]\"\n :content-style=\"contentStyle\"\n :disabled=\"disabled\"\n @mouseenter=\"hovered = true\"\n @mouseleave=\"hovered = false\"\n ref=\"dropdownRef\"\n :min-width=\"minWidth\"\n :width=\"width\"\n @update:visible=\"handleDropdownVisible\"\n >\n <template #trigger>\n <!-- 默认展示 -->\n <span :class=\"cls.e('placeholder')\" v-show=\"!tags.length\">\n {{ placeholder }}\n </span>\n\n <!-- 选择的数据项 -->\n <div v-if=\"tags.length\" :class=\"cls.e('tags')\">\n <u-tag\n v-for=\"(tag, index) in visibleTags\"\n :key=\"tag[valueKey]\"\n :closable=\"!disabled\"\n @close=\"handleRemove(index)\"\n >\n {{ tag[labelKey] }}\n </u-tag>\n <u-tag v-if=\"hiddenCount > 0\">+{{ hiddenCount }}</u-tag>\n </div>\n <!-- 清空 icon -->\n <transition name=\"zoom-in\" mode=\"out-in\">\n <u-icon v-if=\"showClear\" :class=\"cls.e('clear')\" @click.stop=\"handleClear\">\n <Close />\n </u-icon>\n\n <!-- 下拉 icon -->\n <u-icon :class=\"cls.e(`arrow`)\" v-else-if=\"!readonly\">\n <ArrowDown />\n </u-icon>\n </transition>\n </template>\n <template #content>\n <div :class=\"[cls.e('content-header'), cls.m(size)]\">\n <!-- 全选 -->\n <u-checkbox\n :model-value=\"allChecked\"\n :indeterminate=\"indeterminate\"\n @update:model-value=\"handleCheckAll\"\n >\n 全选\n </u-checkbox>\n\n <u-button size=\"small\" text type=\"primary\" @click=\"handleToggleExpandAll\">\n {{ allExpanded ? '收起全部' : '展开全部' }}\n </u-button>\n </div>\n <!-- 过滤器 -->\n <div v-if=\"filterable\" :class=\"[cls.e('content-filter'), cls.m(size)]\">\n <u-input placeholder=\"输入关键字进行过滤\" v-model=\"qs\">\n <template #suffix>\n <u-icon><Search /></u-icon>\n </template>\n </u-input>\n </div>\n <!-- 菜单列表 -->\n <u-tree\n v-bind=\"treeProps\"\n v-model:checked=\"model\"\n @update:checked=\"handleCheck\"\n ref=\"treeRef\"\n :class=\"cls.e('content-tree')\"\n checkable\n :data=\"data\"\n :slots=\"slots\"\n scroll-to-view\n ></u-tree>\n </template>\n </u-dropdown>\n\n <div v-else-if=\"model.length\" :class=\"[cls.m(size), cls.e('readonly-tags')]\">\n <div :class=\"cls.e('tags')\">\n <u-tag v-for=\"option of tags\" :key=\"option[valueKey]\">\n {{ option[labelKey] }}\n </u-tag>\n </div>\n </div>\n\n <template v-else>\n {{ FORM_EMPTY_CONTENT }}\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { dfs, o } from '@cat-kit/core'\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { ArrowDown, Close, Search } from '@veltra/icons/normal'\nimport { bem, FORM_EMPTY_CONTENT } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed, nextTick, shallowRef, watch } from 'vue'\n\nimport type { MultiTreeSelectProps, MultiTreeSelectEmits, TreeExposed } from '../../types'\nimport type { DropdownExposed } from '../../types'\nimport { UButton } from '../button'\nimport { UCheckbox } from '../checkbox'\nimport { UDropdown } from '../dropdown'\nimport { UIcon } from '../icon'\nimport { UInput } from '../input'\nimport { UTag } from '../tag'\nimport { UTree } from '../tree'\nimport type { TreeSlotsScope } from '../tree/di'\n\ndefineOptions({ name: 'MultiTreeSelect' })\n\nconst cls = bem('multi-tree-select')\n\nconst props = withDefaults(defineProps<MultiTreeSelectProps>(), {\n labelKey: 'label',\n valueKey: 'value',\n placeholder: '请选择',\n expandAll: false,\n clearable: true,\n disabled: undefined,\n readonly: undefined,\n filterable: false,\n visibilityLimit: 3,\n minWidth: '280px'\n})\n\nconst treeProps = computed(() => {\n return o(props as Record<string, any>).omit([\n 'tips',\n 'field',\n 'placeholder',\n 'disabled',\n 'label',\n 'readonly',\n 'modelValue',\n 'contentClass',\n 'contentStyle',\n 'minWidth',\n 'width'\n ])\n})\n\nconst emit = defineEmits<MultiTreeSelectEmits>()\n\nconst slots = defineSlots<{ default?: (props: TreeSlotsScope) => any }>()\n\n/**过滤 */\nconst qs = shallowRef('')\nwatch(qs, (qs) => {\n treeRef.value?.filter(qs)\n})\n\nconst model = defineModel<(string | number)[]>({ default: () => [] })\n\nconst hovered = shallowRef(false)\n\nconst tags = shallowRef<Record<string, any>[]>([])\n\nconst { formProps } = injectFormContext()\n\nconst { size, disabled, readonly } = useFormFallbackProps([formProps ?? {}, props])\n\nconst showClear = computed(() => {\n return props.clearable && model.value?.length && hovered.value && !disabled.value\n})\n\nconst treeRef = shallowRef<TreeExposed>()\n\nconst dropdownRef = shallowRef<DropdownExposed>()\n\nlet changedByEvent = false\n\nfunction markEvent() {\n changedByEvent = true\n nextTick(() => {\n changedByEvent = false\n })\n}\n\n/**是否全选 */\nconst allChecked = computed(() => {\n return model.value?.length === treeRef.value?.forest.size\n})\n\n/**部分 */\nconst indeterminate = computed(() => {\n return model.value.length! > 0 && !allChecked.value\n})\n\n/** 全选*/\nconst handleCheckAll = (checked: boolean) => {\n treeRef.value?.checkAll(checked)\n\n dropdownRef.value?.updateDropdown()\n}\n\n/**选中 */\nconst handleCheck = (checked: (string | number)[], checkedData: Record<string, any>[]) => {\n markEvent()\n tags.value = checkedData\n emit('change', checkedData!)\n\n dropdownRef.value?.updateDropdown()\n}\n\n/**删除 */\nconst handleRemove = (index: number) => {\n markEvent()\n tags.value = tags.value.filter((_, i) => i !== index)\n model.value = model.value.filter((_, i) => i !== index)\n emit('change', tags.value)\n}\n\n/**清空 */\nconst handleClear = () => {\n markEvent()\n tags.value = []\n model.value = []\n emit('clear')\n}\n\nconst keyDicts = shallowRef(new Map<string | number, Record<string, any>>())\n\nwatch(\n () => props.data,\n (data) => {\n if (!data?.length) {\n keyDicts.value = new Map()\n } else {\n const newDict = new Map()\n data.forEach((item) => {\n dfs(\n item,\n (v) => {\n newDict.set(v[props.valueKey], v)\n },\n props.childrenKey\n )\n })\n keyDicts.value = newDict\n }\n },\n { immediate: true }\n)\n\nwatch(\n [keyDicts, model],\n ([keyDicts, model]) => {\n if (changedByEvent) return\n\n if (!keyDicts.size || !model?.length) {\n tags.value = []\n return\n }\n\n tags.value = model.filter((v) => keyDicts.has(v)).map((v) => keyDicts.get(v)!)\n },\n { immediate: true }\n)\n\nconst allExpanded = shallowRef(props.expandAll)\nfunction handleToggleExpandAll() {\n allExpanded.value = !allExpanded.value\n allExpanded.value ? treeRef.value?.expandAll() : treeRef.value?.collapseAll()\n}\n\nwatch(treeRef, (treeRef) => {\n if (!treeRef) {\n allExpanded.value = props.expandAll\n }\n})\n\nconst limit = () => {\n let { visibilityLimit } = props\n\n if (visibilityLimit < 0) {\n visibilityLimit = 0\n }\n if (disabled.value || readonly.value) {\n visibilityLimit = model.value?.length ?? 0\n }\n return visibilityLimit\n}\n\nconst visibleTags = computed(() => {\n if (tags.value.length > limit()) {\n return tags.value.slice(0, limit())\n }\n return tags.value\n})\n\nconst hiddenCount = computed(() => {\n if (tags.value.length > limit()) {\n return tags.value.length - limit()\n }\n return 0\n})\n\nconst handleDropdownVisible = (visible: boolean) => {\n if (!visible) {\n qs.value = ''\n }\n}\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"multi-tree-select.js","names":[],"sources":["../../../src/components/multi-tree-select/multi-tree-select.vue"],"sourcesContent":["<template>\n <u-dropdown\n v-if=\"!readonly\"\n :class=\"[cls.b, cls.m(size), bem.is('disabled', disabled)]\"\n trigger=\"click\"\n :content-class=\"[cls.e('panel'), cls.em('panel', size), contentClass]\"\n :content-style=\"contentStyle\"\n :disabled=\"disabled\"\n @mouseenter=\"hovered = true\"\n @mouseleave=\"hovered = false\"\n ref=\"dropdownRef\"\n :min-width=\"minWidth\"\n :width=\"width\"\n @update:visible=\"handleDropdownVisible\"\n >\n <template #trigger>\n <!-- 默认展示 -->\n <span :class=\"cls.e('placeholder')\" v-show=\"!tags.length\">\n {{ placeholder }}\n </span>\n\n <!-- 选择的数据项 -->\n <div v-if=\"tags.length\" :class=\"cls.e('tags')\">\n <u-tag\n v-for=\"(tag, index) in visibleTags\"\n :key=\"tag[valueKey]\"\n :closable=\"!disabled\"\n @close=\"handleRemove(index)\"\n >\n {{ tag[labelKey] }}\n </u-tag>\n <u-tag v-if=\"hiddenCount > 0\">+{{ hiddenCount }}</u-tag>\n </div>\n <!-- 清空 icon -->\n <transition name=\"zoom-in\" mode=\"out-in\">\n <u-icon v-if=\"showClear\" :class=\"cls.e('clear')\" @click.stop=\"handleClear\">\n <Close />\n </u-icon>\n\n <!-- 下拉 icon -->\n <u-icon :class=\"cls.e(`arrow`)\" v-else-if=\"!readonly\">\n <ArrowDown />\n </u-icon>\n </transition>\n </template>\n <template #content>\n <div :class=\"[cls.e('content-header'), cls.m(size)]\">\n <!-- 全选 -->\n <u-checkbox\n :model-value=\"allChecked\"\n :indeterminate=\"indeterminate\"\n @update:model-value=\"handleCheckAll\"\n >\n 全选\n </u-checkbox>\n\n <u-button size=\"small\" text type=\"primary\" @click=\"handleToggleExpandAll\">\n {{ allExpanded ? '收起全部' : '展开全部' }}\n </u-button>\n </div>\n <!-- 过滤器 -->\n <div v-if=\"filterable\" :class=\"[cls.e('content-filter'), cls.m(size)]\">\n <u-input placeholder=\"输入关键字进行过滤\" v-model=\"qs\">\n <template #suffix>\n <u-icon><Search /></u-icon>\n </template>\n </u-input>\n </div>\n <!-- 菜单列表 -->\n <u-tree\n v-bind=\"treeProps\"\n v-model:checked=\"model\"\n @update:checked=\"handleCheck\"\n ref=\"treeRef\"\n :class=\"cls.e('content-tree')\"\n checkable\n :data=\"data\"\n :slots=\"slots\"\n scroll-to-view\n ></u-tree>\n </template>\n </u-dropdown>\n\n <div v-else-if=\"model.length\" :class=\"[cls.m(size), cls.e('readonly-tags')]\">\n <div :class=\"cls.e('tags')\">\n <u-tag v-for=\"option of tags\" :key=\"option[valueKey]\">\n {{ option[labelKey] }}\n </u-tag>\n </div>\n </div>\n\n <template v-else>\n {{ FORM_EMPTY_CONTENT }}\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { dfs, o } from '@cat-kit/core'\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { ArrowDown, Close, Search } from '@veltra/icons/normal'\nimport { bem, FORM_EMPTY_CONTENT } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed, nextTick, shallowRef, watch } from 'vue'\n\nimport type { MultiTreeSelectProps, MultiTreeSelectEmits, TreeExposed } from '../../types'\nimport type { DropdownExposed } from '../../types'\nimport { UButton } from '../button'\nimport { UCheckbox } from '../checkbox'\nimport { UDropdown } from '../dropdown'\nimport { UIcon } from '../icon'\nimport { UInput } from '../input'\nimport { UTag } from '../tag'\nimport { UTree } from '../tree'\nimport type { TreeSlotsScope } from '../tree/di'\n\ndefineOptions({ name: 'UMultiTreeSelect' })\n\nconst cls = bem('multi-tree-select')\n\nconst props = withDefaults(defineProps<MultiTreeSelectProps>(), {\n labelKey: 'label',\n valueKey: 'value',\n placeholder: '请选择',\n expandAll: false,\n clearable: true,\n disabled: undefined,\n readonly: undefined,\n filterable: false,\n visibilityLimit: 3,\n minWidth: '280px'\n})\n\nconst treeProps = computed(() => {\n return o(props as Record<string, any>).omit([\n 'tips',\n 'field',\n 'placeholder',\n 'disabled',\n 'label',\n 'readonly',\n 'modelValue',\n 'contentClass',\n 'contentStyle',\n 'minWidth',\n 'width'\n ])\n})\n\nconst emit = defineEmits<MultiTreeSelectEmits>()\n\nconst slots = defineSlots<{ default?: (props: TreeSlotsScope) => any }>()\n\n/**过滤 */\nconst qs = shallowRef('')\nwatch(qs, (qs) => {\n treeRef.value?.filter(qs)\n})\n\nconst model = defineModel<(string | number)[]>({ default: () => [] })\n\nconst hovered = shallowRef(false)\n\nconst tags = shallowRef<Record<string, any>[]>([])\n\nconst { formProps } = injectFormContext()\n\nconst { size, disabled, readonly } = useFormFallbackProps([formProps ?? {}, props])\n\nconst showClear = computed(() => {\n return props.clearable && model.value?.length && hovered.value && !disabled.value\n})\n\nconst treeRef = shallowRef<TreeExposed>()\n\nconst dropdownRef = shallowRef<DropdownExposed>()\n\nlet changedByEvent = false\n\nfunction markEvent() {\n changedByEvent = true\n nextTick(() => {\n changedByEvent = false\n })\n}\n\n/**是否全选 */\nconst allChecked = computed(() => {\n return model.value?.length === treeRef.value?.forest.size\n})\n\n/**部分 */\nconst indeterminate = computed(() => {\n return model.value.length! > 0 && !allChecked.value\n})\n\n/** 全选*/\nconst handleCheckAll = (checked: boolean) => {\n treeRef.value?.checkAll(checked)\n\n dropdownRef.value?.updateDropdown()\n}\n\n/**选中 */\nconst handleCheck = (checked: (string | number)[], checkedData: Record<string, any>[]) => {\n markEvent()\n tags.value = checkedData\n emit('change', checkedData!)\n\n dropdownRef.value?.updateDropdown()\n}\n\n/**删除 */\nconst handleRemove = (index: number) => {\n markEvent()\n tags.value = tags.value.filter((_, i) => i !== index)\n model.value = model.value.filter((_, i) => i !== index)\n emit('change', tags.value)\n}\n\n/**清空 */\nconst handleClear = () => {\n markEvent()\n tags.value = []\n model.value = []\n emit('clear')\n}\n\nconst keyDicts = shallowRef(new Map<string | number, Record<string, any>>())\n\nwatch(\n () => props.data,\n (data) => {\n if (!data?.length) {\n keyDicts.value = new Map()\n } else {\n const newDict = new Map()\n data.forEach((item) => {\n dfs(\n item,\n (v) => {\n newDict.set(v[props.valueKey], v)\n },\n props.childrenKey\n )\n })\n keyDicts.value = newDict\n }\n },\n { immediate: true }\n)\n\nwatch(\n [keyDicts, model],\n ([keyDicts, model]) => {\n if (changedByEvent) return\n\n if (!keyDicts.size || !model?.length) {\n tags.value = []\n return\n }\n\n tags.value = model.filter((v) => keyDicts.has(v)).map((v) => keyDicts.get(v)!)\n },\n { immediate: true }\n)\n\nconst allExpanded = shallowRef(props.expandAll)\nfunction handleToggleExpandAll() {\n allExpanded.value = !allExpanded.value\n allExpanded.value ? treeRef.value?.expandAll() : treeRef.value?.collapseAll()\n}\n\nwatch(treeRef, (treeRef) => {\n if (!treeRef) {\n allExpanded.value = props.expandAll\n }\n})\n\nconst limit = () => {\n let { visibilityLimit } = props\n\n if (visibilityLimit < 0) {\n visibilityLimit = 0\n }\n if (disabled.value || readonly.value) {\n visibilityLimit = model.value?.length ?? 0\n }\n return visibilityLimit\n}\n\nconst visibleTags = computed(() => {\n if (tags.value.length > limit()) {\n return tags.value.slice(0, limit())\n }\n return tags.value\n})\n\nconst hiddenCount = computed(() => {\n if (tags.value.length > limit()) {\n return tags.value.length - limit()\n }\n return 0\n})\n\nconst handleDropdownVisible = (visible: boolean) => {\n if (!visible) {\n qs.value = ''\n }\n}\n</script>\n"],"mappings":"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"}
@@ -14,22 +14,22 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
14
14
  "update:modelValue": (value: (string | number)[]) => any;
15
15
  } & {
16
16
  "update:modelValue": (value: any[]) => any;
17
- change: (checked: Record<string, any>[]) => any;
18
17
  clear: () => any;
18
+ change: (checked: Record<string, any>[]) => any;
19
19
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
20
20
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
21
- onChange?: ((checked: Record<string, any>[]) => any) | undefined;
22
21
  onClear?: (() => any) | undefined;
22
+ onChange?: ((checked: Record<string, any>[]) => any) | undefined;
23
23
  }>, {
24
- readonly: boolean;
25
- disabled: boolean;
26
24
  expandAll: boolean;
27
25
  labelKey: string;
28
26
  valueKey: string;
29
- minWidth: string;
30
27
  placeholder: string;
31
28
  clearable: boolean;
32
29
  filterable: boolean;
30
+ minWidth: string;
31
+ disabled: boolean;
32
+ readonly: boolean;
33
33
  visibilityLimit: number;
34
34
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
35
35
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -2,8 +2,8 @@ import _sfc_main$1 from "../icon/icon.js";
2
2
  import { createBlock, createElementBlock, defineComponent, openBlock, resolveDynamicComponent, unref, withCtx } from "vue";
3
3
  //#region src/components/nav/nav-icon.vue
4
4
  const _hoisted_1 = ["src"];
5
- const _sfc_main = /* @__PURE__ */ defineComponent({
6
- name: "NavIcon",
5
+ const _sfc_main = /*@__PURE__*/ defineComponent({
6
+ name: "UNavIcon",
7
7
  __name: "nav-icon",
8
8
  props: { icon: {} },
9
9
  setup(__props) {
@@ -1 +1 @@
1
- {"version":3,"file":"nav-icon.js","names":[],"sources":["../../../src/components/nav/nav-icon.vue"],"sourcesContent":["<template>\n <u-icon v-if=\"typeof icon !== 'string'\">\n <component :is=\"icon\" />\n </u-icon>\n\n <img :src=\"icon\" v-else alt=\"icon\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport type { DefineComponent } from 'vue'\n\nimport { UIcon } from '../icon'\n\ndefineOptions({ name: 'NavIcon' })\n\ndefineProps<{ icon: string | DefineComponent }>()\n</script>\n"],"mappings":";;;;;;;;;;iBACuB,QAAA,SAAI,YAAA,UAAA,GAAzB,YAES,MAAA,WAAA,GAAA,EAAA,KAAA,EAAA,GAAA;2BADiB,EAAA,UAAA,GAAxB,YAAwB,wBAAR,QAAA,IAAI,CAAA,EAAA,CAAA;;uBAGtB,mBAAqC,OAAA;;IAA/B,KAAK,QAAA;IAAa,KAAI"}
1
+ {"version":3,"file":"nav-icon.js","names":[],"sources":["../../../src/components/nav/nav-icon.vue"],"sourcesContent":["<template>\n <u-icon v-if=\"typeof icon !== 'string'\">\n <component :is=\"icon\" />\n </u-icon>\n\n <img :src=\"icon\" v-else alt=\"icon\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport type { DefineComponent } from 'vue'\n\nimport { UIcon } from '../icon'\n\ndefineOptions({ name: 'UNavIcon' })\n\ndefineProps<{ icon: string | DefineComponent }>()\n</script>\n"],"mappings":";;;;;;;;;;iBACuB,QAAA,SAAI,YAAA,UAAA,GAAzB,YAES,MAAA,WAAA,GAAA,EAAA,KAAA,EAAA,GAAA;2BADiB,EAAA,UAAA,GAAxB,YAAwB,wBAAR,QAAA,IAAI,CAAA,EAAA,CAAA;;uBAGtB,mBAAqC,OAAA;;IAA/B,KAAK,QAAA;IAAa,KAAI"}
@@ -5,8 +5,8 @@ import { Fragment, createBlock, createCommentVNode, createElementBlock, createEl
5
5
  import { bem } from "@veltra/utils";
6
6
  //#region src/components/nav/nav-item-collapsed.vue
7
7
  const _hoisted_1 = { key: 1 };
8
- const _sfc_main = /* @__PURE__ */ defineComponent({
9
- name: "NavItemCollapsed",
8
+ const _sfc_main = /*@__PURE__*/ defineComponent({
9
+ name: "UNavItemCollapsed",
10
10
  __name: "nav-item-collapsed",
11
11
  props: {
12
12
  item: {},
@@ -1 +1 @@
1
- {"version":3,"file":"nav-item-collapsed.js","names":[],"sources":["../../../src/components/nav/nav-item-collapsed.vue"],"sourcesContent":["<template>\n <!-- 一级导航 -->\n <u-tip v-if=\"depth === 0\" direction=\"right\" hide-arrow>\n <li\n :class=\"[\n collapsedCls.e('item'),\n bem.is('active', active),\n bem.is('first-level'),\n bem.is('disabled', item.disabled ?? false)\n ]\"\n ref=\"item\"\n @click=\"handleClickItem\"\n >\n <UNavIcon v-if=\"item.icon\" :icon=\"item.icon\" :class=\"collapsedCls.e('icon')\" />\n <span v-else>{{ item.title[0] }}</span>\n </li>\n\n <template #content>\n {{ item.title }}\n </template>\n </u-tip>\n\n <!-- 二级以及二级以下导航 -->\n <li\n v-else\n :class=\"[\n collapsedCls.e('item'),\n bem.is('active', active),\n bem.is('disabled', item.disabled ?? false)\n ]\"\n ref=\"item\"\n @click=\"_handleClickItem\"\n >\n <UNavIcon v-if=\"item.icon\" :icon=\"item.icon\" :class=\"collapsedCls.e('icon')\" />\n\n <!-- 文本 -->\n <span :class=\"collapsedCls.e('item-title')\">\n {{ item.title }}\n </span>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport { bem } from '@veltra/utils'\nimport { useTemplateRef } from 'vue'\n\nimport type { NavItem } from '../../types'\nimport { UTip } from '../tip'\nimport UNavIcon from './nav-icon.vue'\nimport { useNavItem } from './use-nav-item'\n\ndefineOptions({ name: 'NavItemCollapsed' })\n\nconst props = defineProps<{ item: NavItem; depth: number }>()\n\nconst itemRef = useTemplateRef('item')\n\nconst emit = defineEmits(['click'])\n\nconst { collapsedCls, active, handleClickItem } = useNavItem({ itemProps: props, itemRef })\n\nfunction _handleClickItem() {\n handleClickItem()\n emit('click')\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;EAqDA,MAAM,QAAQ;EAEd,MAAM,UAAU,eAAe,MAAM;EAErC,MAAM,OAAO;EAEb,MAAM,EAAE,cAAc,QAAQ,oBAAoB,WAAW;GAAE,WAAW;GAAO;EAAQ,CAAC;EAE1F,SAAS,mBAAmB;GAC1B,gBAAgB;GAChB,KAAK,OAAO;EACd;;2DA/DE,mBAAA,QAAA,GACa,QAAA,UAAK,KAAA,UAAA,GAAlB,YAkBQ,MAAA,WAAA,GAAA;;IAlBkB,WAAU;IAAQ,cAAA;;IAe/B,SAAO,cACA,CAAA,gBAAA,gBAAb,QAAA,KAAK,KAAK,GAAA,CAAA,CAAA,CAAA;2BAHV,CAZL,mBAYK,MAAA;KAXF,OAAK,eAAA;MAAY,MAAA,YAAA,EAAa,EAAC,MAAA;MAAkB,MAAA,GAAA,EAAI,GAAE,UAAW,MAAA,MAAA,CAAM;MAAW,MAAA,GAAA,EAAI,GAAE,aAAA;MAAyB,MAAA,GAAA,EAAI,GAAE,YAAa,QAAA,KAAK,YAAQ,KAAA;;KAMnJ,KAAI;KACH,SAAK,OAAA,OAAA,OAAA,MAAA,GAAA,SAAE,MAAA,eAAA,KAAA,MAAA,eAAA,EAAA,GAAA,IAAA;QAEQ,QAAA,KAAK,QAAA,UAAA,GAArB,YAA+E,aAAA;;KAAnD,MAAM,QAAA,KAAK;KAAO,OAAK,eAAE,MAAA,YAAA,EAAa,EAAC,MAAA,CAAA;oDACnE,mBAAuC,QAAA,YAAA,gBAAvB,QAAA,KAAK,MAAK,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,CAAA,CAAA;;uBAS9B,mBAgBK,UAAA,EAAA,KAAA,EAAA,GAAA,CAjBL,mBAAA,cAAA,GACA,mBAgBK,MAAA;IAdF,OAAK,eAAA;KAAU,MAAA,YAAA,EAAa,EAAC,MAAA;KAAgB,MAAA,GAAA,EAAI,GAAE,UAAW,MAAA,MAAA,CAAM;KAAS,MAAA,GAAA,EAAI,GAAE,YAAa,QAAA,KAAK,YAAQ,KAAA;;IAK9G,KAAI;IACH,SAAO;;IAEQ,QAAA,KAAK,QAAA,UAAA,GAArB,YAA+E,aAAA;;KAAnD,MAAM,QAAA,KAAK;KAAO,OAAK,eAAE,MAAA,YAAA,EAAa,EAAC,MAAA,CAAA;;IAEnE,mBAAA,MAAA;IACA,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,YAAA,EAAa,EAAC,YAAA,CAAA,EAAA,GAAA,gBACvB,QAAA,KAAK,KAAK,GAAA,CAAA"}
1
+ {"version":3,"file":"nav-item-collapsed.js","names":[],"sources":["../../../src/components/nav/nav-item-collapsed.vue"],"sourcesContent":["<template>\n <!-- 一级导航 -->\n <u-tip v-if=\"depth === 0\" direction=\"right\" hide-arrow>\n <li\n :class=\"[\n collapsedCls.e('item'),\n bem.is('active', active),\n bem.is('first-level'),\n bem.is('disabled', item.disabled ?? false)\n ]\"\n ref=\"item\"\n @click=\"handleClickItem\"\n >\n <UNavIcon v-if=\"item.icon\" :icon=\"item.icon\" :class=\"collapsedCls.e('icon')\" />\n <span v-else>{{ item.title[0] }}</span>\n </li>\n\n <template #content>\n {{ item.title }}\n </template>\n </u-tip>\n\n <!-- 二级以及二级以下导航 -->\n <li\n v-else\n :class=\"[\n collapsedCls.e('item'),\n bem.is('active', active),\n bem.is('disabled', item.disabled ?? false)\n ]\"\n ref=\"item\"\n @click=\"_handleClickItem\"\n >\n <UNavIcon v-if=\"item.icon\" :icon=\"item.icon\" :class=\"collapsedCls.e('icon')\" />\n\n <!-- 文本 -->\n <span :class=\"collapsedCls.e('item-title')\">\n {{ item.title }}\n </span>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport { bem } from '@veltra/utils'\nimport { useTemplateRef } from 'vue'\n\nimport type { NavItem } from '../../types'\nimport { UTip } from '../tip'\nimport UNavIcon from './nav-icon.vue'\nimport { useNavItem } from './use-nav-item'\n\ndefineOptions({ name: 'UNavItemCollapsed' })\n\nconst props = defineProps<{ item: NavItem; depth: number }>()\n\nconst itemRef = useTemplateRef('item')\n\nconst emit = defineEmits(['click'])\n\nconst { collapsedCls, active, handleClickItem } = useNavItem({ itemProps: props, itemRef })\n\nfunction _handleClickItem() {\n handleClickItem()\n emit('click')\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;EAqDA,MAAM,QAAQ;EAEd,MAAM,UAAU,eAAe,MAAM;EAErC,MAAM,OAAO;EAEb,MAAM,EAAE,cAAc,QAAQ,oBAAoB,WAAW;GAAE,WAAW;GAAO;EAAQ,CAAC;EAE1F,SAAS,mBAAmB;GAC1B,gBAAgB;GAChB,KAAK,OAAO;EACd;;2DA/DE,mBAAA,QAAA,GACa,QAAA,UAAK,KAAA,UAAA,GAAlB,YAkBQ,MAAA,WAAA,GAAA;;IAlBkB,WAAU;IAAQ,cAAA;;IAe/B,SAAO,cACA,CAAA,gBAAA,gBAAb,QAAA,KAAK,KAAK,GAAA,CAAA,CAAA,CAAA;2BAHV,CAZL,mBAYK,MAAA;KAXF,OAAK,eAAA;MAAY,MAAA,YAAA,CAAY,CAAC,EAAC,MAAA;MAAkB,MAAA,GAAA,CAAG,CAAC,GAAE,UAAW,MAAA,MAAA,CAAM;MAAW,MAAA,GAAA,CAAG,CAAC,GAAE,aAAA;MAAyB,MAAA,GAAA,CAAG,CAAC,GAAE,YAAa,QAAA,KAAK,YAAQ,KAAA;;KAMnJ,KAAI;KACH,SAAK,OAAA,OAAA,OAAA,MAAA,GAAA,SAAE,MAAA,eAAA,KAAA,MAAA,eAAA,CAAA,CAAA,GAAA,IAAA;QAEQ,QAAA,KAAK,QAAA,UAAA,GAArB,YAA+E,aAAA;;KAAnD,MAAM,QAAA,KAAK;KAAO,OAAK,eAAE,MAAA,YAAA,CAAY,CAAC,EAAC,MAAA,CAAA;oDACnE,mBAAuC,QAAA,YAAA,gBAAvB,QAAA,KAAK,MAAK,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,CAAA,CAAA;;uBAS9B,mBAgBK,UAAA,EAAA,KAAA,EAAA,GAAA,CAjBL,mBAAA,cAAA,GACA,mBAgBK,MAAA;IAdF,OAAK,eAAA;KAAU,MAAA,YAAA,CAAY,CAAC,EAAC,MAAA;KAAgB,MAAA,GAAA,CAAG,CAAC,GAAE,UAAW,MAAA,MAAA,CAAM;KAAS,MAAA,GAAA,CAAG,CAAC,GAAE,YAAa,QAAA,KAAK,YAAQ,KAAA;;IAK9G,KAAI;IACH,SAAO;;IAEQ,QAAA,KAAK,QAAA,UAAA,GAArB,YAA+E,aAAA;;KAAnD,MAAM,QAAA,KAAK;KAAO,OAAK,eAAE,MAAA,YAAA,CAAY,CAAC,EAAC,MAAA,CAAA;;IAEnE,mBAAA,MAAA;IACA,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,YAAA,CAAY,CAAC,EAAC,YAAA,CAAA,EAAA,GAAA,gBACvB,QAAA,KAAK,KAAK,GAAA,CAAA"}
@@ -3,8 +3,8 @@ import { useNavItem } from "./use-nav-item.js";
3
3
  import { createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, openBlock, toDisplayString, unref, useTemplateRef } from "vue";
4
4
  import { bem } from "@veltra/utils";
5
5
  //#region src/components/nav/nav-item.vue
6
- const _sfc_main = /* @__PURE__ */ defineComponent({
7
- name: "NavItem",
6
+ const _sfc_main = /*@__PURE__*/ defineComponent({
7
+ name: "UNavItem",
8
8
  __name: "nav-item",
9
9
  props: {
10
10
  item: {},
@@ -1 +1 @@
1
- {"version":3,"file":"nav-item.js","names":[],"sources":["../../../src/components/nav/nav-item.vue"],"sourcesContent":["<template>\n <li\n :class=\"[\n cls.e('item'),\n bem.is('first-level', depth === 0),\n bem.is('active', active),\n bem.is('disabled', item.disabled ?? false)\n ]\"\n ref=\"item\"\n @click=\"handleClickItem\"\n >\n <NavIcon v-if=\"item.icon\" :icon=\"item.icon\" :class=\"cls.e('icon')\" />\n\n <!-- 文本 -->\n <span :class=\"cls.e('item-title')\">\n {{ item.title }}\n </span>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport { bem } from '@veltra/utils'\nimport { useTemplateRef } from 'vue'\n\nimport type { NavItem } from '../../types'\nimport NavIcon from './nav-icon.vue'\nimport { useNavItem } from './use-nav-item'\n\ndefineOptions({ name: 'NavItem' })\n\nconst props = defineProps<{ item: NavItem; depth: number }>()\n\nconst itemRef = useTemplateRef('item')\n\nconst { cls, active, handleClickItem } = useNavItem({ itemProps: props, itemRef })\n</script>\n"],"mappings":";;;;;;;;;;;;;EAkCA,MAAM,EAAE,KAAK,QAAQ,oBAAoB,WAAW;GAAE,WAAW;GAAO,SAFxD,eAAe,MAEyC;EAAQ,CAAC;;uBAjC/E,mBAgBK,MAAA;IAfF,OAAK,eAAA;KAAU,MAAA,GAAA,EAAI,EAAC,MAAA;KAAgB,MAAA,GAAA,EAAI,GAAE,eAAgB,QAAA,UAAK,CAAA;KAAe,MAAA,GAAA,EAAI,GAAE,UAAW,MAAA,MAAA,CAAM;KAAS,MAAA,GAAA,EAAI,GAAE,YAAa,QAAA,KAAK,YAAQ,KAAA;;IAM/I,KAAI;IACH,SAAK,OAAA,OAAA,OAAA,MAAA,GAAA,SAAE,MAAA,eAAA,KAAA,MAAA,eAAA,EAAA,GAAA,IAAA;;IAEO,QAAA,KAAK,QAAA,UAAA,GAApB,YAAqE,aAAA;;KAA1C,MAAM,QAAA,KAAK;KAAO,OAAK,eAAE,MAAA,GAAA,EAAI,EAAC,MAAA,CAAA;;IAEzD,mBAAA,MAAA;IACA,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,GAAA,EAAI,EAAC,YAAA,CAAA,EAAA,GAAA,gBACd,QAAA,KAAK,KAAK,GAAA,CAAA"}
1
+ {"version":3,"file":"nav-item.js","names":[],"sources":["../../../src/components/nav/nav-item.vue"],"sourcesContent":["<template>\n <li\n :class=\"[\n cls.e('item'),\n bem.is('first-level', depth === 0),\n bem.is('active', active),\n bem.is('disabled', item.disabled ?? false)\n ]\"\n ref=\"item\"\n @click=\"handleClickItem\"\n >\n <NavIcon v-if=\"item.icon\" :icon=\"item.icon\" :class=\"cls.e('icon')\" />\n\n <!-- 文本 -->\n <span :class=\"cls.e('item-title')\">\n {{ item.title }}\n </span>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport { bem } from '@veltra/utils'\nimport { useTemplateRef } from 'vue'\n\nimport type { NavItem } from '../../types'\nimport NavIcon from './nav-icon.vue'\nimport { useNavItem } from './use-nav-item'\n\ndefineOptions({ name: 'UNavItem' })\n\nconst props = defineProps<{ item: NavItem; depth: number }>()\n\nconst itemRef = useTemplateRef('item')\n\nconst { cls, active, handleClickItem } = useNavItem({ itemProps: props, itemRef })\n</script>\n"],"mappings":";;;;;;;;;;;;;EAkCA,MAAM,EAAE,KAAK,QAAQ,oBAAoB,WAAW;GAAE,WAAW;GAAO,SAFxD,eAAe,MAEyC;EAAQ,CAAC;;uBAjC/E,mBAgBK,MAAA;IAfF,OAAK,eAAA;KAAU,MAAA,GAAA,CAAG,CAAC,EAAC,MAAA;KAAgB,MAAA,GAAA,CAAG,CAAC,GAAE,eAAgB,QAAA,UAAK,CAAA;KAAe,MAAA,GAAA,CAAG,CAAC,GAAE,UAAW,MAAA,MAAA,CAAM;KAAS,MAAA,GAAA,CAAG,CAAC,GAAE,YAAa,QAAA,KAAK,YAAQ,KAAA;;IAM/I,KAAI;IACH,SAAK,OAAA,OAAA,OAAA,MAAA,GAAA,SAAE,MAAA,eAAA,KAAA,MAAA,eAAA,CAAA,CAAA,GAAA,IAAA;;IAEO,QAAA,KAAK,QAAA,UAAA,GAApB,YAAqE,aAAA;;KAA1C,MAAM,QAAA,KAAK;KAAO,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,MAAA,CAAA;;IAEzD,mBAAA,MAAA;IACA,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,YAAA,CAAA,EAAA,GAAA,gBACd,QAAA,KAAK,KAAK,GAAA,CAAA"}
@@ -10,8 +10,8 @@ import { bem } from "@veltra/utils";
10
10
  import { ArrowRight } from "@veltra/icons/normal";
11
11
  //#region src/components/nav/nav-sub-collapsed.vue
12
12
  const _hoisted_1 = { key: 1 };
13
- const _sfc_main = /* @__PURE__ */ defineComponent({
14
- name: "NavSubCollapsed",
13
+ const _sfc_main = /*@__PURE__*/ defineComponent({
14
+ name: "UNavSubCollapsed",
15
15
  __name: "nav-sub-collapsed",
16
16
  props: {
17
17
  item: {},
@@ -1 +1 @@
1
- {"version":3,"file":"nav-sub-collapsed.js","names":[],"sources":["../../../src/components/nav/nav-sub-collapsed.vue"],"sourcesContent":["<template>\n <u-tip\n hide-arrow\n direction=\"right\"\n alignment=\"start\"\n :class=\"[collapsedCls.m(size), collapsedCls.e('panel')]\"\n style=\"padding: 0\"\n v-model:visible=\"visible\"\n >\n <li :class=\"[collapsedCls.e('sub-content'), bem.is('first-level', depth === 0)]\">\n <NavIcon v-if=\"item.icon\" :icon=\"item.icon\" :class=\"collapsedCls.e('icon')\" />\n\n <span v-else>{{ item.title[0] }}</span>\n\n <template v-if=\"depth !== 0\">\n <span :class=\"collapsedCls.e('sub-title')\">\n {{ item.title }}\n </span>\n\n <!-- 展开图标 -->\n <u-icon :class=\"[collapsedCls.e('sub-expand')]\">\n <ArrowRight />\n </u-icon>\n </template>\n </li>\n\n <template #content>\n <u-scroll tag=\"ul\" :class=\"collapsedCls.e('sub-list')\">\n <template v-for=\"(child, index) of item.children!\" :key=\"getKey(index, parentKey)\">\n <UNavItemCollapsed\n v-if=\"!child.children?.length\"\n :item=\"child\"\n :depth=\"depth + 1\"\n @click=\"closeSubMenu\"\n />\n\n <NavSubCollapsed\n v-else\n :item=\"child\"\n :parent-key=\"getKey(index, parentKey)\"\n :depth=\"depth + 1\"\n />\n </template>\n </u-scroll>\n </template>\n </u-tip>\n</template>\n\n<script setup lang=\"ts\">\nimport { ArrowRight } from '@veltra/icons/normal'\nimport { bem } from '@veltra/utils'\nimport { inject, ref } from 'vue'\n\nimport type { NavItem } from '../../types'\nimport { UIcon } from '../icon'\nimport { UScroll } from '../scroll'\nimport { UTip } from '../tip'\nimport { NavDIKey } from './di'\nimport { getKey } from './helper'\nimport NavIcon from './nav-icon.vue'\nimport UNavItemCollapsed from './nav-item-collapsed.vue'\n\ndefineOptions({ name: 'NavSubCollapsed' })\n\ndefineProps<{ item: NavItem; parentKey: string; depth: number }>()\n\nconst visible = ref(false)\n\nfunction closeSubMenu() {\n visible.value = false\n}\n\nconst { collapsedCls, size } = inject(NavDIKey)!\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAkEA,MAAM,UAAU,IAAI,KAAK;EAEzB,SAAS,eAAe;GACtB,QAAQ,QAAQ;EAClB;EAEA,MAAM,EAAE,cAAc,SAAS,OAAO,QAAQ;;;uBAvE5C,YA4CQ,MAAA,WAAA,GAAA;IA3CN,cAAA;IACA,WAAU;IACV,WAAU;IACT,OAAK,eAAA,CAAG,MAAA,YAAA,EAAa,EAAE,MAAA,IAAA,CAAI,GAAG,MAAA,YAAA,EAAa,EAAC,OAAA,CAAA,CAAA;IAC7C,OAAA,EAAA,WAAA,IAAA;IACQ,SAAS,QAAA;8DAAA,QAAO,QAAA;;IAmBb,SAAO,cAiBL,CAhBX,YAgBW,MAAA,WAAA,GAAA;KAhBD,KAAI;KAAM,OAAK,eAAE,MAAA,YAAA,EAAa,EAAC,UAAA,CAAA;;4BACW,EAAA,UAAA,IAAA,GAAlD,mBAcW,UAAA,MAAA,WAdwB,QAAA,KAAK,WAAtB,OAAO,UAAK;8DAA2B,MAAA,MAAA,EAAO,OAAO,QAAA,SAAS,EAAA,GAAA,CAAA,CAErE,MAAM,UAAU,UAAA,UAAA,GADzB,YAKE,aAAA;;OAHC,MAAM;OACN,OAAO,QAAA,QAAK;OACZ,SAAO;sDAGV,YAKE,4BAAA;;OAHC,MAAM;OACN,cAAY,MAAA,MAAA,EAAO,OAAO,QAAA,SAAS;OACnC,OAAO,QAAA,QAAK;;;;;;;;;2BAhBhB,CAfL,mBAeK,MAAA,EAfA,OAAK,eAAA,CAAG,MAAA,YAAA,EAAa,EAAC,aAAA,GAAiB,MAAA,GAAA,EAAI,GAAE,eAAgB,QAAA,UAAK,CAAA,CAAA,CAAA,EAAA,GAAA,CACtD,QAAA,KAAK,QAAA,UAAA,GAApB,YAA8E,aAAA;;KAAnD,MAAM,QAAA,KAAK;KAAO,OAAK,eAAE,MAAA,YAAA,EAAa,EAAC,MAAA,CAAA;oDAElE,mBAAuC,QAAA,YAAA,gBAAvB,QAAA,KAAK,MAAK,EAAA,GAAA,CAAA,IAEV,QAAA,UAAK,KAAA,UAAA,GAArB,mBASW,UAAA,EAAA,KAAA,EAAA,GAAA;KART,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,YAAA,EAAa,EAAC,WAAA,CAAA,EAAA,GAAA,gBACvB,QAAA,KAAK,KAAK,GAAA,CAAA;KAGf,mBAAA,QAAA;KACA,YAES,MAAA,WAAA,GAAA,EAFA,OAAK,eAAA,CAAG,MAAA,YAAA,EAAa,EAAC,YAAA,CAAA,CAAA,EAAA,GAAA;6BACf,CAAd,YAAc,MAAA,UAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"nav-sub-collapsed.js","names":[],"sources":["../../../src/components/nav/nav-sub-collapsed.vue"],"sourcesContent":["<template>\n <u-tip\n hide-arrow\n direction=\"right\"\n alignment=\"start\"\n :class=\"[collapsedCls.m(size), collapsedCls.e('panel')]\"\n style=\"padding: 0\"\n v-model:visible=\"visible\"\n >\n <li :class=\"[collapsedCls.e('sub-content'), bem.is('first-level', depth === 0)]\">\n <NavIcon v-if=\"item.icon\" :icon=\"item.icon\" :class=\"collapsedCls.e('icon')\" />\n\n <span v-else>{{ item.title[0] }}</span>\n\n <template v-if=\"depth !== 0\">\n <span :class=\"collapsedCls.e('sub-title')\">\n {{ item.title }}\n </span>\n\n <!-- 展开图标 -->\n <u-icon :class=\"[collapsedCls.e('sub-expand')]\">\n <ArrowRight />\n </u-icon>\n </template>\n </li>\n\n <template #content>\n <u-scroll tag=\"ul\" :class=\"collapsedCls.e('sub-list')\">\n <template v-for=\"(child, index) of item.children!\" :key=\"getKey(index, parentKey)\">\n <UNavItemCollapsed\n v-if=\"!child.children?.length\"\n :item=\"child\"\n :depth=\"depth + 1\"\n @click=\"closeSubMenu\"\n />\n\n <NavSubCollapsed\n v-else\n :item=\"child\"\n :parent-key=\"getKey(index, parentKey)\"\n :depth=\"depth + 1\"\n />\n </template>\n </u-scroll>\n </template>\n </u-tip>\n</template>\n\n<script setup lang=\"ts\">\nimport { ArrowRight } from '@veltra/icons/normal'\nimport { bem } from '@veltra/utils'\nimport { inject, ref } from 'vue'\n\nimport type { NavItem } from '../../types'\nimport { UIcon } from '../icon'\nimport { UScroll } from '../scroll'\nimport { UTip } from '../tip'\nimport { NavDIKey } from './di'\nimport { getKey } from './helper'\nimport NavIcon from './nav-icon.vue'\nimport UNavItemCollapsed from './nav-item-collapsed.vue'\n\ndefineOptions({ name: 'UNavSubCollapsed' })\n\ndefineProps<{ item: NavItem; parentKey: string; depth: number }>()\n\nconst visible = ref(false)\n\nfunction closeSubMenu() {\n visible.value = false\n}\n\nconst { collapsedCls, size } = inject(NavDIKey)!\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAkEA,MAAM,UAAU,IAAI,KAAK;EAEzB,SAAS,eAAe;GACtB,QAAQ,QAAQ;EAClB;EAEA,MAAM,EAAE,cAAc,SAAS,OAAO,QAAQ;;;uBAvE5C,YA4CQ,MAAA,WAAA,GAAA;IA3CN,cAAA;IACA,WAAU;IACV,WAAU;IACT,OAAK,eAAA,CAAG,MAAA,YAAA,CAAY,CAAC,EAAE,MAAA,IAAA,CAAI,GAAG,MAAA,YAAA,CAAY,CAAC,EAAC,OAAA,CAAA,CAAA;IAC7C,OAAA,EAAA,WAAA,IAAA;IACQ,SAAS,QAAA;8DAAA,QAAO,QAAA;;IAmBb,SAAO,cAiBL,CAhBX,YAgBW,MAAA,WAAA,GAAA;KAhBD,KAAI;KAAM,OAAK,eAAE,MAAA,YAAA,CAAY,CAAC,EAAC,UAAA,CAAA;;4BACW,EAAA,UAAA,IAAA,GAAlD,mBAcW,UAAA,MAAA,WAdwB,QAAA,KAAK,WAAtB,OAAO,UAAK;8DAA2B,MAAA,MAAA,CAAM,CAAC,OAAO,QAAA,SAAS,EAAA,GAAA,CAAA,CAErE,MAAM,UAAU,UAAA,UAAA,GADzB,YAKE,aAAA;;OAHC,MAAM;OACN,OAAO,QAAA,QAAK;OACZ,SAAO;sDAGV,YAKE,4BAAA;;OAHC,MAAM;OACN,cAAY,MAAA,MAAA,CAAM,CAAC,OAAO,QAAA,SAAS;OACnC,OAAO,QAAA,QAAK;;;;;;;;;2BAhBhB,CAfL,mBAeK,MAAA,EAfA,OAAK,eAAA,CAAG,MAAA,YAAA,CAAY,CAAC,EAAC,aAAA,GAAiB,MAAA,GAAA,CAAG,CAAC,GAAE,eAAgB,QAAA,UAAK,CAAA,CAAA,CAAA,EAAA,GAAA,CACtD,QAAA,KAAK,QAAA,UAAA,GAApB,YAA8E,aAAA;;KAAnD,MAAM,QAAA,KAAK;KAAO,OAAK,eAAE,MAAA,YAAA,CAAY,CAAC,EAAC,MAAA,CAAA;oDAElE,mBAAuC,QAAA,YAAA,gBAAvB,QAAA,KAAK,MAAK,EAAA,GAAA,CAAA,IAEV,QAAA,UAAK,KAAA,UAAA,GAArB,mBASW,UAAA,EAAA,KAAA,EAAA,GAAA;KART,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,YAAA,CAAY,CAAC,EAAC,WAAA,CAAA,EAAA,GAAA,gBACvB,QAAA,KAAK,KAAK,GAAA,CAAA;KAGf,mBAAA,QAAA;KACA,YAES,MAAA,WAAA,GAAA,EAFA,OAAK,eAAA,CAAG,MAAA,YAAA,CAAY,CAAC,EAAC,YAAA,CAAA,CAAA,EAAA,GAAA;6BACf,CAAd,YAAc,MAAA,UAAA,CAAA,CAAA,CAAA"}
@@ -7,8 +7,8 @@ import { Fragment, Transition, computed, createBlock, createCommentVNode, create
7
7
  import { bem } from "@veltra/utils";
8
8
  import { ArrowRight } from "@veltra/icons/normal";
9
9
  //#region src/components/nav/nav-sub.vue
10
- const _sfc_main = /* @__PURE__ */ defineComponent({
11
- name: "NavSub",
10
+ const _sfc_main = /*@__PURE__*/ defineComponent({
11
+ name: "UNavSub",
12
12
  __name: "nav-sub",
13
13
  props: {
14
14
  item: {},
@@ -1 +1 @@
1
- {"version":3,"file":"nav-sub.js","names":[],"sources":["../../../src/components/nav/nav-sub.vue"],"sourcesContent":["<template>\n <li :class=\"cls.e('sub')\">\n <div\n :class=\"[\n cls.e('sub-content'),\n bem.is('first-level', depth === 0),\n bem.is('expanded', expanded),\n bem.is('branch-active', branchActive)\n ]\"\n @click=\"handleToggleExpand\"\n >\n <UNavIcon v-if=\"item.icon\" :icon=\"item.icon\" :class=\"cls.e('icon')\" />\n\n <!-- 文本 -->\n <span :class=\"cls.e('sub-title')\">\n {{ item.title }}\n </span>\n\n <!-- 展开图标 -->\n <u-icon :class=\"[cls.e('sub-expand'), bem.is('expanded', expanded)]\">\n <ArrowRight />\n </u-icon>\n </div>\n\n <!-- @vue-ignore -->\n <transition\n @enter=\"(el: Element) => expandTransition.enter(el as HTMLElement)\"\n @after-enter=\"(el: Element) => expandTransition.afterEnter(el as HTMLElement)\"\n @before-leave=\"(el: Element) => expandTransition.beforeLeave(el as HTMLElement)\"\n @leave=\"(el: Element) => expandTransition.leave(el as HTMLElement)\"\n @after-leave=\"(el: Element) => expandTransition.afterLeave(el as HTMLElement)\"\n >\n <ul :class=\"cls.e('sub-list')\" v-show=\"expanded\">\n <template v-for=\"(child, index) of item.children!\" :key=\"getKey(index, parentKey)\">\n <UNavItem v-if=\"!child.children?.length\" :item=\"child\" :depth=\"depth + 1\" />\n <NavSub v-else :item=\"child\" :parent-key=\"getKey(index, parentKey)\" :depth=\"depth + 1\" />\n </template>\n </ul>\n </transition>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport { ArrowRight } from '@veltra/icons/normal'\nimport { bem } from '@veltra/utils'\nimport { computed, inject } from 'vue'\n\nimport type { NavItem } from '../../types'\nimport { UIcon } from '../icon'\nimport { NavDIKey } from './di'\nimport { getKey } from './helper'\nimport UNavIcon from './nav-icon.vue'\nimport UNavItem from './nav-item.vue'\n\ndefineOptions({ name: 'NavSub' })\n\nconst props = defineProps<{ item: NavItem; parentKey: string; depth: number }>()\n\nconst { cls, expandedPath, navProps, expandTransition } = inject(NavDIKey)!\n\nconst expanded = computed(() => expandedPath.has(props.item.path))\n\nconst branchActive = computed(() => {\n const currentPath = navProps.currentPath\n if (!currentPath) return false\n\n const check = (items?: NavItem[]) => {\n return items?.some((item) => item.path === currentPath || check(item.children)) ?? false\n }\n\n return check(props.item.children)\n})\n\nfunction handleToggleExpand() {\n const { item } = props\n expandedPath.has(item.path) ? expandedPath.delete(item.path) : expandedPath.add(item.path)\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAwDA,MAAM,QAAQ;EAEd,MAAM,EAAE,KAAK,cAAc,UAAU,qBAAqB,OAAO,QAAQ;EAEzE,MAAM,WAAW,eAAe,aAAa,IAAI,MAAM,KAAK,IAAI,CAAC;EAEjE,MAAM,eAAe,eAAe;GAClC,MAAM,cAAc,SAAS;GAC7B,IAAI,CAAC,aAAa,OAAO;GAEzB,MAAM,SAAS,UAAsB;IACnC,OAAO,OAAO,MAAM,SAAS,KAAK,SAAS,eAAe,MAAM,KAAK,QAAQ,CAAC,KAAK;GACrF;GAEA,OAAO,MAAM,MAAM,KAAK,QAAQ;EAClC,CAAC;EAED,SAAS,qBAAqB;GAC5B,MAAM,EAAE,SAAS;GACjB,aAAa,IAAI,KAAK,IAAI,IAAI,aAAa,OAAO,KAAK,IAAI,IAAI,aAAa,IAAI,KAAK,IAAI;EAC3F;;;uBA3EE,mBAsCK,MAAA,EAtCA,OAAK,eAAE,MAAA,GAAA,EAAI,EAAC,KAAA,CAAA,EAAA,GAAA;IACf,mBAoBM,OAAA;KAnBH,OAAK,eAAA;MAAY,MAAA,GAAA,EAAI,EAAC,aAAA;MAAyB,MAAA,GAAA,EAAI,GAAE,eAAgB,QAAA,UAAK,CAAA;MAAiB,MAAA,GAAA,EAAI,GAAE,YAAa,SAAA,KAAQ;MAAW,MAAA,GAAA,EAAI,GAAE,iBAAkB,aAAA,KAAY;;KAMrK,SAAO;;KAEQ,QAAA,KAAK,QAAA,UAAA,GAArB,YAAsE,aAAA;;MAA1C,MAAM,QAAA,KAAK;MAAO,OAAK,eAAE,MAAA,GAAA,EAAI,EAAC,MAAA,CAAA;;KAE1D,mBAAA,MAAA;KACA,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,GAAA,EAAI,EAAC,WAAA,CAAA,EAAA,GAAA,gBACd,QAAA,KAAK,KAAK,GAAA,CAAA;KAGf,mBAAA,QAAA;KACA,YAES,MAAA,WAAA,GAAA,EAFA,OAAK,eAAA,CAAG,MAAA,GAAA,EAAI,EAAC,YAAA,GAAgB,MAAA,GAAA,EAAI,GAAE,YAAa,SAAA,KAAQ,CAAA,CAAA,EAAA,GAAA;6BACjD,CAAd,YAAc,MAAA,UAAA,CAAA,CAAA,CAAA;;;;IAIlB,mBAAA,eAAA;IACA,YAaa,YAAA;KAZV,SAAK,OAAA,OAAA,OAAA,MAAG,OAAgB,MAAA,gBAAA,EAAiB,MAAM,EAAE;KACjD,cAAW,OAAA,OAAA,OAAA,MAAG,OAAgB,MAAA,gBAAA,EAAiB,WAAW,EAAE;KAC5D,eAAY,OAAA,OAAA,OAAA,MAAG,OAAgB,MAAA,gBAAA,EAAiB,YAAY,EAAE;KAC9D,SAAK,OAAA,OAAA,OAAA,MAAG,OAAgB,MAAA,gBAAA,EAAiB,MAAM,EAAE;KACjD,cAAW,OAAA,OAAA,OAAA,MAAG,OAAgB,MAAA,gBAAA,EAAiB,WAAW,EAAE;KAL/D,WAAA;;4BAYO,CAAA,eALL,mBAKK,MAAA,EALA,OAAK,eAAE,MAAA,GAAA,EAAI,EAAC,UAAA,CAAA,EAAA,GAAA,EAAA,UAAA,IAAA,GACf,mBAGW,UAAA,MAAA,WAHwB,QAAA,KAAK,WAAtB,OAAO,UAAK;8DAA2B,MAAA,MAAA,EAAO,OAAO,QAAA,SAAS,EAAA,GAAA,CAAA,CAC7D,MAAM,UAAU,UAAA,UAAA,GAAjC,YAA4E,aAAA;;OAAlC,MAAM;OAAQ,OAAO,QAAA,QAAK;sDACpE,YAAyF,mBAAA;;OAAzE,MAAM;OAAQ,cAAY,MAAA,MAAA,EAAO,OAAO,QAAA,SAAS;OAAI,OAAO,QAAA,QAAK;;;;;;8BAH9C,SAAA,KAAQ,CAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"nav-sub.js","names":[],"sources":["../../../src/components/nav/nav-sub.vue"],"sourcesContent":["<template>\n <li :class=\"cls.e('sub')\">\n <div\n :class=\"[\n cls.e('sub-content'),\n bem.is('first-level', depth === 0),\n bem.is('expanded', expanded),\n bem.is('branch-active', branchActive)\n ]\"\n @click=\"handleToggleExpand\"\n >\n <UNavIcon v-if=\"item.icon\" :icon=\"item.icon\" :class=\"cls.e('icon')\" />\n\n <!-- 文本 -->\n <span :class=\"cls.e('sub-title')\">\n {{ item.title }}\n </span>\n\n <!-- 展开图标 -->\n <u-icon :class=\"[cls.e('sub-expand'), bem.is('expanded', expanded)]\">\n <ArrowRight />\n </u-icon>\n </div>\n\n <!-- @vue-ignore -->\n <transition\n @enter=\"(el: Element) => expandTransition.enter(el as HTMLElement)\"\n @after-enter=\"(el: Element) => expandTransition.afterEnter(el as HTMLElement)\"\n @before-leave=\"(el: Element) => expandTransition.beforeLeave(el as HTMLElement)\"\n @leave=\"(el: Element) => expandTransition.leave(el as HTMLElement)\"\n @after-leave=\"(el: Element) => expandTransition.afterLeave(el as HTMLElement)\"\n >\n <ul :class=\"cls.e('sub-list')\" v-show=\"expanded\">\n <template v-for=\"(child, index) of item.children!\" :key=\"getKey(index, parentKey)\">\n <UNavItem v-if=\"!child.children?.length\" :item=\"child\" :depth=\"depth + 1\" />\n <NavSub v-else :item=\"child\" :parent-key=\"getKey(index, parentKey)\" :depth=\"depth + 1\" />\n </template>\n </ul>\n </transition>\n </li>\n</template>\n\n<script setup lang=\"ts\">\nimport { ArrowRight } from '@veltra/icons/normal'\nimport { bem } from '@veltra/utils'\nimport { computed, inject } from 'vue'\n\nimport type { NavItem } from '../../types'\nimport { UIcon } from '../icon'\nimport { NavDIKey } from './di'\nimport { getKey } from './helper'\nimport UNavIcon from './nav-icon.vue'\nimport UNavItem from './nav-item.vue'\n\ndefineOptions({ name: 'UNavSub' })\n\nconst props = defineProps<{ item: NavItem; parentKey: string; depth: number }>()\n\nconst { cls, expandedPath, navProps, expandTransition } = inject(NavDIKey)!\n\nconst expanded = computed(() => expandedPath.has(props.item.path))\n\nconst branchActive = computed(() => {\n const currentPath = navProps.currentPath\n if (!currentPath) return false\n\n const check = (items?: NavItem[]) => {\n return items?.some((item) => item.path === currentPath || check(item.children)) ?? false\n }\n\n return check(props.item.children)\n})\n\nfunction handleToggleExpand() {\n const { item } = props\n expandedPath.has(item.path) ? expandedPath.delete(item.path) : expandedPath.add(item.path)\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAwDA,MAAM,QAAQ;EAEd,MAAM,EAAE,KAAK,cAAc,UAAU,qBAAqB,OAAO,QAAQ;EAEzE,MAAM,WAAW,eAAe,aAAa,IAAI,MAAM,KAAK,IAAI,CAAC;EAEjE,MAAM,eAAe,eAAe;GAClC,MAAM,cAAc,SAAS;GAC7B,IAAI,CAAC,aAAa,OAAO;GAEzB,MAAM,SAAS,UAAsB;IACnC,OAAO,OAAO,MAAM,SAAS,KAAK,SAAS,eAAe,MAAM,KAAK,QAAQ,CAAC,KAAK;GACrF;GAEA,OAAO,MAAM,MAAM,KAAK,QAAQ;EAClC,CAAC;EAED,SAAS,qBAAqB;GAC5B,MAAM,EAAE,SAAS;GACjB,aAAa,IAAI,KAAK,IAAI,IAAI,aAAa,OAAO,KAAK,IAAI,IAAI,aAAa,IAAI,KAAK,IAAI;EAC3F;;;uBA3EE,mBAsCK,MAAA,EAtCA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,KAAA,CAAA,EAAA,GAAA;IACf,mBAoBM,OAAA;KAnBH,OAAK,eAAA;MAAY,MAAA,GAAA,CAAG,CAAC,EAAC,aAAA;MAAyB,MAAA,GAAA,CAAG,CAAC,GAAE,eAAgB,QAAA,UAAK,CAAA;MAAiB,MAAA,GAAA,CAAG,CAAC,GAAE,YAAa,SAAA,KAAQ;MAAW,MAAA,GAAA,CAAG,CAAC,GAAE,iBAAkB,aAAA,KAAY;;KAMrK,SAAO;;KAEQ,QAAA,KAAK,QAAA,UAAA,GAArB,YAAsE,aAAA;;MAA1C,MAAM,QAAA,KAAK;MAAO,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,MAAA,CAAA;;KAE1D,mBAAA,MAAA;KACA,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,WAAA,CAAA,EAAA,GAAA,gBACd,QAAA,KAAK,KAAK,GAAA,CAAA;KAGf,mBAAA,QAAA;KACA,YAES,MAAA,WAAA,GAAA,EAFA,OAAK,eAAA,CAAG,MAAA,GAAA,CAAG,CAAC,EAAC,YAAA,GAAgB,MAAA,GAAA,CAAG,CAAC,GAAE,YAAa,SAAA,KAAQ,CAAA,CAAA,EAAA,GAAA;6BACjD,CAAd,YAAc,MAAA,UAAA,CAAA,CAAA,CAAA;;;;IAIlB,mBAAA,eAAA;IACA,YAaa,YAAA;KAZV,SAAK,OAAA,OAAA,OAAA,MAAG,OAAgB,MAAA,gBAAA,CAAgB,CAAC,MAAM,EAAE;KACjD,cAAW,OAAA,OAAA,OAAA,MAAG,OAAgB,MAAA,gBAAA,CAAgB,CAAC,WAAW,EAAE;KAC5D,eAAY,OAAA,OAAA,OAAA,MAAG,OAAgB,MAAA,gBAAA,CAAgB,CAAC,YAAY,EAAE;KAC9D,SAAK,OAAA,OAAA,OAAA,MAAG,OAAgB,MAAA,gBAAA,CAAgB,CAAC,MAAM,EAAE;KACjD,cAAW,OAAA,OAAA,OAAA,MAAG,OAAgB,MAAA,gBAAA,CAAgB,CAAC,WAAW,EAAE;KAL/D,WAAA;;4BAYO,CAAA,eALL,mBAKK,MAAA,EALA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,UAAA,CAAA,EAAA,GAAA,EAAA,UAAA,IAAA,GACf,mBAGW,UAAA,MAAA,WAHwB,QAAA,KAAK,WAAtB,OAAO,UAAK;8DAA2B,MAAA,MAAA,CAAM,CAAC,OAAO,QAAA,SAAS,EAAA,GAAA,CAAA,CAC7D,MAAM,UAAU,UAAA,UAAA,GAAjC,YAA4E,aAAA;;OAAlC,MAAM;OAAQ,OAAO,QAAA,QAAK;sDACpE,YAAyF,mBAAA;;OAAzE,MAAM;OAAQ,cAAY,MAAA,MAAA,CAAM,CAAC,OAAO,QAAA,SAAS;OAAI,OAAO,QAAA,QAAK;;;;;;8BAH9C,SAAA,KAAQ,CAAA,CAAA,CAAA,CAAA"}
@@ -10,8 +10,8 @@ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock
10
10
  import { useFallbackProps } from "@veltra/compositions";
11
11
  import { ExpandTransition, bem } from "@veltra/utils";
12
12
  //#region src/components/nav/nav.vue
13
- const _sfc_main = /* @__PURE__ */ defineComponent({
14
- name: "Nav",
13
+ const _sfc_main = /*@__PURE__*/ defineComponent({
14
+ name: "UNav",
15
15
  __name: "nav",
16
16
  props: {
17
17
  currentPath: {},
@@ -1 +1 @@
1
- {"version":3,"file":"nav.js","names":[],"sources":["../../../src/components/nav/nav.vue"],"sourcesContent":["<template>\n <u-scroll tag=\"ul\" :class=\"[navCls.b, navCls.m(size)]\" :container-class=\"navCls.e('container')\">\n <!-- 常规 -->\n <template v-if=\"!collapsed\">\n <template v-for=\"(item, index) of menus\" :key=\"index\">\n <UNavSub v-if=\"item.children?.length\" :item=\"item\" :parent-key=\"String(index)\" :depth=\"0\" />\n <UNavItem v-else :item=\"item\" :key=\"index\" :depth=\"0\" />\n </template>\n </template>\n\n <!-- 折叠 -->\n <template v-else>\n <template v-for=\"(item, index) of menus\" :key=\"index\">\n <UNavSubCollapsed\n v-if=\"item.children?.length\"\n :item=\"item\"\n :parent-key=\"String(index)\"\n :depth=\"0\"\n />\n <UNavItemCollapsed v-else :item=\"item\" :key=\"index\" :depth=\"0\" />\n </template>\n </template>\n </u-scroll>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps } from '@veltra/compositions'\nimport { bem, ExpandTransition } from '@veltra/utils'\nimport type { ComponentSize } from '@veltra/utils'\nimport { computed, provide, shallowReactive, watch } from 'vue'\n\nimport type { NavEmits, NavProps } from '../../types/nav'\nimport { UScroll } from '../scroll'\nimport { NavDIKey } from './di'\nimport { collectNavBranchPaths } from './helper'\nimport UNavItemCollapsed from './nav-item-collapsed.vue'\nimport UNavItem from './nav-item.vue'\nimport UNavSubCollapsed from './nav-sub-collapsed.vue'\nimport UNavSub from './nav-sub.vue'\nimport { walkNavWithPath } from './walk-nav-path'\n\ndefineOptions({ name: 'Nav' })\n\nconst props = withDefaults(defineProps<NavProps>(), { collapsed: false })\n\nconst emit = defineEmits<NavEmits>()\n\nconst cls = bem('nav')\nconst collapsedCls = bem('collapsed-nav')\n\nconst navCls = computed(() => {\n return props.collapsed ? collapsedCls : cls\n})\n\nconst expandTransition = new ExpandTransition({\n enterTransition:\n 'height 0.25s cubic-bezier(0.4, 0, 0.2, 1), padding-top 0.25s cubic-bezier(0.4, 0, 0.2, 1), padding-bottom 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.18s cubic-bezier(0.4, 0, 0.2, 1)',\n leaveTransition:\n 'height 0.2s cubic-bezier(0.4, 0, 1, 1), padding-top 0.2s cubic-bezier(0.4, 0, 1, 1), padding-bottom 0.2s cubic-bezier(0.4, 0, 1, 1), opacity 0.12s cubic-bezier(0.4, 0, 1, 1)',\n opacity: true\n})\n\nconst { size } = useFallbackProps([props], { size: 'default' as ComponentSize })\n\nconst expandedPath = shallowReactive(new Set<string>())\n\nwatch(\n [() => props.currentPath, () => props.menus],\n ([currentPath, menus]) => {\n if (!currentPath || !menus) return\n menus.forEach((menu) => {\n walkNavWithPath(menu, (node, nodePath) => {\n if (node.path === currentPath) {\n nodePath.slice(0, -1).forEach((path) => {\n expandedPath.add(path.path)\n })\n return false\n }\n })\n })\n },\n { immediate: true }\n)\n\nprovide(NavDIKey, {\n cls,\n collapsedCls,\n navProps: props,\n navEmit: emit,\n expandedPath,\n size,\n expandTransition\n})\n\nfunction expandAll() {\n collectNavBranchPaths(props.menus).forEach((path) => {\n expandedPath.add(path)\n })\n}\n\nfunction collapseAll() {\n expandedPath.clear()\n}\n\ndefineExpose({ expandAll, collapseAll })\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EA2CA,MAAM,QAAQ;EAEd,MAAM,OAAO;EAEb,MAAM,MAAM,IAAI,KAAK;EACrB,MAAM,eAAe,IAAI,eAAe;EAExC,MAAM,SAAS,eAAe;GAC5B,OAAO,MAAM,YAAY,eAAe;EAC1C,CAAC;EAED,MAAM,mBAAmB,IAAI,iBAAiB;GAC5C,iBACE;GACF,iBACE;GACF,SAAS;EACX,CAAC;EAED,MAAM,EAAE,SAAS,iBAAiB,CAAC,KAAK,GAAG,EAAE,MAAM,UAA2B,CAAC;EAE/E,MAAM,eAAe,gCAAgB,IAAI,IAAY,CAAC;EAEtD,MACE,OAAO,MAAM,mBAAmB,MAAM,KAAK,IAC1C,CAAC,aAAa,WAAW;GACxB,IAAI,CAAC,eAAe,CAAC,OAAO;GAC5B,MAAM,SAAS,SAAS;IACtB,gBAAgB,OAAO,MAAM,aAAa;KACxC,IAAI,KAAK,SAAS,aAAa;MAC7B,SAAS,MAAM,GAAG,EAAE,EAAE,SAAS,SAAS;OACtC,aAAa,IAAI,KAAK,IAAI;MAC5B,CAAC;MACD,OAAO;KACT;IACF,CAAC;GACH,CAAC;EACH,GACA,EAAE,WAAW,KAAK,CACpB;EAEA,QAAQ,UAAU;GAChB;GACA;GACA,UAAU;GACV,SAAS;GACT;GACA;GACA;EACF,CAAC;EAED,SAAS,YAAY;GACnB,sBAAsB,MAAM,KAAK,EAAE,SAAS,SAAS;IACnD,aAAa,IAAI,IAAI;GACvB,CAAC;EACH;EAEA,SAAS,cAAc;GACrB,aAAa,MAAM;EACrB;EAEA,SAAa;GAAE;GAAW;EAAY,CAAC;;uBAvGrC,YAqBW,MAAA,WAAA,GAAA;IArBD,KAAI;IAAM,OAAK,eAAA,CAAG,OAAA,MAAO,GAAG,OAAA,MAAO,EAAE,MAAA,IAAA,CAAI,CAAA,CAAA;IAAK,mBAAiB,OAAA,MAAO,EAAC,WAAA;;2BACpE,CAAX,mBAAA,MAAA,GAAA,CACiB,QAAA,aAAA,UAAA,IAAA,GACf,mBAGW,UAAA,EAAA,KAAA,EAAA,GAAA,WAHuB,QAAA,QAAhB,MAAM,UAAK;6DAAkB,MAAK,GAAA,CACnC,KAAK,UAAU,UAAA,UAAA,GAA9B,YAA4F,aAAA;;MAA/C;MAAO,cAAY,OAAO,KAAK;MAAI,OAAO;0DACvF,YAAwD,aAAA;MAAhC;MAAO,KAAK;MAAQ,OAAO;;8BAKvD,mBAUW,UAAA,EAAA,KAAA,EAAA,GAAA,CAXX,mBAAA,MAAA,IAAA,UAAA,IAAA,GAEE,mBAQW,UAAA,MAAA,WARuB,QAAA,QAAhB,MAAM,UAAK;6DAAkB,MAAK,GAAA,CAE1C,KAAK,UAAU,UAAA,UAAA,GADvB,YAKE,aAAA;;MAHO;MACN,cAAY,OAAO,KAAK;MACxB,OAAO;0DAEV,YAAiE,aAAA;MAAhC;MAAO,KAAK;MAAQ,OAAO"}
1
+ {"version":3,"file":"nav.js","names":[],"sources":["../../../src/components/nav/nav.vue"],"sourcesContent":["<template>\n <u-scroll tag=\"ul\" :class=\"[navCls.b, navCls.m(size)]\" :container-class=\"navCls.e('container')\">\n <!-- 常规 -->\n <template v-if=\"!collapsed\">\n <template v-for=\"(item, index) of menus\" :key=\"index\">\n <UNavSub v-if=\"item.children?.length\" :item=\"item\" :parent-key=\"String(index)\" :depth=\"0\" />\n <UNavItem v-else :item=\"item\" :key=\"index\" :depth=\"0\" />\n </template>\n </template>\n\n <!-- 折叠 -->\n <template v-else>\n <template v-for=\"(item, index) of menus\" :key=\"index\">\n <UNavSubCollapsed\n v-if=\"item.children?.length\"\n :item=\"item\"\n :parent-key=\"String(index)\"\n :depth=\"0\"\n />\n <UNavItemCollapsed v-else :item=\"item\" :key=\"index\" :depth=\"0\" />\n </template>\n </template>\n </u-scroll>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps } from '@veltra/compositions'\nimport { bem, ExpandTransition } from '@veltra/utils'\nimport type { ComponentSize } from '@veltra/utils'\nimport { computed, provide, shallowReactive, watch } from 'vue'\n\nimport type { NavEmits, NavProps } from '../../types/nav'\nimport { UScroll } from '../scroll'\nimport { NavDIKey } from './di'\nimport { collectNavBranchPaths } from './helper'\nimport UNavItemCollapsed from './nav-item-collapsed.vue'\nimport UNavItem from './nav-item.vue'\nimport UNavSubCollapsed from './nav-sub-collapsed.vue'\nimport UNavSub from './nav-sub.vue'\nimport { walkNavWithPath } from './walk-nav-path'\n\ndefineOptions({ name: 'UNav' })\n\nconst props = withDefaults(defineProps<NavProps>(), { collapsed: false })\n\nconst emit = defineEmits<NavEmits>()\n\nconst cls = bem('nav')\nconst collapsedCls = bem('collapsed-nav')\n\nconst navCls = computed(() => {\n return props.collapsed ? collapsedCls : cls\n})\n\nconst expandTransition = new ExpandTransition({\n enterTransition:\n 'height 0.25s cubic-bezier(0.4, 0, 0.2, 1), padding-top 0.25s cubic-bezier(0.4, 0, 0.2, 1), padding-bottom 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.18s cubic-bezier(0.4, 0, 0.2, 1)',\n leaveTransition:\n 'height 0.2s cubic-bezier(0.4, 0, 1, 1), padding-top 0.2s cubic-bezier(0.4, 0, 1, 1), padding-bottom 0.2s cubic-bezier(0.4, 0, 1, 1), opacity 0.12s cubic-bezier(0.4, 0, 1, 1)',\n opacity: true\n})\n\nconst { size } = useFallbackProps([props], { size: 'default' as ComponentSize })\n\nconst expandedPath = shallowReactive(new Set<string>())\n\nwatch(\n [() => props.currentPath, () => props.menus],\n ([currentPath, menus]) => {\n if (!currentPath || !menus) return\n menus.forEach((menu) => {\n walkNavWithPath(menu, (node, nodePath) => {\n if (node.path === currentPath) {\n nodePath.slice(0, -1).forEach((path) => {\n expandedPath.add(path.path)\n })\n return false\n }\n })\n })\n },\n { immediate: true }\n)\n\nprovide(NavDIKey, {\n cls,\n collapsedCls,\n navProps: props,\n navEmit: emit,\n expandedPath,\n size,\n expandTransition\n})\n\nfunction expandAll() {\n collectNavBranchPaths(props.menus).forEach((path) => {\n expandedPath.add(path)\n })\n}\n\nfunction collapseAll() {\n expandedPath.clear()\n}\n\ndefineExpose({ expandAll, collapseAll })\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EA2CA,MAAM,QAAQ;EAEd,MAAM,OAAO;EAEb,MAAM,MAAM,IAAI,KAAK;EACrB,MAAM,eAAe,IAAI,eAAe;EAExC,MAAM,SAAS,eAAe;GAC5B,OAAO,MAAM,YAAY,eAAe;EAC1C,CAAC;EAED,MAAM,mBAAmB,IAAI,iBAAiB;GAC5C,iBACE;GACF,iBACE;GACF,SAAS;EACX,CAAC;EAED,MAAM,EAAE,SAAS,iBAAiB,CAAC,KAAK,GAAG,EAAE,MAAM,UAA2B,CAAC;EAE/E,MAAM,eAAe,gCAAgB,IAAI,IAAY,CAAC;EAEtD,MACE,OAAO,MAAM,mBAAmB,MAAM,KAAK,IAC1C,CAAC,aAAa,WAAW;GACxB,IAAI,CAAC,eAAe,CAAC,OAAO;GAC5B,MAAM,SAAS,SAAS;IACtB,gBAAgB,OAAO,MAAM,aAAa;KACxC,IAAI,KAAK,SAAS,aAAa;MAC7B,SAAS,MAAM,GAAG,EAAE,CAAC,CAAC,SAAS,SAAS;OACtC,aAAa,IAAI,KAAK,IAAI;MAC5B,CAAC;MACD,OAAO;KACT;IACF,CAAC;GACH,CAAC;EACH,GACA,EAAE,WAAW,KAAK,CACpB;EAEA,QAAQ,UAAU;GAChB;GACA;GACA,UAAU;GACV,SAAS;GACT;GACA;GACA;EACF,CAAC;EAED,SAAS,YAAY;GACnB,sBAAsB,MAAM,KAAK,CAAC,CAAC,SAAS,SAAS;IACnD,aAAa,IAAI,IAAI;GACvB,CAAC;EACH;EAEA,SAAS,cAAc;GACrB,aAAa,MAAM;EACrB;EAEA,SAAa;GAAE;GAAW;EAAY,CAAC;;uBAvGrC,YAqBW,MAAA,WAAA,GAAA;IArBD,KAAI;IAAM,OAAK,eAAA,CAAG,OAAA,MAAO,GAAG,OAAA,MAAO,EAAE,MAAA,IAAA,CAAI,CAAA,CAAA;IAAK,mBAAiB,OAAA,MAAO,EAAC,WAAA;;2BACpE,CAAX,mBAAA,MAAA,GAAA,CACiB,QAAA,aAAA,UAAA,IAAA,GACf,mBAGW,UAAA,EAAA,KAAA,EAAA,GAAA,WAHuB,QAAA,QAAhB,MAAM,UAAK;6DAAkB,MAAK,GAAA,CACnC,KAAK,UAAU,UAAA,UAAA,GAA9B,YAA4F,aAAA;;MAA/C;MAAO,cAAY,OAAO,KAAK;MAAI,OAAO;0DACvF,YAAwD,aAAA;MAAhC;MAAO,KAAK;MAAQ,OAAO;;8BAKvD,mBAUW,UAAA,EAAA,KAAA,EAAA,GAAA,CAXX,mBAAA,MAAA,IAAA,UAAA,IAAA,GAEE,mBAQW,UAAA,MAAA,WARuB,QAAA,QAAhB,MAAM,UAAK;6DAAkB,MAAK,GAAA,CAE1C,KAAK,UAAU,UAAA,UAAA,GADvB,YAKE,aAAA;;MAHO;MACN,cAAY,OAAO,KAAK;MACxB,OAAO;0DAEV,YAAiE,aAAA;MAAhC;MAAO,KAAK;MAAQ,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["UNotification"],"sources":["../../../src/components/notification/index.ts"],"sourcesContent":["export { default as UNotification } from './notification.vue'\nimport { zIndex } from '@veltra/utils'\nimport { createVNode, render, type VNode, reactive } from 'vue'\n\nimport type { NotificationProps } from '../../types'\nimport UNotification from './notification.vue'\n\ntype NotificationItem = { vm: VNode }\n\nconst notificationQueue = reactive({\n 'bottom-right': [] as NotificationItem[],\n 'bottom-left': [] as NotificationItem[],\n 'top-right': [] as NotificationItem[],\n 'top-left': [] as NotificationItem[]\n})\n\nconst length = (key: string) => {\n return notificationQueue[key].length\n}\n\nlet count = 1\n\nconst close = (id: string, position: string, userClose?: (vm: VNode) => void) => {\n const index = notificationQueue[position].findIndex(({ vm }) => {\n return id === vm.component!.props.id\n })\n if (index > -1) {\n const { vm } = notificationQueue[position][index]!\n userClose?.(vm)\n let offset = Number(notificationQueue[position][index]!.vm.component!.props.offset)\n notificationQueue[position].splice(index, 1)\n let temp = 0\n for (let i = length(position); i > 0; i--) {\n if (i < index + 1) {\n temp = Number(notificationQueue[position][i - 1]!.vm.component!.props.offset)\n notificationQueue[position][i - 1]!.vm.component!.props.offset = offset\n offset = temp\n }\n }\n }\n if (!notificationQueue[position].length) {\n const wrapper = document.getElementById(`notification-${position}-id`)!\n wrapper.style.removeProperty('height')\n wrapper.style.removeProperty('overflow')\n }\n}\n\nconst createWrapper = (options: NotificationProps) => {\n const position = options.position || 'bottom-right'\n if (document.getElementById(`notification-${position}-id`)) {\n return document.getElementById(`notification-${position}-id`)\n } else {\n const offset = options.offset || 20\n const wrapper = document.createElement('div')\n wrapper.id = `notification-${position}-id`\n Object.assign(\n wrapper.style,\n { position: 'fixed', textAlign: 'center' },\n {\n 'top-right': { top: `${offset}px`, right: `${offset}px` },\n 'top-left': { top: `${offset}px`, left: `${offset}px` },\n 'bottom-left': { bottom: `${offset}px`, left: `${offset}px` },\n 'bottom-right': { bottom: `${offset}px`, right: `${offset}px` }\n }[position]\n )\n wrapper.addEventListener('mouseenter', (e: MouseEvent) => {\n if (length(position)) {\n let innerCount = 0\n let innerOffset = 0\n let width = 0\n let height = 0\n for (let i = length(position); i > 0; i--) {\n notificationQueue[position][i - 1]!.vm.component!.exposed!.clearTimer()\n if (i === length(position)) {\n width = notificationQueue[position][i - 1]!.vm.el?.offsetWidth + 8\n }\n notificationQueue[position][i - 1]!.vm.component!.props.offset = innerOffset\n innerOffset += notificationQueue[position][i - 1]!.vm.el?.offsetHeight / 2 + 5\n if (innerCount < 3) height += notificationQueue[position][i - 1]!.vm.el?.offsetHeight + 10\n innerCount++\n }\n\n Object.assign((e.target as HTMLElement).style, {\n width: `${width}px`,\n height: `${height}px`,\n overflow: 'hidden',\n transition: 'height 0.4s'\n })\n }\n })\n wrapper.addEventListener('mouseleave', (e: MouseEvent) => {\n if (length(position)) {\n let innerOffset = 0\n let innerCount = 0\n let height = 0\n for (let i = length(position); i > 0; i--) {\n notificationQueue[position][i - 1]!.vm.component!.exposed!.startTimer()\n if (i === length(position))\n height = notificationQueue[position][i - 1]!.vm.el?.offsetHeight + 80\n notificationQueue[position][i - 1]!.vm.component!.props.offset = innerOffset\n if (innerCount < 2) innerOffset += 10\n innerCount++\n }\n ;(e.target as HTMLElement).style.transition = 'height 0.45s'\n ;(e.target as HTMLElement).style.height = `${height}px`\n } else {\n ;(e.target as HTMLElement).style.removeProperty('height')\n ;(e.target as HTMLElement).style.removeProperty('overflow')\n }\n })\n document.body.appendChild(wrapper)\n return wrapper\n }\n}\n\nexport const Notification = (options: NotificationProps): void => {\n const position = options.position || 'bottom-right'\n const container = document.createElement('div')\n const id = `notification_${count++}`\n\n if (length(position)) {\n let innerOffset = 0\n let innerCount = 0\n for (let i = length(position); i > 0; i--) {\n if (innerCount < 2) innerOffset += 10\n notificationQueue[position][i - 1]!.vm.component!.props.offset = innerOffset\n innerCount++\n }\n }\n\n const vm = createVNode(UNotification, {\n ...options,\n offset: 0,\n id,\n zIndex: zIndex(),\n onClose: () => {\n close(id, position, options.onClose)\n }\n })\n vm.props!.onDestroy = () => render(null, container)\n render(vm, container)\n notificationQueue[position].push({ vm })\n const wrapper = createWrapper(options)\n wrapper?.appendChild(container.firstElementChild!)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["UNotification"],"sources":["../../../src/components/notification/index.ts"],"sourcesContent":["export { default as UNotification } from './notification.vue'\nimport { zIndex } from '@veltra/utils'\nimport { createVNode, render, type VNode, reactive } from 'vue'\n\nimport type { NotificationProps } from '../../types'\nimport UNotification from './notification.vue'\n\ntype NotificationItem = { vm: VNode }\n\nconst notificationQueue = reactive({\n 'bottom-right': [] as NotificationItem[],\n 'bottom-left': [] as NotificationItem[],\n 'top-right': [] as NotificationItem[],\n 'top-left': [] as NotificationItem[]\n})\n\nconst length = (key: string) => {\n return notificationQueue[key].length\n}\n\nlet count = 1\n\nconst close = (id: string, position: string, userClose?: (vm: VNode) => void) => {\n const index = notificationQueue[position].findIndex(({ vm }) => {\n return id === vm.component!.props.id\n })\n if (index > -1) {\n const { vm } = notificationQueue[position][index]!\n userClose?.(vm)\n let offset = Number(notificationQueue[position][index]!.vm.component!.props.offset)\n notificationQueue[position].splice(index, 1)\n let temp = 0\n for (let i = length(position); i > 0; i--) {\n if (i < index + 1) {\n temp = Number(notificationQueue[position][i - 1]!.vm.component!.props.offset)\n notificationQueue[position][i - 1]!.vm.component!.props.offset = offset\n offset = temp\n }\n }\n }\n if (!notificationQueue[position].length) {\n const wrapper = document.getElementById(`notification-${position}-id`)!\n wrapper.style.removeProperty('height')\n wrapper.style.removeProperty('overflow')\n }\n}\n\nconst createWrapper = (options: NotificationProps) => {\n const position = options.position || 'bottom-right'\n if (document.getElementById(`notification-${position}-id`)) {\n return document.getElementById(`notification-${position}-id`)\n } else {\n const offset = options.offset || 20\n const wrapper = document.createElement('div')\n wrapper.id = `notification-${position}-id`\n Object.assign(\n wrapper.style,\n { position: 'fixed', textAlign: 'center' },\n {\n 'top-right': { top: `${offset}px`, right: `${offset}px` },\n 'top-left': { top: `${offset}px`, left: `${offset}px` },\n 'bottom-left': { bottom: `${offset}px`, left: `${offset}px` },\n 'bottom-right': { bottom: `${offset}px`, right: `${offset}px` }\n }[position]\n )\n wrapper.addEventListener('mouseenter', (e: MouseEvent) => {\n if (length(position)) {\n let innerCount = 0\n let innerOffset = 0\n let width = 0\n let height = 0\n for (let i = length(position); i > 0; i--) {\n notificationQueue[position][i - 1]!.vm.component!.exposed!.clearTimer()\n if (i === length(position)) {\n width = notificationQueue[position][i - 1]!.vm.el?.offsetWidth + 8\n }\n notificationQueue[position][i - 1]!.vm.component!.props.offset = innerOffset\n innerOffset += notificationQueue[position][i - 1]!.vm.el?.offsetHeight / 2 + 5\n if (innerCount < 3) height += notificationQueue[position][i - 1]!.vm.el?.offsetHeight + 10\n innerCount++\n }\n\n Object.assign((e.target as HTMLElement).style, {\n width: `${width}px`,\n height: `${height}px`,\n overflow: 'hidden',\n transition: 'height 0.4s'\n })\n }\n })\n wrapper.addEventListener('mouseleave', (e: MouseEvent) => {\n if (length(position)) {\n let innerOffset = 0\n let innerCount = 0\n let height = 0\n for (let i = length(position); i > 0; i--) {\n notificationQueue[position][i - 1]!.vm.component!.exposed!.startTimer()\n if (i === length(position))\n height = notificationQueue[position][i - 1]!.vm.el?.offsetHeight + 80\n notificationQueue[position][i - 1]!.vm.component!.props.offset = innerOffset\n if (innerCount < 2) innerOffset += 10\n innerCount++\n }\n ;(e.target as HTMLElement).style.transition = 'height 0.45s'\n ;(e.target as HTMLElement).style.height = `${height}px`\n } else {\n ;(e.target as HTMLElement).style.removeProperty('height')\n ;(e.target as HTMLElement).style.removeProperty('overflow')\n }\n })\n document.body.appendChild(wrapper)\n return wrapper\n }\n}\n\nexport const Notification = (options: NotificationProps): void => {\n const position = options.position || 'bottom-right'\n const container = document.createElement('div')\n const id = `notification_${count++}`\n\n if (length(position)) {\n let innerOffset = 0\n let innerCount = 0\n for (let i = length(position); i > 0; i--) {\n if (innerCount < 2) innerOffset += 10\n notificationQueue[position][i - 1]!.vm.component!.props.offset = innerOffset\n innerCount++\n }\n }\n\n const vm = createVNode(UNotification, {\n ...options,\n offset: 0,\n id,\n zIndex: zIndex(),\n onClose: () => {\n close(id, position, options.onClose)\n }\n })\n vm.props!.onDestroy = () => render(null, container)\n render(vm, container)\n notificationQueue[position].push({ vm })\n const wrapper = createWrapper(options)\n wrapper?.appendChild(container.firstElementChild!)\n}\n"],"mappings":"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"}
@@ -5,8 +5,8 @@ import { useFallbackProps } from "@veltra/compositions";
5
5
  import { bem } from "@veltra/utils";
6
6
  import { CircleCheckFilled, CircleClose, Close, InfoFilled, QuestionFilled, WarningFilled } from "@veltra/icons/normal";
7
7
  //#region src/components/notification/notification.vue
8
- const _sfc_main = /* @__PURE__ */ defineComponent({
9
- name: "Notification",
8
+ const _sfc_main = /*@__PURE__*/ defineComponent({
9
+ name: "UNotification",
10
10
  __name: "notification",
11
11
  props: {
12
12
  modelValue: {},
@@ -1 +1 @@
1
- {"version":3,"file":"notification.js","names":["$emit"],"sources":["../../../src/components/notification/notification.vue"],"sourcesContent":["<template>\n <transition\n :name=\"`notification-fade-${position.split('-')[0]}`\"\n @before-leave=\"onClose\"\n @after-leave=\"$emit('destroy')\"\n >\n <div\n :class=\"[cls.b, cls.m(size), cls.e(type), cls.e(position)]\"\n v-show=\"visible\"\n :style=\"customStyle\"\n >\n <div :class=\"cls.e('icon')\">\n <UIcon>\n <component :is=\"typeIcon\" />\n </UIcon>\n </div>\n <div :class=\"cls.e('content')\">\n <div :class=\"cls.em('content', 'title')\">{{ title }}</div>\n <div :class=\"cls.em('content', 'message')\">{{ message }}</div>\n <div :class=\"cls.em('content', 'button')\" v-if=\"buttonText\">\n <UButton :type=\"type\" plain @click=\"handleClick\">{{ buttonText }}</UButton>\n </div>\n </div>\n <div :class=\"cls.e('close')\" v-if=\"closable\" @click.stop=\"close\">\n <UIcon><Close /></UIcon>\n </div>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps } from '@veltra/compositions'\nimport {\n CircleCheckFilled,\n CircleClose,\n Close,\n InfoFilled,\n QuestionFilled,\n WarningFilled\n} from '@veltra/icons/normal'\nimport { bem } from '@veltra/utils'\nimport { ref, computed, onMounted, type CSSProperties } from 'vue'\n\nimport type { NotificationProps, NotificationExposed, ColorType } from '../../types'\nimport { UButton } from '../button'\nimport { UIcon } from '../icon'\n\ndefineOptions({ name: 'Notification' })\n\nconst props = withDefaults(defineProps<NotificationProps>(), {\n closable: false,\n duration: 4500,\n offset: 20,\n buttonText: '',\n position: 'bottom-right'\n})\n\nconst { type, size } = useFallbackProps([props], { type: 'primary' as ColorType, size: 'default' })\n\nconst typeIcon = computed(() => {\n return (\n props.icon ||\n {\n primary: InfoFilled,\n info: QuestionFilled,\n success: CircleCheckFilled,\n warning: WarningFilled,\n danger: CircleClose\n }[type.value]\n )\n})\n\nconst cls = bem('notification')\n\nconst visible = ref<boolean>(false)\n\nonMounted(() => {\n visible.value = true\n startTimer()\n})\n\nconst close = () => {\n visible.value = false\n}\n\nconst customStyle = computed<CSSProperties>(() => {\n return props.offset > 0\n ? {\n [`${props.position.split('-')[0]}`]: `${props.offset}px`,\n zIndex: props.zIndex,\n transform:\n props.position.split('-')[0] === 'bottom'\n ? `translateY(-${props.offset}px)`\n : `translateY(${props.offset}px)`,\n transition: `opacity 0.3s, transform 0.4s, top 0.4s`\n }\n : { [`${props.position.split('-')[0]}`]: `${props.offset}px`, zIndex: props.zIndex }\n})\n\nlet timer = 0\n\nconst startTimer = () => {\n if (props.duration) {\n timer = setTimeout(() => {\n close()\n }, props.duration)\n }\n}\n\nconst clearTimer = () => clearTimeout(timer)\n\nconst handleClick = (e: MouseEvent) => {\n if (props.onClick) props.onClick(e)\n close()\n}\n\ndefineExpose<NotificationExposed>({ startTimer, clearTimer })\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"notification.js","names":["$emit"],"sources":["../../../src/components/notification/notification.vue"],"sourcesContent":["<template>\n <transition\n :name=\"`notification-fade-${position.split('-')[0]}`\"\n @before-leave=\"onClose\"\n @after-leave=\"$emit('destroy')\"\n >\n <div\n :class=\"[cls.b, cls.m(size), cls.e(type), cls.e(position)]\"\n v-show=\"visible\"\n :style=\"customStyle\"\n >\n <div :class=\"cls.e('icon')\">\n <UIcon>\n <component :is=\"typeIcon\" />\n </UIcon>\n </div>\n <div :class=\"cls.e('content')\">\n <div :class=\"cls.em('content', 'title')\">{{ title }}</div>\n <div :class=\"cls.em('content', 'message')\">{{ message }}</div>\n <div :class=\"cls.em('content', 'button')\" v-if=\"buttonText\">\n <UButton :type=\"type\" plain @click=\"handleClick\">{{ buttonText }}</UButton>\n </div>\n </div>\n <div :class=\"cls.e('close')\" v-if=\"closable\" @click.stop=\"close\">\n <UIcon><Close /></UIcon>\n </div>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps } from '@veltra/compositions'\nimport {\n CircleCheckFilled,\n CircleClose,\n Close,\n InfoFilled,\n QuestionFilled,\n WarningFilled\n} from '@veltra/icons/normal'\nimport { bem } from '@veltra/utils'\nimport { ref, computed, onMounted, type CSSProperties } from 'vue'\n\nimport type { NotificationProps, NotificationExposed, ColorType } from '../../types'\nimport { UButton } from '../button'\nimport { UIcon } from '../icon'\n\ndefineOptions({ name: 'UNotification' })\n\nconst props = withDefaults(defineProps<NotificationProps>(), {\n closable: false,\n duration: 4500,\n offset: 20,\n buttonText: '',\n position: 'bottom-right'\n})\n\nconst { type, size } = useFallbackProps([props], { type: 'primary' as ColorType, size: 'default' })\n\nconst typeIcon = computed(() => {\n return (\n props.icon ||\n {\n primary: InfoFilled,\n info: QuestionFilled,\n success: CircleCheckFilled,\n warning: WarningFilled,\n danger: CircleClose\n }[type.value]\n )\n})\n\nconst cls = bem('notification')\n\nconst visible = ref<boolean>(false)\n\nonMounted(() => {\n visible.value = true\n startTimer()\n})\n\nconst close = () => {\n visible.value = false\n}\n\nconst customStyle = computed<CSSProperties>(() => {\n return props.offset > 0\n ? {\n [`${props.position.split('-')[0]}`]: `${props.offset}px`,\n zIndex: props.zIndex,\n transform:\n props.position.split('-')[0] === 'bottom'\n ? `translateY(-${props.offset}px)`\n : `translateY(${props.offset}px)`,\n transition: `opacity 0.3s, transform 0.4s, top 0.4s`\n }\n : { [`${props.position.split('-')[0]}`]: `${props.offset}px`, zIndex: props.zIndex }\n})\n\nlet timer = 0\n\nconst startTimer = () => {\n if (props.duration) {\n timer = setTimeout(() => {\n close()\n }, props.duration)\n }\n}\n\nconst clearTimer = () => clearTimeout(timer)\n\nconst handleClick = (e: MouseEvent) => {\n if (props.onClick) props.onClick(e)\n close()\n}\n\ndefineExpose<NotificationExposed>({ startTimer, clearTimer })\n</script>\n"],"mappings":"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"}
@@ -2,8 +2,8 @@ import { computed, defineComponent, reactive, toDisplayString, watch } from "vue
2
2
  import { Tween } from "@veltra/utils";
3
3
  import { $n } from "@cat-kit/core";
4
4
  //#region src/components/number/number.vue
5
- const _sfc_main = /* @__PURE__ */ defineComponent({
6
- name: "Number",
5
+ const _sfc_main = /*@__PURE__*/ defineComponent({
6
+ name: "UNumber",
7
7
  __name: "number",
8
8
  props: {
9
9
  value: {},
@@ -1 +1 @@
1
- {"version":3,"file":"number.js","names":[],"sources":["../../../src/components/number/number.vue"],"sourcesContent":["<template>\n {{ formatted }}\n</template>\n\n<script lang=\"ts\" setup>\nimport { $n } from '@cat-kit/core'\nimport { Tween } from '@veltra/utils'\nimport { computed, reactive, watch } from 'vue'\n\nimport type { NumberProps } from '../../types'\n\ndefineOptions({ name: 'Number' })\n\nconst props = withDefaults(defineProps<NumberProps>(), { duration: 800, format: 'decimal' })\n\nconst number = reactive({ value: 0 })\n\nconst tween = computed(() =>\n props.tween\n ? new Tween(number, { duration: props.duration, easingFunction: Tween.easing.easeInOutQuad })\n : null\n)\n\nconst formatter = computed(() => {\n return $n.formatter({\n currency: props.format === 'currency' ? 'CNY' : undefined,\n style: props.format,\n precision: props.precision,\n maximumFractionDigits: props.maxPrecision,\n minimumFractionDigits: props.minPrecision\n })\n})\n\nconst formatted = computed(() => {\n return formatter.value.format(number.value)\n})\n\nwatch(\n () => props.value,\n () => {\n props.tween ? tween.value.to({ value: props.value }) : (number.value = props.value)\n },\n { immediate: true }\n)\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAaA,MAAM,QAAQ;EAEd,MAAM,SAAS,SAAS,EAAE,OAAO,EAAE,CAAC;EAEpC,MAAM,QAAQ,eACZ,MAAM,QACF,IAAI,MAAM,QAAQ;GAAE,UAAU,MAAM;GAAU,gBAAgB,MAAM,OAAO;EAAc,CAAC,IAC1F,IACN;EAEA,MAAM,YAAY,eAAe;GAC/B,OAAO,GAAG,UAAU;IAClB,UAAU,MAAM,WAAW,aAAa,QAAQ,KAAA;IAChD,OAAO,MAAM;IACb,WAAW,MAAM;IACjB,uBAAuB,MAAM;IAC7B,uBAAuB,MAAM;GAC/B,CAAC;EACH,CAAC;EAED,MAAM,YAAY,eAAe;GAC/B,OAAO,UAAU,MAAM,OAAO,OAAO,KAAK;EAC5C,CAAC;EAED,YACQ,MAAM,aACN;GACJ,MAAM,QAAQ,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,MAAM,CAAC,IAAK,OAAO,QAAQ,MAAM;EAC/E,GACA,EAAE,WAAW,KAAK,CACpB;;0BA1CK,UAAA,KAAS"}
1
+ {"version":3,"file":"number.js","names":[],"sources":["../../../src/components/number/number.vue"],"sourcesContent":["<template>\n {{ formatted }}\n</template>\n\n<script lang=\"ts\" setup>\nimport { $n } from '@cat-kit/core'\nimport { Tween } from '@veltra/utils'\nimport { computed, reactive, watch } from 'vue'\n\nimport type { NumberProps } from '../../types'\n\ndefineOptions({ name: 'UNumber' })\n\nconst props = withDefaults(defineProps<NumberProps>(), { duration: 800, format: 'decimal' })\n\nconst number = reactive({ value: 0 })\n\nconst tween = computed(() =>\n props.tween\n ? new Tween(number, { duration: props.duration, easingFunction: Tween.easing.easeInOutQuad })\n : null\n)\n\nconst formatter = computed(() => {\n return $n.formatter({\n currency: props.format === 'currency' ? 'CNY' : undefined,\n style: props.format,\n precision: props.precision,\n maximumFractionDigits: props.maxPrecision,\n minimumFractionDigits: props.minPrecision\n })\n})\n\nconst formatted = computed(() => {\n return formatter.value.format(number.value)\n})\n\nwatch(\n () => props.value,\n () => {\n props.tween ? tween.value.to({ value: props.value }) : (number.value = props.value)\n },\n { immediate: true }\n)\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAaA,MAAM,QAAQ;EAEd,MAAM,SAAS,SAAS,EAAE,OAAO,EAAE,CAAC;EAEpC,MAAM,QAAQ,eACZ,MAAM,QACF,IAAI,MAAM,QAAQ;GAAE,UAAU,MAAM;GAAU,gBAAgB,MAAM,OAAO;EAAc,CAAC,IAC1F,IACN;EAEA,MAAM,YAAY,eAAe;GAC/B,OAAO,GAAG,UAAU;IAClB,UAAU,MAAM,WAAW,aAAa,QAAQ,KAAA;IAChD,OAAO,MAAM;IACb,WAAW,MAAM;IACjB,uBAAuB,MAAM;IAC7B,uBAAuB,MAAM;GAC/B,CAAC;EACH,CAAC;EAED,MAAM,YAAY,eAAe;GAC/B,OAAO,UAAU,MAAM,OAAO,OAAO,KAAK;EAC5C,CAAC;EAED,YACQ,MAAM,aACN;GACJ,MAAM,QAAQ,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,MAAM,CAAC,IAAK,OAAO,QAAQ,MAAM;EAC/E,GACA,EAAE,WAAW,KAAK,CACpB;;0BA1CK,UAAA,KAAS"}
@@ -7,10 +7,10 @@ import { ArrowDown, ArrowUp, Close } from "@veltra/icons/normal";
7
7
  import { $n, isUndef, n, o } from "@cat-kit/core";
8
8
  import { vRipple } from "@veltra/directives";
9
9
  //#region src/components/number-input/number-input.vue
10
- const _sfc_main = /* @__PURE__ */ defineComponent({
11
- name: "NumberInput",
10
+ const _sfc_main = /*@__PURE__*/ defineComponent({
11
+ name: "UNumberInput",
12
12
  __name: "number-input",
13
- props: /* @__PURE__ */ mergeModels({
13
+ props: /*@__PURE__*/ mergeModels({
14
14
  modelValue: {},
15
15
  currency: { type: Boolean },
16
16
  precision: {},
@@ -47,7 +47,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
47
47
  "modelValue": {},
48
48
  "modelModifiers": {}
49
49
  }),
50
- emits: /* @__PURE__ */ mergeModels([
50
+ emits: /*@__PURE__*/ mergeModels([
51
51
  "update:modelValue",
52
52
  "change",
53
53
  "clear"
@@ -1 +1 @@
1
- {"version":3,"file":"number-input.js","names":[],"sources":["../../../src/components/number-input/number-input.vue"],"sourcesContent":["<template>\n <u-input\n v-if=\"!readonly\"\n ref=\"inputRef\"\n :class=\"className\"\n :model-value=\"displayed\"\n v-bind=\"inputProps\"\n @update:model-value=\"handleUpdateModelValue\"\n @change=\"handleChange\"\n @keydown.stop=\"handleKeydown\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n :size=\"size\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :clearable=\"false\"\n >\n <template #suffix v-if=\"hasSuffix\">\n <span :class=\"cls.e('suffix')\">\n <u-icon\n v-if=\"props.clearable\"\n :class=\"[cls.e('clear'), bem.is('hidden', !showClear)]\"\n :title=\"showClear ? '清除' : undefined\"\n @click.stop=\"handleClear\"\n >\n <Close />\n </u-icon>\n <span v-if=\"hasCustomSuffix\" :class=\"cls.e('suffix-content')\">\n {{ suffix }}\n <slot name=\"suffix\" />\n </span>\n </span>\n\n <div v-if=\"showStep\" :class=\"cls.e('step')\">\n <u-icon\n @click=\"increase\"\n v-ripple=\"!disabled && increasable\"\n :class=\"bem.is('disabled', disabled || !increasable)\"\n >\n <ArrowUp />\n </u-icon>\n <u-icon\n @click=\"decrease\"\n v-ripple=\"!disabled && reducible\"\n :class=\"bem.is('disabled', disabled || !reducible)\"\n >\n <ArrowDown />\n </u-icon>\n </div>\n </template>\n\n <template #prefix v-if=\"slots.prefix\">\n <slot name=\"prefix\" />\n </template>\n </u-input>\n\n <template v-else>\n {{ generateDisplayed || FORM_EMPTY_CONTENT }}\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { $n, n, o, isUndef } from '@cat-kit/core'\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { vRipple } from '@veltra/directives'\nimport { ArrowDown, ArrowUp, Close } from '@veltra/icons/normal'\nimport { bem, FORM_EMPTY_CONTENT, Tween } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed, shallowRef, watch } from 'vue'\n\nimport type { NumberInputEmits, NumberInputProps, InputExposed } from '../../types'\nimport { UIcon } from '../icon'\nimport { UInput } from '../input'\n\ndefineOptions({ name: 'NumberInput' })\n\nconst props = withDefaults(defineProps<NumberInputProps>(), {\n placeholder: '请输入',\n clearable: true,\n disabled: undefined,\n readonly: undefined\n})\nconst emit = defineEmits<NumberInputEmits>()\n\nconst slots = defineSlots<{ prefix?: () => any; suffix?: () => any }>()\n\nconst { formProps } = injectFormContext()\n\nconst { size, disabled, readonly } = useFormFallbackProps([formProps ?? {}, props], {\n size: 'default',\n disabled: false,\n readonly: false\n})\n\nconst inputProps = computed(() => {\n return o(props).pick(['disabled', 'placeholder', 'size', 'prefix'])\n})\n\nconst inputRef = shallowRef<InputExposed>()\n\nconst inputDom = computed(() => inputRef.value?.el)\n\nconst cls = bem('number-input')\n\nconst className = computed(() => {\n return [cls.b, cls.m(size.value)]\n})\n\n/** 实际值 */\nconst model = defineModel<NumberInputProps['modelValue']>()\n\n// 展示值\nconst displayed = shallowRef('')\n\nconst focused = shallowRef(false)\nconst hovered = shallowRef(false)\n\nconst generateDisplayed = computed(() => {\n if (!displayed.value) return ''\n\n return `${props.prefix ?? ''}${displayed.value}${props.suffix ?? ''}`\n})\n\nconst showStep = computed(() => props.step !== undefined && props.step !== false)\n\nconst hasCustomSuffix = computed(() => !!props.suffix || !!slots.suffix)\n\nconst hasSuffix = computed(() => props.clearable || hasCustomSuffix.value || showStep.value)\n\nconst showClear = computed(() => {\n return props.clearable && !disabled.value && displayed.value !== '' && hovered.value\n})\n\n/** 步长 */\nconst stepVal = computed<number>(() => {\n const { step } = props\n if (step === undefined) return 1\n return typeof step === 'boolean' ? 1 : step\n})\n\n/** 是否可增 */\nconst increasable = computed(() => {\n const { max, multiple } = props\n if (isUndef(max) || isUndef(model.value)) return true\n // 如果存在倍数,先将 model.value 除以倍数得到原始值再比较\n const rawValue = multiple ? $n.div(model.value, multiple) : model.value\n return rawValue < max\n})\n\n/** 是否可减 */\nconst reducible = computed(() => {\n const { min, multiple } = props\n if (isUndef(min) || isUndef(model.value)) return true\n // 如果存在倍数,先将 model.value 除以倍数得到原始值再比较\n const rawValue = multiple ? $n.div(model.value, multiple) : model.value\n return rawValue > min\n})\n\n// 通过值和步长值计算默认的最大精度\nconst defaultMaxPrecision = computed(() => {\n const { multiple } = props\n // 如果存在倍数,基于原始值计算精度\n const rawValue =\n multiple && model.value !== undefined ? $n.div(model.value, multiple) : model.value\n return Math.max(\n String(rawValue).split('.')[1]?.length ?? 0,\n String(stepVal.value).split('.')[1]?.length ?? 0\n )\n})\n\n/**\n * 获取展示值\n * @param num 实际值\n */\nfunction getDisplayed(num?: number): string {\n if (!num && num !== 0) return ''\n\n const {\n currency,\n precision,\n minPrecision,\n // 如果没有指定最大精度那么设置默认为值和步长值中的较大值\n maxPrecision = defaultMaxPrecision.value,\n multiple\n } = props\n\n // 如果存在倍数,先将实际值除以倍数得到原始值\n const displayValue = multiple ? $n.div(num, multiple) : num\n\n return currency\n ? n(displayValue).currency('CNY', { precision, minPrecision, maxPrecision })\n : n(displayValue).fixed(precision ?? { minPrecision, maxPrecision })\n}\n\nwatch(\n [model, focused, () => props.currency],\n ([modelValue, inputFocused]) => {\n if (inputFocused) return\n displayed.value = getDisplayed(modelValue)\n },\n { immediate: true }\n)\n\n/**\n * 解析展示值\n * @param str 展示值\n */\nfunction parseDisplayed(str: string): number | undefined {\n if (!str) return undefined\n\n // 将货币格式去掉再转化为数字\n const number = +str.replace(/,/g, '')\n const { multiple } = props\n\n // 如果解析失败,使用当前值作为回退\n // 如果存在倍数,需要先将 model.value 除以倍数得到原始值\n let result: number | undefined\n if (isNaN(number)) {\n if (model.value === undefined) return undefined\n result = multiple ? $n.div(model.value, multiple) : model.value\n } else {\n result = number\n }\n\n if (result === undefined) return undefined\n\n const { precision, maxPrecision, minPrecision } = props\n\n const fixedResult = +n(result).fixed(precision ?? { minPrecision, maxPrecision })\n\n // 如果存在倍数,将原始值乘以倍数返回实际值\n return multiple ? $n.mul(fixedResult, multiple) : fixedResult\n}\n\n/**\n * 获取有效值\n * @param val 值\n */\nfunction getValidValue<T extends undefined | number>(val: T): T {\n if (val === undefined) return val\n const { min, max, multiple } = props\n\n // 如果存在倍数,先将值除以倍数得到原始值进行验证,验证后再乘以倍数\n if (multiple) {\n const rawVal = $n.div(val, multiple)\n let validRawVal = rawVal\n if (min !== undefined && rawVal < min) validRawVal = min\n if (max !== undefined && rawVal > max) validRawVal = max\n return $n.mul(validRawVal, multiple) as T\n }\n\n if (min !== undefined && val < min) return min as T\n if (max !== undefined && val > max) return max as T\n return val\n}\n\nfunction handleUpdateModelValue(input: string): void {\n const newVal = parseDisplayed(input)\n model.value = getValidValue(newVal)\n displayed.value = input\n}\n\nfunction handleClear(): void {\n if (!showClear.value) return\n model.value = undefined\n displayed.value = ''\n emit('clear')\n}\n\n/**\n * 处理输入值变化的函数, 该函数仅在输入框失去焦点时触发,\n * 主要用于在输入非数字的情况下的修正处理\n * @param input 输入的值\n */\nfunction handleChange() {\n emit('change', model.value)\n}\n\nconst tween = new Tween(\n { n: model.value ?? 0 },\n {\n onUpdate(state) {\n const _rawInput = inputDom.value\n if (!_rawInput) return\n const { multiple } = props\n // 如果存在倍数,tween.state.n 存储的是原始值,需要乘以倍数后传给 getDisplayed\n const actualValue = multiple ? $n.mul(state.n, multiple) : state.n\n _rawInput.value = getDisplayed(actualValue)\n },\n // 动画进行的过程值有可能被改变, 因此在onComplete中确保还原的是原本的值\n onComplete() {\n const _rawInput = inputDom.value\n if (!_rawInput) return\n _rawInput.value = getDisplayed(model.value)\n }\n }\n)\n\n/** 增 */\nfunction increase(): void {\n if (disabled.value) return\n const { multiple } = props\n const val = model.value ?? 0\n\n if (multiple) {\n // 如果存在倍数,先将实际值除以倍数得到原始值\n const rawVal = $n.div(val, multiple)\n // 在原始值基础上加步长\n const newRawVal = $n.plus(rawVal, stepVal.value)\n // 乘以倍数得到新的实际值\n const newVal = $n.mul(newRawVal, multiple)\n const target = getValidValue(newVal)\n model.value = target\n // tween 动画在原始值上进行\n tween.state.n = $n.div(target, multiple)\n tween.to({ n: $n.div(target, multiple) })\n } else {\n tween.state.n = val\n const target = getValidValue($n.plus(val, stepVal.value))\n model.value = target\n tween.to({ n: target })\n }\n}\n\n/** 减 */\nfunction decrease(): void {\n if (disabled.value) return\n const { multiple } = props\n const val = model.value ?? 0\n\n if (multiple) {\n // 如果存在倍数,先将实际值除以倍数得到原始值\n const rawVal = $n.div(val, multiple)\n // 在原始值基础上减步长\n const newRawVal = $n.minus(rawVal, stepVal.value)\n // 乘以倍数得到新的实际值\n const newVal = $n.mul(newRawVal, multiple)\n const target = getValidValue(newVal)\n model.value = target\n // tween 动画在原始值上进行\n tween.state.n = $n.div(target, multiple)\n tween.to({ n: $n.div(target, multiple) })\n } else {\n tween.state.n = val\n const target = getValidValue($n.minus(val, stepVal.value))\n model.value = target\n tween.to({ n: target })\n }\n}\n\nfunction handleKeydown(e: KeyboardEvent): void {\n if (!props.step) return\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n return increase()\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n return decrease()\n }\n}\n\nfunction handleFocus(): void {\n focused.value = true\n\n // 如果初始值和当前设置的精度不匹配则进行精度修正\n if (model.value === undefined) return\n const { precision, maxPrecision, minPrecision, multiple } = props\n\n if (multiple) {\n // 如果存在倍数,先除以倍数得到原始值进行精度修正,再乘以倍数\n const rawVal = $n.div(model.value, multiple)\n const fixedRawVal = +n(rawVal).fixed(precision ?? { maxPrecision, minPrecision })\n model.value = $n.mul(fixedRawVal, multiple)\n } else {\n model.value = +n(model.value).fixed(precision ?? { maxPrecision, minPrecision })\n }\n}\n\nfunction handleBlur(): void {\n focused.value = false\n model.value = props.modelValue\n}\n\nfunction handleMouseEnter(): void {\n hovered.value = true\n}\n\nfunction handleMouseLeave(): void {\n hovered.value = false\n}\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"number-input.js","names":[],"sources":["../../../src/components/number-input/number-input.vue"],"sourcesContent":["<template>\n <u-input\n v-if=\"!readonly\"\n ref=\"inputRef\"\n :class=\"className\"\n :model-value=\"displayed\"\n v-bind=\"inputProps\"\n @update:model-value=\"handleUpdateModelValue\"\n @change=\"handleChange\"\n @keydown.stop=\"handleKeydown\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n :size=\"size\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :clearable=\"false\"\n >\n <template #suffix v-if=\"hasSuffix\">\n <span :class=\"cls.e('suffix')\">\n <u-icon\n v-if=\"props.clearable\"\n :class=\"[cls.e('clear'), bem.is('hidden', !showClear)]\"\n :title=\"showClear ? '清除' : undefined\"\n @click.stop=\"handleClear\"\n >\n <Close />\n </u-icon>\n <span v-if=\"hasCustomSuffix\" :class=\"cls.e('suffix-content')\">\n {{ suffix }}\n <slot name=\"suffix\" />\n </span>\n </span>\n\n <div v-if=\"showStep\" :class=\"cls.e('step')\">\n <u-icon\n @click=\"increase\"\n v-ripple=\"!disabled && increasable\"\n :class=\"bem.is('disabled', disabled || !increasable)\"\n >\n <ArrowUp />\n </u-icon>\n <u-icon\n @click=\"decrease\"\n v-ripple=\"!disabled && reducible\"\n :class=\"bem.is('disabled', disabled || !reducible)\"\n >\n <ArrowDown />\n </u-icon>\n </div>\n </template>\n\n <template #prefix v-if=\"slots.prefix\">\n <slot name=\"prefix\" />\n </template>\n </u-input>\n\n <template v-else>\n {{ generateDisplayed || FORM_EMPTY_CONTENT }}\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { $n, n, o, isUndef } from '@cat-kit/core'\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { vRipple } from '@veltra/directives'\nimport { ArrowDown, ArrowUp, Close } from '@veltra/icons/normal'\nimport { bem, FORM_EMPTY_CONTENT, Tween } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed, shallowRef, watch } from 'vue'\n\nimport type { NumberInputEmits, NumberInputProps, InputExposed } from '../../types'\nimport { UIcon } from '../icon'\nimport { UInput } from '../input'\n\ndefineOptions({ name: 'UNumberInput' })\n\nconst props = withDefaults(defineProps<NumberInputProps>(), {\n placeholder: '请输入',\n clearable: true,\n disabled: undefined,\n readonly: undefined\n})\nconst emit = defineEmits<NumberInputEmits>()\n\nconst slots = defineSlots<{ prefix?: () => any; suffix?: () => any }>()\n\nconst { formProps } = injectFormContext()\n\nconst { size, disabled, readonly } = useFormFallbackProps([formProps ?? {}, props], {\n size: 'default',\n disabled: false,\n readonly: false\n})\n\nconst inputProps = computed(() => {\n return o(props).pick(['disabled', 'placeholder', 'size', 'prefix'])\n})\n\nconst inputRef = shallowRef<InputExposed>()\n\nconst inputDom = computed(() => inputRef.value?.el)\n\nconst cls = bem('number-input')\n\nconst className = computed(() => {\n return [cls.b, cls.m(size.value)]\n})\n\n/** 实际值 */\nconst model = defineModel<NumberInputProps['modelValue']>()\n\n// 展示值\nconst displayed = shallowRef('')\n\nconst focused = shallowRef(false)\nconst hovered = shallowRef(false)\n\nconst generateDisplayed = computed(() => {\n if (!displayed.value) return ''\n\n return `${props.prefix ?? ''}${displayed.value}${props.suffix ?? ''}`\n})\n\nconst showStep = computed(() => props.step !== undefined && props.step !== false)\n\nconst hasCustomSuffix = computed(() => !!props.suffix || !!slots.suffix)\n\nconst hasSuffix = computed(() => props.clearable || hasCustomSuffix.value || showStep.value)\n\nconst showClear = computed(() => {\n return props.clearable && !disabled.value && displayed.value !== '' && hovered.value\n})\n\n/** 步长 */\nconst stepVal = computed<number>(() => {\n const { step } = props\n if (step === undefined) return 1\n return typeof step === 'boolean' ? 1 : step\n})\n\n/** 是否可增 */\nconst increasable = computed(() => {\n const { max, multiple } = props\n if (isUndef(max) || isUndef(model.value)) return true\n // 如果存在倍数,先将 model.value 除以倍数得到原始值再比较\n const rawValue = multiple ? $n.div(model.value, multiple) : model.value\n return rawValue < max\n})\n\n/** 是否可减 */\nconst reducible = computed(() => {\n const { min, multiple } = props\n if (isUndef(min) || isUndef(model.value)) return true\n // 如果存在倍数,先将 model.value 除以倍数得到原始值再比较\n const rawValue = multiple ? $n.div(model.value, multiple) : model.value\n return rawValue > min\n})\n\n// 通过值和步长值计算默认的最大精度\nconst defaultMaxPrecision = computed(() => {\n const { multiple } = props\n // 如果存在倍数,基于原始值计算精度\n const rawValue =\n multiple && model.value !== undefined ? $n.div(model.value, multiple) : model.value\n return Math.max(\n String(rawValue).split('.')[1]?.length ?? 0,\n String(stepVal.value).split('.')[1]?.length ?? 0\n )\n})\n\n/**\n * 获取展示值\n * @param num 实际值\n */\nfunction getDisplayed(num?: number): string {\n if (!num && num !== 0) return ''\n\n const {\n currency,\n precision,\n minPrecision,\n // 如果没有指定最大精度那么设置默认为值和步长值中的较大值\n maxPrecision = defaultMaxPrecision.value,\n multiple\n } = props\n\n // 如果存在倍数,先将实际值除以倍数得到原始值\n const displayValue = multiple ? $n.div(num, multiple) : num\n\n return currency\n ? n(displayValue).currency('CNY', { precision, minPrecision, maxPrecision })\n : n(displayValue).fixed(precision ?? { minPrecision, maxPrecision })\n}\n\nwatch(\n [model, focused, () => props.currency],\n ([modelValue, inputFocused]) => {\n if (inputFocused) return\n displayed.value = getDisplayed(modelValue)\n },\n { immediate: true }\n)\n\n/**\n * 解析展示值\n * @param str 展示值\n */\nfunction parseDisplayed(str: string): number | undefined {\n if (!str) return undefined\n\n // 将货币格式去掉再转化为数字\n const number = +str.replace(/,/g, '')\n const { multiple } = props\n\n // 如果解析失败,使用当前值作为回退\n // 如果存在倍数,需要先将 model.value 除以倍数得到原始值\n let result: number | undefined\n if (isNaN(number)) {\n if (model.value === undefined) return undefined\n result = multiple ? $n.div(model.value, multiple) : model.value\n } else {\n result = number\n }\n\n if (result === undefined) return undefined\n\n const { precision, maxPrecision, minPrecision } = props\n\n const fixedResult = +n(result).fixed(precision ?? { minPrecision, maxPrecision })\n\n // 如果存在倍数,将原始值乘以倍数返回实际值\n return multiple ? $n.mul(fixedResult, multiple) : fixedResult\n}\n\n/**\n * 获取有效值\n * @param val 值\n */\nfunction getValidValue<T extends undefined | number>(val: T): T {\n if (val === undefined) return val\n const { min, max, multiple } = props\n\n // 如果存在倍数,先将值除以倍数得到原始值进行验证,验证后再乘以倍数\n if (multiple) {\n const rawVal = $n.div(val, multiple)\n let validRawVal = rawVal\n if (min !== undefined && rawVal < min) validRawVal = min\n if (max !== undefined && rawVal > max) validRawVal = max\n return $n.mul(validRawVal, multiple) as T\n }\n\n if (min !== undefined && val < min) return min as T\n if (max !== undefined && val > max) return max as T\n return val\n}\n\nfunction handleUpdateModelValue(input: string): void {\n const newVal = parseDisplayed(input)\n model.value = getValidValue(newVal)\n displayed.value = input\n}\n\nfunction handleClear(): void {\n if (!showClear.value) return\n model.value = undefined\n displayed.value = ''\n emit('clear')\n}\n\n/**\n * 处理输入值变化的函数, 该函数仅在输入框失去焦点时触发,\n * 主要用于在输入非数字的情况下的修正处理\n * @param input 输入的值\n */\nfunction handleChange() {\n emit('change', model.value)\n}\n\nconst tween = new Tween(\n { n: model.value ?? 0 },\n {\n onUpdate(state) {\n const _rawInput = inputDom.value\n if (!_rawInput) return\n const { multiple } = props\n // 如果存在倍数,tween.state.n 存储的是原始值,需要乘以倍数后传给 getDisplayed\n const actualValue = multiple ? $n.mul(state.n, multiple) : state.n\n _rawInput.value = getDisplayed(actualValue)\n },\n // 动画进行的过程值有可能被改变, 因此在onComplete中确保还原的是原本的值\n onComplete() {\n const _rawInput = inputDom.value\n if (!_rawInput) return\n _rawInput.value = getDisplayed(model.value)\n }\n }\n)\n\n/** 增 */\nfunction increase(): void {\n if (disabled.value) return\n const { multiple } = props\n const val = model.value ?? 0\n\n if (multiple) {\n // 如果存在倍数,先将实际值除以倍数得到原始值\n const rawVal = $n.div(val, multiple)\n // 在原始值基础上加步长\n const newRawVal = $n.plus(rawVal, stepVal.value)\n // 乘以倍数得到新的实际值\n const newVal = $n.mul(newRawVal, multiple)\n const target = getValidValue(newVal)\n model.value = target\n // tween 动画在原始值上进行\n tween.state.n = $n.div(target, multiple)\n tween.to({ n: $n.div(target, multiple) })\n } else {\n tween.state.n = val\n const target = getValidValue($n.plus(val, stepVal.value))\n model.value = target\n tween.to({ n: target })\n }\n}\n\n/** 减 */\nfunction decrease(): void {\n if (disabled.value) return\n const { multiple } = props\n const val = model.value ?? 0\n\n if (multiple) {\n // 如果存在倍数,先将实际值除以倍数得到原始值\n const rawVal = $n.div(val, multiple)\n // 在原始值基础上减步长\n const newRawVal = $n.minus(rawVal, stepVal.value)\n // 乘以倍数得到新的实际值\n const newVal = $n.mul(newRawVal, multiple)\n const target = getValidValue(newVal)\n model.value = target\n // tween 动画在原始值上进行\n tween.state.n = $n.div(target, multiple)\n tween.to({ n: $n.div(target, multiple) })\n } else {\n tween.state.n = val\n const target = getValidValue($n.minus(val, stepVal.value))\n model.value = target\n tween.to({ n: target })\n }\n}\n\nfunction handleKeydown(e: KeyboardEvent): void {\n if (!props.step) return\n if (e.key === 'ArrowUp') {\n e.preventDefault()\n return increase()\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n return decrease()\n }\n}\n\nfunction handleFocus(): void {\n focused.value = true\n\n // 如果初始值和当前设置的精度不匹配则进行精度修正\n if (model.value === undefined) return\n const { precision, maxPrecision, minPrecision, multiple } = props\n\n if (multiple) {\n // 如果存在倍数,先除以倍数得到原始值进行精度修正,再乘以倍数\n const rawVal = $n.div(model.value, multiple)\n const fixedRawVal = +n(rawVal).fixed(precision ?? { maxPrecision, minPrecision })\n model.value = $n.mul(fixedRawVal, multiple)\n } else {\n model.value = +n(model.value).fixed(precision ?? { maxPrecision, minPrecision })\n }\n}\n\nfunction handleBlur(): void {\n focused.value = false\n model.value = props.modelValue\n}\n\nfunction handleMouseEnter(): void {\n hovered.value = true\n}\n\nfunction handleMouseLeave(): void {\n hovered.value = false\n}\n</script>\n"],"mappings":"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"}
@@ -13,17 +13,17 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
13
13
  "update:modelValue": (value: number | undefined) => any;
14
14
  } & {
15
15
  "update:modelValue": (value?: number | undefined) => any;
16
- change: (value?: number | undefined) => any;
17
16
  clear: () => any;
17
+ change: (value?: number | undefined) => any;
18
18
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
19
19
  "onUpdate:modelValue"?: ((value?: number | undefined) => any) | undefined;
20
- onChange?: ((value?: number | undefined) => any) | undefined;
21
20
  onClear?: (() => any) | undefined;
21
+ onChange?: ((value?: number | undefined) => any) | undefined;
22
22
  }>, {
23
- readonly: boolean;
24
- disabled: boolean;
25
23
  placeholder: string;
26
24
  clearable: boolean;
25
+ disabled: boolean;
26
+ readonly: boolean;
27
27
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
28
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
29
29
  declare const _default: typeof __VLS_export;