@touchvue/ui 1.0.0-beta.56 → 1.0.0-beta.57
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/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/packages/components/box/src/box.vue2.mjs +2 -1
- package/es/packages/components/box/src/box.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 +4 -4
- package/es/packages/components/msg/src/msg.vue2.mjs.map +1 -1
- package/es/packages/components/pic/src/Pic.vue2.mjs +2 -1
- package/es/packages/components/pic/src/Pic.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/Scroll.vue2.mjs +6 -217
- 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/select/src/select.vue2.mjs +120 -125
- package/es/packages/components/select/src/select.vue2.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/locale/lang/en-US.mjs +4 -0
- package/es/packages/locale/lang/en-US.mjs.map +1 -1
- package/es/packages/locale/lang/zh-CN.mjs +4 -0
- package/es/packages/locale/lang/zh-CN.mjs.map +1 -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/packages/components/box/src/box.vue2.js +2 -1
- package/lib/packages/components/box/src/box.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 +4 -4
- package/lib/packages/components/msg/src/msg.vue2.js.map +1 -1
- package/lib/packages/components/pic/src/Pic.vue2.js +2 -1
- package/lib/packages/components/pic/src/Pic.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/Scroll.vue2.js +6 -217
- 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/select/src/select.vue2.js +120 -125
- package/lib/packages/components/select/src/select.vue2.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/locale/lang/en-US.js +4 -0
- package/lib/packages/locale/lang/en-US.js.map +1 -1
- package/lib/packages/locale/lang/zh-CN.js +4 -0
- package/lib/packages/locale/lang/zh-CN.js.map +1 -1
- package/package.json +1 -1
- package/theme/components/index.css +70 -133
- package/theme/index.css +70 -133
- package/theme/skin/default.css +70 -133
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../packages/components/msg/index.ts"],"sourcesContent":["import { h, render, isVNode } from 'vue'\nimport Msg from './src/msg.vue'\nimport { SFCWithInstall, withInstall } from '@touchvue/utils'\nimport { generateUUID, removeElement } from '@touchvue/utils'\n\nconst ToMsg: SFCWithInstall<typeof Msg> = withInstall(Msg)\nexport * from './src/instance'\n\n// 定义选项接口\nexport interface MsgOptions {\n\ttitle?: string\n\tcontent?: string\n\tpic?: string\n\tpicPosition?: string\n\tposition?: string\n\theight?: string | number\n\tconfirmButtonText?: string\n\tcancelButtonText?: string\n\tglobal?: boolean\n\tshow?: boolean\n\t[key: string]: any\n}\n\n// 创建msg实例的函数\nfunction createMsgInstance(app: any, ...args: any[]): Promise<boolean> {\n\tif (args.length === 0) return Promise.reject('无效的 msg 内容')\n\n\treturn new Promise((resolve, reject) => {\n\t\tconst defaultOptions: MsgOptions = {\n\t\t\ttitle: '',\n\t\t\tcontent: '',\n\t\t\tpic: '',\n\t\t\tpicPosition: 'left',\n\t\t\tposition: 'center',\n\t\t\theight: 'auto',\n\t\t\tconfirmButtonText: '确定',\n\t\t\tcancelButtonText: '取消',\n\t\t\tglobal: false,\n\t\t\tshow: false\n\t\t}\n\n\t\tlet options: MsgOptions = { ...defaultOptions }\n\n\t\t// 处理参数\n\t\tif (args.length === 1) {\n\t\t\tif (typeof args[0] === 'object') {\n\t\t\t\toptions = { ...defaultOptions, ...args[0] }\n\t\t\t} else {\n\t\t\t\toptions = { ...defaultOptions, content: String(args[0]) }\n\t\t\t}\n\t\t} else if (args.length >= 2) {\n\t\t\tif (typeof args[0] === 'string') {\n\t\t\t\tswitch (args[0]) {\n\t\t\t\t\tcase 'success':\n\t\t\t\t\t\toptions.pic = 'success'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\toptions.pic = 'error'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'help':\n\t\t\t\t\t\toptions.pic = 'help'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'loading':\n\t\t\t\t\t\toptions.pic = 'loading'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'info':\n\t\t\t\t\t\toptions.pic = 'info'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\toptions.pic = 'success'\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof args[1] === 'object') {\n\t\t\t\toptions = { ...options, ...args[1] }\n\t\t\t}\n\t\t}\n\n\t\t// 创建容器\n\t\tconst body = document.body\n\t\tconst uuid = `msg-${generateUUID()}`\n\t\tconst container = document.createElement('div')\n\t\tcontainer.setAttribute('id', uuid)\n\t\tbody.appendChild(container)\n\n\t\t// 处理VNode类型的content和title,避免同时作为props和slots传递\n\t\tconst isTitleVNode = isVNode(options.title)\n\t\tconst isDetailVNode = isVNode(options.detail)\n\n\t\tconst props = {\n\t\t\t...options,\n\t\t\t...(isTitleVNode ? { title: undefined } : {}),\n\t\t\t...(isDetailVNode ? { detail: undefined } : {})\n\t\t}\n\n\t\t// 创建VNode并渲染\n\t\tconst vnode = h(\n\t\t\tMsg,\n\t\t\t{\n\t\t\t\t...props,\n\t\t\t\tonClose: () => {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\trender(null, container)\n\t\t\t\t\t\tremoveElement(container)\n\t\t\t\t\t\treject(false)\n\t\t\t\t\t}, 200)\n\t\t\t\t},\n\t\t\t\tonConfirm: () => {\n\t\t\t\t\trender(null, container)\n\t\t\t\t\tremoveElement(container)\n\t\t\t\t\tresolve(true)\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: isTitleVNode ? options.title : null,\n\t\t\t\tdetail: isDetailVNode ? options.detail : null\n\t\t\t}\n\t\t)\n\n\t\t// 设置应用上下文\n\t\tif (app && app._context) {\n\t\t\tvnode.appContext = app._context\n\t\t}\n\n\t\t// 渲染组件到容器\n\t\trender(vnode, container)\n\n\t\t// 等待DOM挂载完成后调用open方法\n\t\tconst componentInstance = vnode.component\n\t\trequestAnimationFrame(() => {\n\t\t\tif (componentInstance && componentInstance.exposed && typeof componentInstance.exposed.open === 'function') {\n\t\t\t\tcomponentInstance.exposed.open()\n\t\t\t}\n\t\t})\n\t})\n}\n\n// 创建$msg函数工厂\nfunction createMsgFunction(app: any) {\n\tconst $msg = function (...args: any[]): Promise<boolean> {\n\t\tapp = app ? app : ToMsg._context\n\t\treturn createMsgInstance(app, ...args)\n\t}\n\n\t// 添加便捷方法\n\t$msg.success = function (options: MsgOptions): Promise<boolean> {\n\t\t// 成功提示默认不需要取消按钮\n\t\tif (typeof options === 'object') {\n\t\t\toptions.cancelButtonText = ''\n\t\t} else {\n\t\t\toptions = { cancelButtonText: '' }\n\t\t}\n\t\treturn $msg('success', options)\n\t}\n\n\t$msg.error = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('error', options)\n\t}\n\n\t$msg.help = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('help', options)\n\t}\n\n\t$msg.loading = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('loading', options)\n\t}\n\n\t$msg.info = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('info', options)\n\t}\n\n\t$msg.confirm = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('help', options)\n\t}\n\n\treturn $msg\n}\n\nexport const $msg = createMsgFunction(null)\n\nconst originInstall = ToMsg.install\n\nToMsg.install = app => {\n\toriginInstall(app)\n\tToMsg._context = app\n\tconst appMsg = createMsgFunction(app)\n\tapp.config.globalProperties.$msg = appMsg\n}\n\nexport default $msg\n\nexport { ToMsg }\n"],"names":["withInstall","Msg","generateUUID","isVNode","h","render","removeElement","$msg"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../packages/components/msg/index.ts"],"sourcesContent":["import { h, render, isVNode } from 'vue'\nimport Msg from './src/msg.vue'\nimport { SFCWithInstall, withInstall } from '@touchvue/utils'\nimport { generateUUID, removeElement } from '@touchvue/utils'\n\nconst ToMsg: SFCWithInstall<typeof Msg> = withInstall(Msg)\nexport * from './src/instance'\n\n// 定义选项接口\nexport interface MsgOptions {\n\tflex?: boolean\n\ttype?: string\n\tmode?: string\n\ttitle?: string\n\tcontent?: any\n\tbuttons?: Array<{\n\t\tlabel: string\n\t\tattrs?: Record<string, any>\n\t\tfn?: () => void\n\t}>\n\theight?: string | number\n\twidth?: string | number\n\tdir?: string\n\tdetail?: string\n\tshowDetail?: boolean\n\tpadding?: string | number\n\tposition?: string\n\tconfirmText?: string\n\tcancelText?: string\n\tcloseOnBlur?: boolean\n\tzIndex?: number | string\n\tshow?: boolean\n\tglobal?: boolean\n\tconfirmable?: boolean\n\tcancelable?: boolean\n\t[key: string]: any\n}\n\n// 创建msg实例的函数\nfunction createMsgInstance(app: any, ...args: any[]): Promise<boolean> {\n\tif (args.length === 0) return Promise.reject('无效的 msg 内容')\n\n\treturn new Promise((resolve, reject) => {\n\t\tconst defaultOptions: MsgOptions = {\n\t\t\tmode: 'default',\n\t\t\ttitle: '',\n\t\t\tcontent: '',\n\t\t\tbuttons: [],\n\t\t\theight: 'auto',\n\t\t\twidth: '',\n\t\t\tflex: false,\n\t\t\tdetail: '',\n\t\t\tshowDetail: true,\n\t\t\tpadding: 0,\n\t\t\ttype: '',\n\t\t\tdir: '',\n\t\t\tposition: '',\n\t\t\tconfirmText: '',\n\t\t\tcancelText: '',\n\t\t\tcloseOnBlur: true,\n\t\t\tzIndex: 0,\n\t\t\tshow: false,\n\t\t\tglobal: true,\n\t\t\tconfirmable: true,\n\t\t\tcancelable: true\n\t\t}\n\n\t\tlet options: MsgOptions = { ...defaultOptions }\n\n\t\t// 处理参数\n\t\tif (args.length === 1) {\n\t\t\tif (typeof args[0] === 'object') {\n\t\t\t\toptions = { ...defaultOptions, ...args[0] }\n\t\t\t} else {\n\t\t\t\toptions = { ...defaultOptions, content: String(args[0]) }\n\t\t\t}\n\t\t} else if (args.length >= 2) {\n\t\t\tif (typeof args[0] === 'string') {\n\t\t\t\tswitch (args[0]) {\n\t\t\t\t\tcase 'success':\n\t\t\t\t\t\toptions.type = 'success'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\toptions.type = 'error'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'help':\n\t\t\t\t\t\toptions.type = 'help'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'loading':\n\t\t\t\t\t\toptions.type = 'loading'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase 'info':\n\t\t\t\t\t\toptions.type = 'info'\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\toptions.type = 'success'\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof args[1] === 'object') {\n\t\t\t\toptions = { ...options, ...args[1] }\n\t\t\t}\n\t\t}\n\n\t\t// 创建容器\n\t\tconst body = document.body\n\t\tconst uuid = `msg-${generateUUID()}`\n\t\tconst container = document.createElement('div')\n\t\tcontainer.setAttribute('id', uuid)\n\t\tbody.appendChild(container)\n\n\t\t// 处理VNode类型的content和title,避免同时作为props和slots传递\n\t\tconst isTitleVNode = isVNode(options.title)\n\t\tconst isDetailVNode = isVNode(options.detail)\n\n\t\tconst props = {\n\t\t\t...options,\n\t\t\t...(isTitleVNode ? { title: undefined } : {}),\n\t\t\t...(isDetailVNode ? { detail: undefined } : {})\n\t\t}\n\n\t\t// 创建VNode并渲染\n\t\tconst vnode = h(\n\t\t\tMsg,\n\t\t\t{\n\t\t\t\t...props,\n\t\t\t\tonClose: () => {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\trender(null, container)\n\t\t\t\t\t\tremoveElement(container)\n\t\t\t\t\t\treject(false)\n\t\t\t\t\t}, 200)\n\t\t\t\t},\n\t\t\t\tonConfirm: () => {\n\t\t\t\t\trender(null, container)\n\t\t\t\t\tremoveElement(container)\n\t\t\t\t\tresolve(true)\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: isTitleVNode ? options.title : null,\n\t\t\t\tdetail: isDetailVNode ? options.detail : null\n\t\t\t}\n\t\t)\n\n\t\t// 设置应用上下文\n\t\tif (app && app._context) {\n\t\t\tvnode.appContext = app._context\n\t\t}\n\n\t\t// 渲染组件到容器\n\t\trender(vnode, container)\n\n\t\t// 等待DOM挂载完成后调用open方法\n\t\tconst componentInstance = vnode.component\n\t\trequestAnimationFrame(() => {\n\t\t\tif (componentInstance && componentInstance.exposed && typeof componentInstance.exposed.open === 'function') {\n\t\t\t\tcomponentInstance.exposed.open()\n\t\t\t}\n\t\t})\n\t})\n}\n\n// 创建$msg函数工厂\nfunction createMsgFunction(app: any) {\n\tconst $msg = function (...args: any[]): Promise<boolean> {\n\t\tapp = app ? app : ToMsg._context\n\t\treturn createMsgInstance(app, ...args)\n\t}\n\n\t// 添加便捷方法\n\t$msg.success = function (options: MsgOptions): Promise<boolean> {\n\t\t// 成功提示默认不需要取消按钮\n\t\tif (typeof options === 'object') {\n\t\t\toptions.cancelable = false\n\t\t} else {\n\t\t\toptions = { cancelable: false }\n\t\t}\n\t\treturn $msg('success', options)\n\t}\n\n\t$msg.error = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('error', options)\n\t}\n\n\t$msg.help = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('help', options)\n\t}\n\n\t$msg.loading = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('loading', options)\n\t}\n\n\t$msg.info = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('info', options)\n\t}\n\n\t$msg.confirm = function (options: MsgOptions): Promise<boolean> {\n\t\treturn $msg('help', options)\n\t}\n\n\treturn $msg\n}\n\nexport const $msg = createMsgFunction(null)\n\nconst originInstall = ToMsg.install\n\nToMsg.install = app => {\n\toriginInstall(app)\n\tToMsg._context = app\n\tconst appMsg = createMsgFunction(app)\n\tapp.config.globalProperties.$msg = appMsg\n}\n\nexport default $msg\n\nexport { ToMsg }\n"],"names":["withInstall","Msg","generateUUID","isVNode","h","render","removeElement","$msg"],"mappings":"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"}
|
|
@@ -265,14 +265,14 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
265
265
|
128
|
|
266
266
|
/* KEYED_FRAGMENT */
|
|
267
267
|
)),
|
|
268
|
-
_ctx.
|
|
268
|
+
_ctx.cancelable ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ToButton), {
|
|
269
269
|
key: 0,
|
|
270
270
|
class: "to-msg-button type-extend",
|
|
271
271
|
onClick: cancel
|
|
272
272
|
}, {
|
|
273
273
|
default: vue.withCtx(() => [
|
|
274
274
|
vue.createTextVNode(
|
|
275
|
-
vue.toDisplayString(_ctx.cancelText || vue.unref(index.t)("to.
|
|
275
|
+
vue.toDisplayString(_ctx.cancelText || vue.unref(index.t)("to.common.cancel")),
|
|
276
276
|
1
|
|
277
277
|
/* TEXT */
|
|
278
278
|
)
|
|
@@ -280,14 +280,14 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
280
280
|
_: 1
|
|
281
281
|
/* STABLE */
|
|
282
282
|
})) : vue.createCommentVNode("v-if", true),
|
|
283
|
-
_ctx.
|
|
283
|
+
_ctx.confirmable ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ToButton), {
|
|
284
284
|
key: 1,
|
|
285
285
|
class: "to-msg-button type-confirm",
|
|
286
286
|
onClick: confirm
|
|
287
287
|
}, {
|
|
288
288
|
default: vue.withCtx(() => [
|
|
289
289
|
vue.createTextVNode(
|
|
290
|
-
vue.toDisplayString(_ctx.confirmText || vue.unref(index.t)("to.
|
|
290
|
+
vue.toDisplayString(_ctx.confirmText || vue.unref(index.t)("to.common.confirm")),
|
|
291
291
|
1
|
|
292
292
|
/* TEXT */
|
|
293
293
|
)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"msg.vue2.js","sources":["../../../../../../packages/components/msg/src/msg.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToMsg'\n});\n</script>\n<template>\n\t<div ref=\"el\" :key=\"langKey\" :flex=\"flex ? flex : null\" class=\"to-msg\" :class=\"setClass\">\n\t\t<div class=\"to-msg-bg\" @click=\"bgClose\"></div>\n\t\t<div class=\"to-msg-scroll\">\n\t\t\t<div class=\"to-msg-wrapper\" :style=\"setWrapperStyle\">\n\t\t\t\t<div class=\"to-msg-side\">\n\t\t\t\t\t<component :is=\"emoteComponent\" v-if=\"emoteComponent\"></component>\n\t\t\t\t\t<div class=\"to-msg-icon\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"hasInfoContent\" class=\"to-msg-main\">\n\t\t\t\t\t<div class=\"to-msg-text\">\n\t\t\t\t\t\t<div v-if=\"title || slots.title || slots.default\" class=\"to-msg-title\">\n\t\t\t\t\t\t\t{{ title }}\n\t\t\t\t\t\t\t<slot name=\"title\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-if=\"content || slots.content\" class=\"to-msg-content\">\n\t\t\t\t\t\t\t<slot name=\"content\">\n\t\t\t\t\t\t\t\t<component :is=\"content\" v-if=\"isCom\"></component>\n\t\t\t\t\t\t\t\t<span v-else v-html=\"safeContent\"></span>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"slots.detail || detail\" class=\"to-msg-detail\">\n\t\t\t\t\t\t<template v-if=\"$slots.detail || detail\">\n\t\t\t\t\t\t\t<to-button v-if=\"!iShowDetail\" icon-position=\"right\" icon=\"expand\" class=\"to-msg-detail-button\" href=\"javascript:void(0)\" @click=\"iShowDetail = true\">{{ t('to.msg.showDetail') }}</to-button>\n\t\t\t\t\t\t\t<to-button v-else icon-position=\"right\" icon=\"collapse\" class=\"to-msg-detail-button\" href=\"javascript:void(0)\" @click=\"iShowDetail = false\">{{ t('to.msg.hideDetail') }}</to-button>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div v-if=\"slots.detail && iShowDetail\" class=\"to-msg-detail-content\">\n\t\t\t\t\t\t\t<slot name=\"detail\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-else-if=\"detail && iShowDetail\" class=\"to-msg-detail-content\" v-html=\"safeDetail\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"confirmable || cancelable || buttons.length\" class=\"to-msg-fn\">\n\t\t\t\t\t\t<slot>\n\t\t\t\t\t\t\t<to-button v-for=\"(btn, index) in buttons\" :key=\"index\" class=\"to-msg-button type-extend\" v-bind=\"btn.attrs\" @click=\"handleButtonClick(btn)\">{{ btn.label }}</to-button>\n\t\t\t\t\t\t\t<to-button v-if=\"cancelText || true\" class=\"to-msg-button type-extend\" @click=\"cancel\">{{ cancelText || t('to.msg.cancel') }}</to-button>\n\t\t\t\t\t\t\t<to-button v-if=\"confirmText || true\" class=\"to-msg-button type-confirm\" @click=\"confirm\">{{ confirmText || t('to.msg.confirm') }}</to-button>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport DOMPurify from 'dompurify'\nimport { computed, ref, useSlots, useAttrs, CSSProperties, isVNode, watch } from 'vue'\nimport { ToButton } from '@touchvue/components'\nimport { t, langKey } from '@touchvue/locale'\n\n\nexport interface ButtonConfig {\n\tlabel: string\n\tattrs?: Record<string, any>\n\tfn?: () => void\n}\n\nexport interface Props {\n\tflex?: boolean\n\ttype?: string\n\tmode?: string\n\ttitle?: string\n\tcontent?: any\n\tbuttons?: ButtonConfig[]\n\theight?: string | number\n\twidth?: string | number\n\tdir?: string\n\tdetail?: string\n\tshowDetail?: boolean\n\tpadding?: string | number\n\tposition?: string\n\tconfirmText?: string\n\tcancelText?: string\n\tcloseOnBlur?: boolean\n\tzIndex?: number | string\n\tshow?: boolean\n\tglobal?: boolean\n\tconfirmable?: boolean\n\tcancelable?: boolean\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n\tmode: 'default',\n\ttitle: '',\n\tcontent: '',\n\tbuttons: () => [],\n\theight: 'auto',\n\twidth: '',\n\tflex: false,\n\tdetail: '',\n\tshowDetail: true,\n\tpadding: 0,\n\ttype: '',\n\tdir: '',\n\tposition: '',\n\tconfirmText: '',\n\tcancelText: '',\n\tcloseOnBlur: true,\n\tzIndex: 0,\n\tshow: false,\n\tglobal: true,\n\tconfirmable: true,\n\tcancelable: true\n})\n\nconst emit = defineEmits(['close', 'confirm'])\n\nconst el = ref(null)\nconst iShowDetail = ref(props.showDetail)\nconst visible = ref(props.show)\nconst slots = useSlots()\nconst isCom = isVNode(props.content)\n\nconst className = useAttrs().class as string | undefined\n\n// 监听 show 属性变化\nwatch(\n\t() => props.show,\n\tnewVal => {\n\t\tvisible.value = newVal\n\t},\n\t{\n\t\timmediate: true\n\t}\n)\n\n// 计算属性\n\nconst setClass = computed(() => {\n\tconst arr: string[] = []\n\tif (props.mode) arr.push(`mode-${props.mode}`)\n\tif (props.type) {\n\t\tarr.push(`type-${props.type}`)\n\t}\n\tif (props.dir) {\n\t\tarr.push(`dir-${props.dir}`)\n\t}\n\tif (props.position) {\n\t\tarr.push(`position-${props.position}`)\n\t}\n\tif (props.global) {\n\t\tarr.push('is-global')\n\t}\n\tif (visible.value) arr.push('is-show')\n\tif (className) arr.push(className)\n\treturn arr\n})\n\nconst setWrapperStyle = computed(() => {\n\tconst style: CSSProperties = {}\n\tif (props.width) {\n\t\tstyle.width = `${props.width}em`\n\t}\n\treturn style\n})\n\nconst hasInfoContent = computed(() => props.title || slots.default || props.content || slots.content || slots.title)\nconst safeContent = computed(() => DOMPurify.sanitize(props.content))\nconst safeDetail = computed(() => DOMPurify.sanitize(props.detail))\n\nconst emoteComponent = computed(() => {\n\treturn (window as any).$TouchUI?.msg?.emote?.[props.type || 'default']\n})\n\nconst handleButtonClick = (btn: ButtonConfig) => {\n\tif (typeof btn.fn === 'function') {\n\t\tbtn.fn()\n\t}\n}\n\nconst open = () => {\n\tconst el = document.querySelector('.to-msg') as HTMLElement\n\tif (props.zIndex) {\n\t\tel.style.zIndex = props.zIndex.toString()\n\t} else {\n\t\tel.style.zIndex = ((window as any).$TouchUI?.zIndex ?? 1000).toString()\n\t\tif ((window as any).$TouchUI) (window as any).$TouchUI.zIndex++\n\t}\n\tvisible.value = true\n}\n\nconst close = () => {\n\tvisible.value = false\n\temit('close')\n}\n\nconst confirm = () => {\n\temit('confirm')\n\tvisible.value = false\n\temit('close')\n}\n\nconst cancel = () => {\n\tvisible.value = false\n\temit('close')\n}\n\nconst bgClose = () => {\n\tif (props.closeOnBlur) {\n\t\tclose()\n\t}\n}\n\ndefineExpose({ open, close })\n</script>\n"],"names":["DO_defineComponent","ref","useSlots","isVNode","useAttrs","watch","computed","DOMPurify","el","_createElementBlock","_unref","langKey","flex","_normalizeClass","_createElementVNode","_openBlock","_createBlock","_resolveDynamicComponent","title","_renderSlot","content","detail","$slots","_Fragment","ToButton","t","confirmable","cancelable","buttons","_mergeProps","_createTextVNode","_toDisplayString","cancelText","confirmText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"msg.vue2.js","sources":["../../../../../../packages/components/msg/src/msg.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToMsg'\n});\n</script>\n<template>\n\t<div ref=\"el\" :key=\"langKey\" :flex=\"flex ? flex : null\" class=\"to-msg\" :class=\"setClass\">\n\t\t<div class=\"to-msg-bg\" @click=\"bgClose\"></div>\n\t\t<div class=\"to-msg-scroll\">\n\t\t\t<div class=\"to-msg-wrapper\" :style=\"setWrapperStyle\">\n\t\t\t\t<div class=\"to-msg-side\">\n\t\t\t\t\t<component :is=\"emoteComponent\" v-if=\"emoteComponent\"></component>\n\t\t\t\t\t<div class=\"to-msg-icon\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"hasInfoContent\" class=\"to-msg-main\">\n\t\t\t\t\t<div class=\"to-msg-text\">\n\t\t\t\t\t\t<div v-if=\"title || slots.title || slots.default\" class=\"to-msg-title\">\n\t\t\t\t\t\t\t{{ title }}\n\t\t\t\t\t\t\t<slot name=\"title\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-if=\"content || slots.content\" class=\"to-msg-content\">\n\t\t\t\t\t\t\t<slot name=\"content\">\n\t\t\t\t\t\t\t\t<component :is=\"content\" v-if=\"isCom\"></component>\n\t\t\t\t\t\t\t\t<span v-else v-html=\"safeContent\"></span>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"slots.detail || detail\" class=\"to-msg-detail\">\n\t\t\t\t\t\t<template v-if=\"$slots.detail || detail\">\n\t\t\t\t\t\t\t<to-button v-if=\"!iShowDetail\" icon-position=\"right\" icon=\"expand\" class=\"to-msg-detail-button\" href=\"javascript:void(0)\" @click=\"iShowDetail = true\">{{ t('to.msg.showDetail') }}</to-button>\n\t\t\t\t\t\t\t<to-button v-else icon-position=\"right\" icon=\"collapse\" class=\"to-msg-detail-button\" href=\"javascript:void(0)\" @click=\"iShowDetail = false\">{{ t('to.msg.hideDetail') }}</to-button>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div v-if=\"slots.detail && iShowDetail\" class=\"to-msg-detail-content\">\n\t\t\t\t\t\t\t<slot name=\"detail\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-else-if=\"detail && iShowDetail\" class=\"to-msg-detail-content\" v-html=\"safeDetail\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"confirmable || cancelable || buttons.length\" class=\"to-msg-fn\">\n\t\t\t\t\t\t<slot>\n\t\t\t\t\t\t\t<to-button v-for=\"(btn, index) in buttons\" :key=\"index\" class=\"to-msg-button type-extend\" v-bind=\"btn.attrs\" @click=\"handleButtonClick(btn)\">{{ btn.label }}</to-button>\n\t\t\t\t\t\t\t<to-button v-if=\"cancelable\" class=\"to-msg-button type-extend\" @click=\"cancel\">{{ cancelText || t('to.common.cancel') }}</to-button>\n\t\t\t\t\t\t\t<to-button v-if=\"confirmable\" class=\"to-msg-button type-confirm\" @click=\"confirm\">{{ confirmText || t('to.common.confirm') }}</to-button>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport DOMPurify from 'dompurify'\nimport { computed, ref, useSlots, useAttrs, CSSProperties, isVNode, watch } from 'vue'\nimport { ToButton } from '@touchvue/components'\nimport { t, langKey } from '@touchvue/locale'\n\n\nexport interface ButtonConfig {\n\tlabel: string\n\tattrs?: Record<string, any>\n\tfn?: () => void\n}\n\nexport interface Props {\n\tflex?: boolean\n\ttype?: string\n\tmode?: string\n\ttitle?: string\n\tcontent?: any\n\tbuttons?: ButtonConfig[]\n\theight?: string | number\n\twidth?: string | number\n\tdir?: string\n\tdetail?: string\n\tshowDetail?: boolean\n\tpadding?: string | number\n\tposition?: string\n\tconfirmText?: string\n\tcancelText?: string\n\tcloseOnBlur?: boolean\n\tzIndex?: number | string\n\tshow?: boolean\n\tglobal?: boolean\n\tconfirmable?: boolean\n\tcancelable?: boolean\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n\tmode: 'default',\n\ttitle: '',\n\tcontent: '',\n\tbuttons: () => [],\n\theight: 'auto',\n\twidth: '',\n\tflex: false,\n\tdetail: '',\n\tshowDetail: true,\n\tpadding: 0,\n\ttype: '',\n\tdir: '',\n\tposition: '',\n\tconfirmText: '',\n\tcancelText: '',\n\tcloseOnBlur: true,\n\tzIndex: 0,\n\tshow: false,\n\tglobal: true,\n\tconfirmable: true,\n\tcancelable: true\n})\n\nconst emit = defineEmits(['close', 'confirm'])\n\nconst el = ref(null)\nconst iShowDetail = ref(props.showDetail)\nconst visible = ref(props.show)\nconst slots = useSlots()\nconst isCom = isVNode(props.content)\n\nconst className = useAttrs().class as string | undefined\n\n// 监听 show 属性变化\nwatch(\n\t() => props.show,\n\tnewVal => {\n\t\tvisible.value = newVal\n\t},\n\t{\n\t\timmediate: true\n\t}\n)\n\n// 计算属性\n\nconst setClass = computed(() => {\n\tconst arr: string[] = []\n\tif (props.mode) arr.push(`mode-${props.mode}`)\n\tif (props.type) {\n\t\tarr.push(`type-${props.type}`)\n\t}\n\tif (props.dir) {\n\t\tarr.push(`dir-${props.dir}`)\n\t}\n\tif (props.position) {\n\t\tarr.push(`position-${props.position}`)\n\t}\n\tif (props.global) {\n\t\tarr.push('is-global')\n\t}\n\tif (visible.value) arr.push('is-show')\n\tif (className) arr.push(className)\n\treturn arr\n})\n\nconst setWrapperStyle = computed(() => {\n\tconst style: CSSProperties = {}\n\tif (props.width) {\n\t\tstyle.width = `${props.width}em`\n\t}\n\treturn style\n})\n\nconst hasInfoContent = computed(() => props.title || slots.default || props.content || slots.content || slots.title)\nconst safeContent = computed(() => DOMPurify.sanitize(props.content))\nconst safeDetail = computed(() => DOMPurify.sanitize(props.detail))\n\nconst emoteComponent = computed(() => {\n\treturn (window as any).$TouchUI?.msg?.emote?.[props.type || 'default']\n})\n\nconst handleButtonClick = (btn: ButtonConfig) => {\n\tif (typeof btn.fn === 'function') {\n\t\tbtn.fn()\n\t}\n}\n\nconst open = () => {\n\tconst el = document.querySelector('.to-msg') as HTMLElement\n\tif (props.zIndex) {\n\t\tel.style.zIndex = props.zIndex.toString()\n\t} else {\n\t\tel.style.zIndex = ((window as any).$TouchUI?.zIndex ?? 1000).toString()\n\t\tif ((window as any).$TouchUI) (window as any).$TouchUI.zIndex++\n\t}\n\tvisible.value = true\n}\n\nconst close = () => {\n\tvisible.value = false\n\temit('close')\n}\n\nconst confirm = () => {\n\temit('confirm')\n\tvisible.value = false\n\temit('close')\n}\n\nconst cancel = () => {\n\tvisible.value = false\n\temit('close')\n}\n\nconst bgClose = () => {\n\tif (props.closeOnBlur) {\n\t\tclose()\n\t}\n}\n\ndefineExpose({ open, close })\n</script>\n"],"names":["DO_defineComponent","ref","useSlots","isVNode","useAttrs","watch","computed","DOMPurify","el","_createElementBlock","_unref","langKey","flex","_normalizeClass","_createElementVNode","_openBlock","_createBlock","_resolveDynamicComponent","title","_renderSlot","content","detail","$slots","_Fragment","ToButton","t","confirmable","cancelable","buttons","_mergeProps","_createTextVNode","_toDisplayString","cancelText","confirmText"],"mappings":"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"}
|
|
@@ -85,6 +85,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
85
85
|
};
|
|
86
86
|
return (_ctx, _cache) => {
|
|
87
87
|
return vue.openBlock(), vue.createElementBlock("span", {
|
|
88
|
+
role: _ctx.link ? "button" : null,
|
|
88
89
|
flex: _ctx.flex ? _ctx.flex : null,
|
|
89
90
|
class: vue.normalizeClass(["to-pic", setClass.value]),
|
|
90
91
|
style: vue.normalizeStyle(setStyle.value)
|
|
@@ -126,7 +127,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
126
127
|
64
|
|
127
128
|
/* STABLE_FRAGMENT */
|
|
128
129
|
)) : vue.createCommentVNode("v-if", true)
|
|
129
|
-
], 14, ["flex"]);
|
|
130
|
+
], 14, ["role", "flex"]);
|
|
130
131
|
};
|
|
131
132
|
}
|
|
132
133
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pic.vue2.js","sources":["../../../../../../packages/components/pic/src/Pic.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToPic'\n});\n</script>\n<template>\n\t<span :flex=\"flex ? flex : null\" class=\"to-pic\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<img :src=\"src\" class=\"to-pic-content\" :alt=\"alt\" @click=\"clickHandler\" />\n\t\t<to-tag v-if=\"count !== '' && count !== undefined && Number(count) !== 0\" type=\"number\" class=\"to-pic-count\">{{ count }}</to-tag>\n\t\t<template v-if=\"preview\">\n\t\t\t<pic-viewer v-if=\"showViewer\" :mask-closable=\"true\" :z-index=\"zIndex\" :initial-index=\"imageIndex\" :on-close=\"closeViewer\" :url-list=\"previews\"></pic-viewer>\n\t\t</template>\n\t</span>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, computed } from 'vue'\nimport { picProps } from './pic'\nimport PicViewer from './PicViewer.vue'\nimport { ToTag } from '@touchvue/components'\n\n\n\nconst props = defineProps(picProps)\n\nconst showViewer = ref(false)\nlet prevOverflow = ''\n\nconst preview = computed(() => {\n\treturn Array.isArray(props.previews) && props.previews.length > 0\n})\n\nconst imageIndex = computed(() => {\n\tlet previewIndex = 0\n\tconst srcIndex = (props.previews as string[]).indexOf(props.src)\n\tif (srcIndex >= 0) {\n\t\tpreviewIndex = srcIndex\n\t}\n\treturn previewIndex\n})\n\nconst setClass = computed(() => {\n\tconst arr: string[] = []\n\n\tif (props.color) {\n\t\tarr.push(`color-${props.color}`)\n\t}\n\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\n\tif (props.link) {\n\t\tarr.push(`is-link`)\n\t}\n\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tconst obj: Record<string, string> = {}\n\n\tif (props.width) {\n\t\tif (!isNaN(Number(props.width))) {\n\t\t\tobj['--width'] = props.width + 'em'\n\t\t} else if (props.width === 'full') {\n\t\t\tobj['--width'] = '100%'\n\t\t} else {\n\t\t\tobj['--width'] = String(props.width)\n\t\t}\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 if (props.height === 'full') {\n\t\t\tobj.height = '100%'\n\t\t} else {\n\t\t\tobj.height = String(props.height)\n\t\t}\n\t}\n\n\tif (props.height !== 'auto') {\n\t\tif (typeof props.height === 'number') {\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\tif (props.previews && props.previews.length > 0) {\n\t\tobj.cursor = 'pointer'\n\t}\n\n\treturn obj\n})\n\nconst clickHandler = () => {\n\tif (!preview.value) {\n\t\treturn\n\t}\n\tshowViewer.value = true\n}\n\nconst closeViewer = () => {\n\tdocument.body.style.overflow = prevOverflow\n\tshowViewer.value = false\n}\n</script>\n"],"names":["DO_defineComponent","ref","computed","_createElementBlock","flex","_normalizeClass","_createElementVNode","src","alt","count","_createBlock","_unref","ToTag","_Fragment","PicViewer","zIndex","previews"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Pic.vue2.js","sources":["../../../../../../packages/components/pic/src/Pic.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToPic'\n});\n</script>\n<template>\n\t<span :role=\"link ? 'button' : null\" :flex=\"flex ? flex : null\" class=\"to-pic\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<img :src=\"src\" class=\"to-pic-content\" :alt=\"alt\" @click=\"clickHandler\" />\n\t\t<to-tag v-if=\"count !== '' && count !== undefined && Number(count) !== 0\" type=\"number\" class=\"to-pic-count\">{{ count }}</to-tag>\n\t\t<template v-if=\"preview\">\n\t\t\t<pic-viewer v-if=\"showViewer\" :mask-closable=\"true\" :z-index=\"zIndex\" :initial-index=\"imageIndex\" :on-close=\"closeViewer\" :url-list=\"previews\"></pic-viewer>\n\t\t</template>\n\t</span>\n</template>\n<script lang=\"ts\" setup>\nimport { ref, computed } from 'vue'\nimport { picProps } from './pic'\nimport PicViewer from './PicViewer.vue'\nimport { ToTag } from '@touchvue/components'\n\n\n\nconst props = defineProps(picProps)\n\nconst showViewer = ref(false)\nlet prevOverflow = ''\n\nconst preview = computed(() => {\n\treturn Array.isArray(props.previews) && props.previews.length > 0\n})\n\nconst imageIndex = computed(() => {\n\tlet previewIndex = 0\n\tconst srcIndex = (props.previews as string[]).indexOf(props.src)\n\tif (srcIndex >= 0) {\n\t\tpreviewIndex = srcIndex\n\t}\n\treturn previewIndex\n})\n\nconst setClass = computed(() => {\n\tconst arr: string[] = []\n\n\tif (props.color) {\n\t\tarr.push(`color-${props.color}`)\n\t}\n\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\n\tif (props.link) {\n\t\tarr.push(`is-link`)\n\t}\n\n\treturn arr\n})\n\nconst setStyle = computed(() => {\n\tconst obj: Record<string, string> = {}\n\n\tif (props.width) {\n\t\tif (!isNaN(Number(props.width))) {\n\t\t\tobj['--width'] = props.width + 'em'\n\t\t} else if (props.width === 'full') {\n\t\t\tobj['--width'] = '100%'\n\t\t} else {\n\t\t\tobj['--width'] = String(props.width)\n\t\t}\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 if (props.height === 'full') {\n\t\t\tobj.height = '100%'\n\t\t} else {\n\t\t\tobj.height = String(props.height)\n\t\t}\n\t}\n\n\tif (props.height !== 'auto') {\n\t\tif (typeof props.height === 'number') {\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\tif (props.previews && props.previews.length > 0) {\n\t\tobj.cursor = 'pointer'\n\t}\n\n\treturn obj\n})\n\nconst clickHandler = () => {\n\tif (!preview.value) {\n\t\treturn\n\t}\n\tshowViewer.value = true\n}\n\nconst closeViewer = () => {\n\tdocument.body.style.overflow = prevOverflow\n\tshowViewer.value = false\n}\n</script>\n"],"names":["DO_defineComponent","ref","computed","_createElementBlock","link","flex","_normalizeClass","_createElementVNode","src","alt","count","_createBlock","_unref","ToTag","_Fragment","PicViewer","zIndex","previews"],"mappings":"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"}
|
|
@@ -16,19 +16,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
16
16
|
const props = __props;
|
|
17
17
|
const emit = __emit;
|
|
18
18
|
const scrollRef = vue.ref(null);
|
|
19
|
-
const barThumb = vue.ref(null);
|
|
20
|
-
const horizontalBarThumb = vue.ref(null);
|
|
21
19
|
const isScrolling = vue.ref(false);
|
|
22
|
-
const isHovering = vue.ref(false);
|
|
23
20
|
let isTabTriggeredScroll = false;
|
|
24
21
|
let scrollUpdateTimer = null;
|
|
25
|
-
let isDragging = vue.ref(false);
|
|
26
|
-
let isHorizontalDragging = vue.ref(false);
|
|
27
|
-
let startY = 0;
|
|
28
|
-
let startX = 0;
|
|
29
|
-
let startScrollTop = 0;
|
|
30
|
-
let startScrollLeft = 0;
|
|
31
|
-
const hasHorizontalScroll = vue.ref(false);
|
|
32
22
|
const scrollPoints = vue.ref([]);
|
|
33
23
|
const bindValue = vue.computed(() => props.modelValue || props.value);
|
|
34
24
|
const currentPointValue = vue.ref(bindValue.value || null);
|
|
@@ -41,15 +31,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
41
31
|
}
|
|
42
32
|
});
|
|
43
33
|
vue.provide("scrollValue", currentPointValue);
|
|
44
|
-
const barVisibleClass = vue.computed(() => {
|
|
45
|
-
return `bar-${String(props.barDisplay)}`;
|
|
46
|
-
});
|
|
47
|
-
const checkHorizontalScroll = () => {
|
|
48
|
-
if (scrollRef.value) {
|
|
49
|
-
const { scrollWidth, clientWidth } = scrollRef.value;
|
|
50
|
-
hasHorizontalScroll.value = scrollWidth > clientWidth;
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
34
|
const setScrollPoints = () => {
|
|
54
35
|
if (!scrollRef.value)
|
|
55
36
|
return;
|
|
@@ -187,95 +168,13 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
187
168
|
}
|
|
188
169
|
}
|
|
189
170
|
});
|
|
190
|
-
if (props.virtual) {
|
|
191
|
-
window.addEventListener("mousemove", onMousemove);
|
|
192
|
-
window.addEventListener("mouseup", onMouseup);
|
|
193
|
-
window.addEventListener("mouseleave", onMouseup);
|
|
194
|
-
if (scrollRef.value) {
|
|
195
|
-
scrollRef.value.addEventListener("mouseenter", onMouseenter);
|
|
196
|
-
scrollRef.value.addEventListener("mouseleave", onMouseleave);
|
|
197
|
-
}
|
|
198
|
-
vue.nextTick(() => {
|
|
199
|
-
checkHorizontalScroll();
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
171
|
});
|
|
203
172
|
vue.onUnmounted(() => {
|
|
204
|
-
if (props.virtual) {
|
|
205
|
-
window.removeEventListener("mousemove", onMousemove);
|
|
206
|
-
window.removeEventListener("mouseup", onMouseup);
|
|
207
|
-
window.removeEventListener("mouseleave", onMouseup);
|
|
208
|
-
if (scrollRef.value) {
|
|
209
|
-
scrollRef.value.removeEventListener("mouseenter", onMouseenter);
|
|
210
|
-
scrollRef.value.removeEventListener("mouseleave", onMouseleave);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
173
|
if (scrollUpdateTimer) {
|
|
214
174
|
clearTimeout(scrollUpdateTimer);
|
|
215
175
|
scrollUpdateTimer = null;
|
|
216
176
|
}
|
|
217
177
|
});
|
|
218
|
-
const onMouseenter = () => {
|
|
219
|
-
isHovering.value = true;
|
|
220
|
-
};
|
|
221
|
-
const onMouseleave = () => {
|
|
222
|
-
if (!isDragging.value && !isHorizontalDragging.value) {
|
|
223
|
-
isHovering.value = false;
|
|
224
|
-
}
|
|
225
|
-
};
|
|
226
|
-
const onThumbMousedown = (e) => {
|
|
227
|
-
if (!scrollRef.value || !props.virtual)
|
|
228
|
-
return;
|
|
229
|
-
e.preventDefault();
|
|
230
|
-
e.stopPropagation();
|
|
231
|
-
if (scrollRef.value) {
|
|
232
|
-
scrollRef.value.classList.add("dragging-scrollbar");
|
|
233
|
-
}
|
|
234
|
-
startY = e.clientY;
|
|
235
|
-
startScrollTop = scrollRef.value.scrollTop;
|
|
236
|
-
isDragging.value = true;
|
|
237
|
-
};
|
|
238
|
-
const onHorizontalThumbMousedown = (e) => {
|
|
239
|
-
if (!scrollRef.value || !props.virtual)
|
|
240
|
-
return;
|
|
241
|
-
e.preventDefault();
|
|
242
|
-
e.stopPropagation();
|
|
243
|
-
if (scrollRef.value) {
|
|
244
|
-
scrollRef.value.classList.add("dragging-scrollbar-horizontal");
|
|
245
|
-
}
|
|
246
|
-
startX = e.clientX;
|
|
247
|
-
startScrollLeft = scrollRef.value.scrollLeft;
|
|
248
|
-
isHorizontalDragging.value = true;
|
|
249
|
-
};
|
|
250
|
-
const onMousemove = (e) => {
|
|
251
|
-
if (isDragging.value && scrollRef.value && barThumb.value) {
|
|
252
|
-
const deltaY = e.clientY - startY;
|
|
253
|
-
const contentHeight = scrollRef.value.scrollHeight;
|
|
254
|
-
const containerHeight = scrollRef.value.clientHeight;
|
|
255
|
-
const ratio = containerHeight / contentHeight;
|
|
256
|
-
scrollRef.value.scrollTop = startScrollTop + deltaY / ratio;
|
|
257
|
-
}
|
|
258
|
-
if (isHorizontalDragging.value && scrollRef.value && horizontalBarThumb.value) {
|
|
259
|
-
const deltaX = e.clientX - startX;
|
|
260
|
-
const contentWidth = scrollRef.value.scrollWidth;
|
|
261
|
-
const containerWidth = scrollRef.value.clientWidth;
|
|
262
|
-
const ratio = containerWidth / contentWidth;
|
|
263
|
-
scrollRef.value.scrollLeft = startScrollLeft + deltaX / ratio;
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
const onMouseup = () => {
|
|
267
|
-
isDragging.value = false;
|
|
268
|
-
isHorizontalDragging.value = false;
|
|
269
|
-
if (!isHovering.value) {
|
|
270
|
-
setTimeout(() => {
|
|
271
|
-
isHovering.value = false;
|
|
272
|
-
}, 300);
|
|
273
|
-
}
|
|
274
|
-
if (scrollRef.value) {
|
|
275
|
-
scrollRef.value.classList.remove("dragging-scrollbar");
|
|
276
|
-
scrollRef.value.classList.remove("dragging-scrollbar-horizontal");
|
|
277
|
-
}
|
|
278
|
-
};
|
|
279
178
|
const handleScroll = (event) => {
|
|
280
179
|
emit("scroll", event);
|
|
281
180
|
if (isTabTriggeredScroll) {
|
|
@@ -309,9 +208,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
309
208
|
emit("update:modelValue", pointValue);
|
|
310
209
|
emit("update:value", pointValue);
|
|
311
210
|
notifyScrollPointsActive(pointValue);
|
|
312
|
-
if (props.virtual && barThumb.value) {
|
|
313
|
-
updateVirtualScrollbar();
|
|
314
|
-
}
|
|
315
211
|
}
|
|
316
212
|
});
|
|
317
213
|
}
|
|
@@ -322,25 +218,13 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
322
218
|
emit("scrollEnd");
|
|
323
219
|
}, 100);
|
|
324
220
|
};
|
|
325
|
-
const updateVirtualScrollbar = () => {
|
|
326
|
-
if (!scrollRef.value || !props.virtual)
|
|
327
|
-
return;
|
|
328
|
-
vue.nextTick(() => {
|
|
329
|
-
const { scrollTop, scrollHeight, clientHeight } = scrollRef.value;
|
|
330
|
-
const thumbHeight = Math.max(30, clientHeight / scrollHeight * clientHeight);
|
|
331
|
-
const thumbTop = scrollTop / (scrollHeight - clientHeight) * (clientHeight - thumbHeight);
|
|
332
|
-
if (barThumb.value) {
|
|
333
|
-
barThumb.value.style.transform = `translateY(${thumbTop}px)`;
|
|
334
|
-
}
|
|
335
|
-
});
|
|
336
|
-
};
|
|
337
221
|
const to = (target) => {
|
|
338
222
|
if (!scrollRef.value)
|
|
339
223
|
return;
|
|
340
224
|
if (target === "$bottom") {
|
|
341
225
|
scrollRef.value.scrollTo({
|
|
342
226
|
top: scrollRef.value.scrollHeight - scrollRef.value.clientHeight,
|
|
343
|
-
behavior:
|
|
227
|
+
behavior: "auto"
|
|
344
228
|
});
|
|
345
229
|
return;
|
|
346
230
|
}
|
|
@@ -350,7 +234,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
350
234
|
const relativeTop = elementTop - containerTop + scrollRef.value.scrollTop;
|
|
351
235
|
scrollRef.value.scrollTo({
|
|
352
236
|
top: relativeTop,
|
|
353
|
-
behavior:
|
|
237
|
+
behavior: "auto"
|
|
354
238
|
});
|
|
355
239
|
return;
|
|
356
240
|
}
|
|
@@ -359,7 +243,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
359
243
|
scrollRef.value.scrollTo({
|
|
360
244
|
top: position,
|
|
361
245
|
left: 0,
|
|
362
|
-
behavior:
|
|
246
|
+
behavior: "auto"
|
|
363
247
|
});
|
|
364
248
|
return;
|
|
365
249
|
}
|
|
@@ -368,30 +252,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
368
252
|
return;
|
|
369
253
|
}
|
|
370
254
|
};
|
|
371
|
-
const thumbStyle = vue.computed(() => {
|
|
372
|
-
if (!scrollRef.value || !props.virtual)
|
|
373
|
-
return {};
|
|
374
|
-
const { clientHeight, scrollHeight, scrollTop } = scrollRef.value;
|
|
375
|
-
const thumbHeight = Math.max(30, clientHeight / scrollHeight * clientHeight);
|
|
376
|
-
const thumbTop = scrollTop / (scrollHeight - clientHeight) * (clientHeight - thumbHeight);
|
|
377
|
-
return {
|
|
378
|
-
height: `${thumbHeight}px`,
|
|
379
|
-
transform: `translateY(${thumbTop}px)`,
|
|
380
|
-
width: "6px"
|
|
381
|
-
};
|
|
382
|
-
});
|
|
383
|
-
const horizontalThumbStyle = vue.computed(() => {
|
|
384
|
-
if (!scrollRef.value || !props.virtual)
|
|
385
|
-
return {};
|
|
386
|
-
const { clientWidth, scrollWidth, scrollLeft } = scrollRef.value;
|
|
387
|
-
const thumbWidth = Math.max(30, clientWidth / scrollWidth * clientWidth);
|
|
388
|
-
const thumbLeft = scrollLeft / (scrollWidth - clientWidth) * (clientWidth - thumbWidth);
|
|
389
|
-
return {
|
|
390
|
-
width: `${thumbWidth}px`,
|
|
391
|
-
transform: `translateX(${thumbLeft}px)`,
|
|
392
|
-
height: "6px"
|
|
393
|
-
};
|
|
394
|
-
});
|
|
395
255
|
const setStyle = vue.computed(() => {
|
|
396
256
|
const obj = {};
|
|
397
257
|
if (props.height) {
|
|
@@ -405,9 +265,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
405
265
|
});
|
|
406
266
|
const setClass = vue.computed(() => {
|
|
407
267
|
let arr = [];
|
|
408
|
-
if (props.virtual) {
|
|
409
|
-
arr.push("hide-scrollbar");
|
|
410
|
-
}
|
|
411
268
|
if (props.mode) {
|
|
412
269
|
arr.push(`mode-${props.mode}`);
|
|
413
270
|
}
|
|
@@ -447,11 +304,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
447
304
|
break;
|
|
448
305
|
}
|
|
449
306
|
}
|
|
450
|
-
if (props.virtual) {
|
|
451
|
-
obj.overflow = "auto";
|
|
452
|
-
obj.position = "relative";
|
|
453
|
-
obj.width = "100%";
|
|
454
|
-
}
|
|
455
307
|
return obj;
|
|
456
308
|
});
|
|
457
309
|
function adjust() {
|
|
@@ -476,18 +328,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
476
328
|
}
|
|
477
329
|
}
|
|
478
330
|
});
|
|
479
|
-
if (props.virtual) {
|
|
480
|
-
window.addEventListener("mousemove", onMousemove);
|
|
481
|
-
window.addEventListener("mouseup", onMouseup);
|
|
482
|
-
window.addEventListener("mouseleave", onMouseup);
|
|
483
|
-
if (scrollRef.value) {
|
|
484
|
-
scrollRef.value.addEventListener("mouseenter", onMouseenter);
|
|
485
|
-
scrollRef.value.addEventListener("mouseleave", onMouseleave);
|
|
486
|
-
}
|
|
487
|
-
vue.nextTick(() => {
|
|
488
|
-
checkHorizontalScroll();
|
|
489
|
-
});
|
|
490
|
-
}
|
|
491
331
|
}
|
|
492
332
|
__expose({
|
|
493
333
|
to,
|
|
@@ -495,7 +335,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
495
335
|
isScrolling,
|
|
496
336
|
setScrollPoints,
|
|
497
337
|
findScrollPoint,
|
|
498
|
-
checkHorizontalScroll,
|
|
499
338
|
adjust
|
|
500
339
|
});
|
|
501
340
|
return (_ctx, _cache) => {
|
|
@@ -504,63 +343,13 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
504
343
|
flex: _ctx.flex ? _ctx.flex : null,
|
|
505
344
|
style: vue.normalizeStyle(setStyle.value)
|
|
506
345
|
}, [
|
|
507
|
-
vue.createCommentVNode(" \u81EA\u5B9A\u4E49\u6EDA\u52A8\u6761 "),
|
|
508
|
-
props.virtual ? (vue.openBlock(), vue.createElementBlock(
|
|
509
|
-
"div",
|
|
510
|
-
{
|
|
511
|
-
key: 0,
|
|
512
|
-
class: vue.normalizeClass(["to-scroll-bar", [barVisibleClass.value, { active: isScrolling.value || isHovering.value }]])
|
|
513
|
-
},
|
|
514
|
-
[
|
|
515
|
-
vue.createElementVNode(
|
|
516
|
-
"div",
|
|
517
|
-
{
|
|
518
|
-
ref_key: "barThumb",
|
|
519
|
-
ref: barThumb,
|
|
520
|
-
class: "to-scroll-thumb",
|
|
521
|
-
style: vue.normalizeStyle(thumbStyle.value),
|
|
522
|
-
onMousedown: onThumbMousedown
|
|
523
|
-
},
|
|
524
|
-
null,
|
|
525
|
-
36
|
|
526
|
-
/* STYLE, NEED_HYDRATION */
|
|
527
|
-
)
|
|
528
|
-
],
|
|
529
|
-
2
|
|
530
|
-
/* CLASS */
|
|
531
|
-
)) : vue.createCommentVNode("v-if", true),
|
|
532
|
-
vue.createCommentVNode(" \u6A2A\u5411\u6EDA\u52A8\u6761 "),
|
|
533
|
-
props.virtual && hasHorizontalScroll.value ? (vue.openBlock(), vue.createElementBlock(
|
|
534
|
-
"div",
|
|
535
|
-
{
|
|
536
|
-
key: 1,
|
|
537
|
-
class: vue.normalizeClass(["to-scroll-bar horizontal", [barVisibleClass.value, { active: isScrolling.value || isHovering.value }]])
|
|
538
|
-
},
|
|
539
|
-
[
|
|
540
|
-
vue.createElementVNode(
|
|
541
|
-
"div",
|
|
542
|
-
{
|
|
543
|
-
ref_key: "horizontalBarThumb",
|
|
544
|
-
ref: horizontalBarThumb,
|
|
545
|
-
class: "to-scroll-thumb",
|
|
546
|
-
style: vue.normalizeStyle(horizontalThumbStyle.value),
|
|
547
|
-
onMousedown: onHorizontalThumbMousedown
|
|
548
|
-
},
|
|
549
|
-
null,
|
|
550
|
-
36
|
|
551
|
-
/* STYLE, NEED_HYDRATION */
|
|
552
|
-
)
|
|
553
|
-
],
|
|
554
|
-
2
|
|
555
|
-
/* CLASS */
|
|
556
|
-
)) : vue.createCommentVNode("v-if", true),
|
|
557
346
|
vue.createCommentVNode(" \u6EDA\u52A8\u5185\u5BB9\u533A\u57DF "),
|
|
558
347
|
vue.createElementVNode(
|
|
559
348
|
"div",
|
|
560
349
|
{
|
|
561
350
|
ref_key: "scrollRef",
|
|
562
351
|
ref: scrollRef,
|
|
563
|
-
class:
|
|
352
|
+
class: "to-scroll-content",
|
|
564
353
|
style: vue.normalizeStyle(setContentStyle.value),
|
|
565
354
|
onScroll: handleScroll
|
|
566
355
|
},
|
|
@@ -568,8 +357,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
568
357
|
vue.createCommentVNode(" \u9ED8\u8BA4\u5185\u5BB9\u63D2\u69FD "),
|
|
569
358
|
vue.renderSlot(_ctx.$slots, "default")
|
|
570
359
|
],
|
|
571
|
-
|
|
572
|
-
/*
|
|
360
|
+
36
|
|
361
|
+
/* STYLE, NEED_HYDRATION */
|
|
573
362
|
)
|
|
574
363
|
], 14, ["flex"]);
|
|
575
364
|
};
|