@veltra/desktop 1.2.10 → 1.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/action/action-group.js.map +1 -1
- package/dist/components/action/action-group.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/action/action-group.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/action/action.js +2 -2
- package/dist/components/action/action.js.map +1 -1
- package/dist/components/auto-complete/auto-complete.js +4 -4
- package/dist/components/auto-complete/auto-complete.js.map +1 -1
- package/dist/components/auto-complete/use-keyboard.js.map +1 -1
- package/dist/components/badge/badge.js +2 -2
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/batch-edit/batch-edit-form.js +2 -2
- package/dist/components/batch-edit/batch-edit-form.js.map +1 -1
- package/dist/components/batch-edit/batch-edit-list.js +2 -2
- package/dist/components/batch-edit/batch-edit-list.js.map +1 -1
- package/dist/components/batch-edit/batch-edit.js +2 -2
- package/dist/components/batch-edit/batch-edit.js.map +1 -1
- package/dist/components/batch-edit/use-edit-state.js.map +1 -1
- package/dist/components/batch-edit/use-features.js.map +1 -1
- package/dist/components/batch-edit/use-handlers.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +2 -2
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/button/button-group.js +2 -2
- package/dist/components/button/button-group.js.map +1 -1
- package/dist/components/button/button.js +2 -2
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/calendar/calendar.js +3 -3
- package/dist/components/calendar/calendar.js.map +1 -1
- package/dist/components/calendar/utils.js.map +1 -1
- package/dist/components/card/card-action.js +2 -2
- package/dist/components/card/card-action.js.map +1 -1
- package/dist/components/card/card-content.js +2 -2
- package/dist/components/card/card-content.js.map +1 -1
- package/dist/components/card/card-cover.js +2 -2
- package/dist/components/card/card-cover.js.map +1 -1
- package/dist/components/card/card-header.js +2 -2
- package/dist/components/card/card-header.js.map +1 -1
- package/dist/components/card/card.js +2 -2
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/cascade/cascade-panel-item.js +1 -1
- package/dist/components/cascade/cascade-panel-item.js.map +1 -1
- package/dist/components/cascade/cascade.js +7 -3
- package/dist/components/cascade/cascade.js.map +1 -1
- package/dist/components/cascade/cascade.vue.d.ts +8 -5
- package/dist/components/cascade/use-check.js +3 -1
- package/dist/components/cascade/use-check.js.map +1 -1
- package/dist/components/cascade/use-data-map.js.map +1 -1
- package/dist/components/cascade/use-select.js +30 -14
- package/dist/components/cascade/use-select.js.map +1 -1
- package/dist/components/check-tag/check-tag.js +2 -2
- package/dist/components/check-tag/check-tag.js.map +1 -1
- package/dist/components/checkbox/checkbox-button.js +4 -4
- package/dist/components/checkbox/checkbox-button.js.map +1 -1
- package/dist/components/checkbox/checkbox.js +4 -4
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/checkbox-group/checkbox-group.js +4 -4
- package/dist/components/checkbox-group/checkbox-group.js.map +1 -1
- package/dist/components/code-editor/basic-setup.js +44 -0
- package/dist/components/code-editor/basic-setup.js.map +1 -0
- package/dist/components/code-editor/code-editor.js +5 -5
- package/dist/components/code-editor/code-editor.js.map +1 -1
- package/dist/components/collapse/collapse-item.js +2 -2
- package/dist/components/collapse/collapse-item.js.map +1 -1
- package/dist/components/collapse/collapse.js +2 -2
- package/dist/components/collapse/collapse.js.map +1 -1
- package/dist/components/condition-editor/components/condition-group.js +2 -2
- package/dist/components/condition-editor/components/condition-group.js.map +1 -1
- package/dist/components/condition-editor/components/condition-row.js +2 -2
- package/dist/components/condition-editor/components/condition-row.js.map +1 -1
- package/dist/components/condition-editor/condition-editor.js +2 -2
- package/dist/components/condition-editor/condition-editor.js.map +1 -1
- package/dist/components/condition-editor/core/evaluator.js.map +1 -1
- package/dist/components/contextmenu/contextmenu-item.js +2 -2
- package/dist/components/contextmenu/contextmenu-item.js.map +1 -1
- package/dist/components/contextmenu/contextmenu-panel.js +2 -2
- package/dist/components/contextmenu/contextmenu-panel.js.map +1 -1
- package/dist/components/contextmenu/contextmenu-sub.js +2 -2
- package/dist/components/contextmenu/contextmenu-sub.js.map +1 -1
- package/dist/components/contextmenu/contextmenu.js +2 -2
- package/dist/components/contextmenu/contextmenu.js.map +1 -1
- package/dist/components/date-panel/date-panel.js +2 -2
- package/dist/components/date-panel/date-panel.js.map +1 -1
- package/dist/components/date-panel/headers/day.js +2 -2
- package/dist/components/date-panel/headers/day.js.map +1 -1
- package/dist/components/date-panel/headers/month.js +2 -2
- package/dist/components/date-panel/headers/month.js.map +1 -1
- package/dist/components/date-panel/headers/year.js +2 -2
- package/dist/components/date-panel/headers/year.js.map +1 -1
- package/dist/components/date-panel/panels/day.js +2 -2
- package/dist/components/date-panel/panels/day.js.map +1 -1
- package/dist/components/date-panel/panels/month.js +2 -2
- package/dist/components/date-panel/panels/month.js.map +1 -1
- package/dist/components/date-panel/panels/year.js +2 -2
- package/dist/components/date-panel/panels/year.js.map +1 -1
- package/dist/components/date-panel/use-panel-date.js.map +1 -1
- package/dist/components/date-picker/date-picker.js +2 -2
- package/dist/components/date-picker/date-picker.js.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.js +2 -2
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/dialog/dialog.js +4 -4
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.js +4 -4
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/dropdown/dropdown.js +2 -2
- package/dist/components/dropdown/dropdown.js.map +1 -1
- package/dist/components/dual-nav/dual-nav-app.js +2 -2
- package/dist/components/dual-nav/dual-nav-app.js.map +1 -1
- package/dist/components/dual-nav/dual-nav.js +2 -2
- package/dist/components/dual-nav/dual-nav.js.map +1 -1
- package/dist/components/empty/empty.js +2 -2
- package/dist/components/empty/empty.js.map +1 -1
- package/dist/components/expression-editor/components/path-preview.js +2 -2
- package/dist/components/expression-editor/components/path-preview.js.map +1 -1
- package/dist/components/expression-editor/components/variable-picker.js +2 -2
- package/dist/components/expression-editor/components/variable-picker.js.map +1 -1
- package/dist/components/expression-editor/core/editor.js.map +1 -1
- package/dist/components/expression-editor/core/model.js.map +1 -1
- package/dist/components/expression-editor/expression-editor.js +2 -2
- package/dist/components/expression-editor/expression-editor.js.map +1 -1
- package/dist/components/file-picker/file-picker.js +2 -2
- package/dist/components/file-picker/file-picker.js.map +1 -1
- package/dist/components/file-picker/helper.js.map +1 -1
- package/dist/components/file-viewer/file-viewer.js +4 -4
- package/dist/components/file-viewer/file-viewer.js.map +1 -1
- package/dist/components/file-viewer/helper.js.map +1 -1
- package/dist/components/file-viewer/previewers/docx-previewer.js +2 -2
- package/dist/components/file-viewer/previewers/docx-previewer.js.map +1 -1
- package/dist/components/file-viewer/previewers/image-previewer.js +2 -2
- package/dist/components/file-viewer/previewers/image-previewer.js.map +1 -1
- package/dist/components/file-viewer/previewers/pdf-previewer.js +2 -2
- package/dist/components/file-viewer/previewers/pdf-previewer.js.map +1 -1
- package/dist/components/file-viewer/previewers/pdf-viewport-scroll.js +2 -2
- package/dist/components/file-viewer/previewers/pdf-viewport-scroll.js.map +1 -1
- package/dist/components/file-viewer/previewers/pdf-zoom-bridge.js +2 -2
- package/dist/components/file-viewer/previewers/pdf-zoom-bridge.js.map +1 -1
- package/dist/components/file-viewer/previewers/sheet-previewer.js +2 -2
- package/dist/components/file-viewer/previewers/sheet-previewer.js.map +1 -1
- package/dist/components/file-viewer/previewers/text-previewer.js +2 -2
- package/dist/components/file-viewer/previewers/text-previewer.js.map +1 -1
- package/dist/components/file-viewer/previewers/video-previewer.js +2 -2
- package/dist/components/file-viewer/previewers/video-previewer.js.map +1 -1
- package/dist/components/file-viewer/sheet-parser.js.map +1 -1
- package/dist/components/float-button/float-button.js +2 -2
- package/dist/components/float-button/float-button.js.map +1 -1
- package/dist/components/form/form.js.map +1 -1
- package/dist/components/form/form.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/form/form.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/form/use-form-fields.js.map +1 -1
- package/dist/components/form/use-node-interceptor.js +1 -1
- package/dist/components/form/use-node-interceptor.js.map +1 -1
- package/dist/components/form-item/form-item.js.map +1 -1
- package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/form-item/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/form-item/validate.js.map +1 -1
- package/dist/components/gantt-chart/gantt-chart.js +2 -2
- package/dist/components/gantt-chart/gantt-chart.js.map +1 -1
- package/dist/components/grid/breakpoint.js.map +1 -1
- package/dist/components/grid/grid-item.js +2 -2
- package/dist/components/grid/grid-item.js.map +1 -1
- package/dist/components/grid/grid.js +2 -2
- package/dist/components/grid/grid.js.map +1 -1
- package/dist/components/grid-input/grid-input.js +2 -2
- package/dist/components/grid-input/grid-input.js.map +1 -1
- package/dist/components/grid-input/grid-input.vue.d.ts +1 -1
- package/dist/components/group-input/group-input.js +2 -2
- package/dist/components/group-input/group-input.js.map +1 -1
- package/dist/components/icon/icon.js +2 -2
- package/dist/components/icon/icon.js.map +1 -1
- package/dist/components/input/input.js.map +1 -1
- package/dist/components/input/input.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/input/input.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/kbd/kbd.js +2 -2
- package/dist/components/kbd/kbd.js.map +1 -1
- package/dist/components/layout/layout-resizer.js +2 -2
- package/dist/components/layout/layout-resizer.js.map +1 -1
- package/dist/components/layout/layout.js +2 -2
- package/dist/components/layout/layout.js.map +1 -1
- package/dist/components/list/list-item.js +2 -2
- package/dist/components/list/list-item.js.map +1 -1
- package/dist/components/list/list.js +2 -2
- package/dist/components/list/list.js.map +1 -1
- package/dist/components/loading/directive.js.map +1 -1
- package/dist/components/loading/loading.js +2 -2
- package/dist/components/loading/loading.js.map +1 -1
- package/dist/components/message/message-box.js +2 -2
- package/dist/components/message/message-box.js.map +1 -1
- package/dist/components/message/message.js +2 -2
- package/dist/components/message/message.js.map +1 -1
- package/dist/components/message/message2.js.map +1 -1
- package/dist/components/message-confirm/message-confirm.js +2 -2
- package/dist/components/message-confirm/message-confirm.js.map +1 -1
- package/dist/components/multi-select/multi-select-option.js +2 -2
- package/dist/components/multi-select/multi-select-option.js.map +1 -1
- package/dist/components/multi-select/multi-select.js +4 -4
- package/dist/components/multi-select/multi-select.js.map +1 -1
- package/dist/components/multi-tree-select/multi-tree-select.js +4 -4
- package/dist/components/multi-tree-select/multi-tree-select.js.map +1 -1
- package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +1 -1
- package/dist/components/nav/nav-icon.js +2 -2
- package/dist/components/nav/nav-icon.js.map +1 -1
- package/dist/components/nav/nav-item-collapsed.js +2 -2
- package/dist/components/nav/nav-item-collapsed.js.map +1 -1
- package/dist/components/nav/nav-item.js +2 -2
- package/dist/components/nav/nav-item.js.map +1 -1
- package/dist/components/nav/nav-sub-collapsed.js +2 -2
- package/dist/components/nav/nav-sub-collapsed.js.map +1 -1
- package/dist/components/nav/nav-sub.js +2 -2
- package/dist/components/nav/nav-sub.js.map +1 -1
- package/dist/components/nav/nav.js +2 -2
- package/dist/components/nav/nav.js.map +1 -1
- package/dist/components/notification/index.js.map +1 -1
- package/dist/components/notification/notification.js +2 -2
- package/dist/components/notification/notification.js.map +1 -1
- package/dist/components/number/number.js +2 -2
- package/dist/components/number/number.js.map +1 -1
- package/dist/components/number-input/number-input.js +4 -4
- package/dist/components/number-input/number-input.js.map +1 -1
- package/dist/components/number-range-input/number-range-input.js +4 -4
- package/dist/components/number-range-input/number-range-input.js.map +1 -1
- package/dist/components/number-range-input/number-range-input.vue.d.ts +1 -1
- package/dist/components/paginator/paginator.js +4 -4
- package/dist/components/paginator/paginator.js.map +1 -1
- package/dist/components/palette/color-transform.js.map +1 -1
- package/dist/components/palette/palette-alpha.js +2 -2
- package/dist/components/palette/palette-alpha.js.map +1 -1
- package/dist/components/palette/palette-color-switch.js +1 -1
- package/dist/components/palette/palette-color-switch.js.map +1 -1
- package/dist/components/palette/palette-hue.js +2 -2
- package/dist/components/palette/palette-hue.js.map +1 -1
- package/dist/components/palette/palette-sv.js +2 -2
- package/dist/components/palette/palette-sv.js.map +1 -1
- package/dist/components/palette/palette.js +3 -3
- package/dist/components/palette/palette.js.map +1 -1
- package/dist/components/palette/use-hsv.js.map +1 -1
- package/dist/components/password-input/password-input.js +3 -3
- package/dist/components/password-input/password-input.js.map +1 -1
- package/dist/components/pop-confirm/pop-confirm.js +2 -2
- package/dist/components/pop-confirm/pop-confirm.js.map +1 -1
- package/dist/components/progress/progress.js +2 -2
- package/dist/components/progress/progress.js.map +1 -1
- package/dist/components/progress-nodes/progress-nodes.js +2 -2
- package/dist/components/progress-nodes/progress-nodes.js.map +1 -1
- package/dist/components/progress-nodes/progress-nodes.vue.d.ts +1 -1
- package/dist/components/radio/radio.js +4 -4
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/radio-group/radio-group.js +4 -4
- package/dist/components/radio-group/radio-group.js.map +1 -1
- package/dist/components/rich-text-editor/rich-text-editor.js +2 -2
- package/dist/components/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/components/rich-text-editor/toolbar.js +1 -1
- package/dist/components/rich-text-editor/toolbar.js.map +1 -1
- package/dist/components/scroll/scroll-bar.js +2 -2
- package/dist/components/scroll/scroll-bar.js.map +1 -1
- package/dist/components/scroll/scroll.js +2 -2
- package/dist/components/scroll/scroll.js.map +1 -1
- package/dist/components/select/select.js +4 -4
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/select/use-keyboard.js.map +1 -1
- package/dist/components/select/use-options.js.map +1 -1
- package/dist/components/slider/slider-thumb.js +1 -1
- package/dist/components/slider/slider-thumb.js.map +1 -1
- package/dist/components/slider/slider.js +2 -2
- package/dist/components/slider/slider.js.map +1 -1
- package/dist/components/steps/steps.js +2 -2
- package/dist/components/steps/steps.js.map +1 -1
- package/dist/components/steps/steps.vue.d.ts +2 -2
- package/dist/components/switch/switch.js +4 -4
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/table-body.js +2 -2
- package/dist/components/table/table-body.js.map +1 -1
- package/dist/components/table/table-cell.js +2 -2
- package/dist/components/table/table-cell.js.map +1 -1
- package/dist/components/table/table-foot.js +2 -2
- package/dist/components/table/table-foot.js.map +1 -1
- package/dist/components/table/table-head.js.map +1 -1
- package/dist/components/table/table-row.js.map +1 -1
- package/dist/components/table/table.js +2 -2
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/table/use-check.js.map +1 -1
- package/dist/components/table/use-col-resize.js.map +1 -1
- package/dist/components/table/use-columns.js.map +1 -1
- package/dist/components/table/use-rows.js.map +1 -1
- package/dist/components/table/use-table.js.map +1 -1
- package/dist/components/table-editor/table-editor.js +2 -2
- package/dist/components/table-editor/table-editor.js.map +1 -1
- package/dist/components/tabs/tabs-horizontal.js +4 -4
- package/dist/components/tabs/tabs-horizontal.js.map +1 -1
- package/dist/components/tabs/tabs-horizontal.vue.d.ts +3 -3
- package/dist/components/tabs/tabs-vertical.js +4 -4
- package/dist/components/tabs/tabs-vertical.js.map +1 -1
- package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
- package/dist/components/tabs/tabs.js +4 -4
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/tabs/tabs.vue.d.ts +3 -3
- package/dist/components/tag/tag.js +2 -2
- package/dist/components/tag/tag.js.map +1 -1
- package/dist/components/text/text.js +2 -2
- package/dist/components/text/text.js.map +1 -1
- package/dist/components/textarea/textarea.js +4 -4
- package/dist/components/textarea/textarea.js.map +1 -1
- package/dist/components/theme/theme.js +1 -1
- package/dist/components/theme/theme.js.map +1 -1
- package/dist/components/tip/tip.js +2 -2
- package/dist/components/tip/tip.js.map +1 -1
- package/dist/components/tip/use-nest.js.map +1 -1
- package/dist/components/tree/tree-node.js +2 -2
- package/dist/components/tree/tree-node.js.map +1 -1
- package/dist/components/tree/tree-node2.js.map +1 -1
- package/dist/components/tree/tree.js +2 -2
- package/dist/components/tree/tree.js.map +1 -1
- package/dist/components/tree/tree.vue.d.ts +1 -1
- package/dist/components/tree/use-check.js.map +1 -1
- package/dist/components/tree-select/tree-select.js +7 -6
- package/dist/components/tree-select/tree-select.js.map +1 -1
- package/dist/components/tree-select/tree-select.vue.d.ts +5 -4
- package/dist/components/watermark/watermark.js +2 -2
- package/dist/components/watermark/watermark.js.map +1 -1
- package/dist/types/cascade.d.ts +10 -6
- package/dist/types/tree-select.d.ts +2 -1
- package/package.json +24 -23
- package/src/components/action/action-group.vue +2 -2
- package/src/components/action/action.vue +1 -1
- package/src/components/auto-complete/auto-complete.vue +1 -1
- package/src/components/badge/badge.vue +1 -1
- package/src/components/batch-edit/batch-edit-form.vue +1 -1
- package/src/components/batch-edit/batch-edit-list.vue +1 -1
- package/src/components/batch-edit/batch-edit.vue +1 -1
- package/src/components/breadcrumb/breadcrumb.vue +1 -1
- package/src/components/button/button-group.vue +1 -1
- package/src/components/button/button.vue +1 -1
- package/src/components/calendar/calendar.vue +1 -1
- package/src/components/card/card-action.vue +1 -1
- package/src/components/card/card-content.vue +1 -1
- package/src/components/card/card-cover.vue +1 -1
- package/src/components/card/card-header.vue +1 -1
- package/src/components/card/card.vue +1 -1
- package/src/components/cascade/cascade.vue +3 -2
- package/src/components/cascade/use-check.ts +3 -1
- package/src/components/cascade/use-select.ts +43 -29
- package/src/components/check-tag/check-tag.vue +1 -1
- package/src/components/checkbox/checkbox-button.vue +1 -1
- package/src/components/checkbox/checkbox.vue +1 -1
- package/src/components/checkbox-group/checkbox-group.vue +1 -1
- package/src/components/code-editor/basic-setup.ts +63 -0
- package/src/components/code-editor/code-editor.vue +3 -3
- package/src/components/collapse/collapse-item.vue +1 -1
- package/src/components/collapse/collapse.vue +1 -1
- package/src/components/condition-editor/components/condition-group.vue +1 -1
- package/src/components/condition-editor/components/condition-row.vue +1 -1
- package/src/components/condition-editor/condition-editor.vue +1 -1
- package/src/components/contextmenu/contextmenu-item.vue +1 -1
- package/src/components/contextmenu/contextmenu-panel.vue +1 -1
- package/src/components/contextmenu/contextmenu-sub.vue +1 -1
- package/src/components/contextmenu/contextmenu.vue +1 -1
- package/src/components/date-panel/date-panel.vue +1 -1
- package/src/components/date-panel/headers/day.vue +1 -1
- package/src/components/date-panel/headers/month.vue +1 -1
- package/src/components/date-panel/headers/year.vue +1 -1
- package/src/components/date-panel/panels/day.vue +1 -1
- package/src/components/date-panel/panels/month.vue +1 -1
- package/src/components/date-panel/panels/year.vue +1 -1
- package/src/components/date-picker/date-picker.vue +1 -1
- package/src/components/date-range-picker/date-range-picker.vue +1 -1
- package/src/components/dialog/dialog.vue +1 -1
- package/src/components/drawer/drawer.vue +1 -1
- package/src/components/dropdown/dropdown.vue +1 -1
- package/src/components/dual-nav/dual-nav-app.vue +1 -1
- package/src/components/dual-nav/dual-nav.vue +1 -1
- package/src/components/empty/empty.vue +1 -1
- package/src/components/expression-editor/components/path-preview.vue +1 -1
- package/src/components/expression-editor/components/variable-picker.vue +1 -1
- package/src/components/expression-editor/expression-editor.vue +1 -1
- package/src/components/file-picker/file-picker.vue +1 -1
- package/src/components/file-viewer/file-viewer.vue +1 -1
- package/src/components/file-viewer/previewers/docx-previewer.vue +1 -1
- package/src/components/file-viewer/previewers/image-previewer.vue +1 -1
- package/src/components/file-viewer/previewers/pdf-previewer.vue +1 -1
- package/src/components/file-viewer/previewers/pdf-viewport-scroll.vue +1 -1
- package/src/components/file-viewer/previewers/pdf-zoom-bridge.vue +1 -1
- package/src/components/file-viewer/previewers/sheet-previewer.vue +1 -1
- package/src/components/file-viewer/previewers/text-previewer.vue +1 -1
- package/src/components/file-viewer/previewers/video-previewer.vue +1 -1
- package/src/components/float-button/float-button.vue +1 -1
- package/src/components/form/form.vue +1 -1
- package/src/components/form/use-node-interceptor.ts +2 -1
- package/src/components/form-item/form-item.vue +1 -1
- package/src/components/gantt-chart/gantt-chart.vue +1 -1
- package/src/components/grid/grid-item.vue +1 -1
- package/src/components/grid/grid.vue +1 -1
- package/src/components/grid-input/grid-input.vue +1 -1
- package/src/components/group-input/group-input.vue +1 -1
- package/src/components/icon/icon.vue +1 -1
- package/src/components/input/input.vue +1 -1
- package/src/components/kbd/kbd.vue +1 -1
- package/src/components/layout/layout-resizer.vue +1 -1
- package/src/components/layout/layout.vue +1 -1
- package/src/components/list/list-item.vue +1 -1
- package/src/components/list/list.vue +1 -1
- package/src/components/loading/loading.vue +1 -1
- package/src/components/message/message-box.vue +1 -1
- package/src/components/message/message.vue +1 -1
- package/src/components/message-confirm/message-confirm.vue +1 -1
- package/src/components/multi-select/multi-select-option.vue +1 -1
- package/src/components/multi-select/multi-select.vue +1 -1
- package/src/components/multi-tree-select/multi-tree-select.vue +1 -1
- package/src/components/nav/nav-icon.vue +1 -1
- package/src/components/nav/nav-item-collapsed.vue +1 -1
- package/src/components/nav/nav-item.vue +1 -1
- package/src/components/nav/nav-sub-collapsed.vue +1 -1
- package/src/components/nav/nav-sub.vue +1 -1
- package/src/components/nav/nav.vue +1 -1
- package/src/components/notification/notification.vue +1 -1
- package/src/components/number/number.vue +1 -1
- package/src/components/number-input/number-input.vue +1 -1
- package/src/components/number-range-input/number-range-input.vue +1 -1
- package/src/components/paginator/paginator.vue +1 -1
- package/src/components/palette/palette-alpha.vue +1 -1
- package/src/components/palette/palette-hue.vue +1 -1
- package/src/components/palette/palette-sv.vue +1 -1
- package/src/components/palette/palette.vue +1 -1
- package/src/components/password-input/password-input.vue +1 -1
- package/src/components/pop-confirm/pop-confirm.vue +1 -1
- package/src/components/progress/progress.vue +1 -1
- package/src/components/progress-nodes/progress-nodes.vue +1 -1
- package/src/components/radio/radio.vue +1 -1
- package/src/components/radio-group/radio-group.vue +1 -1
- package/src/components/scroll/scroll-bar.vue +1 -1
- package/src/components/scroll/scroll.vue +1 -1
- package/src/components/select/select.vue +1 -1
- package/src/components/slider/slider.vue +1 -1
- package/src/components/steps/steps.vue +1 -1
- package/src/components/switch/switch.vue +1 -1
- package/src/components/table/table-body.vue +1 -1
- package/src/components/table/table-cell.vue +1 -1
- package/src/components/table/table-foot.vue +1 -1
- package/src/components/table/table.vue +1 -1
- package/src/components/table-editor/table-editor.vue +1 -1
- package/src/components/tabs/tabs-horizontal.vue +1 -1
- package/src/components/tabs/tabs-vertical.vue +1 -1
- package/src/components/tabs/tabs.vue +1 -1
- package/src/components/tag/tag.vue +1 -1
- package/src/components/text/text.vue +1 -1
- package/src/components/textarea/textarea.vue +1 -1
- package/src/components/tip/tip.vue +1 -1
- package/src/components/tree/tree-node.vue +1 -1
- package/src/components/tree/tree.vue +1 -1
- package/src/components/tree-select/tree-select.vue +3 -3
- package/src/components/watermark/watermark.vue +1 -1
- package/src/types/cascade.ts +10 -6
- package/src/types/tree-select.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","names":[],"sources":["../../../src/components/calendar/calendar.vue"],"sourcesContent":["<template>\n <div :class=\"cls.b\">\n <ul :class=\"cls.e('days')\">\n <li\n :class=\"[cls.e('day'), cls.em('day', day.type)]\"\n v-for=\"day of days\"\n :key=\"day.date.timestamp\"\n >\n {{ day.date.day }}\n </li>\n </ul>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { bem } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { CalendarProps } from '../../types'\nimport { getMonthDays } from './utils'\n\ndefineOptions({ name: '
|
|
1
|
+
{"version":3,"file":"calendar.js","names":[],"sources":["../../../src/components/calendar/calendar.vue"],"sourcesContent":["<template>\n <div :class=\"cls.b\">\n <ul :class=\"cls.e('days')\">\n <li\n :class=\"[cls.e('day'), cls.em('day', day.type)]\"\n v-for=\"day of days\"\n :key=\"day.date.timestamp\"\n >\n {{ day.date.day }}\n </li>\n </ul>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { bem } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { CalendarProps } from '../../types'\nimport { getMonthDays } from './utils'\n\ndefineOptions({ name: 'UCalendar' })\n\ndefineProps<CalendarProps>()\n\nconst model = defineModel<string>()\n\nconst cls = bem('calendar')\n\nconst days = computed(() => {\n return getMonthDays(model.value ?? new Date())\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;EAyBA,MAAM,QAAQ,SAAmB,SAAA,YAAC;EAElC,MAAM,MAAM,IAAI,UAAU;EAE1B,MAAM,OAAO,eAAe;GAC1B,OAAO,aAAa,MAAM,yBAAS,IAAI,KAAK,CAAC;EAC/C,CAAC;;uBA9BC,mBAUM,OAAA,EAVA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,CAAC,EAAA,GAAA,CAChB,mBAQK,MAAA,EARA,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,EAAC,MAAA,CAAA,EAAA,GAAA,EAAA,UAAA,IAAA,GACf,mBAMK,UAAA,MAAA,WAJW,KAAA,QAAP,QAAG;wBAFZ,mBAMK,MAAA;KALF,OAAK,eAAA,CAAG,MAAA,GAAA,CAAG,CAAC,EAAC,KAAA,GAAS,MAAA,GAAA,CAAG,CAAC,GAAE,OAAQ,IAAI,IAAI,CAAA,CAAA;KAE5C,KAAK,IAAI,KAAK;uBAEZ,IAAI,KAAK,GAAG,GAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":["../../../src/components/calendar/utils.ts"],"sourcesContent":["import { type Dater, date } from '@cat-kit/core'\n\nimport type { CalendarDay, CalendarMonth, CalendarYear } from '../../types'\n\nexport const weekDays: string[] = ['日', '一', '二', '三', '四', '五', '六']\n\n/**\n * 获取一个月的天数\n * @param d 日期\n * @param disabledDate 禁用日期\n * @returns\n */\nexport function getMonthDays(\n d: Date | string | number | Dater,\n disabledDate?: (d: Dater) => boolean\n): CalendarDay[] {\n const todayStr = date().format()\n if (d instanceof Date || typeof d === 'string' || typeof d === 'number') {\n d = date(d)\n }\n\n // 本月天数\n d.setDay(1)\n const currentMonthDays: CalendarDay[] = Array.from({ length: d.getDays() }).map((_, i) => {\n const day: CalendarDay = { date: d.calc(i, 'days'), type: 'current' }\n day.isToday = day.date.format() === todayStr\n day.disabled = disabledDate?.(day.date)\n return day\n })\n\n const preMonthDays: CalendarDay[] = []\n\n const nextMonthDays: CalendarDay[] = []\n\n // 上月天数\n const firstDayWeek = d.weekDay\n\n if (firstDayWeek !== 0) {\n // 上个月最后一天\n d.setDay(0)\n let i = 0\n while (i < firstDayWeek) {\n const day: CalendarDay = { date: d.calc(-i, 'days'), type: 'pre' }\n day.disabled = disabledDate?.(day.date)\n preMonthDays.unshift(day)\n i++\n }\n }\n\n // 下个月的天数\n const nextMonthDaysAmount = 42 - currentMonthDays.length - preMonthDays.length\n\n let j = 0\n d.setMonth(d.month + 2).setDay(1)\n\n while (j < nextMonthDaysAmount) {\n const day: CalendarDay = { date: d.calc(j++, 'days'), type: 'next' }\n day.disabled = disabledDate?.(day.date)\n nextMonthDays.push(day)\n }\n\n return [...preMonthDays, ...currentMonthDays, ...nextMonthDays]\n}\n\n/**\n * 获取一年的月份\n * @param d 日期\n * @param disabledDate 禁用的日期\n * @returns\n */\nexport function getYearMonths(\n d: Date | string | number | Dater,\n disabledDate?: (d: Dater) => boolean\n): CalendarMonth[] {\n if (d instanceof Date || typeof d === 'string' || typeof d === 'number') {\n d = date(d)\n }\n\n const year = d.year\n\n return Array.from({ length: 12 }).map((_, i) => {\n const month = i + 1\n\n const ym = `${year}-${month}`\n\n const monthDate = date(ym).toEndOfMonth().setHours(23)\n\n monthDate.setMinutes(59)\n monthDate.setSeconds(59)\n\n return { key: ym, month, date: monthDate, disabled: disabledDate?.(monthDate) }\n })\n}\n\n/**\n * 获取当前年份所处的10年\n * @param d 日期\n * @param disabledDate 禁用的日期\n * @returns\n */\nexport function getTenYears(\n d: Date | string | number | Dater,\n disabledDate?: (d: Dater) => boolean\n): CalendarYear[] {\n if (d instanceof Date || typeof d === 'string' || typeof d === 'number') {\n d = date(d)\n }\n\n const startYear = d.year - (d.year % 10) + 1\n\n return Array.from({ length: 10 }).map((_, i) => {\n const year = startYear + i\n\n const yearDate = date(`${year}-12-31 23:59:59`)\n\n return { year, date: yearDate, disabled: disabledDate?.(yearDate) }\n })\n}\n"],"mappings":";;AAIA,MAAa,WAAqB;CAAC;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;AAAG;;;;;;;AAQpE,SAAgB,aACd,GACA,cACe;CACf,MAAM,WAAW,KAAK,
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../../../src/components/calendar/utils.ts"],"sourcesContent":["import { type Dater, date } from '@cat-kit/core'\n\nimport type { CalendarDay, CalendarMonth, CalendarYear } from '../../types'\n\nexport const weekDays: string[] = ['日', '一', '二', '三', '四', '五', '六']\n\n/**\n * 获取一个月的天数\n * @param d 日期\n * @param disabledDate 禁用日期\n * @returns\n */\nexport function getMonthDays(\n d: Date | string | number | Dater,\n disabledDate?: (d: Dater) => boolean\n): CalendarDay[] {\n const todayStr = date().format()\n if (d instanceof Date || typeof d === 'string' || typeof d === 'number') {\n d = date(d)\n }\n\n // 本月天数\n d.setDay(1)\n const currentMonthDays: CalendarDay[] = Array.from({ length: d.getDays() }).map((_, i) => {\n const day: CalendarDay = { date: d.calc(i, 'days'), type: 'current' }\n day.isToday = day.date.format() === todayStr\n day.disabled = disabledDate?.(day.date)\n return day\n })\n\n const preMonthDays: CalendarDay[] = []\n\n const nextMonthDays: CalendarDay[] = []\n\n // 上月天数\n const firstDayWeek = d.weekDay\n\n if (firstDayWeek !== 0) {\n // 上个月最后一天\n d.setDay(0)\n let i = 0\n while (i < firstDayWeek) {\n const day: CalendarDay = { date: d.calc(-i, 'days'), type: 'pre' }\n day.disabled = disabledDate?.(day.date)\n preMonthDays.unshift(day)\n i++\n }\n }\n\n // 下个月的天数\n const nextMonthDaysAmount = 42 - currentMonthDays.length - preMonthDays.length\n\n let j = 0\n d.setMonth(d.month + 2).setDay(1)\n\n while (j < nextMonthDaysAmount) {\n const day: CalendarDay = { date: d.calc(j++, 'days'), type: 'next' }\n day.disabled = disabledDate?.(day.date)\n nextMonthDays.push(day)\n }\n\n return [...preMonthDays, ...currentMonthDays, ...nextMonthDays]\n}\n\n/**\n * 获取一年的月份\n * @param d 日期\n * @param disabledDate 禁用的日期\n * @returns\n */\nexport function getYearMonths(\n d: Date | string | number | Dater,\n disabledDate?: (d: Dater) => boolean\n): CalendarMonth[] {\n if (d instanceof Date || typeof d === 'string' || typeof d === 'number') {\n d = date(d)\n }\n\n const year = d.year\n\n return Array.from({ length: 12 }).map((_, i) => {\n const month = i + 1\n\n const ym = `${year}-${month}`\n\n const monthDate = date(ym).toEndOfMonth().setHours(23)\n\n monthDate.setMinutes(59)\n monthDate.setSeconds(59)\n\n return { key: ym, month, date: monthDate, disabled: disabledDate?.(monthDate) }\n })\n}\n\n/**\n * 获取当前年份所处的10年\n * @param d 日期\n * @param disabledDate 禁用的日期\n * @returns\n */\nexport function getTenYears(\n d: Date | string | number | Dater,\n disabledDate?: (d: Dater) => boolean\n): CalendarYear[] {\n if (d instanceof Date || typeof d === 'string' || typeof d === 'number') {\n d = date(d)\n }\n\n const startYear = d.year - (d.year % 10) + 1\n\n return Array.from({ length: 10 }).map((_, i) => {\n const year = startYear + i\n\n const yearDate = date(`${year}-12-31 23:59:59`)\n\n return { year, date: yearDate, disabled: disabledDate?.(yearDate) }\n })\n}\n"],"mappings":";;AAIA,MAAa,WAAqB;CAAC;CAAK;CAAK;CAAK;CAAK;CAAK;CAAK;AAAG;;;;;;;AAQpE,SAAgB,aACd,GACA,cACe;CACf,MAAM,WAAW,KAAK,CAAC,CAAC,OAAO;CAC/B,IAAI,aAAa,QAAQ,OAAO,MAAM,YAAY,OAAO,MAAM,UAC7D,IAAI,KAAK,CAAC;CAIZ,EAAE,OAAO,CAAC;CACV,MAAM,mBAAkC,MAAM,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM;EACxF,MAAM,MAAmB;GAAE,MAAM,EAAE,KAAK,GAAG,MAAM;GAAG,MAAM;EAAU;EACpE,IAAI,UAAU,IAAI,KAAK,OAAO,MAAM;EACpC,IAAI,WAAW,eAAe,IAAI,IAAI;EACtC,OAAO;CACT,CAAC;CAED,MAAM,eAA8B,CAAC;CAErC,MAAM,gBAA+B,CAAC;CAGtC,MAAM,eAAe,EAAE;CAEvB,IAAI,iBAAiB,GAAG;EAEtB,EAAE,OAAO,CAAC;EACV,IAAI,IAAI;EACR,OAAO,IAAI,cAAc;GACvB,MAAM,MAAmB;IAAE,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM;IAAG,MAAM;GAAM;GACjE,IAAI,WAAW,eAAe,IAAI,IAAI;GACtC,aAAa,QAAQ,GAAG;GACxB;EACF;CACF;CAGA,MAAM,sBAAsB,KAAK,iBAAiB,SAAS,aAAa;CAExE,IAAI,IAAI;CACR,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;CAEhC,OAAO,IAAI,qBAAqB;EAC9B,MAAM,MAAmB;GAAE,MAAM,EAAE,KAAK,KAAK,MAAM;GAAG,MAAM;EAAO;EACnE,IAAI,WAAW,eAAe,IAAI,IAAI;EACtC,cAAc,KAAK,GAAG;CACxB;CAEA,OAAO;EAAC,GAAG;EAAc,GAAG;EAAkB,GAAG;CAAa;AAChE;;;;;;;AAQA,SAAgB,cACd,GACA,cACiB;CACjB,IAAI,aAAa,QAAQ,OAAO,MAAM,YAAY,OAAO,MAAM,UAC7D,IAAI,KAAK,CAAC;CAGZ,MAAM,OAAO,EAAE;CAEf,OAAO,MAAM,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM;EAC9C,MAAM,QAAQ,IAAI;EAElB,MAAM,KAAK,GAAG,KAAK,GAAG;EAEtB,MAAM,YAAY,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE;EAErD,UAAU,WAAW,EAAE;EACvB,UAAU,WAAW,EAAE;EAEvB,OAAO;GAAE,KAAK;GAAI;GAAO,MAAM;GAAW,UAAU,eAAe,SAAS;EAAE;CAChF,CAAC;AACH;;;;;;;AAQA,SAAgB,YACd,GACA,cACgB;CAChB,IAAI,aAAa,QAAQ,OAAO,MAAM,YAAY,OAAO,MAAM,UAC7D,IAAI,KAAK,CAAC;CAGZ,MAAM,YAAY,EAAE,OAAQ,EAAE,OAAO,KAAM;CAE3C,OAAO,MAAM,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM;EAC9C,MAAM,OAAO,YAAY;EAEzB,MAAM,WAAW,KAAK,GAAG,KAAK,gBAAgB;EAE9C,OAAO;GAAE;GAAM,MAAM;GAAU,UAAU,eAAe,QAAQ;EAAE;CACpE,CAAC;AACH"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CardDIKey } from "./di.js";
|
|
2
2
|
import { computed, createElementBlock, defineComponent, inject, normalizeClass, normalizeStyle, openBlock, renderSlot, unref } from "vue";
|
|
3
3
|
//#region src/components/card/card-action.vue
|
|
4
|
-
const _sfc_main =
|
|
5
|
-
name: "
|
|
4
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
5
|
+
name: "UCardAction",
|
|
6
6
|
__name: "card-action",
|
|
7
7
|
props: { alignRight: { type: Boolean } },
|
|
8
8
|
setup(__props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-action.js","names":[],"sources":["../../../src/components/card/card-action.vue"],"sourcesContent":["<template>\n <div :class=\"cls?.e('action')\" :style=\"style\">\n <slot> </slot>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { type CSSProperties, computed, inject } from 'vue'\n\nimport type { CardActionProps } from '../../types'\nimport { CardDIKey } from './di'\n\ndefineOptions({ name: '
|
|
1
|
+
{"version":3,"file":"card-action.js","names":[],"sources":["../../../src/components/card/card-action.vue"],"sourcesContent":["<template>\n <div :class=\"cls?.e('action')\" :style=\"style\">\n <slot> </slot>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { type CSSProperties, computed, inject } from 'vue'\n\nimport type { CardActionProps } from '../../types'\nimport { CardDIKey } from './di'\n\ndefineOptions({ name: 'UCardAction' })\n\nconst props = defineProps<CardActionProps>()\n\nconst style = computed<CSSProperties>(() => {\n return { textAlign: props.alignRight ? 'right' : undefined }\n})\n\nconst injected = inject(CardDIKey)\nconst { cls } = injected || {}\n\nif (!injected) {\n console.warn('CardAction组件仅能在Card组件中使用')\n}\n</script>\n"],"mappings":";;;;;;;;EAcA,MAAM,QAAQ;EAEd,MAAM,QAAQ,eAA8B;GAC1C,OAAO,EAAE,WAAW,MAAM,aAAa,UAAU,KAAA,EAAU;EAC7D,CAAC;EAED,MAAM,WAAW,OAAO,SAAS;EACjC,MAAM,EAAE,QAAQ,YAAY,CAAC;EAE7B,IAAI,CAAC,UACH,QAAQ,KAAK,0BAA0B;;uBAvBvC,mBAEM,OAAA;IAFA,OAAK,eAAE,MAAA,GAAA,CAAG,EAAE,EAAC,QAAA,CAAA;IAAa,OAAK,eAAE,MAAA,KAAK;OAC1C,WAAc,KAAA,QAAA,SAAA,CAAA,GAAA,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CardDIKey } from "./di.js";
|
|
2
2
|
import { computed, createElementBlock, defineComponent, inject, normalizeClass, normalizeStyle, openBlock, renderSlot, unref } from "vue";
|
|
3
3
|
//#region src/components/card/card-content.vue
|
|
4
|
-
const _sfc_main =
|
|
5
|
-
name: "
|
|
4
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
5
|
+
name: "UCardContent",
|
|
6
6
|
__name: "card-content",
|
|
7
7
|
props: { cover: { type: Boolean } },
|
|
8
8
|
setup(__props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-content.js","names":[],"sources":["../../../src/components/card/card-content.vue"],"sourcesContent":["<template>\n <div :class=\"cls?.e('content')\" :style=\"style\">\n <slot> </slot>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, type CSSProperties } from 'vue'\n\nimport type { CardContentProps } from '../../types'\nimport { CardDIKey } from './di'\n\ndefineOptions({ name: '
|
|
1
|
+
{"version":3,"file":"card-content.js","names":[],"sources":["../../../src/components/card/card-content.vue"],"sourcesContent":["<template>\n <div :class=\"cls?.e('content')\" :style=\"style\">\n <slot> </slot>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, type CSSProperties } from 'vue'\n\nimport type { CardContentProps } from '../../types'\nimport { CardDIKey } from './di'\n\ndefineOptions({ name: 'UCardContent' })\n\nconst props = defineProps<CardContentProps>()\n\nconst style = computed<CSSProperties | undefined>(() => {\n return props.cover ? { padding: 0, fontSize: 0 } : undefined\n})\n\nconst injected = inject(CardDIKey)\nconst { cls } = injected || {}\n\nif (!injected) {\n console.warn('CardContent组件仅能在Card组件中使用')\n}\n</script>\n"],"mappings":";;;;;;;;EAcA,MAAM,QAAQ;EAEd,MAAM,QAAQ,eAA0C;GACtD,OAAO,MAAM,QAAQ;IAAE,SAAS;IAAG,UAAU;GAAE,IAAI,KAAA;EACrD,CAAC;EAED,MAAM,WAAW,OAAO,SAAS;EACjC,MAAM,EAAE,QAAQ,YAAY,CAAC;EAE7B,IAAI,CAAC,UACH,QAAQ,KAAK,2BAA2B;;uBAvBxC,mBAEM,OAAA;IAFA,OAAK,eAAE,MAAA,GAAA,CAAG,EAAE,EAAC,SAAA,CAAA;IAAc,OAAK,eAAE,MAAA,KAAK;OAC3C,WAAc,KAAA,QAAA,SAAA,CAAA,GAAA,CAAA"}
|
|
@@ -3,8 +3,8 @@ import { computed, createCommentVNode, createElementBlock, defineComponent, inje
|
|
|
3
3
|
import { bem, withUnit } from "@veltra/utils";
|
|
4
4
|
//#region src/components/card/card-cover.vue
|
|
5
5
|
const _hoisted_1 = ["src"];
|
|
6
|
-
const _sfc_main =
|
|
7
|
-
name: "
|
|
6
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
7
|
+
name: "UCardCover",
|
|
8
8
|
__name: "card-cover",
|
|
9
9
|
props: {
|
|
10
10
|
src: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-cover.js","names":[],"sources":["../../../src/components/card/card-cover.vue"],"sourcesContent":["<template>\n <div :class=\"cls?.e('cover')\" :style=\"style\">\n <img\n v-if=\"src\"\n :src=\"src\"\n draggable=\"false\"\n alt=\"封面\"\n :class=\"bem.is('height-fixed', props.height !== undefined)\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { withUnit, bem } from '@veltra/utils'\nimport { computed, inject } from 'vue'\n\nimport type { CardCoverProps } from '../../types'\nimport { CardDIKey } from './di'\n\ndefineOptions({ name: '
|
|
1
|
+
{"version":3,"file":"card-cover.js","names":[],"sources":["../../../src/components/card/card-cover.vue"],"sourcesContent":["<template>\n <div :class=\"cls?.e('cover')\" :style=\"style\">\n <img\n v-if=\"src\"\n :src=\"src\"\n draggable=\"false\"\n alt=\"封面\"\n :class=\"bem.is('height-fixed', props.height !== undefined)\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { withUnit, bem } from '@veltra/utils'\nimport { computed, inject } from 'vue'\n\nimport type { CardCoverProps } from '../../types'\nimport { CardDIKey } from './di'\n\ndefineOptions({ name: 'UCardCover' })\n\nconst props = defineProps<CardCoverProps>()\n\nconst injected = inject(CardDIKey)\nconst { cls } = injected || {}\n\nif (!injected) {\n console.warn('CardCover组件仅能在Card组件中使用')\n}\n\nconst style = computed(() => {\n return { height: withUnit(props.height, 'px') }\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;EAqBA,MAAM,QAAQ;EAEd,MAAM,WAAW,OAAO,SAAS;EACjC,MAAM,EAAE,QAAQ,YAAY,CAAC;EAE7B,IAAI,CAAC,UACH,QAAQ,KAAK,yBAAyB;EAGxC,MAAM,QAAQ,eAAe;GAC3B,OAAO,EAAE,QAAQ,SAAS,MAAM,QAAQ,IAAI,EAAE;EAChD,CAAC;;uBA/BC,mBAQM,OAAA;IARA,OAAK,eAAE,MAAA,GAAA,CAAG,EAAE,EAAC,OAAA,CAAA;IAAY,OAAK,eAAE,MAAA,KAAK;OAEjC,QAAA,OAAA,UAAA,GADR,mBAME,OAAA;;IAJC,KAAK,QAAA;IACN,WAAU;IACV,KAAI;IACH,OAAK,eAAE,MAAA,GAAA,CAAG,CAAC,GAAE,gBAAiB,MAAM,WAAW,KAAA,CAAS,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CardDIKey } from "./di.js";
|
|
2
2
|
import { computed, createElementBlock, defineComponent, inject, normalizeClass, openBlock, renderSlot } from "vue";
|
|
3
3
|
//#region src/components/card/card-header.vue
|
|
4
|
-
const _sfc_main =
|
|
5
|
-
name: "
|
|
4
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
5
|
+
name: "UCardHeader",
|
|
6
6
|
__name: "card-header",
|
|
7
7
|
setup(__props) {
|
|
8
8
|
const injected = inject(CardDIKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-header.js","names":[],"sources":["../../../src/components/card/card-header.vue"],"sourcesContent":["<template>\n <div :class=\"classList\">\n <slot> </slot>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\n\nimport { CardDIKey } from './di'\n\ndefineOptions({ name: '
|
|
1
|
+
{"version":3,"file":"card-header.js","names":[],"sources":["../../../src/components/card/card-header.vue"],"sourcesContent":["<template>\n <div :class=\"classList\">\n <slot> </slot>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject } from 'vue'\n\nimport { CardDIKey } from './di'\n\ndefineOptions({ name: 'UCardHeader' })\n\nconst injected = inject(CardDIKey)\nconst { cls } = injected || {}\n\nconst classList = computed(() => {\n const ret: string[] = []\n if (cls) {\n ret.push(cls.e('header'))\n }\n\n return ret\n})\n\nif (!injected) {\n console.warn('CardHeader组件仅能在Card组件中使用')\n}\n</script>\n"],"mappings":";;;;;;;EAaA,MAAM,WAAW,OAAO,SAAS;EACjC,MAAM,EAAE,QAAQ,YAAY,CAAC;EAE7B,MAAM,YAAY,eAAe;GAC/B,MAAM,MAAgB,CAAC;GACvB,IAAI,KACF,IAAI,KAAK,IAAI,EAAE,QAAQ,CAAC;GAG1B,OAAO;EACT,CAAC;EAED,IAAI,CAAC,UACH,QAAQ,KAAK,0BAA0B;;uBAzBvC,mBAEM,OAAA,EAFA,OAAK,eAAE,UAAA,KAAS,EAAA,GAAA,CACpB,WAAc,KAAA,QAAA,SAAA,CAAA,GAAA,CAAA"}
|
|
@@ -3,8 +3,8 @@ import { computed, createElementBlock, defineComponent, normalizeClass, normaliz
|
|
|
3
3
|
import { useFormFallbackProps } from "@veltra/compositions";
|
|
4
4
|
import { bem, withUnit } from "@veltra/utils";
|
|
5
5
|
//#region src/components/card/card.vue
|
|
6
|
-
const _sfc_main =
|
|
7
|
-
name: "
|
|
6
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
7
|
+
name: "UCard",
|
|
8
8
|
__name: "card",
|
|
9
9
|
props: {
|
|
10
10
|
width: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","names":[],"sources":["../../../src/components/card/card.vue"],"sourcesContent":["<template>\n <div :class=\"classList\" :style=\"styles\">\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { bem, withUnit } from '@veltra/utils'\nimport { computed, provide } from 'vue'\n\nimport type { CardProps } from '../../types'\nimport { CardDIKey } from './di'\n\ndefineOptions({ name: '
|
|
1
|
+
{"version":3,"file":"card.js","names":[],"sources":["../../../src/components/card/card.vue"],"sourcesContent":["<template>\n <div :class=\"classList\" :style=\"styles\">\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { bem, withUnit } from '@veltra/utils'\nimport { computed, provide } from 'vue'\n\nimport type { CardProps } from '../../types'\nimport { CardDIKey } from './di'\n\ndefineOptions({ name: 'UCard' })\n\nconst props = defineProps<CardProps>()\n\nconst cls = bem('card')\n\nconst { size } = useFormFallbackProps([props], { size: 'default' })\n\nconst classList = computed(() => {\n return [cls.b, cls.m(size.value), bem.is('integrate', props.integrate)]\n})\n\nconst styles = computed(() => {\n return { width: withUnit(props.width, 'px') }\n})\n\nprovide(CardDIKey, { cls, cardProps: props })\n</script>\n"],"mappings":";;;;;;;;;;;;;;EAgBA,MAAM,QAAQ;EAEd,MAAM,MAAM,IAAI,MAAM;EAEtB,MAAM,EAAE,SAAS,qBAAqB,CAAC,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;EAElE,MAAM,YAAY,eAAe;GAC/B,OAAO;IAAC,IAAI;IAAG,IAAI,EAAE,KAAK,KAAK;IAAG,IAAI,GAAG,aAAa,MAAM,SAAS;GAAC;EACxE,CAAC;EAED,MAAM,SAAS,eAAe;GAC5B,OAAO,EAAE,OAAO,SAAS,MAAM,OAAO,IAAI,EAAE;EAC9C,CAAC;EAED,QAAQ,WAAW;GAAE;GAAK,WAAW;EAAM,CAAC;;uBA7B1C,mBAEM,OAAA;IAFA,OAAK,eAAE,UAAA,KAAS;IAAG,OAAK,eAAE,OAAA,KAAM;OACpC,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,CAAA"}
|
|
@@ -7,7 +7,7 @@ import { bem, scrollIntoContainerView } from "@veltra/utils";
|
|
|
7
7
|
import { ArrowRight } from "@veltra/icons/normal";
|
|
8
8
|
//#region src/components/cascade/cascade-panel-item.vue
|
|
9
9
|
const _hoisted_1 = ["onClick"];
|
|
10
|
-
const _sfc_main =
|
|
10
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
11
11
|
name: "UCascadePanelItem",
|
|
12
12
|
__name: "cascade-panel-item",
|
|
13
13
|
props: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cascade-panel-item.js","names":[],"sources":["../../../src/components/cascade/cascade-panel-item.vue"],"sourcesContent":["<template>\n <u-scroll\n tag=\"ul\"\n :class=\"panelCls.b\"\n ref=\"scroll-container\"\n :content-class=\"panelCls.e('content')\"\n >\n <li\n v-for=\"(node, index) of data\"\n :key=\"node.value ?? index\"\n ref=\"itemRefs\"\n :class=\"getItemCls(node)\"\n @click=\"emit('click', panelIndex, node)\"\n >\n <u-checkbox\n v-if=\"cascadeProps.multiple\"\n :class=\"panelCls.e('option-checkbox')\"\n :model-value=\"checkedSet.has(node)\"\n @update:model-value=\"emit('check', node, $event)\"\n />\n\n <span :class=\"panelCls.e('option-label')\">\n {{ node.label }}\n </span>\n\n <u-icon :class=\"panelCls.e('option-expand')\" v-if=\"node.children?.length\">\n <ArrowRight />\n </u-icon>\n </li>\n </u-scroll>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ArrowRight } from '@veltra/icons/normal'\nimport { bem, scrollIntoContainerView } from '@veltra/utils'\nimport { inject, onMounted, shallowRef, useTemplateRef } from 'vue'\n\nimport type { CascadeNode } from '../../types'\nimport { UCheckbox } from '../checkbox'\nimport { UIcon } from '../icon'\nimport { UScroll } from '../scroll'\nimport { CascadeDIKey } from './di'\n\ndefineOptions({ name: 'UCascadePanelItem' })\n\nconst props = defineProps<{ data: CascadeNode[]; value?: string; panelIndex: number }>()\n\nconst emit = defineEmits<{\n (e: 'click', panelIndex: number, item: CascadeNode): void\n (e: 'check', item: CascadeNode, checked: boolean): void\n}>()\n\nconst { cls, cascadeProps, checkedSet } = inject(CascadeDIKey)!\n\nconst panelCls = cls.create('panel-item')\n\nconst optionCls = panelCls.e('option')\n\nfunction getItemCls(item: CascadeNode) {\n const selected = props.value === item.value\n return [\n optionCls,\n bem.is('active', selected),\n bem.is('selected', selected && !cascadeProps.multiple)\n ]\n}\n\nconst itemRefs = shallowRef<HTMLElement[]>([])\nconst scrollContainerRef = useTemplateRef('scroll-container')\n\nonMounted(() => {\n const activeItem = itemRefs.value.find((el) => el.classList.contains(bem.is('active')))\n if (activeItem) {\n setTimeout(() => {\n scrollIntoContainerView(activeItem, scrollContainerRef.value?.containerRef ?? null)\n })\n }\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EA6CA,MAAM,QAAQ;EAEd,MAAM,OAAO;EAKb,MAAM,EAAE,KAAK,cAAc,eAAe,OAAO,YAAY;EAE7D,MAAM,WAAW,IAAI,OAAO,YAAY;EAExC,MAAM,YAAY,SAAS,EAAE,QAAQ;EAErC,SAAS,WAAW,MAAmB;GACrC,MAAM,WAAW,MAAM,UAAU,KAAK;GACtC,OAAO;IACL;IACA,IAAI,GAAG,UAAU,QAAQ;IACzB,IAAI,GAAG,YAAY,YAAY,CAAC,aAAa,QAAQ;GACvD;EACF;EAEA,MAAM,WAAW,WAA0B,CAAC,CAAC;EAC7C,MAAM,qBAAqB,eAAe,kBAAkB;EAE5D,gBAAgB;GACd,MAAM,aAAa,SAAS,MAAM,MAAM,OAAO,GAAG,UAAU,SAAS,IAAI,GAAG,QAAQ,CAAC,CAAC;GACtF,IAAI,YACF,iBAAiB;IACf,wBAAwB,YAAY,mBAAmB,OAAO,gBAAgB,IAAI;GACpF,CAAC;EAEL,CAAC;;uBA5EC,YA4BW,MAAA,WAAA,GAAA;IA3BT,KAAI;IACH,OAAK,eAAE,MAAA,QAAA,
|
|
1
|
+
{"version":3,"file":"cascade-panel-item.js","names":[],"sources":["../../../src/components/cascade/cascade-panel-item.vue"],"sourcesContent":["<template>\n <u-scroll\n tag=\"ul\"\n :class=\"panelCls.b\"\n ref=\"scroll-container\"\n :content-class=\"panelCls.e('content')\"\n >\n <li\n v-for=\"(node, index) of data\"\n :key=\"node.value ?? index\"\n ref=\"itemRefs\"\n :class=\"getItemCls(node)\"\n @click=\"emit('click', panelIndex, node)\"\n >\n <u-checkbox\n v-if=\"cascadeProps.multiple\"\n :class=\"panelCls.e('option-checkbox')\"\n :model-value=\"checkedSet.has(node)\"\n @update:model-value=\"emit('check', node, $event)\"\n />\n\n <span :class=\"panelCls.e('option-label')\">\n {{ node.label }}\n </span>\n\n <u-icon :class=\"panelCls.e('option-expand')\" v-if=\"node.children?.length\">\n <ArrowRight />\n </u-icon>\n </li>\n </u-scroll>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ArrowRight } from '@veltra/icons/normal'\nimport { bem, scrollIntoContainerView } from '@veltra/utils'\nimport { inject, onMounted, shallowRef, useTemplateRef } from 'vue'\n\nimport type { CascadeNode } from '../../types'\nimport { UCheckbox } from '../checkbox'\nimport { UIcon } from '../icon'\nimport { UScroll } from '../scroll'\nimport { CascadeDIKey } from './di'\n\ndefineOptions({ name: 'UCascadePanelItem' })\n\nconst props = defineProps<{ data: CascadeNode[]; value?: string; panelIndex: number }>()\n\nconst emit = defineEmits<{\n (e: 'click', panelIndex: number, item: CascadeNode): void\n (e: 'check', item: CascadeNode, checked: boolean): void\n}>()\n\nconst { cls, cascadeProps, checkedSet } = inject(CascadeDIKey)!\n\nconst panelCls = cls.create('panel-item')\n\nconst optionCls = panelCls.e('option')\n\nfunction getItemCls(item: CascadeNode) {\n const selected = props.value === item.value\n return [\n optionCls,\n bem.is('active', selected),\n bem.is('selected', selected && !cascadeProps.multiple)\n ]\n}\n\nconst itemRefs = shallowRef<HTMLElement[]>([])\nconst scrollContainerRef = useTemplateRef('scroll-container')\n\nonMounted(() => {\n const activeItem = itemRefs.value.find((el) => el.classList.contains(bem.is('active')))\n if (activeItem) {\n setTimeout(() => {\n scrollIntoContainerView(activeItem, scrollContainerRef.value?.containerRef ?? null)\n })\n }\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EA6CA,MAAM,QAAQ;EAEd,MAAM,OAAO;EAKb,MAAM,EAAE,KAAK,cAAc,eAAe,OAAO,YAAY;EAE7D,MAAM,WAAW,IAAI,OAAO,YAAY;EAExC,MAAM,YAAY,SAAS,EAAE,QAAQ;EAErC,SAAS,WAAW,MAAmB;GACrC,MAAM,WAAW,MAAM,UAAU,KAAK;GACtC,OAAO;IACL;IACA,IAAI,GAAG,UAAU,QAAQ;IACzB,IAAI,GAAG,YAAY,YAAY,CAAC,aAAa,QAAQ;GACvD;EACF;EAEA,MAAM,WAAW,WAA0B,CAAC,CAAC;EAC7C,MAAM,qBAAqB,eAAe,kBAAkB;EAE5D,gBAAgB;GACd,MAAM,aAAa,SAAS,MAAM,MAAM,OAAO,GAAG,UAAU,SAAS,IAAI,GAAG,QAAQ,CAAC,CAAC;GACtF,IAAI,YACF,iBAAiB;IACf,wBAAwB,YAAY,mBAAmB,OAAO,gBAAgB,IAAI;GACpF,CAAC;EAEL,CAAC;;uBA5EC,YA4BW,MAAA,WAAA,GAAA;IA3BT,KAAI;IACH,OAAK,eAAE,MAAA,QAAA,CAAQ,CAAC,CAAC;IAClB,KAAI;IACH,iBAAe,MAAA,QAAA,CAAQ,CAAC,EAAC,SAAA;;2BAGK,EAAA,UAAA,IAAA,GAD/B,mBAqBK,UAAA,MAAA,WApBqB,QAAA,OAAhB,MAAM,UAAK;yBADrB,mBAqBK,MAAA;MAnBF,KAAK,KAAK,SAAS;;eAChB;MAAJ,KAAI;MACH,OAAK,eAAE,WAAW,IAAI,CAAA;MACtB,UAAK,WAAE,KAAI,SAAU,QAAA,YAAY,IAAI;;MAG9B,MAAA,YAAA,CAAY,CAAC,YAAA,UAAA,GADrB,YAKE,MAAA,WAAA,GAAA;;OAHC,OAAK,eAAE,MAAA,QAAA,CAAQ,CAAC,EAAC,iBAAA,CAAA;OACjB,eAAa,MAAA,UAAA,CAAU,CAAC,IAAI,IAAI;OAChC,wBAAkB,WAAE,KAAI,SAAU,MAAM,MAAM;;;;;;MAGjD,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,QAAA,CAAQ,CAAC,EAAC,cAAA,CAAA,EAAA,GAAA,gBACnB,KAAK,KAAK,GAAA,CAAA;MAGoC,KAAK,UAAU,UAAA,UAAA,GAAlE,YAES,MAAA,WAAA,GAAA;;OAFA,OAAK,eAAE,MAAA,QAAA,CAAQ,CAAC,EAAC,eAAA,CAAA;;8BACV,CAAd,YAAc,MAAA,UAAA,CAAA,CAAA,CAAA"}
|
|
@@ -15,8 +15,8 @@ import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
|
|
|
15
15
|
import { ArrowDown, Close, Search } from "@veltra/icons/normal";
|
|
16
16
|
import { Forest, o } from "@cat-kit/core";
|
|
17
17
|
//#region src/components/cascade/cascade.vue
|
|
18
|
-
const _sfc_main =
|
|
19
|
-
name: "
|
|
18
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
19
|
+
name: "UCascade",
|
|
20
20
|
__name: "cascade",
|
|
21
21
|
props: {
|
|
22
22
|
separator: { default: "/" },
|
|
@@ -30,8 +30,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
30
30
|
},
|
|
31
31
|
childrenKey: { default: "children" },
|
|
32
32
|
strict: { type: Boolean },
|
|
33
|
+
showFullPath: {
|
|
34
|
+
type: Boolean,
|
|
35
|
+
default: true
|
|
36
|
+
},
|
|
33
37
|
data: { default: () => [] },
|
|
34
|
-
disabledNode: {},
|
|
35
38
|
multiple: { type: Boolean },
|
|
36
39
|
filterable: {
|
|
37
40
|
type: Boolean,
|
|
@@ -54,6 +57,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
54
57
|
size: {}
|
|
55
58
|
},
|
|
56
59
|
emits: [
|
|
60
|
+
"update:label",
|
|
57
61
|
"update:modelValue",
|
|
58
62
|
"change",
|
|
59
63
|
"clear"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cascade.js","names":[],"sources":["../../../src/components/cascade/cascade.vue"],"sourcesContent":["<template>\n <u-dropdown\n v-if=\"!readonly\"\n :class=\"[cls.b, bem.is('disabled', disabled), bem.is('multiple', multiple), cls.m(size)]\"\n :content-class=\"[cls.e('panel'), cls.em('panel', size)]\"\n trigger=\"click\"\n ref=\"dropdownRef\"\n :disabled=\"disabled\"\n width=\"auto\"\n @mouseenter=\"hovered = true\"\n @mouseleave=\"hovered = false\"\n @update:visible=\"!$event && (qs = '')\"\n >\n <template #trigger>\n <!-- 单选展示 -->\n <u-input\n v-if=\"!multiple\"\n :size=\"size\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :clearable=\"clearable\"\n native-readonly\n :model-value=\"displayedValue\"\n @clear=\"handleClear\"\n >\n <template #suffix>\n <u-icon :class=\"cls.e('arrow')\"><ArrowDown /></u-icon>\n </template>\n </u-input>\n\n <!-- 多选展示 -->\n <template v-if=\"multiple\">\n <span :class=\"cls.e('placeholder')\" v-show=\"!modelValue?.length\">\n {{ placeholder }}\n </span>\n\n <div v-if=\"modelValue?.length\" :class=\"cls.e('tags')\">\n <u-tag\n v-for=\"tag of tags\"\n :key=\"tag.value\"\n :closable=\"!disabled\"\n @close=\"handleCloseTag(tag)\"\n >\n {{ tag.label }}\n </u-tag>\n <u-tag v-if=\"restTag\"> {{ restTag }}+ </u-tag>\n </div>\n\n <transition name=\"zoom-in\" mode=\"out-in\">\n <u-icon\n v-if=\"clearable && modelValue?.length && hovered && !disabled\"\n :class=\"cls.e('clear')\"\n @click.stop=\"handleClear\"\n >\n <Close />\n </u-icon>\n\n <u-icon :class=\"cls.e('arrow')\" v-else><ArrowDown /></u-icon>\n </transition>\n </template>\n </template>\n\n <template #content>\n <!-- 过滤 -->\n <div v-if=\"filterable\" :class=\"cls.e('panel-filter')\">\n <u-input placeholder=\"输入关键字进行过滤\" v-model=\"qs\" :size=\"size\" clearable>\n <template #suffix>\n <u-icon><Search /></u-icon>\n </template>\n </u-input>\n </div>\n\n <div :class=\"cls.e('content')\" v-if=\"panelItemList.length\">\n <UCascadePanelItem\n v-for=\"({ nodes, key }, index) of panelItemList\"\n :data=\"nodes\"\n :key=\"key\"\n :panel-index=\"index\"\n :value=\"selectedNodeKeys[index]\"\n @click=\"handleClick\"\n @check=\"handleCheck\"\n />\n </div>\n\n <div :class=\"cls.e('empty')\" v-else>\n <UEmpty />\n </div>\n </template>\n </u-dropdown>\n\n <!-- 只读 -->\n <template v-else>\n <div :class=\"[cls.m(size)]\" v-if=\"multiple\">\n <div :class=\"cls.e('tags')\">\n <u-tag v-for=\"tag of tags\" :key=\"tag.value\">\n {{ tag.label }}\n </u-tag>\n </div>\n </div>\n <template v-else>\n {{ displayedValue || FORM_EMPTY_CONTENT }}\n </template>\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { Forest, o } from '@cat-kit/core'\nimport { useFormFallbackProps, useUserAction } 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, provide, shallowRef, triggerRef, watch } from 'vue'\n\nimport type { CascadeProps, CascadeEmits, DropdownExposed } from '../../types'\nimport { UDropdown } from '../dropdown'\nimport { UEmpty } from '../empty'\nimport { UIcon } from '../icon'\nimport { UInput } from '../input'\nimport { UTag } from '../tag'\nimport UCascadePanelItem from './cascade-panel-item.vue'\nimport { CascadeDIKey } from './di'\nimport { CascadeNode } from './node'\nimport { useCheck } from './use-check'\nimport { useDataMap } from './use-data-map'\nimport { useSelect } from './use-select'\n\ndefineOptions({ name: 'Cascade' })\n\nconst props = withDefaults(defineProps<CascadeProps>(), {\n labelKey: 'label',\n valueKey: 'value',\n placeholder: '请选择',\n separator: '/',\n clearable: true,\n disabled: undefined,\n readonly: undefined,\n childrenKey: 'children',\n filterable: false,\n data: () => [],\n visibilityLimit: 3\n})\n\nconst emit = defineEmits<CascadeEmits>()\n\nconst cls = bem('cascade')\n\nconst { formProps } = injectFormContext()\n\nconst { size, disabled, readonly } = useFormFallbackProps([formProps ?? {}, props], {\n size: 'default',\n disabled: false,\n readonly: false\n})\n\nconst dropdownRef = shallowRef<DropdownExposed>()\n\nconst forest = computed(() => {\n return new Forest<Record<string, unknown>, any>({\n data: (props.data ?? []) as Record<string, unknown>[],\n childrenKey: props.childrenKey,\n createNode: (data, index, depth, _forest, parent) => {\n if (!data) {\n return new CascadeNode({ data, index, depth, value: '', label: '', parent })\n }\n\n return new CascadeNode({\n data,\n index,\n depth,\n value: o(data).get(props.valueKey) ?? '',\n label: o(data).get(props.labelKey) ?? '',\n parent\n })\n }\n })\n})\n\nconst { dataMap } = useDataMap({ props, forest })\n\nconst { userAction, isUserActive } = useUserAction()\n\nconst {\n displayedValue,\n selectItem,\n updateSingleValue,\n panelItemList,\n getPanelItemList,\n createPanelItem,\n selectedNodeKeys\n} = useSelect({ props, emit, dataMap, forest, isUserActive, dropdownRef })\n\nconst { hovered, tags, restTag, updateMultipleValue, handleCloseTag, checkItem, checkedSet } =\n useCheck({ props, forest, getPanelItemList, emit, dataMap, isUserActive, disabled, readonly })\n\nconst commitSingleSelect = userAction((item: CascadeNode) => {\n if (!props.strict) {\n updateSingleValue()\n } else if (!item.children?.length) {\n updateSingleValue()\n }\n})\n\nfunction handleClick(panelIndex: number, item: CascadeNode) {\n selectItem(panelIndex, item)\n\n if (!props.multiple) {\n commitSingleSelect(item)\n }\n}\n\nconst handleCheck = userAction((item: CascadeNode, checked: boolean) => {\n checkItem(item, checked)\n})\n\nfunction handleClear() {\n if (props.multiple) {\n checkedSet.value.clear()\n triggerRef(checkedSet)\n updateMultipleValue()\n } else {\n selectedNodeKeys.value = []\n updateSingleValue()\n }\n\n emit('clear')\n}\n\n// 过滤\nconst qs = shallowRef<string>('')\n\nwatch([qs, forest], ([qs, forest]) => {\n const { filterable } = props\n if (!filterable || !qs) {\n forest.dfs((node) => {\n node.visible = true\n })\n getPanelItemList(forest.roots)\n return\n }\n\n const cache = new Set<CascadeNode>()\n\n forest.dfs((node) => {\n if (node.label?.toLowerCase().includes(qs.toLowerCase())) {\n node.visible = true\n let parent = node.parent\n while (parent && !cache.has(parent)) {\n parent.visible = true\n cache.add(parent)\n parent = parent.parent\n }\n } else {\n node.visible = false\n }\n })\n\n panelItemList.value = [createPanelItem(forest.roots)]\n})\n\nprovide(CascadeDIKey, { cls, size, disabled, readonly, cascadeProps: props, checkedSet })\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cascade.js","names":[],"sources":["../../../src/components/cascade/cascade.vue"],"sourcesContent":["<template>\n <u-dropdown\n v-if=\"!readonly\"\n :class=\"[cls.b, bem.is('disabled', disabled), bem.is('multiple', multiple), cls.m(size)]\"\n :content-class=\"[cls.e('panel'), cls.em('panel', size)]\"\n trigger=\"click\"\n ref=\"dropdownRef\"\n :disabled=\"disabled\"\n width=\"auto\"\n @mouseenter=\"hovered = true\"\n @mouseleave=\"hovered = false\"\n @update:visible=\"!$event && (qs = '')\"\n >\n <template #trigger>\n <!-- 单选展示 -->\n <u-input\n v-if=\"!multiple\"\n :size=\"size\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :clearable=\"clearable\"\n native-readonly\n :model-value=\"displayedValue\"\n @clear=\"handleClear\"\n >\n <template #suffix>\n <u-icon :class=\"cls.e('arrow')\"><ArrowDown /></u-icon>\n </template>\n </u-input>\n\n <!-- 多选展示 -->\n <template v-if=\"multiple\">\n <span :class=\"cls.e('placeholder')\" v-show=\"!modelValue?.length\">\n {{ placeholder }}\n </span>\n\n <div v-if=\"modelValue?.length\" :class=\"cls.e('tags')\">\n <u-tag\n v-for=\"tag of tags\"\n :key=\"tag.value\"\n :closable=\"!disabled\"\n @close=\"handleCloseTag(tag)\"\n >\n {{ tag.label }}\n </u-tag>\n <u-tag v-if=\"restTag\"> {{ restTag }}+ </u-tag>\n </div>\n\n <transition name=\"zoom-in\" mode=\"out-in\">\n <u-icon\n v-if=\"clearable && modelValue?.length && hovered && !disabled\"\n :class=\"cls.e('clear')\"\n @click.stop=\"handleClear\"\n >\n <Close />\n </u-icon>\n\n <u-icon :class=\"cls.e('arrow')\" v-else><ArrowDown /></u-icon>\n </transition>\n </template>\n </template>\n\n <template #content>\n <!-- 过滤 -->\n <div v-if=\"filterable\" :class=\"cls.e('panel-filter')\">\n <u-input placeholder=\"输入关键字进行过滤\" v-model=\"qs\" :size=\"size\" clearable>\n <template #suffix>\n <u-icon><Search /></u-icon>\n </template>\n </u-input>\n </div>\n\n <div :class=\"cls.e('content')\" v-if=\"panelItemList.length\">\n <UCascadePanelItem\n v-for=\"({ nodes, key }, index) of panelItemList\"\n :data=\"nodes\"\n :key=\"key\"\n :panel-index=\"index\"\n :value=\"selectedNodeKeys[index]\"\n @click=\"handleClick\"\n @check=\"handleCheck\"\n />\n </div>\n\n <div :class=\"cls.e('empty')\" v-else>\n <UEmpty />\n </div>\n </template>\n </u-dropdown>\n\n <!-- 只读 -->\n <template v-else>\n <div :class=\"[cls.m(size)]\" v-if=\"multiple\">\n <div :class=\"cls.e('tags')\">\n <u-tag v-for=\"tag of tags\" :key=\"tag.value\">\n {{ tag.label }}\n </u-tag>\n </div>\n </div>\n <template v-else>\n {{ displayedValue || FORM_EMPTY_CONTENT }}\n </template>\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { Forest, o } from '@cat-kit/core'\nimport { useFormFallbackProps, useUserAction } 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, provide, shallowRef, triggerRef, watch } from 'vue'\n\nimport type { CascadeProps, CascadeEmits, DropdownExposed } from '../../types'\nimport { UDropdown } from '../dropdown'\nimport { UEmpty } from '../empty'\nimport { UIcon } from '../icon'\nimport { UInput } from '../input'\nimport { UTag } from '../tag'\nimport UCascadePanelItem from './cascade-panel-item.vue'\nimport { CascadeDIKey } from './di'\nimport { CascadeNode } from './node'\nimport { useCheck } from './use-check'\nimport { useDataMap } from './use-data-map'\nimport { useSelect } from './use-select'\n\ndefineOptions({ name: 'UCascade' })\n\nconst props = withDefaults(defineProps<CascadeProps>(), {\n labelKey: 'label',\n valueKey: 'value',\n placeholder: '请选择',\n separator: '/',\n clearable: true,\n disabled: undefined,\n readonly: undefined,\n childrenKey: 'children',\n filterable: false,\n data: () => [],\n visibilityLimit: 3,\n showFullPath: true\n})\n\nconst emit = defineEmits<CascadeEmits>()\n\nconst cls = bem('cascade')\n\nconst { formProps } = injectFormContext()\n\nconst { size, disabled, readonly } = useFormFallbackProps([formProps ?? {}, props], {\n size: 'default',\n disabled: false,\n readonly: false\n})\n\nconst dropdownRef = shallowRef<DropdownExposed>()\n\nconst forest = computed(() => {\n return new Forest<Record<string, unknown>, any>({\n data: (props.data ?? []) as Record<string, unknown>[],\n childrenKey: props.childrenKey,\n createNode: (data, index, depth, _forest, parent) => {\n if (!data) {\n return new CascadeNode({ data, index, depth, value: '', label: '', parent })\n }\n\n return new CascadeNode({\n data,\n index,\n depth,\n value: o(data).get(props.valueKey) ?? '',\n label: o(data).get(props.labelKey) ?? '',\n parent\n })\n }\n })\n})\n\nconst { dataMap } = useDataMap({ props, forest })\n\nconst { userAction, isUserActive } = useUserAction()\n\nconst {\n displayedValue,\n selectItem,\n updateSingleValue,\n panelItemList,\n getPanelItemList,\n createPanelItem,\n selectedNodeKeys\n} = useSelect({ props, emit, dataMap, forest, isUserActive, dropdownRef })\n\nconst { hovered, tags, restTag, updateMultipleValue, handleCloseTag, checkItem, checkedSet } =\n useCheck({ props, forest, getPanelItemList, emit, dataMap, isUserActive, disabled, readonly })\n\nconst commitSingleSelect = userAction((item: CascadeNode) => {\n if (!props.strict) {\n updateSingleValue()\n } else if (!item.children?.length) {\n updateSingleValue()\n }\n})\n\nfunction handleClick(panelIndex: number, item: CascadeNode) {\n selectItem(panelIndex, item)\n\n if (!props.multiple) {\n commitSingleSelect(item)\n }\n}\n\nconst handleCheck = userAction((item: CascadeNode, checked: boolean) => {\n checkItem(item, checked)\n})\n\nfunction handleClear() {\n if (props.multiple) {\n checkedSet.value.clear()\n triggerRef(checkedSet)\n updateMultipleValue()\n } else {\n selectedNodeKeys.value = []\n updateSingleValue()\n }\n\n emit('clear')\n}\n\n// 过滤\nconst qs = shallowRef<string>('')\n\nwatch([qs, forest], ([qs, forest]) => {\n const { filterable } = props\n if (!filterable || !qs) {\n forest.dfs((node) => {\n node.visible = true\n })\n getPanelItemList(forest.roots)\n return\n }\n\n const cache = new Set<CascadeNode>()\n\n forest.dfs((node) => {\n if (node.label?.toLowerCase().includes(qs.toLowerCase())) {\n node.visible = true\n let parent = node.parent\n while (parent && !cache.has(parent)) {\n parent.visible = true\n cache.add(parent)\n parent = parent.parent\n }\n } else {\n node.visible = false\n }\n })\n\n panelItemList.value = [createPanelItem(forest.roots)]\n})\n\nprovide(CascadeDIKey, { cls, size, disabled, readonly, cascadeProps: props, checkedSet })\n</script>\n"],"mappings":"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"}
|
|
@@ -3,23 +3,26 @@ import { CascadeProps } from "../../types/cascade.js";
|
|
|
3
3
|
declare const __VLS_export: import("vue").DefineComponent<CascadeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
4
4
|
"update:modelValue": (value?: string | string[] | undefined) => any;
|
|
5
5
|
clear: () => any;
|
|
6
|
-
change: (...args: [
|
|
6
|
+
change: (...args: [item?: Record<string, any> | undefined] | [items: Record<string, any>[]]) => any;
|
|
7
|
+
"update:label": (label?: string | string[] | undefined) => any;
|
|
7
8
|
}, string, import("vue").PublicProps, Readonly<CascadeProps> & Readonly<{
|
|
8
9
|
"onUpdate:modelValue"?: ((value?: string | string[] | undefined) => any) | undefined;
|
|
9
10
|
onClear?: (() => any) | undefined;
|
|
10
|
-
onChange?: ((...args: [
|
|
11
|
+
onChange?: ((...args: [item?: Record<string, any> | undefined] | [items: Record<string, any>[]]) => any) | undefined;
|
|
12
|
+
"onUpdate:label"?: ((label?: string | string[] | undefined) => any) | undefined;
|
|
11
13
|
}>, {
|
|
12
14
|
labelKey: string;
|
|
13
15
|
valueKey: string;
|
|
14
|
-
disabled: boolean;
|
|
15
|
-
readonly: boolean;
|
|
16
16
|
childrenKey: string;
|
|
17
17
|
data: Record<string, any>[];
|
|
18
|
+
disabled: boolean;
|
|
19
|
+
readonly: boolean;
|
|
18
20
|
placeholder: string;
|
|
19
21
|
clearable: boolean;
|
|
20
22
|
filterable: boolean;
|
|
21
|
-
visibilityLimit: number;
|
|
22
23
|
separator: string;
|
|
24
|
+
visibilityLimit: number;
|
|
25
|
+
showFullPath: boolean;
|
|
23
26
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
24
27
|
declare const _default: typeof __VLS_export;
|
|
25
28
|
//#endregion
|
|
@@ -22,8 +22,10 @@ function useCheck(options) {
|
|
|
22
22
|
const checkedArr = Array.from(checkedSet.value);
|
|
23
23
|
const targetValues = checkedArr.map((item) => item.value);
|
|
24
24
|
const targetLabels = checkedArr.map((item) => item.label);
|
|
25
|
+
const targetItems = checkedArr.map((item) => item.data);
|
|
25
26
|
emit("update:modelValue", targetValues);
|
|
26
|
-
emit("
|
|
27
|
+
emit("update:label", targetLabels.length ? targetLabels : void 0);
|
|
28
|
+
emit("change", targetItems);
|
|
27
29
|
}
|
|
28
30
|
const restTag = computed(() => {
|
|
29
31
|
const { visibilityLimit, modelValue } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-check.js","names":[],"sources":["../../../src/components/cascade/use-check.ts"],"sourcesContent":["import { dfs, type Forest } from '@cat-kit/core'\nimport {\n computed,\n shallowRef,\n triggerRef,\n watch,\n type ComputedRef,\n type Ref,\n type ShallowRef\n} from 'vue'\n\nimport type { CascadeProps, CascadeEmits, CascadeNode } from '../../types'\n\ninterface CheckOptions {\n props: CascadeProps\n emit: CascadeEmits\n dataMap: ShallowRef<Map<string, CascadeNode>>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n forest: Ref<Forest<Record<string, unknown>, any>>\n isUserActive: () => boolean\n getPanelItemList: (data?: CascadeNode[]) => void\n}\n\ninterface UseCheckReturned {\n hovered: ShallowRef<boolean>\n tags: ComputedRef<CascadeNode[]>\n checkedSet: ShallowRef<Set<CascadeNode>>\n restTag: ComputedRef<number>\n handleCloseTag: (tag: CascadeNode) => void\n updateMultipleValue: () => void\n checkItem: (item: CascadeNode, checked: boolean) => void\n}\n\nexport function useCheck(options: CheckOptions): UseCheckReturned {\n const { props, emit, dataMap, disabled, readonly, forest, isUserActive, getPanelItemList } =\n options\n\n const hovered = shallowRef(false)\n\n const checkedSet = shallowRef(new Set<CascadeNode>())\n\n const tags = computed(() => {\n const { modelValue, multiple } = props\n let tags: CascadeNode[] = []\n\n if (!multiple || !Array.isArray(modelValue)) return tags\n\n let { visibilityLimit } = props\n if (visibilityLimit! < 0) {\n visibilityLimit = 0\n }\n\n // 禁用时,显示全部\n if (disabled.value || readonly.value) {\n visibilityLimit = props.modelValue?.length ?? 0\n }\n\n modelValue.slice(0, visibilityLimit).forEach((k) => {\n const option = dataMap.value.get(k)\n option && tags.push(option)\n })\n\n return tags\n })\n\n function updateMultipleValue() {\n const checkedArr = Array.from(checkedSet.value)\n const targetValues = checkedArr.map((item) => item.value)\n const targetLabels = checkedArr.map((item) => item.label)\n emit('update:modelValue', targetValues)\n emit('
|
|
1
|
+
{"version":3,"file":"use-check.js","names":[],"sources":["../../../src/components/cascade/use-check.ts"],"sourcesContent":["import { dfs, type Forest } from '@cat-kit/core'\nimport {\n computed,\n shallowRef,\n triggerRef,\n watch,\n type ComputedRef,\n type Ref,\n type ShallowRef\n} from 'vue'\n\nimport type { CascadeProps, CascadeEmits, CascadeNode } from '../../types'\n\ninterface CheckOptions {\n props: CascadeProps\n emit: CascadeEmits\n dataMap: ShallowRef<Map<string, CascadeNode>>\n disabled: Ref<boolean>\n readonly: Ref<boolean>\n forest: Ref<Forest<Record<string, unknown>, any>>\n isUserActive: () => boolean\n getPanelItemList: (data?: CascadeNode[]) => void\n}\n\ninterface UseCheckReturned {\n hovered: ShallowRef<boolean>\n tags: ComputedRef<CascadeNode[]>\n checkedSet: ShallowRef<Set<CascadeNode>>\n restTag: ComputedRef<number>\n handleCloseTag: (tag: CascadeNode) => void\n updateMultipleValue: () => void\n checkItem: (item: CascadeNode, checked: boolean) => void\n}\n\nexport function useCheck(options: CheckOptions): UseCheckReturned {\n const { props, emit, dataMap, disabled, readonly, forest, isUserActive, getPanelItemList } =\n options\n\n const hovered = shallowRef(false)\n\n const checkedSet = shallowRef(new Set<CascadeNode>())\n\n const tags = computed(() => {\n const { modelValue, multiple } = props\n let tags: CascadeNode[] = []\n\n if (!multiple || !Array.isArray(modelValue)) return tags\n\n let { visibilityLimit } = props\n if (visibilityLimit! < 0) {\n visibilityLimit = 0\n }\n\n // 禁用时,显示全部\n if (disabled.value || readonly.value) {\n visibilityLimit = props.modelValue?.length ?? 0\n }\n\n modelValue.slice(0, visibilityLimit).forEach((k) => {\n const option = dataMap.value.get(k)\n option && tags.push(option)\n })\n\n return tags\n })\n\n function updateMultipleValue() {\n const checkedArr = Array.from(checkedSet.value)\n const targetValues = checkedArr.map((item) => item.value)\n const targetLabels = checkedArr.map((item) => item.label)\n const targetItems = checkedArr.map((item) => item.data as Record<string, any>)\n emit('update:modelValue', targetValues)\n emit('update:label', targetLabels.length ? targetLabels : undefined)\n emit('change', targetItems)\n }\n\n const restTag = computed(() => {\n const { visibilityLimit, modelValue } = props\n\n return Math.max((modelValue?.length ?? 0) - visibilityLimit!, 0)\n })\n\n function handleCloseTag(tag: CascadeNode) {\n checkedSet.value.delete(tag)\n updateMultipleValue()\n }\n\n function checkItem(item: CascadeNode, checked: boolean) {\n const childrenKey = props.childrenKey ?? 'children'\n if (checked) {\n dfs(\n item as unknown as Record<string, unknown>,\n (node) => {\n checkedSet.value.add(node as unknown as CascadeNode)\n },\n childrenKey\n )\n } else {\n dfs(\n item as unknown as Record<string, unknown>,\n (node) => {\n checkedSet.value.delete(node as unknown as CascadeNode)\n },\n childrenKey\n )\n }\n\n triggerRef(checkedSet)\n\n updateMultipleValue()\n }\n\n function initMultipleCheck() {\n const { modelValue } = props\n getPanelItemList()\n if (Array.isArray(modelValue)) {\n checkedSet.value = new Set(modelValue.map((v) => dataMap.value.get(v)!))\n }\n }\n\n watch(\n [() => props.multiple, () => props.modelValue, forest],\n ([multiple]) => {\n if (!multiple || isUserActive()) return\n initMultipleCheck()\n },\n { immediate: false }\n )\n\n return { hovered, tags, checkedSet, restTag, handleCloseTag, updateMultipleValue, checkItem }\n}\n"],"mappings":";;;AAkCA,SAAgB,SAAS,SAAyC;CAChE,MAAM,EAAE,OAAO,MAAM,SAAS,UAAU,UAAU,QAAQ,cAAc,qBACtE;CAEF,MAAM,UAAU,WAAW,KAAK;CAEhC,MAAM,aAAa,2BAAW,IAAI,IAAiB,CAAC;CAEpD,MAAM,OAAO,eAAe;EAC1B,MAAM,EAAE,YAAY,aAAa;EACjC,IAAI,OAAsB,CAAC;EAE3B,IAAI,CAAC,YAAY,CAAC,MAAM,QAAQ,UAAU,GAAG,OAAO;EAEpD,IAAI,EAAE,oBAAoB;EAC1B,IAAI,kBAAmB,GACrB,kBAAkB;EAIpB,IAAI,SAAS,SAAS,SAAS,OAC7B,kBAAkB,MAAM,YAAY,UAAU;EAGhD,WAAW,MAAM,GAAG,eAAe,CAAC,CAAC,SAAS,MAAM;GAClD,MAAM,SAAS,QAAQ,MAAM,IAAI,CAAC;GAClC,UAAU,KAAK,KAAK,MAAM;EAC5B,CAAC;EAED,OAAO;CACT,CAAC;CAED,SAAS,sBAAsB;EAC7B,MAAM,aAAa,MAAM,KAAK,WAAW,KAAK;EAC9C,MAAM,eAAe,WAAW,KAAK,SAAS,KAAK,KAAK;EACxD,MAAM,eAAe,WAAW,KAAK,SAAS,KAAK,KAAK;EACxD,MAAM,cAAc,WAAW,KAAK,SAAS,KAAK,IAA2B;EAC7E,KAAK,qBAAqB,YAAY;EACtC,KAAK,gBAAgB,aAAa,SAAS,eAAe,KAAA,CAAS;EACnE,KAAK,UAAU,WAAW;CAC5B;CAEA,MAAM,UAAU,eAAe;EAC7B,MAAM,EAAE,iBAAiB,eAAe;EAExC,OAAO,KAAK,KAAK,YAAY,UAAU,KAAK,iBAAkB,CAAC;CACjE,CAAC;CAED,SAAS,eAAe,KAAkB;EACxC,WAAW,MAAM,OAAO,GAAG;EAC3B,oBAAoB;CACtB;CAEA,SAAS,UAAU,MAAmB,SAAkB;EACtD,MAAM,cAAc,MAAM,eAAe;EACzC,IAAI,SACF,IACE,OACC,SAAS;GACR,WAAW,MAAM,IAAI,IAA8B;EACrD,GACA,WACF;OAEA,IACE,OACC,SAAS;GACR,WAAW,MAAM,OAAO,IAA8B;EACxD,GACA,WACF;EAGF,WAAW,UAAU;EAErB,oBAAoB;CACtB;CAEA,SAAS,oBAAoB;EAC3B,MAAM,EAAE,eAAe;EACvB,iBAAiB;EACjB,IAAI,MAAM,QAAQ,UAAU,GAC1B,WAAW,QAAQ,IAAI,IAAI,WAAW,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC,CAAE,CAAC;CAE3E;CAEA,MACE;QAAO,MAAM;QAAgB,MAAM;EAAY;CAAM,IACpD,CAAC,cAAc;EACd,IAAI,CAAC,YAAY,aAAa,GAAG;EACjC,kBAAkB;CACpB,GACA,EAAE,WAAW,MAAM,CACrB;CAEA,OAAO;EAAE;EAAS;EAAM;EAAY;EAAS;EAAgB;EAAqB;CAAU;AAC9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-data-map.js","names":[],"sources":["../../../src/components/cascade/use-data-map.ts"],"sourcesContent":["import { Forest, o } from '@cat-kit/core'\nimport { shallowRef, triggerRef, watchEffect, type ComputedRef, type ShallowRef } from 'vue'\n\nimport type { CascadeNode, CascadeProps } from '../../types'\n\ninterface DataMapOptions {\n props: CascadeProps\n forest: ComputedRef<Forest<Record<string, unknown>, any>>\n}\n\n/** 数据映射相关逻辑 */\ninterface UseDataMapReturned {\n dataMap: ShallowRef<Map<string, CascadeNode>>\n}\n\nexport function useDataMap(options: DataMapOptions): UseDataMapReturned {\n const { props, forest } = options\n const dataMap = shallowRef(new Map<string, CascadeNode>())\n\n watchEffect(() => {\n const { valueKey } = props\n\n dataMap.value.clear()\n\n forest.value.dfs((node) => {\n const value = o(node.data).get(valueKey!)\n if (value !== null && value !== undefined) {\n dataMap.value.set(value, node)\n }\n })\n\n triggerRef(dataMap)\n })\n\n return { dataMap }\n}\n"],"mappings":";;;AAeA,SAAgB,WAAW,SAA6C;CACtE,MAAM,EAAE,OAAO,WAAW;CAC1B,MAAM,UAAU,2BAAW,IAAI,IAAyB,CAAC;CAEzD,kBAAkB;EAChB,MAAM,EAAE,aAAa;EAErB,QAAQ,MAAM,MAAM;EAEpB,OAAO,MAAM,KAAK,SAAS;GACzB,MAAM,QAAQ,EAAE,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"use-data-map.js","names":[],"sources":["../../../src/components/cascade/use-data-map.ts"],"sourcesContent":["import { Forest, o } from '@cat-kit/core'\nimport { shallowRef, triggerRef, watchEffect, type ComputedRef, type ShallowRef } from 'vue'\n\nimport type { CascadeNode, CascadeProps } from '../../types'\n\ninterface DataMapOptions {\n props: CascadeProps\n forest: ComputedRef<Forest<Record<string, unknown>, any>>\n}\n\n/** 数据映射相关逻辑 */\ninterface UseDataMapReturned {\n dataMap: ShallowRef<Map<string, CascadeNode>>\n}\n\nexport function useDataMap(options: DataMapOptions): UseDataMapReturned {\n const { props, forest } = options\n const dataMap = shallowRef(new Map<string, CascadeNode>())\n\n watchEffect(() => {\n const { valueKey } = props\n\n dataMap.value.clear()\n\n forest.value.dfs((node) => {\n const value = o(node.data).get(valueKey!)\n if (value !== null && value !== undefined) {\n dataMap.value.set(value, node)\n }\n })\n\n triggerRef(dataMap)\n })\n\n return { dataMap }\n}\n"],"mappings":";;;AAeA,SAAgB,WAAW,SAA6C;CACtE,MAAM,EAAE,OAAO,WAAW;CAC1B,MAAM,UAAU,2BAAW,IAAI,IAAyB,CAAC;CAEzD,kBAAkB;EAChB,MAAM,EAAE,aAAa;EAErB,QAAQ,MAAM,MAAM;EAEpB,OAAO,MAAM,KAAK,SAAS;GACzB,MAAM,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,IAAI,QAAS;GACxC,IAAI,UAAU,QAAQ,UAAU,KAAA,GAC9B,QAAQ,MAAM,IAAI,OAAO,IAAI;EAEjC,CAAC;EAED,WAAW,OAAO;CACpB,CAAC;CAED,OAAO,EAAE,QAAQ;AACnB"}
|
|
@@ -2,11 +2,19 @@ import { computed, nextTick, shallowRef, triggerRef, watch } from "vue";
|
|
|
2
2
|
import { createIncrease } from "@veltra/utils";
|
|
3
3
|
import "@cat-kit/core";
|
|
4
4
|
//#region src/components/cascade/use-select.ts
|
|
5
|
+
function buildPathKeys(leaf) {
|
|
6
|
+
const keys = [];
|
|
7
|
+
let node = leaf;
|
|
8
|
+
while (node) {
|
|
9
|
+
keys.unshift(node.value);
|
|
10
|
+
node = node.parent;
|
|
11
|
+
}
|
|
12
|
+
return keys;
|
|
13
|
+
}
|
|
5
14
|
function useSelect(options) {
|
|
6
15
|
const { props, emit, dataMap, isUserActive, dropdownRef, forest } = options;
|
|
7
16
|
/** 选中的节点key */
|
|
8
17
|
const selectedNodeKeys = shallowRef([]);
|
|
9
|
-
const currentItem = shallowRef();
|
|
10
18
|
/** 面板数据 */
|
|
11
19
|
const panelItemList = shallowRef([]);
|
|
12
20
|
const uid = createIncrease();
|
|
@@ -17,10 +25,10 @@ function useSelect(options) {
|
|
|
17
25
|
};
|
|
18
26
|
}
|
|
19
27
|
const displayedValue = computed(() => {
|
|
20
|
-
const { modelValue, separator } = props;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
const { modelValue, separator, showFullPath } = props;
|
|
29
|
+
if (!modelValue || typeof modelValue !== "string") return "";
|
|
30
|
+
if (showFullPath) return modelValue.split(separator).map((v) => dataMap.value.get(v)?.label ?? v).join(separator);
|
|
31
|
+
return dataMap.value.get(modelValue)?.label ?? modelValue;
|
|
24
32
|
});
|
|
25
33
|
function getPanelItemList(data) {
|
|
26
34
|
const _panelItemList = [];
|
|
@@ -40,13 +48,16 @@ function useSelect(options) {
|
|
|
40
48
|
triggerRef(panelItemList);
|
|
41
49
|
}
|
|
42
50
|
function updateSingleValue() {
|
|
43
|
-
const { separator } = props;
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
const { separator, showFullPath } = props;
|
|
52
|
+
const keys = selectedNodeKeys.value;
|
|
53
|
+
const leafKey = keys.length ? keys[keys.length - 1] : void 0;
|
|
54
|
+
const leafLabel = leafKey ? dataMap.value.get(leafKey)?.label : void 0;
|
|
55
|
+
const targetValue = showFullPath ? keys.length ? keys.join(separator) : void 0 : leafKey;
|
|
56
|
+
const targetLabel = showFullPath ? keys.map((key) => dataMap.value.get(key)?.label).filter(Boolean).join(separator) : leafLabel;
|
|
57
|
+
const leafNode = leafKey ? dataMap.value.get(leafKey) : void 0;
|
|
48
58
|
emit("update:modelValue", targetValue);
|
|
49
|
-
emit("
|
|
59
|
+
emit("update:label", targetLabel);
|
|
60
|
+
emit("change", leafNode?.data);
|
|
50
61
|
}
|
|
51
62
|
/**
|
|
52
63
|
* 单选选择
|
|
@@ -55,7 +66,6 @@ function useSelect(options) {
|
|
|
55
66
|
* @param item 选中的节点
|
|
56
67
|
*/
|
|
57
68
|
function selectItem(panelIndex, item) {
|
|
58
|
-
currentItem.value = item;
|
|
59
69
|
selectedNodeKeys.value[panelIndex] = item.value;
|
|
60
70
|
selectedNodeKeys.value.splice(panelIndex + 1);
|
|
61
71
|
triggerRef(selectedNodeKeys);
|
|
@@ -66,9 +76,15 @@ function useSelect(options) {
|
|
|
66
76
|
if (!item.children?.length && !props.multiple) dropdownRef.value?.close();
|
|
67
77
|
}
|
|
68
78
|
function initSingleSelect() {
|
|
69
|
-
const { modelValue, separator } = props;
|
|
79
|
+
const { modelValue, separator, showFullPath } = props;
|
|
70
80
|
if (modelValue && typeof modelValue === "string") {
|
|
71
|
-
|
|
81
|
+
let keys;
|
|
82
|
+
if (showFullPath) keys = modelValue.split(separator);
|
|
83
|
+
else {
|
|
84
|
+
const leaf = dataMap.value.get(modelValue);
|
|
85
|
+
keys = leaf ? buildPathKeys(leaf) : [modelValue];
|
|
86
|
+
}
|
|
87
|
+
selectedNodeKeys.value = keys;
|
|
72
88
|
getPanelItemList(forest.value.roots);
|
|
73
89
|
} else {
|
|
74
90
|
selectedNodeKeys.value = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-select.js","names":[],"sources":["../../../src/components/cascade/use-select.ts"],"sourcesContent":["import { Forest } from '@cat-kit/core'\nimport { createIncrease } from '@veltra/utils'\nimport {\n computed,\n nextTick,\n shallowRef,\n triggerRef,\n watch,\n type ComputedRef,\n type Ref,\n type ShallowRef\n} from 'vue'\n\nimport type {\n CascadeProps,\n CascadeEmits,\n CascadeNode,\n DropdownExposed,\n PanelItem\n} from '../../types'\n\ninterface SelectOptions {\n props: CascadeProps\n emit: CascadeEmits\n isUserActive: () => boolean\n forest: Ref<Forest<Record<string, unknown>, any>>\n dataMap: Ref<Map<string, CascadeNode>>\n dropdownRef: Ref<DropdownExposed | undefined>\n}\n\ninterface UseSelectReturned {\n displayedValue: ComputedRef<string | undefined>\n selectItem: (panelIndex: number, item: CascadeNode) => void\n selectedNodeKeys: ShallowRef<string[]>\n updateSingleValue: () => void\n initSingleSelect: () => void\n panelItemList: ShallowRef<PanelItem[]>\n getPanelItemList: (data?: CascadeNode[]) => void\n setPanelItem: (panelIndex: number, panelData?: CascadeNode[]) => void\n createPanelItem: (nodes: CascadeNode[]) => PanelItem\n}\n\nexport function useSelect(options: SelectOptions): UseSelectReturned {\n const { props, emit, dataMap, isUserActive, dropdownRef, forest } = options\n\n /** 选中的节点key */\n const selectedNodeKeys = shallowRef<string[]>([])\n\n
|
|
1
|
+
{"version":3,"file":"use-select.js","names":[],"sources":["../../../src/components/cascade/use-select.ts"],"sourcesContent":["import { Forest } from '@cat-kit/core'\nimport { createIncrease } from '@veltra/utils'\nimport {\n computed,\n nextTick,\n shallowRef,\n triggerRef,\n watch,\n type ComputedRef,\n type Ref,\n type ShallowRef\n} from 'vue'\n\nimport type {\n CascadeProps,\n CascadeEmits,\n CascadeNode,\n DropdownExposed,\n PanelItem\n} from '../../types'\n\ninterface SelectOptions {\n props: CascadeProps\n emit: CascadeEmits\n isUserActive: () => boolean\n forest: Ref<Forest<Record<string, unknown>, any>>\n dataMap: Ref<Map<string, CascadeNode>>\n dropdownRef: Ref<DropdownExposed | undefined>\n}\n\nfunction buildPathKeys(leaf: CascadeNode): string[] {\n const keys: string[] = []\n let node: CascadeNode | undefined = leaf\n while (node) {\n keys.unshift(node.value)\n node = node.parent\n }\n return keys\n}\n\ninterface UseSelectReturned {\n displayedValue: ComputedRef<string | undefined>\n selectItem: (panelIndex: number, item: CascadeNode) => void\n selectedNodeKeys: ShallowRef<string[]>\n updateSingleValue: () => void\n initSingleSelect: () => void\n panelItemList: ShallowRef<PanelItem[]>\n getPanelItemList: (data?: CascadeNode[]) => void\n setPanelItem: (panelIndex: number, panelData?: CascadeNode[]) => void\n createPanelItem: (nodes: CascadeNode[]) => PanelItem\n}\n\nexport function useSelect(options: SelectOptions): UseSelectReturned {\n const { props, emit, dataMap, isUserActive, dropdownRef, forest } = options\n\n /** 选中的节点key */\n const selectedNodeKeys = shallowRef<string[]>([])\n\n /** 面板数据 */\n const panelItemList = shallowRef<PanelItem[]>([])\n const uid = createIncrease()\n function createPanelItem(nodes: CascadeNode[]): PanelItem {\n return { key: uid(), nodes: nodes.filter((node) => node.visible) }\n }\n\n const displayedValue = computed(() => {\n const { modelValue, separator, showFullPath } = props\n if (!modelValue || typeof modelValue !== 'string') return ''\n\n if (showFullPath) {\n return modelValue\n .split(separator!)\n .map((v) => dataMap.value.get(v)?.label ?? v)\n .join(separator)\n }\n return dataMap.value.get(modelValue)?.label ?? modelValue\n })\n\n function getPanelItemList(data?: CascadeNode[]) {\n const _panelItemList: Array<PanelItem> = []\n if (!data?.length) return panelItemList\n _panelItemList.push(createPanelItem(data))\n\n selectedNodeKeys.value.slice(0, -1).forEach((key) => {\n const node = dataMap.value.get(key)\n node?.children?.length && _panelItemList.push(createPanelItem(node.children))\n })\n\n panelItemList.value = _panelItemList\n }\n\n function setPanelItem(panelIndex: number, panelData?: CascadeNode[]) {\n if (panelData?.length) {\n panelItemList.value[panelIndex + 1] = createPanelItem(panelData)\n panelItemList.value.splice(panelIndex + 2)\n } else {\n panelItemList.value.splice(panelIndex + 1)\n }\n\n triggerRef(panelItemList)\n }\n\n function updateSingleValue() {\n const { separator, showFullPath } = props\n const keys = selectedNodeKeys.value\n const leafKey = keys.length ? keys[keys.length - 1] : undefined\n const leafLabel = leafKey ? dataMap.value.get(leafKey)?.label : undefined\n\n const targetValue = showFullPath ? (keys.length ? keys.join(separator!) : undefined) : leafKey\n const targetLabel = showFullPath\n ? keys\n .map((key) => dataMap.value.get(key)?.label)\n .filter(Boolean)\n .join(separator!)\n : leafLabel\n\n const leafNode = leafKey ? dataMap.value.get(leafKey) : undefined\n\n emit('update:modelValue', targetValue)\n emit('update:label', targetLabel)\n emit('change', leafNode?.data as Record<string, any> | undefined)\n }\n\n /**\n * 单选选择\n *\n * @param panelIndex 面板索引\n * @param item 选中的节点\n */\n function selectItem(panelIndex: number, item: CascadeNode) {\n // 设置选中的节点\n selectedNodeKeys.value[panelIndex] = item.value\n selectedNodeKeys.value.splice(panelIndex + 1)\n triggerRef(selectedNodeKeys)\n\n // 展开子级面板\n setPanelItem(panelIndex, item.children)\n\n nextTick(() => {\n dropdownRef.value?.updateDropdown()\n })\n\n if (!item.children?.length && !props.multiple) {\n dropdownRef.value?.close()\n }\n }\n\n function initSingleSelect() {\n const { modelValue, separator, showFullPath } = props\n\n if (modelValue && typeof modelValue === 'string') {\n let keys: string[]\n if (showFullPath) {\n keys = modelValue.split(separator!)\n } else {\n const leaf = dataMap.value.get(modelValue)\n keys = leaf ? buildPathKeys(leaf) : [modelValue]\n }\n selectedNodeKeys.value = keys\n getPanelItemList(forest.value.roots)\n } else {\n selectedNodeKeys.value = []\n getPanelItemList(forest.value.roots)\n }\n }\n\n watch(\n [() => props.multiple, () => props.modelValue, forest],\n ([multiple]) => {\n if (multiple || isUserActive()) return\n initSingleSelect()\n },\n { immediate: true }\n )\n\n return {\n displayedValue,\n selectItem,\n selectedNodeKeys,\n updateSingleValue,\n initSingleSelect,\n panelItemList,\n getPanelItemList,\n setPanelItem,\n createPanelItem\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { computed, createElementBlock, defineComponent, normalizeClass, openBlock, renderSlot } from "vue";
|
|
2
2
|
import { bem } from "@veltra/utils";
|
|
3
3
|
//#region src/components/check-tag/check-tag.vue
|
|
4
|
-
const _sfc_main =
|
|
5
|
-
name: "
|
|
4
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
5
|
+
name: "UCheckTag",
|
|
6
6
|
__name: "check-tag",
|
|
7
7
|
props: {
|
|
8
8
|
modelValue: { type: Boolean },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-tag.js","names":[],"sources":["../../../src/components/check-tag/check-tag.vue"],"sourcesContent":["<template>\n <div :class=\"classList\" @click=\"handleChange\">\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { bem } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { CheckTagEmits, CheckTagProps } from '../../types'\n\ndefineOptions({ name: '
|
|
1
|
+
{"version":3,"file":"check-tag.js","names":[],"sources":["../../../src/components/check-tag/check-tag.vue"],"sourcesContent":["<template>\n <div :class=\"classList\" @click=\"handleChange\">\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { bem } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { CheckTagEmits, CheckTagProps } from '../../types'\n\ndefineOptions({ name: 'UCheckTag' })\n\nconst cls = bem('check-tag')\n\nconst props = withDefaults(defineProps<CheckTagProps>(), {})\n\nconst emits = defineEmits<CheckTagEmits>()\n\nconst classList = computed(() => {\n return [cls.b, bem.is('checked', props.checked)]\n})\n\nconst handleChange = () => {\n emits('update:modelValue', props.checked)\n}\n</script>\n"],"mappings":";;;;;;;;;;;;EAcA,MAAM,MAAM,IAAI,WAAW;EAE3B,MAAM,QAAQ;EAEd,MAAM,QAAQ;EAEd,MAAM,YAAY,eAAe;GAC/B,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,WAAW,MAAM,OAAO,CAAC;EACjD,CAAC;EAED,MAAM,qBAAqB;GACzB,MAAM,qBAAqB,MAAM,OAAO;EAC1C;;uBAzBE,mBAEM,OAAA;IAFA,OAAK,eAAE,UAAA,KAAS;IAAG,SAAO;OAC9B,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,CAAA"}
|
|
@@ -3,10 +3,10 @@ import { Fragment, computed, createBlock, createElementBlock, createTextVNode, d
|
|
|
3
3
|
import { useFormFallbackProps } from "@veltra/compositions";
|
|
4
4
|
import { FORM_EMPTY_CONTENT, bem, injectFormContext } from "@veltra/utils";
|
|
5
5
|
//#region src/components/checkbox/checkbox-button.vue
|
|
6
|
-
const _sfc_main =
|
|
7
|
-
name: "
|
|
6
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
7
|
+
name: "UCheckboxButton",
|
|
8
8
|
__name: "checkbox-button",
|
|
9
|
-
props:
|
|
9
|
+
props: /*@__PURE__*/ mergeModels({
|
|
10
10
|
modelValue: { type: Boolean },
|
|
11
11
|
round: {
|
|
12
12
|
type: Boolean,
|
|
@@ -31,7 +31,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
31
31
|
"modelValue": { type: Boolean },
|
|
32
32
|
"modelModifiers": {}
|
|
33
33
|
}),
|
|
34
|
-
emits:
|
|
34
|
+
emits: /*@__PURE__*/ mergeModels(["update:modelValue", "change"], ["update:modelValue"]),
|
|
35
35
|
setup(__props, { emit: __emit }) {
|
|
36
36
|
const props = __props;
|
|
37
37
|
const emit = __emit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-button.js","names":[],"sources":["../../../src/components/checkbox/checkbox-button.vue"],"sourcesContent":["<template>\n <div v-if=\"!readonly\" :class=\"className\" @click=\"handleInput\">\n <slot />\n </div>\n\n <u-tag v-else-if=\"checked !== undefined\" :type=\"checked ? 'success' : 'danger'\">\n {{ checked ? '是' : '否' }}\n </u-tag>\n\n <template v-else>\n {{ FORM_EMPTY_CONTENT }}\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { bem, FORM_EMPTY_CONTENT } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { CheckboxButtonProps, CheckboxButtonEmits } from '../../types'\nimport { UTag } from '../tag'\n\ndefineOptions({ name: '
|
|
1
|
+
{"version":3,"file":"checkbox-button.js","names":[],"sources":["../../../src/components/checkbox/checkbox-button.vue"],"sourcesContent":["<template>\n <div v-if=\"!readonly\" :class=\"className\" @click=\"handleInput\">\n <slot />\n </div>\n\n <u-tag v-else-if=\"checked !== undefined\" :type=\"checked ? 'success' : 'danger'\">\n {{ checked ? '是' : '否' }}\n </u-tag>\n\n <template v-else>\n {{ FORM_EMPTY_CONTENT }}\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFormFallbackProps } from '@veltra/compositions'\nimport { bem, FORM_EMPTY_CONTENT } from '@veltra/utils'\nimport { injectFormContext } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { CheckboxButtonProps, CheckboxButtonEmits } from '../../types'\nimport { UTag } from '../tag'\n\ndefineOptions({ name: 'UCheckboxButton' })\n\nconst props = withDefaults(defineProps<CheckboxButtonProps>(), {\n disabled: undefined,\n readonly: undefined,\n type: 'primary',\n round: false\n})\n\nconst emit = defineEmits<CheckboxButtonEmits>()\n\nconst slot = defineSlots<{ default(): any }>()\n\nconst cls = bem('checkbox-button')\n\nconst checked = defineModel<boolean>()\n\nconst { formProps } = injectFormContext()\n\nconst { size, disabled, readonly } = useFormFallbackProps([formProps ?? {}, props], {\n size: 'default',\n disabled: false,\n readonly: false\n})\n\nconst className = computed(() => {\n return [\n cls.b,\n cls.m(size.value),\n bem.is(props.type),\n bem.is('round', props.round),\n bem.is('disabled', disabled.value),\n bem.is('checked', checked.value)\n ]\n})\n\nconst handleInput = () => {\n checked.value = !checked.value\n emit('change', !!checked.value)\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBA,MAAM,QAAQ;EAOd,MAAM,OAAO;EAEA,SAAA;EAEb,MAAM,MAAM,IAAI,iBAAiB;EAEjC,MAAM,UAAU,SAAoB,SAAA,YAAC;EAErC,MAAM,EAAE,cAAc,kBAAkB;EAExC,MAAM,EAAE,MAAM,UAAU,aAAa,qBAAqB,CAAC,aAAa,CAAC,GAAG,KAAK,GAAG;GAClF,MAAM;GACN,UAAU;GACV,UAAU;EACZ,CAAC;EAED,MAAM,YAAY,eAAe;GAC/B,OAAO;IACL,IAAI;IACJ,IAAI,EAAE,KAAK,KAAK;IAChB,IAAI,GAAG,MAAM,IAAI;IACjB,IAAI,GAAG,SAAS,MAAM,KAAK;IAC3B,IAAI,GAAG,YAAY,SAAS,KAAK;IACjC,IAAI,GAAG,WAAW,QAAQ,KAAK;GACjC;EACF,CAAC;EAED,MAAM,oBAAoB;GACxB,QAAQ,QAAQ,CAAC,QAAQ;GACzB,KAAK,UAAU,CAAC,CAAC,QAAQ,KAAK;EAChC;;WA7Dc,MAAA,QAAA,KAAA,UAAA,GAAZ,mBAEM,OAAA;;IAFiB,OAAK,eAAE,UAAA,KAAS;IAAG,SAAO;OAC/C,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,CAAA,KAGQ,QAAA,UAAY,KAAA,KAAA,UAAA,GAA9B,YAEQ,MAAA,WAAA,GAAA;;IAFkC,MAAM,QAAA,QAAO,YAAA;;2BAC5B,CAAA,gBAAA,gBAAtB,QAAA,QAAO,MAAA,GAAA,GAAA,CAAA,CAAA,CAAA;;oCAGZ,mBAEW,UAAA,EAAA,KAAA,EAAA,GAAA,CAAA,gBAAA,gBADN,MAAA,kBAAA,CAAkB,GAAA,CAAA,CAAA,GAAA,EAAA"}
|
|
@@ -8,10 +8,10 @@ const _hoisted_1 = {
|
|
|
8
8
|
fill: "currentColor"
|
|
9
9
|
};
|
|
10
10
|
const _hoisted_2 = ["checked", "disabled"];
|
|
11
|
-
const _sfc_main =
|
|
12
|
-
name: "
|
|
11
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
12
|
+
name: "UCheckbox",
|
|
13
13
|
__name: "checkbox",
|
|
14
|
-
props:
|
|
14
|
+
props: /*@__PURE__*/ mergeModels({
|
|
15
15
|
indeterminate: { type: Boolean },
|
|
16
16
|
modelValue: { type: Boolean },
|
|
17
17
|
tips: {},
|
|
@@ -32,7 +32,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
32
32
|
"modelValue": { type: Boolean },
|
|
33
33
|
"modelModifiers": {}
|
|
34
34
|
}),
|
|
35
|
-
emits:
|
|
35
|
+
emits: /*@__PURE__*/ mergeModels(["update:modelValue", "change"], ["update:modelValue"]),
|
|
36
36
|
setup(__props, { emit: __emit }) {
|
|
37
37
|
const props = __props;
|
|
38
38
|
const emit = __emit;
|