@touchvue/ui 1.0.0-beta.56 → 1.0.0-beta.58
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/es/components/breadcrumb/src/breadcrumb.vue.d.ts +3 -1
- package/es/components/msg/index.d.ts +22 -7
- package/es/components/scroll/index.d.ts +0 -48
- package/es/components/scroll/src/Scroll.vue.d.ts +0 -28
- package/es/components/scroll/src/scroll.d.ts +0 -21
- package/es/hooks/useSetClass.d.ts +4 -0
- package/es/index.d.mjs +1 -1
- package/es/index.mjs +1 -1
- package/es/packages/components/box/src/box.vue2.mjs +4 -2
- package/es/packages/components/box/src/box.vue2.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue.mjs +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue.mjs.map +1 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue2.mjs +3 -1
- package/es/packages/components/breadcrumb/src/breadcrumb.vue2.mjs.map +1 -1
- package/es/packages/components/button/src/button.vue2.mjs +2 -4
- package/es/packages/components/button/src/button.vue2.mjs.map +1 -1
- package/es/packages/components/calendar/src/calendar.vue2.mjs +206 -232
- package/es/packages/components/calendar/src/calendar.vue2.mjs.map +1 -1
- package/es/packages/components/cascader/src/cascader.vue2.mjs +2 -1
- package/es/packages/components/cascader/src/cascader.vue2.mjs.map +1 -1
- package/es/packages/components/center-scroll/src/CenterScroll.vue2.mjs +2 -1
- package/es/packages/components/center-scroll/src/CenterScroll.vue2.mjs.map +1 -1
- package/es/packages/components/checkbox/src/Checkbox.vue2.mjs +14 -11
- package/es/packages/components/checkbox/src/Checkbox.vue2.mjs.map +1 -1
- package/es/packages/components/collapse/src/collapse.vue2.mjs +2 -1
- package/es/packages/components/collapse/src/collapse.vue2.mjs.map +1 -1
- package/es/packages/components/datepicker/src/DatePicker.vue2.mjs +3 -4
- package/es/packages/components/datepicker/src/DatePicker.vue2.mjs.map +1 -1
- package/es/packages/components/daterange/src/date-range.vue2.mjs +30 -10
- package/es/packages/components/daterange/src/date-range.vue2.mjs.map +1 -1
- package/es/packages/components/dialog/src/Dialog.vue2.mjs +2 -1
- package/es/packages/components/dialog/src/Dialog.vue2.mjs.map +1 -1
- package/es/packages/components/divider/src/divider.vue2.mjs +2 -1
- package/es/packages/components/divider/src/divider.vue2.mjs.map +1 -1
- package/es/packages/components/export/src/export.vue2.mjs +2 -1
- package/es/packages/components/export/src/export.vue2.mjs.map +1 -1
- package/es/packages/components/fix/src/Fix.vue2.mjs +2 -1
- package/es/packages/components/fix/src/Fix.vue2.mjs.map +1 -1
- package/es/packages/components/float/src/Float.vue2.mjs +2 -1
- package/es/packages/components/float/src/Float.vue2.mjs.map +1 -1
- package/es/packages/components/form/src/form.vue2.mjs +2 -1
- package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
- package/es/packages/components/gap/src/gap.vue2.mjs +2 -1
- package/es/packages/components/gap/src/gap.vue2.mjs.map +1 -1
- package/es/packages/components/grid/src/grid.vue2.mjs +2 -1
- package/es/packages/components/grid/src/grid.vue2.mjs.map +1 -1
- package/es/packages/components/guider/src/guider.vue2.mjs +2 -1
- package/es/packages/components/guider/src/guider.vue2.mjs.map +1 -1
- package/es/packages/components/header/src/header.vue2.mjs +2 -1
- package/es/packages/components/header/src/header.vue2.mjs.map +1 -1
- package/es/packages/components/icon/src/icon.vue2.mjs +2 -1
- package/es/packages/components/icon/src/icon.vue2.mjs.map +1 -1
- package/es/packages/components/import/src/import.vue2.mjs +27 -29
- package/es/packages/components/import/src/import.vue2.mjs.map +1 -1
- package/es/packages/components/input/src/input.vue2.mjs +3 -4
- 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 +26 -15
- package/es/packages/components/msg/index.mjs.map +1 -1
- package/es/packages/components/msg/src/msg.vue2.mjs +6 -5
- package/es/packages/components/msg/src/msg.vue2.mjs.map +1 -1
- package/es/packages/components/padding/src/padding.vue2.mjs +2 -1
- package/es/packages/components/padding/src/padding.vue2.mjs.map +1 -1
- package/es/packages/components/page/src/page.vue2.mjs +2 -1
- package/es/packages/components/page/src/page.vue2.mjs.map +1 -1
- package/es/packages/components/param/src/Param.vue2.mjs +2 -1
- package/es/packages/components/param/src/Param.vue2.mjs.map +1 -1
- package/es/packages/components/pic/src/Pic.vue2.mjs +4 -2
- package/es/packages/components/pic/src/Pic.vue2.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 +2 -1
- package/es/packages/components/progress/src/Progress.vue2.mjs.map +1 -1
- package/es/packages/components/range/src/range.vue2.mjs +2 -1
- package/es/packages/components/range/src/range.vue2.mjs.map +1 -1
- package/es/packages/components/rate/src/rate.vue2.mjs +3 -2
- package/es/packages/components/rate/src/rate.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/Scroll.vue2.mjs +8 -218
- package/es/packages/components/scroll/src/Scroll.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/scroll.mjs +0 -21
- package/es/packages/components/scroll/src/scroll.mjs.map +1 -1
- package/es/packages/components/segment/src/segment.vue.mjs +2 -1
- package/es/packages/components/segment/src/segment.vue.mjs.map +1 -1
- package/es/packages/components/select/src/hooks/use-select-class-style.mjs +2 -3
- package/es/packages/components/select/src/hooks/use-select-class-style.mjs.map +1 -1
- package/es/packages/components/select/src/select.vue2.mjs +122 -128
- package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
- package/es/packages/components/slide/src/slide.vue2.mjs +2 -1
- package/es/packages/components/slide/src/slide.vue2.mjs.map +1 -1
- package/es/packages/components/step/src/step.vue2.mjs +2 -1
- package/es/packages/components/step/src/step.vue2.mjs.map +1 -1
- package/es/packages/components/switch/src/switch.vue2.mjs +2 -1
- package/es/packages/components/switch/src/switch.vue2.mjs.map +1 -1
- package/es/packages/components/tab/src/tab.vue2.mjs +2 -1
- package/es/packages/components/tab/src/tab.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table.vue2.mjs +2 -1
- package/es/packages/components/table/src/table.vue2.mjs.map +1 -1
- package/es/packages/components/tag/src/tag.vue2.mjs +2 -1
- package/es/packages/components/tag/src/tag.vue2.mjs.map +1 -1
- package/es/packages/components/text/src/text.vue2.mjs +2 -1
- package/es/packages/components/text/src/text.vue2.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 +2 -1
- package/es/packages/components/timeline/src/timeline.vue2.mjs.map +1 -1
- package/es/packages/components/tip/src/tip.vue2.mjs +2 -1
- package/es/packages/components/tip/src/tip.vue2.mjs.map +1 -1
- package/es/packages/components/tooltip/src/tooltip.vue2.mjs +2 -1
- package/es/packages/components/tooltip/src/tooltip.vue2.mjs.map +1 -1
- package/es/packages/components/transfer/src/transfer.vue2.mjs +2 -1
- package/es/packages/components/transfer/src/transfer.vue2.mjs.map +1 -1
- package/es/packages/components/tree/src/tree.vue2.mjs +2 -1
- package/es/packages/components/tree/src/tree.vue2.mjs.map +1 -1
- package/es/packages/components/upload/src/upload.vue2.mjs +2 -1
- package/es/packages/components/upload/src/upload.vue2.mjs.map +1 -1
- package/es/packages/directives/dis/src/dis.mjs +5 -0
- package/es/packages/directives/dis/src/dis.mjs.map +1 -1
- package/es/packages/directives/tip/src/tip.mjs +13 -0
- package/es/packages/directives/tip/src/tip.mjs.map +1 -1
- package/es/packages/hooks/index.d.mjs +1 -1
- package/es/packages/hooks/index.mjs +1 -1
- package/es/packages/hooks/useSetClass.mjs +5 -2
- package/es/packages/hooks/useSetClass.mjs.map +1 -1
- package/es/packages/locale/lang/en-US.mjs +5 -0
- package/es/packages/locale/lang/en-US.mjs.map +1 -1
- package/es/packages/locale/lang/zh-CN.mjs +5 -0
- package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
- package/lib/components/breadcrumb/src/breadcrumb.vue.d.ts +3 -1
- package/lib/components/msg/index.d.ts +22 -7
- package/lib/components/scroll/index.d.ts +0 -48
- package/lib/components/scroll/src/Scroll.vue.d.ts +0 -28
- package/lib/components/scroll/src/scroll.d.ts +0 -21
- package/lib/hooks/useSetClass.d.ts +4 -0
- package/lib/index.d.js +1 -0
- package/lib/index.d.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/packages/components/box/src/box.vue2.js +4 -2
- package/lib/packages/components/box/src/box.vue2.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue.js +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue.js.map +1 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue2.js +3 -1
- package/lib/packages/components/breadcrumb/src/breadcrumb.vue2.js.map +1 -1
- package/lib/packages/components/button/src/button.vue2.js +2 -4
- package/lib/packages/components/button/src/button.vue2.js.map +1 -1
- package/lib/packages/components/calendar/src/calendar.vue2.js +206 -232
- package/lib/packages/components/calendar/src/calendar.vue2.js.map +1 -1
- package/lib/packages/components/cascader/src/cascader.vue2.js +2 -1
- package/lib/packages/components/cascader/src/cascader.vue2.js.map +1 -1
- package/lib/packages/components/center-scroll/src/CenterScroll.vue2.js +2 -1
- package/lib/packages/components/center-scroll/src/CenterScroll.vue2.js.map +1 -1
- package/lib/packages/components/checkbox/src/Checkbox.vue2.js +14 -11
- package/lib/packages/components/checkbox/src/Checkbox.vue2.js.map +1 -1
- package/lib/packages/components/collapse/src/collapse.vue2.js +2 -1
- package/lib/packages/components/collapse/src/collapse.vue2.js.map +1 -1
- package/lib/packages/components/datepicker/src/DatePicker.vue2.js +3 -4
- package/lib/packages/components/datepicker/src/DatePicker.vue2.js.map +1 -1
- package/lib/packages/components/daterange/src/date-range.vue2.js +29 -9
- package/lib/packages/components/daterange/src/date-range.vue2.js.map +1 -1
- package/lib/packages/components/dialog/src/Dialog.vue2.js +2 -1
- package/lib/packages/components/dialog/src/Dialog.vue2.js.map +1 -1
- package/lib/packages/components/divider/src/divider.vue2.js +2 -1
- package/lib/packages/components/divider/src/divider.vue2.js.map +1 -1
- package/lib/packages/components/export/src/export.vue2.js +2 -1
- package/lib/packages/components/export/src/export.vue2.js.map +1 -1
- package/lib/packages/components/fix/src/Fix.vue2.js +2 -1
- package/lib/packages/components/fix/src/Fix.vue2.js.map +1 -1
- package/lib/packages/components/float/src/Float.vue2.js +2 -1
- package/lib/packages/components/float/src/Float.vue2.js.map +1 -1
- package/lib/packages/components/form/src/form.vue2.js +2 -1
- package/lib/packages/components/form/src/form.vue2.js.map +1 -1
- package/lib/packages/components/gap/src/gap.vue2.js +2 -1
- package/lib/packages/components/gap/src/gap.vue2.js.map +1 -1
- package/lib/packages/components/grid/src/grid.vue2.js +2 -1
- package/lib/packages/components/grid/src/grid.vue2.js.map +1 -1
- package/lib/packages/components/guider/src/guider.vue2.js +2 -1
- package/lib/packages/components/guider/src/guider.vue2.js.map +1 -1
- package/lib/packages/components/header/src/header.vue2.js +2 -1
- package/lib/packages/components/header/src/header.vue2.js.map +1 -1
- package/lib/packages/components/icon/src/icon.vue2.js +2 -1
- package/lib/packages/components/icon/src/icon.vue2.js.map +1 -1
- package/lib/packages/components/import/src/import.vue2.js +26 -28
- package/lib/packages/components/import/src/import.vue2.js.map +1 -1
- package/lib/packages/components/input/src/input.vue2.js +3 -4
- 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 +26 -15
- package/lib/packages/components/msg/index.js.map +1 -1
- package/lib/packages/components/msg/src/msg.vue2.js +6 -5
- package/lib/packages/components/msg/src/msg.vue2.js.map +1 -1
- package/lib/packages/components/padding/src/padding.vue2.js +2 -1
- package/lib/packages/components/padding/src/padding.vue2.js.map +1 -1
- package/lib/packages/components/page/src/page.vue2.js +2 -1
- package/lib/packages/components/page/src/page.vue2.js.map +1 -1
- package/lib/packages/components/param/src/Param.vue2.js +2 -1
- package/lib/packages/components/param/src/Param.vue2.js.map +1 -1
- package/lib/packages/components/pic/src/Pic.vue2.js +4 -2
- package/lib/packages/components/pic/src/Pic.vue2.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 +2 -1
- package/lib/packages/components/progress/src/Progress.vue2.js.map +1 -1
- package/lib/packages/components/range/src/range.vue2.js +2 -1
- package/lib/packages/components/range/src/range.vue2.js.map +1 -1
- package/lib/packages/components/rate/src/rate.vue2.js +2 -1
- package/lib/packages/components/rate/src/rate.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/Scroll.vue2.js +8 -218
- package/lib/packages/components/scroll/src/Scroll.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/scroll.js +0 -21
- package/lib/packages/components/scroll/src/scroll.js.map +1 -1
- package/lib/packages/components/segment/src/segment.vue.js +2 -1
- package/lib/packages/components/segment/src/segment.vue.js.map +1 -1
- package/lib/packages/components/select/src/hooks/use-select-class-style.js +2 -3
- package/lib/packages/components/select/src/hooks/use-select-class-style.js.map +1 -1
- package/lib/packages/components/select/src/select.vue2.js +122 -128
- package/lib/packages/components/select/src/select.vue2.js.map +1 -1
- package/lib/packages/components/slide/src/slide.vue2.js +2 -1
- package/lib/packages/components/slide/src/slide.vue2.js.map +1 -1
- package/lib/packages/components/step/src/step.vue2.js +2 -1
- package/lib/packages/components/step/src/step.vue2.js.map +1 -1
- package/lib/packages/components/switch/src/switch.vue2.js +2 -1
- package/lib/packages/components/switch/src/switch.vue2.js.map +1 -1
- package/lib/packages/components/tab/src/tab.vue2.js +2 -1
- package/lib/packages/components/tab/src/tab.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table.vue2.js +2 -1
- package/lib/packages/components/table/src/table.vue2.js.map +1 -1
- package/lib/packages/components/tag/src/tag.vue2.js +2 -1
- package/lib/packages/components/tag/src/tag.vue2.js.map +1 -1
- package/lib/packages/components/text/src/text.vue2.js +2 -1
- package/lib/packages/components/text/src/text.vue2.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 +2 -1
- package/lib/packages/components/timeline/src/timeline.vue2.js.map +1 -1
- package/lib/packages/components/tip/src/tip.vue2.js +2 -1
- package/lib/packages/components/tip/src/tip.vue2.js.map +1 -1
- package/lib/packages/components/tooltip/src/tooltip.vue2.js +2 -1
- package/lib/packages/components/tooltip/src/tooltip.vue2.js.map +1 -1
- package/lib/packages/components/transfer/src/transfer.vue2.js +2 -1
- package/lib/packages/components/transfer/src/transfer.vue2.js.map +1 -1
- package/lib/packages/components/tree/src/tree.vue2.js +2 -1
- package/lib/packages/components/tree/src/tree.vue2.js.map +1 -1
- package/lib/packages/components/upload/src/upload.vue2.js +2 -1
- package/lib/packages/components/upload/src/upload.vue2.js.map +1 -1
- package/lib/packages/directives/dis/src/dis.js +5 -0
- package/lib/packages/directives/dis/src/dis.js.map +1 -1
- package/lib/packages/directives/tip/src/tip.js +13 -0
- package/lib/packages/directives/tip/src/tip.js.map +1 -1
- package/lib/packages/hooks/index.d.js +1 -0
- package/lib/packages/hooks/index.d.js.map +1 -1
- package/lib/packages/hooks/index.js +1 -0
- package/lib/packages/hooks/index.js.map +1 -1
- package/lib/packages/hooks/useSetClass.js +5 -1
- package/lib/packages/hooks/useSetClass.js.map +1 -1
- package/lib/packages/locale/lang/en-US.js +5 -0
- package/lib/packages/locale/lang/en-US.js.map +1 -1
- package/lib/packages/locale/lang/zh-CN.js +5 -0
- package/lib/packages/locale/lang/zh-CN.js.map +1 -1
- package/package.json +1 -1
- package/theme/components/index.css +318 -343
- package/theme/img/loading.png +0 -0
- package/theme/index.css +318 -343
- package/theme/skin/default.css +318 -343
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.vue2.mjs","sources":["../../../../../../packages/components/progress/src/Progress.vue"],"sourcesContent":["<template>\n\t<span ref=\"elRef\" :flex=\"flex ? flex : null\" class=\"to-progress\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<template v-if=\"type === 'circle'\">\n\t\t\t<svg class=\"svg\" viewBox=\"0 0 100 100\">\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"thick\" class=\"to-progress-bg\" />\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"barThick\" transform=\"rotate(-90, 50, 50)\" :stroke-dashoffset=\"strokeDashoffset\" :stroke-dasharray=\"strokeDasharray\" class=\"to-progress-bar\" />\n\t\t\t</svg>\n\t\t\t<div class=\"to-progress-text\">\n\t\t\t\t<slot :title=\"titleValue\" :content=\"content\">\n\t\t\t\t\t<div class=\"to-progress-text-title\">{{ titleValue }}</div>\n\t\t\t\t\t<div v-if=\"content\" class=\"to-progress-text-content\">{{ content }}</div>\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t</template>\n\t\t<template v-else>\n\t\t\t<span class=\"to-progress-bg\">\n\t\t\t\t<span :style=\"setBarStyle\" class=\"to-progress-bar\">\n\t\t\t\t\t<span v-if=\"textPosition === 'inner'\" class=\"to-progress-text\">{{ textValue }}</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t\t<span v-if=\"textPosition === 'outer' && type !== 'loading'\" class=\"to-progress-text\" :style=\"setTextStyle\">\n\t\t\t\t{{ textValue }}\n\t\t\t</span>\n\t\t</template>\n\t</span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, onBeforeUnmount, watch, nextTick } from 'vue'\n\nexport default defineComponent({\n\tname: 'ToProgress',\n\tprops: {\n\t\tflex: Boolean,\n\t\t// 类型:normal 或 loading\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'normal',\n\t\t\tvalidator: (val: string) => ['normal', 'loading', 'circle'].includes(val)\n\t\t},\n\t\t// 进度条百分比,0~100的数字\n\t\tvalue: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 0,\n\t\t\trequired: true\n\t\t},\n\t\t// 模式\n\t\tmode: {\n\t\t\ttype: String,\n\t\t\tdefault: 'default'\n\t\t},\n\t\t// 文字\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 标题\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t},\n\t\t// 内容\n\t\tcontent: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度位置:outer(在外)、inner(在内)、none(不显示进度)\n\t\ttextPosition: {\n\t\t\ttype: String,\n\t\t\tdefault: 'inner',\n\t\t\tvalidator: (val: string) => ['outer', 'inner', 'none'].includes(val)\n\t\t},\n\t\t// 显示值的宽度设置\n\t\ttextWidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 'auto'\n\t\t},\n\t\t// 颜色\n\t\tcolor: {\n\t\t\ttype: String,\n\t\t\tdefault: 'primary'\n\t\t},\n\t\t// 宽度\n\t\twidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度条大小\n\t\tbarSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 1\n\t\t}\n\t},\n\tsetup(props) {\n\t\t// 响应式状态\n\t\tconst elRef = ref<HTMLElement | null>(null)\n\t\tconst radius = ref<number>(0)\n\t\tconst thick = ref<number>(0)\n\t\tconst barRadius = ref<number>(0)\n\t\tconst barThick = ref<number>(0)\n\t\tconst em = ref(0)\n\t\tconst offsetWidth = ref(0)\n\t\tconst iPercentage = ref('')\n\n\t\tconst getColor = (color: string) => {\n\t\t\tlet c = color\n\t\t\t// 随机色彩逻辑,实际项目中可能需要根据实际环境调整\n\t\t\tlet colors = ['primary', 'success', 'warning', 'danger', 'info', 'secondary', 'fg']\n\t\t\tlet number = Math.round(Math.random() * 6)\n\t\t\tif (color === 'radam') {\n\t\t\t\tc = colors[number]\n\t\t\t}\n\n\t\t\tswitch (c) {\n\t\t\t\tcase 'fg':\n\t\t\t\t\treturn '#000'\n\t\t\t\tcase 'info':\n\t\t\t\t\treturn '#999'\n\t\t\t\tcase 'warning':\n\t\t\t\t\treturn '#f3b100'\n\t\t\t\tcase 'success':\n\t\t\t\t\treturn '#8fc320'\n\t\t\t\tcase 'danger':\n\t\t\t\t\treturn '#e40077'\n\t\t\t\tcase 'secondary':\n\t\t\t\t\treturn '#4d5b65'\n\t\t\t\tcase 'primary':\n\t\t\t\t\treturn '#0085d0'\n\t\t\t\tdefault:\n\t\t\t\t\treturn color\n\t\t\t}\n\t\t}\n\n\t\tconst circumference = computed(() => 2 * Math.PI * radius.value)\n\t\tconst strokeDasharray = computed(() => circumference.value)\n\t\tconst strokeDashoffset = computed(() => circumference.value * (1 - Number(props.value) / 100))\n\n\t\tconst textValue = computed(() => {\n\t\t\tif (props.text) {\n\t\t\t\treturn props.text\n\t\t\t} else {\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst titleValue = computed(() => {\n\t\t\tif (props.title !== undefined) {\n\t\t\t\treturn props.title\n\t\t\t} else {\n\t\t\t\t// 如果是100%,可以显示完成标识\n\t\t\t\tconst percentValue = Number(iPercentage.value.replace('%', ''))\n\t\t\t\tif (percentValue >= 100 && props.type === 'circle') {\n\t\t\t\t\treturn '100%'\n\t\t\t\t}\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst setClass = computed(() => {\n\t\t\tconst arr: string[] = []\n\t\t\tarr.push(`color-${props.color}`)\n\t\t\tif (props.textPosition) {\n\t\t\t\tarr.push(`text-position-${props.textPosition}`)\n\t\t\t}\n\t\t\tif (props.type) {\n\t\t\t\tarr.push(`type-${props.type}`)\n\t\t\t}\n\t\t\tif (props.mode) {\n\t\t\t\tarr.push(`mode-${props.mode}`)\n\t\t\t}\n\t\t\treturn arr\n\t\t})\n\n\t\tconst setStyle = computed(() => {\n\t\t\tconst obj: Record<string, string> = {}\n\t\t\tif (props.width) {\n\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\t// 保持1:1的宽高比\n\t\t\t\t\t\tconst size = Number(props.width) + 'em'\n\t\t\t\t\t\tobj.width = size\n\t\t\t\t\t\tobj.height = size\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t\t// 强制保持1:1的宽高比\n\t\t\t\t\t\tobj.aspectRatio = '1/1'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t\tobj.height = props.width as string\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\tobj.width = props.width + 'em'\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn obj\n\t\t})\n\n\t\tconst setBarStyle = computed(() => {\n\t\t\treturn 'width:' + iPercentage.value\n\t\t})\n\n\t\tconst setTextStyle = computed(() => {\n\t\t\tif (props.textWidth === 'auto') {\n\t\t\t\treturn ''\n\t\t\t} else {\n\t\t\t\treturn 'width:' + props.textWidth + 'em'\n\t\t\t}\n\t\t})\n\n\t\t// 方法\n\t\tconst setPercentage = () => {\n\t\t\tlet p = 0\n\t\t\tif ((props.value + '').indexOf('%') > -1) {\n\t\t\t\tp = Number((props.value as string).replace('%', ''))\n\t\t\t} else {\n\t\t\t\tp = Number(props.value)\n\t\t\t}\n\t\t\tif (p < 0) {\n\t\t\t\tp = 0\n\t\t\t}\n\t\t\tiPercentage.value = p + '%'\n\t\t}\n\n\t\tconst init = () => {\n\t\t\tlet timer: number | null = null\n\t\t\ttimer = window.setTimeout(() => {\n\t\t\t\tem.value = 12 // 基础单位,可能需要根据实际项目调整\n\t\t\t\tconst el = document.querySelector('.to-progress') as HTMLElement\n\t\t\t\tif (el) {\n\t\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\t\t// 获取基础值\n\t\t\t\t\t\tconst circleBgTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--thick'))\n\t\t\t\t\t\tconst circleBarTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--bar-thick'))\n\t\t\t\t\t\tconst width = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--width'))\n\n\t\t\t\t\t\t// 计算半径\n\t\t\t\t\t\tthick.value = (circleBgTick / width) * 100\n\t\t\t\t\t\tbarThick.value = (circleBarTick / width) * 100\n\t\t\t\t\t\tradius.value = 50 - Math.max(thick.value, barThick.value) / 2\n\n\t\t\t\t\t\t// 环形进度条使用固定尺寸\n\t\t\t\t\t\toffsetWidth.value = 120 // 默认大小为120px\n\n\t\t\t\t\t\t// 如果指定了width属性,则覆盖默认值\n\t\t\t\t\t\tif (typeof props.width === 'number') {\n\t\t\t\t\t\t\toffsetWidth.value = props.width * 16 // 转换em为px\n\t\t\t\t\t\t} else if (props.width === 'full' && el.parentElement) {\n\t\t\t\t\t\t\toffsetWidth.value = el.parentElement.offsetWidth\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\toffsetWidth.value = el.offsetWidth\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (timer) {\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = null\n\t\t\t\t}\n\t\t\t}, 200)\n\t\t}\n\n\t\t// 生命周期钩子\n\t\tonMounted(() => {\n\t\t\twindow.addEventListener('resize', init)\n\t\t\tnextTick(() => {\n\t\t\t\tinit()\n\t\t\t})\n\t\t})\n\n\t\tonBeforeUnmount(() => {\n\t\t\twindow.removeEventListener('resize', init)\n\t\t})\n\n\t\t// 监听属性变化\n\t\twatch(\n\t\t\t() => props.value,\n\t\t\t() => {\n\t\t\t\tsetPercentage()\n\t\t\t}\n\t\t)\n\n\t\t// 初始化\n\t\tsetPercentage()\n\n\t\treturn {\n\t\t\tthick,\n\t\t\telRef,\n\t\t\tem,\n\t\t\tbarThick,\n\t\t\tbarRadius,\n\t\t\toffsetWidth,\n\t\t\tiPercentage,\n\t\t\tgetColor,\n\t\t\tradius,\n\t\t\tstrokeDasharray,\n\t\t\tstrokeDashoffset,\n\t\t\ttextValue,\n\t\t\ttitleValue,\n\t\t\tsetClass,\n\t\t\tsetStyle,\n\t\t\tsetBarStyle,\n\t\t\tsetTextStyle\n\t\t}\n\t}\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Progress.vue2.mjs","sources":["../../../../../../packages/components/progress/src/Progress.vue"],"sourcesContent":["<template>\n\t<span ref=\"elRef\" :flex=\"flex ? flex : null\" class=\"to-progress\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<template v-if=\"type === 'circle'\">\n\t\t\t<svg class=\"svg\" viewBox=\"0 0 100 100\">\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"thick\" class=\"to-progress-bg\" />\n\t\t\t\t<circle cx=\"50\" cy=\"50\" :r=\"radius\" fill=\"none\" :stroke-width=\"barThick\" transform=\"rotate(-90, 50, 50)\" :stroke-dashoffset=\"strokeDashoffset\" :stroke-dasharray=\"strokeDasharray\" class=\"to-progress-bar\" />\n\t\t\t</svg>\n\t\t\t<div class=\"to-progress-text\">\n\t\t\t\t<slot :title=\"titleValue\" :content=\"content\">\n\t\t\t\t\t<div class=\"to-progress-text-title\">{{ titleValue }}</div>\n\t\t\t\t\t<div v-if=\"content\" class=\"to-progress-text-content\">{{ content }}</div>\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t</template>\n\t\t<template v-else>\n\t\t\t<span class=\"to-progress-bg\">\n\t\t\t\t<span :style=\"setBarStyle\" class=\"to-progress-bar\">\n\t\t\t\t\t<span v-if=\"textPosition === 'inner'\" class=\"to-progress-text\">{{ textValue }}</span>\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t\t<span v-if=\"textPosition === 'outer' && type !== 'loading'\" class=\"to-progress-text\" :style=\"setTextStyle\">\n\t\t\t\t{{ textValue }}\n\t\t\t</span>\n\t\t</template>\n\t</span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, onBeforeUnmount, watch, nextTick } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\n\nexport default defineComponent({\n\tname: 'ToProgress',\n\tprops: {\n\t\tflex: Boolean,\n\t\t// 类型:normal 或 loading\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'normal',\n\t\t\tvalidator: (val: string) => ['normal', 'loading', 'circle'].includes(val)\n\t\t},\n\t\t// 进度条百分比,0~100的数字\n\t\tvalue: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 0,\n\t\t\trequired: true\n\t\t},\n\t\t// 模式\n\t\tmode: {\n\t\t\ttype: String,\n\t\t\tdefault: 'default'\n\t\t},\n\t\t// 文字\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 标题\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined\n\t\t},\n\t\t// 内容\n\t\tcontent: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度位置:outer(在外)、inner(在内)、none(不显示进度)\n\t\ttextPosition: {\n\t\t\ttype: String,\n\t\t\tdefault: 'inner',\n\t\t\tvalidator: (val: string) => ['outer', 'inner', 'none'].includes(val)\n\t\t},\n\t\t// 显示值的宽度设置\n\t\ttextWidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 'auto'\n\t\t},\n\t\t// 颜色\n\t\tcolor: {\n\t\t\ttype: String,\n\t\t\tdefault: 'primary'\n\t\t},\n\t\t// 宽度\n\t\twidth: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: ''\n\t\t},\n\t\t// 进度条大小\n\t\tbarSize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 1\n\t\t}\n\t},\n\tsetup(props) {\n\t\t// 响应式状态\n\t\tconst elRef = ref<HTMLElement | null>(null)\n\t\tconst radius = ref<number>(0)\n\t\tconst thick = ref<number>(0)\n\t\tconst barRadius = ref<number>(0)\n\t\tconst barThick = ref<number>(0)\n\t\tconst em = ref(0)\n\t\tconst offsetWidth = ref(0)\n\t\tconst iPercentage = ref('')\n\n\t\tconst getColor = (color: string) => {\n\t\t\tlet c = color\n\t\t\t// 随机色彩逻辑,实际项目中可能需要根据实际环境调整\n\t\t\tlet colors = ['primary', 'success', 'warning', 'danger', 'info', 'secondary', 'fg']\n\t\t\tlet number = Math.round(Math.random() * 6)\n\t\t\tif (color === 'radam') {\n\t\t\t\tc = colors[number]\n\t\t\t}\n\n\t\t\tswitch (c) {\n\t\t\t\tcase 'fg':\n\t\t\t\t\treturn '#000'\n\t\t\t\tcase 'info':\n\t\t\t\t\treturn '#999'\n\t\t\t\tcase 'warning':\n\t\t\t\t\treturn '#f3b100'\n\t\t\t\tcase 'success':\n\t\t\t\t\treturn '#8fc320'\n\t\t\t\tcase 'danger':\n\t\t\t\t\treturn '#e40077'\n\t\t\t\tcase 'secondary':\n\t\t\t\t\treturn '#4d5b65'\n\t\t\t\tcase 'primary':\n\t\t\t\t\treturn '#0085d0'\n\t\t\t\tdefault:\n\t\t\t\t\treturn color\n\t\t\t}\n\t\t}\n\n\t\tconst circumference = computed(() => 2 * Math.PI * radius.value)\n\t\tconst strokeDasharray = computed(() => circumference.value)\n\t\tconst strokeDashoffset = computed(() => circumference.value * (1 - Number(props.value) / 100))\n\n\t\tconst textValue = computed(() => {\n\t\t\tif (props.text) {\n\t\t\t\treturn props.text\n\t\t\t} else {\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst titleValue = computed(() => {\n\t\t\tif (props.title !== undefined) {\n\t\t\t\treturn props.title\n\t\t\t} else {\n\t\t\t\t// 如果是100%,可以显示完成标识\n\t\t\t\tconst percentValue = Number(iPercentage.value.replace('%', ''))\n\t\t\t\tif (percentValue >= 100 && props.type === 'circle') {\n\t\t\t\t\treturn '100%'\n\t\t\t\t}\n\t\t\t\treturn iPercentage.value\n\t\t\t}\n\t\t})\n\n\t\tconst setClass = computed(() => {\n\t\t\tconst arr: string[] = []\n\t\t\tarr.push(`color-${props.color}`)\n\t\t\tif (props.textPosition) {\n\t\t\t\tarr.push(`text-position-${props.textPosition}`)\n\t\t\t}\n\t\t\tif (props.type) {\n\t\t\t\tarr.push(`type-${props.type}`)\n\t\t\t}\n\t\t\tif (props.mode) {\n\t\t\t\tarr.push(...getModeClasses(props.mode))\n\t\t\t}\n\t\t\treturn arr\n\t\t})\n\n\t\tconst setStyle = computed(() => {\n\t\t\tconst obj: Record<string, string> = {}\n\t\t\tif (props.width) {\n\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\t// 保持1:1的宽高比\n\t\t\t\t\t\tconst size = Number(props.width) + 'em'\n\t\t\t\t\t\tobj.width = size\n\t\t\t\t\t\tobj.height = size\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t\t// 强制保持1:1的宽高比\n\t\t\t\t\t\tobj.aspectRatio = '1/1'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t\tobj.height = props.width as string\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!isNaN(Number(props.width))) {\n\t\t\t\t\t\tobj.width = props.width + 'em'\n\t\t\t\t\t} else if (props.width === 'full') {\n\t\t\t\t\t\tobj.width = '100%'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.width = props.width as string\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn obj\n\t\t})\n\n\t\tconst setBarStyle = computed(() => {\n\t\t\treturn 'width:' + iPercentage.value\n\t\t})\n\n\t\tconst setTextStyle = computed(() => {\n\t\t\tif (props.textWidth === 'auto') {\n\t\t\t\treturn ''\n\t\t\t} else {\n\t\t\t\treturn 'width:' + props.textWidth + 'em'\n\t\t\t}\n\t\t})\n\n\t\t// 方法\n\t\tconst setPercentage = () => {\n\t\t\tlet p = 0\n\t\t\tif ((props.value + '').indexOf('%') > -1) {\n\t\t\t\tp = Number((props.value as string).replace('%', ''))\n\t\t\t} else {\n\t\t\t\tp = Number(props.value)\n\t\t\t}\n\t\t\tif (p < 0) {\n\t\t\t\tp = 0\n\t\t\t}\n\t\t\tiPercentage.value = p + '%'\n\t\t}\n\n\t\tconst init = () => {\n\t\t\tlet timer: number | null = null\n\t\t\ttimer = window.setTimeout(() => {\n\t\t\t\tem.value = 12 // 基础单位,可能需要根据实际项目调整\n\t\t\t\tconst el = document.querySelector('.to-progress') as HTMLElement\n\t\t\t\tif (el) {\n\t\t\t\t\tif (props.type === 'circle') {\n\t\t\t\t\t\t// 获取基础值\n\t\t\t\t\t\tconst circleBgTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--thick'))\n\t\t\t\t\t\tconst circleBarTick = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--bar-thick'))\n\t\t\t\t\t\tconst width = parseFloat(getComputedStyle(elRef.value).getPropertyValue('--width'))\n\n\t\t\t\t\t\t// 计算半径\n\t\t\t\t\t\tthick.value = (circleBgTick / width) * 100\n\t\t\t\t\t\tbarThick.value = (circleBarTick / width) * 100\n\t\t\t\t\t\tradius.value = 50 - Math.max(thick.value, barThick.value) / 2\n\n\t\t\t\t\t\t// 环形进度条使用固定尺寸\n\t\t\t\t\t\toffsetWidth.value = 120 // 默认大小为120px\n\n\t\t\t\t\t\t// 如果指定了width属性,则覆盖默认值\n\t\t\t\t\t\tif (typeof props.width === 'number') {\n\t\t\t\t\t\t\toffsetWidth.value = props.width * 16 // 转换em为px\n\t\t\t\t\t\t} else if (props.width === 'full' && el.parentElement) {\n\t\t\t\t\t\t\toffsetWidth.value = el.parentElement.offsetWidth\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\toffsetWidth.value = el.offsetWidth\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (timer) {\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = null\n\t\t\t\t}\n\t\t\t}, 200)\n\t\t}\n\n\t\t// 生命周期钩子\n\t\tonMounted(() => {\n\t\t\twindow.addEventListener('resize', init)\n\t\t\tnextTick(() => {\n\t\t\t\tinit()\n\t\t\t})\n\t\t})\n\n\t\tonBeforeUnmount(() => {\n\t\t\twindow.removeEventListener('resize', init)\n\t\t})\n\n\t\t// 监听属性变化\n\t\twatch(\n\t\t\t() => props.value,\n\t\t\t() => {\n\t\t\t\tsetPercentage()\n\t\t\t}\n\t\t)\n\n\t\t// 初始化\n\t\tsetPercentage()\n\n\t\treturn {\n\t\t\tthick,\n\t\t\telRef,\n\t\t\tem,\n\t\t\tbarThick,\n\t\t\tbarRadius,\n\t\t\toffsetWidth,\n\t\t\tiPercentage,\n\t\t\tgetColor,\n\t\t\tradius,\n\t\t\tstrokeDasharray,\n\t\t\tstrokeDashoffset,\n\t\t\ttextValue,\n\t\t\ttitleValue,\n\t\t\tsetClass,\n\t\t\tsetStyle,\n\t\t\tsetBarStyle,\n\t\t\tsetTextStyle\n\t\t}\n\t}\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defineComponent, ref, onMounted, watch, nextTick, computed, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, createCommentVNode, createBlock, unref } from 'vue';
|
|
2
2
|
import { ToInput } from '../../input/index.mjs';
|
|
3
|
+
import { getModeClasses } from '../../../hooks/useSetClass.mjs';
|
|
3
4
|
|
|
4
5
|
const __default__ = defineComponent({
|
|
5
6
|
name: "ToRange"
|
|
@@ -109,7 +110,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
109
110
|
arr.push(`is-disabled`);
|
|
110
111
|
}
|
|
111
112
|
if (props.mode) {
|
|
112
|
-
arr.push(
|
|
113
|
+
arr.push(...getModeClasses(props.mode));
|
|
113
114
|
}
|
|
114
115
|
return arr;
|
|
115
116
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.vue2.mjs","sources":["../../../../../../packages/components/range/src/range.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToRange'\n});\n</script>\n<template>\n\t<span class=\"to-range\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\" @touchmove=\"moveHandle($event)\" @touchend=\"endHandle($event)\">\n\t\t<span ref=\"barRef\" class=\"to-range-bar\">\n\t\t\t<span ref=\"progressRef\" class=\"to-range-progress\" :style=\"{ width: endProgress - startProgress + '%', left: startProgress + '%' }\">\n\t\t\t\t<span v-if=\"start\" ref=\"startRef\" class=\"to-range-handle is-start\" @mousedown=\"onStartButtonDown\"></span>\n\t\t\t\t<span ref=\"endRef\" class=\"to-range-handle\" @mousedown=\"onButtonDown\" @touchstart=\"endStartHandle($event)\"></span>\n\t\t\t</span>\n\t\t</span>\n\t\t<to-input v-if=\"inputable\" v-model=\"endProgress\" class=\"to-range-input\" :width=\"inputWidth\" :dot=\"fixed\"></to-input>\n\t</span>\n</template>\n<script lang=\"ts\" setup>\nimport { CSSProperties, computed, nextTick, onMounted, ref, watch } from 'vue'\nimport { ToInput } from '@touchvue/components'\n\n\nexport interface RangeProps {\n\tflex?: boolean\n\tmode?: string\n\tmodelValue?: string | number\n\tdisabled?: boolean\n\tinputable?: boolean\n\tmax?: string | number\n\tmin?: string | number\n\truler?: boolean\n\tstart?: boolean\n\tstep?: string | number\n\twidth?: string | number\n\tinputWidth?: string | number\n\ttoFixed?: string | number\n}\nconst props = withDefaults(defineProps<RangeProps>(), {\n\tmode: 'default',\n\tmodelValue: 0,\n\tdisabled: false,\n\tinputable: false,\n\tmax: 100,\n\tmin: 0,\n\tflex: false,\n\truler: false,\n\tstart: false,\n\tstep: 1,\n\twidth: '',\n\tinputWidth: 6,\n\ttoFixed: 0\n})\n\nconst endProgress = ref(0)\nconst startProgress = ref(0)\nconst progressRef = ref(null)\nconst endRef = ref(null)\nconst startRef = ref(null)\nconst barRef = ref(null)\nconst endDragX = ref(0)\nconst startDragX = ref(0)\nconst endProgressWidth = ref(0)\nconst startLeft = ref(0)\nconst fixed = ref(0)\nconst valueWidth = ref(0)\nconst stepProgress = ref(0)\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\nonMounted(() => {\n\tvalueWidth.value = Number(props.max) - Number(props.min)\n\tif (props.step) {\n\t\tstepProgress.value = Number(((1 / (valueWidth.value / Number(props.step))) * 100).toFixed(2))\n\t}\n\tfixed.value = Number(props.toFixed) ? Number(props.toFixed) : getDecimalPlaces(props.min)\n})\nwatch(\n\t() => endProgress.value,\n\tval => {\n\t\tnextTick(() => {\n\t\t\tlet value: string | number = 0\n\t\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\t\tlet startValue = (Number(props.min) + valueWidth * (startProgress.value / 100)).toFixed(fixed.value)\n\t\t\tlet endValue = (Number(props.min) + valueWidth * (val / 100)).toFixed(fixed.value)\n\t\t\tif (props.start) {\n\t\t\t\tvalue = `${startValue},${Math.max(Number(startValue), Number(endValue))}`\n\t\t\t} else {\n\t\t\t\tvalue = endValue\n\t\t\t}\n\t\t\temit('update:modelValue', value)\n\t\t})\n\t}\n)\n\nwatch(\n\t() => startProgress.value,\n\tval => {\n\t\tnextTick(() => {\n\t\t\tlet value: string | number = 0\n\t\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\t\tlet startValue = (Number(props.min) + valueWidth * (val / 100)).toFixed(fixed.value)\n\t\t\tlet endValue = (Number(props.min) + valueWidth * (endProgress.value / 100)).toFixed(fixed.value)\n\t\t\tif (props.start) {\n\t\t\t\tvalue = `${startValue},${Math.max(Number(startValue), Number(endValue))}`\n\t\t\t} else {\n\t\t\t\tvalue = endValue\n\t\t\t}\n\t\t\temit('update:modelValue', value)\n\t\t})\n\t}\n)\n\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\tif (props.start && typeof val === 'string') {\n\t\t\tlet arr = val.split(',')\n\t\t\tendProgress.value = ((Number(arr[1]) - Number(props.min)) / valueWidth) * 100\n\t\t\tstartProgress.value = ((Number(arr[0]) - Number(props.min)) / valueWidth) * 100\n\t\t} else {\n\t\t\tlet width = ((Number(val) - Number(props.min)) / valueWidth) * 100\n\t\t\tendProgress.value = width\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nfunction getDecimalPlaces(num) {\n\t// 处理整数(无小数点)的情况\n\tif (Number.isInteger(num)) return 0\n\n\t// 将数字转为字符串并按小数点分割\n\tconst parts = num.toString().split('.')\n\n\t// 小数点后部分的长度即为小数位数(若没有小数点,返回0)\n\treturn parts.length > 1 ? parts[1].length : 0\n}\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.inputable) {\n\t\tarr.push(`is-inputable`)\n\t}\n\tif (props.disabled) {\n\t\tarr.push(`is-disabled`)\n\t}\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\treturn arr\n})\nconst setStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.width) {\n\t\tobj.width = isNaN(Number(props.width)) ? props.width : `${props.width}em`\n\t}\n\treturn obj\n})\n\nfunction onButtonDown(event: MouseEvent) {\n\tif (props.disabled) return false\n\tevent.preventDefault()\n\tonEndDragStart(event)\n\twindow.addEventListener('mousemove', onDragging)\n\twindow.addEventListener('touchmove', onDragging)\n\twindow.addEventListener('mouseup', onDragEnd)\n\twindow.addEventListener('touchend', onDragEnd)\n\twindow.addEventListener('contextmenu', onDragEnd)\n}\nfunction onStartButtonDown(event: MouseEvent) {\n\tif (props.disabled) return false\n\tevent.preventDefault()\n\tonStartDragStart(event)\n\twindow.addEventListener('mousemove', onStartDragging)\n\twindow.addEventListener('touchmove', onStartDragging)\n\twindow.addEventListener('mouseup', onStartDragEnd)\n\twindow.addEventListener('touchend', onStartDragEnd)\n\twindow.addEventListener('contextmenu', onStartDragEnd)\n}\nfunction onStartDragStart(event: MouseEvent) {\n\tstartDragX.value = event.clientX\n\tstartLeft.value = Number(progressRef.value.style.left.split('%')[0])\n}\nfunction onEndDragStart(event: MouseEvent) {\n\tendDragX.value = event.clientX\n\tendProgressWidth.value = progressRef.value.offsetWidth\n}\nfunction onStartDragging(e: MouseEvent) {\n\tlet width = e.clientX - startDragX.value\n\tlet barWidth = barRef.value.offsetWidth\n\tif (width > 0) {\n\t\tlet per = startLeft.value + (width / barWidth) * 100\n\t\tif (per < endProgress.value) {\n\t\t\tstartProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t}\n\t} else if (width <= 0) {\n\t\tlet per = startLeft.value + (width / barWidth) * 100\n\t\tif (per <= 0) {\n\t\t\tstartProgress.value = 0\n\t\t} else {\n\t\t\tstartProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t}\n\t}\n}\nfunction onDragging(e: MouseEvent) {\n\tlet width = e.clientX - endDragX.value //变动值\n\tlet barWidth = barRef.value.offsetWidth //滚动区域总宽度\n\tlet startWidth = (startProgress.value / 100) * barWidth //开始按钮的位置\n\tif (props.start) {\n\t\tlet per = (width / barWidth) * 100 + ((endProgressWidth.value + startWidth) * 100) / barWidth\n\t\tif (width > 0) {\n\t\t\tif (width > barWidth - startWidth) {\n\t\t\t\tendProgress.value = 100\n\t\t\t} else {\n\t\t\t\tif (per <= 100) {\n\t\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t\t} else {\n\t\t\t\t\tendProgress.value = 100\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (width <= 0) {\n\t\t\tif (Math.abs(width) > barWidth - startWidth) {\n\t\t\t\tendProgress.value = startProgress.value\n\t\t\t} else {\n\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (width > 0) {\n\t\t\tif (width > barWidth) {\n\t\t\t\tendProgress.value = 100\n\t\t\t} else {\n\t\t\t\tlet per = (endProgressWidth.value / barWidth + width / barWidth) * 100\n\t\t\t\tif (per <= 100) {\n\t\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t\t} else {\n\t\t\t\t\tendProgress.value = 100\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (width <= 0) {\n\t\t\tlet per = (width / barWidth) * 100 + (endProgressWidth.value / barWidth) * 100\n\t\t\tif (per >= 0) {\n\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t} else if (per < 0) {\n\t\t\t\tendProgress.value = 0\n\t\t\t}\n\t\t}\n\t}\n}\nfunction onDragEnd() {\n\twindow.removeEventListener('mousemove', onDragging)\n\twindow.removeEventListener('touchmove', onDragging)\n\twindow.removeEventListener('mouseup', onDragEnd)\n\twindow.removeEventListener('touchend', onDragEnd)\n\twindow.removeEventListener('contextmenu', onDragEnd)\n}\nfunction onStartDragEnd() {\n\twindow.removeEventListener('mousemove', onStartDragging)\n\twindow.removeEventListener('touchmove', onStartDragging)\n\twindow.removeEventListener('mouseup', onStartDragEnd)\n\twindow.removeEventListener('touchend', onStartDragEnd)\n\twindow.removeEventListener('contextmenu', onStartDragEnd)\n}\nfunction endStartHandle(event) {\n\tconsole.log('endStartHandle', event)\n}\nfunction moveHandle(event) {\n\tconsole.log('moveHandle', event)\n}\nfunction endHandle(event) {\n\tconsole.log('moveHandle', event)\n}\n</script>\n"],"names":["DO_defineComponent","valueWidth","_createElementBlock","_normalizeClass","flex","_createElementVNode","_normalizeStyle","start","inputable","_createBlock","_unref","inputWidth"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"range.vue2.mjs","sources":["../../../../../../packages/components/range/src/range.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToRange'\n});\n</script>\n<template>\n\t<span class=\"to-range\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\" @touchmove=\"moveHandle($event)\" @touchend=\"endHandle($event)\">\n\t\t<span ref=\"barRef\" class=\"to-range-bar\">\n\t\t\t<span ref=\"progressRef\" class=\"to-range-progress\" :style=\"{ width: endProgress - startProgress + '%', left: startProgress + '%' }\">\n\t\t\t\t<span v-if=\"start\" ref=\"startRef\" class=\"to-range-handle is-start\" @mousedown=\"onStartButtonDown\"></span>\n\t\t\t\t<span ref=\"endRef\" class=\"to-range-handle\" @mousedown=\"onButtonDown\" @touchstart=\"endStartHandle($event)\"></span>\n\t\t\t</span>\n\t\t</span>\n\t\t<to-input v-if=\"inputable\" v-model=\"endProgress\" class=\"to-range-input\" :width=\"inputWidth\" :dot=\"fixed\"></to-input>\n\t</span>\n</template>\n<script lang=\"ts\" setup>\nimport { CSSProperties, computed, nextTick, onMounted, ref, watch } from 'vue'\nimport { getModeClasses } from '@touchvue/hooks'\nimport { ToInput } from '@touchvue/components'\n\n\nexport interface RangeProps {\n\tflex?: boolean\n\tmode?: string\n\tmodelValue?: string | number\n\tdisabled?: boolean\n\tinputable?: boolean\n\tmax?: string | number\n\tmin?: string | number\n\truler?: boolean\n\tstart?: boolean\n\tstep?: string | number\n\twidth?: string | number\n\tinputWidth?: string | number\n\ttoFixed?: string | number\n}\nconst props = withDefaults(defineProps<RangeProps>(), {\n\tmode: 'default',\n\tmodelValue: 0,\n\tdisabled: false,\n\tinputable: false,\n\tmax: 100,\n\tmin: 0,\n\tflex: false,\n\truler: false,\n\tstart: false,\n\tstep: 1,\n\twidth: '',\n\tinputWidth: 6,\n\ttoFixed: 0\n})\n\nconst endProgress = ref(0)\nconst startProgress = ref(0)\nconst progressRef = ref(null)\nconst endRef = ref(null)\nconst startRef = ref(null)\nconst barRef = ref(null)\nconst endDragX = ref(0)\nconst startDragX = ref(0)\nconst endProgressWidth = ref(0)\nconst startLeft = ref(0)\nconst fixed = ref(0)\nconst valueWidth = ref(0)\nconst stepProgress = ref(0)\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\nonMounted(() => {\n\tvalueWidth.value = Number(props.max) - Number(props.min)\n\tif (props.step) {\n\t\tstepProgress.value = Number(((1 / (valueWidth.value / Number(props.step))) * 100).toFixed(2))\n\t}\n\tfixed.value = Number(props.toFixed) ? Number(props.toFixed) : getDecimalPlaces(props.min)\n})\nwatch(\n\t() => endProgress.value,\n\tval => {\n\t\tnextTick(() => {\n\t\t\tlet value: string | number = 0\n\t\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\t\tlet startValue = (Number(props.min) + valueWidth * (startProgress.value / 100)).toFixed(fixed.value)\n\t\t\tlet endValue = (Number(props.min) + valueWidth * (val / 100)).toFixed(fixed.value)\n\t\t\tif (props.start) {\n\t\t\t\tvalue = `${startValue},${Math.max(Number(startValue), Number(endValue))}`\n\t\t\t} else {\n\t\t\t\tvalue = endValue\n\t\t\t}\n\t\t\temit('update:modelValue', value)\n\t\t})\n\t}\n)\n\nwatch(\n\t() => startProgress.value,\n\tval => {\n\t\tnextTick(() => {\n\t\t\tlet value: string | number = 0\n\t\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\t\tlet startValue = (Number(props.min) + valueWidth * (val / 100)).toFixed(fixed.value)\n\t\t\tlet endValue = (Number(props.min) + valueWidth * (endProgress.value / 100)).toFixed(fixed.value)\n\t\t\tif (props.start) {\n\t\t\t\tvalue = `${startValue},${Math.max(Number(startValue), Number(endValue))}`\n\t\t\t} else {\n\t\t\t\tvalue = endValue\n\t\t\t}\n\t\t\temit('update:modelValue', value)\n\t\t})\n\t}\n)\n\nwatch(\n\t() => props.modelValue,\n\tval => {\n\t\tlet valueWidth = Number(props.max) - Number(props.min)\n\t\tif (props.start && typeof val === 'string') {\n\t\t\tlet arr = val.split(',')\n\t\t\tendProgress.value = ((Number(arr[1]) - Number(props.min)) / valueWidth) * 100\n\t\t\tstartProgress.value = ((Number(arr[0]) - Number(props.min)) / valueWidth) * 100\n\t\t} else {\n\t\t\tlet width = ((Number(val) - Number(props.min)) / valueWidth) * 100\n\t\t\tendProgress.value = width\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nfunction getDecimalPlaces(num) {\n\t// 处理整数(无小数点)的情况\n\tif (Number.isInteger(num)) return 0\n\n\t// 将数字转为字符串并按小数点分割\n\tconst parts = num.toString().split('.')\n\n\t// 小数点后部分的长度即为小数位数(若没有小数点,返回0)\n\treturn parts.length > 1 ? parts[1].length : 0\n}\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\tif (props.inputable) {\n\t\tarr.push(`is-inputable`)\n\t}\n\tif (props.disabled) {\n\t\tarr.push(`is-disabled`)\n\t}\n\tif (props.mode) {\n\t\tarr.push(...getModeClasses(props.mode))\n\t}\n\treturn arr\n})\nconst setStyle = computed(() => {\n\tlet obj: CSSProperties = {}\n\tif (props.width) {\n\t\tobj.width = isNaN(Number(props.width)) ? props.width : `${props.width}em`\n\t}\n\treturn obj\n})\n\nfunction onButtonDown(event: MouseEvent) {\n\tif (props.disabled) return false\n\tevent.preventDefault()\n\tonEndDragStart(event)\n\twindow.addEventListener('mousemove', onDragging)\n\twindow.addEventListener('touchmove', onDragging)\n\twindow.addEventListener('mouseup', onDragEnd)\n\twindow.addEventListener('touchend', onDragEnd)\n\twindow.addEventListener('contextmenu', onDragEnd)\n}\nfunction onStartButtonDown(event: MouseEvent) {\n\tif (props.disabled) return false\n\tevent.preventDefault()\n\tonStartDragStart(event)\n\twindow.addEventListener('mousemove', onStartDragging)\n\twindow.addEventListener('touchmove', onStartDragging)\n\twindow.addEventListener('mouseup', onStartDragEnd)\n\twindow.addEventListener('touchend', onStartDragEnd)\n\twindow.addEventListener('contextmenu', onStartDragEnd)\n}\nfunction onStartDragStart(event: MouseEvent) {\n\tstartDragX.value = event.clientX\n\tstartLeft.value = Number(progressRef.value.style.left.split('%')[0])\n}\nfunction onEndDragStart(event: MouseEvent) {\n\tendDragX.value = event.clientX\n\tendProgressWidth.value = progressRef.value.offsetWidth\n}\nfunction onStartDragging(e: MouseEvent) {\n\tlet width = e.clientX - startDragX.value\n\tlet barWidth = barRef.value.offsetWidth\n\tif (width > 0) {\n\t\tlet per = startLeft.value + (width / barWidth) * 100\n\t\tif (per < endProgress.value) {\n\t\t\tstartProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t}\n\t} else if (width <= 0) {\n\t\tlet per = startLeft.value + (width / barWidth) * 100\n\t\tif (per <= 0) {\n\t\t\tstartProgress.value = 0\n\t\t} else {\n\t\t\tstartProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t}\n\t}\n}\nfunction onDragging(e: MouseEvent) {\n\tlet width = e.clientX - endDragX.value //变动值\n\tlet barWidth = barRef.value.offsetWidth //滚动区域总宽度\n\tlet startWidth = (startProgress.value / 100) * barWidth //开始按钮的位置\n\tif (props.start) {\n\t\tlet per = (width / barWidth) * 100 + ((endProgressWidth.value + startWidth) * 100) / barWidth\n\t\tif (width > 0) {\n\t\t\tif (width > barWidth - startWidth) {\n\t\t\t\tendProgress.value = 100\n\t\t\t} else {\n\t\t\t\tif (per <= 100) {\n\t\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t\t} else {\n\t\t\t\t\tendProgress.value = 100\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (width <= 0) {\n\t\t\tif (Math.abs(width) > barWidth - startWidth) {\n\t\t\t\tendProgress.value = startProgress.value\n\t\t\t} else {\n\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (width > 0) {\n\t\t\tif (width > barWidth) {\n\t\t\t\tendProgress.value = 100\n\t\t\t} else {\n\t\t\t\tlet per = (endProgressWidth.value / barWidth + width / barWidth) * 100\n\t\t\t\tif (per <= 100) {\n\t\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t\t} else {\n\t\t\t\t\tendProgress.value = 100\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (width <= 0) {\n\t\t\tlet per = (width / barWidth) * 100 + (endProgressWidth.value / barWidth) * 100\n\t\t\tif (per >= 0) {\n\t\t\t\tendProgress.value = stepProgress.value * Math.round(per / stepProgress.value)\n\t\t\t} else if (per < 0) {\n\t\t\t\tendProgress.value = 0\n\t\t\t}\n\t\t}\n\t}\n}\nfunction onDragEnd() {\n\twindow.removeEventListener('mousemove', onDragging)\n\twindow.removeEventListener('touchmove', onDragging)\n\twindow.removeEventListener('mouseup', onDragEnd)\n\twindow.removeEventListener('touchend', onDragEnd)\n\twindow.removeEventListener('contextmenu', onDragEnd)\n}\nfunction onStartDragEnd() {\n\twindow.removeEventListener('mousemove', onStartDragging)\n\twindow.removeEventListener('touchmove', onStartDragging)\n\twindow.removeEventListener('mouseup', onStartDragEnd)\n\twindow.removeEventListener('touchend', onStartDragEnd)\n\twindow.removeEventListener('contextmenu', onStartDragEnd)\n}\nfunction endStartHandle(event) {\n\tconsole.log('endStartHandle', event)\n}\nfunction moveHandle(event) {\n\tconsole.log('moveHandle', event)\n}\nfunction endHandle(event) {\n\tconsole.log('moveHandle', event)\n}\n</script>\n"],"names":["DO_defineComponent","valueWidth","_createElementBlock","_normalizeClass","flex","_createElementVNode","_normalizeStyle","start","inputable","_createBlock","_unref","inputWidth"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { defineComponent, ref, computed, watch, openBlock, createElementBlock, normalizeClass, createElementVNode, Fragment, renderList, createVNode,
|
|
1
|
+
import { defineComponent, ref, computed, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, Fragment, renderList, createVNode, toDisplayString, createCommentVNode } from 'vue';
|
|
2
2
|
import { ToIcon } from '../../icon/index.mjs';
|
|
3
|
+
import { getModeClasses } from '../../../hooks/useSetClass.mjs';
|
|
3
4
|
|
|
4
5
|
const __default__ = defineComponent({
|
|
5
6
|
name: "ToRate"
|
|
@@ -160,7 +161,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
160
161
|
{
|
|
161
162
|
class: normalizeClass(["to-rate", [
|
|
162
163
|
`color-${__props.color}`,
|
|
163
|
-
|
|
164
|
+
...unref(getModeClasses)(__props.mode),
|
|
164
165
|
{
|
|
165
166
|
"is-half": isHalf.value,
|
|
166
167
|
"is-disabled": __props.disabled
|
|
@@ -1 +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\n\t\tclass=\"to-rate\"\n\t\t:class=\"[\n\t\t\t`color-${color}`,\n\t\t\t`mode-${mode}`,\n\t\t\t{\n\t\t\t\t'is-half': isHalf,\n\t\t\t\t'is-disabled': disabled\n\t\t\t}\n\t\t]\"\n\t\t@mouseleave=\"handleMouseLeave\"\n\t>\n\t\t<div class=\"to-rate-group\">\n\t\t\t<div v-for=\"i in normalizedCount\" :key=\"i\" class=\"to-rate-item\" :class=\"getItemClass(i)\" @click=\"handleClick(i, $event)\" @mousemove=\"handleMouseMove(i, $event)\" @mouseenter=\"handleMouseEnter(i)\">\n\t\t\t\t<to-icon class=\"to-rate-icon is-off\" type=\"fill\" :value=\"icon\" />\n\t\t\t\t<to-icon class=\"to-rate-icon is-on\" type=\"fill\" :value=\"icon\" />\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"showScore\" class=\"to-rate-score\">\n\t\t\t<span class=\"to-rate-score-text\">{{ displayValue }}</span>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\nimport { ToIcon } from '../../icon'\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\tcount: {\n\t\ttype: Number,\n\t\tdefault: 5\n\t},\n\tsize: {\n\t\ttype: Number,\n\t\tdefault: 2\n\t},\n\tdisabled: Boolean,\n\tstep: {\n\t\ttype: [Number, String],\n\t\tdefault: 1\n\t},\n\tdot: {\n\t\ttype: [Number, String],\n\t\tdefault: 'auto'\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\ticon: {\n\t\ttype: String,\n\t\tdefault: 'star'\n\t},\n\tmode: {\n\t\ttype: String,\n\t\tdefault: ''\n\t}\n})\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\nconst ivalue = ref(0)\nconst hoverValue = ref(0)\n\nconst normalizedCount = computed(() => Math.max(1, Math.floor(Number(props.count) || 1)))\nconst normalizedMax = computed(() => Math.max(0, Number(props.max) || 0))\nconst scoreUnit = computed(() => normalizedMax.value / normalizedCount.value)\nconst normalizedStep = computed(() => (Number(props.step) === 0.5 ? 0.5 : 1))\nconst isHalf = computed(() => normalizedStep.value === 0.5)\nconst normalizedDot = computed(() => {\n\tif (props.dot === 'auto') return isHalf.value ? 1 : 0\n\tconst dot = Number(props.dot)\n\tif (!Number.isFinite(dot)) return 0\n\treturn Math.max(0, Math.floor(dot))\n})\n\nconst activeValue = computed(() => {\n\tif (!props.disabled && hoverValue.value > 0) {\n\t\treturn hoverValue.value\n\t}\n\treturn ivalue.value\n})\n\nconst activeRateValue = computed(() => {\n\tif (!scoreUnit.value) return 0\n\tconst rateValue = activeValue.value / scoreUnit.value\n\treturn Math.round(rateValue / normalizedStep.value) * normalizedStep.value\n})\n\nconst displayValue = computed(() => activeValue.value.toFixed(normalizedDot.value))\n\nwatch(\n\t() => [props.modelValue, props.max, props.count, props.step, props.dot] as const,\n\t() => {\n\t\tivalue.value = normalizeModelValue(props.modelValue)\n\t},\n\t{ immediate: true }\n)\n\nfunction normalizeModelValue(value: number) {\n\tconst num = Number(value)\n\tif (!Number.isFinite(num)) return 0\n\treturn formatValue(Math.min(Math.max(num, 0), normalizedMax.value))\n}\n\nfunction normalizeStepValue(value: number) {\n\tconst limited = normalizeModelValue(value)\n\tif (!scoreUnit.value) return 0\n\tconst rateValue = limited / scoreUnit.value\n\tconst steppedValue = Math.round(rateValue / normalizedStep.value) * normalizedStep.value\n\treturn formatValue(steppedValue * scoreUnit.value)\n}\n\nfunction formatValue(value: number) {\n\treturn Number(value.toFixed(normalizedDot.value))\n}\n\nfunction getItemClass(i: number) {\n\tconst value = activeRateValue.value\n\treturn {\n\t\t'is-on': i <= value,\n\t\t'is-half-on': isHalf.value && Math.abs(i - 0.5 - value) < 0.0000001,\n\t\t'is-hover': !props.disabled && hoverValue.value > 0 && i <= Math.ceil(value)\n\t}\n}\n\nfunction getValueByEvent(i: number, event: MouseEvent) {\n\tif (!isHalf.value) return i * scoreUnit.value\n\tconst rect = (event.currentTarget as HTMLElement).getBoundingClientRect()\n\tconst x = event.clientX - rect.left\n\treturn (x < rect.width / 2 ? i - 0.5 : i) * scoreUnit.value\n}\n\nfunction updateValue(value: number) {\n\tconst normalizedValue = normalizeStepValue(value)\n\tivalue.value = normalizedValue\n\temit('update:modelValue', normalizedValue)\n\temit('change', normalizedValue)\n}\n\nfunction handleClick(i: number, event: MouseEvent) {\n\tif (props.disabled) return\n\tlet value = getValueByEvent(i, event)\n\tif (props.clearable && ivalue.value === value) {\n\t\tvalue = 0\n\t}\n\tupdateValue(value)\n}\n\nfunction handleMouseMove(i: number, event: MouseEvent) {\n\tif (props.disabled) return\n\thoverValue.value = getValueByEvent(i, event)\n}\n\nfunction handleMouseEnter(i: number) {\n\tif (props.disabled || isHalf.value) return\n\thoverValue.value = i * scoreUnit.value\n}\n\nfunction handleMouseLeave() {\n\tif (!props.disabled) {\n\t\thoverValue.value = 0\n\t}\n}\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_createElementVNode","_Fragment","_renderList","_normalizeClass","_createVNode","_unref"],"mappings":"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"}
|
|
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\n\t\tclass=\"to-rate\"\n\t\t:class=\"[\n\t\t\t`color-${color}`,\n\t\t\t...getModeClasses(mode),\n\t\t\t{\n\t\t\t\t'is-half': isHalf,\n\t\t\t\t'is-disabled': disabled\n\t\t\t}\n\t\t]\"\n\t\t@mouseleave=\"handleMouseLeave\"\n\t>\n\t\t<div class=\"to-rate-group\">\n\t\t\t<div v-for=\"i in normalizedCount\" :key=\"i\" class=\"to-rate-item\" :class=\"getItemClass(i)\" @click=\"handleClick(i, $event)\" @mousemove=\"handleMouseMove(i, $event)\" @mouseenter=\"handleMouseEnter(i)\">\n\t\t\t\t<to-icon class=\"to-rate-icon is-off\" type=\"fill\" :value=\"icon\" />\n\t\t\t\t<to-icon class=\"to-rate-icon is-on\" type=\"fill\" :value=\"icon\" />\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"showScore\" class=\"to-rate-score\">\n\t\t\t<span class=\"to-rate-score-text\">{{ displayValue }}</span>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\nimport { ToIcon } from '../../icon'\nimport { getModeClasses } from '@touchvue/hooks'\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\tcount: {\n\t\ttype: Number,\n\t\tdefault: 5\n\t},\n\tsize: {\n\t\ttype: Number,\n\t\tdefault: 2\n\t},\n\tdisabled: Boolean,\n\tstep: {\n\t\ttype: [Number, String],\n\t\tdefault: 1\n\t},\n\tdot: {\n\t\ttype: [Number, String],\n\t\tdefault: 'auto'\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\ticon: {\n\t\ttype: String,\n\t\tdefault: 'star'\n\t},\n\tmode: {\n\t\ttype: String,\n\t\tdefault: ''\n\t}\n})\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n\nconst ivalue = ref(0)\nconst hoverValue = ref(0)\n\nconst normalizedCount = computed(() => Math.max(1, Math.floor(Number(props.count) || 1)))\nconst normalizedMax = computed(() => Math.max(0, Number(props.max) || 0))\nconst scoreUnit = computed(() => normalizedMax.value / normalizedCount.value)\nconst normalizedStep = computed(() => (Number(props.step) === 0.5 ? 0.5 : 1))\nconst isHalf = computed(() => normalizedStep.value === 0.5)\nconst normalizedDot = computed(() => {\n\tif (props.dot === 'auto') return isHalf.value ? 1 : 0\n\tconst dot = Number(props.dot)\n\tif (!Number.isFinite(dot)) return 0\n\treturn Math.max(0, Math.floor(dot))\n})\n\nconst activeValue = computed(() => {\n\tif (!props.disabled && hoverValue.value > 0) {\n\t\treturn hoverValue.value\n\t}\n\treturn ivalue.value\n})\n\nconst activeRateValue = computed(() => {\n\tif (!scoreUnit.value) return 0\n\tconst rateValue = activeValue.value / scoreUnit.value\n\treturn Math.round(rateValue / normalizedStep.value) * normalizedStep.value\n})\n\nconst displayValue = computed(() => activeValue.value.toFixed(normalizedDot.value))\n\nwatch(\n\t() => [props.modelValue, props.max, props.count, props.step, props.dot] as const,\n\t() => {\n\t\tivalue.value = normalizeModelValue(props.modelValue)\n\t},\n\t{ immediate: true }\n)\n\nfunction normalizeModelValue(value: number) {\n\tconst num = Number(value)\n\tif (!Number.isFinite(num)) return 0\n\treturn formatValue(Math.min(Math.max(num, 0), normalizedMax.value))\n}\n\nfunction normalizeStepValue(value: number) {\n\tconst limited = normalizeModelValue(value)\n\tif (!scoreUnit.value) return 0\n\tconst rateValue = limited / scoreUnit.value\n\tconst steppedValue = Math.round(rateValue / normalizedStep.value) * normalizedStep.value\n\treturn formatValue(steppedValue * scoreUnit.value)\n}\n\nfunction formatValue(value: number) {\n\treturn Number(value.toFixed(normalizedDot.value))\n}\n\nfunction getItemClass(i: number) {\n\tconst value = activeRateValue.value\n\treturn {\n\t\t'is-on': i <= value,\n\t\t'is-half-on': isHalf.value && Math.abs(i - 0.5 - value) < 0.0000001,\n\t\t'is-hover': !props.disabled && hoverValue.value > 0 && i <= Math.ceil(value)\n\t}\n}\n\nfunction getValueByEvent(i: number, event: MouseEvent) {\n\tif (!isHalf.value) return i * scoreUnit.value\n\tconst rect = (event.currentTarget as HTMLElement).getBoundingClientRect()\n\tconst x = event.clientX - rect.left\n\treturn (x < rect.width / 2 ? i - 0.5 : i) * scoreUnit.value\n}\n\nfunction updateValue(value: number) {\n\tconst normalizedValue = normalizeStepValue(value)\n\tivalue.value = normalizedValue\n\temit('update:modelValue', normalizedValue)\n\temit('change', normalizedValue)\n}\n\nfunction handleClick(i: number, event: MouseEvent) {\n\tif (props.disabled) return\n\tlet value = getValueByEvent(i, event)\n\tif (props.clearable && ivalue.value === value) {\n\t\tvalue = 0\n\t}\n\tupdateValue(value)\n}\n\nfunction handleMouseMove(i: number, event: MouseEvent) {\n\tif (props.disabled) return\n\thoverValue.value = getValueByEvent(i, event)\n}\n\nfunction handleMouseEnter(i: number) {\n\tif (props.disabled || isHalf.value) return\n\thoverValue.value = i * scoreUnit.value\n}\n\nfunction handleMouseLeave() {\n\tif (!props.disabled) {\n\t\thoverValue.value = 0\n\t}\n}\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_unref","_createElementVNode","_Fragment","_renderList","_normalizeClass","_createVNode"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, provide, nextTick, watch, onMounted, onUnmounted, openBlock, createElementBlock, normalizeClass, normalizeStyle, createCommentVNode, createElementVNode, renderSlot } from 'vue';
|
|
2
2
|
import { scrollProps } from './scroll.mjs';
|
|
3
|
+
import { getModeClasses } from '../../../hooks/useSetClass.mjs';
|
|
3
4
|
|
|
4
5
|
const __default__ = defineComponent({
|
|
5
6
|
name: "ToScroll"
|
|
@@ -12,19 +13,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
12
13
|
const props = __props;
|
|
13
14
|
const emit = __emit;
|
|
14
15
|
const scrollRef = ref(null);
|
|
15
|
-
const barThumb = ref(null);
|
|
16
|
-
const horizontalBarThumb = ref(null);
|
|
17
16
|
const isScrolling = ref(false);
|
|
18
|
-
const isHovering = ref(false);
|
|
19
17
|
let isTabTriggeredScroll = false;
|
|
20
18
|
let scrollUpdateTimer = null;
|
|
21
|
-
let isDragging = ref(false);
|
|
22
|
-
let isHorizontalDragging = ref(false);
|
|
23
|
-
let startY = 0;
|
|
24
|
-
let startX = 0;
|
|
25
|
-
let startScrollTop = 0;
|
|
26
|
-
let startScrollLeft = 0;
|
|
27
|
-
const hasHorizontalScroll = ref(false);
|
|
28
19
|
const scrollPoints = ref([]);
|
|
29
20
|
const bindValue = computed(() => props.modelValue || props.value);
|
|
30
21
|
const currentPointValue = ref(bindValue.value || null);
|
|
@@ -37,15 +28,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
37
28
|
}
|
|
38
29
|
});
|
|
39
30
|
provide("scrollValue", currentPointValue);
|
|
40
|
-
const barVisibleClass = computed(() => {
|
|
41
|
-
return `bar-${String(props.barDisplay)}`;
|
|
42
|
-
});
|
|
43
|
-
const checkHorizontalScroll = () => {
|
|
44
|
-
if (scrollRef.value) {
|
|
45
|
-
const { scrollWidth, clientWidth } = scrollRef.value;
|
|
46
|
-
hasHorizontalScroll.value = scrollWidth > clientWidth;
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
31
|
const setScrollPoints = () => {
|
|
50
32
|
if (!scrollRef.value)
|
|
51
33
|
return;
|
|
@@ -183,95 +165,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
183
165
|
}
|
|
184
166
|
}
|
|
185
167
|
});
|
|
186
|
-
if (props.virtual) {
|
|
187
|
-
window.addEventListener("mousemove", onMousemove);
|
|
188
|
-
window.addEventListener("mouseup", onMouseup);
|
|
189
|
-
window.addEventListener("mouseleave", onMouseup);
|
|
190
|
-
if (scrollRef.value) {
|
|
191
|
-
scrollRef.value.addEventListener("mouseenter", onMouseenter);
|
|
192
|
-
scrollRef.value.addEventListener("mouseleave", onMouseleave);
|
|
193
|
-
}
|
|
194
|
-
nextTick(() => {
|
|
195
|
-
checkHorizontalScroll();
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
168
|
});
|
|
199
169
|
onUnmounted(() => {
|
|
200
|
-
if (props.virtual) {
|
|
201
|
-
window.removeEventListener("mousemove", onMousemove);
|
|
202
|
-
window.removeEventListener("mouseup", onMouseup);
|
|
203
|
-
window.removeEventListener("mouseleave", onMouseup);
|
|
204
|
-
if (scrollRef.value) {
|
|
205
|
-
scrollRef.value.removeEventListener("mouseenter", onMouseenter);
|
|
206
|
-
scrollRef.value.removeEventListener("mouseleave", onMouseleave);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
170
|
if (scrollUpdateTimer) {
|
|
210
171
|
clearTimeout(scrollUpdateTimer);
|
|
211
172
|
scrollUpdateTimer = null;
|
|
212
173
|
}
|
|
213
174
|
});
|
|
214
|
-
const onMouseenter = () => {
|
|
215
|
-
isHovering.value = true;
|
|
216
|
-
};
|
|
217
|
-
const onMouseleave = () => {
|
|
218
|
-
if (!isDragging.value && !isHorizontalDragging.value) {
|
|
219
|
-
isHovering.value = false;
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
const onThumbMousedown = (e) => {
|
|
223
|
-
if (!scrollRef.value || !props.virtual)
|
|
224
|
-
return;
|
|
225
|
-
e.preventDefault();
|
|
226
|
-
e.stopPropagation();
|
|
227
|
-
if (scrollRef.value) {
|
|
228
|
-
scrollRef.value.classList.add("dragging-scrollbar");
|
|
229
|
-
}
|
|
230
|
-
startY = e.clientY;
|
|
231
|
-
startScrollTop = scrollRef.value.scrollTop;
|
|
232
|
-
isDragging.value = true;
|
|
233
|
-
};
|
|
234
|
-
const onHorizontalThumbMousedown = (e) => {
|
|
235
|
-
if (!scrollRef.value || !props.virtual)
|
|
236
|
-
return;
|
|
237
|
-
e.preventDefault();
|
|
238
|
-
e.stopPropagation();
|
|
239
|
-
if (scrollRef.value) {
|
|
240
|
-
scrollRef.value.classList.add("dragging-scrollbar-horizontal");
|
|
241
|
-
}
|
|
242
|
-
startX = e.clientX;
|
|
243
|
-
startScrollLeft = scrollRef.value.scrollLeft;
|
|
244
|
-
isHorizontalDragging.value = true;
|
|
245
|
-
};
|
|
246
|
-
const onMousemove = (e) => {
|
|
247
|
-
if (isDragging.value && scrollRef.value && barThumb.value) {
|
|
248
|
-
const deltaY = e.clientY - startY;
|
|
249
|
-
const contentHeight = scrollRef.value.scrollHeight;
|
|
250
|
-
const containerHeight = scrollRef.value.clientHeight;
|
|
251
|
-
const ratio = containerHeight / contentHeight;
|
|
252
|
-
scrollRef.value.scrollTop = startScrollTop + deltaY / ratio;
|
|
253
|
-
}
|
|
254
|
-
if (isHorizontalDragging.value && scrollRef.value && horizontalBarThumb.value) {
|
|
255
|
-
const deltaX = e.clientX - startX;
|
|
256
|
-
const contentWidth = scrollRef.value.scrollWidth;
|
|
257
|
-
const containerWidth = scrollRef.value.clientWidth;
|
|
258
|
-
const ratio = containerWidth / contentWidth;
|
|
259
|
-
scrollRef.value.scrollLeft = startScrollLeft + deltaX / ratio;
|
|
260
|
-
}
|
|
261
|
-
};
|
|
262
|
-
const onMouseup = () => {
|
|
263
|
-
isDragging.value = false;
|
|
264
|
-
isHorizontalDragging.value = false;
|
|
265
|
-
if (!isHovering.value) {
|
|
266
|
-
setTimeout(() => {
|
|
267
|
-
isHovering.value = false;
|
|
268
|
-
}, 300);
|
|
269
|
-
}
|
|
270
|
-
if (scrollRef.value) {
|
|
271
|
-
scrollRef.value.classList.remove("dragging-scrollbar");
|
|
272
|
-
scrollRef.value.classList.remove("dragging-scrollbar-horizontal");
|
|
273
|
-
}
|
|
274
|
-
};
|
|
275
175
|
const handleScroll = (event) => {
|
|
276
176
|
emit("scroll", event);
|
|
277
177
|
if (isTabTriggeredScroll) {
|
|
@@ -305,9 +205,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
305
205
|
emit("update:modelValue", pointValue);
|
|
306
206
|
emit("update:value", pointValue);
|
|
307
207
|
notifyScrollPointsActive(pointValue);
|
|
308
|
-
if (props.virtual && barThumb.value) {
|
|
309
|
-
updateVirtualScrollbar();
|
|
310
|
-
}
|
|
311
208
|
}
|
|
312
209
|
});
|
|
313
210
|
}
|
|
@@ -318,25 +215,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
318
215
|
emit("scrollEnd");
|
|
319
216
|
}, 100);
|
|
320
217
|
};
|
|
321
|
-
const updateVirtualScrollbar = () => {
|
|
322
|
-
if (!scrollRef.value || !props.virtual)
|
|
323
|
-
return;
|
|
324
|
-
nextTick(() => {
|
|
325
|
-
const { scrollTop, scrollHeight, clientHeight } = scrollRef.value;
|
|
326
|
-
const thumbHeight = Math.max(30, clientHeight / scrollHeight * clientHeight);
|
|
327
|
-
const thumbTop = scrollTop / (scrollHeight - clientHeight) * (clientHeight - thumbHeight);
|
|
328
|
-
if (barThumb.value) {
|
|
329
|
-
barThumb.value.style.transform = `translateY(${thumbTop}px)`;
|
|
330
|
-
}
|
|
331
|
-
});
|
|
332
|
-
};
|
|
333
218
|
const to = (target) => {
|
|
334
219
|
if (!scrollRef.value)
|
|
335
220
|
return;
|
|
336
221
|
if (target === "$bottom") {
|
|
337
222
|
scrollRef.value.scrollTo({
|
|
338
223
|
top: scrollRef.value.scrollHeight - scrollRef.value.clientHeight,
|
|
339
|
-
behavior:
|
|
224
|
+
behavior: "auto"
|
|
340
225
|
});
|
|
341
226
|
return;
|
|
342
227
|
}
|
|
@@ -346,7 +231,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
346
231
|
const relativeTop = elementTop - containerTop + scrollRef.value.scrollTop;
|
|
347
232
|
scrollRef.value.scrollTo({
|
|
348
233
|
top: relativeTop,
|
|
349
|
-
behavior:
|
|
234
|
+
behavior: "auto"
|
|
350
235
|
});
|
|
351
236
|
return;
|
|
352
237
|
}
|
|
@@ -355,7 +240,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
355
240
|
scrollRef.value.scrollTo({
|
|
356
241
|
top: position,
|
|
357
242
|
left: 0,
|
|
358
|
-
behavior:
|
|
243
|
+
behavior: "auto"
|
|
359
244
|
});
|
|
360
245
|
return;
|
|
361
246
|
}
|
|
@@ -364,30 +249,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
364
249
|
return;
|
|
365
250
|
}
|
|
366
251
|
};
|
|
367
|
-
const thumbStyle = computed(() => {
|
|
368
|
-
if (!scrollRef.value || !props.virtual)
|
|
369
|
-
return {};
|
|
370
|
-
const { clientHeight, scrollHeight, scrollTop } = scrollRef.value;
|
|
371
|
-
const thumbHeight = Math.max(30, clientHeight / scrollHeight * clientHeight);
|
|
372
|
-
const thumbTop = scrollTop / (scrollHeight - clientHeight) * (clientHeight - thumbHeight);
|
|
373
|
-
return {
|
|
374
|
-
height: `${thumbHeight}px`,
|
|
375
|
-
transform: `translateY(${thumbTop}px)`,
|
|
376
|
-
width: "6px"
|
|
377
|
-
};
|
|
378
|
-
});
|
|
379
|
-
const horizontalThumbStyle = computed(() => {
|
|
380
|
-
if (!scrollRef.value || !props.virtual)
|
|
381
|
-
return {};
|
|
382
|
-
const { clientWidth, scrollWidth, scrollLeft } = scrollRef.value;
|
|
383
|
-
const thumbWidth = Math.max(30, clientWidth / scrollWidth * clientWidth);
|
|
384
|
-
const thumbLeft = scrollLeft / (scrollWidth - clientWidth) * (clientWidth - thumbWidth);
|
|
385
|
-
return {
|
|
386
|
-
width: `${thumbWidth}px`,
|
|
387
|
-
transform: `translateX(${thumbLeft}px)`,
|
|
388
|
-
height: "6px"
|
|
389
|
-
};
|
|
390
|
-
});
|
|
391
252
|
const setStyle = computed(() => {
|
|
392
253
|
const obj = {};
|
|
393
254
|
if (props.height) {
|
|
@@ -401,11 +262,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
401
262
|
});
|
|
402
263
|
const setClass = computed(() => {
|
|
403
264
|
let arr = [];
|
|
404
|
-
if (props.virtual) {
|
|
405
|
-
arr.push("hide-scrollbar");
|
|
406
|
-
}
|
|
407
265
|
if (props.mode) {
|
|
408
|
-
arr.push(
|
|
266
|
+
arr.push(...getModeClasses(props.mode));
|
|
409
267
|
}
|
|
410
268
|
if (props.type) {
|
|
411
269
|
arr.push(`type-${props.type}`);
|
|
@@ -443,11 +301,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
443
301
|
break;
|
|
444
302
|
}
|
|
445
303
|
}
|
|
446
|
-
if (props.virtual) {
|
|
447
|
-
obj.overflow = "auto";
|
|
448
|
-
obj.position = "relative";
|
|
449
|
-
obj.width = "100%";
|
|
450
|
-
}
|
|
451
304
|
return obj;
|
|
452
305
|
});
|
|
453
306
|
function adjust() {
|
|
@@ -472,18 +325,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
472
325
|
}
|
|
473
326
|
}
|
|
474
327
|
});
|
|
475
|
-
if (props.virtual) {
|
|
476
|
-
window.addEventListener("mousemove", onMousemove);
|
|
477
|
-
window.addEventListener("mouseup", onMouseup);
|
|
478
|
-
window.addEventListener("mouseleave", onMouseup);
|
|
479
|
-
if (scrollRef.value) {
|
|
480
|
-
scrollRef.value.addEventListener("mouseenter", onMouseenter);
|
|
481
|
-
scrollRef.value.addEventListener("mouseleave", onMouseleave);
|
|
482
|
-
}
|
|
483
|
-
nextTick(() => {
|
|
484
|
-
checkHorizontalScroll();
|
|
485
|
-
});
|
|
486
|
-
}
|
|
487
328
|
}
|
|
488
329
|
__expose({
|
|
489
330
|
to,
|
|
@@ -491,7 +332,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
491
332
|
isScrolling,
|
|
492
333
|
setScrollPoints,
|
|
493
334
|
findScrollPoint,
|
|
494
|
-
checkHorizontalScroll,
|
|
495
335
|
adjust
|
|
496
336
|
});
|
|
497
337
|
return (_ctx, _cache) => {
|
|
@@ -500,63 +340,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
500
340
|
flex: _ctx.flex ? _ctx.flex : null,
|
|
501
341
|
style: normalizeStyle(setStyle.value)
|
|
502
342
|
}, [
|
|
503
|
-
createCommentVNode(" \u81EA\u5B9A\u4E49\u6EDA\u52A8\u6761 "),
|
|
504
|
-
props.virtual ? (openBlock(), createElementBlock(
|
|
505
|
-
"div",
|
|
506
|
-
{
|
|
507
|
-
key: 0,
|
|
508
|
-
class: normalizeClass(["to-scroll-bar", [barVisibleClass.value, { active: isScrolling.value || isHovering.value }]])
|
|
509
|
-
},
|
|
510
|
-
[
|
|
511
|
-
createElementVNode(
|
|
512
|
-
"div",
|
|
513
|
-
{
|
|
514
|
-
ref_key: "barThumb",
|
|
515
|
-
ref: barThumb,
|
|
516
|
-
class: "to-scroll-thumb",
|
|
517
|
-
style: normalizeStyle(thumbStyle.value),
|
|
518
|
-
onMousedown: onThumbMousedown
|
|
519
|
-
},
|
|
520
|
-
null,
|
|
521
|
-
36
|
|
522
|
-
/* STYLE, NEED_HYDRATION */
|
|
523
|
-
)
|
|
524
|
-
],
|
|
525
|
-
2
|
|
526
|
-
/* CLASS */
|
|
527
|
-
)) : createCommentVNode("v-if", true),
|
|
528
|
-
createCommentVNode(" \u6A2A\u5411\u6EDA\u52A8\u6761 "),
|
|
529
|
-
props.virtual && hasHorizontalScroll.value ? (openBlock(), createElementBlock(
|
|
530
|
-
"div",
|
|
531
|
-
{
|
|
532
|
-
key: 1,
|
|
533
|
-
class: normalizeClass(["to-scroll-bar horizontal", [barVisibleClass.value, { active: isScrolling.value || isHovering.value }]])
|
|
534
|
-
},
|
|
535
|
-
[
|
|
536
|
-
createElementVNode(
|
|
537
|
-
"div",
|
|
538
|
-
{
|
|
539
|
-
ref_key: "horizontalBarThumb",
|
|
540
|
-
ref: horizontalBarThumb,
|
|
541
|
-
class: "to-scroll-thumb",
|
|
542
|
-
style: normalizeStyle(horizontalThumbStyle.value),
|
|
543
|
-
onMousedown: onHorizontalThumbMousedown
|
|
544
|
-
},
|
|
545
|
-
null,
|
|
546
|
-
36
|
|
547
|
-
/* STYLE, NEED_HYDRATION */
|
|
548
|
-
)
|
|
549
|
-
],
|
|
550
|
-
2
|
|
551
|
-
/* CLASS */
|
|
552
|
-
)) : createCommentVNode("v-if", true),
|
|
553
343
|
createCommentVNode(" \u6EDA\u52A8\u5185\u5BB9\u533A\u57DF "),
|
|
554
344
|
createElementVNode(
|
|
555
345
|
"div",
|
|
556
346
|
{
|
|
557
347
|
ref_key: "scrollRef",
|
|
558
348
|
ref: scrollRef,
|
|
559
|
-
class:
|
|
349
|
+
class: "to-scroll-content",
|
|
560
350
|
style: normalizeStyle(setContentStyle.value),
|
|
561
351
|
onScroll: handleScroll
|
|
562
352
|
},
|
|
@@ -564,8 +354,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
564
354
|
createCommentVNode(" \u9ED8\u8BA4\u5185\u5BB9\u63D2\u69FD "),
|
|
565
355
|
renderSlot(_ctx.$slots, "default")
|
|
566
356
|
],
|
|
567
|
-
|
|
568
|
-
/*
|
|
357
|
+
36
|
|
358
|
+
/* STYLE, NEED_HYDRATION */
|
|
569
359
|
)
|
|
570
360
|
], 14, ["flex"]);
|
|
571
361
|
};
|