@blueking/ai-ui-sdk 0.0.15-beta.4 → 0.0.15-beta.6
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/dist/assets/images/ai.png +0 -0
- package/dist/assets/images/user.png +0 -0
- package/dist/assets/svg/picture-fail.svg +1 -0
- package/dist/common/util.d.ts +10 -0
- package/dist/common/util.js +34 -0
- package/dist/component/render-image/index.script.vue.js +37 -0
- package/dist/component/render-image/index.vue.d.ts +6 -0
- package/dist/component/render-image/index.vue.js +3 -0
- package/dist/component/render-input/index.script.vue.js +205 -0
- package/dist/component/render-input/index.vue.css +134 -0
- package/dist/component/render-input/index.vue.d.ts +18 -0
- package/dist/component/render-input/index.vue.js +5 -0
- package/dist/component/render-input/render-drag.script.vue.js +61 -0
- package/dist/component/render-input/render-drag.vue.css +32 -0
- package/dist/component/render-input/render-drag.vue.d.ts +13 -0
- package/dist/component/render-input/render-drag.vue.js +5 -0
- package/dist/component/render-input/render-quill.script.vue.js +200 -0
- package/dist/component/render-input/render-quill.vue.css +27 -0
- package/dist/component/render-input/render-quill.vue.d.ts +25 -0
- package/dist/component/render-input/render-quill.vue.js +4 -0
- package/dist/component/render-knowledge-icon/index.script.vue.js +40 -0
- package/dist/component/render-knowledge-icon/index.vue.css +4 -0
- package/dist/component/render-knowledge-icon/index.vue.d.ts +14 -0
- package/dist/component/render-knowledge-icon/index.vue.js +5 -0
- package/dist/component/render-markdown/mark-down-code.d.ts +2 -0
- package/dist/component/render-markdown/mark-down-code.js +171 -0
- package/dist/component/render-markdown/mark-down-emoji.d.ts +2 -0
- package/dist/component/render-markdown/mark-down-emoji.js +4 -0
- package/dist/component/render-markdown/mark-down.d.ts +74 -0
- package/dist/component/render-markdown/mark-down.js +147 -0
- package/dist/component/render-markdown/mark-down.postcss.css +131 -0
- package/dist/component/render-message/image-not-supported-message.script.vue.js +99 -0
- package/dist/component/render-message/image-not-supported-message.vue.css +66 -0
- package/dist/component/render-message/image-not-supported-message.vue.d.ts +21 -0
- package/dist/component/render-message/image-not-supported-message.vue.js +5 -0
- package/dist/component/render-message/index.script.vue.js +104 -0
- package/dist/component/render-message/index.vue.d.ts +13 -0
- package/dist/component/render-message/index.vue.js +3 -0
- package/dist/component/render-message/openai-message.script.vue.js +215 -0
- package/dist/component/render-message/openai-message.vue.css +98 -0
- package/dist/component/render-message/openai-message.vue.d.ts +15 -0
- package/dist/component/render-message/openai-message.vue.js +5 -0
- package/dist/component/render-message/skeleton-message.script.vue.js +7 -0
- package/dist/component/render-message/skeleton-message.vue.css +7 -0
- package/dist/component/render-message/skeleton-message.vue.d.ts +2 -0
- package/dist/component/render-message/skeleton-message.vue.js +6 -0
- package/dist/component/render-message/system-message.script.vue.js +17 -0
- package/dist/component/render-message/system-message.vue.css +20 -0
- package/dist/component/render-message/system-message.vue.d.ts +6 -0
- package/dist/component/render-message/system-message.vue.js +5 -0
- package/dist/component/render-message/time-message.script.vue.js +41 -0
- package/dist/component/render-message/time-message.vue.css +14 -0
- package/dist/component/render-message/time-message.vue.d.ts +6 -0
- package/dist/component/render-message/time-message.vue.js +5 -0
- package/dist/component/render-message/token-expired-message.script.vue.js +78 -0
- package/dist/component/render-message/token-expired-message.vue.css +60 -0
- package/dist/component/render-message/token-expired-message.vue.d.ts +15 -0
- package/dist/component/render-message/token-expired-message.vue.js +5 -0
- package/dist/component/render-message/user-message.script.vue.js +241 -0
- package/dist/component/render-message/user-message.vue.css +100 -0
- package/dist/component/render-message/user-message.vue.d.ts +21 -0
- package/dist/component/render-message/user-message.vue.js +5 -0
- package/dist/event/index.js +2 -1
- package/dist/hooks/use-chat.d.ts +6 -5
- package/dist/hooks/use-chat.js +19 -17
- package/dist/hooks/use-mouse-drag.d.ts +13 -0
- package/dist/hooks/use-mouse-drag.js +59 -0
- package/dist/http/fetch/error-interceptor.js +23 -2
- package/dist/main.d.ts +3 -0
- package/dist/main.js +4 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-double-down-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-double-left-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-double-left.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-double-right-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-double-right.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-double-up-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-down-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-down-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-down.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-left.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-right.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-up-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/angle-up.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/archive-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/arrows-left.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/arrows-right.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/assistant.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/audio-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/bk.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/circle.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/close-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/close.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/code.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/cog-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/collapse-left.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/copy-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/copy.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/data-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/del.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/doc-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/done.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/down-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/down-small.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/edit-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/ellipsis.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/enlarge-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/error.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/excel-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/exclamation-circle-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/eye.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/filliscreen-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/fix-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/fix-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/folder-open.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/folder-shape-open.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/folder-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/folder.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/funnel.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/grag-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/help-document-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/help-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/help.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/image-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/img-error.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/img-placehoulder.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/index.js +113 -0
- package/dist/node_modules/bkui-vue/lib/icon/info-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/info.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/left-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/left-turn-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/loading.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/narrow-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/original.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/pdf-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/play-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/plus.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/ppt-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/qq.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/right-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/right-turn-line.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/search.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/share.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/spinner.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/success.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/switcher-loading.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/text-all.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/text-file.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/text-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/transfer.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/tree-application-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/unfull-screen.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/unvisible.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/up-shape.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/upload.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/video-fill.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/warn.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/weixin-pro.js +191 -0
- package/dist/node_modules/bkui-vue/lib/icon/weixin.js +191 -0
- package/dist/node_modules/bkui-vue/lib/styles/reset.css +439 -0
- package/dist/node_modules/call-bind/index.js +24 -0
- package/dist/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- package/dist/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
- package/dist/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- package/dist/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- package/dist/node_modules/call-bind-apply-helpers/index.js +15 -0
- package/dist/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- package/dist/node_modules/call-bound/index.js +19 -0
- package/dist/node_modules/deep-equal/index.js +112 -0
- package/dist/node_modules/define-data-property/index.js +56 -0
- package/dist/node_modules/define-properties/index.js +47 -0
- package/dist/node_modules/dunder-proto/get.js +30 -0
- package/dist/node_modules/es-define-property/index.js +14 -0
- package/dist/node_modules/es-errors/eval.js +4 -0
- package/dist/node_modules/es-errors/index.js +4 -0
- package/dist/node_modules/es-errors/range.js +4 -0
- package/dist/node_modules/es-errors/ref.js +4 -0
- package/dist/node_modules/es-errors/syntax.js +4 -0
- package/dist/node_modules/es-errors/type.js +4 -0
- package/dist/node_modules/es-errors/uri.js +4 -0
- package/dist/node_modules/es-object-atoms/index.js +4 -0
- package/dist/node_modules/extend/index.js +117 -0
- package/dist/node_modules/fast-diff/diff.js +738 -0
- package/dist/node_modules/function-bind/implementation.js +84 -0
- package/dist/node_modules/function-bind/index.js +5 -0
- package/dist/node_modules/functions-have-names/index.js +31 -0
- package/dist/node_modules/get-intrinsic/index.js +378 -0
- package/dist/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
- package/dist/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
- package/dist/node_modules/get-proto/index.js +27 -0
- package/dist/node_modules/gopd/gOPD.js +4 -0
- package/dist/node_modules/gopd/index.js +15 -0
- package/dist/node_modules/has-property-descriptors/index.js +22 -0
- package/dist/node_modules/has-symbols/index.js +14 -0
- package/dist/node_modules/has-symbols/shams.js +45 -0
- package/dist/node_modules/has-tostringtag/shams.js +8 -0
- package/dist/node_modules/hasown/index.js +8 -0
- package/dist/node_modules/is-arguments/index.js +44 -0
- package/dist/node_modules/is-date-object/index.js +27 -0
- package/dist/node_modules/is-regex/index.js +69 -0
- package/dist/node_modules/math-intrinsics/abs.js +4 -0
- package/dist/node_modules/math-intrinsics/floor.js +4 -0
- package/dist/node_modules/math-intrinsics/isNaN.js +6 -0
- package/dist/node_modules/math-intrinsics/max.js +4 -0
- package/dist/node_modules/math-intrinsics/min.js +4 -0
- package/dist/node_modules/math-intrinsics/pow.js +4 -0
- package/dist/node_modules/math-intrinsics/round.js +4 -0
- package/dist/node_modules/math-intrinsics/sign.js +11 -0
- package/dist/node_modules/object-is/implementation.js +19 -0
- package/dist/node_modules/object-is/index.js +18 -0
- package/dist/node_modules/object-is/polyfill.js +7 -0
- package/dist/node_modules/object-is/shim.js +14 -0
- package/dist/node_modules/object-keys/implementation.js +122 -0
- package/dist/node_modules/object-keys/index.js +32 -0
- package/dist/node_modules/object-keys/isArguments.js +17 -0
- package/dist/node_modules/quill/dist/quill.js +11562 -0
- package/dist/node_modules/quill/dist/quill.snow.css +945 -0
- package/dist/node_modules/quill-delta/lib/delta.js +344 -0
- package/dist/node_modules/quill-delta/lib/op.js +155 -0
- package/dist/node_modules/quill-image-uploader/dist/blots/image.js +30 -0
- package/dist/node_modules/quill-image-uploader/dist/quill.imageUploader.js +198 -0
- package/dist/node_modules/quill-image-uploader/dist/quill.imageUploader.min.css +33 -0
- package/dist/node_modules/regexp.prototype.flags/implementation.js +39 -0
- package/dist/node_modules/regexp.prototype.flags/index.js +18 -0
- package/dist/node_modules/regexp.prototype.flags/polyfill.js +39 -0
- package/dist/node_modules/regexp.prototype.flags/shim.js +26 -0
- package/dist/node_modules/set-function-length/index.js +42 -0
- package/dist/node_modules/set-function-name/index.js +23 -0
- package/dist/node_modules/x-mavon-editor/dist/css/index.css +1 -0
- package/dist/node_modules/x-mavon-editor/dist/font/fontello.eot +0 -0
- package/dist/node_modules/x-mavon-editor/dist/font/fontello.svg +72 -0
- package/dist/node_modules/x-mavon-editor/dist/font/fontello.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/font/fontello.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/font/fontello.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/highlight.min.js +1150 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/bash.min.js +20 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/css.min.js +31 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/go.min.js +14 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/java.min.js +37 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/javascript.min.js +76 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/json.min.js +7 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/markdown.min.js +31 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/perl.min.js +36 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/php.min.js +37 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/python.min.js +42 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/ruby.min.js +48 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/sql.min.js +17 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/swift.min.js +60 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/typescript.min.js +92 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/languages/xml.min.js +28 -0
- package/dist/node_modules/x-mavon-editor/dist/highlightjs/styles/atom-one-dark.min.css +1 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_AMS-Regular.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_AMS-Regular.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-Bold.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-Bold.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-Italic.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-Italic.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-Regular.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-Regular.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Math-Italic.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Math-Italic.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Script-Regular.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Script-Regular.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size1-Regular.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size1-Regular.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size2-Regular.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size2-Regular.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size3-Regular.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size3-Regular.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size4-Regular.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size4-Regular.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/katex.min.css +1 -0
- package/dist/node_modules/x-mavon-editor/dist/katex/katex.min.js +1 -0
- package/dist/node_modules/x-mavon-editor/dist/markdown/github-markdown.min.css +2 -0
- package/dist/node_modules/x-mavon-editor/dist/mavon-editor.js +31 -0
- package/dist/types/enum.d.ts +6 -1
- package/dist/types/enum.js +7 -1
- package/dist/types/model.d.ts +14 -0
- package/dist/types/session.d.ts +0 -2
- package/package.json +11 -4
@@ -0,0 +1,200 @@
|
|
1
|
+
import { defineComponent as _defineComponent } from 'vue';
|
2
|
+
import { openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
|
3
|
+
import Quill from '../../../dist/node_modules/quill/dist/quill.js';
|
4
|
+
import Delta from '../../../dist/node_modules/quill-delta/lib/delta.js';
|
5
|
+
import ImageUploader from '../../../dist/node_modules/quill-image-uploader/src/quill.imageUploader.js';
|
6
|
+
import { getCurrentInstance, onMounted, watch } from 'vue';
|
7
|
+
import '../../../dist/node_modules/quill/dist/quill.snow.css';
|
8
|
+
import '../../../dist/node_modules/quill-image-uploader/dist/quill.imageUploader.min.css';
|
9
|
+
export default /*@__PURE__*/ _defineComponent({
|
10
|
+
props: {
|
11
|
+
placeholder: {},
|
12
|
+
value: {},
|
13
|
+
sessionId: {},
|
14
|
+
supportImage: {
|
15
|
+
type: Boolean
|
16
|
+
},
|
17
|
+
isUploadingImage: {
|
18
|
+
type: Boolean
|
19
|
+
}
|
20
|
+
},
|
21
|
+
emits: [
|
22
|
+
"change",
|
23
|
+
"update:isUploadingImage"
|
24
|
+
],
|
25
|
+
setup (__props, { expose: __expose, emit: __emit }) {
|
26
|
+
const props = __props;
|
27
|
+
const emits = __emit;
|
28
|
+
Quill.register('modules/imageUploader', ImageUploader);
|
29
|
+
const vm = getCurrentInstance();
|
30
|
+
let quill;
|
31
|
+
const allowedImageType = [
|
32
|
+
'image/jpeg',
|
33
|
+
'image/gif',
|
34
|
+
'image/png',
|
35
|
+
'image/webp',
|
36
|
+
'image/bmp',
|
37
|
+
'image/svg+xml',
|
38
|
+
'image/apng',
|
39
|
+
'image/avif'
|
40
|
+
];
|
41
|
+
// 更新 placeholder
|
42
|
+
const updatePlaceholder = ()=>{
|
43
|
+
var _vm_proxy;
|
44
|
+
const el = vm === null || vm === void 0 ? void 0 : (_vm_proxy = vm.proxy) === null || _vm_proxy === void 0 ? void 0 : _vm_proxy.$el.querySelector('.ql-editor');
|
45
|
+
el.dataset.placeholder = props.placeholder;
|
46
|
+
};
|
47
|
+
// 值变化事件
|
48
|
+
const handleChange = ()=>{
|
49
|
+
let value = '';
|
50
|
+
const { ops } = quill.getContents();
|
51
|
+
ops === null || ops === void 0 ? void 0 : ops.forEach((op, index)=>{
|
52
|
+
var _op_insert;
|
53
|
+
if (typeof (op === null || op === void 0 ? void 0 : op.insert) === 'object' && (op === null || op === void 0 ? void 0 : (_op_insert = op.insert) === null || _op_insert === void 0 ? void 0 : _op_insert.image)) {
|
54
|
+
value += ``;
|
55
|
+
}
|
56
|
+
if (typeof (op === null || op === void 0 ? void 0 : op.insert) === 'string') {
|
57
|
+
// 去掉最后一行的换行符
|
58
|
+
value += index === ops.length - 1 ? op.insert.replace(/\n$/, '') : op.insert;
|
59
|
+
}
|
60
|
+
});
|
61
|
+
// 触发值更新
|
62
|
+
emits('change', value);
|
63
|
+
};
|
64
|
+
// 覆盖粘贴事件,只复制纯文本
|
65
|
+
const handlePaste = (event)=>{
|
66
|
+
event.preventDefault();
|
67
|
+
// 聚焦
|
68
|
+
focus();
|
69
|
+
// 获取当前状态
|
70
|
+
const range = getSelection();
|
71
|
+
if (range) {
|
72
|
+
var _event_clipboardData;
|
73
|
+
const delta = new Delta().retain(range.index);
|
74
|
+
// 获取粘贴板的数据
|
75
|
+
const copyText = (_event_clipboardData = event.clipboardData) === null || _event_clipboardData === void 0 ? void 0 : _event_clipboardData.getData('text');
|
76
|
+
setTimeout(()=>{
|
77
|
+
var _copyText_replaceAll;
|
78
|
+
// 更新内容
|
79
|
+
const copyDelta = new Delta([
|
80
|
+
{
|
81
|
+
insert: copyText
|
82
|
+
}
|
83
|
+
]);
|
84
|
+
const finalDelta = delta.concat(copyDelta).delete(range.length);
|
85
|
+
quill.updateContents(finalDelta, 'user');
|
86
|
+
// 设置光标位置
|
87
|
+
setSelection(range.index + ((copyText === null || copyText === void 0 ? void 0 : (_copyText_replaceAll = copyText.replaceAll('\r', '')) === null || _copyText_replaceAll === void 0 ? void 0 : _copyText_replaceAll.length) || 0), 0, 'silent');
|
88
|
+
}, 1);
|
89
|
+
}
|
90
|
+
};
|
91
|
+
// 复制选中html元素的内容
|
92
|
+
const handleCopySelection = (event)=>{
|
93
|
+
event.preventDefault();
|
94
|
+
// 获取选中内容的范围
|
95
|
+
const selection = window.getSelection();
|
96
|
+
if (selection) {
|
97
|
+
var // 覆盖原生的复制 or 剪切数据
|
98
|
+
_event_clipboardData;
|
99
|
+
const range = selection.getRangeAt(0);
|
100
|
+
const selectedHTML = range.cloneContents();
|
101
|
+
// 循环拼接复制的文本
|
102
|
+
const copyTexts = [];
|
103
|
+
Array.from(selectedHTML.childNodes).forEach((node)=>{
|
104
|
+
var _node_childNodes;
|
105
|
+
const childNode = (_node_childNodes = node.childNodes) === null || _node_childNodes === void 0 ? void 0 : _node_childNodes[0];
|
106
|
+
if (childNode instanceof HTMLImageElement) {
|
107
|
+
// 图片
|
108
|
+
copyTexts.push(``);
|
109
|
+
} else if (childNode) {
|
110
|
+
// 完整行
|
111
|
+
copyTexts.push(childNode.textContent || '');
|
112
|
+
} else if (node.textContent) {
|
113
|
+
// 部分行
|
114
|
+
copyTexts.push(node.textContent || '');
|
115
|
+
}
|
116
|
+
});
|
117
|
+
(_event_clipboardData = event.clipboardData) === null || _event_clipboardData === void 0 ? void 0 : _event_clipboardData.setData('text/plain', copyTexts.join('\n'));
|
118
|
+
}
|
119
|
+
};
|
120
|
+
// 删除选中内容
|
121
|
+
const handleDeleteSelection = ()=>{
|
122
|
+
const range = quill.getSelection();
|
123
|
+
if (range) {
|
124
|
+
quill.deleteText(range.index, range.length);
|
125
|
+
}
|
126
|
+
};
|
127
|
+
// 覆盖复制事件
|
128
|
+
const handleCopy = (event)=>{
|
129
|
+
handleCopySelection(event);
|
130
|
+
};
|
131
|
+
// 覆盖剪切事件
|
132
|
+
const handleCut = (event)=>{
|
133
|
+
handleCopySelection(event);
|
134
|
+
handleDeleteSelection();
|
135
|
+
};
|
136
|
+
const handleInit = ()=>{
|
137
|
+
var _vm_proxy;
|
138
|
+
// 初始化
|
139
|
+
quill = new Quill(vm === null || vm === void 0 ? void 0 : (_vm_proxy = vm.proxy) === null || _vm_proxy === void 0 ? void 0 : _vm_proxy.$el, {
|
140
|
+
modules: {
|
141
|
+
toolbar: false
|
142
|
+
},
|
143
|
+
placeholder: props.placeholder,
|
144
|
+
theme: 'snow'
|
145
|
+
});
|
146
|
+
// listen change
|
147
|
+
quill.on('text-change', handleChange);
|
148
|
+
// listen paste
|
149
|
+
quill.root.addEventListener('paste', handlePaste);
|
150
|
+
// listen copy
|
151
|
+
quill.root.addEventListener('copy', handleCopy);
|
152
|
+
// listen cut
|
153
|
+
quill.root.addEventListener('cut', handleCut);
|
154
|
+
// set value & selection
|
155
|
+
if (props.value) {
|
156
|
+
setText(props.value);
|
157
|
+
setSelection(props.value.length);
|
158
|
+
}
|
159
|
+
// focus
|
160
|
+
quill.focus();
|
161
|
+
};
|
162
|
+
/**
|
163
|
+
* api 驱动设置,否则容易破坏图片的显示
|
164
|
+
* @param text 文本
|
165
|
+
*/ const setText = (text)=>{
|
166
|
+
quill.setText(text);
|
167
|
+
};
|
168
|
+
// 聚焦
|
169
|
+
const focus = ()=>{
|
170
|
+
quill.focus();
|
171
|
+
};
|
172
|
+
// 删除
|
173
|
+
const deleteText = (index, length)=>{
|
174
|
+
quill.deleteText(index, length);
|
175
|
+
};
|
176
|
+
// 新增
|
177
|
+
const insertText = (index, text)=>{
|
178
|
+
quill.insertText(index, text);
|
179
|
+
};
|
180
|
+
// 获取当前光标位置
|
181
|
+
const getSelection = ()=>quill.getSelection();
|
182
|
+
// 设置光标位置
|
183
|
+
const setSelection = (index, length = 0, source)=>{
|
184
|
+
quill.setSelection(index, length, source);
|
185
|
+
};
|
186
|
+
watch(()=>props.placeholder, updatePlaceholder);
|
187
|
+
onMounted(handleInit);
|
188
|
+
__expose({
|
189
|
+
focus,
|
190
|
+
setText,
|
191
|
+
deleteText,
|
192
|
+
insertText,
|
193
|
+
getSelection,
|
194
|
+
setSelection
|
195
|
+
});
|
196
|
+
return (_ctx, _cache)=>{
|
197
|
+
return _openBlock(), _createElementBlock("section");
|
198
|
+
};
|
199
|
+
}
|
200
|
+
});
|
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
.ql-editor {
|
3
|
+
overflow-y: auto;
|
4
|
+
font-family: -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
|
5
|
+
img {
|
6
|
+
max-width: 250px !important;
|
7
|
+
max-height: 250px !important;
|
8
|
+
}
|
9
|
+
&::-webkit-scrollbar {
|
10
|
+
width: 6px;
|
11
|
+
height: 6px;
|
12
|
+
}
|
13
|
+
&::-webkit-scrollbar-thumb {
|
14
|
+
width: 6px;
|
15
|
+
height: 6px;
|
16
|
+
border-radius: 3px;
|
17
|
+
background-color: #dcdee5;
|
18
|
+
&:hover {
|
19
|
+
background-color: #979ba5;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
&::before {
|
23
|
+
line-height: 16px;
|
24
|
+
color: #DCDEE5 !important;
|
25
|
+
font-style: normal !important;
|
26
|
+
}
|
27
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import type { RangeStatic } from 'quill';
|
2
|
+
import 'quill/dist/quill.snow.css';
|
3
|
+
import 'quill-image-uploader/dist/quill.imageUploader.min.css';
|
4
|
+
interface IProps {
|
5
|
+
placeholder: string;
|
6
|
+
value?: string;
|
7
|
+
sessionId: string;
|
8
|
+
supportImage: boolean;
|
9
|
+
isUploadingImage: boolean;
|
10
|
+
}
|
11
|
+
declare const _default: import("vue").DefineComponent<IProps, {
|
12
|
+
focus: () => void;
|
13
|
+
setText: (text: string) => void;
|
14
|
+
deleteText: (index: number, length: number) => void;
|
15
|
+
insertText: (index: number, text: string) => void;
|
16
|
+
getSelection: () => RangeStatic | null;
|
17
|
+
setSelection: (index: number, length?: number) => void;
|
18
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
19
|
+
change: (value: string) => any;
|
20
|
+
"update:isUploadingImage": (value: boolean) => any;
|
21
|
+
}, string, import("vue").PublicProps, Readonly<IProps> & Readonly<{
|
22
|
+
onChange?: ((value: string) => any) | undefined;
|
23
|
+
"onUpdate:isUploadingImage"?: ((value: boolean) => any) | undefined;
|
24
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
25
|
+
export default _default;
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { defineComponent as _defineComponent } from 'vue';
|
2
|
+
import { normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, unref as _unref, createElementVNode as _createElementVNode, Fragment as _Fragment } from "vue";
|
3
|
+
import { KnowledgePathType } from '../../types/enum.js';
|
4
|
+
export default /*@__PURE__*/ _defineComponent({
|
5
|
+
props: {
|
6
|
+
data: {},
|
7
|
+
size: {
|
8
|
+
default: '12'
|
9
|
+
}
|
10
|
+
},
|
11
|
+
setup (__props) {
|
12
|
+
// import FileTypeIcon from '@/components/file-type-icon.vue';
|
13
|
+
return (_ctx, _cache)=>{
|
14
|
+
var _ctx_data, _ctx_data1;
|
15
|
+
return !((_ctx_data = _ctx.data) === null || _ctx_data === void 0 ? void 0 : _ctx_data.id) ? (_openBlock(), _createElementBlock("i", {
|
16
|
+
key: 0,
|
17
|
+
style: _normalizeStyle({
|
18
|
+
fontSize: `${_ctx.size}px`
|
19
|
+
}),
|
20
|
+
class: "bkaidev-icon bkaidev-zonghe2"
|
21
|
+
}, null, 4 /* STYLE */ )) : ((_ctx_data1 = _ctx.data) === null || _ctx_data1 === void 0 ? void 0 : _ctx_data1.pathType) === _unref(KnowledgePathType).Folder ? (_openBlock(), _createElementBlock("i", {
|
22
|
+
key: 1,
|
23
|
+
style: _normalizeStyle({
|
24
|
+
fontSize: `${_ctx.size}px`
|
25
|
+
}),
|
26
|
+
class: "bkaidev-icon bkaidev-folder-fill"
|
27
|
+
}, null, 4 /* STYLE */ )) : (_openBlock(), _createElementBlock(_Fragment, {
|
28
|
+
key: 2
|
29
|
+
}, [
|
30
|
+
_createCommentVNode(" <file-type-icon\n v-else-if=\"data.pathType === KnowledgePathType.File\"\n :type=\"data.fileType\"\n :style=\"{\n fontSize: `${size}px`\n }\"\n /> "),
|
31
|
+
_createElementVNode("i", {
|
32
|
+
class: "bkaidev-icon bkaidev-zhishikufenlei",
|
33
|
+
style: _normalizeStyle({
|
34
|
+
fontSize: `${_ctx.size}px`
|
35
|
+
})
|
36
|
+
}, null, 4 /* STYLE */ )
|
37
|
+
], 2112 /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */ ));
|
38
|
+
};
|
39
|
+
}
|
40
|
+
});
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { KnowledgePathType } from '@/types/enum';
|
2
|
+
interface IData {
|
3
|
+
id?: number;
|
4
|
+
pathType?: KnowledgePathType;
|
5
|
+
fileType?: string;
|
6
|
+
}
|
7
|
+
interface IProps {
|
8
|
+
data?: IData;
|
9
|
+
size?: string;
|
10
|
+
}
|
11
|
+
declare const _default: import("vue").DefineComponent<IProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<IProps> & Readonly<{}>, {
|
12
|
+
size: string;
|
13
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
14
|
+
export default _default;
|
@@ -0,0 +1,171 @@
|
|
1
|
+
const languageSuffixMap = {
|
2
|
+
c: '.c',
|
3
|
+
'c++': '.cpp',
|
4
|
+
java: '.java',
|
5
|
+
python: '.py',
|
6
|
+
html: '.html',
|
7
|
+
css: '.css',
|
8
|
+
javascript: '.js',
|
9
|
+
js: '.js',
|
10
|
+
php: '.php',
|
11
|
+
ruby: '.rb',
|
12
|
+
swift: '.swift',
|
13
|
+
go: '.go',
|
14
|
+
perl: '.pl',
|
15
|
+
sql: '.sql',
|
16
|
+
xml: '.xml',
|
17
|
+
json: '.json',
|
18
|
+
vue: '.vue',
|
19
|
+
rust: '.rs',
|
20
|
+
jsx: '.jsx',
|
21
|
+
tsx: '.tsx',
|
22
|
+
typescript: '.ts',
|
23
|
+
ts: '.ts',
|
24
|
+
bash: '.sh'
|
25
|
+
};
|
26
|
+
const getLanguageSuffix = (name)=>languageSuffixMap[name.toLowerCase()] || '.txt';
|
27
|
+
let originalFence;
|
28
|
+
// 自定义代码块
|
29
|
+
export const MarkDownCodePlugin = (markdownIt)=>{
|
30
|
+
// 如果 originalFence 不存在,则获取原始的 fence 函数,防止嵌套调用
|
31
|
+
if (!originalFence) {
|
32
|
+
originalFence = markdownIt.renderer.rules.fence;
|
33
|
+
}
|
34
|
+
// 重写 fence 规则
|
35
|
+
markdownIt.block.ruler.at('fence', (state, startLine, endLine, silent)=>{
|
36
|
+
let pos = state.bMarks[startLine] + state.tShift[startLine];
|
37
|
+
let max = state.eMarks[startLine];
|
38
|
+
// 检查是否缩进过多
|
39
|
+
if (state.sCount[startLine] - state.blkIndent >= 4) {
|
40
|
+
return false;
|
41
|
+
}
|
42
|
+
// 检查是否有足够的字符
|
43
|
+
if (pos + 3 > max) {
|
44
|
+
return false;
|
45
|
+
}
|
46
|
+
const marker = state.src.charCodeAt(pos);
|
47
|
+
// 检查是否是有效的标记字符
|
48
|
+
if (marker !== 0x7E /* ~ */ && marker !== 0x60 /* ` */ ) {
|
49
|
+
return false;
|
50
|
+
}
|
51
|
+
// 获取标记的长度
|
52
|
+
let mem = pos;
|
53
|
+
pos = state.skipChars(pos, marker);
|
54
|
+
const len = pos - mem;
|
55
|
+
if (len < 3) {
|
56
|
+
return false;
|
57
|
+
}
|
58
|
+
const markup = state.src.slice(mem, pos);
|
59
|
+
const params = state.src.slice(pos, max);
|
60
|
+
// 检查参数中是否包含标记字符
|
61
|
+
if (marker === 0x60 /* ` */ ) {
|
62
|
+
if (params.indexOf(String.fromCharCode(marker)) >= 0) {
|
63
|
+
return false;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
// 验证模式直接返回
|
67
|
+
if (silent) {
|
68
|
+
return true;
|
69
|
+
}
|
70
|
+
// 寻找结束标记
|
71
|
+
let nextLine = startLine;
|
72
|
+
let haveEndMarker = false;
|
73
|
+
for(;;){
|
74
|
+
nextLine += 1;
|
75
|
+
if (nextLine >= endLine) {
|
76
|
+
break;
|
77
|
+
}
|
78
|
+
pos = state.bMarks[nextLine] + state.tShift[nextLine];
|
79
|
+
mem = pos;
|
80
|
+
max = state.eMarks[nextLine];
|
81
|
+
if (pos < max && state.sCount[nextLine] < state.blkIndent) {
|
82
|
+
break;
|
83
|
+
}
|
84
|
+
// 如果不是标记字符,继续
|
85
|
+
if (state.src.charCodeAt(pos) !== marker) {
|
86
|
+
continue;
|
87
|
+
}
|
88
|
+
// 检查标记长度
|
89
|
+
if (state.sCount[nextLine] - state.blkIndent >= 4) {
|
90
|
+
continue;
|
91
|
+
}
|
92
|
+
pos = state.skipChars(pos, marker);
|
93
|
+
// 结束标记必须至少和开始标记一样长
|
94
|
+
if (pos - mem < len) {
|
95
|
+
continue;
|
96
|
+
}
|
97
|
+
// 检查标记后是否只有空格
|
98
|
+
pos = state.skipSpaces(pos);
|
99
|
+
if (pos < max) {
|
100
|
+
continue;
|
101
|
+
}
|
102
|
+
haveEndMarker = true;
|
103
|
+
break;
|
104
|
+
}
|
105
|
+
// 设置结束行
|
106
|
+
state.line = nextLine + (haveEndMarker ? 1 : 0);
|
107
|
+
// 创建 token
|
108
|
+
const token = state.push('fence', 'code', 0);
|
109
|
+
token.info = params;
|
110
|
+
token.content = state.getLines(startLine + 1, nextLine, state.sCount[startLine], true);
|
111
|
+
token.markup = markup;
|
112
|
+
token.map = [
|
113
|
+
startLine,
|
114
|
+
state.line
|
115
|
+
];
|
116
|
+
token.haveEndMarker = haveEndMarker;
|
117
|
+
return true;
|
118
|
+
}, {
|
119
|
+
alt: [
|
120
|
+
'paragraph',
|
121
|
+
'reference',
|
122
|
+
'blockquote',
|
123
|
+
'list'
|
124
|
+
]
|
125
|
+
});
|
126
|
+
// 自定义代码块渲染
|
127
|
+
markdownIt.renderer.rules.fence = (tokens, idx, options, env, self)=>{
|
128
|
+
const token = tokens[idx];
|
129
|
+
const hasEndBlock = token.haveEndMarker;
|
130
|
+
let language = token.info.trim();
|
131
|
+
let code = token.content;
|
132
|
+
// 原始渲染
|
133
|
+
const originalCode = originalFence(tokens, idx, options, env, self);
|
134
|
+
// 1. 如果代码块和语言不为空,则渲染代码块
|
135
|
+
if (code.trim() && language && hasEndBlock) {
|
136
|
+
const encodeCode = encodeURIComponent(code);
|
137
|
+
return `<section class="full-screen-wrap markdown-body" style="background-color: #2e2e2e;">
|
138
|
+
<section class="code-header g-flex-row">
|
139
|
+
<span>${language}</span>
|
140
|
+
<span class="g-flex-row">
|
141
|
+
<i class="bkaidev-icon bkaidev-un-full-screen click-un-full-screen"></i>
|
142
|
+
<i class="bkaidev-icon bkaidev-full-screen click-full-screen"></i>
|
143
|
+
<i class="bkaidev-icon bkaidev-copy click-copy" data-clipboard-text="${encodeCode}"></i>
|
144
|
+
<i class="bkaidev-icon bkaidev-dongzuo-xiazai click-download" data-clipboard-text="${encodeCode}" data-file-name="ai${getLanguageSuffix(language)}"></i>
|
145
|
+
</span>
|
146
|
+
</section>
|
147
|
+
${originalCode}
|
148
|
+
</section>`;
|
149
|
+
}
|
150
|
+
// 2. 如果有结束标记并且有代码内容,则返回原始代码块
|
151
|
+
if (code.trim() && hasEndBlock) {
|
152
|
+
return originalCode;
|
153
|
+
}
|
154
|
+
// 3. 否则返回原始内容
|
155
|
+
// 开始标记
|
156
|
+
const start = token.markup;
|
157
|
+
// 结束标记
|
158
|
+
let end = '';
|
159
|
+
// 如果代码块长度大于行数,则添加结束标记(markdown不封闭语法)
|
160
|
+
if (hasEndBlock) {
|
161
|
+
end = '```';
|
162
|
+
}
|
163
|
+
// 如果代码块不为空,则添加换行符
|
164
|
+
if (code) {
|
165
|
+
code = code.replace(/\n/g, '<br>');
|
166
|
+
}
|
167
|
+
language = `${language}<br>`;
|
168
|
+
// 返回原始字符串
|
169
|
+
return `${start}${language}${code}${end}`;
|
170
|
+
};
|
171
|
+
};
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import type MarkdownIt from 'markdown-it';
|
2
|
+
import 'x-mavon-editor/dist/css/index.css';
|
3
|
+
import 'x-mavon-editor/dist/markdown/github-markdown.min.css';
|
4
|
+
import 'x-mavon-editor/dist/highlightjs/styles/atom-one-dark.min.css';
|
5
|
+
import 'x-mavon-editor/dist/highlightjs/highlight.min.js';
|
6
|
+
import 'x-mavon-editor/dist/highlightjs/languages/javascript.min.js';
|
7
|
+
import 'x-mavon-editor/dist/highlightjs/languages/css.min.js';
|
8
|
+
import 'x-mavon-editor/dist/highlightjs/languages/python.min.js';
|
9
|
+
import 'x-mavon-editor/dist/highlightjs/languages/java.min.js';
|
10
|
+
import 'x-mavon-editor/dist/highlightjs/languages/php.min.js';
|
11
|
+
import 'x-mavon-editor/dist/highlightjs/languages/ruby.min.js';
|
12
|
+
import 'x-mavon-editor/dist/highlightjs/languages/swift.min.js';
|
13
|
+
import 'x-mavon-editor/dist/highlightjs/languages/go.min.js';
|
14
|
+
import 'x-mavon-editor/dist/highlightjs/languages/perl.min.js';
|
15
|
+
import 'x-mavon-editor/dist/highlightjs/languages/sql.min.js';
|
16
|
+
import 'x-mavon-editor/dist/highlightjs/languages/xml.min.js';
|
17
|
+
import 'x-mavon-editor/dist/highlightjs/languages/json.min.js';
|
18
|
+
import 'x-mavon-editor/dist/highlightjs/languages/typescript.min.js';
|
19
|
+
import 'x-mavon-editor/dist/highlightjs/languages/bash.min.js';
|
20
|
+
import 'x-mavon-editor/dist/highlightjs/languages/markdown.min.js';
|
21
|
+
import 'x-mavon-editor/dist/katex/katex.min.css';
|
22
|
+
import 'x-mavon-editor/dist/katex/katex.min.js';
|
23
|
+
import './mark-down.postcss';
|
24
|
+
export type MdProp = {
|
25
|
+
modelValue?: string;
|
26
|
+
codeStyle?: string;
|
27
|
+
previewBackground?: string;
|
28
|
+
defaultOpen: string;
|
29
|
+
editable: boolean;
|
30
|
+
subfield: boolean;
|
31
|
+
toolbarsFlag: boolean;
|
32
|
+
boxShadow: boolean;
|
33
|
+
ref?: (elm: MdRef) => void;
|
34
|
+
xssOptions: {
|
35
|
+
whiteList: {
|
36
|
+
[key: string]: string[];
|
37
|
+
};
|
38
|
+
};
|
39
|
+
};
|
40
|
+
type MdRef = {
|
41
|
+
$paste: () => void;
|
42
|
+
markdownIt: MarkdownIt;
|
43
|
+
};
|
44
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
45
|
+
value: {
|
46
|
+
type: StringConstructor;
|
47
|
+
};
|
48
|
+
isCode: {
|
49
|
+
type: BooleanConstructor;
|
50
|
+
default: boolean;
|
51
|
+
};
|
52
|
+
previewBackground: {
|
53
|
+
type: StringConstructor;
|
54
|
+
default: string;
|
55
|
+
};
|
56
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
57
|
+
[key: string]: any;
|
58
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
59
|
+
value: {
|
60
|
+
type: StringConstructor;
|
61
|
+
};
|
62
|
+
isCode: {
|
63
|
+
type: BooleanConstructor;
|
64
|
+
default: boolean;
|
65
|
+
};
|
66
|
+
previewBackground: {
|
67
|
+
type: StringConstructor;
|
68
|
+
default: string;
|
69
|
+
};
|
70
|
+
}>> & Readonly<{}>, {
|
71
|
+
isCode: boolean;
|
72
|
+
previewBackground: string;
|
73
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
74
|
+
export default _default;
|