@touchvue/chat 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/index.mjs.map +1 -1
- package/es/node_modules/.pnpm/{dompurify@3.4.3 → dompurify@3.4.11}/node_modules/dompurify/dist/purify.es.mjs +939 -226
- package/es/node_modules/.pnpm/dompurify@3.4.11/node_modules/dompurify/dist/purify.es.mjs.map +1 -0
- package/es/node_modules/.pnpm/{linkify-it@5.0.0 → linkify-it@5.0.2}/node_modules/linkify-it/index.mjs +109 -105
- package/es/node_modules/.pnpm/linkify-it@5.0.2/node_modules/linkify-it/index.mjs.map +1 -0
- package/es/node_modules/.pnpm/{linkify-it@5.0.0 → linkify-it@5.0.2}/node_modules/linkify-it/lib/re.mjs +34 -30
- package/es/node_modules/.pnpm/linkify-it@5.0.2/node_modules/linkify-it/lib/re.mjs.map +1 -0
- package/es/node_modules/.pnpm/{markdown-it-deflist@3.0.0 → markdown-it-deflist@3.0.1}/node_modules/markdown-it-deflist/index.mjs +2 -1
- package/es/node_modules/.pnpm/markdown-it-deflist@3.0.1/node_modules/markdown-it-deflist/index.mjs.map +1 -0
- package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/index.mjs +1 -1
- package/es/package.json.mjs +1 -1
- package/es/packages/components/touchchat/component/AiRobot/face.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs +1 -1
- package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/AiRobot/start.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/CardView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/ImageFile.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/ImageView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/LinkView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/MarkLayer.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/ModuleSelect.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/Screenshot.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/ThoughtChain.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/UploadView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/UploadView_api.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/index.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/TouchChat.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/useChat.mjs +7 -2
- package/es/packages/components/touchchat/src/AiChat/Chat/useChat.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/useMessageRender.mjs +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs +10 -7
- package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/useScroll.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs +6 -2
- package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue2.mjs +136 -120
- package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/index.vue2.mjs +6 -1
- package/es/packages/components/touchchat/src/index.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/types/a2a.mjs.map +1 -1
- package/es/packages/components/touchchat/utils/a2aService.mjs +189 -132
- package/es/packages/components/touchchat/utils/a2aService.mjs.map +1 -1
- package/es/packages/components/touchchat/utils/chatRobot.mjs.map +1 -1
- package/es/packages/components/touchchat/utils/deepCloneDom.mjs.map +1 -1
- package/es/packages/components/touchchat/utils/hight-it.mjs.map +1 -1
- package/es/packages/components/touchchat/utils/markdown.mjs +2 -2
- package/es/packages/components/touchchat/utils/markdown.mjs.map +1 -1
- package/es/packages/components/touchchat/utils/socket.mjs.map +1 -1
- package/es/packages/components/touchchat/utils/tools.mjs.map +1 -1
- package/es/packages/components/touchchat/utils/uuid.mjs.map +1 -1
- package/es/packages/utils/config.mjs.map +1 -1
- package/es/packages/utils/types.mjs.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/node_modules/.pnpm/{dompurify@3.4.3 → dompurify@3.4.11}/node_modules/dompurify/dist/purify.es.js +939 -226
- package/lib/node_modules/.pnpm/dompurify@3.4.11/node_modules/dompurify/dist/purify.es.js.map +1 -0
- package/lib/node_modules/.pnpm/{linkify-it@5.0.0 → linkify-it@5.0.2}/node_modules/linkify-it/index.js +109 -105
- package/lib/node_modules/.pnpm/linkify-it@5.0.2/node_modules/linkify-it/index.js.map +1 -0
- package/lib/node_modules/.pnpm/{linkify-it@5.0.0 → linkify-it@5.0.2}/node_modules/linkify-it/lib/re.js +34 -30
- package/lib/node_modules/.pnpm/linkify-it@5.0.2/node_modules/linkify-it/lib/re.js.map +1 -0
- package/lib/node_modules/.pnpm/{markdown-it-deflist@3.0.0 → markdown-it-deflist@3.0.1}/node_modules/markdown-it-deflist/index.js +2 -1
- package/lib/node_modules/.pnpm/markdown-it-deflist@3.0.1/node_modules/markdown-it-deflist/index.js.map +1 -0
- package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/index.js +1 -1
- package/lib/package.json.js +1 -1
- package/lib/packages/components/touchchat/component/AiRobot/face.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js +1 -1
- package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/AiRobot/start.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/CardView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/ImageFile.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/ImageView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/LinkView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/MarkLayer.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/ModuleSelect.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/Screenshot.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/ThoughtChain.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/UploadView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/UploadView_api.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/index.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/TouchChat.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/useChat.js +6 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/useChat.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/useMessageRender.js +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js +10 -7
- package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/useScroll.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js +5 -1
- package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue2.js +136 -120
- package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/index.vue2.js +6 -1
- package/lib/packages/components/touchchat/src/index.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/types/a2a.js.map +1 -1
- package/lib/packages/components/touchchat/utils/a2aService.js +189 -132
- package/lib/packages/components/touchchat/utils/a2aService.js.map +1 -1
- package/lib/packages/components/touchchat/utils/chatRobot.js.map +1 -1
- package/lib/packages/components/touchchat/utils/deepCloneDom.js.map +1 -1
- package/lib/packages/components/touchchat/utils/hight-it.js.map +1 -1
- package/lib/packages/components/touchchat/utils/markdown.js +2 -2
- package/lib/packages/components/touchchat/utils/markdown.js.map +1 -1
- package/lib/packages/components/touchchat/utils/socket.js.map +1 -1
- package/lib/packages/components/touchchat/utils/tools.js.map +1 -1
- package/lib/packages/components/touchchat/utils/uuid.js.map +1 -1
- package/lib/packages/utils/config.js.map +1 -1
- package/lib/packages/utils/types.js.map +1 -1
- package/package.json +83 -83
- package/es/node_modules/.pnpm/dompurify@3.4.3/node_modules/dompurify/dist/purify.es.mjs.map +0 -1
- package/es/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/index.mjs.map +0 -1
- package/es/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/lib/re.mjs.map +0 -1
- package/es/node_modules/.pnpm/markdown-it-deflist@3.0.0/node_modules/markdown-it-deflist/index.mjs.map +0 -1
- package/lib/node_modules/.pnpm/dompurify@3.4.3/node_modules/dompurify/dist/purify.es.js.map +0 -1
- package/lib/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/index.js.map +0 -1
- package/lib/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/lib/re.js.map +0 -1
- package/lib/node_modules/.pnpm/markdown-it-deflist@3.0.0/node_modules/markdown-it-deflist/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hight-it.js","sources":["../../../../../../packages/components/touchchat/utils/hight-it.ts"],"sourcesContent":["import 'highlight.js/styles/atom-one-light.css';\nimport hljs, { LanguageFn } from 'highlight.js/lib/core';\nimport Htmlbars from 'highlight.js/lib/languages/htmlbars';\nimport Handlebars from 'highlight.js/lib/languages/handlebars';\nimport Css from 'highlight.js/lib/languages/css';\nimport Shell from 'highlight.js/lib/languages/shell';\nimport Bash from 'highlight.js/lib/languages/bash';\nimport C from 'highlight.js/lib/languages/c';\nimport Clike from 'highlight.js/lib/languages/c-like';\nimport Java from 'highlight.js/lib/languages/java';\nimport Python from 'highlight.js/lib/languages/python';\nimport Cpp from 'highlight.js/lib/languages/cpp';\nimport Csharp from 'highlight.js/lib/languages/csharp';\nimport Php from 'highlight.js/lib/languages/php';\nimport Sql from 'highlight.js/lib/languages/sql';\nimport R from 'highlight.js/lib/languages/r';\nimport Swift from 'highlight.js/lib/languages/swift';\nimport Go from 'highlight.js/lib/languages/go';\nimport Matlab from 'highlight.js/lib/languages/matlab';\nimport Ruby from 'highlight.js/lib/languages/ruby';\nimport Perl from 'highlight.js/lib/languages/perl';\nimport Objectivec from 'highlight.js/lib/languages/objectivec';\nimport Rust from 'highlight.js/lib/languages/rust';\nimport Dart from 'highlight.js/lib/languages/dart';\nimport Delphi from 'highlight.js/lib/languages/delphi';\nimport D from 'highlight.js/lib/languages/d';\nimport Kotlin from 'highlight.js/lib/languages/kotlin';\nimport Scala from 'highlight.js/lib/languages/scala';\nimport Sas from 'highlight.js/lib/languages/sas';\nimport Lisp from 'highlight.js/lib/languages/lisp';\nimport Lua from 'highlight.js/lib/languages/lua';\nimport Ada from 'highlight.js/lib/languages/ada';\nimport Fortran from 'highlight.js/lib/languages/fortran';\nimport Powershell from 'highlight.js/lib/languages/powershell';\nimport Vbscript from 'highlight.js/lib/languages/vbscript';\nimport VbscriptHtml from 'highlight.js/lib/languages/vbscript-html';\nimport Groovy from 'highlight.js/lib/languages/groovy';\nimport Julia from 'highlight.js/lib/languages/julia';\nimport JuliaRepl from 'highlight.js/lib/languages/julia-repl';\nimport Haskell from 'highlight.js/lib/languages/haskell';\nimport Actionscript from 'highlight.js/lib/languages/actionscript';\nimport Scheme from 'highlight.js/lib/languages/scheme';\nimport Typescript from 'highlight.js/lib/languages/typescript';\nimport Fsharp from 'highlight.js/lib/languages/fsharp';\nimport Prolog from 'highlight.js/lib/languages/prolog';\nimport Erlang from 'highlight.js/lib/languages/erlang';\nimport ErlangRepl from 'highlight.js/lib/languages/erlang-repl';\nimport Json from 'highlight.js/lib/languages/json';\nimport Ini from 'highlight.js/lib/languages/ini';\n\nhljs.registerLanguage('json', Json);\nhljs.registerLanguage('ini', Ini);\nhljs.registerLanguage('handlebars', Handlebars);\nhljs.registerLanguage('htmlbars', Htmlbars);\nhljs.registerLanguage('css', Css);\nhljs.registerLanguage('shell', Shell);\nhljs.registerLanguage('bash', Bash);\nhljs.registerLanguage('c-like', Clike);\nhljs.registerLanguage('c', C);\nhljs.registerLanguage('cpp', Cpp);\nhljs.registerLanguage('java', Java);\nhljs.registerLanguage('python', Python);\nhljs.registerLanguage('csharp', Csharp);\nhljs.registerLanguage('php', Php);\nhljs.registerLanguage('sql', Sql);\nhljs.registerLanguage('r', R);\nhljs.registerLanguage('swift', Swift);\nhljs.registerLanguage('go', Go);\nhljs.registerLanguage('matlab', Matlab);\nhljs.registerLanguage('ruby', Ruby);\nhljs.registerLanguage('perl', Perl);\nhljs.registerLanguage('objectivec', Objectivec);\nhljs.registerLanguage('rust', Rust);\nhljs.registerLanguage('dart', Dart);\nhljs.registerLanguage('delphi', Delphi);\nhljs.registerLanguage('d', D);\nhljs.registerLanguage('kotlin', Kotlin);\nhljs.registerLanguage('scala', Scala);\nhljs.registerLanguage('sas', Sas);\nhljs.registerLanguage('lisp', Lisp);\nhljs.registerLanguage('lua', Lua);\nhljs.registerLanguage('ada', Ada);\nhljs.registerLanguage('fortran', Fortran);\nhljs.registerLanguage('powershell', Powershell);\nhljs.registerLanguage('vbscript', Vbscript);\nhljs.registerLanguage('vbscript-html', VbscriptHtml);\nhljs.registerLanguage('groovy', Groovy);\nhljs.registerLanguage('julia', Julia);\nhljs.registerLanguage('julia-repl', JuliaRepl);\nhljs.registerLanguage('haskell', Haskell);\nhljs.registerLanguage('actionscript', Actionscript);\nhljs.registerLanguage('scheme', Scheme);\nhljs.registerLanguage('typescript', Typescript);\nhljs.registerLanguage('fsharp', Fsharp);\nhljs.registerLanguage('prolog', Prolog);\nhljs.registerLanguage('erlang', Erlang);\nhljs.registerLanguage('erlang-repl', ErlangRepl);\n\ninterface MarkdownIt {\n renderer: {\n rules: Record<string, (tokens: any[], idx: number, ...args: any[]) => string>;\n };\n}\n\nconst highlightPlugin = (md: MarkdownIt) => {\n md.renderer.rules.fence = (tokens: any[], idx: number) => {\n const token = tokens[idx];\n const code: string = token.content;\n const lang: string = token.info;\n const langObj: LanguageFn | false = hljs.getLanguage(lang);\n let cnt: string;\n if (langObj) {\n cnt = hljs.highlight(code, { language: lang }).value;\n } else {\n cnt = hljs.highlightAuto(code).value;\n }\n\n return `<pre class=\"hljs\"><code>${cnt}</code></pre>`;\n };\n};\n\nexport default highlightPlugin;\n"],"names":["hljs","Json","Ini","Handlebars","Htmlbars","Css","Shell","Bash","Clike","C","Cpp","Java","Python","Csharp","Php","Sql","R","Swift","Go","Matlab","Ruby","Perl","Objectivec","Rust","Dart","Delphi","D","Kotlin","Scala","Sas","Lisp","Lua","Ada","Fortran","Powershell","Vbscript","VbscriptHtml","Groovy","Julia","JuliaRepl","Haskell","Actionscript","Scheme","Typescript","Fsharp","Prolog","Erlang","ErlangRepl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hight-it.js","sources":["../../../../../../packages/components/touchchat/utils/hight-it.ts"],"sourcesContent":["import 'highlight.js/styles/atom-one-light.css';\r\nimport hljs, { LanguageFn } from 'highlight.js/lib/core';\r\nimport Htmlbars from 'highlight.js/lib/languages/htmlbars';\r\nimport Handlebars from 'highlight.js/lib/languages/handlebars';\r\nimport Css from 'highlight.js/lib/languages/css';\r\nimport Shell from 'highlight.js/lib/languages/shell';\r\nimport Bash from 'highlight.js/lib/languages/bash';\r\nimport C from 'highlight.js/lib/languages/c';\r\nimport Clike from 'highlight.js/lib/languages/c-like';\r\nimport Java from 'highlight.js/lib/languages/java';\r\nimport Python from 'highlight.js/lib/languages/python';\r\nimport Cpp from 'highlight.js/lib/languages/cpp';\r\nimport Csharp from 'highlight.js/lib/languages/csharp';\r\nimport Php from 'highlight.js/lib/languages/php';\r\nimport Sql from 'highlight.js/lib/languages/sql';\r\nimport R from 'highlight.js/lib/languages/r';\r\nimport Swift from 'highlight.js/lib/languages/swift';\r\nimport Go from 'highlight.js/lib/languages/go';\r\nimport Matlab from 'highlight.js/lib/languages/matlab';\r\nimport Ruby from 'highlight.js/lib/languages/ruby';\r\nimport Perl from 'highlight.js/lib/languages/perl';\r\nimport Objectivec from 'highlight.js/lib/languages/objectivec';\r\nimport Rust from 'highlight.js/lib/languages/rust';\r\nimport Dart from 'highlight.js/lib/languages/dart';\r\nimport Delphi from 'highlight.js/lib/languages/delphi';\r\nimport D from 'highlight.js/lib/languages/d';\r\nimport Kotlin from 'highlight.js/lib/languages/kotlin';\r\nimport Scala from 'highlight.js/lib/languages/scala';\r\nimport Sas from 'highlight.js/lib/languages/sas';\r\nimport Lisp from 'highlight.js/lib/languages/lisp';\r\nimport Lua from 'highlight.js/lib/languages/lua';\r\nimport Ada from 'highlight.js/lib/languages/ada';\r\nimport Fortran from 'highlight.js/lib/languages/fortran';\r\nimport Powershell from 'highlight.js/lib/languages/powershell';\r\nimport Vbscript from 'highlight.js/lib/languages/vbscript';\r\nimport VbscriptHtml from 'highlight.js/lib/languages/vbscript-html';\r\nimport Groovy from 'highlight.js/lib/languages/groovy';\r\nimport Julia from 'highlight.js/lib/languages/julia';\r\nimport JuliaRepl from 'highlight.js/lib/languages/julia-repl';\r\nimport Haskell from 'highlight.js/lib/languages/haskell';\r\nimport Actionscript from 'highlight.js/lib/languages/actionscript';\r\nimport Scheme from 'highlight.js/lib/languages/scheme';\r\nimport Typescript from 'highlight.js/lib/languages/typescript';\r\nimport Fsharp from 'highlight.js/lib/languages/fsharp';\r\nimport Prolog from 'highlight.js/lib/languages/prolog';\r\nimport Erlang from 'highlight.js/lib/languages/erlang';\r\nimport ErlangRepl from 'highlight.js/lib/languages/erlang-repl';\r\nimport Json from 'highlight.js/lib/languages/json';\r\nimport Ini from 'highlight.js/lib/languages/ini';\r\n\r\nhljs.registerLanguage('json', Json);\r\nhljs.registerLanguage('ini', Ini);\r\nhljs.registerLanguage('handlebars', Handlebars);\r\nhljs.registerLanguage('htmlbars', Htmlbars);\r\nhljs.registerLanguage('css', Css);\r\nhljs.registerLanguage('shell', Shell);\r\nhljs.registerLanguage('bash', Bash);\r\nhljs.registerLanguage('c-like', Clike);\r\nhljs.registerLanguage('c', C);\r\nhljs.registerLanguage('cpp', Cpp);\r\nhljs.registerLanguage('java', Java);\r\nhljs.registerLanguage('python', Python);\r\nhljs.registerLanguage('csharp', Csharp);\r\nhljs.registerLanguage('php', Php);\r\nhljs.registerLanguage('sql', Sql);\r\nhljs.registerLanguage('r', R);\r\nhljs.registerLanguage('swift', Swift);\r\nhljs.registerLanguage('go', Go);\r\nhljs.registerLanguage('matlab', Matlab);\r\nhljs.registerLanguage('ruby', Ruby);\r\nhljs.registerLanguage('perl', Perl);\r\nhljs.registerLanguage('objectivec', Objectivec);\r\nhljs.registerLanguage('rust', Rust);\r\nhljs.registerLanguage('dart', Dart);\r\nhljs.registerLanguage('delphi', Delphi);\r\nhljs.registerLanguage('d', D);\r\nhljs.registerLanguage('kotlin', Kotlin);\r\nhljs.registerLanguage('scala', Scala);\r\nhljs.registerLanguage('sas', Sas);\r\nhljs.registerLanguage('lisp', Lisp);\r\nhljs.registerLanguage('lua', Lua);\r\nhljs.registerLanguage('ada', Ada);\r\nhljs.registerLanguage('fortran', Fortran);\r\nhljs.registerLanguage('powershell', Powershell);\r\nhljs.registerLanguage('vbscript', Vbscript);\r\nhljs.registerLanguage('vbscript-html', VbscriptHtml);\r\nhljs.registerLanguage('groovy', Groovy);\r\nhljs.registerLanguage('julia', Julia);\r\nhljs.registerLanguage('julia-repl', JuliaRepl);\r\nhljs.registerLanguage('haskell', Haskell);\r\nhljs.registerLanguage('actionscript', Actionscript);\r\nhljs.registerLanguage('scheme', Scheme);\r\nhljs.registerLanguage('typescript', Typescript);\r\nhljs.registerLanguage('fsharp', Fsharp);\r\nhljs.registerLanguage('prolog', Prolog);\r\nhljs.registerLanguage('erlang', Erlang);\r\nhljs.registerLanguage('erlang-repl', ErlangRepl);\r\n\r\ninterface MarkdownIt {\r\n renderer: {\r\n rules: Record<string, (tokens: any[], idx: number, ...args: any[]) => string>;\r\n };\r\n}\r\n\r\nconst highlightPlugin = (md: MarkdownIt) => {\r\n md.renderer.rules.fence = (tokens: any[], idx: number) => {\r\n const token = tokens[idx];\r\n const code: string = token.content;\r\n const lang: string = token.info;\r\n const langObj: LanguageFn | false = hljs.getLanguage(lang);\r\n let cnt: string;\r\n if (langObj) {\r\n cnt = hljs.highlight(code, { language: lang }).value;\r\n } else {\r\n cnt = hljs.highlightAuto(code).value;\r\n }\r\n\r\n return `<pre class=\"hljs\"><code>${cnt}</code></pre>`;\r\n };\r\n};\r\n\r\nexport default highlightPlugin;\r\n"],"names":["hljs","Json","Ini","Handlebars","Htmlbars","Css","Shell","Bash","Clike","C","Cpp","Java","Python","Csharp","Php","Sql","R","Swift","Go","Matlab","Ruby","Perl","Objectivec","Rust","Dart","Delphi","D","Kotlin","Scala","Sas","Lisp","Lua","Ada","Fortran","Powershell","Vbscript","VbscriptHtml","Groovy","Julia","JuliaRepl","Haskell","Actionscript","Scheme","Typescript","Fsharp","Prolog","Erlang","ErlangRepl"],"mappings":"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"}
|
|
@@ -4,13 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var index$1 = require('../../../../node_modules/.pnpm/markdown-it-abbr@2.0.0/node_modules/markdown-it-abbr/index.js');
|
|
6
6
|
var index$2 = require('../../../../node_modules/.pnpm/markdown-it-container@4.0.0/node_modules/markdown-it-container/index.js');
|
|
7
|
-
var index$3 = require('../../../../node_modules/.pnpm/markdown-it-deflist@3.0.
|
|
7
|
+
var index$3 = require('../../../../node_modules/.pnpm/markdown-it-deflist@3.0.1/node_modules/markdown-it-deflist/index.js');
|
|
8
8
|
var index$4 = require('../../../../node_modules/.pnpm/markdown-it-footnote@4.0.0/node_modules/markdown-it-footnote/index.js');
|
|
9
9
|
var index$5 = require('../../../../node_modules/.pnpm/markdown-it-ins@4.0.0/node_modules/markdown-it-ins/index.js');
|
|
10
10
|
var index$6 = require('../../../../node_modules/.pnpm/markdown-it-mark@4.0.0/node_modules/markdown-it-mark/index.js');
|
|
11
11
|
var index$7 = require('../../../../node_modules/.pnpm/markdown-it-sub@2.0.0/node_modules/markdown-it-sub/index.js');
|
|
12
12
|
var index$8 = require('../../../../node_modules/.pnpm/markdown-it-sup@2.0.0/node_modules/markdown-it-sup/index.js');
|
|
13
|
-
var purify_es = require('../../../../node_modules/.pnpm/dompurify@3.4.
|
|
13
|
+
var purify_es = require('../../../../node_modules/.pnpm/dompurify@3.4.11/node_modules/dompurify/dist/purify.es.js');
|
|
14
14
|
var hightIt = require('./hight-it.js');
|
|
15
15
|
var index = require('../../../../node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/index.js');
|
|
16
16
|
var full = require('../../../../node_modules/.pnpm/markdown-it-emoji@3.0.0/node_modules/markdown-it-emoji/lib/full.js');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sources":["../../../../../../packages/components/touchchat/utils/markdown.ts"],"sourcesContent":["import Markdown from 'markdown-it'\nimport mdAbbr from 'markdown-it-abbr'\nimport mdContainer from 'markdown-it-container'\nimport mdDeflist from 'markdown-it-deflist'\nimport { full as mdEmoji } from 'markdown-it-emoji'\nimport mdFootnote from 'markdown-it-footnote'\nimport mdIns from 'markdown-it-ins'\nimport mdMark from 'markdown-it-mark'\nimport mdSub from 'markdown-it-sub'\nimport mdSup from 'markdown-it-sup'\nimport DOMPurify from 'dompurify'\nimport highlightPlugin from './hight-it.ts'\n\n// 确保 DOMPurify 在浏览器环境中正确初始化\nconst getDOMPurify = () => {\n\tif (typeof window !== 'undefined') {\n\t\treturn DOMPurify\n\t}\n\treturn null\n}\n\ninterface RenderOptions {\n\tisReasoning?: boolean\n}\n\n// 创建原始 markdown-it 实例\nconst mdInstance = new Markdown({\n\thtml: true,\n\txhtmlOut: false,\n\tbreaks: true,\n\tlangPrefix: 'language-',\n\tlinkify: false,\n\ttypographer: true\n})\n\t.use(mdAbbr)\n\t.use(mdContainer, 'warning')\n\t.use(mdDeflist)\n\t.use(mdEmoji)\n\t.use(mdFootnote)\n\t.use(mdIns)\n\t.use(mdMark)\n\t.use(mdSub)\n\t.use(mdSup)\n\t.use(highlightPlugin)\n\n// 自定义渲染规则\nmdInstance.renderer.rules.table_open = function () {\n\treturn '<table class=\"table touchchat-table\">\\n'\n}\n\n// 自定义链接渲染规则,添加 target=\"_blank\" 在新窗口打开\nmdInstance.renderer.rules.link_open = function (tokens: any[], idx: number, options: any, env: any, slf: any) {\n\tconst token = tokens[idx]\n\t// 添加 target=\"_blank\" 属性\n\ttoken.attrSet('target', '_blank')\n\t// 添加 rel=\"noopener noreferrer\" 安全属性\n\ttoken.attrSet('rel', 'noopener noreferrer')\n\treturn slf.renderToken(tokens, idx, options, env, slf)\n}\n\nmdInstance.renderer.rules.paragraph_open = mdInstance.renderer.rules.heading_open = (tokens: any[], idx: number, options: any, env: any, slf: any) => {\n\tlet line: number | undefined\n\tif (tokens[idx].map && tokens[idx].level === 0) {\n\t\tline = tokens[idx].map[0]\n\t\ttokens[idx].attrJoin('class', 'line')\n\t\ttokens[idx].attrSet('data-line', String(line))\n\t}\n\treturn slf.renderToken(tokens, idx, options, env, slf)\n}\n\n// 为所有 <a> 标签添加 target=\"_blank\" 属性\nconst addTargetBlank = (html: string): string => {\n\t// 匹配 <a> 标签,确保没有已存在的 target 属性\n\treturn html.replace(/<a([^>]*)>/gi, (match, attrs) => {\n\t\t// 检查是否已有 target 属性\n\t\tif (!/target\\s*=\\s*[\"']/i.test(attrs)) {\n\t\t\treturn `<a${attrs} target=\"_blank\" rel=\"noopener noreferrer\">`\n\t\t}\n\t\treturn match\n\t})\n}\n\n// 创建包装对象,支持带参数的 render 方法\nconst markdown = {\n\trender: (content: string, options?: RenderOptions): string => {\n\t\tif (!content) return ''\n\n\t\t// 根据 isReasoning 参数添加不同的 CSS 类\n\t\tlet processedContent = content\n\t\tif (options?.isReasoning) {\n\t\t\t// 对于推理内容,可以添加特定的标记或处理\n\t\t\t// 这里可以根据需要添加特殊的渲染逻辑\n\t\t\t// 例如,可以添加一个包装 div 来标识这是推理内容\n\t\t\tprocessedContent = processedContent.trim()\n\t\t}\n\n\t\tlet html = mdInstance.render(processedContent)\n\n\t\t// 安全地使用 DOMPurify\n\t\tconst purify = getDOMPurify()\n\t\tif (purify) {\n\t\t\thtml = purify.sanitize(html)\n\t\t}\n\n\t\t// 在 sanitize 之后,手动为所有 <a> 标签添加 target=\"_blank\"\n\t\thtml = addTargetBlank(html)\n\n\t\t// 如果是推理内容,可以添加额外的包装\n\t\tif (options?.isReasoning) {\n\t\t\t// 可以在这里添加特殊的 CSS 类或包装\n\t\t\t// 例如:return `<div class=\"reasoning-content\">${sanitizedHtml}</div>`\n\t\t\treturn html\n\t\t}\n\n\t\treturn html\n\t}\n}\n\nconsole.log('markdown', markdown)\n\nexport default markdown\n"],"names":["DOMPurify","Markdown","mdAbbr","mdContainer","mdDeflist","mdEmoji","mdFootnote","mdIns","mdMark","mdSub","mdSup","highlightPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"markdown.js","sources":["../../../../../../packages/components/touchchat/utils/markdown.ts"],"sourcesContent":["import Markdown from 'markdown-it'\r\nimport mdAbbr from 'markdown-it-abbr'\r\nimport mdContainer from 'markdown-it-container'\r\nimport mdDeflist from 'markdown-it-deflist'\r\nimport { full as mdEmoji } from 'markdown-it-emoji'\r\nimport mdFootnote from 'markdown-it-footnote'\r\nimport mdIns from 'markdown-it-ins'\r\nimport mdMark from 'markdown-it-mark'\r\nimport mdSub from 'markdown-it-sub'\r\nimport mdSup from 'markdown-it-sup'\r\nimport DOMPurify from 'dompurify'\r\nimport highlightPlugin from './hight-it.ts'\r\n\r\n// 确保 DOMPurify 在浏览器环境中正确初始化\r\nconst getDOMPurify = () => {\r\n\tif (typeof window !== 'undefined') {\r\n\t\treturn DOMPurify\r\n\t}\r\n\treturn null\r\n}\r\n\r\ninterface RenderOptions {\r\n\tisReasoning?: boolean\r\n}\r\n\r\n// 创建原始 markdown-it 实例\r\nconst mdInstance = new Markdown({\r\n\thtml: true,\r\n\txhtmlOut: false,\r\n\tbreaks: true,\r\n\tlangPrefix: 'language-',\r\n\tlinkify: false,\r\n\ttypographer: true\r\n})\r\n\t.use(mdAbbr)\r\n\t.use(mdContainer, 'warning')\r\n\t.use(mdDeflist)\r\n\t.use(mdEmoji)\r\n\t.use(mdFootnote)\r\n\t.use(mdIns)\r\n\t.use(mdMark)\r\n\t.use(mdSub)\r\n\t.use(mdSup)\r\n\t.use(highlightPlugin)\r\n\r\n// 自定义渲染规则\r\nmdInstance.renderer.rules.table_open = function () {\r\n\treturn '<table class=\"table touchchat-table\">\\n'\r\n}\r\n\r\n// 自定义链接渲染规则,添加 target=\"_blank\" 在新窗口打开\r\nmdInstance.renderer.rules.link_open = function (tokens: any[], idx: number, options: any, env: any, slf: any) {\r\n\tconst token = tokens[idx]\r\n\t// 添加 target=\"_blank\" 属性\r\n\ttoken.attrSet('target', '_blank')\r\n\t// 添加 rel=\"noopener noreferrer\" 安全属性\r\n\ttoken.attrSet('rel', 'noopener noreferrer')\r\n\treturn slf.renderToken(tokens, idx, options, env, slf)\r\n}\r\n\r\nmdInstance.renderer.rules.paragraph_open = mdInstance.renderer.rules.heading_open = (tokens: any[], idx: number, options: any, env: any, slf: any) => {\r\n\tlet line: number | undefined\r\n\tif (tokens[idx].map && tokens[idx].level === 0) {\r\n\t\tline = tokens[idx].map[0]\r\n\t\ttokens[idx].attrJoin('class', 'line')\r\n\t\ttokens[idx].attrSet('data-line', String(line))\r\n\t}\r\n\treturn slf.renderToken(tokens, idx, options, env, slf)\r\n}\r\n\r\n// 为所有 <a> 标签添加 target=\"_blank\" 属性\r\nconst addTargetBlank = (html: string): string => {\r\n\t// 匹配 <a> 标签,确保没有已存在的 target 属性\r\n\treturn html.replace(/<a([^>]*)>/gi, (match, attrs) => {\r\n\t\t// 检查是否已有 target 属性\r\n\t\tif (!/target\\s*=\\s*[\"']/i.test(attrs)) {\r\n\t\t\treturn `<a${attrs} target=\"_blank\" rel=\"noopener noreferrer\">`\r\n\t\t}\r\n\t\treturn match\r\n\t})\r\n}\r\n\r\n// 创建包装对象,支持带参数的 render 方法\r\nconst markdown = {\r\n\trender: (content: string, options?: RenderOptions): string => {\r\n\t\tif (!content) return ''\r\n\r\n\t\t// 根据 isReasoning 参数添加不同的 CSS 类\r\n\t\tlet processedContent = content\r\n\t\tif (options?.isReasoning) {\r\n\t\t\t// 对于推理内容,可以添加特定的标记或处理\r\n\t\t\t// 这里可以根据需要添加特殊的渲染逻辑\r\n\t\t\t// 例如,可以添加一个包装 div 来标识这是推理内容\r\n\t\t\tprocessedContent = processedContent.trim()\r\n\t\t}\r\n\r\n\t\tlet html = mdInstance.render(processedContent)\r\n\r\n\t\t// 安全地使用 DOMPurify\r\n\t\tconst purify = getDOMPurify()\r\n\t\tif (purify) {\r\n\t\t\thtml = purify.sanitize(html)\r\n\t\t}\r\n\r\n\t\t// 在 sanitize 之后,手动为所有 <a> 标签添加 target=\"_blank\"\r\n\t\thtml = addTargetBlank(html)\r\n\r\n\t\t// 如果是推理内容,可以添加额外的包装\r\n\t\tif (options?.isReasoning) {\r\n\t\t\t// 可以在这里添加特殊的 CSS 类或包装\r\n\t\t\t// 例如:return `<div class=\"reasoning-content\">${sanitizedHtml}</div>`\r\n\t\t\treturn html\r\n\t\t}\r\n\r\n\t\treturn html\r\n\t}\r\n}\r\n\r\nconsole.log('markdown', markdown)\r\n\r\nexport default markdown\r\n"],"names":["DOMPurify","Markdown","mdAbbr","mdContainer","mdDeflist","mdEmoji","mdFootnote","mdIns","mdMark","mdSub","mdSup","highlightPlugin"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.js","sources":["../../../../../../packages/components/touchchat/utils/socket.ts"],"sourcesContent":["export const SOCKET_STATUS = {\n WAITING: 'waiting', // 等待连接,初始状态\n CONNECTING: 'connecting', // 连接中\n RECONNECTING: 'reconnecting', // 重新连接中\n CONNECTED: 'connected', // 已经连接成功\n CLOSING: 'closing', // 关闭连接中\n} as const;\n\ntype SocketStatus = (typeof SOCKET_STATUS)[keyof typeof SOCKET_STATUS];\n\ntype MessageCallback = (data: any) => void;\ntype StatusCallback = (status: SocketStatus) => void;\n\nexport class Socket {\n #socket: WebSocket | undefined;\n #url: string;\n #onMsgCallback: MessageCallback | undefined;\n #statusCallback: StatusCallback | undefined;\n #autoReconnect: boolean | undefined;\n #timeTask: ReturnType<typeof setTimeout> | undefined;\n #directivity: any;\n status: SocketStatus;\n\n constructor(\n url: string,\n onMsgCallback?: MessageCallback,\n statusCallback?: StatusCallback,\n directivity?: any\n ) {\n this.#url = url;\n this.#onMsgCallback = onMsgCallback;\n this.#statusCallback = statusCallback;\n this.status = SOCKET_STATUS.WAITING;\n this.#directivity = directivity; // 用于修改 this 指向\n }\n\n // 使用箭头函数确保 this 指向正确\n connect = (autoReconnect: boolean = true): Promise<boolean> => {\n if (!this.#url) throw new Error('url is not initialized');\n if (this.#socket) throw new Error('socket is already initialized');\n this.#autoReconnect = autoReconnect;\n return new Promise((resolve, reject) => this.#connect(resolve, reject));\n };\n\n #notifyStatus(): void {\n if (this.#statusCallback) {\n this.#statusCallback.call(this.#directivity, this.status);\n }\n }\n\n // eslint-disable-next-line no-dupe-class-members\n #connect(resolve?: (value: boolean) => void, reject?: (reason?: any) => void): void {\n if (this.status === SOCKET_STATUS.CLOSING) return;\n console.log('socket connect');\n clearTimeout(this.#timeTask);\n console.log('this.#url ========= ', this.#url);\n this.#socket = new WebSocket(this.#url);\n this.status = SOCKET_STATUS.WAITING;\n this.#socket.onopen = () => {\n console.log('socket onopen');\n if (this.status === SOCKET_STATUS.CLOSING) {\n this.close();\n return;\n }\n this.status = SOCKET_STATUS.CONNECTED;\n this.#notifyStatus();\n if (resolve) {\n resolve(true);\n }\n };\n this.#socket.onerror = (event: Event) => {\n console.log('socket onerror');\n this.#socket?.close();\n this.#socket = undefined;\n if (\n this.#autoReconnect === true &&\n this.status !== SOCKET_STATUS.RECONNECTING &&\n this.status !== SOCKET_STATUS.CONNECTED &&\n this.status !== SOCKET_STATUS.CLOSING\n ) {\n this.status = SOCKET_STATUS.RECONNECTING;\n this.#notifyStatus();\n this.#timeTask = setTimeout(() => {\n this.#connect(resolve, reject);\n }, 3000);\n return;\n } else if (reject) {\n reject(event);\n }\n this.status = SOCKET_STATUS.WAITING;\n this.#notifyStatus();\n };\n this.#socket.onclose = (event: CloseEvent) => {\n console.log('socket onclose', event);\n this.#socket = undefined;\n\n // 先保存当前状态,然后再进行判断\n const currentStatus = this.status;\n this.status = SOCKET_STATUS.CLOSING;\n\n if (event.code === 1000) {\n this.#notifyStatus();\n return;\n }\n\n if (\n this.#autoReconnect === true &&\n currentStatus !== SOCKET_STATUS.RECONNECTING &&\n currentStatus !== SOCKET_STATUS.CONNECTED &&\n currentStatus !== SOCKET_STATUS.CLOSING\n ) {\n this.status = SOCKET_STATUS.RECONNECTING;\n this.#notifyStatus();\n this.#timeTask = setTimeout(() => {\n this.#connect();\n }, 3000);\n } else {\n this.status = SOCKET_STATUS.CLOSING;\n this.#notifyStatus();\n }\n };\n this.#socket.onmessage = (event: MessageEvent) => {\n if (this.#onMsgCallback && typeof this.#onMsgCallback === 'function') {\n if (typeof event.data === 'string') {\n try {\n const data = JSON.parse(event.data);\n this.#onMsgCallback.call(this.#directivity, data); // 使得 onMsgCallback 方法的 this 能指向 globalWebSocket\n data.type === 'chatCrmSuccess' && console.log('Socket message chatCrmSuccess', data);\n } catch (e) {\n this.#onMsgCallback.call(this.#directivity, event.data);\n console.log('Socket message received', event.data);\n }\n } else {\n this.#onMsgCallback.call(this.#directivity, event.data);\n }\n }\n };\n }\n\n /**\n * 发送数据\n * @param data 发送的数据,可以是字符串、对象或 Blob\n * @param sendType 发送类型,可选值:binary、text\n */\n async send(\n data: string | object | Blob | ArrayBuffer,\n sendType: 'text' | 'binary' = 'text'\n ): Promise<void> {\n if (this.#socket && this.status === SOCKET_STATUS.CONNECTED) {\n let finalData: string | Blob | ArrayBuffer;\n if (data instanceof Blob || data instanceof ArrayBuffer) {\n finalData = data;\n } else if (sendType === 'text') {\n if (typeof data === 'string') {\n finalData = data;\n } else {\n finalData = JSON.stringify(data);\n }\n } else {\n if (typeof data === 'string') {\n finalData = new Blob([data]);\n } else {\n finalData = new Blob([JSON.stringify(data)]);\n }\n }\n this.#socket.send(finalData);\n }\n }\n\n close(): void {\n if (this.status === SOCKET_STATUS.CLOSING || this.status === SOCKET_STATUS.WAITING) return;\n console.log('socket close');\n if (this.#socket && this.status === SOCKET_STATUS.CONNECTED) {\n this.#socket.close();\n }\n if (this.#timeTask) {\n clearTimeout(this.#timeTask);\n this.#timeTask = undefined;\n }\n this.status = SOCKET_STATUS.CLOSING;\n this.#autoReconnect = false;\n this.#notifyStatus();\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"socket.js","sources":["../../../../../../packages/components/touchchat/utils/socket.ts"],"sourcesContent":["export const SOCKET_STATUS = {\r\n WAITING: 'waiting', // 等待连接,初始状态\r\n CONNECTING: 'connecting', // 连接中\r\n RECONNECTING: 'reconnecting', // 重新连接中\r\n CONNECTED: 'connected', // 已经连接成功\r\n CLOSING: 'closing', // 关闭连接中\r\n} as const;\r\n\r\ntype SocketStatus = (typeof SOCKET_STATUS)[keyof typeof SOCKET_STATUS];\r\n\r\ntype MessageCallback = (data: any) => void;\r\ntype StatusCallback = (status: SocketStatus) => void;\r\n\r\nexport class Socket {\r\n #socket: WebSocket | undefined;\r\n #url: string;\r\n #onMsgCallback: MessageCallback | undefined;\r\n #statusCallback: StatusCallback | undefined;\r\n #autoReconnect: boolean | undefined;\r\n #timeTask: ReturnType<typeof setTimeout> | undefined;\r\n #directivity: any;\r\n status: SocketStatus;\r\n\r\n constructor(\r\n url: string,\r\n onMsgCallback?: MessageCallback,\r\n statusCallback?: StatusCallback,\r\n directivity?: any\r\n ) {\r\n this.#url = url;\r\n this.#onMsgCallback = onMsgCallback;\r\n this.#statusCallback = statusCallback;\r\n this.status = SOCKET_STATUS.WAITING;\r\n this.#directivity = directivity; // 用于修改 this 指向\r\n }\r\n\r\n // 使用箭头函数确保 this 指向正确\r\n connect = (autoReconnect: boolean = true): Promise<boolean> => {\r\n if (!this.#url) throw new Error('url is not initialized');\r\n if (this.#socket) throw new Error('socket is already initialized');\r\n this.#autoReconnect = autoReconnect;\r\n return new Promise((resolve, reject) => this.#connect(resolve, reject));\r\n };\r\n\r\n #notifyStatus(): void {\r\n if (this.#statusCallback) {\r\n this.#statusCallback.call(this.#directivity, this.status);\r\n }\r\n }\r\n\r\n // eslint-disable-next-line no-dupe-class-members\r\n #connect(resolve?: (value: boolean) => void, reject?: (reason?: any) => void): void {\r\n if (this.status === SOCKET_STATUS.CLOSING) return;\r\n console.log('socket connect');\r\n clearTimeout(this.#timeTask);\r\n console.log('this.#url ========= ', this.#url);\r\n this.#socket = new WebSocket(this.#url);\r\n this.status = SOCKET_STATUS.WAITING;\r\n this.#socket.onopen = () => {\r\n console.log('socket onopen');\r\n if (this.status === SOCKET_STATUS.CLOSING) {\r\n this.close();\r\n return;\r\n }\r\n this.status = SOCKET_STATUS.CONNECTED;\r\n this.#notifyStatus();\r\n if (resolve) {\r\n resolve(true);\r\n }\r\n };\r\n this.#socket.onerror = (event: Event) => {\r\n console.log('socket onerror');\r\n this.#socket?.close();\r\n this.#socket = undefined;\r\n if (\r\n this.#autoReconnect === true &&\r\n this.status !== SOCKET_STATUS.RECONNECTING &&\r\n this.status !== SOCKET_STATUS.CONNECTED &&\r\n this.status !== SOCKET_STATUS.CLOSING\r\n ) {\r\n this.status = SOCKET_STATUS.RECONNECTING;\r\n this.#notifyStatus();\r\n this.#timeTask = setTimeout(() => {\r\n this.#connect(resolve, reject);\r\n }, 3000);\r\n return;\r\n } else if (reject) {\r\n reject(event);\r\n }\r\n this.status = SOCKET_STATUS.WAITING;\r\n this.#notifyStatus();\r\n };\r\n this.#socket.onclose = (event: CloseEvent) => {\r\n console.log('socket onclose', event);\r\n this.#socket = undefined;\r\n\r\n // 先保存当前状态,然后再进行判断\r\n const currentStatus = this.status;\r\n this.status = SOCKET_STATUS.CLOSING;\r\n\r\n if (event.code === 1000) {\r\n this.#notifyStatus();\r\n return;\r\n }\r\n\r\n if (\r\n this.#autoReconnect === true &&\r\n currentStatus !== SOCKET_STATUS.RECONNECTING &&\r\n currentStatus !== SOCKET_STATUS.CONNECTED &&\r\n currentStatus !== SOCKET_STATUS.CLOSING\r\n ) {\r\n this.status = SOCKET_STATUS.RECONNECTING;\r\n this.#notifyStatus();\r\n this.#timeTask = setTimeout(() => {\r\n this.#connect();\r\n }, 3000);\r\n } else {\r\n this.status = SOCKET_STATUS.CLOSING;\r\n this.#notifyStatus();\r\n }\r\n };\r\n this.#socket.onmessage = (event: MessageEvent) => {\r\n if (this.#onMsgCallback && typeof this.#onMsgCallback === 'function') {\r\n if (typeof event.data === 'string') {\r\n try {\r\n const data = JSON.parse(event.data);\r\n this.#onMsgCallback.call(this.#directivity, data); // 使得 onMsgCallback 方法的 this 能指向 globalWebSocket\r\n data.type === 'chatCrmSuccess' && console.log('Socket message chatCrmSuccess', data);\r\n } catch (e) {\r\n this.#onMsgCallback.call(this.#directivity, event.data);\r\n console.log('Socket message received', event.data);\r\n }\r\n } else {\r\n this.#onMsgCallback.call(this.#directivity, event.data);\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * 发送数据\r\n * @param data 发送的数据,可以是字符串、对象或 Blob\r\n * @param sendType 发送类型,可选值:binary、text\r\n */\r\n async send(\r\n data: string | object | Blob | ArrayBuffer,\r\n sendType: 'text' | 'binary' = 'text'\r\n ): Promise<void> {\r\n if (this.#socket && this.status === SOCKET_STATUS.CONNECTED) {\r\n let finalData: string | Blob | ArrayBuffer;\r\n if (data instanceof Blob || data instanceof ArrayBuffer) {\r\n finalData = data;\r\n } else if (sendType === 'text') {\r\n if (typeof data === 'string') {\r\n finalData = data;\r\n } else {\r\n finalData = JSON.stringify(data);\r\n }\r\n } else {\r\n if (typeof data === 'string') {\r\n finalData = new Blob([data]);\r\n } else {\r\n finalData = new Blob([JSON.stringify(data)]);\r\n }\r\n }\r\n this.#socket.send(finalData);\r\n }\r\n }\r\n\r\n close(): void {\r\n if (this.status === SOCKET_STATUS.CLOSING || this.status === SOCKET_STATUS.WAITING) return;\r\n console.log('socket close');\r\n if (this.#socket && this.status === SOCKET_STATUS.CONNECTED) {\r\n this.#socket.close();\r\n }\r\n if (this.#timeTask) {\r\n clearTimeout(this.#timeTask);\r\n this.#timeTask = undefined;\r\n }\r\n this.status = SOCKET_STATUS.CLOSING;\r\n this.#autoReconnect = false;\r\n this.#notifyStatus();\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,OAAA,EAAA,IAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,CAAA;AAAO,MAAM,aAAgB,GAAA;AAAA,EAC3B,OAAS,EAAA,SAAA;AAAA;AAAA,EACT,UAAY,EAAA,YAAA;AAAA;AAAA,EACZ,YAAc,EAAA,cAAA;AAAA;AAAA,EACd,SAAW,EAAA,WAAA;AAAA;AAAA,EACX,OAAS,EAAA,SAAA;AAAA;AACX,EAAA;AAOO,MAAM,MAAO,CAAA;AAAA,EAUlB,WACE,CAAA,GAAA,EACA,aACA,EAAA,cAAA,EACA,WACA,EAAA;AAgBF,IAAA,YAAA,CAAA,IAAA,EAAA,aAAA,CAAA,CAAA;AAOA;AAAA,IAAA,YAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AArCA,IAAA,YAAA,CAAA,IAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,eAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAiBA;AAAA,IAAU,IAAA,CAAA,OAAA,GAAA,CAAC,gBAAyB,IAA2B,KAAA;AAC7D,MAAA,IAAI,CAAC,YAAK,CAAA,IAAA,EAAA,IAAA,CAAA;AAAM,QAAM,MAAA,IAAI,MAAM,wBAAwB,CAAA,CAAA;AACxD,MAAA,IAAI,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAS,QAAM,MAAA,IAAI,MAAM,+BAA+B,CAAA,CAAA;AACjE,MAAA,YAAA,CAAA,IAAA,EAAK,cAAiB,EAAA,aAAA,CAAA,CAAA;AACtB,MAAO,OAAA,IAAI,QAAQ,CAAC,OAAA,EAAS,WAAW,eAAK,CAAA,IAAA,EAAA,QAAA,EAAA,UAAA,CAAA,CAAL,IAAc,CAAA,IAAA,EAAA,OAAA,EAAS,MAAO,CAAA,CAAA,CAAA;AAAA,KACxE,CAAA;AAbE,IAAA,YAAA,CAAA,IAAA,EAAK,IAAO,EAAA,GAAA,CAAA,CAAA;AACZ,IAAA,YAAA,CAAA,IAAA,EAAK,cAAiB,EAAA,aAAA,CAAA,CAAA;AACtB,IAAA,YAAA,CAAA,IAAA,EAAK,eAAkB,EAAA,cAAA,CAAA,CAAA;AACvB,IAAA,IAAA,CAAK,SAAS,aAAc,CAAA,OAAA,CAAA;AAC5B,IAAA,YAAA,CAAA,IAAA,EAAK,YAAe,EAAA,WAAA,CAAA,CAAA;AAAA,GACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA8GA,MAAM,IAAA,CACJ,IACA,EAAA,QAAA,GAA8B,MACf,EAAA;AACf,IAAA,IAAI,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,IAAW,IAAK,CAAA,MAAA,KAAW,cAAc,SAAW,EAAA;AAC3D,MAAI,IAAA,SAAA,CAAA;AACJ,MAAI,IAAA,IAAA,YAAgB,IAAQ,IAAA,IAAA,YAAgB,WAAa,EAAA;AACvD,QAAY,SAAA,GAAA,IAAA,CAAA;AAAA,OACd,MAAA,IAAW,aAAa,MAAQ,EAAA;AAC9B,QAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC5B,UAAY,SAAA,GAAA,IAAA,CAAA;AAAA,SACP,MAAA;AACL,UAAY,SAAA,GAAA,IAAA,CAAK,UAAU,IAAI,CAAA,CAAA;AAAA,SACjC;AAAA,OACK,MAAA;AACL,QAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC5B,UAAA,SAAA,GAAY,IAAI,IAAA,CAAK,CAAC,IAAI,CAAC,CAAA,CAAA;AAAA,SACtB,MAAA;AACL,UAAA,SAAA,GAAY,IAAI,IAAK,CAAA,CAAC,KAAK,SAAU,CAAA,IAAI,CAAC,CAAC,CAAA,CAAA;AAAA,SAC7C;AAAA,OACF;AACA,MAAK,YAAA,CAAA,IAAA,EAAA,OAAA,CAAA,CAAQ,KAAK,SAAS,CAAA,CAAA;AAAA,KAC7B;AAAA,GACF;AAAA,EAEA,KAAc,GAAA;AACZ,IAAA,IAAI,KAAK,MAAW,KAAA,aAAA,CAAc,OAAW,IAAA,IAAA,CAAK,WAAW,aAAc,CAAA,OAAA;AAAS,MAAA,OAAA;AACpF,IAAA,OAAA,CAAQ,IAAI,cAAc,CAAA,CAAA;AAC1B,IAAA,IAAI,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,IAAW,IAAK,CAAA,MAAA,KAAW,cAAc,SAAW,EAAA;AAC3D,MAAA,YAAA,CAAA,IAAA,EAAK,SAAQ,KAAM,EAAA,CAAA;AAAA,KACrB;AACA,IAAA,IAAI,mBAAK,SAAW,CAAA,EAAA;AAClB,MAAA,YAAA,CAAa,mBAAK,SAAS,CAAA,CAAA,CAAA;AAC3B,MAAA,YAAA,CAAA,IAAA,EAAK,SAAY,EAAA,KAAA,CAAA,CAAA,CAAA;AAAA,KACnB;AACA,IAAA,IAAA,CAAK,SAAS,aAAc,CAAA,OAAA,CAAA;AAC5B,IAAA,YAAA,CAAA,IAAA,EAAK,cAAiB,EAAA,KAAA,CAAA,CAAA;AACtB,IAAA,eAAA,CAAA,IAAA,EAAK,aAAL,EAAA,eAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AAAA,GACF;AACF,CAAA;AAzKE,OAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,IAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,cAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,eAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,cAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,SAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,YAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AAwBA,aAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AAAA,eAAA,GAAa,WAAS;AACpB,EAAA,IAAI,mBAAK,eAAiB,CAAA,EAAA;AACxB,IAAA,YAAA,CAAA,IAAA,EAAK,eAAgB,CAAA,CAAA,IAAA,CAAK,YAAK,CAAA,IAAA,EAAA,YAAA,CAAA,EAAc,KAAK,MAAM,CAAA,CAAA;AAAA,GAC1D;AACF,CAAA,CAAA;AAGA,QAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AAAA,UAAQ,GAAA,SAAC,SAAoC,MAAuC,EAAA;AAClF,EAAI,IAAA,IAAA,CAAK,WAAW,aAAc,CAAA,OAAA;AAAS,IAAA,OAAA;AAC3C,EAAA,OAAA,CAAQ,IAAI,gBAAgB,CAAA,CAAA;AAC5B,EAAA,YAAA,CAAa,mBAAK,SAAS,CAAA,CAAA,CAAA;AAC3B,EAAQ,OAAA,CAAA,GAAA,CAAI,sBAAwB,EAAA,YAAA,CAAA,IAAA,EAAK,IAAI,CAAA,CAAA,CAAA;AAC7C,EAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,IAAI,SAAU,CAAA,YAAA,CAAA,IAAA,EAAK,IAAI,CAAA,CAAA,CAAA,CAAA;AACtC,EAAA,IAAA,CAAK,SAAS,aAAc,CAAA,OAAA,CAAA;AAC5B,EAAK,YAAA,CAAA,IAAA,EAAA,OAAA,CAAA,CAAQ,SAAS,MAAM;AAC1B,IAAA,OAAA,CAAQ,IAAI,eAAe,CAAA,CAAA;AAC3B,IAAI,IAAA,IAAA,CAAK,MAAW,KAAA,aAAA,CAAc,OAAS,EAAA;AACzC,MAAA,IAAA,CAAK,KAAM,EAAA,CAAA;AACX,MAAA,OAAA;AAAA,KACF;AACA,IAAA,IAAA,CAAK,SAAS,aAAc,CAAA,SAAA,CAAA;AAC5B,IAAA,eAAA,CAAA,IAAA,EAAK,aAAL,EAAA,eAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AACA,IAAA,IAAI,OAAS,EAAA;AACX,MAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,KACd;AAAA,GACF,CAAA;AACA,EAAK,YAAA,CAAA,IAAA,EAAA,OAAA,CAAA,CAAQ,OAAU,GAAA,CAAC,KAAiB,KAAA;AAtE7C,IAAA,IAAA,EAAA,CAAA;AAuEM,IAAA,OAAA,CAAQ,IAAI,gBAAgB,CAAA,CAAA;AAC5B,IAAA,CAAA,EAAA,GAAA,YAAA,CAAA,IAAA,EAAK,aAAL,IAAc,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AACd,IAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,KAAA,CAAA,CAAA,CAAA;AACf,IAAA,IACE,YAAK,CAAA,IAAA,EAAA,cAAA,CAAA,KAAmB,IACxB,IAAA,IAAA,CAAK,WAAW,aAAc,CAAA,YAAA,IAC9B,IAAK,CAAA,MAAA,KAAW,aAAc,CAAA,SAAA,IAC9B,IAAK,CAAA,MAAA,KAAW,cAAc,OAC9B,EAAA;AACA,MAAA,IAAA,CAAK,SAAS,aAAc,CAAA,YAAA,CAAA;AAC5B,MAAA,eAAA,CAAA,IAAA,EAAK,aAAL,EAAA,eAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AACA,MAAK,YAAA,CAAA,IAAA,EAAA,SAAA,EAAY,WAAW,MAAM;AAChC,QAAK,eAAA,CAAA,IAAA,EAAA,QAAA,EAAA,UAAA,CAAA,CAAL,WAAc,OAAS,EAAA,MAAA,CAAA,CAAA;AAAA,SACtB,GAAI,CAAA,CAAA,CAAA;AACP,MAAA,OAAA;AAAA,eACS,MAAQ,EAAA;AACjB,MAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,KACd;AACA,IAAA,IAAA,CAAK,SAAS,aAAc,CAAA,OAAA,CAAA;AAC5B,IAAA,eAAA,CAAA,IAAA,EAAK,aAAL,EAAA,eAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AAAA,GACF,CAAA;AACA,EAAK,YAAA,CAAA,IAAA,EAAA,OAAA,CAAA,CAAQ,OAAU,GAAA,CAAC,KAAsB,KAAA;AAC5C,IAAQ,OAAA,CAAA,GAAA,CAAI,kBAAkB,KAAK,CAAA,CAAA;AACnC,IAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,KAAA,CAAA,CAAA,CAAA;AAGf,IAAA,MAAM,gBAAgB,IAAK,CAAA,MAAA,CAAA;AAC3B,IAAA,IAAA,CAAK,SAAS,aAAc,CAAA,OAAA,CAAA;AAE5B,IAAI,IAAA,KAAA,CAAM,SAAS,GAAM,EAAA;AACvB,MAAA,eAAA,CAAA,IAAA,EAAK,aAAL,EAAA,eAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AACA,MAAA,OAAA;AAAA,KACF;AAEA,IACE,IAAA,YAAA,CAAA,IAAA,EAAK,cAAmB,CAAA,KAAA,IAAA,IACxB,aAAkB,KAAA,aAAA,CAAc,YAChC,IAAA,aAAA,KAAkB,aAAc,CAAA,SAAA,IAChC,aAAkB,KAAA,aAAA,CAAc,OAChC,EAAA;AACA,MAAA,IAAA,CAAK,SAAS,aAAc,CAAA,YAAA,CAAA;AAC5B,MAAA,eAAA,CAAA,IAAA,EAAK,aAAL,EAAA,eAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AACA,MAAK,YAAA,CAAA,IAAA,EAAA,SAAA,EAAY,WAAW,MAAM;AAChC,QAAA,eAAA,CAAA,IAAA,EAAK,QAAL,EAAA,UAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AAAA,SACC,GAAI,CAAA,CAAA,CAAA;AAAA,KACF,MAAA;AACL,MAAA,IAAA,CAAK,SAAS,aAAc,CAAA,OAAA,CAAA;AAC5B,MAAA,eAAA,CAAA,IAAA,EAAK,aAAL,EAAA,eAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AAAA,KACF;AAAA,GACF,CAAA;AACA,EAAK,YAAA,CAAA,IAAA,EAAA,OAAA,CAAA,CAAQ,SAAY,GAAA,CAAC,KAAwB,KAAA;AAChD,IAAA,IAAI,YAAK,CAAA,IAAA,EAAA,cAAA,CAAA,IAAkB,OAAO,YAAA,CAAA,IAAA,EAAK,oBAAmB,UAAY,EAAA;AACpE,MAAI,IAAA,OAAO,KAAM,CAAA,IAAA,KAAS,QAAU,EAAA;AAClC,QAAI,IAAA;AACF,UAAA,MAAM,IAAO,GAAA,IAAA,CAAK,KAAM,CAAA,KAAA,CAAM,IAAI,CAAA,CAAA;AAClC,UAAA,YAAA,CAAA,IAAA,EAAK,cAAe,CAAA,CAAA,IAAA,CAAK,YAAK,CAAA,IAAA,EAAA,YAAA,CAAA,EAAc,IAAI,CAAA,CAAA;AAChD,UAAA,IAAA,CAAK,IAAS,KAAA,gBAAA,IAAoB,OAAQ,CAAA,GAAA,CAAI,iCAAiC,IAAI,CAAA,CAAA;AAAA,iBAC5E,CAAP,EAAA;AACA,UAAA,YAAA,CAAA,IAAA,EAAK,cAAe,CAAA,CAAA,IAAA,CAAK,YAAK,CAAA,IAAA,EAAA,YAAA,CAAA,EAAc,MAAM,IAAI,CAAA,CAAA;AACtD,UAAQ,OAAA,CAAA,GAAA,CAAI,yBAA2B,EAAA,KAAA,CAAM,IAAI,CAAA,CAAA;AAAA,SACnD;AAAA,OACK,MAAA;AACL,QAAA,YAAA,CAAA,IAAA,EAAK,cAAe,CAAA,CAAA,IAAA,CAAK,YAAK,CAAA,IAAA,EAAA,YAAA,CAAA,EAAc,MAAM,IAAI,CAAA,CAAA;AAAA,OACxD;AAAA,KACF;AAAA,GACF,CAAA;AACF,CAAA;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sources":["../../../../../../packages/components/touchchat/utils/tools.ts"],"sourcesContent":["/**\n * 生成唯一聊天ID\n * @returns 唯一ID字符串\n */\nexport function generateChatId(): string {\n\tconst timestamp = Date.now().toString(36)\n\tconst randomStr = Math.random().toString(36).substring(2, 10)\n\treturn `${timestamp}${randomStr}`\n}\n\n/**\n * 格式化日期\n * @param date 日期对象或时间戳\n * @param format 日期格式字符串,默认为'YYYY-MM-DD HH:mm:ss'\n * @returns 格式化后的日期字符串\n */\nexport function formatDate(date: Date | number, format: string = 'YYYY-MM-DD HH:mm:ss'): string {\n\tif (typeof date === 'number') {\n\t\tdate = new Date(date)\n\t}\n\n\tconst year = date.getFullYear()\n\tconst month = String(date.getMonth() + 1).padStart(2, '0')\n\tconst day = String(date.getDate()).padStart(2, '0')\n\tconst hours = String(date.getHours()).padStart(2, '0')\n\tconst minutes = String(date.getMinutes()).padStart(2, '0')\n\tconst seconds = String(date.getSeconds()).padStart(2, '0')\n\n\treturn format.replace('YYYY', year.toString()).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds)\n}\n\n/**\n * 节流函数\n * @param func 需要节流的函数\n * @param wait 等待时间(毫秒)\n * @returns 节流后的函数\n */\n// 定义一个通用的函数类型\ntype AnyFunction = (...args: any[]) => any\n\nexport function throttle(func: AnyFunction, wait: number): AnyFunction {\n\tlet lastTime = 0\n\treturn function (this: any, ...args: any[]) {\n\t\tconst now = Date.now()\n\t\tif (now - lastTime >= wait) {\n\t\t\tlastTime = now\n\t\t\treturn func.apply(this, args)\n\t\t}\n\t}\n}\n\n/**\n * 显示提示框\n * @param message 提示消息\n * @param type 提示类型,可选值:'success', 'error', 'warning', 'info'\n * @param duration 提示框显示时间(毫秒),默认为2000\n */\nexport function showToast(message: string, type: 'success' | 'error' | 'warning' | 'info' = 'info', duration: number = 2000): void {\n\t// 创建toast元素\n\tconst toast = document.createElement('div')\n\ttoast.className = `touch-toast touch-toast-${type}`\n\ttoast.textContent = message\n\n\t// 添加样式\n\tconst style = document.createElement('style')\n\tstyle.textContent = `\n .touch-toast {\n position: fixed;\n top: 4%;\n left: 50%;\n transform: translate(-50%, -50%);\n padding: 0.75em 1.25em;\n border-radius: 0.5em;\n color: #fff;\n font-size: 0.875em;\n z-index: 9999;\n transition: opacity 0.3s ease;\n }\n .touch-toast-success {\n background-color: rgba(103, 194, 58, 0.95);\n }\n .touch-toast-error {\n background-color: rgba(245, 108, 108, 0.95);\n }\n .touch-toast-warning {\n background-color: rgba(230, 162, 60, 0.95);\n }\n .touch-toast-info {\n background-color: rgba(144, 147, 153, 0.95);\n }\n .touch-toast-fadeout {\n opacity: 0;\n }\n `\n\tdocument.head.appendChild(style)\n\n\t// 添加到文档\n\tdocument.body.appendChild(toast)\n\n\t// 设置自动移除\n\tsetTimeout(() => {\n\t\ttoast.classList.add('touch-toast-fadeout')\n\t\tsetTimeout(() => {\n\t\t\tdocument.body.removeChild(toast)\n\t\t\tdocument.head.removeChild(style)\n\t\t}, 300)\n\t}, duration)\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sources":["../../../../../../packages/components/touchchat/utils/tools.ts"],"sourcesContent":["/**\r\n * 生成唯一聊天ID\r\n * @returns 唯一ID字符串\r\n */\r\nexport function generateChatId(): string {\r\n\tconst timestamp = Date.now().toString(36)\r\n\tconst randomStr = Math.random().toString(36).substring(2, 10)\r\n\treturn `${timestamp}${randomStr}`\r\n}\r\n\r\n/**\r\n * 格式化日期\r\n * @param date 日期对象或时间戳\r\n * @param format 日期格式字符串,默认为'YYYY-MM-DD HH:mm:ss'\r\n * @returns 格式化后的日期字符串\r\n */\r\nexport function formatDate(date: Date | number, format: string = 'YYYY-MM-DD HH:mm:ss'): string {\r\n\tif (typeof date === 'number') {\r\n\t\tdate = new Date(date)\r\n\t}\r\n\r\n\tconst year = date.getFullYear()\r\n\tconst month = String(date.getMonth() + 1).padStart(2, '0')\r\n\tconst day = String(date.getDate()).padStart(2, '0')\r\n\tconst hours = String(date.getHours()).padStart(2, '0')\r\n\tconst minutes = String(date.getMinutes()).padStart(2, '0')\r\n\tconst seconds = String(date.getSeconds()).padStart(2, '0')\r\n\r\n\treturn format.replace('YYYY', year.toString()).replace('MM', month).replace('DD', day).replace('HH', hours).replace('mm', minutes).replace('ss', seconds)\r\n}\r\n\r\n/**\r\n * 节流函数\r\n * @param func 需要节流的函数\r\n * @param wait 等待时间(毫秒)\r\n * @returns 节流后的函数\r\n */\r\n// 定义一个通用的函数类型\r\ntype AnyFunction = (...args: any[]) => any\r\n\r\nexport function throttle(func: AnyFunction, wait: number): AnyFunction {\r\n\tlet lastTime = 0\r\n\treturn function (this: any, ...args: any[]) {\r\n\t\tconst now = Date.now()\r\n\t\tif (now - lastTime >= wait) {\r\n\t\t\tlastTime = now\r\n\t\t\treturn func.apply(this, args)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * 显示提示框\r\n * @param message 提示消息\r\n * @param type 提示类型,可选值:'success', 'error', 'warning', 'info'\r\n * @param duration 提示框显示时间(毫秒),默认为2000\r\n */\r\nexport function showToast(message: string, type: 'success' | 'error' | 'warning' | 'info' = 'info', duration: number = 2000): void {\r\n\t// 创建toast元素\r\n\tconst toast = document.createElement('div')\r\n\ttoast.className = `touch-toast touch-toast-${type}`\r\n\ttoast.textContent = message\r\n\r\n\t// 添加样式\r\n\tconst style = document.createElement('style')\r\n\tstyle.textContent = `\r\n .touch-toast {\r\n position: fixed;\r\n top: 4%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n padding: 0.75em 1.25em;\r\n border-radius: 0.5em;\r\n color: #fff;\r\n font-size: 0.875em;\r\n z-index: 9999;\r\n transition: opacity 0.3s ease;\r\n }\r\n .touch-toast-success {\r\n background-color: rgba(103, 194, 58, 0.95);\r\n }\r\n .touch-toast-error {\r\n background-color: rgba(245, 108, 108, 0.95);\r\n }\r\n .touch-toast-warning {\r\n background-color: rgba(230, 162, 60, 0.95);\r\n }\r\n .touch-toast-info {\r\n background-color: rgba(144, 147, 153, 0.95);\r\n }\r\n .touch-toast-fadeout {\r\n opacity: 0;\r\n }\r\n `\r\n\tdocument.head.appendChild(style)\r\n\r\n\t// 添加到文档\r\n\tdocument.body.appendChild(toast)\r\n\r\n\t// 设置自动移除\r\n\tsetTimeout(() => {\r\n\t\ttoast.classList.add('touch-toast-fadeout')\r\n\t\tsetTimeout(() => {\r\n\t\t\tdocument.body.removeChild(toast)\r\n\t\t\tdocument.head.removeChild(style)\r\n\t\t}, 300)\r\n\t}, duration)\r\n}\r\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uuid.js","sources":["../../../../../../packages/components/touchchat/utils/uuid.ts"],"sourcesContent":["export default function generateUUID(): string {\n const s: string[] = [];\n const hexDigits: string = '0123456789abcdef';\n for (let i = 0; i < 36; i++) {\n s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);\n }\n s[14] = '4'; // bits 12-15 of the time_hi_and_version field to 0010\n s[19] = hexDigits.substr((parseInt(s[19], 16) & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01\n s[8] = s[13] = s[18] = s[23] = '-';\n const uuid: string = s.join('');\n return uuid;\n}\n"],"names":[],"mappings":";;;;AAAA,SAAwB,YAAuB,GAAA;AAC7C,EAAA,MAAM,IAAc,EAAC,CAAA;AACrB,EAAA,MAAM,SAAoB,GAAA,kBAAA,CAAA;AAC1B,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,EAAA,EAAI,CAAK,EAAA,EAAA;AAC3B,IAAE,CAAA,CAAA,CAAC,CAAI,GAAA,SAAA,CAAU,MAAO,CAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,MAAO,EAAA,GAAI,EAAI,CAAA,EAAG,CAAC,CAAA,CAAA;AAAA,GAC7D;AACA,EAAA,CAAA,CAAE,EAAE,CAAI,GAAA,GAAA,CAAA;AACR,EAAA,CAAA,CAAE,EAAE,CAAA,GAAI,SAAU,CAAA,MAAA,CAAQ,QAAS,CAAA,CAAA,CAAE,EAAE,CAAA,EAAG,EAAE,CAAA,GAAI,CAAO,GAAA,CAAA,EAAK,CAAC,CAAA,CAAA;AAC7D,EAAE,CAAA,CAAA,CAAC,CAAI,GAAA,CAAA,CAAE,EAAE,CAAA,GAAI,EAAE,EAAE,CAAA,GAAI,CAAE,CAAA,EAAE,CAAI,GAAA,GAAA,CAAA;AAC/B,EAAM,MAAA,IAAA,GAAe,CAAE,CAAA,IAAA,CAAK,EAAE,CAAA,CAAA;AAC9B,EAAO,OAAA,IAAA,CAAA;AACT;;;;"}
|
|
1
|
+
{"version":3,"file":"uuid.js","sources":["../../../../../../packages/components/touchchat/utils/uuid.ts"],"sourcesContent":["export default function generateUUID(): string {\r\n const s: string[] = [];\r\n const hexDigits: string = '0123456789abcdef';\r\n for (let i = 0; i < 36; i++) {\r\n s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);\r\n }\r\n s[14] = '4'; // bits 12-15 of the time_hi_and_version field to 0010\r\n s[19] = hexDigits.substr((parseInt(s[19], 16) & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01\r\n s[8] = s[13] = s[18] = s[23] = '-';\r\n const uuid: string = s.join('');\r\n return uuid;\r\n}\r\n"],"names":[],"mappings":";;;;AAAA,SAAwB,YAAuB,GAAA;AAC7C,EAAA,MAAM,IAAc,EAAC,CAAA;AACrB,EAAA,MAAM,SAAoB,GAAA,kBAAA,CAAA;AAC1B,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,EAAA,EAAI,CAAK,EAAA,EAAA;AAC3B,IAAE,CAAA,CAAA,CAAC,CAAI,GAAA,SAAA,CAAU,MAAO,CAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,MAAO,EAAA,GAAI,EAAI,CAAA,EAAG,CAAC,CAAA,CAAA;AAAA,GAC7D;AACA,EAAA,CAAA,CAAE,EAAE,CAAI,GAAA,GAAA,CAAA;AACR,EAAA,CAAA,CAAE,EAAE,CAAA,GAAI,SAAU,CAAA,MAAA,CAAQ,QAAS,CAAA,CAAA,CAAE,EAAE,CAAA,EAAG,EAAE,CAAA,GAAI,CAAO,GAAA,CAAA,EAAK,CAAC,CAAA,CAAA;AAC7D,EAAE,CAAA,CAAA,CAAC,CAAI,GAAA,CAAA,CAAE,EAAE,CAAA,GAAI,EAAE,EAAE,CAAA,GAAI,CAAE,CAAA,EAAE,CAAI,GAAA,GAAA,CAAA;AAC/B,EAAM,MAAA,IAAA,GAAe,CAAE,CAAA,IAAA,CAAK,EAAE,CAAA,CAAA;AAC9B,EAAO,OAAA,IAAA,CAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sources":["../../../../packages/utils/config.ts"],"sourcesContent":["import { getCurrentInstance } from 'vue';\n\n// 定义全局配置选项类型\nexport interface TouchVueUIOptions {\n size?: 'small' | 'medium' | 'large';\n zIndex?: number;\n // 其他可能的配置项...\n}\n\n/**\n * 获取组件库全局配置\n * 可以在组件内部使用此函数获取全局配置\n * @returns 全局配置对象\n */\nexport const useGlobalConfig = (): TouchVueUIOptions => {\n const instance = getCurrentInstance();\n if (!instance) {\n console.warn('useGlobalConfig() 只能在setup()或生命周期钩子中调用');\n return {} as TouchVueUIOptions;\n }\n\n // 从应用实例中获取全局配置\n return instance.appContext.config.globalProperties.$TOUCHVUE_CONFIG || {};\n};\n\n/**\n * 获取组件配置\n * 合并全局配置和组件自身的props配置\n * @param props 组件props\n * @param key 配置键名(必须是TouchVueUIOptions中存在的属性)\n * @returns 合并后的配置值\n */\nexport const getComponentConfig = <T extends keyof TouchVueUIOptions>(\n props: Record<string, any>,\n key: T\n): TouchVueUIOptions[T] => {\n const globalConfig = useGlobalConfig();\n\n // 优先使用组件自身的props配置,如果没有则使用全局配置\n return (props[key] ?? globalConfig[key]) as TouchVueUIOptions[T];\n};\n"],"names":["getCurrentInstance"],"mappings":";;;;AAcO,MAAM,kBAAkB,MAAyB;AACtD,EAAA,MAAM,WAAWA,sBAAmB,EAAA,CAAA;AACpC,EAAA,IAAI,CAAC,QAAU,EAAA;AACb,IAAA,OAAA,CAAQ,KAAK,yGAAwC,CAAA,CAAA;AACrD,IAAA,OAAO,EAAC,CAAA;AAAA,GACV;AAGA,EAAA,OAAO,QAAS,CAAA,UAAA,CAAW,MAAO,CAAA,gBAAA,CAAiB,oBAAoB,EAAC,CAAA;AAC1E,EAAA;AASa,MAAA,kBAAA,GAAqB,CAChC,KAAA,EACA,GACyB,KAAA;AAnC3B,EAAA,IAAA,EAAA,CAAA;AAoCE,EAAA,MAAM,eAAe,eAAgB,EAAA,CAAA;AAGrC,EAAA,OAAA,CAAQ,EAAM,GAAA,KAAA,CAAA,GAAG,CAAT,KAAA,IAAA,GAAA,EAAA,GAAc,aAAa,GAAG,CAAA,CAAA;AACxC;;;;;"}
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../../packages/utils/config.ts"],"sourcesContent":["import { getCurrentInstance } from 'vue';\r\n\r\n// 定义全局配置选项类型\r\nexport interface TouchVueUIOptions {\r\n size?: 'small' | 'medium' | 'large';\r\n zIndex?: number;\r\n // 其他可能的配置项...\r\n}\r\n\r\n/**\r\n * 获取组件库全局配置\r\n * 可以在组件内部使用此函数获取全局配置\r\n * @returns 全局配置对象\r\n */\r\nexport const useGlobalConfig = (): TouchVueUIOptions => {\r\n const instance = getCurrentInstance();\r\n if (!instance) {\r\n console.warn('useGlobalConfig() 只能在setup()或生命周期钩子中调用');\r\n return {} as TouchVueUIOptions;\r\n }\r\n\r\n // 从应用实例中获取全局配置\r\n return instance.appContext.config.globalProperties.$TOUCHVUE_CONFIG || {};\r\n};\r\n\r\n/**\r\n * 获取组件配置\r\n * 合并全局配置和组件自身的props配置\r\n * @param props 组件props\r\n * @param key 配置键名(必须是TouchVueUIOptions中存在的属性)\r\n * @returns 合并后的配置值\r\n */\r\nexport const getComponentConfig = <T extends keyof TouchVueUIOptions>(\r\n props: Record<string, any>,\r\n key: T\r\n): TouchVueUIOptions[T] => {\r\n const globalConfig = useGlobalConfig();\r\n\r\n // 优先使用组件自身的props配置,如果没有则使用全局配置\r\n return (props[key] ?? globalConfig[key]) as TouchVueUIOptions[T];\r\n};\r\n"],"names":["getCurrentInstance"],"mappings":";;;;AAcO,MAAM,kBAAkB,MAAyB;AACtD,EAAA,MAAM,WAAWA,sBAAmB,EAAA,CAAA;AACpC,EAAA,IAAI,CAAC,QAAU,EAAA;AACb,IAAA,OAAA,CAAQ,KAAK,yGAAwC,CAAA,CAAA;AACrD,IAAA,OAAO,EAAC,CAAA;AAAA,GACV;AAGA,EAAA,OAAO,QAAS,CAAA,UAAA,CAAW,MAAO,CAAA,gBAAA,CAAiB,oBAAoB,EAAC,CAAA;AAC1E,EAAA;AASa,MAAA,kBAAA,GAAqB,CAChC,KAAA,EACA,GACyB,KAAA;AAnC3B,EAAA,IAAA,EAAA,CAAA;AAoCE,EAAA,MAAM,eAAe,eAAgB,EAAA,CAAA;AAGrC,EAAA,OAAA,CAAQ,EAAM,GAAA,KAAA,CAAA,GAAG,CAAT,KAAA,IAAA,GAAA,EAAA,GAAc,aAAa,GAAG,CAAA,CAAA;AACxC;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../packages/utils/types.ts"],"sourcesContent":["import type { App, Plugin } from 'vue';\n\n/* 生成install函数 */\n\nexport type SFCWithInstall<T> = T & Plugin;\n\nexport type SFCInstallWithContext<T> = SFCWithInstall<T> & {\n _context: App | null;\n};\n\nexport const withInstall = <T, E extends Record<string, any>>(main: T, extra?: E) => {\n (main as SFCWithInstall<T>).install = (app: App): void => {\n for (const comp of [main, ...Object.values(extra ?? {})]) {\n app.component(comp.name, comp);\n }\n };\n\n if (extra) {\n for (const [key, comp] of Object.entries(extra)) {\n (main as any)[key] = comp;\n }\n }\n return main as SFCWithInstall<T> & E;\n};\n\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n (fn as SFCWithInstall<T>).install = (app: App) => {\n (fn as SFCInstallWithContext<T>)._context = app;\n app.config.globalProperties[name] = fn;\n };\n\n return fn as SFCInstallWithContext<T>;\n};\n"],"names":[],"mappings":";;AAUa,MAAA,WAAA,GAAc,CAAmC,IAAA,EAAS,KAAc,KAAA;AACnF,EAAC,IAAA,CAA2B,OAAU,GAAA,CAAC,GAAmB,KAAA;AACxD,IAAW,KAAA,MAAA,IAAA,IAAQ,CAAC,IAAA,EAAM,GAAG,MAAA,CAAO,OAAO,KAAS,IAAA,IAAA,GAAA,KAAA,GAAA,EAAE,CAAC,CAAG,EAAA;AACxD,MAAI,GAAA,CAAA,SAAA,CAAU,IAAK,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AAAA,KAC/B;AAAA,GACF,CAAA;AAEA,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,KAAA,MAAW,CAAC,GAAK,EAAA,IAAI,KAAK,MAAO,CAAA,OAAA,CAAQ,KAAK,CAAG,EAAA;AAC/C,MAAC,IAAA,CAAa,GAAG,CAAI,GAAA,IAAA,CAAA;AAAA,KACvB;AAAA,GACF;AACA,EAAO,OAAA,IAAA,CAAA;AACT,EAAA;AAEa,MAAA,mBAAA,GAAsB,CAAI,EAAA,EAAO,IAAiB,KAAA;AAC7D,EAAC,EAAA,CAAyB,OAAU,GAAA,CAAC,GAAa,KAAA;AAChD,IAAC,GAAgC,QAAW,GAAA,GAAA,CAAA;AAC5C,IAAI,GAAA,CAAA,MAAA,CAAO,gBAAiB,CAAA,IAAI,CAAI,GAAA,EAAA,CAAA;AAAA,GACtC,CAAA;AAEA,EAAO,OAAA,EAAA,CAAA;AACT;;;;;"}
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../packages/utils/types.ts"],"sourcesContent":["import type { App, Plugin } from 'vue';\r\n\r\n/* 生成install函数 */\r\n\r\nexport type SFCWithInstall<T> = T & Plugin;\r\n\r\nexport type SFCInstallWithContext<T> = SFCWithInstall<T> & {\r\n _context: App | null;\r\n};\r\n\r\nexport const withInstall = <T, E extends Record<string, any>>(main: T, extra?: E) => {\r\n (main as SFCWithInstall<T>).install = (app: App): void => {\r\n for (const comp of [main, ...Object.values(extra ?? {})]) {\r\n app.component(comp.name, comp);\r\n }\r\n };\r\n\r\n if (extra) {\r\n for (const [key, comp] of Object.entries(extra)) {\r\n (main as any)[key] = comp;\r\n }\r\n }\r\n return main as SFCWithInstall<T> & E;\r\n};\r\n\r\nexport const withInstallFunction = <T>(fn: T, name: string) => {\r\n (fn as SFCWithInstall<T>).install = (app: App) => {\r\n (fn as SFCInstallWithContext<T>)._context = app;\r\n app.config.globalProperties[name] = fn;\r\n };\r\n\r\n return fn as SFCInstallWithContext<T>;\r\n};\r\n"],"names":[],"mappings":";;AAUa,MAAA,WAAA,GAAc,CAAmC,IAAA,EAAS,KAAc,KAAA;AACnF,EAAC,IAAA,CAA2B,OAAU,GAAA,CAAC,GAAmB,KAAA;AACxD,IAAW,KAAA,MAAA,IAAA,IAAQ,CAAC,IAAA,EAAM,GAAG,MAAA,CAAO,OAAO,KAAS,IAAA,IAAA,GAAA,KAAA,GAAA,EAAE,CAAC,CAAG,EAAA;AACxD,MAAI,GAAA,CAAA,SAAA,CAAU,IAAK,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AAAA,KAC/B;AAAA,GACF,CAAA;AAEA,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,KAAA,MAAW,CAAC,GAAK,EAAA,IAAI,KAAK,MAAO,CAAA,OAAA,CAAQ,KAAK,CAAG,EAAA;AAC/C,MAAC,IAAA,CAAa,GAAG,CAAI,GAAA,IAAA,CAAA;AAAA,KACvB;AAAA,GACF;AACA,EAAO,OAAA,IAAA,CAAA;AACT,EAAA;AAEa,MAAA,mBAAA,GAAsB,CAAI,EAAA,EAAO,IAAiB,KAAA;AAC7D,EAAC,EAAA,CAAyB,OAAU,GAAA,CAAC,GAAa,KAAA;AAChD,IAAC,GAAgC,QAAW,GAAA,GAAA,CAAA;AAC5C,IAAI,GAAA,CAAA,MAAA,CAAO,gBAAiB,CAAA,IAAI,CAAI,GAAA,EAAA,CAAA;AAAA,GACtC,CAAA;AAEA,EAAO,OAAA,EAAA,CAAA;AACT;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@touchvue/chat",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
4
|
-
"description": "TouchVue Chat Component Library",
|
|
5
|
-
"main": "lib/index.js",
|
|
6
|
-
"module": "es/index.mjs",
|
|
7
|
-
"types": "types/index.d.ts",
|
|
8
|
-
"style": "theme/index.css",
|
|
9
|
-
"exports": {
|
|
10
|
-
".": {
|
|
11
|
-
"types": "./es/index.d.ts",
|
|
12
|
-
"import": "./es/index.mjs",
|
|
13
|
-
"require": "./lib/index.js"
|
|
14
|
-
},
|
|
15
|
-
"./global": {
|
|
16
|
-
"types": "./global.d.ts"
|
|
17
|
-
},
|
|
18
|
-
"./es": {
|
|
19
|
-
"types": "./es/index.d.ts",
|
|
20
|
-
"import": "./es/index.mjs"
|
|
21
|
-
},
|
|
22
|
-
"./lib": {
|
|
23
|
-
"types": "./lib/index.d.ts",
|
|
24
|
-
"require": "./lib/index.js"
|
|
25
|
-
},
|
|
26
|
-
"./es/*.mjs": {
|
|
27
|
-
"types": "./es/*.d.ts",
|
|
28
|
-
"import": "./es/*.mjs"
|
|
29
|
-
},
|
|
30
|
-
"./es/*": {
|
|
31
|
-
"types": [
|
|
32
|
-
"./es/*.d.ts",
|
|
33
|
-
"./es/*/index.d.ts"
|
|
34
|
-
],
|
|
35
|
-
"import": "./es/*.mjs"
|
|
36
|
-
},
|
|
37
|
-
"./lib/*.js": {
|
|
38
|
-
"types": "./lib/*.d.ts",
|
|
39
|
-
"require": "./lib/*.js"
|
|
40
|
-
},
|
|
41
|
-
"./lib/*": {
|
|
42
|
-
"types": [
|
|
43
|
-
"./lib/*.d.ts",
|
|
44
|
-
"./lib/*/index.d.ts"
|
|
45
|
-
],
|
|
46
|
-
"require": "./lib/*.js"
|
|
47
|
-
},
|
|
48
|
-
"./resolver": {
|
|
49
|
-
"types": "./es/resolver/index.d.ts",
|
|
50
|
-
"import": "./es/resolver/index.mjs",
|
|
51
|
-
"require": "./lib/resolver/index.js"
|
|
52
|
-
},
|
|
53
|
-
"./*": "./*"
|
|
54
|
-
},
|
|
55
|
-
"files": [
|
|
56
|
-
"lib",
|
|
57
|
-
"es",
|
|
58
|
-
"theme",
|
|
59
|
-
"types",
|
|
60
|
-
"global.d.ts",
|
|
61
|
-
"README.md"
|
|
62
|
-
],
|
|
63
|
-
"sideEffects": [
|
|
64
|
-
"*.css",
|
|
65
|
-
"*.less",
|
|
66
|
-
"theme/**/*"
|
|
67
|
-
],
|
|
68
|
-
"keywords": [
|
|
69
|
-
"vue",
|
|
70
|
-
"vue3",
|
|
71
|
-
"component",
|
|
72
|
-
"ui",
|
|
73
|
-
"library"
|
|
74
|
-
],
|
|
75
|
-
"author": "",
|
|
76
|
-
"license": "ISC",
|
|
77
|
-
"peerDependencies": {
|
|
78
|
-
"vue": "^3.3.0"
|
|
79
|
-
},
|
|
80
|
-
"publishConfig": {
|
|
81
|
-
"access": "public"
|
|
82
|
-
}
|
|
83
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@touchvue/chat",
|
|
3
|
+
"version": "1.0.0-beta.57",
|
|
4
|
+
"description": "TouchVue Chat Component Library",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"module": "es/index.mjs",
|
|
7
|
+
"types": "types/index.d.ts",
|
|
8
|
+
"style": "theme/index.css",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./es/index.d.ts",
|
|
12
|
+
"import": "./es/index.mjs",
|
|
13
|
+
"require": "./lib/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./global": {
|
|
16
|
+
"types": "./global.d.ts"
|
|
17
|
+
},
|
|
18
|
+
"./es": {
|
|
19
|
+
"types": "./es/index.d.ts",
|
|
20
|
+
"import": "./es/index.mjs"
|
|
21
|
+
},
|
|
22
|
+
"./lib": {
|
|
23
|
+
"types": "./lib/index.d.ts",
|
|
24
|
+
"require": "./lib/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./es/*.mjs": {
|
|
27
|
+
"types": "./es/*.d.ts",
|
|
28
|
+
"import": "./es/*.mjs"
|
|
29
|
+
},
|
|
30
|
+
"./es/*": {
|
|
31
|
+
"types": [
|
|
32
|
+
"./es/*.d.ts",
|
|
33
|
+
"./es/*/index.d.ts"
|
|
34
|
+
],
|
|
35
|
+
"import": "./es/*.mjs"
|
|
36
|
+
},
|
|
37
|
+
"./lib/*.js": {
|
|
38
|
+
"types": "./lib/*.d.ts",
|
|
39
|
+
"require": "./lib/*.js"
|
|
40
|
+
},
|
|
41
|
+
"./lib/*": {
|
|
42
|
+
"types": [
|
|
43
|
+
"./lib/*.d.ts",
|
|
44
|
+
"./lib/*/index.d.ts"
|
|
45
|
+
],
|
|
46
|
+
"require": "./lib/*.js"
|
|
47
|
+
},
|
|
48
|
+
"./resolver": {
|
|
49
|
+
"types": "./es/resolver/index.d.ts",
|
|
50
|
+
"import": "./es/resolver/index.mjs",
|
|
51
|
+
"require": "./lib/resolver/index.js"
|
|
52
|
+
},
|
|
53
|
+
"./*": "./*"
|
|
54
|
+
},
|
|
55
|
+
"files": [
|
|
56
|
+
"lib",
|
|
57
|
+
"es",
|
|
58
|
+
"theme",
|
|
59
|
+
"types",
|
|
60
|
+
"global.d.ts",
|
|
61
|
+
"README.md"
|
|
62
|
+
],
|
|
63
|
+
"sideEffects": [
|
|
64
|
+
"*.css",
|
|
65
|
+
"*.less",
|
|
66
|
+
"theme/**/*"
|
|
67
|
+
],
|
|
68
|
+
"keywords": [
|
|
69
|
+
"vue",
|
|
70
|
+
"vue3",
|
|
71
|
+
"component",
|
|
72
|
+
"ui",
|
|
73
|
+
"library"
|
|
74
|
+
],
|
|
75
|
+
"author": "",
|
|
76
|
+
"license": "ISC",
|
|
77
|
+
"peerDependencies": {
|
|
78
|
+
"vue": "^3.3.0"
|
|
79
|
+
},
|
|
80
|
+
"publishConfig": {
|
|
81
|
+
"access": "public"
|
|
82
|
+
}
|
|
83
|
+
}
|