@nebulars/sseengine 1.0.0 → 1.3.44
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/.prettierignore +0 -0
- package/.prettierrc.cjs +8 -0
- package/dist/sseengine.css +1 -0
- package/dist/sseengine.umd.js +1 -0
- package/package.json +19 -4
- package/src/components/{fqa-answer → sse-answer}/index.vue +7 -6
- package/src/components/{fqa-chat → sse-chat}/index.vue +9 -9
- package/src/components/sse-drawer/index.vue +256 -0
- package/src/components/sse-drawer/modify.less +38 -0
- package/src/components/sse-enter/index.vue +210 -0
- package/src/components/sse-enter/modify.less +101 -0
- package/src/components/{fqa-hub → sse-hub}/index.vue +4 -4
- package/src/components/sse-menus/index.vue +288 -0
- package/src/components/sse-menus/popover-modify.less +26 -0
- package/src/components/sse-notes/index.vue +236 -0
- package/src/components/sse-notes/modify.less +3 -0
- package/src/components/{fqa-query → sse-query}/index.vue +12 -12
- package/src/components/{fqa-recursion → sse-recursion}/index.vue +4 -4
- package/src/components/{fqa-root → sse-root}/index.vue +1 -1
- package/src/components/sse-submit/index.vue +63 -0
- package/src/components/sse-submit/modify.less +8 -0
- package/src/index.js +11 -2
- package/src/index.vue +2 -2
- package/src/store/feedback.js +8 -0
- package/src/store/index.js +166 -3
- package/src/store/info.js +20 -0
- package/src/store/launch.js +18 -0
- package/src/store/menus.js +45 -0
- package/src/store/modify.less +127 -0
- package/src/store/presets.js +95 -0
- package/src/store/remote.js +34 -0
- package/src/store/session.js +57 -0
- package/src/store/sevani.js +15 -0
- package/src/store/sse.js +223 -0
- package/src/store/sup.js +7 -0
- package/sseengine.zip +0 -0
- package/src/components/fqa-icon/index.vue +0 -36
- /package/src/components/{fqa-chat → sse-chat}/conversation.less +0 -0
- /package/src/components/{fqa-chat → sse-chat}/sup.less +0 -0
- /package/src/components/{fqa-flip → sse-flip}/index.vue +0 -0
package/.prettierignore
ADDED
|
File without changes
|
package/.prettierrc.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#download[data-v-7496a1ff]{width:0;height:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;position:fixed;top:-100%;left:-100%;z-index:-100}.scroll[data-v-7496a1ff]{overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;scroll-behavior:smooth}.scroll[data-v-7496a1ff]::-webkit-scrollbar{width:8px}.scroll[data-v-7496a1ff]::-webkit-scrollbar-track{background:transparent}.scroll[data-v-7496a1ff]::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:8px;transition:background-color .3s}.scroll[data-v-7496a1ff]:hover::-webkit-scrollbar-thumb{background-color:#fff6}.fantasy[data-v-7496a1ff]{top:4px;position:relative;font-family:fantasy,sans-serif}.ant-btn[data-v-7496a1ff],.ant-tabs-tab[data-v-7496a1ff],.ant-menu-item[data-v-7496a1ff],.ant-select-selector[data-v-7496a1ff],.ant-radio-wrapper[data-v-7496a1ff],.ant-checkbox-wrapper[data-v-7496a1ff]{cursor:pointer!important}.fqa-answer-atte[data-v-7496a1ff]{margin-right:auto;cursor:pointer;transition:all .36s;color:#000}.fqa-answer-atte[data-v-7496a1ff]:hover{color:#484848}.fqa-chat-panel-title[data-v-7496a1ff]{flex:1}#download[data-v-46aaa707]{width:0;height:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;position:fixed;top:-100%;left:-100%;z-index:-100}.scroll[data-v-46aaa707]{overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;scroll-behavior:smooth}.scroll[data-v-46aaa707]::-webkit-scrollbar{width:8px}.scroll[data-v-46aaa707]::-webkit-scrollbar-track{background:transparent}.scroll[data-v-46aaa707]::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:8px;transition:background-color .3s}.scroll[data-v-46aaa707]:hover::-webkit-scrollbar-thumb{background-color:#fff6}.fantasy[data-v-46aaa707]{top:4px;position:relative;font-family:fantasy,sans-serif}.ant-btn[data-v-46aaa707],.ant-tabs-tab[data-v-46aaa707],.ant-menu-item[data-v-46aaa707],.ant-select-selector[data-v-46aaa707],.ant-radio-wrapper[data-v-46aaa707],.ant-checkbox-wrapper[data-v-46aaa707]{cursor:pointer!important}.fqa-chat[data-v-46aaa707]{flex-direction:column;display:flex;gap:16px;font-size:14px;padding-block:16px}.fqa-chat-produce[data-v-46aaa707]{opacity:75%}.fqa-chat-panel-title[data-v-46aaa707]{max-width:90%}.fqa-chat-blank[data-v-46aaa707]{width:100%;height:18vh}#download[data-v-8e3d6699]{width:0;height:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;position:fixed;top:-100%;left:-100%;z-index:-100}.scroll[data-v-8e3d6699]{overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;scroll-behavior:smooth}.scroll[data-v-8e3d6699]::-webkit-scrollbar{width:8px}.scroll[data-v-8e3d6699]::-webkit-scrollbar-track{background:transparent}.scroll[data-v-8e3d6699]::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:8px;transition:background-color .3s}.scroll[data-v-8e3d6699]:hover::-webkit-scrollbar-thumb{background-color:#fff6}.fantasy[data-v-8e3d6699]{top:4px;position:relative;font-family:fantasy,sans-serif}.ant-btn[data-v-8e3d6699],.ant-tabs-tab[data-v-8e3d6699],.ant-menu-item[data-v-8e3d6699],.ant-select-selector[data-v-8e3d6699],.ant-radio-wrapper[data-v-8e3d6699],.ant-checkbox-wrapper[data-v-8e3d6699]{cursor:pointer!important}.fqa-flip[data-v-8e3d6699]{color:#484848;display:flex;flex-direction:column}.fqa-flip.freeze[data-v-8e3d6699]{pointer-events:none;color:#a8a8a8!important}.fqa-flip-controller[data-v-8e3d6699]{margin-left:auto;padding:16px 0;align-self:flex-end;justify-content:flex-end}.fqa-flip-disabled[data-v-8e3d6699]{color:#a8a8a8!important}#download[data-v-9e607206]{width:0;height:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;position:fixed;top:-100%;left:-100%;z-index:-100}.scroll[data-v-9e607206]{overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;scroll-behavior:smooth}.scroll[data-v-9e607206]::-webkit-scrollbar{width:8px}.scroll[data-v-9e607206]::-webkit-scrollbar-track{background:transparent}.scroll[data-v-9e607206]::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:8px;transition:background-color .3s}.scroll[data-v-9e607206]:hover::-webkit-scrollbar-thumb{background-color:#fff6}.fantasy[data-v-9e607206]{top:4px;position:relative;font-family:fantasy,sans-serif}.ant-btn[data-v-9e607206],.ant-tabs-tab[data-v-9e607206],.ant-menu-item[data-v-9e607206],.ant-select-selector[data-v-9e607206],.ant-radio-wrapper[data-v-9e607206],.ant-checkbox-wrapper[data-v-9e607206]{cursor:pointer!important}.fqa-icon[data-v-9e607206]{transition:all .36s}#download[data-v-81f2e091]{width:0;height:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;position:fixed;top:-100%;left:-100%;z-index:-100}.scroll[data-v-81f2e091]{overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;scroll-behavior:smooth}.scroll[data-v-81f2e091]::-webkit-scrollbar{width:8px}.scroll[data-v-81f2e091]::-webkit-scrollbar-track{background:transparent}.scroll[data-v-81f2e091]::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:8px;transition:background-color .3s}.scroll[data-v-81f2e091]:hover::-webkit-scrollbar-thumb{background-color:#fff6}.fantasy[data-v-81f2e091]{top:4px;position:relative;font-family:fantasy,sans-serif}.ant-btn[data-v-81f2e091],.ant-tabs-tab[data-v-81f2e091],.ant-menu-item[data-v-81f2e091],.ant-select-selector[data-v-81f2e091],.ant-radio-wrapper[data-v-81f2e091],.ant-checkbox-wrapper[data-v-81f2e091]{cursor:pointer!important}.fqa-query[data-v-81f2e091]{align-self:flex-end;justify-content:flex-end}.fqa-query-content[data-v-81f2e091]{max-width:70%;margin-left:auto;padding:16px;white-space:pre-line;border-radius:16px;color:#003172;background-color:#d8e9ff}.fqa-query-control[data-v-81f2e091]{display:flex;flex-direction:row;padding:0 4px;margin-left:auto;transition:all .24s;opacity:0}.fqa-query-control.hover[data-v-81f2e091]{opacity:1}.fqa-query-editable[data-v-81f2e091]{border-radius:16px;background-color:#fdfeff}.fqa-query-bunny[data-v-81f2e091]{width:100%;padding:16px;justify-content:flex-end}.fqa-query-cancel[data-v-81f2e091]{background-color:#f7f8f9}.fqa-query-send[data-v-81f2e091]{color:#fdfeff;background-color:#484848}.fqa-query-send[data-v-81f2e091]:hover{color:#fdfeff;background-color:#343434}.fqa-query-input[data-v-81f2e091]{color:#484848;border-color:transparent!important;background-color:transparent!important;box-shadow:none!important;resize:none!important;transition:all .12s}.fqa-query-input[data-v-81f2e091]::placeholder{color:#000}.fqa-query-input[data-v-81f2e091]:focus::placeholder{color:#000}#download[data-v-701699c1]{width:0;height:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;position:fixed;top:-100%;left:-100%;z-index:-100}.scroll[data-v-701699c1]{overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;scroll-behavior:smooth}.scroll[data-v-701699c1]::-webkit-scrollbar{width:8px}.scroll[data-v-701699c1]::-webkit-scrollbar-track{background:transparent}.scroll[data-v-701699c1]::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:8px;transition:background-color .3s}.scroll[data-v-701699c1]:hover::-webkit-scrollbar-thumb{background-color:#fff6}.fantasy[data-v-701699c1]{top:4px;position:relative;font-family:fantasy,sans-serif}.ant-btn[data-v-701699c1],.ant-tabs-tab[data-v-701699c1],.ant-menu-item[data-v-701699c1],.ant-select-selector[data-v-701699c1],.ant-radio-wrapper[data-v-701699c1],.ant-checkbox-wrapper[data-v-701699c1]{cursor:pointer!important}.fqa-recursion[data-v-701699c1]{flex-direction:column;display:flex;gap:16px}.fqa-conversation{width:100%;flex-direction:column;display:flex;gap:16px}.markdown-notes-sup{color:#fff;background-color:#aeaeae;cursor:pointer;transition:all .24s}.markdown-notes-sup:hover{color:#fff;background-color:#194a8c}.markdown-notes-sup:focus,.markdown-notes-sup.active{color:#fff;background-color:#194a8c}#download{width:0;height:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;position:fixed;top:-100%;left:-100%;z-index:-100}.scroll{overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;scroll-behavior:smooth}.scroll::-webkit-scrollbar{width:8px}.scroll::-webkit-scrollbar-track{background:transparent}.scroll::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:8px;transition:background-color .3s}.scroll:hover::-webkit-scrollbar-thumb{background-color:#fff6}.fantasy{top:4px;position:relative;font-family:fantasy,sans-serif}.ant-btn,.ant-tabs-tab,.ant-menu-item,.ant-select-selector,.ant-radio-wrapper,.ant-checkbox-wrapper{cursor:pointer!important}.FinQA--Container{position:relative;background-color:transparent}.FinQA--Header,.FinQA--Footer,.FinQA--Main{display:flex}.FinQA--Header,.FinQA--Footer{flex-direction:row}.FinQA--Main{flex-direction:column}.FinQA--Main,.FinQA--Chat{flex:1}.FinQA--Header,.FinQA--Footer,.FinQA--Main{align-items:center}.FinQA--Header,.FinQA--Footer{justify-content:space-between}.FinQA--Header,.FinQA--Footer,.FinQA--Main{transition:all .24s}.FinQA--Header,.FinQA--Footer,.FinQA--Chat,.FinQA--Mention{padding-inline:16px}.FinQA--Input{padding:16px}.FinQA--Header,.FinQA--Footer,.FinQA--Main{width:100%}.FinQA--Input{height:100%}.FinQA--Header{height:60px}.FinQA--Footer{height:30px}.FinQA--Chat,.FinQA--Mention{width:760px}.FinQA--Welcome{height:100%}.FinQA--Input,.FinQA--Header{background-color:#fdfeff}.FinQA--Input{border-radius:16px}.FinQA--Mention{position:relative}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(e,h){typeof exports=="object"&&typeof module<"u"?module.exports=h(require("vue")):typeof define=="function"&&define.amd?define(["vue"],h):(e=typeof globalThis<"u"?globalThis:e||self,e.sseengine=h(e.Vue))})(this,function(e){"use strict";const h="",_=(t,n)=>{const o=t.__vccOpts||t;for(const[i,r]of n)o[i]=r;return o},B={props:{item:{type:[Object],default:{}},active:{type:[Number]}},data(){return{}},computed:{thinks(){return this.item.thinks},references(){return this.item.references},workflows(){return this.item.workflows}},methods:{checkUrl(t){return/^http/.test(t)},async onAttach(t,n){await this.$store.dispatch("chat/INFO_ATTACH",{focal:t,attach:n}),await this.$store.dispatch("adapter/STATE_UPDATE",{attach:{type:!0}})}}},S=["answer-id","x-trace-id"],T={class:"fqa-chat-panel-title"},A={class:"fqa-chat-panel-link"};function O(t,n,o,i,r,c){const a=e.resolveComponent("fqa-worry"),s=e.resolveComponent("fqa-markdown"),d=e.resolveComponent("fqa-link"),f=e.resolveComponent("fqa-notes");e.resolveComponent("fqa-icon"),e.resolveComponent("a-space");const m=e.resolveComponent("fqa-feedback"),u=e.resolveComponent("fqa-recursion");return e.openBlock(),e.createElementBlock("section",{class:"fqa-answer fqa-conversation","answer-id":o.item.id,"x-trace-id":o.item.x_trace_id},[e.createVNode(a,{source:t.$util.anxious(o.item),item:o.item,type:o.item.type,produce:t.chat.produce,compliance:o.item.compliance,"onUpdate:compliance":n[0]||(n[0]=l=>o.item.compliance=l),up:o.item.id,rag:o.item.rag,finally_status:o.item.finally_status},null,8,["source","item","type","produce","compliance","up","rag","finally_status"]),e.createVNode(s,{html:o.item.content,id:o.item.id,trace:o.item.x_trace_id,references:c.references},null,8,["html","id","trace","references"]),c.references.length?(e.openBlock(),e.createBlock(f,{key:0,class:"fqa-chat-panel",id:o.item.id,references:c.references},{title:e.withCtx(({title:l})=>[e.createElementVNode("div",T,e.toDisplayString(l),1)]),content:e.withCtx(({content:l})=>[e.createVNode(s,{html:l,id:o.item.id},null,8,["html","id"])]),excerpt:e.withCtx(({url:l,source:k})=>[e.createElementVNode("div",A,[c.checkUrl(l)?(e.openBlock(),e.createBlock(d,{key:0,href:l,target:"_blank",clip:t.app.mobile},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k),1)]),_:2},1032,["href","clip"])):(e.openBlock(),e.createBlock(d,{key:1,href:l,target:"_blank"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k),1)]),_:2},1032,["href"]))])]),_:1},8,["id","references"])):e.createCommentVNode("",!0),e.createCommentVNode("",!0),e.createVNode(m,{id:o.item.id,feedback:o.item.feedback,"onUpdate:feedback":n[4]||(n[4]=l=>o.item.feedback=l),visible:!t.chat.produce},null,8,["id","feedback","visible"]),o.item.children.length?(e.openBlock(),e.createBlock(u,{key:2,source:o.item.children,active:o.active},null,8,["source","active"])):e.createCommentVNode("",!0)],8,S)}const j=Object.freeze(Object.defineProperty({__proto__:null,default:_(B,[["render",O],["__scopeId","data-v-7496a1ff"]])},Symbol.toStringTag,{value:"Module"})),$e="",V={data(){return{noteActive:0,noteId:""}},computed:{theme(){return{main:{app:"App.vue",mount:"#app"},mock:!1,apollo:!1,registry:{host:!0,api:!0,route:!0,store:!0,mixin:!0},extract:{util:"/utils/*.js",filter:"/filters/*.js",directive:"/directives/*.js",route:"/pages/**/route.js",store:"/pages/**/store.js",component:"/components/**/*.vue",style:"/styles/*.less",i18n:"/i18n/*.js",md:"/pages/**/*.md"}}.theme}},watch:{"chat.notes":{handle(t){this.$util.sup.clean()}}},methods:{async supHandler({target:t}){if(!t.classList.contains("markdown-notes-sup"))return;if(this.$util.sup.active(t),await this.$store.dispatch("chat/SUP_UPDATE",t),this.app.mobile)return await this.$store.dispatch("chat/NOTES_UPDATE",t);const{thinks:n,references:o,workflows:i}=this.$util.deepfind(this.chat.info.history,t.id),{key:r}=t.dataset,c=this.$util.sup.group(t,".markdown-body");await this.$store.dispatch("chat/INFO_ATTACH",{focal:"references",attach:{thinks:n,references:o,workflows:i},anchor:r,explicit:c}),await this.$store.dispatch("adapter/STATE_UPDATE",{attach:{type:!0}})}},mounted(){document.addEventListener("click",this.supHandler)},beforeUnmount(){document.removeEventListener("click",this.supHandler)}},ve={key:0,class:"fqa-chat-produce"};function $(t,n,o,i,r,c){var d;const a=e.resolveComponent("fqa-recursion"),s=e.resolveComponent("fqa-icon");return e.openBlock(),e.createElementBlock("div",{class:"fqa-chat",style:e.normalizeStyle(c.theme)},[e.createVNode(a,{source:(d=t.chat.info)==null?void 0:d.history},null,8,["source"]),(t.chat.produce,e.createCommentVNode("",!0)),n[0]||(n[0]=e.createElementVNode("div",{class:"fqa-chat-blank"},null,-1))],4)}const v=Object.freeze(Object.defineProperty({__proto__:null,default:_(V,[["render",$],["__scopeId","data-v-46aaa707"]])},Symbol.toStringTag,{value:"Module"})),ze="",P={props:{source:{type:[Array],default:[]},freeze:{type:[Boolean],default:!1},active:{type:[Number]}},computed:{min(){return 1},max(){return this.source.length}},methods:{prev(){this.active>this.min&&this.$emit("update:active",this.active-1)},next(){this.active<this.max&&this.$emit("update:active",this.active+1)}}},z={class:"fqa-flip-pagination"},D={key:0,class:"fqa-flip-item"};function U(t,n,o,i,r,c){const a=e.resolveComponent("fqa-icon"),s=e.resolveComponent("a-space");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["fqa-flip",{freeze:o.freeze}])},[e.createVNode(s,{class:"fqa-flip-controller"},{default:e.withCtx(()=>[e.createVNode(a,{class:e.normalizeClass({"fqa-flip-prev":!0,"fqa-flip-disabled":o.active<=c.min}),icon:"LeftOutlined",onClick:c.prev},null,8,["class","onClick"]),e.createElementVNode("div",z,e.toDisplayString(o.active)+" / "+e.toDisplayString(c.max),1),e.createVNode(a,{class:e.normalizeClass({"fqa-flip-next":!0,"fqa-flip-disabled":o.active>=c.max}),icon:"RightOutlined",onClick:c.next},null,8,["class","onClick"])]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.source,(d,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[f===o.active-1?(e.openBlock(),e.createElementBlock("div",D,[e.renderSlot(t.$slots,"item",{item:d,active:o.active},void 0,!0)])):e.createCommentVNode("",!0)],64))),256))],2)}const H=Object.freeze(Object.defineProperty({__proto__:null,default:_(P,[["render",U],["__scopeId","data-v-8e3d6699"]])},Symbol.toStringTag,{value:"Module"})),M={props:{item:{type:[Object],default:{}},active:{type:[Number],default:1}},watch:{active:{handler(t){const n=this.$util.deepfind(this.chat.info.history,this.item.parent);n&&(n.active=t)},deep:!0,immediate:!0}}};function I(t,n,o,i,r,c){const a=e.resolveComponent("fqa-root"),s=e.resolveComponent("fqa-query"),d=e.resolveComponent("fqa-answer");return e.openBlock(),e.createElementBlock(e.Fragment,null,[o.item.role===0?(e.openBlock(),e.createBlock(a,{key:0,item:o.item,active:o.active,"onUpdate:active":n[0]||(n[0]=f=>t.$emit("update:active",f))},null,8,["item","active"])):e.createCommentVNode("",!0),o.item.role===1?(e.openBlock(),e.createBlock(s,{key:1,item:o.item,active:o.active,"onUpdate:active":n[1]||(n[1]=f=>t.$emit("update:active",f))},null,8,["item","active"])):e.createCommentVNode("",!0),o.item.role===2?(e.openBlock(),e.createBlock(d,{key:2,item:o.item,active:o.active,"onUpdate:active":n[2]||(n[2]=f=>t.$emit("update:active",f))},null,8,["item","active"])):e.createCommentVNode("",!0)],64)}const L=Object.freeze(Object.defineProperty({__proto__:null,default:_(M,[["render",I]])},Symbol.toStringTag,{value:"Module"})),He="",F={props:{icon:{type:String,default:""},size:{type:[Number,String],default:14},color:{type:String,default:"inherit"},cursor:{type:String,default:"default"},duration:{type:[Number,String],default:.36}}};function R(t,n,o,i,r,c){return e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.icon),{class:"fqa-icon",style:e.normalizeStyle({fontSize:`${o.size}px`,color:o.color,cursor:o.cursor,transitionDuration:`${o.duration}s`})},null,8,["style"])}const K=Object.freeze(Object.defineProperty({__proto__:null,default:_(F,[["render",R],["__scopeId","data-v-9e607206"]])},Symbol.toStringTag,{value:"Module"})),Ie="",G={props:{item:{type:[Object],default:{}},active:{type:[Number]}},data(){return{copied:!1,editable:!1,origin:""}},inject:["updateActive"],methods:{async copySuccess(t){this.copied=!0,await this.$util.kitchen.sleep(10),this.copied=!1},async intoEditable(t,n){this.origin=n.content,this.editable=!0},async cancelHandler(t){this.origin="",this.editable=!1},async submitHandler(t,n){await this.$store.dispatch("chat/SSE_CONNECT",{session_id:this.app.id,content:this.origin,parent:n.parent}),this.cancelHandler(),await this.$store.dispatch("chat/STREAM_CACHE",null);const{children:o}=this.$util.deepfind(this.chat.info.history,n.parent);this.updateActive(o.length+1)},async enterHandler(t,n){return t.shiftKey?this.submitHandler(t,n):!1},async enterHandler(t){var o;if(this.app.mobile)return;await this.$store.dispatch("chat/SEVANI_UPDATE",t),await this.$store.dispatch("chat/SEVANI_CLEAN","fqa-query-control"),await this.$util.kitchen.sleep(1);const n=await this.$store.dispatch("chat/SEVANI_FIND","fqa-query-control");(o=n==null?void 0:n.classList)==null||o.add("hover")},async leaveHandler(){this.app.mobile||(this.$store.dispatch("chat/SEVANI_UPDATE",{sevani:null}),await this.$store.dispatch("chat/SEVANI_CLEAN","fqa-query-control"))}}},J=["query-id","x-trace-id"],Q={key:0,class:"fqa-query-editable"},W={key:1,class:"fqa-query-content"};function X(t,n,o,i,r,c){const a=e.resolveComponent("a-textarea"),s=e.resolveComponent("fqa-button"),d=e.resolveComponent("a-space"),f=e.resolveComponent("fqa-icon"),m=e.resolveComponent("fqa-recursion"),u=e.resolveDirective("clipboard");return e.openBlock(),e.createElementBlock("section",{class:"fqa-query fqa-conversation","query-id":o.item.id,"x-trace-id":o.item.x_trace_id,onMouseenter:n[5]||(n[5]=e.withModifiers((...l)=>c.enterHandler&&c.enterHandler(...l),["stop"])),onMouseleave:n[6]||(n[6]=e.withModifiers((...l)=>c.leaveHandler&&c.leaveHandler(...l),["stop"]))},[r.editable&&!t.chat.produce?(e.openBlock(),e.createElementBlock("div",Q,[e.createVNode(a,{class:"fqa-query-input","auto-size":{minRows:3,maxRows:10},value:r.origin,"onUpdate:value":n[0]||(n[0]=l=>r.origin=l),onPressEnter:n[1]||(n[1]=l=>c.enterHandler(l,o.item))},null,8,["value"]),e.createVNode(d,{class:"fqa-query-bunny"},{default:e.withCtx(()=>[e.createVNode(s,{class:"fqa-query-cancel",width:80,instance:20,radius:40,hover:"#e7e8e9",onClick:n[2]||(n[2]=l=>c.cancelHandler(l,o.item))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.$t("global.cancel")),1)]),_:1}),e.createVNode(s,{class:"fqa-query-send",width:80,instance:20,radius:40,color:"#fdfeff",onClick:n[3]||(n[3]=l=>c.submitHandler(l,o.item))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.$t("global.send")),1)]),_:1})]),_:1})])):(e.openBlock(),e.createElementBlock("div",W,e.toDisplayString(o.item.content),1)),!r.editable&&!t.chat.produce?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["fqa-query-control",{hover:t.app.mobile}])},[e.withDirectives((e.openBlock(),e.createBlock(s,{size:30,hover:"#e7e8e9"},{default:e.withCtx(()=>[e.createVNode(f,{icon:r.copied?"CheckOutlined":"CopyOutlined"},null,8,["icon"])]),_:1})),[[u,o.item.content,"copy"],[u,c.copySuccess,"success"]]),e.createVNode(s,{size:30,hover:"#e7e8e9",onClick:n[4]||(n[4]=l=>c.intoEditable(l,o.item))},{default:e.withCtx(()=>[e.createVNode(f,{icon:"EditOutlined"})]),_:1})],2)):e.createCommentVNode("",!0),o.item.children.length?(e.openBlock(),e.createBlock(m,{key:3,source:o.item.children,active:o.active},null,8,["source","active"])):e.createCommentVNode("",!0)],40,J)}const Y=Object.freeze(Object.defineProperty({__proto__:null,default:_(G,[["render",X],["__scopeId","data-v-81f2e091"]])},Symbol.toStringTag,{value:"Module"})),Fe="",Z={props:{source:{type:[Array]},active:{type:[Number]}},data(){return{current:1}},provide(){return{updateActive:this.updateActive}},computed:{flip(){return this.source.length>1},first(){return this.source[0]}},watch:{active:{handler(t){this.current=t},deep:!0,immediate:!0}},methods:{updateActive(t){this.current=t}}},ee={class:"fqa-recursion"};function te(t,n,o,i,r,c){const a=e.resolveComponent("fqa-hub"),s=e.resolveComponent("fqa-flip");return e.openBlock(),e.createElementBlock("div",ee,[c.flip?(e.openBlock(),e.createBlock(s,{key:0,freeze:t.chat.produce,source:o.source,active:r.current,"onUpdate:active":c.updateActive},{item:e.withCtx(({item:d,active:f})=>[e.createVNode(a,{item:d,active:f,"onUpdate:active":c.updateActive},null,8,["item","active","onUpdate:active"])]),_:1},8,["freeze","source","active","onUpdate:active"])):(e.openBlock(),e.createBlock(a,{key:1,item:c.first},null,8,["item"]))])}const ne=Object.freeze(Object.defineProperty({__proto__:null,default:_(Z,[["render",te],["__scopeId","data-v-701699c1"]])},Symbol.toStringTag,{value:"Module"})),oe={props:{item:{type:[Object],default:{}},active:{type:[Number]}}},ce={class:"fqa-root fqa-conversation"};function ie(t,n,o,i,r,c){const a=e.resolveComponent("fqa-recursion");return e.openBlock(),e.createElementBlock("section",ce,[o.item.children.length?(e.openBlock(),e.createBlock(a,{key:0,source:o.item.children,active:o.active},null,8,["source","active"])):e.createCommentVNode("",!0)])}const re=Object.freeze(Object.defineProperty({__proto__:null,default:_(oe,[["render",ie]])},Symbol.toStringTag,{value:"Module"})),Ge="",Je="",q=()=>{},ae=(t={},n=q)=>(Object.keys(t).map(o=>{t[o]=se(n(t[o],o,t),t[o])}),t),se=(t,n)=>t===void 0?n:t,le=(t,n=Object)=>t&&t.constructor===n,de=t=>({__proto__:Object.getPrototypeOf(t),...t}),y=(t={},n=q,o=!1,i=[])=>(o&&(t=de(t)),t=ae(t,(r,c,a)=>{const s=[...i,c];return le(r)?y(r,n,o,s):n(r,c,s,a)}),t);function fe(t){return y(t,n=>n,!0)}function g(t,n,o){let i=o(n[t],t);if(i!==void 0){if(i&&i.constructor===Object){let{key:r,value:c}=i;r&&c&&(t=r,i=c)}n[t]=i}return i}function p(t,n,{clone:o=!1,deep:i=!1,stop:r=!1,step:c=1,long:a=0}={}){let s=o===!0?fe(t):t;if(i===!0)return y(s,n);if(s.constructor===Array){for(let d=0;d<s.length&&!(d%c===a&&g(d,s,n)===r);d++);return s}for(let d in s)if(!(d-0>-1&&d%c!==a)&&g(d,s,n)===r)break;return s}function b(t,n=Object){return[null,void 0].includes(t)?!1:t.constructor===n}function x(t={},n){return!b(t)||!b(n)||p(n,(o,i)=>{t[i]=b(o)?x(t[i]||{},o):o}),t}const _e=t=>[void 0,null].includes(t),ue=(t,n)=>{if(t)return t.constructor===n};function C(t,n,o,i,r){const c=t.shift();if(r(t))return n[c]=i(c),C(t,n[c],o,i,r);n[c]=i(c,!0)}const me=t=>_e(t)||!ue(t,Object)?t:p(t,(n,o)=>{const i=o.split(".");if(i.length>1){const r=i[0],c={};return C(i,c,n,(a,s)=>s?n:{},a=>a.length),{key:r,value:c[r]}}return n}),pe=(t={},n)=>x(t,me(n)),he=new Function;function ye(t,n={}){return[void 0,null,"undefined","null"].includes(t)?"":Object.assign({[String]:"",[Number]:-1,[Array]:[],[Object]:{},[Function]:()=>{},[Promise]:new Promise(he)},n)[t.constructor]}const ke=(t,n)=>y(t,o=>ye(o,n)),be=async(t,n,o)=>{let i={};try{i=await t(n,o)}catch(r){i={error:r}}return i};function qe(t={}){return{error:!1,...t}}function ge(t={}){const n={async STATE_UPDATE({commit:o},i){return await o("STATE_UPDATE",i)},async STATE_CLEAR({commit:o,state:i},r){return await o("STATE_UPDATE",ke(i[r]))}};return p(t,(o,i)=>{n[i]=async(r,c)=>{const a=await be(o,r,c);return a&&a.errMsg&&console.log(a.errMsg),r.commit("STATE_UPDATE",a),a}}),n}function xe(t={}){const n={STATE_UPDATE(o,i){return pe(o,i)}};return p(t,(o,i)=>{n[i]=(r,c)=>o(r,c)}),n}const Ce=Object.freeze(Object.defineProperty({__proto__:null,actions:ge,mutations:xe,states:qe},Symbol.toStringTag,{value:"Module"})),{states:we,mutations:Ne,actions:Ee}=Ce,Be=t=>p(t,n=>(n.state=we(n.state),n.mutations=Ne(n.mutations),n.actions=Ee(n.actions),n.namespaced=!0,n)),w=()=>{},Se=(t,n,o={})=>{let i=w;function r(a=w){return i=a,{install:c}}function c(a){const{name:s}=t;a.config.globalProperties[s]=o;const{$router:d,$store:f,$util:m}=a.config.globalProperties;try{const u=n(m);u.namespaced=!0,f.register=(l,k)=>{const{[l]:je}=Be({[l]:k});f.registerModule(l,je)},i(a,{$store:f,$router:d,$util:m,module:u,name:s},a)}catch(u){console.error(u)}}return r},Te=t=>{Object.entries(Object.assign({"../../../src/components/fqa-answer/index.vue":j,"../../../src/components/fqa-chat/index.vue":v,"../../../src/components/fqa-flip/index.vue":H,"../../../src/components/fqa-hub/index.vue":L,"../../../src/components/fqa-icon/index.vue":K,"../../../src/components/fqa-query/index.vue":Y,"../../../src/components/fqa-recursion/index.vue":ne,"../../../src/components/fqa-root/index.vue":re})).forEach(([o,i])=>{const{default:r}=i;if(!r)return;let c=r.name;c||o.replace(/([\w\-]+)\/([\w\-]+)\.vue/,(a,s,d)=>c=d==="index"?s:d),t.component(c,i.default)})},Qe="",Ae={name:"sseengine",mounted(){console.log(1e3,this.sseengine)}};function Oe(t,n,o,i,r,c){const a=e.resolveComponent("fqa-chat");return e.openBlock(),e.createBlock(a)}const N=_(Ae,[["render",Oe]]),E=Se(N,(t={})=>{const n={};return console.log(5,t),t.json.clone(n),{state:n,actions:{async CLEAN(){return{}}}}},{icon:"AppleOutlined"});return console.log(1600,E),E((t,{name:n,$store:o,$router:i,module:r})=>{o.register(n,r),t.mixin({computed:{[n](){return o.state[n]}}}),t.component(n,N),Te(t)})});
|
package/package.json
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nebulars/sseengine",
|
|
3
3
|
"description": "An engine for sse",
|
|
4
|
-
"version": "1.
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
|
|
4
|
+
"version": "1.3.44",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "forage serve --name sseengine",
|
|
8
|
+
"build": "forage compile --name sseengine",
|
|
9
|
+
"zip": "forage compress --out sseengine",
|
|
10
|
+
"push:dev": "forage push --space sseengine --env dev",
|
|
11
|
+
"push:test": "forage push --space sseengine --env test",
|
|
12
|
+
"push:prod": "forage push --space sseengine --env prod"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@nebulars/cmd": "^0.3.43",
|
|
16
|
+
"@nebulars/forage": "^0.3.43",
|
|
17
|
+
"@scaff/umd": "^3.7.44",
|
|
18
|
+
"@scaff/vite": "^3.7.38",
|
|
19
|
+
"axios": "^1.11.0",
|
|
20
|
+
"vuex-fast": "^2.2.2"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -22,13 +22,14 @@
|
|
|
22
22
|
<template>
|
|
23
23
|
<section class="fqa-answer fqa-conversation" :answer-id="item.id" :x-trace-id="item.x_trace_id">
|
|
24
24
|
<!-- Worry -->
|
|
25
|
-
<fqa-worry :source="$util.anxious(item)" :item="item" :type="item.type" :produce="
|
|
25
|
+
<fqa-worry :source="$util.anxious(item)" :item="item" :type="item.type" :produce="sseengine.produce" v-model:compliance="item.compliance" :up="item.id" :rag="item.rag" :finally_status="item.finally_status" />
|
|
26
26
|
|
|
27
27
|
<!-- Markdown -->
|
|
28
28
|
<fqa-markdown :html="item.content" :id="item.id" :trace="item.x_trace_id" :references="references" />
|
|
29
29
|
|
|
30
30
|
<!-- Notes -->
|
|
31
|
-
|
|
31
|
+
references.length: {{ references.length }}
|
|
32
|
+
<sse-notes class="fqa-chat-panel" :id="item.id" :references="references" v-if="references.length">
|
|
32
33
|
<template #title="{ title }">
|
|
33
34
|
<div class="fqa-chat-panel-title">{{ title }}</div>
|
|
34
35
|
</template>
|
|
@@ -43,7 +44,7 @@
|
|
|
43
44
|
<fqa-link :href="url" target="_blank" v-else>{{ source }}</fqa-link>
|
|
44
45
|
</div>
|
|
45
46
|
</template>
|
|
46
|
-
</
|
|
47
|
+
</sse-notes>
|
|
47
48
|
|
|
48
49
|
<!-- Atte -->
|
|
49
50
|
<template v-if="false">
|
|
@@ -64,10 +65,10 @@
|
|
|
64
65
|
</template>
|
|
65
66
|
|
|
66
67
|
<!-- Feedback -->
|
|
67
|
-
<fqa-feedback :id="item.id" v-model:feedback="item.feedback" :visible="!
|
|
68
|
+
<fqa-feedback :id="item.id" v-model:feedback="item.feedback" :visible="!sseengine.produce" />
|
|
68
69
|
|
|
69
70
|
<!-- Next -->
|
|
70
|
-
<
|
|
71
|
+
<sse-recursion v-if="item.children.length" :source="item.children" :active="active" />
|
|
71
72
|
</section>
|
|
72
73
|
</template>
|
|
73
74
|
|
|
@@ -107,7 +108,7 @@ export default {
|
|
|
107
108
|
},
|
|
108
109
|
|
|
109
110
|
async onAttach(focal, attach) {
|
|
110
|
-
await this.$store.dispatch('
|
|
111
|
+
await this.$store.dispatch('sseengine/INFO_ATTACH', { focal, attach });
|
|
111
112
|
await this.$store.dispatch('adapter/STATE_UPDATE', { attach: { type: true } });
|
|
112
113
|
},
|
|
113
114
|
},
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
<template>
|
|
36
36
|
<div class="fqa-chat" :style="theme">
|
|
37
37
|
<!-- Recursion -->
|
|
38
|
-
<
|
|
38
|
+
<sse-recursion :source="sseengine.info?.history" />
|
|
39
39
|
|
|
40
40
|
<!-- Produce Loading -->
|
|
41
|
-
<div class="fqa-chat-produce" v-if="
|
|
41
|
+
<div class="fqa-chat-produce" v-if="sseengine.produce && false">
|
|
42
42
|
<fqa-icon icon="LoadingOutlined" />
|
|
43
|
-
<!-- {{ $t('
|
|
44
|
-
{{
|
|
43
|
+
<!-- {{ $t('sseengine.process') }} -->
|
|
44
|
+
{{ sseengine.status[sseengine.code] }}
|
|
45
45
|
</div>
|
|
46
46
|
|
|
47
47
|
<!-- Blank -->
|
|
@@ -65,7 +65,7 @@ export default {
|
|
|
65
65
|
},
|
|
66
66
|
|
|
67
67
|
watch: {
|
|
68
|
-
'
|
|
68
|
+
'sseengine.notes': {
|
|
69
69
|
handle(value) {
|
|
70
70
|
this.$util.sup.clean();
|
|
71
71
|
},
|
|
@@ -83,16 +83,16 @@ export default {
|
|
|
83
83
|
this.$util.sup.active(target);
|
|
84
84
|
|
|
85
85
|
// Save Sup
|
|
86
|
-
await this.$store.dispatch('
|
|
86
|
+
await this.$store.dispatch('sseengine/SUP_UPDATE', target);
|
|
87
87
|
|
|
88
88
|
// Check Mobile
|
|
89
89
|
if (this.app.mobile) {
|
|
90
90
|
// Open Notes - For Mobile
|
|
91
|
-
return await this.$store.dispatch('
|
|
91
|
+
return await this.$store.dispatch('sseengine/NOTES_UPDATE', target);
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
// Get Attach
|
|
95
|
-
const { thinks, references, workflows } = this.$util.deepfind(this.
|
|
95
|
+
const { thinks, references, workflows } = this.$util.deepfind(this.sseengine.info.history, target.id);
|
|
96
96
|
|
|
97
97
|
// Get Anchor
|
|
98
98
|
const { key: anchor } = target.dataset;
|
|
@@ -101,7 +101,7 @@ export default {
|
|
|
101
101
|
const explicit = this.$util.sup.group(target, '.markdown-body');
|
|
102
102
|
|
|
103
103
|
// Update Attach
|
|
104
|
-
await this.$store.dispatch('
|
|
104
|
+
await this.$store.dispatch('sseengine/INFO_ATTACH', { focal: 'references', attach: { thinks, references, workflows }, anchor, explicit });
|
|
105
105
|
|
|
106
106
|
// Open Attach - For Web
|
|
107
107
|
await this.$store.dispatch('adapter/STATE_UPDATE', { attach: { type: true } });
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
<style lang="less" scoped>
|
|
2
|
+
.fqa-drawer {
|
|
3
|
+
& {
|
|
4
|
+
height: 100%;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
&-toper {
|
|
10
|
+
width: 100%;
|
|
11
|
+
height: @size-header;
|
|
12
|
+
border-bottom: 1px solid @color-line;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
&-container {
|
|
16
|
+
flex: 1;
|
|
17
|
+
padding: @gap;
|
|
18
|
+
word-break: break-all;
|
|
19
|
+
line-height: 1.75;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&-list {
|
|
23
|
+
&-title {
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&-content {
|
|
27
|
+
max-width: 558px;
|
|
28
|
+
padding: @gap;
|
|
29
|
+
border-radius: calc(@radiu / 2);
|
|
30
|
+
border: @color-app;
|
|
31
|
+
background-color: @color-app;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&-source {
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&-foot {
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&-references {
|
|
42
|
+
transition: all @effect;
|
|
43
|
+
overflow: hidden;
|
|
44
|
+
|
|
45
|
+
&-no {
|
|
46
|
+
// color: @color-text;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&.close {
|
|
50
|
+
height: 0;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
</style>
|
|
55
|
+
|
|
56
|
+
<template>
|
|
57
|
+
<div class="fqa-drawer">
|
|
58
|
+
<a-flex justify="center" align="center" class="fqa-drawer-toper" v-if="false">
|
|
59
|
+
<fqa-switcher
|
|
60
|
+
v-model:active="sseengine.focal"
|
|
61
|
+
:menus="[
|
|
62
|
+
{ key: 'thinks', title: $t('produce.thinks') },
|
|
63
|
+
{ key: 'references', title: $t('produce.references') },
|
|
64
|
+
// { key: 'workflows', title: $t('produce.workflows') },
|
|
65
|
+
]"
|
|
66
|
+
/>
|
|
67
|
+
</a-flex>
|
|
68
|
+
|
|
69
|
+
<div class="fqa-drawer-container scroll">
|
|
70
|
+
<!-- Thinks -->
|
|
71
|
+
<transition name="switch">
|
|
72
|
+
<fqa-lister class="fqa-drawer-thinks" v-if="sseengine.focal === `thinks`" :source="thinks">
|
|
73
|
+
<template #head="{ item }">
|
|
74
|
+
<a-avatar :size="30" class="fqa-drawer-num" :src="$util.uri(`logo.png`)" :data-key="`drawer_${item.id}`" />
|
|
75
|
+
</template>
|
|
76
|
+
<template #item="{ item }">
|
|
77
|
+
<fqa-markdown :html="item" />
|
|
78
|
+
</template>
|
|
79
|
+
</fqa-lister>
|
|
80
|
+
</transition>
|
|
81
|
+
|
|
82
|
+
<!-- References -->
|
|
83
|
+
<transition name="switch">
|
|
84
|
+
<div>
|
|
85
|
+
<!-- Show Lister -->
|
|
86
|
+
<fqa-lister class="fqa-drawer-references" v-if="sseengine.focal === `references`" :source="groupBeShow">
|
|
87
|
+
<template #head="{ item }">
|
|
88
|
+
<a-avatar :size="30" class="fqa-drawer-num" :data-key="`drawer_${item.id}`">
|
|
89
|
+
<span class="fqa-drawer-references-no">{{ item.id }}</span>
|
|
90
|
+
</a-avatar>
|
|
91
|
+
<template v-if="false">
|
|
92
|
+
<a-avatar :size="30" class="fqa-drawer-num" v-if="item.file_url" :src="item.file_url" :data-key="`drawer_${item.id}`" />
|
|
93
|
+
<a-avatar :size="30" class="fqa-drawer-num" v-else>
|
|
94
|
+
<fqa-icon :size="20" icon="ReadOutlined" />
|
|
95
|
+
</a-avatar>
|
|
96
|
+
</template>
|
|
97
|
+
</template>
|
|
98
|
+
<template #item="{ item }">
|
|
99
|
+
<a-space direction="vertical" class="fqa-drawer-list">
|
|
100
|
+
<div class="fqa-drawer-list-title" v-if="item.title">{{ item.title }}</div>
|
|
101
|
+
<fqa-markdown class="fqa-drawer-list-content markdown-body-drawer" :html="item.content" />
|
|
102
|
+
<a-space class="fqa-drawer-foot">
|
|
103
|
+
<div class="fqa-drawer-list-source" v-if="item.source">
|
|
104
|
+
<fqa-link :href="linkPositions(item)" target="_blank" mode="aovery" :proxy="{ positions: item.position }">{{ item.source }}</fqa-link>
|
|
105
|
+
</div>
|
|
106
|
+
<span>{{ item.announcement_date }}</span>
|
|
107
|
+
</a-space>
|
|
108
|
+
</a-space>
|
|
109
|
+
</template>
|
|
110
|
+
</fqa-lister>
|
|
111
|
+
|
|
112
|
+
<!-- Show Others -->
|
|
113
|
+
<a-divider orientation="left" class="fqa-drawer-more" v-if="groupUnShow.length" @click="open = !open">
|
|
114
|
+
<a-space>
|
|
115
|
+
<span>查看更多</span>
|
|
116
|
+
<fqa-arrow :class="{ open }" />
|
|
117
|
+
</a-space>
|
|
118
|
+
</a-divider>
|
|
119
|
+
|
|
120
|
+
<!-- Show Others -->
|
|
121
|
+
<fqa-lister class="fqa-drawer-references" :class="{ close: !open }" v-if="sseengine.focal === `references`" :source="groupUnShow">
|
|
122
|
+
<template #head="{ item }">
|
|
123
|
+
<a-avatar :size="30" class="fqa-drawer-num" v-if="item.file_url" :src="item.file_url" :data-key="`drawer_${item.id}`">
|
|
124
|
+
{{ item.id }}
|
|
125
|
+
</a-avatar>
|
|
126
|
+
<a-avatar :size="30" class="fqa-drawer-num" v-else>
|
|
127
|
+
<fqa-icon :size="20" icon="ReadOutlined" />
|
|
128
|
+
</a-avatar>
|
|
129
|
+
</template>
|
|
130
|
+
<template #item="{ item }">
|
|
131
|
+
<a-space direction="vertical" class="fqa-drawer-list">
|
|
132
|
+
<div class="fqa-drawer-list-title" v-if="item.title">{{ item.title }}</div>
|
|
133
|
+
<fqa-markdown class="fqa-drawer-list-content markdown-body-drawer" :html="item.content" />
|
|
134
|
+
<div class="fqa-drawer-list-source" v-if="item.source">
|
|
135
|
+
<fqa-link :href="linkPositions(item)" target="_blank" mode="aovery" :proxy="{ positions: item.position }">{{ item.source }}</fqa-link>
|
|
136
|
+
</div>
|
|
137
|
+
</a-space>
|
|
138
|
+
</template>
|
|
139
|
+
</fqa-lister>
|
|
140
|
+
</div>
|
|
141
|
+
</transition>
|
|
142
|
+
|
|
143
|
+
<!-- Workflows -->
|
|
144
|
+
<transition name="switch">
|
|
145
|
+
<fqa-lister class="fqa-drawer-workflows" v-if="sseengine.focal === `workflows`" :source="workflows">
|
|
146
|
+
<template #head="{ item }">
|
|
147
|
+
<a-avatar :size="30" class="fqa-drawer-num" v-if="item.file_url" :src="item.file_url" :data-key="`drawer_${item.id}`" />
|
|
148
|
+
<a-avatar :size="30" class="fqa-drawer-num" v-else>
|
|
149
|
+
<fqa-icon :size="20" icon="BranchesOutlined" />
|
|
150
|
+
</a-avatar>
|
|
151
|
+
</template>
|
|
152
|
+
<template #item="{ item }">
|
|
153
|
+
<a-space direction="vertical" class="fqa-drawer-list">
|
|
154
|
+
<div class="fqa-drawer-list-title" v-if="item.workflow_name">{{ item.workflow_name }}</div>
|
|
155
|
+
<fqa-markdown :html="item.content" />
|
|
156
|
+
</a-space>
|
|
157
|
+
</template>
|
|
158
|
+
</fqa-lister>
|
|
159
|
+
</transition>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
</template>
|
|
163
|
+
|
|
164
|
+
<script>
|
|
165
|
+
import App from '@/App.vue';
|
|
166
|
+
|
|
167
|
+
export default {
|
|
168
|
+
props: {
|
|
169
|
+
thinks: {
|
|
170
|
+
type: [Array],
|
|
171
|
+
default: [],
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
references: {
|
|
175
|
+
type: [Array],
|
|
176
|
+
default: [],
|
|
177
|
+
},
|
|
178
|
+
|
|
179
|
+
workflows: {
|
|
180
|
+
type: [Array],
|
|
181
|
+
default: [],
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
|
|
185
|
+
data() {
|
|
186
|
+
return {
|
|
187
|
+
open: true,
|
|
188
|
+
};
|
|
189
|
+
},
|
|
190
|
+
|
|
191
|
+
watch: {
|
|
192
|
+
'sseengine.anchor': {
|
|
193
|
+
async handler(value) {
|
|
194
|
+
// No Value
|
|
195
|
+
if (!value) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Wait 1 Second
|
|
200
|
+
await this.$util.kitchen.sleep(4);
|
|
201
|
+
|
|
202
|
+
// Scrolling
|
|
203
|
+
this.$util.scrolling(`[data-key="drawer_${value}"]`, 'start');
|
|
204
|
+
|
|
205
|
+
// Reset Zero
|
|
206
|
+
this.$store.dispatch('sseengine/STATE_UPDATE', { anchor: 0 });
|
|
207
|
+
},
|
|
208
|
+
|
|
209
|
+
deep: true,
|
|
210
|
+
immediate: true,
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
computed: {
|
|
215
|
+
groupBeShow() {
|
|
216
|
+
if (this.sseengine.focal === `references`) {
|
|
217
|
+
return this.references.filter(({ id }) => this.sseengine.explicit.includes(id + ''));
|
|
218
|
+
}
|
|
219
|
+
return [];
|
|
220
|
+
},
|
|
221
|
+
groupUnShow() {
|
|
222
|
+
if (this.sseengine.focal === `references`) {
|
|
223
|
+
return this.references.filter(({ id }) => !this.sseengine.explicit.includes(id + ''));
|
|
224
|
+
}
|
|
225
|
+
return [];
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
|
|
229
|
+
methods: {
|
|
230
|
+
// Hard Code for Positions
|
|
231
|
+
linkPositions({ file_type, file_url, position }) {
|
|
232
|
+
// No Type No Url
|
|
233
|
+
if (!file_type || !file_url) {
|
|
234
|
+
return 'javascript:void(0)';
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// Clone as Empty
|
|
238
|
+
let cloner = !position || !position.length ? undefined : JSON.parse(JSON.stringify(position));
|
|
239
|
+
|
|
240
|
+
// Cut Position to 2
|
|
241
|
+
if (cloner) {
|
|
242
|
+
cloner = cloner.map(item => {
|
|
243
|
+
if (item.pos) {
|
|
244
|
+
item.pos = item.pos.map(val => (val - 0).toFixed(4));
|
|
245
|
+
}
|
|
246
|
+
return item;
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
const positions = cloner ? `&positions=${this.$util.base64.compressToEncodedURIComponent(JSON.stringify(cloner))}` : '';
|
|
251
|
+
|
|
252
|
+
return `${file_url}${positions}`;
|
|
253
|
+
},
|
|
254
|
+
},
|
|
255
|
+
};
|
|
256
|
+
</script>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
.fqa-drawer {
|
|
2
|
+
&-num {
|
|
3
|
+
color: @color-text;
|
|
4
|
+
background-color: @color-line;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
&-more {
|
|
8
|
+
& {
|
|
9
|
+
border-block-start: 0 rgba(255, 255, 255, 0.1) !important;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.ant-divider-inner-text {
|
|
13
|
+
cursor: pointer;
|
|
14
|
+
color: @color-text;
|
|
15
|
+
font-size: 14px;
|
|
16
|
+
font-weight: normal;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.markdown-body-drawer {
|
|
22
|
+
table {
|
|
23
|
+
display: block; /* 让 table 可滚动 */
|
|
24
|
+
overflow: auto; /* 同时支持横向 + 纵向滚动 */
|
|
25
|
+
max-width: 528px;
|
|
26
|
+
max-height: 728px; /* 限制高度,触发纵向滚动 */
|
|
27
|
+
border-collapse: collapse;
|
|
28
|
+
border-width: 0;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
thead th {
|
|
32
|
+
position: sticky;
|
|
33
|
+
top: 0;
|
|
34
|
+
z-index: 1;
|
|
35
|
+
white-space: nowrap;
|
|
36
|
+
background-color: @color-app;
|
|
37
|
+
}
|
|
38
|
+
}
|