@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.
Files changed (54) hide show
  1. package/es/components/msg/index.d.ts +22 -7
  2. package/es/components/scroll/index.d.ts +0 -48
  3. package/es/components/scroll/src/Scroll.vue.d.ts +0 -28
  4. package/es/components/scroll/src/scroll.d.ts +0 -21
  5. package/es/packages/components/box/src/box.vue2.mjs +2 -1
  6. package/es/packages/components/box/src/box.vue2.mjs.map +1 -1
  7. package/es/packages/components/msg/index.d.mjs.map +1 -1
  8. package/es/packages/components/msg/index.mjs +26 -15
  9. package/es/packages/components/msg/index.mjs.map +1 -1
  10. package/es/packages/components/msg/src/msg.vue2.mjs +4 -4
  11. package/es/packages/components/msg/src/msg.vue2.mjs.map +1 -1
  12. package/es/packages/components/pic/src/Pic.vue2.mjs +2 -1
  13. package/es/packages/components/pic/src/Pic.vue2.mjs.map +1 -1
  14. package/es/packages/components/scroll/src/Scroll.vue2.mjs +6 -217
  15. package/es/packages/components/scroll/src/Scroll.vue2.mjs.map +1 -1
  16. package/es/packages/components/scroll/src/scroll.mjs +0 -21
  17. package/es/packages/components/scroll/src/scroll.mjs.map +1 -1
  18. package/es/packages/components/select/src/select.vue2.mjs +120 -125
  19. package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
  20. package/es/packages/directives/tip/src/tip.mjs +13 -0
  21. package/es/packages/directives/tip/src/tip.mjs.map +1 -1
  22. package/es/packages/locale/lang/en-US.mjs +4 -0
  23. package/es/packages/locale/lang/en-US.mjs.map +1 -1
  24. package/es/packages/locale/lang/zh-CN.mjs +4 -0
  25. package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
  26. package/lib/components/msg/index.d.ts +22 -7
  27. package/lib/components/scroll/index.d.ts +0 -48
  28. package/lib/components/scroll/src/Scroll.vue.d.ts +0 -28
  29. package/lib/components/scroll/src/scroll.d.ts +0 -21
  30. package/lib/packages/components/box/src/box.vue2.js +2 -1
  31. package/lib/packages/components/box/src/box.vue2.js.map +1 -1
  32. package/lib/packages/components/msg/index.d.js.map +1 -1
  33. package/lib/packages/components/msg/index.js +26 -15
  34. package/lib/packages/components/msg/index.js.map +1 -1
  35. package/lib/packages/components/msg/src/msg.vue2.js +4 -4
  36. package/lib/packages/components/msg/src/msg.vue2.js.map +1 -1
  37. package/lib/packages/components/pic/src/Pic.vue2.js +2 -1
  38. package/lib/packages/components/pic/src/Pic.vue2.js.map +1 -1
  39. package/lib/packages/components/scroll/src/Scroll.vue2.js +6 -217
  40. package/lib/packages/components/scroll/src/Scroll.vue2.js.map +1 -1
  41. package/lib/packages/components/scroll/src/scroll.js +0 -21
  42. package/lib/packages/components/scroll/src/scroll.js.map +1 -1
  43. package/lib/packages/components/select/src/select.vue2.js +120 -125
  44. package/lib/packages/components/select/src/select.vue2.js.map +1 -1
  45. package/lib/packages/directives/tip/src/tip.js +13 -0
  46. package/lib/packages/directives/tip/src/tip.js.map +1 -1
  47. package/lib/packages/locale/lang/en-US.js +4 -0
  48. package/lib/packages/locale/lang/en-US.js.map +1 -1
  49. package/lib/packages/locale/lang/zh-CN.js +4 -0
  50. package/lib/packages/locale/lang/zh-CN.js.map +1 -1
  51. package/package.json +1 -1
  52. package/theme/components/index.css +70 -133
  53. package/theme/index.css +70 -133
  54. 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":";;;;;;;;;AAKM,MAAA,KAAA,GAAoCA,kBAAYC,WAAG,EAAA;AAmBzD,SAAS,iBAAA,CAAkB,QAAa,IAA+B,EAAA;AACtE,EAAA,IAAI,KAAK,MAAW,KAAA,CAAA;AAAG,IAAO,OAAA,OAAA,CAAQ,OAAO,qCAAY,CAAA,CAAA;AAEzD,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACvC,IAAA,MAAM,cAA6B,GAAA;AAAA,MAClC,KAAO,EAAA,EAAA;AAAA,MACP,OAAS,EAAA,EAAA;AAAA,MACT,GAAK,EAAA,EAAA;AAAA,MACL,WAAa,EAAA,MAAA;AAAA,MACb,QAAU,EAAA,QAAA;AAAA,MACV,MAAQ,EAAA,MAAA;AAAA,MACR,iBAAmB,EAAA,cAAA;AAAA,MACnB,gBAAkB,EAAA,cAAA;AAAA,MAClB,MAAQ,EAAA,KAAA;AAAA,MACR,IAAM,EAAA,KAAA;AAAA,KACP,CAAA;AAEA,IAAI,IAAA,OAAA,GAAsB,EAAE,GAAG,cAAe,EAAA,CAAA;AAG9C,IAAI,IAAA,IAAA,CAAK,WAAW,CAAG,EAAA;AACtB,MAAA,IAAI,OAAO,IAAA,CAAK,CAAC,CAAA,KAAM,QAAU,EAAA;AAChC,QAAA,OAAA,GAAU,EAAE,GAAG,cAAA,EAAgB,GAAG,IAAA,CAAK,CAAC,CAAE,EAAA,CAAA;AAAA,OACpC,MAAA;AACN,QAAU,OAAA,GAAA,EAAE,GAAG,cAAgB,EAAA,OAAA,EAAS,OAAO,IAAK,CAAA,CAAC,CAAC,CAAE,EAAA,CAAA;AAAA,OACzD;AAAA,KACD,MAAA,IAAW,IAAK,CAAA,MAAA,IAAU,CAAG,EAAA;AAC5B,MAAA,IAAI,OAAO,IAAA,CAAK,CAAC,CAAA,KAAM,QAAU,EAAA;AAChC,QAAQ,QAAA,IAAA,CAAK,CAAC,CAAG;AAAA,UAChB,KAAK,SAAA;AACJ,YAAA,OAAA,CAAQ,GAAM,GAAA,SAAA,CAAA;AACd,YAAA,MAAA;AAAA,UACD,KAAK,OAAA;AACJ,YAAA,OAAA,CAAQ,GAAM,GAAA,OAAA,CAAA;AACd,YAAA,MAAA;AAAA,UACD,KAAK,MAAA;AACJ,YAAA,OAAA,CAAQ,GAAM,GAAA,MAAA,CAAA;AACd,YAAA,MAAA;AAAA,UACD,KAAK,SAAA;AACJ,YAAA,OAAA,CAAQ,GAAM,GAAA,SAAA,CAAA;AACd,YAAA,MAAA;AAAA,UACD,KAAK,MAAA;AACJ,YAAA,OAAA,CAAQ,GAAM,GAAA,MAAA,CAAA;AACd,YAAA,MAAA;AAAA,UACD;AACC,YAAA,OAAA,CAAQ,GAAM,GAAA,SAAA,CAAA;AACd,YAAA,MAAA;AAAA,SACF;AAAA,OACD;AAEA,MAAA,IAAI,OAAO,IAAA,CAAK,CAAC,CAAA,KAAM,QAAU,EAAA;AAChC,QAAA,OAAA,GAAU,EAAE,GAAG,OAAA,EAAS,GAAG,IAAA,CAAK,CAAC,CAAE,EAAA,CAAA;AAAA,OACpC;AAAA,KACD;AAGA,IAAA,MAAM,OAAO,QAAS,CAAA,IAAA,CAAA;AACtB,IAAM,MAAA,IAAA,GAAO,OAAOC,iBAAa,EAAA,CAAA,CAAA,CAAA;AACjC,IAAM,MAAA,SAAA,GAAY,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC9C,IAAU,SAAA,CAAA,YAAA,CAAa,MAAM,IAAI,CAAA,CAAA;AACjC,IAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAG1B,IAAM,MAAA,YAAA,GAAeC,WAAQ,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAC1C,IAAM,MAAA,aAAA,GAAgBA,WAAQ,CAAA,OAAA,CAAQ,MAAM,CAAA,CAAA;AAE5C,IAAA,MAAM,KAAQ,GAAA;AAAA,MACb,GAAG,OAAA;AAAA,MACH,GAAI,YAAe,GAAA,EAAE,KAAO,EAAA,KAAA,CAAA,KAAc,EAAC;AAAA,MAC3C,GAAI,aAAgB,GAAA,EAAE,MAAQ,EAAA,KAAA,CAAA,KAAc,EAAC;AAAA,KAC9C,CAAA;AAGA,IAAA,MAAM,KAAQ,GAAAC,KAAA;AAAA,MACbH,WAAA;AAAA,MACA;AAAA,QACC,GAAG,KAAA;AAAA,QACH,SAAS,MAAM;AACd,UAAA,UAAA,CAAW,MAAM;AAChB,YAAAI,UAAA,CAAO,MAAM,SAAS,CAAA,CAAA;AACtB,YAAAC,kBAAA,CAAc,SAAS,CAAA,CAAA;AACvB,YAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,aACV,GAAG,CAAA,CAAA;AAAA,SACP;AAAA,QACA,WAAW,MAAM;AAChB,UAAAD,UAAA,CAAO,MAAM,SAAS,CAAA,CAAA;AACtB,UAAAC,kBAAA,CAAc,SAAS,CAAA,CAAA;AACvB,UAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,SACb;AAAA,OACD;AAAA,MACA;AAAA,QACC,KAAA,EAAO,YAAe,GAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA;AAAA,QACtC,MAAA,EAAQ,aAAgB,GAAA,OAAA,CAAQ,MAAS,GAAA,IAAA;AAAA,OAC1C;AAAA,KACD,CAAA;AAGA,IAAI,IAAA,GAAA,IAAO,IAAI,QAAU,EAAA;AACxB,MAAA,KAAA,CAAM,aAAa,GAAI,CAAA,QAAA,CAAA;AAAA,KACxB;AAGA,IAAAD,UAAA,CAAO,OAAO,SAAS,CAAA,CAAA;AAGvB,IAAA,MAAM,oBAAoB,KAAM,CAAA,SAAA,CAAA;AAChC,IAAA,qBAAA,CAAsB,MAAM;AAC3B,MAAA,IAAI,qBAAqB,iBAAkB,CAAA,OAAA,IAAW,OAAO,iBAAkB,CAAA,OAAA,CAAQ,SAAS,UAAY,EAAA;AAC3G,QAAA,iBAAA,CAAkB,QAAQ,IAAK,EAAA,CAAA;AAAA,OAChC;AAAA,KACA,CAAA,CAAA;AAAA,GACD,CAAA,CAAA;AACF,CAAA;AAGA,SAAS,kBAAkB,GAAU,EAAA;AACpC,EAAME,MAAAA,KAAAA,GAAO,YAAa,IAA+B,EAAA;AACxD,IAAM,GAAA,GAAA,GAAA,GAAM,MAAM,KAAM,CAAA,QAAA,CAAA;AACxB,IAAO,OAAA,iBAAA,CAAkB,GAAK,EAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GACtC,CAAA;AAGA,EAAAA,KAAAA,CAAK,OAAU,GAAA,SAAU,OAAuC,EAAA;AAE/D,IAAI,IAAA,OAAO,YAAY,QAAU,EAAA;AAChC,MAAA,OAAA,CAAQ,gBAAmB,GAAA,EAAA,CAAA;AAAA,KACrB,MAAA;AACN,MAAU,OAAA,GAAA,EAAE,kBAAkB,EAAG,EAAA,CAAA;AAAA,KAClC;AACA,IAAOA,OAAAA,KAAAA,CAAK,WAAW,OAAO,CAAA,CAAA;AAAA,GAC/B,CAAA;AAEA,EAAAA,KAAAA,CAAK,KAAQ,GAAA,SAAU,OAAuC,EAAA;AAC7D,IAAOA,OAAAA,KAAAA,CAAK,SAAS,OAAO,CAAA,CAAA;AAAA,GAC7B,CAAA;AAEA,EAAAA,KAAAA,CAAK,IAAO,GAAA,SAAU,OAAuC,EAAA;AAC5D,IAAOA,OAAAA,KAAAA,CAAK,QAAQ,OAAO,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAAA,KAAAA,CAAK,OAAU,GAAA,SAAU,OAAuC,EAAA;AAC/D,IAAOA,OAAAA,KAAAA,CAAK,WAAW,OAAO,CAAA,CAAA;AAAA,GAC/B,CAAA;AAEA,EAAAA,KAAAA,CAAK,IAAO,GAAA,SAAU,OAAuC,EAAA;AAC5D,IAAOA,OAAAA,KAAAA,CAAK,QAAQ,OAAO,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAAA,KAAAA,CAAK,OAAU,GAAA,SAAU,OAAuC,EAAA;AAC/D,IAAOA,OAAAA,KAAAA,CAAK,QAAQ,OAAO,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAOA,OAAAA,KAAAA,CAAAA;AACR,CAAA;AAEa,MAAA,IAAA,GAAO,kBAAkB,IAAI,EAAA;AAE1C,MAAM,gBAAgB,KAAM,CAAA,OAAA,CAAA;AAE5B,KAAA,CAAM,UAAU,CAAO,GAAA,KAAA;AACtB,EAAA,aAAA,CAAc,GAAG,CAAA,CAAA;AACjB,EAAA,KAAA,CAAM,QAAW,GAAA,GAAA,CAAA;AACjB,EAAM,MAAA,MAAA,GAAS,kBAAkB,GAAG,CAAA,CAAA;AACpC,EAAI,GAAA,CAAA,MAAA,CAAO,iBAAiB,IAAO,GAAA,MAAA,CAAA;AACpC,CAAA;;;;;;"}
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":";;;;;;;;;AAKM,MAAA,KAAA,GAAoCA,kBAAYC,WAAG,EAAA;AAkCzD,SAAS,iBAAA,CAAkB,QAAa,IAA+B,EAAA;AACtE,EAAA,IAAI,KAAK,MAAW,KAAA,CAAA;AAAG,IAAO,OAAA,OAAA,CAAQ,OAAO,qCAAY,CAAA,CAAA;AAEzD,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACvC,IAAA,MAAM,cAA6B,GAAA;AAAA,MAClC,IAAM,EAAA,SAAA;AAAA,MACN,KAAO,EAAA,EAAA;AAAA,MACP,OAAS,EAAA,EAAA;AAAA,MACT,SAAS,EAAC;AAAA,MACV,MAAQ,EAAA,MAAA;AAAA,MACR,KAAO,EAAA,EAAA;AAAA,MACP,IAAM,EAAA,KAAA;AAAA,MACN,MAAQ,EAAA,EAAA;AAAA,MACR,UAAY,EAAA,IAAA;AAAA,MACZ,OAAS,EAAA,CAAA;AAAA,MACT,IAAM,EAAA,EAAA;AAAA,MACN,GAAK,EAAA,EAAA;AAAA,MACL,QAAU,EAAA,EAAA;AAAA,MACV,WAAa,EAAA,EAAA;AAAA,MACb,UAAY,EAAA,EAAA;AAAA,MACZ,WAAa,EAAA,IAAA;AAAA,MACb,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,KAAA;AAAA,MACN,MAAQ,EAAA,IAAA;AAAA,MACR,WAAa,EAAA,IAAA;AAAA,MACb,UAAY,EAAA,IAAA;AAAA,KACb,CAAA;AAEA,IAAI,IAAA,OAAA,GAAsB,EAAE,GAAG,cAAe,EAAA,CAAA;AAG9C,IAAI,IAAA,IAAA,CAAK,WAAW,CAAG,EAAA;AACtB,MAAA,IAAI,OAAO,IAAA,CAAK,CAAC,CAAA,KAAM,QAAU,EAAA;AAChC,QAAA,OAAA,GAAU,EAAE,GAAG,cAAA,EAAgB,GAAG,IAAA,CAAK,CAAC,CAAE,EAAA,CAAA;AAAA,OACpC,MAAA;AACN,QAAU,OAAA,GAAA,EAAE,GAAG,cAAgB,EAAA,OAAA,EAAS,OAAO,IAAK,CAAA,CAAC,CAAC,CAAE,EAAA,CAAA;AAAA,OACzD;AAAA,KACD,MAAA,IAAW,IAAK,CAAA,MAAA,IAAU,CAAG,EAAA;AAC5B,MAAA,IAAI,OAAO,IAAA,CAAK,CAAC,CAAA,KAAM,QAAU,EAAA;AAChC,QAAQ,QAAA,IAAA,CAAK,CAAC,CAAG;AAAA,UAChB,KAAK,SAAA;AACJ,YAAA,OAAA,CAAQ,IAAO,GAAA,SAAA,CAAA;AACf,YAAA,MAAA;AAAA,UACD,KAAK,OAAA;AACJ,YAAA,OAAA,CAAQ,IAAO,GAAA,OAAA,CAAA;AACf,YAAA,MAAA;AAAA,UACD,KAAK,MAAA;AACJ,YAAA,OAAA,CAAQ,IAAO,GAAA,MAAA,CAAA;AACf,YAAA,MAAA;AAAA,UACD,KAAK,SAAA;AACJ,YAAA,OAAA,CAAQ,IAAO,GAAA,SAAA,CAAA;AACf,YAAA,MAAA;AAAA,UACD,KAAK,MAAA;AACJ,YAAA,OAAA,CAAQ,IAAO,GAAA,MAAA,CAAA;AACf,YAAA,MAAA;AAAA,UACD;AACC,YAAA,OAAA,CAAQ,IAAO,GAAA,SAAA,CAAA;AACf,YAAA,MAAA;AAAA,SACF;AAAA,OACD;AAEA,MAAA,IAAI,OAAO,IAAA,CAAK,CAAC,CAAA,KAAM,QAAU,EAAA;AAChC,QAAA,OAAA,GAAU,EAAE,GAAG,OAAA,EAAS,GAAG,IAAA,CAAK,CAAC,CAAE,EAAA,CAAA;AAAA,OACpC;AAAA,KACD;AAGA,IAAA,MAAM,OAAO,QAAS,CAAA,IAAA,CAAA;AACtB,IAAM,MAAA,IAAA,GAAO,OAAOC,iBAAa,EAAA,CAAA,CAAA,CAAA;AACjC,IAAM,MAAA,SAAA,GAAY,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC9C,IAAU,SAAA,CAAA,YAAA,CAAa,MAAM,IAAI,CAAA,CAAA;AACjC,IAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAG1B,IAAM,MAAA,YAAA,GAAeC,WAAQ,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAC1C,IAAM,MAAA,aAAA,GAAgBA,WAAQ,CAAA,OAAA,CAAQ,MAAM,CAAA,CAAA;AAE5C,IAAA,MAAM,KAAQ,GAAA;AAAA,MACb,GAAG,OAAA;AAAA,MACH,GAAI,YAAe,GAAA,EAAE,KAAO,EAAA,KAAA,CAAA,KAAc,EAAC;AAAA,MAC3C,GAAI,aAAgB,GAAA,EAAE,MAAQ,EAAA,KAAA,CAAA,KAAc,EAAC;AAAA,KAC9C,CAAA;AAGA,IAAA,MAAM,KAAQ,GAAAC,KAAA;AAAA,MACbH,WAAA;AAAA,MACA;AAAA,QACC,GAAG,KAAA;AAAA,QACH,SAAS,MAAM;AACd,UAAA,UAAA,CAAW,MAAM;AAChB,YAAAI,UAAA,CAAO,MAAM,SAAS,CAAA,CAAA;AACtB,YAAAC,kBAAA,CAAc,SAAS,CAAA,CAAA;AACvB,YAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,aACV,GAAG,CAAA,CAAA;AAAA,SACP;AAAA,QACA,WAAW,MAAM;AAChB,UAAAD,UAAA,CAAO,MAAM,SAAS,CAAA,CAAA;AACtB,UAAAC,kBAAA,CAAc,SAAS,CAAA,CAAA;AACvB,UAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,SACb;AAAA,OACD;AAAA,MACA;AAAA,QACC,KAAA,EAAO,YAAe,GAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA;AAAA,QACtC,MAAA,EAAQ,aAAgB,GAAA,OAAA,CAAQ,MAAS,GAAA,IAAA;AAAA,OAC1C;AAAA,KACD,CAAA;AAGA,IAAI,IAAA,GAAA,IAAO,IAAI,QAAU,EAAA;AACxB,MAAA,KAAA,CAAM,aAAa,GAAI,CAAA,QAAA,CAAA;AAAA,KACxB;AAGA,IAAAD,UAAA,CAAO,OAAO,SAAS,CAAA,CAAA;AAGvB,IAAA,MAAM,oBAAoB,KAAM,CAAA,SAAA,CAAA;AAChC,IAAA,qBAAA,CAAsB,MAAM;AAC3B,MAAA,IAAI,qBAAqB,iBAAkB,CAAA,OAAA,IAAW,OAAO,iBAAkB,CAAA,OAAA,CAAQ,SAAS,UAAY,EAAA;AAC3G,QAAA,iBAAA,CAAkB,QAAQ,IAAK,EAAA,CAAA;AAAA,OAChC;AAAA,KACA,CAAA,CAAA;AAAA,GACD,CAAA,CAAA;AACF,CAAA;AAGA,SAAS,kBAAkB,GAAU,EAAA;AACpC,EAAME,MAAAA,KAAAA,GAAO,YAAa,IAA+B,EAAA;AACxD,IAAM,GAAA,GAAA,GAAA,GAAM,MAAM,KAAM,CAAA,QAAA,CAAA;AACxB,IAAO,OAAA,iBAAA,CAAkB,GAAK,EAAA,GAAG,IAAI,CAAA,CAAA;AAAA,GACtC,CAAA;AAGA,EAAAA,KAAAA,CAAK,OAAU,GAAA,SAAU,OAAuC,EAAA;AAE/D,IAAI,IAAA,OAAO,YAAY,QAAU,EAAA;AAChC,MAAA,OAAA,CAAQ,UAAa,GAAA,KAAA,CAAA;AAAA,KACf,MAAA;AACN,MAAU,OAAA,GAAA,EAAE,YAAY,KAAM,EAAA,CAAA;AAAA,KAC/B;AACA,IAAOA,OAAAA,KAAAA,CAAK,WAAW,OAAO,CAAA,CAAA;AAAA,GAC/B,CAAA;AAEA,EAAAA,KAAAA,CAAK,KAAQ,GAAA,SAAU,OAAuC,EAAA;AAC7D,IAAOA,OAAAA,KAAAA,CAAK,SAAS,OAAO,CAAA,CAAA;AAAA,GAC7B,CAAA;AAEA,EAAAA,KAAAA,CAAK,IAAO,GAAA,SAAU,OAAuC,EAAA;AAC5D,IAAOA,OAAAA,KAAAA,CAAK,QAAQ,OAAO,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAAA,KAAAA,CAAK,OAAU,GAAA,SAAU,OAAuC,EAAA;AAC/D,IAAOA,OAAAA,KAAAA,CAAK,WAAW,OAAO,CAAA,CAAA;AAAA,GAC/B,CAAA;AAEA,EAAAA,KAAAA,CAAK,IAAO,GAAA,SAAU,OAAuC,EAAA;AAC5D,IAAOA,OAAAA,KAAAA,CAAK,QAAQ,OAAO,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAAA,KAAAA,CAAK,OAAU,GAAA,SAAU,OAAuC,EAAA;AAC/D,IAAOA,OAAAA,KAAAA,CAAK,QAAQ,OAAO,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAOA,OAAAA,KAAAA,CAAAA;AACR,CAAA;AAEa,MAAA,IAAA,GAAO,kBAAkB,IAAI,EAAA;AAE1C,MAAM,gBAAgB,KAAM,CAAA,OAAA,CAAA;AAE5B,KAAA,CAAM,UAAU,CAAO,GAAA,KAAA;AACtB,EAAA,aAAA,CAAc,GAAG,CAAA,CAAA;AACjB,EAAA,KAAA,CAAM,QAAW,GAAA,GAAA,CAAA;AACjB,EAAM,MAAA,MAAA,GAAS,kBAAkB,GAAG,CAAA,CAAA;AACpC,EAAI,GAAA,CAAA,MAAA,CAAO,iBAAiB,IAAO,GAAA,MAAA,CAAA;AACpC,CAAA;;;;;;"}
@@ -265,14 +265,14 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
265
265
  128
266
266
  /* KEYED_FRAGMENT */
267
267
  )),
268
- _ctx.cancelText || true ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ToButton), {
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.msg.cancel")),
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.confirmText || true ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ToButton), {
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.msg.confirm")),
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: props.virtual ? "smooth" : "auto"
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: props.virtual ? "smooth" : "auto"
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: props.virtual ? "smooth" : "auto"
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: vue.normalizeClass(["to-scroll-content", { "virtual-scroll": props.virtual }]),
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
- 38
572
- /* CLASS, STYLE, NEED_HYDRATION */
360
+ 36
361
+ /* STYLE, NEED_HYDRATION */
573
362
  )
574
363
  ], 14, ["flex"]);
575
364
  };