@touchvue/ui 1.0.0-beta.51 → 1.0.0-beta.52
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/README.md +70 -70
- package/es/components/box/index.d.ts +1 -1
- package/es/components/breadcrumb/index.d.ts +1 -1
- package/es/components/button/index.d.ts +1 -1
- package/es/components/button/src/button.d.ts +1 -1
- package/es/components/calendar/index.d.ts +1 -1
- package/es/components/cascader/index.d.ts +1 -1
- package/es/components/center-scroll/index.d.ts +1 -1
- package/es/components/checkbox/index.d.ts +1 -1
- package/es/components/checkboxes/index.d.ts +1 -1
- package/es/components/collapse/index.d.ts +1 -1
- package/es/components/datepicker/index.d.ts +1 -1
- package/es/components/daterange/index.d.ts +1 -1
- package/es/components/dialog/index.d.ts +1 -1
- package/es/components/divider/index.d.ts +1 -1
- package/es/components/ellipsis/index.d.ts +1 -1
- package/es/components/export/index.d.ts +1 -1
- package/es/components/export/src/export.vue.d.ts +1 -1
- package/es/components/fix/index.d.ts +1 -1
- package/es/components/float/index.d.ts +1 -1
- package/es/components/form/index.d.ts +1 -1
- package/es/components/form/src/form.vue.d.ts +0 -3
- package/es/components/gap/index.d.ts +1 -1
- package/es/components/grid/index.d.ts +1 -1
- package/es/components/guider/index.d.ts +1 -1
- package/es/components/header/index.d.ts +1 -1
- package/es/components/icon/index.d.ts +1 -1
- package/es/components/import/index.d.ts +1 -1
- package/es/components/index.d.ts +4 -2
- package/es/components/input/index.d.ts +1 -1
- package/es/components/input/src/input.vue.d.ts +1 -10
- package/es/components/msg/index.d.ts +1 -1
- package/es/components/padding/index.d.ts +1 -1
- package/es/components/page/index.d.ts +1 -1
- package/es/components/param/index.d.ts +7 -7
- package/es/components/param/src/Param.vue.d.ts +3 -3
- package/es/components/pic/index.d.ts +1 -1
- package/es/components/progress/index.d.ts +1 -1
- package/es/components/range/index.d.ts +1 -1
- package/es/components/rate/index.d.ts +4 -0
- package/es/components/rate/src/instance.d.ts +2 -0
- package/es/components/rate/src/rate.vue.d.ts +77 -0
- package/es/components/scroll/index.d.ts +2 -2
- package/es/components/segment/index.d.ts +1 -1
- package/es/components/select/index.d.ts +1 -1
- package/es/components/select/src/select.d.ts +0 -8
- package/es/components/select/src/select.vue.d.ts +0 -9
- package/es/components/slide/index.d.ts +1 -1
- package/es/components/step/index.d.ts +1 -1
- package/es/components/switch/index.d.ts +1 -1
- package/es/components/switch/src/switch.vue.d.ts +3 -3
- package/es/components/tab/index.d.ts +1 -1
- package/es/components/tab/src/tab.d.ts +1 -1
- package/es/components/tab/src/tab.vue.d.ts +17 -4
- package/es/components/table/index.d.ts +1 -1
- package/es/components/tag/index.d.ts +1 -1
- package/es/components/text/index.d.ts +1 -1
- package/es/components/timeline/src/timeline.vue.d.ts +4 -4
- package/es/components/tip/index.d.ts +1 -1
- package/es/components/tooltip/index.d.ts +1 -1
- package/es/components/transfer/index.d.ts +1 -1
- package/es/components/tree/index.d.ts +1 -1
- package/es/components/upload/index.d.ts +1 -1
- package/es/index.d.mjs +1 -0
- package/es/index.d.mjs.map +1 -1
- package/es/index.mjs +1 -0
- package/es/index.mjs.map +1 -1
- package/es/node_modules/.pnpm/{dompurify@3.3.1 → dompurify@3.2.6}/node_modules/dompurify/dist/purify.es.mjs +25 -65
- package/es/node_modules/.pnpm/dompurify@3.2.6/node_modules/dompurify/dist/purify.es.mjs.map +1 -0
- package/es/packages/components/box/index.mjs.map +1 -1
- package/es/packages/components/box/src/box.mjs.map +1 -1
- package/es/packages/components/box/src/box.vue2.mjs +1 -1
- package/es/packages/components/box/src/box.vue2.mjs.map +1 -1
- package/es/packages/components/breadcrumb/index.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb-item.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb-item.vue.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb-item.vue2.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue2.mjs.map +1 -1
- package/es/packages/components/button/index.d.mjs.map +1 -1
- package/es/packages/components/button/index.mjs.map +1 -1
- package/es/packages/components/button/src/button.mjs.map +1 -1
- package/es/packages/components/button/src/button.vue2.mjs +9 -9
- package/es/packages/components/button/src/button.vue2.mjs.map +1 -1
- package/es/packages/components/calendar/index.mjs.map +1 -1
- package/es/packages/components/calendar/src/calendar.mjs.map +1 -1
- package/es/packages/components/calendar/src/calendar.vue2.mjs +1 -1
- package/es/packages/components/calendar/src/calendar.vue2.mjs.map +1 -1
- package/es/packages/components/cascader/index.mjs.map +1 -1
- package/es/packages/components/cascader/src/cascader-item.vue2.mjs +1 -1
- package/es/packages/components/cascader/src/cascader-item.vue2.mjs.map +1 -1
- package/es/packages/components/cascader/src/cascader.vue2.mjs +4 -4
- package/es/packages/components/cascader/src/cascader.vue2.mjs.map +1 -1
- package/es/packages/components/center-scroll/index.d.mjs.map +1 -1
- package/es/packages/components/center-scroll/index.mjs.map +1 -1
- package/es/packages/components/center-scroll/src/CenterScroll.vue2.mjs.map +1 -1
- package/es/packages/components/center-scroll/src/center-scroll.mjs.map +1 -1
- package/es/packages/components/checkbox/index.mjs.map +1 -1
- package/es/packages/components/checkbox/src/Checkbox.vue2.mjs +3 -3
- package/es/packages/components/checkbox/src/Checkbox.vue2.mjs.map +1 -1
- package/es/packages/components/checkboxes/index.mjs.map +1 -1
- package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs +2 -2
- package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs.map +1 -1
- package/es/packages/components/collapse/index.mjs.map +1 -1
- package/es/packages/components/collapse/src/collapse-item.vue2.mjs +3 -3
- package/es/packages/components/collapse/src/collapse-item.vue2.mjs.map +1 -1
- package/es/packages/components/collapse/src/collapse.vue2.mjs +1 -1
- package/es/packages/components/collapse/src/collapse.vue2.mjs.map +1 -1
- package/es/packages/components/datepicker/index.mjs.map +1 -1
- package/es/packages/components/datepicker/src/DatePicker.vue2.mjs +2 -3
- package/es/packages/components/datepicker/src/DatePicker.vue2.mjs.map +1 -1
- package/es/packages/components/datepicker/src/Picker.vue2.mjs.map +1 -1
- package/es/packages/components/datepicker/src/date-picker.mjs.map +1 -1
- package/es/packages/components/datepicker/src/use-date-picker.mjs.map +1 -1
- package/es/packages/components/daterange/index.mjs.map +1 -1
- package/es/packages/components/daterange/src/date-range.vue2.mjs +30 -18
- package/es/packages/components/daterange/src/date-range.vue2.mjs.map +1 -1
- package/es/packages/components/dialog/index.d.mjs.map +1 -1
- package/es/packages/components/dialog/index.mjs.map +1 -1
- package/es/packages/components/dialog/src/Dialog.vue2.mjs.map +1 -1
- package/es/packages/components/dialog/src/dialog.mjs.map +1 -1
- package/es/packages/components/divider/index.mjs.map +1 -1
- package/es/packages/components/divider/src/divider.vue2.mjs +1 -1
- package/es/packages/components/divider/src/divider.vue2.mjs.map +1 -1
- package/es/packages/components/ellipsis/index.d.mjs.map +1 -1
- package/es/packages/components/ellipsis/index.mjs.map +1 -1
- package/es/packages/components/ellipsis/src/Ellipsis.vue2.mjs.map +1 -1
- package/es/packages/components/ellipsis/src/ellipsis.mjs.map +1 -1
- package/es/packages/components/export/index.mjs.map +1 -1
- package/es/packages/components/export/src/export.vue2.mjs +1 -1
- package/es/packages/components/export/src/export.vue2.mjs.map +1 -1
- package/es/packages/components/fix/index.d.mjs.map +1 -1
- package/es/packages/components/fix/index.mjs.map +1 -1
- package/es/packages/components/fix/src/Fix.vue2.mjs.map +1 -1
- package/es/packages/components/fix/src/fix.mjs.map +1 -1
- package/es/packages/components/float/index.d.mjs.map +1 -1
- package/es/packages/components/float/index.mjs.map +1 -1
- package/es/packages/components/float/src/Float.vue2.mjs.map +1 -1
- package/es/packages/components/float/src/float.mjs.map +1 -1
- package/es/packages/components/form/index.mjs.map +1 -1
- package/es/packages/components/form/src/form-item.vue2.mjs.map +1 -1
- package/es/packages/components/form/src/form.vue2.mjs +1 -2
- package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
- package/es/packages/components/gap/index.mjs.map +1 -1
- package/es/packages/components/gap/src/gap.vue2.mjs.map +1 -1
- package/es/packages/components/grid/index.d.mjs.map +1 -1
- package/es/packages/components/grid/index.mjs.map +1 -1
- package/es/packages/components/grid/src/grid-item.vue2.mjs +1 -1
- package/es/packages/components/grid/src/grid-item.vue2.mjs.map +1 -1
- package/es/packages/components/grid/src/grid.vue2.mjs +1 -1
- package/es/packages/components/grid/src/grid.vue2.mjs.map +1 -1
- package/es/packages/components/guider/index.d.mjs.map +1 -1
- package/es/packages/components/guider/index.mjs.map +1 -1
- package/es/packages/components/guider/src/guider.vue2.mjs +1 -1
- package/es/packages/components/guider/src/guider.vue2.mjs.map +1 -1
- package/es/packages/components/header/index.mjs.map +1 -1
- package/es/packages/components/header/src/header.vue2.mjs +1 -1
- package/es/packages/components/header/src/header.vue2.mjs.map +1 -1
- package/es/packages/components/icon/index.d.mjs.map +1 -1
- package/es/packages/components/icon/index.mjs.map +1 -1
- package/es/packages/components/icon/src/icon.vue2.mjs +1 -1
- package/es/packages/components/icon/src/icon.vue2.mjs.map +1 -1
- package/es/packages/components/import/index.mjs.map +1 -1
- package/es/packages/components/import/src/import.vue2.mjs +2 -2
- package/es/packages/components/import/src/import.vue2.mjs.map +1 -1
- package/es/packages/components/index.d.mjs +1 -0
- package/es/packages/components/index.d.mjs.map +1 -1
- package/es/packages/components/index.mjs +1 -0
- package/es/packages/components/index.mjs.map +1 -1
- package/es/packages/components/input/index.mjs.map +1 -1
- package/es/packages/components/input/src/input.vue2.mjs +63 -62
- package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
- package/es/packages/components/msg/index.d.mjs.map +1 -1
- package/es/packages/components/msg/index.mjs.map +1 -1
- package/es/packages/components/msg/src/msg.vue2.mjs +15 -15
- package/es/packages/components/msg/src/msg.vue2.mjs.map +1 -1
- package/es/packages/components/padding/index.mjs.map +1 -1
- package/es/packages/components/padding/src/padding.vue2.mjs +1 -1
- package/es/packages/components/padding/src/padding.vue2.mjs.map +1 -1
- package/es/packages/components/page/index.mjs.map +1 -1
- package/es/packages/components/page/src/page.vue2.mjs +6 -3
- package/es/packages/components/page/src/page.vue2.mjs.map +1 -1
- package/es/packages/components/param/index.d.mjs.map +1 -1
- package/es/packages/components/param/index.mjs.map +1 -1
- package/es/packages/components/param/src/Param.vue2.mjs.map +1 -1
- package/es/packages/components/param/src/ParamItem.vue.mjs.map +1 -1
- package/es/packages/components/param/src/param-item.mjs.map +1 -1
- package/es/packages/components/param/src/param.mjs.map +1 -1
- package/es/packages/components/pic/index.d.mjs.map +1 -1
- package/es/packages/components/pic/index.mjs.map +1 -1
- package/es/packages/components/pic/src/Pic.vue2.mjs.map +1 -1
- package/es/packages/components/pic/src/PicViewer.vue2.mjs +1 -1
- package/es/packages/components/pic/src/PicViewer.vue2.mjs.map +1 -1
- package/es/packages/components/pic/src/pic.mjs.map +1 -1
- package/es/packages/components/progress/index.d.mjs.map +1 -1
- package/es/packages/components/progress/index.mjs.map +1 -1
- package/es/packages/components/progress/src/Progress.vue.mjs.map +1 -1
- package/es/packages/components/progress/src/Progress.vue2.mjs.map +1 -1
- package/es/packages/components/progress/src/progress.mjs.map +1 -1
- package/es/packages/components/range/index.mjs.map +1 -1
- package/es/packages/components/range/src/range.vue2.mjs +4 -4
- package/es/packages/components/range/src/range.vue2.mjs.map +1 -1
- package/es/packages/components/rate/index.d.mjs +2 -0
- package/es/packages/components/rate/index.d.mjs.map +1 -0
- package/es/packages/components/rate/index.mjs +7 -0
- package/es/packages/components/rate/index.mjs.map +1 -0
- package/es/packages/components/rate/src/instance.d.mjs +2 -0
- package/es/packages/components/rate/src/instance.d.mjs.map +1 -0
- package/es/packages/components/rate/src/instance.mjs +2 -0
- package/es/packages/components/rate/src/instance.mjs.map +1 -0
- package/es/packages/components/rate/src/rate.vue.mjs +7 -0
- package/es/packages/components/rate/src/rate.vue.mjs.map +1 -0
- package/es/packages/components/rate/src/rate.vue2.mjs +153 -0
- package/es/packages/components/rate/src/rate.vue2.mjs.map +1 -0
- package/es/packages/components/scroll/index.d.mjs.map +1 -1
- package/es/packages/components/scroll/index.mjs.map +1 -1
- package/es/packages/components/scroll/src/Scroll.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/ScrollPoint.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/scroll-point.mjs.map +1 -1
- package/es/packages/components/scroll/src/scroll.mjs.map +1 -1
- package/es/packages/components/segment/index.mjs.map +1 -1
- package/es/packages/components/segment/src/segment.vue.mjs +1 -4
- package/es/packages/components/segment/src/segment.vue.mjs.map +1 -1
- package/es/packages/components/select/index.mjs.map +1 -1
- package/es/packages/components/select/src/hooks/use-select-class-style.mjs +1 -1
- package/es/packages/components/select/src/hooks/use-select-class-style.mjs.map +1 -1
- package/es/packages/components/select/src/hooks/use-select-option-data.mjs.map +1 -1
- package/es/packages/components/select/src/select.mjs +0 -8
- package/es/packages/components/select/src/select.mjs.map +1 -1
- package/es/packages/components/select/src/select.vue2.mjs +11 -2
- package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
- package/es/packages/components/slide/index.mjs.map +1 -1
- package/es/packages/components/slide/src/slide.vue2.mjs +1 -1
- package/es/packages/components/slide/src/slide.vue2.mjs.map +1 -1
- package/es/packages/components/step/index.mjs.map +1 -1
- package/es/packages/components/step/src/step.vue2.mjs.map +1 -1
- package/es/packages/components/switch/index.mjs.map +1 -1
- package/es/packages/components/switch/src/switch.vue2.mjs +4 -4
- package/es/packages/components/switch/src/switch.vue2.mjs.map +1 -1
- package/es/packages/components/tab/index.mjs.map +1 -1
- package/es/packages/components/tab/src/tab-item.vue2.mjs +1 -1
- package/es/packages/components/tab/src/tab-item.vue2.mjs.map +1 -1
- package/es/packages/components/tab/src/tab.vue2.mjs +384 -53
- package/es/packages/components/tab/src/tab.vue2.mjs.map +1 -1
- package/es/packages/components/table/index.mjs.map +1 -1
- package/es/packages/components/table/src/table-body.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table-config.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table-head.vue2.mjs +1 -1
- package/es/packages/components/table/src/table-head.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table.vue2.mjs +20 -20
- package/es/packages/components/table/src/table.vue2.mjs.map +1 -1
- package/es/packages/components/tag/index.d.mjs.map +1 -1
- package/es/packages/components/tag/index.mjs.map +1 -1
- package/es/packages/components/tag/src/tag.vue2.mjs +4 -4
- package/es/packages/components/tag/src/tag.vue2.mjs.map +1 -1
- package/es/packages/components/text/index.mjs.map +1 -1
- package/es/packages/components/text/src/text.vue2.mjs +4 -4
- package/es/packages/components/text/src/text.vue2.mjs.map +1 -1
- package/es/packages/components/timeline/index.d.mjs.map +1 -1
- package/es/packages/components/timeline/index.mjs.map +1 -1
- package/es/packages/components/timeline/src/timeline.vue.mjs.map +1 -1
- package/es/packages/components/timeline/src/timeline.vue2.mjs.map +1 -1
- package/es/packages/components/tip/index.d.mjs.map +1 -1
- package/es/packages/components/tip/index.mjs.map +1 -1
- package/es/packages/components/tip/src/tip.mjs.map +1 -1
- package/es/packages/components/tip/src/tip.vue2.mjs.map +1 -1
- package/es/packages/components/tooltip/index.mjs.map +1 -1
- package/es/packages/components/tooltip/src/tooltip.mjs.map +1 -1
- package/es/packages/components/tooltip/src/tooltip.vue2.mjs.map +1 -1
- package/es/packages/components/transfer/index.mjs.map +1 -1
- package/es/packages/components/transfer/src/transfer.vue2.mjs +9 -9
- package/es/packages/components/transfer/src/transfer.vue2.mjs.map +1 -1
- package/es/packages/components/tree/index.mjs.map +1 -1
- package/es/packages/components/tree/src/tree-item.vue2.mjs +26 -26
- package/es/packages/components/tree/src/tree-item.vue2.mjs.map +1 -1
- package/es/packages/components/tree/src/tree.vue2.mjs +4 -4
- package/es/packages/components/tree/src/tree.vue2.mjs.map +1 -1
- package/es/packages/components/upload/index.mjs.map +1 -1
- package/es/packages/components/upload/src/upload.vue2.mjs +14 -14
- package/es/packages/components/upload/src/upload.vue2.mjs.map +1 -1
- package/es/packages/directives/align/index.d.mjs.map +1 -1
- package/es/packages/directives/align/index.mjs.map +1 -1
- package/es/packages/directives/align/src/align.d.mjs.map +1 -1
- package/es/packages/directives/align/src/align.mjs.map +1 -1
- package/es/packages/directives/color/index.d.mjs.map +1 -1
- package/es/packages/directives/color/index.mjs.map +1 -1
- package/es/packages/directives/color/src/color.d.mjs.map +1 -1
- package/es/packages/directives/color/src/color.mjs.map +1 -1
- package/es/packages/directives/dis/index.d.mjs.map +1 -1
- package/es/packages/directives/dis/index.mjs.map +1 -1
- package/es/packages/directives/dis/src/dis.d.mjs.map +1 -1
- package/es/packages/directives/dis/src/dis.mjs.map +1 -1
- package/es/packages/directives/hide/src/hide.mjs.map +1 -1
- package/es/packages/directives/index.d.mjs.map +1 -1
- package/es/packages/directives/index.mjs.map +1 -1
- package/es/packages/directives/loading/index.d.mjs.map +1 -1
- package/es/packages/directives/loading/index.mjs.map +1 -1
- package/es/packages/directives/loading/src/loading.d.mjs.map +1 -1
- package/es/packages/directives/loading/src/loading.mjs.map +1 -1
- package/es/packages/directives/longtap/src/longtap.mjs.map +1 -1
- package/es/packages/directives/size/index.d.mjs.map +1 -1
- package/es/packages/directives/size/index.mjs.map +1 -1
- package/es/packages/directives/size/src/size.d.mjs.map +1 -1
- package/es/packages/directives/size/src/size.mjs.map +1 -1
- package/es/packages/directives/tip/index.d.mjs.map +1 -1
- package/es/packages/directives/tip/index.mjs.map +1 -1
- package/es/packages/directives/tip/src/tip.d.mjs.map +1 -1
- package/es/packages/directives/tip/src/tip.mjs.map +1 -1
- package/es/packages/hooks/useDevice.mjs.map +1 -1
- package/es/packages/hooks/useFormItem.mjs.map +1 -1
- package/es/packages/hooks/useSetClass.mjs.map +1 -1
- package/es/packages/hooks/useWidthStyle.mjs.map +1 -1
- package/es/packages/locale/format.mjs.map +1 -1
- package/es/packages/locale/index.d.mjs.map +1 -1
- package/es/packages/locale/index.mjs.map +1 -1
- package/es/packages/locale/lang/en-US.mjs.map +1 -1
- package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
- package/es/packages/resolver/resolver.mjs.map +1 -1
- package/es/packages/utils/ajax.mjs.map +1 -1
- package/es/packages/utils/beforeChange.mjs.map +1 -1
- package/es/packages/utils/compare.d.mjs.map +1 -1
- package/es/packages/utils/compare.mjs.map +1 -1
- package/es/packages/utils/config.mjs.map +1 -1
- package/es/packages/utils/date.mjs.map +1 -1
- package/es/packages/utils/disabledArea.d.mjs.map +1 -1
- package/es/packages/utils/disabledArea.mjs +2 -2
- package/es/packages/utils/disabledArea.mjs.map +1 -1
- package/es/packages/utils/dom.mjs.map +1 -1
- package/es/packages/utils/fileAjax.mjs.map +1 -1
- package/es/packages/utils/isModified.d.mjs.map +1 -1
- package/es/packages/utils/isModified.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/JSEncrypt.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/JSEncryptRSAKey.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/asn1js/asn1.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/asn1js/base64.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/asn1js/hex.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/asn1js/int10.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/asn1js/oids.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/base64.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/jsbn.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/prng4.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/rng.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/rsa.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsbn/util.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsrsasign/asn1-1.0.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/jselib/jsrsasign/yahoo.mjs.map +1 -1
- package/es/packages/utils/jsencrypt/util.mjs.map +1 -1
- package/es/packages/utils/md5.mjs.map +1 -1
- package/es/packages/utils/print.mjs +1 -1
- package/es/packages/utils/print.mjs.map +1 -1
- package/es/packages/utils/ratio.mjs.map +1 -1
- package/es/packages/utils/sign.mjs.map +1 -1
- package/es/packages/utils/theme.mjs.map +1 -1
- package/es/packages/utils/types.mjs.map +1 -1
- package/es/packages/utils/util.mjs.map +1 -1
- package/es/packages/utils/uuid.mjs.map +1 -1
- package/es/packages/utils/validate.mjs +18 -11
- package/es/packages/utils/validate.mjs.map +1 -1
- package/es/ui/index.d.ts +5 -5
- package/global.d.ts +1 -0
- package/lib/components/box/index.d.ts +1 -1
- package/lib/components/breadcrumb/index.d.ts +1 -1
- package/lib/components/button/index.d.ts +1 -1
- package/lib/components/button/src/button.d.ts +1 -1
- package/lib/components/calendar/index.d.ts +1 -1
- package/lib/components/cascader/index.d.ts +1 -1
- package/lib/components/center-scroll/index.d.ts +1 -1
- package/lib/components/checkbox/index.d.ts +1 -1
- package/lib/components/checkboxes/index.d.ts +1 -1
- package/lib/components/collapse/index.d.ts +1 -1
- package/lib/components/datepicker/index.d.ts +1 -1
- package/lib/components/daterange/index.d.ts +1 -1
- package/lib/components/dialog/index.d.ts +1 -1
- package/lib/components/divider/index.d.ts +1 -1
- package/lib/components/ellipsis/index.d.ts +1 -1
- package/lib/components/export/index.d.ts +1 -1
- package/lib/components/export/src/export.vue.d.ts +1 -1
- package/lib/components/fix/index.d.ts +1 -1
- package/lib/components/float/index.d.ts +1 -1
- package/lib/components/form/index.d.ts +1 -1
- package/lib/components/form/src/form.vue.d.ts +0 -3
- package/lib/components/gap/index.d.ts +1 -1
- package/lib/components/grid/index.d.ts +1 -1
- package/lib/components/guider/index.d.ts +1 -1
- package/lib/components/header/index.d.ts +1 -1
- package/lib/components/icon/index.d.ts +1 -1
- package/lib/components/import/index.d.ts +1 -1
- package/lib/components/index.d.ts +4 -2
- package/lib/components/input/index.d.ts +1 -1
- package/lib/components/input/src/input.vue.d.ts +1 -10
- package/lib/components/msg/index.d.ts +1 -1
- package/lib/components/padding/index.d.ts +1 -1
- package/lib/components/page/index.d.ts +1 -1
- package/lib/components/param/index.d.ts +7 -7
- package/lib/components/param/src/Param.vue.d.ts +3 -3
- package/lib/components/pic/index.d.ts +1 -1
- package/lib/components/progress/index.d.ts +1 -1
- package/lib/components/range/index.d.ts +1 -1
- package/lib/components/rate/index.d.ts +4 -0
- package/lib/components/rate/src/instance.d.ts +2 -0
- package/lib/components/rate/src/rate.vue.d.ts +77 -0
- package/lib/components/scroll/index.d.ts +2 -2
- package/lib/components/segment/index.d.ts +1 -1
- package/lib/components/select/index.d.ts +1 -1
- package/lib/components/select/src/select.d.ts +0 -8
- package/lib/components/select/src/select.vue.d.ts +0 -9
- package/lib/components/slide/index.d.ts +1 -1
- package/lib/components/step/index.d.ts +1 -1
- package/lib/components/switch/index.d.ts +1 -1
- package/lib/components/switch/src/switch.vue.d.ts +3 -3
- package/lib/components/tab/index.d.ts +1 -1
- package/lib/components/tab/src/tab.d.ts +1 -1
- package/lib/components/tab/src/tab.vue.d.ts +17 -4
- package/lib/components/table/index.d.ts +1 -1
- package/lib/components/tag/index.d.ts +1 -1
- package/lib/components/text/index.d.ts +1 -1
- package/lib/components/timeline/src/timeline.vue.d.ts +4 -4
- package/lib/components/tip/index.d.ts +1 -1
- package/lib/components/tooltip/index.d.ts +1 -1
- package/lib/components/transfer/index.d.ts +1 -1
- package/lib/components/tree/index.d.ts +1 -1
- package/lib/components/upload/index.d.ts +1 -1
- package/lib/index.d.js +8 -6
- package/lib/index.d.js.map +1 -1
- package/lib/index.js +13 -11
- package/lib/index.js.map +1 -1
- package/lib/node_modules/.pnpm/{dompurify@3.3.1 → dompurify@3.2.6}/node_modules/dompurify/dist/purify.es.js +25 -65
- package/lib/node_modules/.pnpm/dompurify@3.2.6/node_modules/dompurify/dist/purify.es.js.map +1 -0
- package/lib/packages/components/box/index.js.map +1 -1
- package/lib/packages/components/box/src/box.js.map +1 -1
- package/lib/packages/components/box/src/box.vue2.js +1 -1
- package/lib/packages/components/box/src/box.vue2.js.map +1 -1
- package/lib/packages/components/breadcrumb/index.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb-item.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb-item.vue.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb-item.vue2.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue2.js.map +1 -1
- package/lib/packages/components/button/index.d.js.map +1 -1
- package/lib/packages/components/button/index.js.map +1 -1
- package/lib/packages/components/button/src/button.js.map +1 -1
- package/lib/packages/components/button/src/button.vue2.js +9 -9
- package/lib/packages/components/button/src/button.vue2.js.map +1 -1
- package/lib/packages/components/calendar/index.js.map +1 -1
- package/lib/packages/components/calendar/src/calendar.js.map +1 -1
- package/lib/packages/components/calendar/src/calendar.vue2.js +1 -1
- package/lib/packages/components/calendar/src/calendar.vue2.js.map +1 -1
- package/lib/packages/components/cascader/index.js.map +1 -1
- package/lib/packages/components/cascader/src/cascader-item.vue2.js +1 -1
- package/lib/packages/components/cascader/src/cascader-item.vue2.js.map +1 -1
- package/lib/packages/components/cascader/src/cascader.vue2.js +4 -4
- package/lib/packages/components/cascader/src/cascader.vue2.js.map +1 -1
- package/lib/packages/components/center-scroll/index.d.js.map +1 -1
- package/lib/packages/components/center-scroll/index.js.map +1 -1
- package/lib/packages/components/center-scroll/src/CenterScroll.vue2.js.map +1 -1
- package/lib/packages/components/center-scroll/src/center-scroll.js.map +1 -1
- package/lib/packages/components/checkbox/index.js.map +1 -1
- package/lib/packages/components/checkbox/src/Checkbox.vue2.js +3 -3
- package/lib/packages/components/checkbox/src/Checkbox.vue2.js.map +1 -1
- package/lib/packages/components/checkboxes/index.js.map +1 -1
- package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js +2 -2
- package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js.map +1 -1
- package/lib/packages/components/collapse/index.js.map +1 -1
- package/lib/packages/components/collapse/src/collapse-item.vue2.js +3 -3
- package/lib/packages/components/collapse/src/collapse-item.vue2.js.map +1 -1
- package/lib/packages/components/collapse/src/collapse.vue2.js +1 -1
- package/lib/packages/components/collapse/src/collapse.vue2.js.map +1 -1
- package/lib/packages/components/datepicker/index.js.map +1 -1
- package/lib/packages/components/datepicker/src/DatePicker.vue2.js +2 -3
- package/lib/packages/components/datepicker/src/DatePicker.vue2.js.map +1 -1
- package/lib/packages/components/datepicker/src/Picker.vue2.js.map +1 -1
- package/lib/packages/components/datepicker/src/date-picker.js.map +1 -1
- package/lib/packages/components/datepicker/src/use-date-picker.js.map +1 -1
- package/lib/packages/components/daterange/index.js.map +1 -1
- package/lib/packages/components/daterange/src/date-range.vue2.js +30 -18
- package/lib/packages/components/daterange/src/date-range.vue2.js.map +1 -1
- package/lib/packages/components/dialog/index.d.js.map +1 -1
- package/lib/packages/components/dialog/index.js.map +1 -1
- package/lib/packages/components/dialog/src/Dialog.vue2.js.map +1 -1
- package/lib/packages/components/dialog/src/dialog.js.map +1 -1
- package/lib/packages/components/divider/index.js.map +1 -1
- package/lib/packages/components/divider/src/divider.vue2.js +1 -1
- package/lib/packages/components/divider/src/divider.vue2.js.map +1 -1
- package/lib/packages/components/ellipsis/index.d.js.map +1 -1
- package/lib/packages/components/ellipsis/index.js.map +1 -1
- package/lib/packages/components/ellipsis/src/Ellipsis.vue2.js.map +1 -1
- package/lib/packages/components/ellipsis/src/ellipsis.js.map +1 -1
- package/lib/packages/components/export/index.js.map +1 -1
- package/lib/packages/components/export/src/export.vue2.js +1 -1
- package/lib/packages/components/export/src/export.vue2.js.map +1 -1
- package/lib/packages/components/fix/index.d.js.map +1 -1
- package/lib/packages/components/fix/index.js.map +1 -1
- package/lib/packages/components/fix/src/Fix.vue2.js.map +1 -1
- package/lib/packages/components/fix/src/fix.js.map +1 -1
- package/lib/packages/components/float/index.d.js.map +1 -1
- package/lib/packages/components/float/index.js.map +1 -1
- package/lib/packages/components/float/src/Float.vue2.js.map +1 -1
- package/lib/packages/components/float/src/float.js.map +1 -1
- package/lib/packages/components/form/index.js.map +1 -1
- package/lib/packages/components/form/src/form-item.vue2.js.map +1 -1
- package/lib/packages/components/form/src/form.vue2.js +1 -2
- package/lib/packages/components/form/src/form.vue2.js.map +1 -1
- package/lib/packages/components/gap/index.js.map +1 -1
- package/lib/packages/components/gap/src/gap.vue2.js.map +1 -1
- package/lib/packages/components/grid/index.d.js.map +1 -1
- package/lib/packages/components/grid/index.js.map +1 -1
- package/lib/packages/components/grid/src/grid-item.vue2.js +1 -1
- package/lib/packages/components/grid/src/grid-item.vue2.js.map +1 -1
- package/lib/packages/components/grid/src/grid.vue2.js +1 -1
- package/lib/packages/components/grid/src/grid.vue2.js.map +1 -1
- package/lib/packages/components/guider/index.d.js.map +1 -1
- package/lib/packages/components/guider/index.js.map +1 -1
- package/lib/packages/components/guider/src/guider.vue2.js +1 -1
- package/lib/packages/components/guider/src/guider.vue2.js.map +1 -1
- package/lib/packages/components/header/index.js.map +1 -1
- package/lib/packages/components/header/src/header.vue2.js +1 -1
- package/lib/packages/components/header/src/header.vue2.js.map +1 -1
- package/lib/packages/components/icon/index.d.js.map +1 -1
- package/lib/packages/components/icon/index.js.map +1 -1
- package/lib/packages/components/icon/src/icon.vue2.js +1 -1
- package/lib/packages/components/icon/src/icon.vue2.js.map +1 -1
- package/lib/packages/components/import/index.js.map +1 -1
- package/lib/packages/components/import/src/import.vue2.js +2 -2
- package/lib/packages/components/import/src/import.vue2.js.map +1 -1
- package/lib/packages/components/index.d.js +2 -0
- package/lib/packages/components/index.d.js.map +1 -1
- package/lib/packages/components/index.js +2 -0
- package/lib/packages/components/index.js.map +1 -1
- package/lib/packages/components/input/index.js.map +1 -1
- package/lib/packages/components/input/src/input.vue2.js +63 -62
- package/lib/packages/components/input/src/input.vue2.js.map +1 -1
- package/lib/packages/components/msg/index.d.js.map +1 -1
- package/lib/packages/components/msg/index.js.map +1 -1
- package/lib/packages/components/msg/src/msg.vue2.js +15 -15
- package/lib/packages/components/msg/src/msg.vue2.js.map +1 -1
- package/lib/packages/components/padding/index.js.map +1 -1
- package/lib/packages/components/padding/src/padding.vue2.js +1 -1
- package/lib/packages/components/padding/src/padding.vue2.js.map +1 -1
- package/lib/packages/components/page/index.js.map +1 -1
- package/lib/packages/components/page/src/page.vue2.js +6 -3
- package/lib/packages/components/page/src/page.vue2.js.map +1 -1
- package/lib/packages/components/param/index.d.js.map +1 -1
- package/lib/packages/components/param/index.js.map +1 -1
- package/lib/packages/components/param/src/Param.vue2.js.map +1 -1
- package/lib/packages/components/param/src/ParamItem.vue.js.map +1 -1
- package/lib/packages/components/param/src/param-item.js.map +1 -1
- package/lib/packages/components/param/src/param.js.map +1 -1
- package/lib/packages/components/pic/index.d.js.map +1 -1
- package/lib/packages/components/pic/index.js.map +1 -1
- package/lib/packages/components/pic/src/Pic.vue2.js.map +1 -1
- package/lib/packages/components/pic/src/PicViewer.vue2.js +1 -1
- package/lib/packages/components/pic/src/PicViewer.vue2.js.map +1 -1
- package/lib/packages/components/pic/src/pic.js.map +1 -1
- package/lib/packages/components/progress/index.d.js.map +1 -1
- package/lib/packages/components/progress/index.js.map +1 -1
- package/lib/packages/components/progress/src/Progress.vue.js.map +1 -1
- package/lib/packages/components/progress/src/Progress.vue2.js.map +1 -1
- package/lib/packages/components/progress/src/progress.js.map +1 -1
- package/lib/packages/components/range/index.js.map +1 -1
- package/lib/packages/components/range/src/range.vue2.js +4 -4
- package/lib/packages/components/range/src/range.vue2.js.map +1 -1
- package/lib/packages/components/rate/index.d.js +3 -0
- package/lib/packages/components/rate/index.d.js.map +1 -0
- package/lib/packages/components/rate/index.js +9 -0
- package/lib/packages/components/rate/index.js.map +1 -0
- package/lib/packages/components/rate/src/instance.d.js +3 -0
- package/lib/packages/components/rate/src/instance.d.js.map +1 -0
- package/lib/packages/components/rate/src/instance.js +3 -0
- package/lib/packages/components/rate/src/instance.js.map +1 -0
- package/lib/packages/components/rate/src/rate.vue.js +11 -0
- package/lib/packages/components/rate/src/rate.vue.js.map +1 -0
- package/lib/packages/components/rate/src/rate.vue2.js +157 -0
- package/lib/packages/components/rate/src/rate.vue2.js.map +1 -0
- package/lib/packages/components/scroll/index.d.js.map +1 -1
- package/lib/packages/components/scroll/index.js.map +1 -1
- package/lib/packages/components/scroll/src/Scroll.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/ScrollPoint.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/scroll-point.js.map +1 -1
- package/lib/packages/components/scroll/src/scroll.js.map +1 -1
- package/lib/packages/components/segment/index.js.map +1 -1
- package/lib/packages/components/segment/src/segment.vue.js +1 -4
- package/lib/packages/components/segment/src/segment.vue.js.map +1 -1
- package/lib/packages/components/select/index.js.map +1 -1
- package/lib/packages/components/select/src/hooks/use-select-class-style.js +1 -1
- package/lib/packages/components/select/src/hooks/use-select-class-style.js.map +1 -1
- package/lib/packages/components/select/src/hooks/use-select-option-data.js.map +1 -1
- package/lib/packages/components/select/src/select.js +0 -8
- package/lib/packages/components/select/src/select.js.map +1 -1
- package/lib/packages/components/select/src/select.vue2.js +11 -2
- package/lib/packages/components/select/src/select.vue2.js.map +1 -1
- package/lib/packages/components/slide/index.js.map +1 -1
- package/lib/packages/components/slide/src/slide.vue2.js +1 -1
- package/lib/packages/components/slide/src/slide.vue2.js.map +1 -1
- package/lib/packages/components/step/index.js.map +1 -1
- package/lib/packages/components/step/src/step.vue2.js.map +1 -1
- package/lib/packages/components/switch/index.js.map +1 -1
- package/lib/packages/components/switch/src/switch.vue2.js +4 -4
- package/lib/packages/components/switch/src/switch.vue2.js.map +1 -1
- package/lib/packages/components/tab/index.js.map +1 -1
- package/lib/packages/components/tab/src/tab-item.vue2.js +1 -1
- package/lib/packages/components/tab/src/tab-item.vue2.js.map +1 -1
- package/lib/packages/components/tab/src/tab.vue2.js +383 -52
- package/lib/packages/components/tab/src/tab.vue2.js.map +1 -1
- package/lib/packages/components/table/index.js.map +1 -1
- package/lib/packages/components/table/src/table-body.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table-config.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table-head.vue2.js +1 -1
- package/lib/packages/components/table/src/table-head.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table.vue2.js +20 -20
- package/lib/packages/components/table/src/table.vue2.js.map +1 -1
- package/lib/packages/components/tag/index.d.js.map +1 -1
- package/lib/packages/components/tag/index.js.map +1 -1
- package/lib/packages/components/tag/src/tag.vue2.js +4 -4
- package/lib/packages/components/tag/src/tag.vue2.js.map +1 -1
- package/lib/packages/components/text/index.js.map +1 -1
- package/lib/packages/components/text/src/text.vue2.js +4 -4
- package/lib/packages/components/text/src/text.vue2.js.map +1 -1
- package/lib/packages/components/timeline/index.d.js.map +1 -1
- package/lib/packages/components/timeline/index.js.map +1 -1
- package/lib/packages/components/timeline/src/timeline.vue.js.map +1 -1
- package/lib/packages/components/timeline/src/timeline.vue2.js.map +1 -1
- package/lib/packages/components/tip/index.d.js.map +1 -1
- package/lib/packages/components/tip/index.js.map +1 -1
- package/lib/packages/components/tip/src/tip.js.map +1 -1
- package/lib/packages/components/tip/src/tip.vue2.js.map +1 -1
- package/lib/packages/components/tooltip/index.js.map +1 -1
- package/lib/packages/components/tooltip/src/tooltip.js.map +1 -1
- package/lib/packages/components/tooltip/src/tooltip.vue2.js.map +1 -1
- package/lib/packages/components/transfer/index.js.map +1 -1
- package/lib/packages/components/transfer/src/transfer.vue2.js +9 -9
- package/lib/packages/components/transfer/src/transfer.vue2.js.map +1 -1
- package/lib/packages/components/tree/index.js.map +1 -1
- package/lib/packages/components/tree/src/tree-item.vue2.js +26 -26
- package/lib/packages/components/tree/src/tree-item.vue2.js.map +1 -1
- package/lib/packages/components/tree/src/tree.vue2.js +4 -4
- package/lib/packages/components/tree/src/tree.vue2.js.map +1 -1
- package/lib/packages/components/upload/index.js.map +1 -1
- package/lib/packages/components/upload/src/upload.vue2.js +14 -14
- package/lib/packages/components/upload/src/upload.vue2.js.map +1 -1
- package/lib/packages/directives/align/index.d.js.map +1 -1
- package/lib/packages/directives/align/index.js.map +1 -1
- package/lib/packages/directives/align/src/align.d.js.map +1 -1
- package/lib/packages/directives/align/src/align.js.map +1 -1
- package/lib/packages/directives/color/index.d.js.map +1 -1
- package/lib/packages/directives/color/index.js.map +1 -1
- package/lib/packages/directives/color/src/color.d.js.map +1 -1
- package/lib/packages/directives/color/src/color.js.map +1 -1
- package/lib/packages/directives/dis/index.d.js.map +1 -1
- package/lib/packages/directives/dis/index.js.map +1 -1
- package/lib/packages/directives/dis/src/dis.d.js.map +1 -1
- package/lib/packages/directives/dis/src/dis.js.map +1 -1
- package/lib/packages/directives/hide/src/hide.js.map +1 -1
- package/lib/packages/directives/index.d.js.map +1 -1
- package/lib/packages/directives/index.js.map +1 -1
- package/lib/packages/directives/loading/index.d.js.map +1 -1
- package/lib/packages/directives/loading/index.js.map +1 -1
- package/lib/packages/directives/loading/src/loading.d.js.map +1 -1
- package/lib/packages/directives/loading/src/loading.js.map +1 -1
- package/lib/packages/directives/longtap/src/longtap.js.map +1 -1
- package/lib/packages/directives/size/index.d.js.map +1 -1
- package/lib/packages/directives/size/index.js.map +1 -1
- package/lib/packages/directives/size/src/size.d.js.map +1 -1
- package/lib/packages/directives/size/src/size.js.map +1 -1
- package/lib/packages/directives/tip/index.d.js.map +1 -1
- package/lib/packages/directives/tip/index.js.map +1 -1
- package/lib/packages/directives/tip/src/tip.d.js.map +1 -1
- package/lib/packages/directives/tip/src/tip.js.map +1 -1
- package/lib/packages/hooks/useDevice.js.map +1 -1
- package/lib/packages/hooks/useFormItem.js.map +1 -1
- package/lib/packages/hooks/useSetClass.js.map +1 -1
- package/lib/packages/hooks/useWidthStyle.js.map +1 -1
- package/lib/packages/locale/format.js.map +1 -1
- package/lib/packages/locale/index.d.js.map +1 -1
- package/lib/packages/locale/index.js.map +1 -1
- package/lib/packages/locale/lang/en-US.js.map +1 -1
- package/lib/packages/locale/lang/zh-CN.js.map +1 -1
- package/lib/packages/resolver/resolver.js.map +1 -1
- package/lib/packages/utils/ajax.js.map +1 -1
- package/lib/packages/utils/beforeChange.js.map +1 -1
- package/lib/packages/utils/compare.d.js.map +1 -1
- package/lib/packages/utils/compare.js.map +1 -1
- package/lib/packages/utils/config.js.map +1 -1
- package/lib/packages/utils/date.js.map +1 -1
- package/lib/packages/utils/disabledArea.d.js.map +1 -1
- package/lib/packages/utils/disabledArea.js +2 -2
- package/lib/packages/utils/disabledArea.js.map +1 -1
- package/lib/packages/utils/dom.js.map +1 -1
- package/lib/packages/utils/fileAjax.js.map +1 -1
- package/lib/packages/utils/isModified.d.js.map +1 -1
- package/lib/packages/utils/isModified.js.map +1 -1
- package/lib/packages/utils/jsencrypt/JSEncrypt.js.map +1 -1
- package/lib/packages/utils/jsencrypt/JSEncryptRSAKey.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/asn1js/asn1.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/asn1js/base64.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/asn1js/hex.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/asn1js/int10.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/asn1js/oids.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/base64.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/jsbn.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/prng4.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/rng.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/rsa.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsbn/util.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsrsasign/asn1-1.0.js.map +1 -1
- package/lib/packages/utils/jsencrypt/jselib/jsrsasign/yahoo.js.map +1 -1
- package/lib/packages/utils/jsencrypt/util.js.map +1 -1
- package/lib/packages/utils/md5.js.map +1 -1
- package/lib/packages/utils/print.js +1 -1
- package/lib/packages/utils/print.js.map +1 -1
- package/lib/packages/utils/ratio.js.map +1 -1
- package/lib/packages/utils/sign.js.map +1 -1
- package/lib/packages/utils/theme.js.map +1 -1
- package/lib/packages/utils/types.js.map +1 -1
- package/lib/packages/utils/util.js.map +1 -1
- package/lib/packages/utils/uuid.js.map +1 -1
- package/lib/packages/utils/validate.js +24 -17
- package/lib/packages/utils/validate.js.map +1 -1
- package/lib/ui/index.d.ts +5 -5
- package/package.json +84 -84
- package/theme/components/index.css +313 -122
- package/theme/index.css +313 -122
- package/theme/skin/default.css +313 -122
- package/types/global.d.ts +1 -0
- package/es/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.mjs.map +0 -1
- package/lib/node_modules/.pnpm/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.js.map +0 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { defineComponent, ref, computed, watch, resolveDirective, withDirectives, openBlock, createElementBlock, normalizeClass, normalizeStyle, Fragment, renderList, createElementVNode, toDisplayString, createCommentVNode } from 'vue';
|
|
2
|
+
|
|
3
|
+
const __default__ = defineComponent({
|
|
4
|
+
name: "ToRate"
|
|
5
|
+
});
|
|
6
|
+
var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
7
|
+
...__default__,
|
|
8
|
+
props: {
|
|
9
|
+
modelValue: {
|
|
10
|
+
type: Number,
|
|
11
|
+
default: 0
|
|
12
|
+
},
|
|
13
|
+
max: {
|
|
14
|
+
type: Number,
|
|
15
|
+
default: 5
|
|
16
|
+
},
|
|
17
|
+
size: {
|
|
18
|
+
type: Number,
|
|
19
|
+
default: 2
|
|
20
|
+
},
|
|
21
|
+
readonly: Boolean,
|
|
22
|
+
allowHalf: {
|
|
23
|
+
type: Boolean,
|
|
24
|
+
default: false
|
|
25
|
+
},
|
|
26
|
+
color: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: "primary"
|
|
29
|
+
},
|
|
30
|
+
showScore: {
|
|
31
|
+
type: Boolean,
|
|
32
|
+
default: false
|
|
33
|
+
},
|
|
34
|
+
clearable: {
|
|
35
|
+
type: Boolean,
|
|
36
|
+
default: false
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
emits: ["update:modelValue", "change"],
|
|
40
|
+
setup(__props, { emit: __emit }) {
|
|
41
|
+
const props = __props;
|
|
42
|
+
const emit = __emit;
|
|
43
|
+
const ivalue = ref(props.modelValue);
|
|
44
|
+
const hoverIndex = ref(0);
|
|
45
|
+
const hoverHalf = ref(false);
|
|
46
|
+
const isReadonly = computed(() => props.readonly);
|
|
47
|
+
const disabled = computed(() => props.readonly);
|
|
48
|
+
const displayValue = computed(() => {
|
|
49
|
+
if (!isReadonly.value && hoverIndex.value > 0) {
|
|
50
|
+
return hoverHalf.value ? hoverIndex.value - 0.5 : hoverIndex.value;
|
|
51
|
+
}
|
|
52
|
+
return ivalue.value;
|
|
53
|
+
});
|
|
54
|
+
const setStyle = computed(() => {
|
|
55
|
+
const obj = {};
|
|
56
|
+
if (props.size) {
|
|
57
|
+
obj["--size"] = props.size + "em";
|
|
58
|
+
}
|
|
59
|
+
return obj;
|
|
60
|
+
});
|
|
61
|
+
watch(
|
|
62
|
+
() => props.modelValue,
|
|
63
|
+
(val) => {
|
|
64
|
+
ivalue.value = val;
|
|
65
|
+
},
|
|
66
|
+
{ immediate: true }
|
|
67
|
+
);
|
|
68
|
+
function handleClick(i, event) {
|
|
69
|
+
if (isReadonly.value)
|
|
70
|
+
return;
|
|
71
|
+
let value = i;
|
|
72
|
+
if (props.allowHalf) {
|
|
73
|
+
const rect = event.currentTarget.getBoundingClientRect();
|
|
74
|
+
const x = event.clientX - rect.left;
|
|
75
|
+
value = x < rect.width / 2 ? i - 0.5 : i;
|
|
76
|
+
}
|
|
77
|
+
if (props.clearable && ivalue.value === value) {
|
|
78
|
+
value = 0;
|
|
79
|
+
}
|
|
80
|
+
ivalue.value = value;
|
|
81
|
+
emit("update:modelValue", value);
|
|
82
|
+
emit("change", value);
|
|
83
|
+
}
|
|
84
|
+
function handleHalfMove(i, event) {
|
|
85
|
+
const rect = event.currentTarget.getBoundingClientRect();
|
|
86
|
+
const x = event.clientX - rect.left;
|
|
87
|
+
hoverIndex.value = i;
|
|
88
|
+
hoverHalf.value = x < rect.width / 2;
|
|
89
|
+
}
|
|
90
|
+
function handleMouseLeave() {
|
|
91
|
+
if (!isReadonly.value) {
|
|
92
|
+
hoverIndex.value = 0;
|
|
93
|
+
hoverHalf.value = false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return (_ctx, _cache) => {
|
|
97
|
+
const _directive_dis = resolveDirective("dis");
|
|
98
|
+
return withDirectives((openBlock(), createElementBlock(
|
|
99
|
+
"div",
|
|
100
|
+
{
|
|
101
|
+
class: normalizeClass(["to-rate", [`color-${__props.color}`, { "is-half": __props.allowHalf, "is-readonly": isReadonly.value }]]),
|
|
102
|
+
style: normalizeStyle(setStyle.value),
|
|
103
|
+
onMouseleave: handleMouseLeave
|
|
104
|
+
},
|
|
105
|
+
[
|
|
106
|
+
(openBlock(true), createElementBlock(
|
|
107
|
+
Fragment,
|
|
108
|
+
null,
|
|
109
|
+
renderList(__props.max, (i) => {
|
|
110
|
+
return openBlock(), createElementBlock("div", {
|
|
111
|
+
key: i,
|
|
112
|
+
class: normalizeClass(["to-rate-item", {
|
|
113
|
+
"is-on": i <= ivalue.value,
|
|
114
|
+
"is-half-on": __props.allowHalf && i - 0.5 <= ivalue.value && i > ivalue.value,
|
|
115
|
+
"is-hover": !isReadonly.value && i <= hoverIndex.value && !hoverHalf.value
|
|
116
|
+
}]),
|
|
117
|
+
onClick: ($event) => handleClick(i, $event),
|
|
118
|
+
onMousemove: ($event) => __props.allowHalf && !isReadonly.value ? handleHalfMove(i, $event) : void 0,
|
|
119
|
+
onMouseenter: ($event) => !isReadonly.value ? hoverIndex.value = i : void 0
|
|
120
|
+
}, [
|
|
121
|
+
createElementVNode("span", { class: "to-rate-item-star" })
|
|
122
|
+
], 42, ["onClick", "onMousemove", "onMouseenter"]);
|
|
123
|
+
}),
|
|
124
|
+
128
|
|
125
|
+
/* KEYED_FRAGMENT */
|
|
126
|
+
)),
|
|
127
|
+
__props.showScore ? (openBlock(), createElementBlock(
|
|
128
|
+
"div",
|
|
129
|
+
{
|
|
130
|
+
key: 0,
|
|
131
|
+
class: "to-rate-score"
|
|
132
|
+
},
|
|
133
|
+
toDisplayString(displayValue.value),
|
|
134
|
+
1
|
|
135
|
+
/* TEXT */
|
|
136
|
+
)) : createCommentVNode("v-if", true)
|
|
137
|
+
],
|
|
138
|
+
38
|
|
139
|
+
/* CLASS, STYLE, NEED_HYDRATION */
|
|
140
|
+
)), [
|
|
141
|
+
[
|
|
142
|
+
_directive_dis,
|
|
143
|
+
disabled.value,
|
|
144
|
+
void 0,
|
|
145
|
+
{ opacity: true }
|
|
146
|
+
]
|
|
147
|
+
]);
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
export { _sfc_main as default };
|
|
153
|
+
//# sourceMappingURL=rate.vue2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate.vue2.mjs","sources":["../../../../../../packages/components/rate/src/rate.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToRate'\n});\n</script>\n<template>\n\t<div v-dis.opacity=\"disabled\" class=\"to-rate\" :class=\"[`color-${color}`, { 'is-half': allowHalf, 'is-readonly': isReadonly }]\" :style=\"setStyle\" @mouseleave=\"handleMouseLeave\">\n\t\t<div\n\t\t\tv-for=\"i in max\"\n\t\t\t:key=\"i\"\n\t\t\tclass=\"to-rate-item\"\n\t\t\t:class=\"{\n\t\t\t\t'is-on': i <= ivalue,\n\t\t\t\t'is-half-on': allowHalf && i - 0.5 <= ivalue && i > ivalue,\n\t\t\t\t'is-hover': !isReadonly && i <= hoverIndex && !hoverHalf\n\t\t\t}\"\n\t\t\t@click=\"handleClick(i, $event)\"\n\t\t\t@mousemove=\"allowHalf && !isReadonly ? handleHalfMove(i, $event) : undefined\"\n\t\t\t@mouseenter=\"!isReadonly ? (hoverIndex = i) : undefined\"\n\t\t>\n\t\t\t<span class=\"to-rate-item-star\"></span>\n\t\t</div>\n\t\t<div v-if=\"showScore\" class=\"to-rate-score\">{{ displayValue }}</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { CSSProperties, computed, ref, watch } from 'vue'\n\n\n\nconst props = defineProps({\n\tmodelValue: {\n\t\ttype: Number,\n\t\tdefault: 0\n\t},\n\tmax: {\n\t\ttype: Number,\n\t\tdefault: 5\n\t},\n\tsize: {\n\t\ttype: Number,\n\t\tdefault: 2\n\t},\n\treadonly: Boolean,\n\tallowHalf: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tcolor: {\n\t\ttype: String,\n\t\tdefault: 'primary'\n\t},\n\tshowScore: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\tclearable: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t}\n})\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\nconst ivalue = ref(props.modelValue)\nconst hoverIndex = ref(0)\nconst hoverHalf = ref(false)\n\nconst isReadonly = computed(() => props.readonly)\nconst disabled = computed(() => props.readonly)\n\nconst displayValue = computed(() => {\n\tif (!isReadonly.value && hoverIndex.value > 0) {\n\t\treturn hoverHalf.value ? hoverIndex.value - 0.5 : hoverIndex.value\n\t}\n\treturn ivalue.value\n})\n\nconst setStyle = computed(() => {\n\tconst obj: CSSProperties = {}\n\tif (props.size) {\n\t\tobj['--size'] = props.size + 'em'\n\t}\n\treturn obj\n})\n\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tivalue.value = val\n\t},\n\t{ immediate: true }\n)\n\nfunction handleClick(i: number, event: MouseEvent) {\n\tif (isReadonly.value) return\n\tlet value: number = i\n\tif (props.allowHalf) {\n\t\tconst rect = (event.currentTarget as HTMLElement).getBoundingClientRect()\n\t\tconst x = event.clientX - rect.left\n\t\tvalue = x < rect.width / 2 ? i - 0.5 : i\n\t}\n\tif (props.clearable && ivalue.value === value) {\n\t\tvalue = 0\n\t}\n\tivalue.value = value\n\temit('update:modelValue', value)\n\temit('change', value)\n}\n\nfunction handleHalfMove(i: number, event: MouseEvent) {\n\tconst rect = (event.currentTarget as HTMLElement).getBoundingClientRect()\n\tconst x = event.clientX - rect.left\n\thoverIndex.value = i\n\thoverHalf.value = x < rect.width / 2\n}\n\nfunction handleMouseLeave() {\n\tif (!isReadonly.value) {\n\t\thoverIndex.value = 0\n\t\thoverHalf.value = false\n\t}\n}\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_Fragment","_renderList","_createElementVNode"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mjs","sources":["../../../../../packages/components/scroll/index.d.ts"],"sourcesContent":["export declare const ToScroll: any;\
|
|
1
|
+
{"version":3,"file":"index.d.mjs","sources":["../../../../../packages/components/scroll/index.d.ts"],"sourcesContent":["export declare const ToScroll: any;\nexport declare const ToScrollPoint: any;\nexport default ToScroll;\nexport * from './src/scroll';\n"],"names":[],"mappings":";;AAEA,iBAAe,QAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/scroll/index.ts"],"sourcesContent":["import { withInstall } from '@touchvue/utils'\
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/scroll/index.ts"],"sourcesContent":["import { withInstall } from '@touchvue/utils'\nimport Scroll from './src/Scroll.vue'\nimport ScrollPoint from './src/ScrollPoint.vue'\n\nexport const ToScroll = withInstall(Scroll)\nexport const ToScrollPoint = withInstall(ScrollPoint)\nexport default ToScroll\n\nexport * from './src/scroll'\n"],"names":[],"mappings":";;;;;AAIa,MAAA,QAAA,GAAW,YAAY,MAAM,EAAA;AAC7B,MAAA,aAAA,GAAgB,YAAY,WAAW;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scroll.vue2.mjs","sources":["../../../../../../packages/components/scroll/src/Scroll.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\r\n\tname: 'ToScroll'\r\n});\n</script>\n<template>\r\n\t<div class=\"to-scroll\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\r\n\t\t<!-- 自定义滚动条 -->\r\n\t\t<div v-if=\"props.virtual\" class=\"to-scroll-bar\" :class=\"[barVisibleClass, { active: isScrolling || isHovering }]\">\r\n\t\t\t<div ref=\"barThumb\" class=\"to-scroll-thumb\" :style=\"thumbStyle\" @mousedown=\"onThumbMousedown\"></div>\r\n\t\t</div>\r\n\r\n\t\t<!-- 横向滚动条 -->\r\n\t\t<div v-if=\"props.virtual && hasHorizontalScroll\" class=\"to-scroll-bar horizontal\" :class=\"[barVisibleClass, { active: isScrolling || isHovering }]\">\r\n\t\t\t<div ref=\"horizontalBarThumb\" class=\"to-scroll-thumb\" :style=\"horizontalThumbStyle\" @mousedown=\"onHorizontalThumbMousedown\"></div>\r\n\t\t</div>\r\n\r\n\t\t<!-- 滚动内容区域 -->\r\n\t\t<div ref=\"scrollRef\" class=\"to-scroll-content\" :style=\"setContentStyle\" :class=\"{ 'virtual-scroll': props.virtual }\" @scroll=\"handleScroll\">\r\n\t\t\t<!-- 默认内容插槽 -->\r\n\t\t\t<slot />\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, ref, watch, nextTick, onMounted, onUnmounted, provide } from 'vue'\r\nimport { scrollProps, ScrollContext } from './scroll'\r\n\r\n\r\n\r\nconst props = defineProps(scrollProps)\r\nconst emit = defineEmits<{\r\n\t(e: 'scroll', event: Event): void\r\n\t(e: 'scrollEnd'): void\r\n\t(e: 'change', position: number): void\r\n\t(e: 'update:value', position: number | string): void\r\n\t(e: 'update:modelValue', position: number | string): void\r\n\t(e: 'bottom'): void\r\n\t(e: 'top'): void\r\n}>()\r\n\r\nconst scrollRef = ref<HTMLElement | null>(null)\r\nconst barThumb = ref<HTMLElement | null>(null)\r\nconst horizontalBarThumb = ref<HTMLElement | null>(null)\r\nconst isScrolling = ref(false)\r\nconst isHovering = ref(false)\r\n// 添加一个标志来标识是否由tab点击导致的滚动\r\nlet isTabTriggeredScroll = false\r\n// 添加自动滚动的节流控制\r\nlet autoScrollThrottleTimer: ReturnType<typeof setTimeout> | null = null\r\n// 滚动防抖定时器\r\nlet scrollUpdateTimer: ReturnType<typeof setTimeout> | null = null\r\nlet isDragging = ref(false)\r\nlet isHorizontalDragging = ref(false)\r\nlet startY = 0\r\nlet startX = 0\r\nlet startScrollTop = 0\r\nlet startScrollLeft = 0\r\nconst hasHorizontalScroll = ref(false)\r\n// 存储滚动点信息\r\nconst scrollPoints = ref<Array<{ value: string | number; start: number; end: number }>>([])\r\n// 获取当前绑定值(优先使用modelValue,兼容value)\r\nconst bindValue = computed(() => props.modelValue || props.value)\r\n// 当前选中的滚动点值\r\nconst currentPointValue = ref<string | number | null>(bindValue.value || null)\r\n\r\nlet scrollEventDebounceTimer: ReturnType<typeof setTimeout> | null = null\r\n// 提供给子组件的上下文\r\nprovide<ScrollContext>('ToScroll', {\r\n\tregisterScrollPoint: (_el: HTMLElement, _value: string | number) => {\r\n\t\t// 在下一个渲染周期更新滚动点\r\n\t\tnextTick(() => {\r\n\t\t\tsetScrollPoints()\r\n\t\t})\r\n\t}\r\n})\r\n\r\n// 提供当前值给子组件\r\nprovide('scrollValue', currentPointValue)\r\n\r\n// 计算属性\r\nconst barVisibleClass = computed(() => {\r\n\treturn `bar-${String(props.barDisplay)}`\r\n})\r\n\r\n// 检查是否需要横向滚动条\r\nconst checkHorizontalScroll = () => {\r\n\tif (scrollRef.value) {\r\n\t\tconst { scrollWidth, clientWidth } = scrollRef.value\r\n\t\thasHorizontalScroll.value = scrollWidth > clientWidth\r\n\t}\r\n}\r\n\r\n// 设置滚动点\r\nconst setScrollPoints = () => {\r\n\tif (!scrollRef.value) return\r\n\r\n\t// 先清空现有的滚动点\r\n\tscrollPoints.value = []\r\n\r\n\t// 查找所有滚动点元素\r\n\tconst nodes = scrollRef.value.querySelectorAll('.to-scroll-point')\r\n\tif (!nodes || nodes.length === 0) {\r\n\t\treturn\r\n\t}\r\n\r\n\t// 收集滚动点信息\r\n\tnodes.forEach(item => {\r\n\t\tconst itemEl = item as HTMLElement\r\n\t\t// 获取滚动点的值\r\n\t\tconst pointValue = itemEl.getAttribute('data-point-value') || ''\r\n\r\n\t\t// 获取元素相对于滚动容器的精确位置\r\n\t\tconst offsetTop = itemEl.offsetTop\r\n\t\tconst height = itemEl.offsetHeight\r\n\r\n\t\t// 记录滚动点信息\r\n\t\tscrollPoints.value.push({\r\n\t\t\tvalue: pointValue,\r\n\t\t\tstart: offsetTop,\r\n\t\t\tend: offsetTop + height\r\n\t\t})\r\n\t})\r\n\r\n\t// 初始滚动到指定位置\r\n\tif (props.value && scrollRef.value) {\r\n\t\tscrollToValue(props.value, 'auto')\r\n\t}\r\n}\r\n\r\n// 滚动到指定值对应的位置\r\nconst scrollToValue = (value: string | number, behavior: ScrollBehavior = 'smooth') => {\r\n\tif (!scrollRef.value || !scrollPoints.value.length) return false\r\n\r\n\t// 查找匹配值的滚动点\r\n\tconst targetPoint = scrollPoints.value.find(p => String(p.value) === String(value))\r\n\tif (targetPoint) {\r\n\t\tscrollRef.value.scrollTo({\r\n\t\t\ttop: targetPoint.start,\r\n\t\t\tbehavior: behavior\r\n\t\t})\r\n\r\n\t\t// 主动触发滚动点高亮状态更新\r\n\t\tnotifyScrollPointsActive(value)\r\n\t\treturn true\r\n\t}\r\n\r\n\treturn false\r\n}\r\n\r\n// 主动通知滚动点更新高亮状态\r\nconst notifyScrollPointsActive = (activeValue: string | number) => {\r\n\t// 使用事件通知,避免直接操作DOM\r\n\tif (scrollRef.value) {\r\n\t\tconst event = new CustomEvent('scroll-point-active', {\r\n\t\t\tdetail: { value: activeValue },\r\n\t\t\tbubbles: true\r\n\t\t})\r\n\t\tscrollRef.value.dispatchEvent(event)\r\n\r\n\t\t// 确保更新内部状态\r\n\t\tcurrentPointValue.value = activeValue\r\n\t}\r\n}\r\n\r\n// 根据当前滚动位置查找对应的滚动点值\r\nconst findScrollPoint = (scrollTop: number): string | number | null => {\r\n\tif (!scrollPoints.value.length || !scrollRef.value) return null\r\n\r\n\tconst clientHeight = scrollRef.value.clientHeight\r\n\tconst scrollBottom = scrollTop + clientHeight\r\n\r\n\t// 1. 精确匹配:如果滚动位置恰好在某个滚动点的顶部附近\r\n\tfor (const point of scrollPoints.value) {\r\n\t\t// 如果滚动位置在点顶部的±10px范围内,优先选择该点\r\n\t\tif (Math.abs(scrollTop - point.start) < 10) {\r\n\t\t\treturn point.value\r\n\t\t}\r\n\t}\r\n\r\n\t// 2. 完全包含的滚动点:如果视口完全包含某个滚动点\r\n\tfor (const point of scrollPoints.value) {\r\n\t\tif (scrollTop <= point.start && scrollBottom >= point.end) {\r\n\t\t\treturn point.value\r\n\t\t}\r\n\t}\r\n\r\n\t// 3. 查找当前在视口中显示最多的点\r\n\tlet bestPoint = null\r\n\tlet maxVisibleHeight = 0\r\n\r\n\tfor (const point of scrollPoints.value) {\r\n\t\t// 计算可见部分\r\n\t\tconst visibleTop = Math.max(scrollTop, point.start)\r\n\t\tconst visibleBottom = Math.min(scrollBottom, point.end)\r\n\t\tconst visibleHeight = visibleBottom - visibleTop\r\n\r\n\t\t// 如果有可见部分,并且可见高度最大,选择该点\r\n\t\tif (visibleHeight > 0 && visibleHeight > maxVisibleHeight) {\r\n\t\t\tmaxVisibleHeight = visibleHeight\r\n\t\t\tbestPoint = point\r\n\t\t}\r\n\t}\r\n\r\n\t// 4. 特殊情况处理:滚动到顶部或底部\r\n\tif (scrollTop < 5 && scrollPoints.value.length > 0) {\r\n\t\treturn scrollPoints.value[0].value // 顶部\r\n\t}\r\n\r\n\tif (scrollBottom >= scrollRef.value.scrollHeight - 5 && scrollPoints.value.length > 0) {\r\n\t\treturn scrollPoints.value[scrollPoints.value.length - 1].value // 底部\r\n\t}\r\n\r\n\t// 5. 如果找到了最佳点,返回它的值\r\n\tif (bestPoint) {\r\n\t\treturn bestPoint.value\r\n\t}\r\n\r\n\t// 6. 后备方案:返回最接近当前滚动位置的点\r\n\tlet closestPoint = null\r\n\tlet minDistance = Infinity\r\n\r\n\tfor (const point of scrollPoints.value) {\r\n\t\tconst distance = Math.min(Math.abs(scrollTop - point.start), Math.abs(scrollBottom - point.end))\r\n\r\n\t\tif (distance < minDistance) {\r\n\t\t\tminDistance = distance\r\n\t\t\tclosestPoint = point\r\n\t\t}\r\n\t}\r\n\r\n\treturn closestPoint ? closestPoint.value : null\r\n}\r\n\r\n// 监听value/modelValue变化\r\nwatch(\r\n\t() => bindValue.value,\r\n\t(newVal, oldVal) => {\r\n\t\t// 避免重复处理相同的值\r\n\t\tif (newVal === oldVal || newVal === currentPointValue.value) return\r\n\r\n\t\t// 更新内部记录的值\r\n\t\tcurrentPointValue.value = newVal\r\n\r\n\t\t// 如果是由Tab变化引起的,滚动到对应位置\r\n\t\tif (!isScrolling.value) {\r\n\t\t\t// 标记为Tab触发的滚动,避免滚动过程中再次触发更新\r\n\t\t\tisTabTriggeredScroll = true\r\n\r\n\t\t\tnextTick(() => {\r\n\t\t\t\t// 尝试滚动到对应位置\r\n\t\t\t\tconst scrollSuccess = scrollToValue(newVal)\r\n\r\n\t\t\t\t// 如果滚动失败(没找到对应的滚动点),尝试重新计算滚动点后再滚动\r\n\t\t\t\tif (!scrollSuccess) {\r\n\t\t\t\t\tsetScrollPoints()\r\n\t\t\t\t\tscrollToValue(newVal)\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// 滚动动作完成后重置标记\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tisTabTriggeredScroll = false\r\n\t\t\t\t}, 500) // 等待滚动动画完成\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\t{ immediate: true }\r\n)\r\n\r\nonMounted(() => {\r\n\t// 组件挂载后,设置滚动点\r\n\tnextTick(() => {\r\n\t\t// 收集滚动点\r\n\t\tsetScrollPoints()\r\n\r\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\r\n\t\tconst observer = new MutationObserver(() => {\r\n\t\t\tsetScrollPoints()\r\n\t\t})\r\n\r\n\t\tif (scrollRef.value) {\r\n\t\t\tobserver.observe(scrollRef.value, {\r\n\t\t\t\tchildList: true,\r\n\t\t\t\tsubtree: true,\r\n\t\t\t\tattributes: true,\r\n\t\t\t\tattributeFilter: ['data-point-value']\r\n\t\t\t})\r\n\r\n\t\t\t// 如果有初始值,滚动到对应位置\r\n\t\t\tif (props.value) {\r\n\t\t\t\t// 延迟执行,确保DOM完全渲染\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\r\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 100)\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n\r\n\tif (props.virtual) {\r\n\t\twindow.addEventListener('mousemove', onMousemove)\r\n\t\twindow.addEventListener('mouseup', onMouseup)\r\n\t\twindow.addEventListener('mouseleave', onMouseup)\r\n\r\n\t\t// 添加鼠标进入和离开事件\r\n\t\tif (scrollRef.value) {\r\n\t\t\tscrollRef.value.addEventListener('mouseenter', onMouseenter)\r\n\t\t\tscrollRef.value.addEventListener('mouseleave', onMouseleave)\r\n\t\t}\r\n\r\n\t\t// 检查是否需要横向滚动条\r\n\t\tnextTick(() => {\r\n\t\t\tcheckHorizontalScroll()\r\n\t\t})\r\n\t}\r\n})\r\n\r\nonUnmounted(() => {\r\n\tif (props.virtual) {\r\n\t\twindow.removeEventListener('mousemove', onMousemove)\r\n\t\twindow.removeEventListener('mouseup', onMouseup)\r\n\t\twindow.removeEventListener('mouseleave', onMouseup)\r\n\r\n\t\t// 移除鼠标进入和离开事件\r\n\t\tif (scrollRef.value) {\r\n\t\t\tscrollRef.value.removeEventListener('mouseenter', onMouseenter)\r\n\t\t\tscrollRef.value.removeEventListener('mouseleave', onMouseleave)\r\n\t\t}\r\n\t}\r\n\r\n\t// 清除所有定时器\r\n\tif (scrollUpdateTimer) {\r\n\t\tclearTimeout(scrollUpdateTimer)\r\n\t\tscrollUpdateTimer = null\r\n\t}\r\n\r\n\tif (autoScrollThrottleTimer) {\r\n\t\tclearTimeout(autoScrollThrottleTimer)\r\n\t\tautoScrollThrottleTimer = null\r\n\t}\r\n})\r\n\r\n// 鼠标进入滚动区域\r\nconst onMouseenter = () => {\r\n\tisHovering.value = true\r\n}\r\n\r\n// 鼠标离开滚动区域\r\nconst onMouseleave = () => {\r\n\tif (!isDragging.value && !isHorizontalDragging.value) {\r\n\t\tisHovering.value = false\r\n\t}\r\n}\r\n\r\n// 虚拟滚动条垂直拖动\r\nconst onThumbMousedown = (e: MouseEvent) => {\r\n\tif (!scrollRef.value || !props.virtual) return\r\n\te.preventDefault()\r\n\te.stopPropagation()\r\n\r\n\t// 添加拖动状态的类,用于CSS样式调整\r\n\tif (scrollRef.value) {\r\n\t\tscrollRef.value.classList.add('dragging-scrollbar')\r\n\t}\r\n\r\n\tstartY = e.clientY\r\n\tstartScrollTop = scrollRef.value.scrollTop\r\n\tisDragging.value = true\r\n}\r\n\r\n// 虚拟滚动条水平拖动\r\nconst onHorizontalThumbMousedown = (e: MouseEvent) => {\r\n\tif (!scrollRef.value || !props.virtual) return\r\n\te.preventDefault()\r\n\te.stopPropagation()\r\n\r\n\t// 添加拖动状态的类,用于CSS样式调整\r\n\tif (scrollRef.value) {\r\n\t\tscrollRef.value.classList.add('dragging-scrollbar-horizontal')\r\n\t}\r\n\r\n\tstartX = e.clientX\r\n\tstartScrollLeft = scrollRef.value.scrollLeft\r\n\tisHorizontalDragging.value = true\r\n}\r\n\r\nconst onMousemove = (e: MouseEvent) => {\r\n\t// 处理垂直拖动\r\n\tif (isDragging.value && scrollRef.value && barThumb.value) {\r\n\t\tconst deltaY = e.clientY - startY\r\n\t\tconst contentHeight = scrollRef.value.scrollHeight\r\n\t\tconst containerHeight = scrollRef.value.clientHeight\r\n\t\tconst ratio = containerHeight / contentHeight\r\n\r\n\t\tscrollRef.value.scrollTop = startScrollTop + deltaY / ratio\r\n\t}\r\n\r\n\t// 处理水平拖动\r\n\tif (isHorizontalDragging.value && scrollRef.value && horizontalBarThumb.value) {\r\n\t\tconst deltaX = e.clientX - startX\r\n\t\tconst contentWidth = scrollRef.value.scrollWidth\r\n\t\tconst containerWidth = scrollRef.value.clientWidth\r\n\t\tconst ratio = containerWidth / contentWidth\r\n\r\n\t\tscrollRef.value.scrollLeft = startScrollLeft + deltaX / ratio\r\n\t}\r\n}\r\n\r\nconst onMouseup = () => {\r\n\tisDragging.value = false\r\n\tisHorizontalDragging.value = false\r\n\r\n\t// 拖动结束后,如果鼠标不在滚动区域内,则隐藏滚动条\r\n\tif (!isHovering.value) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tisHovering.value = false\r\n\t\t}, 300)\r\n\t}\r\n\r\n\t// 移除拖动状态的类\r\n\tif (scrollRef.value) {\r\n\t\tscrollRef.value.classList.remove('dragging-scrollbar')\r\n\t\tscrollRef.value.classList.remove('dragging-scrollbar-horizontal')\r\n\t}\r\n}\r\n\r\n// 处理滚动事件\r\nconst handleScroll = (event: Event) => {\r\n\t// 触发原始滚动事件\r\n\temit('scroll', event)\r\n\r\n\t// 如果是由Tab触发的滚动,不处理滚动检测\r\n\tif (isTabTriggeredScroll) {\r\n\t\treturn\r\n\t}\r\n\r\n\tif (!scrollRef.value) return\r\n\r\n\t// 获取当前滚动位置\r\n\tconst scrollTop = scrollRef.value.scrollTop\r\n\r\n\t// 触发滚动位置变化事件\r\n\temit('change', scrollTop)\r\n\r\n\tif (scrollEventDebounceTimer) {\r\n\t\tclearTimeout(scrollEventDebounceTimer)\r\n\t}\r\n\r\n\t// 检测是否滚动到底部\r\n\tscrollEventDebounceTimer = setTimeout(() => {\r\n\t\t// 检测是否滚动到底部\r\n\t\tconst { scrollHeight, clientHeight } = scrollRef.value\r\n\t\tif (scrollTop + clientHeight >= scrollHeight - 5) {\r\n\t\t\temit('bottom')\r\n\t\t}\r\n\r\n\t\tif (scrollTop <= 5) {\r\n\t\t\temit('top')\r\n\t\t}\r\n\t}, 100) // 防抖时间设置为 100ms\r\n\r\n\t// 如果有滚动点,立即检测当前位置对应哪个点\r\n\tif (scrollPoints.value.length > 0) {\r\n\t\t// 先清除之前的定时器\r\n\t\tif (autoScrollThrottleTimer) {\r\n\t\t\tclearTimeout(autoScrollThrottleTimer)\r\n\t\t\tautoScrollThrottleTimer = null\r\n\t\t}\r\n\t\tif (scrollUpdateTimer) {\r\n\t\t\tclearTimeout(scrollUpdateTimer)\r\n\t\t\tscrollUpdateTimer = null\r\n\t\t}\r\n\r\n\t\t// 使用requestAnimationFrame确保滚动过程中能平滑更新\r\n\t\trequestAnimationFrame(() => {\r\n\t\t\t// 重新查找当前滚动位置对应的点\r\n\t\t\tconst pointValue = findScrollPoint(scrollTop)\r\n\r\n\t\t\t// 如果找到点且与当前值不同,立即更新值\r\n\t\t\tif (pointValue !== null && pointValue !== currentPointValue.value) {\r\n\t\t\t\t// 更新内部记录的值\r\n\t\t\t\tcurrentPointValue.value = pointValue\r\n\r\n\t\t\t\t// 同时发送两种事件,确保兼容性\r\n\t\t\t\temit('update:modelValue', pointValue)\r\n\t\t\t\temit('update:value', pointValue)\r\n\r\n\t\t\t\t// 通知滚动点更新高亮状态\r\n\t\t\t\tnotifyScrollPointsActive(pointValue)\r\n\r\n\t\t\t\t// 如果使用了虚拟滚动条,确保它的位置也正确更新\r\n\t\t\t\tif (props.virtual && barThumb.value) {\r\n\t\t\t\t\tupdateVirtualScrollbar()\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t// 标记为正在滚动\r\n\tisScrolling.value = true\r\n\r\n\t// 滚动结束后重置状态\r\n\tclearTimeout(scrollUpdateTimer)\r\n\tscrollUpdateTimer = setTimeout(() => {\r\n\t\tisScrolling.value = false\r\n\t\temit('scrollEnd')\r\n\t}, 100)\r\n}\r\n\r\n// 更新虚拟滚动条位置(如果使用)\r\nconst updateVirtualScrollbar = () => {\r\n\tif (!scrollRef.value || !props.virtual) return\r\n\r\n\t// 强制更新滚动条位置\r\n\tnextTick(() => {\r\n\t\tconst { scrollTop, scrollHeight, clientHeight } = scrollRef.value\r\n\t\tconst thumbHeight = Math.max(30, (clientHeight / scrollHeight) * clientHeight)\r\n\t\tconst thumbTop = (scrollTop / (scrollHeight - clientHeight)) * (clientHeight - thumbHeight)\r\n\r\n\t\tif (barThumb.value) {\r\n\t\t\tbarThumb.value.style.transform = `translateY(${thumbTop}px)`\r\n\t\t}\r\n\t})\r\n}\r\n\r\n// 统一的滚动方法,支持多种参数类型\r\nconst to = (target: HTMLElement | string | number | any) => {\r\n\tif (!scrollRef.value) return\r\n\r\n\t// 滚动到底部\r\n\tif (target === '$bottom') {\r\n\t\tscrollRef.value.scrollTo({\r\n\t\t\ttop: scrollRef.value.scrollHeight - scrollRef.value.clientHeight,\r\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\r\n\t\t})\r\n\t\treturn\r\n\t}\r\n\r\n\t// 滚动到指定元素\r\n\tif (target instanceof HTMLElement) {\r\n\t\tconst elementTop = target.getBoundingClientRect().top\r\n\t\tconst containerTop = scrollRef.value.getBoundingClientRect().top\r\n\t\tconst relativeTop = elementTop - containerTop + scrollRef.value.scrollTop\r\n\r\n\t\tscrollRef.value.scrollTo({\r\n\t\t\ttop: relativeTop,\r\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\r\n\t\t})\r\n\t\treturn\r\n\t}\r\n\r\n\t// 滚动到指定位置(数字或数字字符串)\r\n\tif (typeof target === 'number' || (typeof target === 'string' && !isNaN(Number(target)))) {\r\n\t\tconst position = typeof target === 'string' ? Number(target) : target\r\n\r\n\t\tscrollRef.value.scrollTo({\r\n\t\t\ttop: position,\r\n\t\t\tleft: 0,\r\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\r\n\t\t})\r\n\t\treturn\r\n\t}\r\n\r\n\t// 滚动到指定选项配置\r\n\tif (typeof target === 'object' && target !== null) {\r\n\t\tscrollRef.value.scrollTo(target)\r\n\t\treturn\r\n\t}\r\n}\r\n\r\n// 垂直滚动条样式计算\r\nconst thumbStyle = computed(() => {\r\n\tif (!scrollRef.value || !props.virtual) return {}\r\n\r\n\tconst { clientHeight, scrollHeight, scrollTop } = scrollRef.value\r\n\r\n\t// 计算滚动条高度比例\r\n\tconst thumbHeight = Math.max(30, (clientHeight / scrollHeight) * clientHeight)\r\n\r\n\t// 计算滚动条位置比例\r\n\tconst thumbTop = (scrollTop / (scrollHeight - clientHeight)) * (clientHeight - thumbHeight)\r\n\r\n\treturn {\r\n\t\theight: `${thumbHeight}px`,\r\n\t\ttransform: `translateY(${thumbTop}px)`,\r\n\t\twidth: '6px'\r\n\t}\r\n})\r\n\r\n// 水平滚动条样式计算\r\nconst horizontalThumbStyle = computed(() => {\r\n\tif (!scrollRef.value || !props.virtual) return {}\r\n\r\n\tconst { clientWidth, scrollWidth, scrollLeft } = scrollRef.value\r\n\r\n\t// 计算滚动条宽度比例\r\n\tconst thumbWidth = Math.max(30, (clientWidth / scrollWidth) * clientWidth)\r\n\r\n\t// 计算滚动条位置比例\r\n\tconst thumbLeft = (scrollLeft / (scrollWidth - clientWidth)) * (clientWidth - thumbWidth)\r\n\r\n\treturn {\r\n\t\twidth: `${thumbWidth}px`,\r\n\t\ttransform: `translateX(${thumbLeft}px)`,\r\n\t\theight: '6px'\r\n\t}\r\n})\r\n\r\nconst setStyle = computed(() => {\r\n\tconst obj: {\r\n\t\theight?: string\r\n\t} = {}\r\n\r\n\tif (props.height) {\r\n\t\tif (!isNaN(Number(props.height))) {\r\n\t\t\tobj.height = props.height + 'em'\r\n\t\t} else {\r\n\t\t\tobj.height = String(props.height)\r\n\t\t}\r\n\t}\r\n\r\n\treturn obj\r\n})\r\n\r\nconst setClass = computed(() => {\r\n\tlet arr: string[] = []\r\n\r\n\tif (props.virtual) {\r\n\t\tarr.push('hide-scrollbar')\r\n\t}\r\n\r\n\tif (props.mode) {\r\n\t\tarr.push(`mode-${props.mode}`)\r\n\t}\r\n\r\n\tif (props.type) {\r\n\t\tarr.push(`type-${props.type}`)\r\n\t}\r\n\r\n\treturn arr\r\n})\r\n\r\nconst setContentStyle = computed(() => {\r\n\tconst obj: {\r\n\t\theight?: string\r\n\t\tpadding?: string | number\r\n\t\tpaddingTop?: string\r\n\t\tpaddingRight?: string\r\n\t\tpaddingBottom?: string\r\n\t\tpaddingLeft?: string\r\n\t\tmaxHeight?: string\r\n\t\toverflow?: string\r\n\t\tposition?: 'relative' | 'absolute' | 'fixed' | 'sticky'\r\n\t\twidth?: string\r\n\t\tdisplay?: string\r\n\t} = {}\r\n\r\n\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\r\n\tif (String(props.padding).trim()) {\r\n\t\t// 分割成各个值\r\n\t\tconst padded = String(props.padding)\r\n\t\t\t.trim()\r\n\t\t\t.split(/\\s+/)\r\n\t\t\t.map(val => {\r\n\t\t\t\t// 如果是数字(或纯数字字符串),或末尾无单位,就加 em\r\n\t\t\t\treturn hasUnit(val) ? val : `${val}em`\r\n\t\t\t})\r\n\t\t\t.join(' ')\r\n\r\n\t\tobj.padding = padded\r\n\t}\r\n\r\n\tif (props.paddingPosition) {\r\n\t\t// 根据paddingPosition设置padding位置\r\n\t\tconst padding = String(props.padding || '0')\r\n\t\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\r\n\t\tconst paddingValue = hasUnit(padding) ? padding : `${padding}em`\r\n\r\n\t\tswitch (props.paddingPosition) {\r\n\t\t\tcase 'top':\r\n\t\t\t\tobj.paddingTop = paddingValue\r\n\t\t\t\tbreak\r\n\t\t\tcase 'right':\r\n\t\t\t\tobj.paddingRight = paddingValue\r\n\t\t\t\tbreak\r\n\t\t\tcase 'bottom':\r\n\t\t\t\tobj.paddingBottom = paddingValue\r\n\t\t\t\tbreak\r\n\t\t\tcase 'left':\r\n\t\t\t\tobj.paddingLeft = paddingValue\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t}\r\n\r\n\tif (props.virtual) {\r\n\t\tobj.overflow = 'auto'\r\n\t\tobj.position = 'relative'\r\n\t\tobj.width = '100%'\r\n\t}\r\n\r\n\treturn obj\r\n})\r\n\r\nfunction adjust() {\r\n\t// 组件挂载后,设置滚动点\r\n\tnextTick(() => {\r\n\t\t// 收集滚动点\r\n\t\tsetScrollPoints()\r\n\r\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\r\n\t\tconst observer = new MutationObserver(() => {\r\n\t\t\tsetScrollPoints()\r\n\t\t})\r\n\r\n\t\tif (scrollRef.value) {\r\n\t\t\tobserver.observe(scrollRef.value, {\r\n\t\t\t\tchildList: true,\r\n\t\t\t\tsubtree: true,\r\n\t\t\t\tattributes: true,\r\n\t\t\t\tattributeFilter: ['data-point-value']\r\n\t\t\t})\r\n\r\n\t\t\t// 如果有初始值,滚动到对应位置\r\n\t\t\tif (props.value) {\r\n\t\t\t\t// 延迟执行,确保DOM完全渲染\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\r\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 100)\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n\r\n\tif (props.virtual) {\r\n\t\twindow.addEventListener('mousemove', onMousemove)\r\n\t\twindow.addEventListener('mouseup', onMouseup)\r\n\t\twindow.addEventListener('mouseleave', onMouseup)\r\n\r\n\t\t// 添加鼠标进入和离开事件\r\n\t\tif (scrollRef.value) {\r\n\t\t\tscrollRef.value.addEventListener('mouseenter', onMouseenter)\r\n\t\t\tscrollRef.value.addEventListener('mouseleave', onMouseleave)\r\n\t\t}\r\n\r\n\t\t// 检查是否需要横向滚动条\r\n\t\tnextTick(() => {\r\n\t\t\tcheckHorizontalScroll()\r\n\t\t})\r\n\t}\r\n}\r\n\r\n// 导出方法供父组件调用\r\ndefineExpose({\r\n\tto,\r\n\tscrollRef,\r\n\tisScrolling,\r\n\tsetScrollPoints,\r\n\tfindScrollPoint,\r\n\tcheckHorizontalScroll,\r\n\tadjust\r\n})\r\n</script>\r\n"],"names":["DO_defineComponent","hasUnit","_createElementBlock","_normalizeClass","flex","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Scroll.vue2.mjs","sources":["../../../../../../packages/components/scroll/src/Scroll.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToScroll'\n});\n</script>\n<template>\n\t<div class=\"to-scroll\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<!-- 自定义滚动条 -->\n\t\t<div v-if=\"props.virtual\" class=\"to-scroll-bar\" :class=\"[barVisibleClass, { active: isScrolling || isHovering }]\">\n\t\t\t<div ref=\"barThumb\" class=\"to-scroll-thumb\" :style=\"thumbStyle\" @mousedown=\"onThumbMousedown\"></div>\n\t\t</div>\n\n\t\t<!-- 横向滚动条 -->\n\t\t<div v-if=\"props.virtual && hasHorizontalScroll\" class=\"to-scroll-bar horizontal\" :class=\"[barVisibleClass, { active: isScrolling || isHovering }]\">\n\t\t\t<div ref=\"horizontalBarThumb\" class=\"to-scroll-thumb\" :style=\"horizontalThumbStyle\" @mousedown=\"onHorizontalThumbMousedown\"></div>\n\t\t</div>\n\n\t\t<!-- 滚动内容区域 -->\n\t\t<div ref=\"scrollRef\" class=\"to-scroll-content\" :style=\"setContentStyle\" :class=\"{ 'virtual-scroll': props.virtual }\" @scroll=\"handleScroll\">\n\t\t\t<!-- 默认内容插槽 -->\n\t\t\t<slot />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, nextTick, onMounted, onUnmounted, provide } from 'vue'\nimport { scrollProps, ScrollContext } from './scroll'\n\n\n\nconst props = defineProps(scrollProps)\nconst emit = defineEmits<{\n\t(e: 'scroll', event: Event): void\n\t(e: 'scrollEnd'): void\n\t(e: 'change', position: number): void\n\t(e: 'update:value', position: number | string): void\n\t(e: 'update:modelValue', position: number | string): void\n\t(e: 'bottom'): void\n\t(e: 'top'): void\n}>()\n\nconst scrollRef = ref<HTMLElement | null>(null)\nconst barThumb = ref<HTMLElement | null>(null)\nconst horizontalBarThumb = ref<HTMLElement | null>(null)\nconst isScrolling = ref(false)\nconst isHovering = ref(false)\n// 添加一个标志来标识是否由tab点击导致的滚动\nlet isTabTriggeredScroll = false\n// 添加自动滚动的节流控制\nlet autoScrollThrottleTimer: ReturnType<typeof setTimeout> | null = null\n// 滚动防抖定时器\nlet scrollUpdateTimer: ReturnType<typeof setTimeout> | null = null\nlet isDragging = ref(false)\nlet isHorizontalDragging = ref(false)\nlet startY = 0\nlet startX = 0\nlet startScrollTop = 0\nlet startScrollLeft = 0\nconst hasHorizontalScroll = ref(false)\n// 存储滚动点信息\nconst scrollPoints = ref<Array<{ value: string | number; start: number; end: number }>>([])\n// 获取当前绑定值(优先使用modelValue,兼容value)\nconst bindValue = computed(() => props.modelValue || props.value)\n// 当前选中的滚动点值\nconst currentPointValue = ref<string | number | null>(bindValue.value || null)\n\nlet scrollEventDebounceTimer: ReturnType<typeof setTimeout> | null = null\n// 提供给子组件的上下文\nprovide<ScrollContext>('ToScroll', {\n\tregisterScrollPoint: (_el: HTMLElement, _value: string | number) => {\n\t\t// 在下一个渲染周期更新滚动点\n\t\tnextTick(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\t}\n})\n\n// 提供当前值给子组件\nprovide('scrollValue', currentPointValue)\n\n// 计算属性\nconst barVisibleClass = computed(() => {\n\treturn `bar-${String(props.barDisplay)}`\n})\n\n// 检查是否需要横向滚动条\nconst checkHorizontalScroll = () => {\n\tif (scrollRef.value) {\n\t\tconst { scrollWidth, clientWidth } = scrollRef.value\n\t\thasHorizontalScroll.value = scrollWidth > clientWidth\n\t}\n}\n\n// 设置滚动点\nconst setScrollPoints = () => {\n\tif (!scrollRef.value) return\n\n\t// 先清空现有的滚动点\n\tscrollPoints.value = []\n\n\t// 查找所有滚动点元素\n\tconst nodes = scrollRef.value.querySelectorAll('.to-scroll-point')\n\tif (!nodes || nodes.length === 0) {\n\t\treturn\n\t}\n\n\t// 收集滚动点信息\n\tnodes.forEach(item => {\n\t\tconst itemEl = item as HTMLElement\n\t\t// 获取滚动点的值\n\t\tconst pointValue = itemEl.getAttribute('data-point-value') || ''\n\n\t\t// 获取元素相对于滚动容器的精确位置\n\t\tconst offsetTop = itemEl.offsetTop\n\t\tconst height = itemEl.offsetHeight\n\n\t\t// 记录滚动点信息\n\t\tscrollPoints.value.push({\n\t\t\tvalue: pointValue,\n\t\t\tstart: offsetTop,\n\t\t\tend: offsetTop + height\n\t\t})\n\t})\n\n\t// 初始滚动到指定位置\n\tif (props.value && scrollRef.value) {\n\t\tscrollToValue(props.value, 'auto')\n\t}\n}\n\n// 滚动到指定值对应的位置\nconst scrollToValue = (value: string | number, behavior: ScrollBehavior = 'smooth') => {\n\tif (!scrollRef.value || !scrollPoints.value.length) return false\n\n\t// 查找匹配值的滚动点\n\tconst targetPoint = scrollPoints.value.find(p => String(p.value) === String(value))\n\tif (targetPoint) {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: targetPoint.start,\n\t\t\tbehavior: behavior\n\t\t})\n\n\t\t// 主动触发滚动点高亮状态更新\n\t\tnotifyScrollPointsActive(value)\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// 主动通知滚动点更新高亮状态\nconst notifyScrollPointsActive = (activeValue: string | number) => {\n\t// 使用事件通知,避免直接操作DOM\n\tif (scrollRef.value) {\n\t\tconst event = new CustomEvent('scroll-point-active', {\n\t\t\tdetail: { value: activeValue },\n\t\t\tbubbles: true\n\t\t})\n\t\tscrollRef.value.dispatchEvent(event)\n\n\t\t// 确保更新内部状态\n\t\tcurrentPointValue.value = activeValue\n\t}\n}\n\n// 根据当前滚动位置查找对应的滚动点值\nconst findScrollPoint = (scrollTop: number): string | number | null => {\n\tif (!scrollPoints.value.length || !scrollRef.value) return null\n\n\tconst clientHeight = scrollRef.value.clientHeight\n\tconst scrollBottom = scrollTop + clientHeight\n\n\t// 1. 精确匹配:如果滚动位置恰好在某个滚动点的顶部附近\n\tfor (const point of scrollPoints.value) {\n\t\t// 如果滚动位置在点顶部的±10px范围内,优先选择该点\n\t\tif (Math.abs(scrollTop - point.start) < 10) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 2. 完全包含的滚动点:如果视口完全包含某个滚动点\n\tfor (const point of scrollPoints.value) {\n\t\tif (scrollTop <= point.start && scrollBottom >= point.end) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 3. 查找当前在视口中显示最多的点\n\tlet bestPoint = null\n\tlet maxVisibleHeight = 0\n\n\tfor (const point of scrollPoints.value) {\n\t\t// 计算可见部分\n\t\tconst visibleTop = Math.max(scrollTop, point.start)\n\t\tconst visibleBottom = Math.min(scrollBottom, point.end)\n\t\tconst visibleHeight = visibleBottom - visibleTop\n\n\t\t// 如果有可见部分,并且可见高度最大,选择该点\n\t\tif (visibleHeight > 0 && visibleHeight > maxVisibleHeight) {\n\t\t\tmaxVisibleHeight = visibleHeight\n\t\t\tbestPoint = point\n\t\t}\n\t}\n\n\t// 4. 特殊情况处理:滚动到顶部或底部\n\tif (scrollTop < 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[0].value // 顶部\n\t}\n\n\tif (scrollBottom >= scrollRef.value.scrollHeight - 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[scrollPoints.value.length - 1].value // 底部\n\t}\n\n\t// 5. 如果找到了最佳点,返回它的值\n\tif (bestPoint) {\n\t\treturn bestPoint.value\n\t}\n\n\t// 6. 后备方案:返回最接近当前滚动位置的点\n\tlet closestPoint = null\n\tlet minDistance = Infinity\n\n\tfor (const point of scrollPoints.value) {\n\t\tconst distance = Math.min(Math.abs(scrollTop - point.start), Math.abs(scrollBottom - point.end))\n\n\t\tif (distance < minDistance) {\n\t\t\tminDistance = distance\n\t\t\tclosestPoint = point\n\t\t}\n\t}\n\n\treturn closestPoint ? closestPoint.value : null\n}\n\n// 监听value/modelValue变化\nwatch(\n\t() => bindValue.value,\n\t(newVal, oldVal) => {\n\t\t// 避免重复处理相同的值\n\t\tif (newVal === oldVal || newVal === currentPointValue.value) return\n\n\t\t// 更新内部记录的值\n\t\tcurrentPointValue.value = newVal\n\n\t\t// 如果是由Tab变化引起的,滚动到对应位置\n\t\tif (!isScrolling.value) {\n\t\t\t// 标记为Tab触发的滚动,避免滚动过程中再次触发更新\n\t\t\tisTabTriggeredScroll = true\n\n\t\t\tnextTick(() => {\n\t\t\t\t// 尝试滚动到对应位置\n\t\t\t\tconst scrollSuccess = scrollToValue(newVal)\n\n\t\t\t\t// 如果滚动失败(没找到对应的滚动点),尝试重新计算滚动点后再滚动\n\t\t\t\tif (!scrollSuccess) {\n\t\t\t\t\tsetScrollPoints()\n\t\t\t\t\tscrollToValue(newVal)\n\t\t\t\t}\n\n\t\t\t\t// 滚动动作完成后重置标记\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisTabTriggeredScroll = false\n\t\t\t\t}, 500) // 等待滚动动画完成\n\t\t\t})\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nonMounted(() => {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n\n\tif (props.virtual) {\n\t\twindow.addEventListener('mousemove', onMousemove)\n\t\twindow.addEventListener('mouseup', onMouseup)\n\t\twindow.addEventListener('mouseleave', onMouseup)\n\n\t\t// 添加鼠标进入和离开事件\n\t\tif (scrollRef.value) {\n\t\t\tscrollRef.value.addEventListener('mouseenter', onMouseenter)\n\t\t\tscrollRef.value.addEventListener('mouseleave', onMouseleave)\n\t\t}\n\n\t\t// 检查是否需要横向滚动条\n\t\tnextTick(() => {\n\t\t\tcheckHorizontalScroll()\n\t\t})\n\t}\n})\n\nonUnmounted(() => {\n\tif (props.virtual) {\n\t\twindow.removeEventListener('mousemove', onMousemove)\n\t\twindow.removeEventListener('mouseup', onMouseup)\n\t\twindow.removeEventListener('mouseleave', onMouseup)\n\n\t\t// 移除鼠标进入和离开事件\n\t\tif (scrollRef.value) {\n\t\t\tscrollRef.value.removeEventListener('mouseenter', onMouseenter)\n\t\t\tscrollRef.value.removeEventListener('mouseleave', onMouseleave)\n\t\t}\n\t}\n\n\t// 清除所有定时器\n\tif (scrollUpdateTimer) {\n\t\tclearTimeout(scrollUpdateTimer)\n\t\tscrollUpdateTimer = null\n\t}\n\n\tif (autoScrollThrottleTimer) {\n\t\tclearTimeout(autoScrollThrottleTimer)\n\t\tautoScrollThrottleTimer = null\n\t}\n})\n\n// 鼠标进入滚动区域\nconst onMouseenter = () => {\n\tisHovering.value = true\n}\n\n// 鼠标离开滚动区域\nconst onMouseleave = () => {\n\tif (!isDragging.value && !isHorizontalDragging.value) {\n\t\tisHovering.value = false\n\t}\n}\n\n// 虚拟滚动条垂直拖动\nconst onThumbMousedown = (e: MouseEvent) => {\n\tif (!scrollRef.value || !props.virtual) return\n\te.preventDefault()\n\te.stopPropagation()\n\n\t// 添加拖动状态的类,用于CSS样式调整\n\tif (scrollRef.value) {\n\t\tscrollRef.value.classList.add('dragging-scrollbar')\n\t}\n\n\tstartY = e.clientY\n\tstartScrollTop = scrollRef.value.scrollTop\n\tisDragging.value = true\n}\n\n// 虚拟滚动条水平拖动\nconst onHorizontalThumbMousedown = (e: MouseEvent) => {\n\tif (!scrollRef.value || !props.virtual) return\n\te.preventDefault()\n\te.stopPropagation()\n\n\t// 添加拖动状态的类,用于CSS样式调整\n\tif (scrollRef.value) {\n\t\tscrollRef.value.classList.add('dragging-scrollbar-horizontal')\n\t}\n\n\tstartX = e.clientX\n\tstartScrollLeft = scrollRef.value.scrollLeft\n\tisHorizontalDragging.value = true\n}\n\nconst onMousemove = (e: MouseEvent) => {\n\t// 处理垂直拖动\n\tif (isDragging.value && scrollRef.value && barThumb.value) {\n\t\tconst deltaY = e.clientY - startY\n\t\tconst contentHeight = scrollRef.value.scrollHeight\n\t\tconst containerHeight = scrollRef.value.clientHeight\n\t\tconst ratio = containerHeight / contentHeight\n\n\t\tscrollRef.value.scrollTop = startScrollTop + deltaY / ratio\n\t}\n\n\t// 处理水平拖动\n\tif (isHorizontalDragging.value && scrollRef.value && horizontalBarThumb.value) {\n\t\tconst deltaX = e.clientX - startX\n\t\tconst contentWidth = scrollRef.value.scrollWidth\n\t\tconst containerWidth = scrollRef.value.clientWidth\n\t\tconst ratio = containerWidth / contentWidth\n\n\t\tscrollRef.value.scrollLeft = startScrollLeft + deltaX / ratio\n\t}\n}\n\nconst onMouseup = () => {\n\tisDragging.value = false\n\tisHorizontalDragging.value = false\n\n\t// 拖动结束后,如果鼠标不在滚动区域内,则隐藏滚动条\n\tif (!isHovering.value) {\n\t\tsetTimeout(() => {\n\t\t\tisHovering.value = false\n\t\t}, 300)\n\t}\n\n\t// 移除拖动状态的类\n\tif (scrollRef.value) {\n\t\tscrollRef.value.classList.remove('dragging-scrollbar')\n\t\tscrollRef.value.classList.remove('dragging-scrollbar-horizontal')\n\t}\n}\n\n// 处理滚动事件\nconst handleScroll = (event: Event) => {\n\t// 触发原始滚动事件\n\temit('scroll', event)\n\n\t// 如果是由Tab触发的滚动,不处理滚动检测\n\tif (isTabTriggeredScroll) {\n\t\treturn\n\t}\n\n\tif (!scrollRef.value) return\n\n\t// 获取当前滚动位置\n\tconst scrollTop = scrollRef.value.scrollTop\n\n\t// 触发滚动位置变化事件\n\temit('change', scrollTop)\n\n\tif (scrollEventDebounceTimer) {\n\t\tclearTimeout(scrollEventDebounceTimer)\n\t}\n\n\t// 检测是否滚动到底部\n\tscrollEventDebounceTimer = setTimeout(() => {\n\t\t// 检测是否滚动到底部\n\t\tconst { scrollHeight, clientHeight } = scrollRef.value\n\t\tif (scrollTop + clientHeight >= scrollHeight - 5) {\n\t\t\temit('bottom')\n\t\t}\n\n\t\tif (scrollTop <= 5) {\n\t\t\temit('top')\n\t\t}\n\t}, 100) // 防抖时间设置为 100ms\n\n\t// 如果有滚动点,立即检测当前位置对应哪个点\n\tif (scrollPoints.value.length > 0) {\n\t\t// 先清除之前的定时器\n\t\tif (autoScrollThrottleTimer) {\n\t\t\tclearTimeout(autoScrollThrottleTimer)\n\t\t\tautoScrollThrottleTimer = null\n\t\t}\n\t\tif (scrollUpdateTimer) {\n\t\t\tclearTimeout(scrollUpdateTimer)\n\t\t\tscrollUpdateTimer = null\n\t\t}\n\n\t\t// 使用requestAnimationFrame确保滚动过程中能平滑更新\n\t\trequestAnimationFrame(() => {\n\t\t\t// 重新查找当前滚动位置对应的点\n\t\t\tconst pointValue = findScrollPoint(scrollTop)\n\n\t\t\t// 如果找到点且与当前值不同,立即更新值\n\t\t\tif (pointValue !== null && pointValue !== currentPointValue.value) {\n\t\t\t\t// 更新内部记录的值\n\t\t\t\tcurrentPointValue.value = pointValue\n\n\t\t\t\t// 同时发送两种事件,确保兼容性\n\t\t\t\temit('update:modelValue', pointValue)\n\t\t\t\temit('update:value', pointValue)\n\n\t\t\t\t// 通知滚动点更新高亮状态\n\t\t\t\tnotifyScrollPointsActive(pointValue)\n\n\t\t\t\t// 如果使用了虚拟滚动条,确保它的位置也正确更新\n\t\t\t\tif (props.virtual && barThumb.value) {\n\t\t\t\t\tupdateVirtualScrollbar()\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\t// 标记为正在滚动\n\tisScrolling.value = true\n\n\t// 滚动结束后重置状态\n\tclearTimeout(scrollUpdateTimer)\n\tscrollUpdateTimer = setTimeout(() => {\n\t\tisScrolling.value = false\n\t\temit('scrollEnd')\n\t}, 100)\n}\n\n// 更新虚拟滚动条位置(如果使用)\nconst updateVirtualScrollbar = () => {\n\tif (!scrollRef.value || !props.virtual) return\n\n\t// 强制更新滚动条位置\n\tnextTick(() => {\n\t\tconst { scrollTop, scrollHeight, clientHeight } = scrollRef.value\n\t\tconst thumbHeight = Math.max(30, (clientHeight / scrollHeight) * clientHeight)\n\t\tconst thumbTop = (scrollTop / (scrollHeight - clientHeight)) * (clientHeight - thumbHeight)\n\n\t\tif (barThumb.value) {\n\t\t\tbarThumb.value.style.transform = `translateY(${thumbTop}px)`\n\t\t}\n\t})\n}\n\n// 统一的滚动方法,支持多种参数类型\nconst to = (target: HTMLElement | string | number | any) => {\n\tif (!scrollRef.value) return\n\n\t// 滚动到底部\n\tif (target === '$bottom') {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: scrollRef.value.scrollHeight - scrollRef.value.clientHeight,\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定元素\n\tif (target instanceof HTMLElement) {\n\t\tconst elementTop = target.getBoundingClientRect().top\n\t\tconst containerTop = scrollRef.value.getBoundingClientRect().top\n\t\tconst relativeTop = elementTop - containerTop + scrollRef.value.scrollTop\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: relativeTop,\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定位置(数字或数字字符串)\n\tif (typeof target === 'number' || (typeof target === 'string' && !isNaN(Number(target)))) {\n\t\tconst position = typeof target === 'string' ? Number(target) : target\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: position,\n\t\t\tleft: 0,\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定选项配置\n\tif (typeof target === 'object' && target !== null) {\n\t\tscrollRef.value.scrollTo(target)\n\t\treturn\n\t}\n}\n\n// 垂直滚动条样式计算\nconst thumbStyle = computed(() => {\n\tif (!scrollRef.value || !props.virtual) return {}\n\n\tconst { clientHeight, scrollHeight, scrollTop } = scrollRef.value\n\n\t// 计算滚动条高度比例\n\tconst thumbHeight = Math.max(30, (clientHeight / scrollHeight) * clientHeight)\n\n\t// 计算滚动条位置比例\n\tconst thumbTop = (scrollTop / (scrollHeight - clientHeight)) * (clientHeight - thumbHeight)\n\n\treturn {\n\t\theight: `${thumbHeight}px`,\n\t\ttransform: `translateY(${thumbTop}px)`,\n\t\twidth: '6px'\n\t}\n})\n\n// 水平滚动条样式计算\nconst horizontalThumbStyle = computed(() => {\n\tif (!scrollRef.value || !props.virtual) return {}\n\n\tconst { clientWidth, scrollWidth, scrollLeft } = scrollRef.value\n\n\t// 计算滚动条宽度比例\n\tconst thumbWidth = Math.max(30, (clientWidth / scrollWidth) * clientWidth)\n\n\t// 计算滚动条位置比例\n\tconst thumbLeft = (scrollLeft / (scrollWidth - clientWidth)) * (clientWidth - thumbWidth)\n\n\treturn {\n\t\twidth: `${thumbWidth}px`,\n\t\ttransform: `translateX(${thumbLeft}px)`,\n\t\theight: '6px'\n\t}\n})\n\nconst setStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t} = {}\n\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else {\n\t\t\tobj.height = String(props.height)\n\t\t}\n\t}\n\n\treturn obj\n})\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\n\tif (props.virtual) {\n\t\tarr.push('hide-scrollbar')\n\t}\n\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\n\tif (props.type) {\n\t\tarr.push(`type-${props.type}`)\n\t}\n\n\treturn arr\n})\n\nconst setContentStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t\tpadding?: string | number\n\t\tpaddingTop?: string\n\t\tpaddingRight?: string\n\t\tpaddingBottom?: string\n\t\tpaddingLeft?: string\n\t\tmaxHeight?: string\n\t\toverflow?: string\n\t\tposition?: 'relative' | 'absolute' | 'fixed' | 'sticky'\n\t\twidth?: string\n\t\tdisplay?: string\n\t} = {}\n\n\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\tif (String(props.padding).trim()) {\n\t\t// 分割成各个值\n\t\tconst padded = String(props.padding)\n\t\t\t.trim()\n\t\t\t.split(/\\s+/)\n\t\t\t.map(val => {\n\t\t\t\t// 如果是数字(或纯数字字符串),或末尾无单位,就加 em\n\t\t\t\treturn hasUnit(val) ? val : `${val}em`\n\t\t\t})\n\t\t\t.join(' ')\n\n\t\tobj.padding = padded\n\t}\n\n\tif (props.paddingPosition) {\n\t\t// 根据paddingPosition设置padding位置\n\t\tconst padding = String(props.padding || '0')\n\t\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\t\tconst paddingValue = hasUnit(padding) ? padding : `${padding}em`\n\n\t\tswitch (props.paddingPosition) {\n\t\t\tcase 'top':\n\t\t\t\tobj.paddingTop = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'right':\n\t\t\t\tobj.paddingRight = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'bottom':\n\t\t\t\tobj.paddingBottom = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'left':\n\t\t\t\tobj.paddingLeft = paddingValue\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tif (props.virtual) {\n\t\tobj.overflow = 'auto'\n\t\tobj.position = 'relative'\n\t\tobj.width = '100%'\n\t}\n\n\treturn obj\n})\n\nfunction adjust() {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n\n\tif (props.virtual) {\n\t\twindow.addEventListener('mousemove', onMousemove)\n\t\twindow.addEventListener('mouseup', onMouseup)\n\t\twindow.addEventListener('mouseleave', onMouseup)\n\n\t\t// 添加鼠标进入和离开事件\n\t\tif (scrollRef.value) {\n\t\t\tscrollRef.value.addEventListener('mouseenter', onMouseenter)\n\t\t\tscrollRef.value.addEventListener('mouseleave', onMouseleave)\n\t\t}\n\n\t\t// 检查是否需要横向滚动条\n\t\tnextTick(() => {\n\t\t\tcheckHorizontalScroll()\n\t\t})\n\t}\n}\n\n// 导出方法供父组件调用\ndefineExpose({\n\tto,\n\tscrollRef,\n\tisScrolling,\n\tsetScrollPoints,\n\tfindScrollPoint,\n\tcheckHorizontalScroll,\n\tadjust\n})\n</script>\n"],"names":["DO_defineComponent","hasUnit","_createElementBlock","_normalizeClass","flex","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollPoint.vue2.mjs","sources":["../../../../../../packages/components/scroll/src/ScrollPoint.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\
|
|
1
|
+
{"version":3,"file":"ScrollPoint.vue2.mjs","sources":["../../../../../../packages/components/scroll/src/ScrollPoint.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToScrollPoint'\n});\n</script>\n<template>\n\t<div :id=\"'scroll-point-' + String(props.value).replace(/\\s+/g, '-')\" ref=\"pointRef\" class=\"to-scroll-point\" :class=\"{ active: isActive }\" :data-point-value=\"props.value\" :data-point-active=\"isActive ? 'true' : 'false'\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, inject, watch, nextTick, computed, onBeforeUnmount } from 'vue'\nimport { scrollPointProps } from './scroll-point'\nimport { ScrollContext } from './scroll'\n\n\n\nconst props = defineProps(scrollPointProps)\n\nconst pointRef = ref<HTMLElement | null>(null)\nconst parentValue = inject<any>('scrollValue', ref(null))\nconst isActive = computed(() => parentValue?.value === props.value)\n\n// 处理滚动点激活事件\nconst handleScrollPointActive = (event: CustomEvent) => {\n\tif (event.detail && event.detail.value === props.value) {\n\t\t// 当激活状态改变时触发\n\t}\n}\n\n// 注入父滚动组件提供的上下文\nconst parentScroll = inject<ScrollContext | null>('ToScroll', null)\n\n// 注册滚动点到父组件\nconst registerToParent = () => {\n\tif (parentScroll && pointRef.value) {\n\t\tparentScroll.registerScrollPoint(pointRef.value, props.value)\n\t} else {\n\t\t// 无法注册到父组件\n\t}\n}\n\n// 在挂载后注册自身到父组件\nonMounted(() => {\n\t// 等待 DOM 更新完成后注册\n\tnextTick(() => {\n\t\tregisterToParent()\n\n\t\t// 添加自定义事件监听\n\t\tif (pointRef.value) {\n\t\t\tpointRef.value.addEventListener('scroll-point-active', handleScrollPointActive as EventListener)\n\t\t}\n\t})\n})\n\n// 组件销毁前移除事件监听\nonBeforeUnmount(() => {\n\tif (pointRef.value) {\n\t\tpointRef.value.removeEventListener('scroll-point-active', handleScrollPointActive as EventListener)\n\t}\n})\n\n// 监听值变化,更新数据属性\nwatch(\n\t() => props.value,\n\t() => {\n\t\tnextTick(() => {\n\t\t\tregisterToParent()\n\t\t})\n\t}\n)\n\n// 监听父组件的值变化\nwatch(\n\t() => parentValue?.value,\n\t() => {\n\t\t// 当父值变化时,会自动通过computed属性更新isActive状态\n\t}\n)\n\n// 导出方法供父组件调用\ndefineExpose({\n\tpointRef,\n\tgetValue: () => props.value\n})\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_normalizeClass","_renderSlot"],"mappings":";;;AAEA,MAAA,cAA6BA,eAAmB,CAAA;AAAA,EAC/C,IAAM,EAAA,eAAA;AACP,CAAC,CAAA,CAAA;;;;;AAeD,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAM,MAAA,QAAA,GAAW,IAAwB,IAAI,CAAA,CAAA;AAC7C,IAAA,MAAM,WAAc,GAAA,MAAA,CAAY,aAAe,EAAA,GAAA,CAAI,IAAI,CAAC,CAAA,CAAA;AACxD,IAAA,MAAM,WAAW,QAAS,CAAA,MAAA,CAAM,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,KAAA,MAAU,MAAM,KAAK,CAAA,CAAA;AAGlE,IAAM,MAAA,uBAAA,GAA0B,CAAC,KAAuB,KAAA;AACvD,MAAA,IAAI,MAAM,MAAU,IAAA,KAAA,CAAM,MAAO,CAAA,KAAA,KAAU,MAAM,KAAO,EAAA,CAExD;AAAA,KACD,CAAA;AAGA,IAAM,MAAA,YAAA,GAAe,MAA6B,CAAA,UAAA,EAAY,IAAI,CAAA,CAAA;AAGlE,IAAA,MAAM,mBAAmB,MAAM;AAC9B,MAAI,IAAA,YAAA,IAAgB,SAAS,KAAO,EAAA;AACnC,QAAA,YAAA,CAAa,mBAAoB,CAAA,QAAA,CAAS,KAAO,EAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AAAA,OAG7D;AAAA,KACD,CAAA;AAGA,IAAA,SAAA,CAAU,MAAM;AAEf,MAAA,QAAA,CAAS,MAAM;AACd,QAAiB,gBAAA,EAAA,CAAA;AAGjB,QAAA,IAAI,SAAS,KAAO,EAAA;AACnB,UAAS,QAAA,CAAA,KAAA,CAAM,gBAAiB,CAAA,qBAAA,EAAuB,uBAAwC,CAAA,CAAA;AAAA,SAChG;AAAA,OACA,CAAA,CAAA;AAAA,KACD,CAAA,CAAA;AAGD,IAAA,eAAA,CAAgB,MAAM;AACrB,MAAA,IAAI,SAAS,KAAO,EAAA;AACnB,QAAS,QAAA,CAAA,KAAA,CAAM,mBAAoB,CAAA,qBAAA,EAAuB,uBAAwC,CAAA,CAAA;AAAA,OACnG;AAAA,KACA,CAAA,CAAA;AAGD,IAAA,KAAA;AAAA,MACC,MAAM,KAAM,CAAA,KAAA;AAAA,MACZ,MAAM;AACL,QAAA,QAAA,CAAS,MAAM;AACd,UAAiB,gBAAA,EAAA,CAAA;AAAA,SACjB,CAAA,CAAA;AAAA,OACF;AAAA,KACD,CAAA;AAGA,IAAA,KAAA;AAAA,MACC,MAAM,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,KAAA;AAAA,MACnB,MAAM;AAAA,OAEN;AAAA,KACD,CAAA;AAGA,IAAa,QAAA,CAAA;AAAA,MACZ,QAAA;AAAA,MACA,QAAA,EAAU,MAAM,KAAM,CAAA,KAAA;AAAA,KACtB,CAAA,CAAA;;wBA/EA,EAAAC,kBAAA,CAEM,KAAA,EAAA;AAAA,QAFA,EAAA,oBAAsB,MAAO,CAAA,KAAA,CAAM,KAAK,CAAE,CAAA,OAAA,CAAO,QAAA,GAAA,CAAA;AAAA,eAAmB,EAAA,UAAA;AAAA,QAAJ,GAAI,EAAA,QAAA;AAAA,QAAW,KAAA,EAAKC,eAAA,CAAC,iBAAA,EAAiB,EAAA,MAAmB,EAAA,QAAA,CAAQ,KAAA,EAAA,CAAA,CAAA;AAAA,QAAK,oBAAkB,KAAM,CAAA,KAAA;AAAA,QAAQ,mBAAA,EAAmB,QAAQ,CAAA,KAAA,GAAA,MAAA,GAAA,OAAA;AAAA;QACtMC,UAAA,CAAa,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-point.mjs","sources":["../../../../../../packages/components/scroll/src/scroll-point.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\
|
|
1
|
+
{"version":3,"file":"scroll-point.mjs","sources":["../../../../../../packages/components/scroll/src/scroll-point.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\n\nexport const scrollPointProps = {\n\t/**\n\t * 滚动点的标识值\n\t */\n\tvalue: {\n\t\ttype: [String, Number],\n\t\tdefault: '',\n\t},\n}\n\nexport type ScrollPointProps = ExtractPropTypes<typeof scrollPointProps>\n\nexport interface ScrollPointInstance {\n\t/**\n\t * 滚动点的DOM引用\n\t */\n\tpointRef: HTMLElement | null\n\t/**\n\t * 获取滚动点的标识值\n\t */\n\tgetValue: () => string | number\n}\n"],"names":[],"mappings":"AAEO,MAAM,gBAAmB,GAAA;AAAA;AAAA;AAAA;AAAA,EAI/B,KAAO,EAAA;AAAA,IACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AACD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.mjs","sources":["../../../../../../packages/components/scroll/src/scroll.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\
|
|
1
|
+
{"version":3,"file":"scroll.mjs","sources":["../../../../../../packages/components/scroll/src/scroll.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\n\nexport const scrollProps = {\n\tflex: Boolean,\n\t/**\n\t * 是否使用模拟滚动条\n\t */\n\tvirtual: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\t/**\n\t * 滚动幅度(仅模拟滚动条支持)\n\t */\n\tspeed: {\n\t\ttype: Number,\n\t\tdefault: 10\n\t},\n\t/**\n\t * 顶部间距\n\t */\n\ttop: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 双向绑定的滚动位置,支持v-model\n\t */\n\tmodelValue: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 兼容旧版本,等同于modelValue\n\t * @deprecated 推荐使用modelValue\n\t */\n\tvalue: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 内边距\n\t */\n\tpadding: {\n\t\ttype: [String, Number],\n\t\tdefault: ''\n\t},\n\t/**\n\t * 内边距位置\n\t */\n\tpaddingPosition: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 底部间距\n\t */\n\tbottom: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 高度\n\t */\n\theight: {\n\t\ttype: [String, Number],\n\t\tdefault: ''\n\t},\n\t/**\n\t * 滚动条显示方式\n\t */\n\tbarDisplay: {\n\t\ttype: String,\n\t\tdefault: 'hover'\n\t},\n\t/**\n\t * 排除项\n\t */\n\texcept: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 背景颜色\n\t */\n\tmode: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 滚动模式\n\t */\n\ttype: {\n\t\ttype: String,\n\t\tdefault: ''\n\t}\n}\n\nexport type ScrollProps = ExtractPropTypes<typeof scrollProps>\n\nexport interface ScrollInstance {\n\t/**\n\t * 滚动到指定位置\n\t */\n\tscrollTo: (options: ScrollToOptions | number, yCoord?: number) => void\n\t/**\n\t * 滚动到指定元素\n\t */\n\tscrollToElement: (element: HTMLElement | null, offset?: number) => void\n\t/**\n\t * 按步长滚动\n\t */\n\tscrollStep: (direction: 'up' | 'down' | 'left' | 'right') => void\n\t/**\n\t * 滚动容器元素\n\t */\n\tscrollRef: HTMLElement | null\n\t/**\n\t * 是否正在滚动\n\t */\n\tisScrolling: boolean\n\t/**\n\t * 滚动到指定目标\n\t */\n\tto: (target: HTMLElement | string | number | any) => void\n}\n\n/**\n * Scroll组件提供给子组件的上下文接口\n */\nexport interface ScrollContext {\n\t/**\n\t * 注册滚动点\n\t */\n\tregisterScrollPoint: (el: HTMLElement, value: string | number) => void\n}\n"],"names":[],"mappings":"AAEO,MAAM,WAAc,GAAA;AAAA,EAC1B,IAAM,EAAA,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,OAAS,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,KAAO,EAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,GAAK,EAAA;AAAA,IACJ,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,KAAO,EAAA;AAAA,IACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,OAAS,EAAA;AAAA,IACR,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,eAAiB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,OAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AACD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/segment/index.ts"],"sourcesContent":["import Segment from './src/segment.vue';\
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/segment/index.ts"],"sourcesContent":["import Segment from './src/segment.vue';\nimport { SFCWithInstall, withInstall } from '@touchvue/utils';\n\nexport const ToSegment: SFCWithInstall<typeof Segment> = withInstall(Segment);\n\nexport * from './src/instance';"],"names":[],"mappings":";;;AAGa,MAAA,SAAA,GAA4C,YAAY,OAAO;;;;"}
|
|
@@ -160,7 +160,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
|
|
|
160
160
|
const iApiHeaders = ref({});
|
|
161
161
|
const iErrorPath = ref("");
|
|
162
162
|
const setClass = computed(() => {
|
|
163
|
-
const arr = ["to-
|
|
163
|
+
const arr = ["to-disable-target"];
|
|
164
164
|
if (errorTip.value) {
|
|
165
165
|
arr.push("to-segment-mode-line");
|
|
166
166
|
arr.push("to-segment-color-danger");
|
|
@@ -169,9 +169,6 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
|
|
|
169
169
|
if (props.type) {
|
|
170
170
|
arr.push(`type-${props.type}`);
|
|
171
171
|
}
|
|
172
|
-
if (props.readonly) {
|
|
173
|
-
arr.push("to-segment-readonly");
|
|
174
|
-
}
|
|
175
172
|
if (props.mode) {
|
|
176
173
|
arr.push(`mode-${props.mode}`);
|
|
177
174
|
}
|