@next-bricks/ai-portal 0.40.2 → 0.41.1
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/bricks.json +20 -18
- package/dist/chunks/2608.33f641c9.js +2 -0
- package/dist/chunks/2608.33f641c9.js.map +1 -0
- package/dist/chunks/{8616.ceae4e7b.js → 3689.2a3f6d8c.js} +3 -3
- package/dist/chunks/{8616.ceae4e7b.js.map → 3689.2a3f6d8c.js.map} +1 -1
- package/dist/chunks/chat-box.9c68697e.js +2 -0
- package/dist/chunks/chat-box.9c68697e.js.map +1 -0
- package/dist/chunks/elevo-logo.dc137a3c.js +2 -0
- package/dist/chunks/elevo-logo.dc137a3c.js.map +1 -0
- package/dist/chunks/elevo-sidebar.08b20757.js +3 -0
- package/dist/chunks/elevo-sidebar.08b20757.js.map +1 -0
- package/dist/chunks/goal-card-list.5f61cd91.js +3 -0
- package/dist/chunks/{goal-card-list.7a0aecb2.js.map → goal-card-list.5f61cd91.js.map} +1 -1
- package/dist/chunks/{home-container.9f9ca1ca.js → home-container.211ba989.js} +2 -2
- package/dist/chunks/{home-container.9f9ca1ca.js.map → home-container.211ba989.js.map} +1 -1
- package/dist/chunks/{main.c1de70a9.js → main.c7c296c8.js} +2 -2
- package/dist/chunks/{main.c1de70a9.js.map → main.c7c296c8.js.map} +1 -1
- package/dist/chunks/page-container.099db5b9.js +2 -0
- package/dist/chunks/{page-container.a637a6c4.js.map → page-container.099db5b9.js.map} +1 -1
- package/dist/examples.json +14 -11
- package/dist/index.663fc8d5.js +2 -0
- package/dist/index.663fc8d5.js.map +1 -0
- package/dist/manifest.json +140 -131
- package/dist/types.json +254 -249
- package/dist-types/bootstrap.d.ts +1 -0
- package/dist-types/elevo-logo/index.d.ts +9 -0
- package/dist-types/elevo-logo/index.spec.d.ts +1 -0
- package/docs/elevo-logo.md +9 -0
- package/package.json +2 -2
- package/dist/chunks/8176.fe523596.js +0 -2
- package/dist/chunks/8176.fe523596.js.map +0 -1
- package/dist/chunks/chat-box.6ae456b3.js +0 -2
- package/dist/chunks/chat-box.6ae456b3.js.map +0 -1
- package/dist/chunks/elevo-sidebar.199ad1c6.js +0 -3
- package/dist/chunks/elevo-sidebar.199ad1c6.js.map +0 -1
- package/dist/chunks/goal-card-list.7a0aecb2.js +0 -3
- package/dist/chunks/page-container.a637a6c4.js +0 -2
- package/dist/index.7b53be7d.js +0 -2
- package/dist/index.7b53be7d.js.map +0 -1
- /package/dist/chunks/{8616.ceae4e7b.js.LICENSE.txt → 3689.2a3f6d8c.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{elevo-sidebar.199ad1c6.js.LICENSE.txt → elevo-sidebar.08b20757.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{goal-card-list.7a0aecb2.js.LICENSE.txt → goal-card-list.5f61cd91.js.LICENSE.txt} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/*! For license information please see
|
|
2
|
-
"use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[8616],{26785:(e,t,i)=>{i.d(t,{Y:()=>f});var a=i(89575),n=i(18769),o=i.n(n),r=i(21302),l=i.n(r),s=i(53373),c=i.n(s),d=i(57372);const p=async(e,t)=>(await d.http.post("api/gateway/logic.llm.aiops_service/api/v1/llm/agent/flow/search",e,t)).data;var m=i(41030),u=i(99671),g=i(42965),h=i(97907),E=i(98343);const f=(0,n.forwardRef)(b);function b(e,t){let{activeId:i,actions:r,urlTemplate:s,onActionClick:d,onHistoryClick:f}=e;const b=(0,n.useRef)(null),[v,x]=(0,n.useState)(null),[y,k]=(0,n.useState)(),[w,T]=(0,n.useState)();(0,n.useEffect)((()=>{Promise.all([p({next_token:w},{interceptorParams:{ignoreLoadingBar:!0}}),new Promise((e=>setTimeout(e,500)))]).then((e=>{let[t]=e;x((e=>[...null!=e?e:[],...t.data])),k(t.next_token)})).catch((e=>{console.error("Error loading chat history:",e)}))}),[w]);const A=(0,n.useMemo)((()=>{const e=new Map,t=l()(),i=t.clone().startOf("day"),a=i.clone().subtract(1,"day"),n=i.clone().subtract(7,"days"),o=i.clone().subtract(30,"days"),r=+i/1e3,s=+a/1e3,c=+n/1e3,d=+o/1e3,p=+t.clone().startOf("year")/1e3;for(const t of null!=v?v:[]){let i;i=t.startTime>=r?(0,u.t)(u.K.TODAY):t.startTime>=s?(0,u.t)(u.K.YESTERDAY):t.startTime>=c?(0,u.t)(u.K.PREVIOUS_7_DAYS):t.startTime>=d?(0,u.t)(u.K.PREVIOUS_30_DAYS):t.startTime>=p?l()(1e3*t.startTime).format("MMMM"):l()(1e3*t.startTime).format("YYYY");let a=e.get(i);a||e.set(i,a={title:i,items:[]}),a.items.push(t)}return[...e.values()]}),[v]),[O,_]=(0,n.useState)(null),N=(0,n.useRef)(null);(0,n.useEffect)((()=>{const e=N.current,t=b.current;if(!e||!y||!t)return;const i=new IntersectionObserver((e=>{for(const t of e)t.isIntersecting&&T(y)}),{root:t});return i.observe(e),()=>{i.disconnect()}}),[y]);const S=(0,n.useRef)(0),C=(0,n.useCallback)((async()=>{try{const e=++S.current,t=await p({},{interceptorParams:{ignoreLoadingBar:!0}});if(e!==S.current)return;x((e=>{const i=null!=e?e:[],a=t.data,n=new Set(a.map((e=>e.id))),o=new Map(a.map((e=>[e.id,e])));let r=!1,l=!1,s=!0;for(const e of i){const t=o.get(e.id);if(!t)break;if(r=!0,l=s&&t!==a[0]||!(0,m.isEqual)(t,e),l)break;s=!1}return r?l?[...a,...i.filter((e=>!n.has(e.id)))]:e:(k(t.next_token),a)}))}catch(e){console.error("Error pulling chat history:",e)}}),[]);return(0,n.useImperativeHandle)(t,(()=>({pull:C})),[C]),v?o().createElement("div",{className:"history",ref:b},o().createElement("ul",null,A.map((e=>o().createElement("li",{key:e.title,className:"group"},o().createElement("div",{className:"group-title"},e.title),o().createElement("ul",{className:"items"},e.items.map((e=>o().createElement("li",{key:e.id},o().createElement(g.EM,(0,a.A)({className:c()("item",{"actions-active":e.id===O,active:e.id===i}),onClick:f},s?{url:(0,E.Q)(s,e)}:null),o().createElement("div",{className:"item-title",title:e.title},e.title),o().createElement(g.qu,{className:"actions",actions:r,onActionClick:t=>{d({action:t.detail,item:e})},onVisibleChange:t=>{_(t.detail?e.id:null)}}),!h.QB.includes(e.state)&&o().createElement("div",{className:"working"})))))))))),y&&o().createElement("div",{className:"load-more",ref:N},o().createElement(g.Bj,{lib:"antd",icon:"loading-3-quarters",spinning:!0}))):o().createElement("div",{className:"history"},o().createElement("div",{className:"loading"},o().createElement(g.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0})))}},42965:(e,t,i)=>{i.d(t,{Bj:()=>n,EM:()=>o,JQ:()=>l,Py:()=>c,qb:()=>r,qu:()=>s});var a=i(11280);const n=(0,a.wrapBrick)("eo-icon"),o=(0,a.wrapBrick)("eo-link"),r=(0,a.wrapBrick)("eo-dropdown-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"}),l=(0,a.wrapBrick)("eo-easyops-avatar"),s=(0,a.wrapBrick)("eo-mini-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"}),c=(0,a.wrapBrick)("ai-portal.icon-button")},45646:(e,t,i)=>{i.d(t,{D:()=>E});var a=i(89575),n=i(18769),o=i.n(n),r=i(53373),l=i.n(r),s=i(57372);const c=async(e,t)=>(await s.http.get("api/gateway/logic.llm.aiops_service/api/v1/elevo/conversations",{...t,params:e})).data;var d=i(41030),p=i(99671),m=i(42965),u=i(97907),g=i(98343);const h={lib:"fa",icon:"plus"},E=(0,n.forwardRef)(f);function f(e,t){let{historyActiveId:i,historyActions:r,historyUrlTemplate:E,projectActiveId:f,projectUrlTemplate:b,projectActions:v,onActionClick:x,onHistoryClick:y,onProjectActionClick:k,onAddProject:w}=e;const T=(0,n.useRef)(null),[A,O]=(0,n.useState)(null),[_,N]=(0,n.useState)(!1),[S,C]=(0,n.useState)(!1),[I,R]=(0,n.useState)(null),[P,Y]=(0,n.useState)(!1),[U,D]=(0,n.useState)(),[j,M]=(0,n.useState)(),[B,V]=(0,n.useState)(!1),L=(0,n.useRef)(!0),[H,J]=(0,n.useState)([]),q=(0,n.useMemo)((()=>[...null!=r?r:[],{isDropdown:!0,text:(0,p.t)(p.K.MOVE_TO_PROJECT),disabled:!(null!=A&&A.length),items:null==A?void 0:A.map((e=>({event:"move",key:e.instanceId,text:e.name,project:e})))}]),[r,A]);(0,n.useEffect)((()=>{(async()=>{try{const e=await(async()=>(await s.http.get("api/gateway/logic.llm.aiops_service/api/v1/elevo/projects",{params:{page:1,page_size:3e3}})).data)();O(e.list)}catch(e){console.error("Error loading projects:",e),C(!0),O([])}})()}),[]),(0,n.useEffect)((()=>{Promise.all([c({token:j,limit:30,onlyOwner:!0,onlyUnrelatedProject:!0},{interceptorParams:{ignoreLoadingBar:!0}}),...L.current?[]:[new Promise((e=>setTimeout(e,500)))]]).then((e=>{let[t]=e;L.current=!1,R((e=>[...null!=e?e:[],...t.conversations])),D(t.nextToken)})).catch((e=>{console.error("Error loading chat history:",e),R([]),V(!0)}))}),[j]);const[z,G]=(0,n.useState)(null),K=(0,n.useRef)(null);(0,n.useEffect)((()=>{const e=K.current,t=T.current;if(!e||!U||!t||P)return;const i=new IntersectionObserver((e=>{for(const t of e)t.isIntersecting&&M(U)}),{root:t});return i.observe(e),()=>{i.disconnect()}}),[U,P]);const W=(0,n.useRef)(0),Q=(0,n.useCallback)((async()=>{try{const e=++W.current,t=await c({limit:30,onlyOwner:!0,onlyUnrelatedProject:!0},{interceptorParams:{ignoreLoadingBar:!0}});if(e!==W.current)return;R((e=>{const i=null!=e?e:[],a=t.conversations,n=new Set(a.map((e=>e.conversationId))),o=new Map(a.map((e=>[e.conversationId,e])));let r=!1,l=!1,s=!0;for(const e of i){const t=o.get(e.conversationId);if(!t)break;if(r=!0,l=s&&t!==a[0]||!(0,d.isEqual)(t,e),l)break;s=!1}return r?l?[...a,...i.filter((e=>!n.has(e.conversationId)))]:e:(D(t.nextToken),a)}))}catch(e){console.error("Error pulling chat history:",e)}}),[]);(0,n.useImperativeHandle)(t,(()=>({pull:Q,removeProject:e=>{O((t=>t?t.filter((t=>t.instanceId!==e)):t))},addProject:e=>{O((t=>t?[...t,e]:[e]))},moveConversation:e=>{J((t=>[...t,e]))}})),[Q]);const F=(0,n.useMemo)((()=>I&&I.length?I.filter((e=>!H.includes(e.conversationId))):I),[I,H]);return o().createElement("div",{className:"history",ref:T},o().createElement("div",{className:l()("section",{collapsed:_})},o().createElement("div",{className:"section-title"},o().createElement("div",{className:"section-label",onClick:()=>N((e=>!e))},(0,p.t)(p.K.PROJECTS),o().createElement(m.Bj,{lib:"fa",icon:"angle-down"})),o().createElement(m.Py,{icon:h,variant:"mini-light",tooltip:(0,p.t)(p.K.CREATE_PROJECT),onClick:w})),o().createElement("ul",{className:"items"},S?o().createElement("li",{className:"error"},"Failed to load project"):A?A.map((e=>o().createElement("li",{key:e.instanceId},o().createElement(m.EM,(0,a.A)({className:l()("item",{"actions-active":e.instanceId===z,active:e.instanceId===f}),onClick:y},b?{url:(0,g.Q)(b,e)}:null),o().createElement("div",{className:"item-title",title:e.name},e.name||(0,p.t)(p.K.UNNAMED)),o().createElement(m.qu,{className:"actions",actions:v,onActionClick:t=>{k({action:t.detail,project:e})},onVisibleChange:t=>{G(t.detail?e.instanceId:null)}}))))):o().createElement("li",{className:"loading"},o().createElement(m.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0})))),o().createElement("div",{className:l()("section",{collapsed:P})},o().createElement("div",{className:"section-title"},o().createElement("div",{className:"section-label",onClick:()=>Y((e=>!e))},(0,p.t)(p.K.HISTORY),o().createElement(m.Bj,{lib:"fa",icon:"angle-down"}))),o().createElement("ul",{className:"items"},F?F.map((e=>o().createElement("li",{key:e.conversationId},o().createElement(m.EM,(0,a.A)({className:l()("item",{"actions-active":e.conversationId===z,active:e.conversationId===i}),onClick:y},E?{url:(0,g.Q)(E,e)}:null),o().createElement("div",{className:"item-title",title:e.title},e.title||(0,p.t)(p.K.UNTITLED)),o().createElement(m.qu,{className:"actions",actions:q,onActionClick:t=>{x({action:t.detail,item:e})},onVisibleChange:t=>{G(t.detail?e.conversationId:null)}}),!u.QB.includes(e.state)&&o().createElement("div",{className:"working"}))))):o().createElement("li",{className:"loading"},o().createElement(m.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0})),B?o().createElement("li",{className:"error"},"Failed to load chat history"):null),!P&&U&&o().createElement("div",{className:"load-more",ref:K},o().createElement(m.Bj,{lib:"antd",icon:"loading-3-quarters",spinning:!0}))))}},48688:(e,t,i)=>{e.exports=i.p+"images/e47076cc.png"},61408:(e,t,i)=>{i.d(t,{A:()=>l});var a=i(36758),n=i.n(a),o=i(40935),r=i.n(o)()(n());r.push([e.id,':host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.sidebar{position:relative;z-index:1;width:260px;height:100%;background:rgba(246,247,249,0.5);border:1px solid rgba(255,255,255,0.3);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:23px 11px 0;display:flex;flex-direction:column;transition:transform 0.3s ease-in-out}.logo-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;margin-left:4px}.logo-link::part(link){display:block}.logo{vertical-align:middle}.new-chat::part(link){display:flex;gap:0;align-items:center;color:var(--elevo-color-brand);font-size:14px;text-align:left;cursor:pointer}.sidebar .new-chat::part(link){background:#f0f4ff;border-radius:8px;border:1px solid #c9d7ff;padding:9px 13px;font-weight:500;margin-bottom:16px}.sidebar .new-chat::part(link):hover{background:rgba(201,215,255,0.5)}.new-chat-icon{font-size:16px;margin-right:5px}.footer{border-top:1px solid rgba(0,0,0,0.04);padding:9px 12px;margin:0 -12px}.dropdown{display:block}.account{background:none;border:none;border-radius:8px;padding:6px 10px;display:block;width:100%;text-align:left;cursor:pointer}.account:hover{background:rgba(0,0,0,0.04)}.alternative{position:fixed;top:8px;left:8px;padding:6px 10px 6px 8px;display:flex;align-items:center;opacity:0;z-index:1;transition:opacity 0.2s ease-in-out;background:rgba(255,255,255,0);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.alternative .new-chat::part(link){padding:4px;margin-left:16px;font-size:12px}.alternative .new-chat::part(link):hover{color:#7891ff}.alternative .new-chat::part(link):active{color:#0911b3}.container{width:270px;padding:10px 0 10px 10px;height:100%;transition:width 0.3s ease-in-out,padding 0.3s ease-in-out}.container.collapsed{width:0;padding:10px 0;overflow:visible}.container.collapsed .sidebar{transform:translateX(-100%)}.container.collapsed .alternative{opacity:1}:host([behavior="drawer"]){z-index:1;width:0}:host(:not([behavior="drawer"])) .alternative .new-chat{display:none}.mask{position:fixed;top:0;right:0;bottom:0;left:0}.links{border-bottom:1px solid rgba(0,0,0,0.06);padding-bottom:16px;margin-bottom:16px}.link{display:block}.link + .link{margin-top:4px}.link::part(link){display:flex;gap:0;align-items:center;padding:7px 10px;border-radius:8px;color:#000}.link::part(link):hover{background:rgba(0,0,0,0.04)}.link .icon{font-size:16px;margin-right:10px}.link .title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history{flex:1;min-height:0;overflow-y:auto;margin:0 -12px;padding:0 12px}.history ul{list-style:none;margin:0;padding:0}.history .section + .section{margin-top:14px}.history .section-title{display:flex;align-items:center;justify-content:space-between;height:30px;margin-bottom:6px;padding:0 8px}.history .section-label{display:flex;align-items:center;height:24px;padding:0 8px;margin-left:-8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-size:12px;color:#8c8c8c;border-radius:8px}.history .section-label eo-icon{vertical-align:middle;margin-left:6px;transition:transform 0.2s ease-in-out}.history .section-label:hover{background:rgba(0,0,0,0.04)}.history .collapsed > ul{display:none}.history .collapsed .section-label eo-icon{transform:rotate(-90deg)}.history .error,.history .loading{display:flex;align-items:center;height:36px;padding:0 8px}.history .loading{justify-content:center}.history .error{color:var(--color-error)}.history .group + .group{margin-top:15px}.history .group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.history .item{display:block}.history .item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.history .item.active::part(link){background:rgba(0,0,0,0.06)}.history .item.actions-active::part(link),.history .item::part(link):hover{background:rgba(0,0,0,0.04)}.history .item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history .actions{cursor:auto}.history .item:not(:hover):not(.actions-active) .actions{display:none}.history .working{width:8px;height:8px;border-radius:8px;background:var(--elevo-color-brand);margin:0 7px}.history .item.actions-active .working,.history .item:hover .working,.history .item.active .working{display:none}.history .load-more{display:flex;justify-content:center;align-items:center;height:36px}',""]);const l=r.toString()},99671:(e,t,i)=>{i.d(t,{I:()=>s,K:()=>n,NS:()=>l,t:()=>c});var a=i(87117);let n=function(e){return e.NEW_CHAT="NEW_CHAT",e.LOGOUT="LOGOUT",e.TODAY="TODAY",e.YESTERDAY="YESTERDAY",e.PREVIOUS_7_DAYS="PREVIOUS_7_DAYS",e.PREVIOUS_30_DAYS="PREVIOUS_30_DAYS",e.SWITCH_LANGUAGE="SWITCH_LANGUAGE",e.PROJECTS="PROJECTS",e.HISTORY="HISTORY",e.CREATE_PROJECT="CREATE_PROJECT",e.MOVE_TO_PROJECT="MOVE_TO_PROJECT",e.UNTITLED="UNTITLED",e.UNNAMED="UNNAMED",e}({});const o={[n.NEW_CHAT]:"New chat",[n.LOGOUT]:"Logout",[n.TODAY]:"Today",[n.YESTERDAY]:"Yesterday",[n.PREVIOUS_7_DAYS]:"Previous 7 days",[n.PREVIOUS_30_DAYS]:"Previous 30 days",[n.SWITCH_LANGUAGE]:"中文",[n.PROJECTS]:"Project management",[n.HISTORY]:"Chat history",[n.CREATE_PROJECT]:"Create project",[n.MOVE_TO_PROJECT]:"Move to project",[n.UNTITLED]:"Untitled",[n.UNNAMED]:"Unnamed"},r={[n.NEW_CHAT]:"新对话",[n.LOGOUT]:"登出",[n.TODAY]:"今天",[n.YESTERDAY]:"昨天",[n.PREVIOUS_7_DAYS]:"过去7天",[n.PREVIOUS_30_DAYS]:"过去30天",[n.SWITCH_LANGUAGE]:"English",[n.PROJECTS]:"项目管理",[n.HISTORY]:"历史对话",[n.CREATE_PROJECT]:"创建项目",[n.MOVE_TO_PROJECT]:"移动到项目",[n.UNTITLED]:"无标题",[n.UNNAMED]:"未命名"},l="bricks/ai-portal/elevo-sidebar",s={en:o,zh:r},c=a.i18n.getFixedT(null,l)}}]);
|
|
3
|
-
//# sourceMappingURL=
|
|
1
|
+
/*! For license information please see 3689.2a3f6d8c.js.LICENSE.txt */
|
|
2
|
+
"use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[3689],{26785:(e,t,i)=>{i.d(t,{Y:()=>f});var a=i(89575),n=i(18769),o=i.n(n),r=i(21302),l=i.n(r),s=i(53373),c=i.n(s),d=i(57372);const p=async(e,t)=>(await d.http.post("api/gateway/logic.llm.aiops_service/api/v1/llm/agent/flow/search",e,t)).data;var m=i(41030),u=i(99671),g=i(42965),h=i(97907),E=i(98343);const f=(0,n.forwardRef)(b);function b(e,t){let{activeId:i,actions:r,urlTemplate:s,onActionClick:d,onHistoryClick:f}=e;const b=(0,n.useRef)(null),[v,x]=(0,n.useState)(null),[y,k]=(0,n.useState)(),[w,T]=(0,n.useState)();(0,n.useEffect)((()=>{Promise.all([p({next_token:w},{interceptorParams:{ignoreLoadingBar:!0}}),new Promise((e=>setTimeout(e,500)))]).then((e=>{let[t]=e;x((e=>[...null!=e?e:[],...t.data])),k(t.next_token)})).catch((e=>{console.error("Error loading chat history:",e)}))}),[w]);const A=(0,n.useMemo)((()=>{const e=new Map,t=l()(),i=t.clone().startOf("day"),a=i.clone().subtract(1,"day"),n=i.clone().subtract(7,"days"),o=i.clone().subtract(30,"days"),r=+i/1e3,s=+a/1e3,c=+n/1e3,d=+o/1e3,p=+t.clone().startOf("year")/1e3;for(const t of null!=v?v:[]){let i;i=t.startTime>=r?(0,u.t)(u.K.TODAY):t.startTime>=s?(0,u.t)(u.K.YESTERDAY):t.startTime>=c?(0,u.t)(u.K.PREVIOUS_7_DAYS):t.startTime>=d?(0,u.t)(u.K.PREVIOUS_30_DAYS):t.startTime>=p?l()(1e3*t.startTime).format("MMMM"):l()(1e3*t.startTime).format("YYYY");let a=e.get(i);a||e.set(i,a={title:i,items:[]}),a.items.push(t)}return[...e.values()]}),[v]),[O,_]=(0,n.useState)(null),N=(0,n.useRef)(null);(0,n.useEffect)((()=>{const e=N.current,t=b.current;if(!e||!y||!t)return;const i=new IntersectionObserver((e=>{for(const t of e)t.isIntersecting&&T(y)}),{root:t});return i.observe(e),()=>{i.disconnect()}}),[y]);const S=(0,n.useRef)(0),C=(0,n.useCallback)((async()=>{try{const e=++S.current,t=await p({},{interceptorParams:{ignoreLoadingBar:!0}});if(e!==S.current)return;x((e=>{const i=null!=e?e:[],a=t.data,n=new Set(a.map((e=>e.id))),o=new Map(a.map((e=>[e.id,e])));let r=!1,l=!1,s=!0;for(const e of i){const t=o.get(e.id);if(!t)break;if(r=!0,l=s&&t!==a[0]||!(0,m.isEqual)(t,e),l)break;s=!1}return r?l?[...a,...i.filter((e=>!n.has(e.id)))]:e:(k(t.next_token),a)}))}catch(e){console.error("Error pulling chat history:",e)}}),[]);return(0,n.useImperativeHandle)(t,(()=>({pull:C})),[C]),v?o().createElement("div",{className:"history",ref:b},o().createElement("ul",null,A.map((e=>o().createElement("li",{key:e.title,className:"group"},o().createElement("div",{className:"group-title"},e.title),o().createElement("ul",{className:"items"},e.items.map((e=>o().createElement("li",{key:e.id},o().createElement(g.EM,(0,a.A)({className:c()("item",{"actions-active":e.id===O,active:e.id===i}),onClick:f},s?{url:(0,E.Q)(s,e)}:null),o().createElement("div",{className:"item-title",title:e.title},e.title),o().createElement(g.qu,{className:"actions",actions:r,onActionClick:t=>{d({action:t.detail,item:e})},onVisibleChange:t=>{_(t.detail?e.id:null)}}),!h.QB.includes(e.state)&&o().createElement("div",{className:"working"})))))))))),y&&o().createElement("div",{className:"load-more",ref:N},o().createElement(g.Bj,{lib:"antd",icon:"loading-3-quarters",spinning:!0}))):o().createElement("div",{className:"history"},o().createElement("div",{className:"loading"},o().createElement(g.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0})))}},42965:(e,t,i)=>{i.d(t,{Bj:()=>n,EM:()=>o,JQ:()=>l,Py:()=>c,qb:()=>r,qu:()=>s});var a=i(11280);const n=(0,a.wrapBrick)("eo-icon"),o=(0,a.wrapBrick)("eo-link"),r=(0,a.wrapBrick)("eo-dropdown-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"}),l=(0,a.wrapBrick)("eo-easyops-avatar"),s=(0,a.wrapBrick)("eo-mini-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"}),c=(0,a.wrapBrick)("ai-portal.icon-button")},45646:(e,t,i)=>{i.d(t,{D:()=>E});var a=i(89575),n=i(18769),o=i.n(n),r=i(53373),l=i.n(r),s=i(57372);const c=async(e,t)=>(await s.http.get("api/gateway/logic.llm.aiops_service/api/v1/elevo/conversations",{...t,params:e})).data;var d=i(41030),p=i(99671),m=i(42965),u=i(97907),g=i(98343);const h={lib:"fa",icon:"plus"},E=(0,n.forwardRef)(f);function f(e,t){let{historyActiveId:i,historyActions:r,historyUrlTemplate:E,projectActiveId:f,projectUrlTemplate:b,projectActions:v,onActionClick:x,onHistoryClick:y,onProjectActionClick:k,onAddProject:w}=e;const T=(0,n.useRef)(null),[A,O]=(0,n.useState)(null),[_,N]=(0,n.useState)(!1),[S,C]=(0,n.useState)(!1),[I,R]=(0,n.useState)(null),[P,Y]=(0,n.useState)(!1),[U,D]=(0,n.useState)(),[j,M]=(0,n.useState)(),[B,V]=(0,n.useState)(!1),L=(0,n.useRef)(!0),[H,J]=(0,n.useState)([]),q=(0,n.useMemo)((()=>[...null!=r?r:[],{isDropdown:!0,text:(0,p.t)(p.K.MOVE_TO_PROJECT),disabled:!(null!=A&&A.length),items:null==A?void 0:A.map((e=>({event:"move",key:e.instanceId,text:e.name,project:e})))}]),[r,A]);(0,n.useEffect)((()=>{(async()=>{try{const e=await(async()=>(await s.http.get("api/gateway/logic.llm.aiops_service/api/v1/elevo/projects",{params:{page:1,page_size:3e3}})).data)();O(e.list)}catch(e){console.error("Error loading projects:",e),C(!0),O([])}})()}),[]),(0,n.useEffect)((()=>{Promise.all([c({token:j,limit:30,onlyOwner:!0,onlyUnrelatedProject:!0},{interceptorParams:{ignoreLoadingBar:!0}}),...L.current?[]:[new Promise((e=>setTimeout(e,500)))]]).then((e=>{let[t]=e;L.current=!1,R((e=>[...null!=e?e:[],...t.conversations])),D(t.nextToken)})).catch((e=>{console.error("Error loading chat history:",e),R([]),V(!0)}))}),[j]);const[z,G]=(0,n.useState)(null),K=(0,n.useRef)(null);(0,n.useEffect)((()=>{const e=K.current,t=T.current;if(!e||!U||!t||P)return;const i=new IntersectionObserver((e=>{for(const t of e)t.isIntersecting&&M(U)}),{root:t});return i.observe(e),()=>{i.disconnect()}}),[U,P]);const W=(0,n.useRef)(0),Q=(0,n.useCallback)((async()=>{try{const e=++W.current,t=await c({limit:30,onlyOwner:!0,onlyUnrelatedProject:!0},{interceptorParams:{ignoreLoadingBar:!0}});if(e!==W.current)return;R((e=>{const i=null!=e?e:[],a=t.conversations,n=new Set(a.map((e=>e.conversationId))),o=new Map(a.map((e=>[e.conversationId,e])));let r=!1,l=!1,s=!0;for(const e of i){const t=o.get(e.conversationId);if(!t)break;if(r=!0,l=s&&t!==a[0]||!(0,d.isEqual)(t,e),l)break;s=!1}return r?l?[...a,...i.filter((e=>!n.has(e.conversationId)))]:e:(D(t.nextToken),a)}))}catch(e){console.error("Error pulling chat history:",e)}}),[]);(0,n.useImperativeHandle)(t,(()=>({pull:Q,removeProject:e=>{O((t=>t?t.filter((t=>t.instanceId!==e)):t))},addProject:e=>{O((t=>t?[...t,e]:[e]))},moveConversation:e=>{J((t=>[...t,e]))}})),[Q]);const F=(0,n.useMemo)((()=>I&&I.length?I.filter((e=>!H.includes(e.conversationId))):I),[I,H]);return o().createElement("div",{className:"history",ref:T},o().createElement("div",{className:l()("section",{collapsed:_})},o().createElement("div",{className:"section-title"},o().createElement("div",{className:"section-label",onClick:()=>N((e=>!e))},(0,p.t)(p.K.PROJECTS),o().createElement(m.Bj,{lib:"fa",icon:"angle-down"})),o().createElement(m.Py,{icon:h,variant:"mini-light",tooltip:(0,p.t)(p.K.CREATE_PROJECT),onClick:w})),o().createElement("ul",{className:"items"},S?o().createElement("li",{className:"error"},"Failed to load project"):A?A.map((e=>o().createElement("li",{key:e.instanceId},o().createElement(m.EM,(0,a.A)({className:l()("item",{"actions-active":e.instanceId===z,active:e.instanceId===f}),onClick:y},b?{url:(0,g.Q)(b,e)}:null),o().createElement("div",{className:"item-title",title:e.name},e.name||(0,p.t)(p.K.UNNAMED)),o().createElement(m.qu,{className:"actions",actions:v,onActionClick:t=>{k({action:t.detail,project:e})},onVisibleChange:t=>{G(t.detail?e.instanceId:null)}}))))):o().createElement("li",{className:"loading"},o().createElement(m.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0})))),o().createElement("div",{className:l()("section",{collapsed:P})},o().createElement("div",{className:"section-title"},o().createElement("div",{className:"section-label",onClick:()=>Y((e=>!e))},(0,p.t)(p.K.HISTORY),o().createElement(m.Bj,{lib:"fa",icon:"angle-down"}))),o().createElement("ul",{className:"items"},F?F.map((e=>o().createElement("li",{key:e.conversationId},o().createElement(m.EM,(0,a.A)({className:l()("item",{"actions-active":e.conversationId===z,active:e.conversationId===i}),onClick:y},E?{url:(0,g.Q)(E,e)}:null),o().createElement("div",{className:"item-title",title:e.title},e.title||(0,p.t)(p.K.UNTITLED)),o().createElement(m.qu,{className:"actions",actions:q,onActionClick:t=>{x({action:t.detail,item:e})},onVisibleChange:t=>{G(t.detail?e.conversationId:null)}}),!u.QB.includes(e.state)&&o().createElement("div",{className:"working"}))))):o().createElement("li",{className:"loading"},o().createElement(m.Bj,{lib:"antd",theme:"outlined",icon:"loading-3-quarters",spinning:!0})),B?o().createElement("li",{className:"error"},"Failed to load chat history"):null),!P&&U&&o().createElement("div",{className:"load-more",ref:K},o().createElement(m.Bj,{lib:"antd",icon:"loading-3-quarters",spinning:!0}))))}},61408:(e,t,i)=>{i.d(t,{A:()=>l});var a=i(36758),n=i.n(a),o=i(40935),r=i.n(o)()(n());r.push([e.id,':host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.sidebar{position:relative;z-index:1;width:260px;height:100%;background:rgba(246,247,249,0.5);border:1px solid rgba(255,255,255,0.3);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:23px 11px 0;display:flex;flex-direction:column;transition:transform 0.3s ease-in-out}.logo-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;margin-left:4px}.logo-link::part(link){display:block}.logo{vertical-align:middle}.new-chat::part(link){display:flex;gap:0;align-items:center;color:var(--elevo-color-brand);font-size:14px;text-align:left;cursor:pointer}.sidebar .new-chat::part(link){background:#f0f4ff;border-radius:8px;border:1px solid #c9d7ff;padding:9px 13px;font-weight:500;margin-bottom:16px}.sidebar .new-chat::part(link):hover{background:rgba(201,215,255,0.5)}.new-chat-icon{font-size:16px;margin-right:5px}.footer{border-top:1px solid rgba(0,0,0,0.04);padding:9px 12px;margin:0 -12px}.dropdown{display:block}.account{background:none;border:none;border-radius:8px;padding:6px 10px;display:block;width:100%;text-align:left;cursor:pointer}.account:hover{background:rgba(0,0,0,0.04)}.alternative{position:fixed;top:8px;left:8px;padding:6px 10px 6px 8px;display:flex;align-items:center;opacity:0;z-index:1;transition:opacity 0.2s ease-in-out;background:rgba(255,255,255,0);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.alternative .new-chat::part(link){padding:4px;margin-left:16px;font-size:12px}.alternative .new-chat::part(link):hover{color:#7891ff}.alternative .new-chat::part(link):active{color:#0911b3}.container{width:270px;padding:10px 0 10px 10px;height:100%;transition:width 0.3s ease-in-out,padding 0.3s ease-in-out}.container.collapsed{width:0;padding:10px 0;overflow:visible}.container.collapsed .sidebar{transform:translateX(-100%)}.container.collapsed .alternative{opacity:1}:host([behavior="drawer"]){z-index:1;width:0}:host(:not([behavior="drawer"])) .alternative .new-chat{display:none}.mask{position:fixed;top:0;right:0;bottom:0;left:0}.links{border-bottom:1px solid rgba(0,0,0,0.06);padding-bottom:16px;margin-bottom:16px}.link{display:block}.link + .link{margin-top:4px}.link::part(link){display:flex;gap:0;align-items:center;padding:7px 10px;border-radius:8px;color:#000}.link::part(link):hover{background:rgba(0,0,0,0.04)}.link .icon{font-size:16px;margin-right:10px}.link .title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history{flex:1;min-height:0;overflow-y:auto;margin:0 -12px;padding:0 12px}.history ul{list-style:none;margin:0;padding:0}.history .section + .section{margin-top:14px}.history .section-title{display:flex;align-items:center;justify-content:space-between;height:30px;margin-bottom:6px;padding:0 8px}.history .section-label{display:flex;align-items:center;height:24px;padding:0 8px;margin-left:-8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-size:12px;color:#8c8c8c;border-radius:8px}.history .section-label eo-icon{vertical-align:middle;margin-left:6px;transition:transform 0.2s ease-in-out}.history .section-label:hover{background:rgba(0,0,0,0.04)}.history .collapsed > ul{display:none}.history .collapsed .section-label eo-icon{transform:rotate(-90deg)}.history .error,.history .loading{display:flex;align-items:center;height:36px;padding:0 8px}.history .loading{justify-content:center}.history .error{color:var(--color-error)}.history .group + .group{margin-top:15px}.history .group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.history .item{display:block}.history .item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.history .item.active::part(link){background:rgba(0,0,0,0.06)}.history .item.actions-active::part(link),.history .item::part(link):hover{background:rgba(0,0,0,0.04)}.history .item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history .actions{cursor:auto}.history .item:not(:hover):not(.actions-active) .actions{display:none}.history .working{width:8px;height:8px;border-radius:8px;background:var(--elevo-color-brand);margin:0 7px}.history .item.actions-active .working,.history .item:hover .working,.history .item.active .working{display:none}.history .load-more{display:flex;justify-content:center;align-items:center;height:36px}',""]);const l=r.toString()},99671:(e,t,i)=>{i.d(t,{I:()=>s,K:()=>n,NS:()=>l,t:()=>c});var a=i(87117);let n=function(e){return e.NEW_CHAT="NEW_CHAT",e.LOGOUT="LOGOUT",e.TODAY="TODAY",e.YESTERDAY="YESTERDAY",e.PREVIOUS_7_DAYS="PREVIOUS_7_DAYS",e.PREVIOUS_30_DAYS="PREVIOUS_30_DAYS",e.SWITCH_LANGUAGE="SWITCH_LANGUAGE",e.PROJECTS="PROJECTS",e.HISTORY="HISTORY",e.CREATE_PROJECT="CREATE_PROJECT",e.MOVE_TO_PROJECT="MOVE_TO_PROJECT",e.UNTITLED="UNTITLED",e.UNNAMED="UNNAMED",e}({});const o={[n.NEW_CHAT]:"New chat",[n.LOGOUT]:"Logout",[n.TODAY]:"Today",[n.YESTERDAY]:"Yesterday",[n.PREVIOUS_7_DAYS]:"Previous 7 days",[n.PREVIOUS_30_DAYS]:"Previous 30 days",[n.SWITCH_LANGUAGE]:"中文",[n.PROJECTS]:"Project management",[n.HISTORY]:"Chat history",[n.CREATE_PROJECT]:"Create project",[n.MOVE_TO_PROJECT]:"Move to project",[n.UNTITLED]:"Untitled",[n.UNNAMED]:"Unnamed"},r={[n.NEW_CHAT]:"新对话",[n.LOGOUT]:"登出",[n.TODAY]:"今天",[n.YESTERDAY]:"昨天",[n.PREVIOUS_7_DAYS]:"过去7天",[n.PREVIOUS_30_DAYS]:"过去30天",[n.SWITCH_LANGUAGE]:"English",[n.PROJECTS]:"项目管理",[n.HISTORY]:"历史对话",[n.CREATE_PROJECT]:"创建项目",[n.MOVE_TO_PROJECT]:"移动到项目",[n.UNTITLED]:"无标题",[n.UNNAMED]:"未命名"},l="bricks/ai-portal/elevo-sidebar",s={en:o,zh:r},c=a.i18n.getFixedT(null,l)}}]);
|
|
3
|
+
//# sourceMappingURL=3689.2a3f6d8c.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/8616.ceae4e7b.js","mappings":"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","sources":["webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/agent_flow/searchTaskForAgentFlow.js","webpack:///./src/elevo-sidebar/LegacyChatHistory.tsx","webpack:///./src/elevo-sidebar/bricks.ts","webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/elevo/getElevoProjects.js","webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/elevo/listElevoConversations.js","webpack:///./src/elevo-sidebar/ChatHistory.tsx","webpack:///./src/elevo-sidebar/styles.shadow.css","webpack:///./src/elevo-sidebar/i18n.ts"],"sourcesContent":["import { http } from \"@next-core/http\";\n/**\n * @description 分页查询agent flow, 默认只查询最近三个页的数据\n * @endpoint POST /api/v1/llm/agent/flow/search\n */\nexport const AgentFlowApi_searchTaskForAgentFlow = async (data, options) => /**! @contract easyops.api.llm.agent_flow.SearchTaskForAgentFlow@1.0.0 */(await http.post(\"api/gateway/logic.llm.aiops_service/api/v1/llm/agent/flow/search\", data, options)).data;\n//# sourceMappingURL=searchTaskForAgentFlow.js.map","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport moment from \"moment\";\nimport classNames from \"classnames\";\nimport { AgentFlowApi_searchTaskForAgentFlow } from \"@next-api-sdk/llm-sdk\";\nimport type {\n ActionType,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport { isEqual } from \"lodash\";\nimport { K, t } from \"./i18n.js\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport { WrappedIcon, WrappedLink, WrappedMiniActions } from \"./bricks.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\nimport type { ChatHistoryRef } from \"./ChatHistory.js\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\ninterface LegacyHistoryItem {\n id: string;\n title: string;\n startTime: number;\n state?: TaskState;\n}\n\ninterface LegacyGroupedHistory {\n title: string;\n items: LegacyHistoryItem[];\n}\n\nexport interface LegacyActionClickDetail {\n action: SimpleActionType;\n item: LegacyHistoryItem;\n}\n\nexport interface LegacyChatHistoryProps {\n activeId?: string;\n urlTemplate?: string;\n actions?: ActionType[];\n onActionClick: (detail: LegacyActionClickDetail) => void;\n onHistoryClick: () => void;\n}\n\nexport const LegacyChatHistory = forwardRef(LowLevelChatHistory);\n\nexport function LowLevelChatHistory(\n {\n activeId,\n actions,\n urlTemplate,\n onActionClick,\n onHistoryClick,\n }: LegacyChatHistoryProps,\n ref: React.Ref<ChatHistoryRef>\n) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [list, setList] = useState<LegacyHistoryItem[] | null>(null);\n const [nextToken, setNextToken] = useState<string | undefined>();\n const [loadNextToken, setLoadNextToken] = useState<string | undefined>();\n\n useEffect(() => {\n Promise.all([\n AgentFlowApi_searchTaskForAgentFlow(\n { next_token: loadNextToken },\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n ),\n new Promise((resolve) => setTimeout(resolve, 500)), // Force a minimum delay\n ])\n .then(([data]) => {\n setList((prev) => [\n ...(prev ?? []),\n ...(data.data as LegacyHistoryItem[]),\n ]);\n setNextToken(data.next_token);\n })\n .catch((error) => {\n if (process.env.NODE_ENV !== \"test\") {\n // eslint-disable-next-line no-console\n console.error(\"Error loading chat history:\", error);\n }\n });\n }, [loadNextToken]);\n\n const groups = useMemo(() => {\n const groupMap = new Map<string, LegacyGroupedHistory>();\n // Group history by\n // - today\n // - yesterday\n // - previous 7 days\n // - previous 30 days\n // - each month this year\n // - each year before.\n const now = moment();\n const startOfDay = now.clone().startOf(\"day\");\n const yesterday = startOfDay.clone().subtract(1, \"day\");\n const sevenDaysAgo = startOfDay.clone().subtract(7, \"days\");\n const thirtyDaysAgo = startOfDay.clone().subtract(30, \"days\");\n const thisYear = now.clone().startOf(\"year\");\n\n const timestamps = {\n startOfDay: +startOfDay / 1000,\n yesterday: +yesterday / 1000,\n sevenDaysAgo: +sevenDaysAgo / 1000,\n thirtyDaysAgo: +thirtyDaysAgo / 1000,\n thisYear: +thisYear / 1000,\n };\n for (const item of list ?? []) {\n let groupKey: string;\n if (item.startTime >= timestamps.startOfDay) {\n groupKey = t(K.TODAY);\n } else if (item.startTime >= timestamps.yesterday) {\n groupKey = t(K.YESTERDAY);\n } else if (item.startTime >= timestamps.sevenDaysAgo) {\n groupKey = t(K.PREVIOUS_7_DAYS);\n } else if (item.startTime >= timestamps.thirtyDaysAgo) {\n groupKey = t(K.PREVIOUS_30_DAYS);\n } else if (item.startTime >= timestamps.thisYear) {\n groupKey = moment(item.startTime * 1000).format(\"MMMM\");\n } else {\n groupKey = moment(item.startTime * 1000).format(\"YYYY\");\n }\n let group = groupMap.get(groupKey);\n if (!group) {\n groupMap.set(groupKey, (group = { title: groupKey, items: [] }));\n }\n group.items.push(item);\n }\n\n return [...groupMap.values()];\n }, [list]);\n\n const [actionsVisible, setActionsVisible] = useState<string | null>(null);\n\n const nextRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const next = nextRef.current;\n const root = rootRef.current;\n if (!next || !nextToken || !root) {\n return;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setLoadNextToken(nextToken);\n }\n }\n },\n { root }\n );\n observer.observe(next);\n return () => {\n observer.disconnect();\n };\n }, [nextToken]);\n\n const pullIdRef = useRef(0);\n\n const pull = useCallback(async () => {\n try {\n const pullId = ++pullIdRef.current;\n const tempList = await AgentFlowApi_searchTaskForAgentFlow(\n {},\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n if (pullId !== pullIdRef.current) {\n // Ignore this pull if a newer one has been triggered\n return;\n }\n setList((prev) => {\n const prevList = prev ?? [];\n const newList = tempList.data as LegacyHistoryItem[];\n const newIds = new Set(newList.map((item) => item.id));\n const newItemsMap = new Map(newList.map((item) => [item.id, item]));\n\n let foundIntersection = false;\n let foundChanged = false;\n let isFirst = true;\n for (const item of prevList) {\n const newItem = newItemsMap.get(item.id);\n if (newItem) {\n foundIntersection = true;\n foundChanged =\n (isFirst && newItem !== newList[0]) || !isEqual(newItem, item);\n if (foundChanged) {\n break;\n }\n } else {\n break;\n }\n isFirst = false;\n }\n\n if (!foundIntersection) {\n setNextToken(tempList.next_token);\n return newList;\n }\n\n if (foundChanged) {\n return [\n ...newList,\n ...prevList.filter((item) => !newIds.has(item.id)),\n ];\n }\n\n return prev;\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error pulling chat history:\", error);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n pull,\n }),\n [pull]\n );\n\n if (!list) {\n return (\n <div className=\"history\">\n <div className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"history\" ref={rootRef}>\n <ul>\n {groups.map((group) => (\n <li key={group.title} className=\"group\">\n <div className=\"group-title\">{group.title}</div>\n <ul className=\"items\">\n {group.items.map((item) => (\n <li key={item.id}>\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\": item.id === actionsVisible,\n active: item.id === activeId,\n })}\n onClick={onHistoryClick}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.id : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n {nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </div>\n );\n}\n","import { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping,\n} from \"@next-bricks/basic/dropdown-actions\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type {\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n} from \"@next-bricks/basic/mini-actions\";\nimport type { IconButton, IconButtonProps } from \"../icon-button\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nexport const WrappedDropdownActions = wrapBrick<\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping\n>(\"eo-dropdown-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\nexport const WrappedEasyopsAvatar = wrapBrick<\n EoEasyopsAvatar,\n EoEasyopsAvatarProps\n>(\"eo-easyops-avatar\");\nexport const WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\nexport const WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n","import { http } from \"@next-core/http\";\n/**\n * @description 获取elevo项目列表\n * @endpoint list /api/v1/elevo/projects\n */\nexport const ElevoApi_getElevoProjects = async (params, options) => /**! @contract easyops.api.llm.elevo.GetElevoProjects@1.0.0 */(await http.get(\"api/gateway/logic.llm.aiops_service/api/v1/elevo/projects\", {\n ...options,\n params\n})).data;\n//# sourceMappingURL=getElevoProjects.js.map","import { http } from \"@next-core/http\";\n/**\n * @description 获取elevo会话列表\n * @endpoint GET /api/v1/elevo/conversations\n */\nexport const ElevoApi_listElevoConversations = async (params, options) => /**! @contract easyops.api.llm.elevo.ListElevoConversations@1.0.0 */(await http.get(\"api/gateway/logic.llm.aiops_service/api/v1/elevo/conversations\", {\n ...options,\n params\n})).data;\n//# sourceMappingURL=listElevoConversations.js.map","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport {\n ElevoApi_listElevoConversations,\n ElevoApi_getElevoProjects,\n type ElevoApi_ListElevoConversationsRequestParams,\n} from \"@next-api-sdk/llm-sdk\";\nimport type {\n ActionType,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { isEqual } from \"lodash\";\nimport { K, t } from \"./i18n.js\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport {\n WrappedIcon,\n WrappedLink,\n WrappedMiniActions,\n WrappedIconButton,\n} from \"./bricks.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\nconst ADD_ICON: GeneralIconProps = {\n lib: \"fa\",\n icon: \"plus\",\n};\n\nexport interface HistoryItem {\n conversationId: string;\n title: string;\n startTime: number;\n state?: TaskState;\n}\n\nexport interface GroupedHistory {\n title: string;\n items: HistoryItem[];\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: HistoryItem;\n project?: Project;\n}\n\nexport interface ProjectActionClickDetail {\n action: SimpleActionType;\n project: Project;\n}\n\nexport interface Project {\n /** 实例ID */\n instanceId: string;\n /** 项目名称 */\n name: string;\n /** 项目描述 */\n description: string;\n /** 状态 */\n state: \"active\" | \"inactive\";\n /** 默认数字人ID */\n defaultAiEmployeeId: string;\n /** 创建者 */\n creator: string;\n /** 创建时间 */\n ctime: string;\n /** 修改时间 */\n mtime: string;\n /** 修改者 */\n modifier: string;\n}\n\nexport interface ChatHistoryProps {\n historyActiveId?: string;\n historyUrlTemplate?: string;\n historyActions?: ActionType[];\n projectActiveId?: string;\n projectUrlTemplate?: string;\n projectActions?: ActionType[];\n onActionClick: (detail: ActionClickDetail) => void;\n onHistoryClick: () => void;\n onProjectActionClick: (detail: ProjectActionClickDetail) => void;\n onAddProject: () => void;\n}\n\nexport interface ChatHistoryRef {\n pull: () => void;\n removeProject?: (projectId: string) => void;\n addProject?: (project: Project) => void;\n moveConversation?: (conversationId: string) => void;\n}\n\nexport const ChatHistory = forwardRef(LowLevelChatHistory);\n\nexport function LowLevelChatHistory(\n {\n historyActiveId,\n historyActions,\n historyUrlTemplate,\n projectActiveId,\n projectUrlTemplate,\n projectActions,\n onActionClick,\n onHistoryClick,\n onProjectActionClick,\n onAddProject,\n }: ChatHistoryProps,\n ref: React.Ref<ChatHistoryRef>\n) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [projects, setProjects] = useState<Project[] | null>(null);\n const [projectsCollapsed, setProjectsCollapsed] = useState(false);\n const [projectsError, setProjectsError] = useState(false);\n const [historyList, setHistoryList] = useState<HistoryItem[] | null>(null);\n const [historyCollapsed, setHistoryCollapsed] = useState(false);\n const [nextToken, setNextToken] = useState<string | undefined>();\n const [loadNextToken, setLoadNextToken] = useState<string | undefined>();\n const [historyError, setHistoryError] = useState(false);\n const initialRef = useRef(true);\n const [movedConversations, setMovedConversations] = useState<string[]>([]);\n\n const mergedHistoryActions = useMemo(\n () =>\n [\n ...(historyActions ?? []),\n {\n isDropdown: true,\n text: t(K.MOVE_TO_PROJECT),\n disabled: !projects?.length,\n items: projects?.map((project) => ({\n event: \"move\",\n key: project.instanceId,\n text: project.name,\n project,\n })),\n },\n ] as ActionType[],\n [historyActions, projects]\n );\n\n useEffect(() => {\n (async () => {\n try {\n const projects = await ElevoApi_getElevoProjects({\n page: 1,\n page_size: 3000,\n });\n setProjects(projects.list as Project[]);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error loading projects:\", error);\n setProjectsError(true);\n setProjects([]);\n }\n })();\n }, []);\n\n useEffect(() => {\n Promise.all([\n ElevoApi_listElevoConversations(\n {\n token: loadNextToken,\n limit: 30,\n onlyOwner: true,\n onlyUnrelatedProject: true,\n } as ElevoApi_ListElevoConversationsRequestParams,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n ),\n ...(initialRef.current\n ? []\n : [\n new Promise((resolve) => setTimeout(resolve, 500)), // Force a minimum delay\n ]),\n ])\n .then(([data]) => {\n initialRef.current = false;\n setHistoryList((prev) => [\n ...(prev ?? []),\n ...(data.conversations as HistoryItem[]),\n ]);\n setNextToken(data.nextToken);\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(\"Error loading chat history:\", error);\n setHistoryList([]);\n setHistoryError(true);\n });\n }, [loadNextToken]);\n\n const [actionsVisible, setActionsVisible] = useState<string | null>(null);\n\n const nextRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const next = nextRef.current;\n const root = rootRef.current;\n if (!next || !nextToken || !root || historyCollapsed) {\n return;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setLoadNextToken(nextToken);\n }\n }\n },\n { root }\n );\n observer.observe(next);\n return () => {\n observer.disconnect();\n };\n }, [nextToken, historyCollapsed]);\n\n const pullIdRef = useRef(0);\n\n const pull = useCallback(async () => {\n try {\n const pullId = ++pullIdRef.current;\n const tempList = await ElevoApi_listElevoConversations(\n {\n limit: 30,\n onlyOwner: true,\n onlyUnrelatedProject: true,\n } as ElevoApi_ListElevoConversationsRequestParams,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n if (pullId !== pullIdRef.current) {\n // Ignore this pull if a newer one has been triggered\n return;\n }\n setHistoryList((prev) => {\n const prevList = prev ?? [];\n const newList = tempList.conversations as HistoryItem[];\n const newIds = new Set(newList.map((item) => item.conversationId));\n const newItemsMap = new Map(\n newList.map((item) => [item.conversationId, item])\n );\n\n let foundIntersection = false;\n let foundChanged = false;\n let isFirst = true;\n for (const item of prevList) {\n const newItem = newItemsMap.get(item.conversationId);\n if (newItem) {\n foundIntersection = true;\n foundChanged =\n (isFirst && newItem !== newList[0]) || !isEqual(newItem, item);\n if (foundChanged) {\n break;\n }\n } else {\n break;\n }\n isFirst = false;\n }\n\n if (!foundIntersection) {\n setNextToken(tempList.nextToken);\n return newList;\n }\n\n if (foundChanged) {\n return [\n ...newList,\n ...prevList.filter((item) => !newIds.has(item.conversationId)),\n ];\n }\n\n return prev;\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error pulling chat history:\", error);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n pull,\n removeProject: (projectId: string) => {\n setProjects((prev) =>\n prev ? prev.filter((p) => p.instanceId !== projectId) : prev\n );\n },\n addProject: (project: Project) => {\n setProjects((prev) => (prev ? [...prev, project] : [project]));\n },\n moveConversation: (conversationId: string) => {\n setMovedConversations((prev) => [...prev, conversationId]);\n },\n }),\n [pull]\n );\n\n const filteredHistoryList = useMemo(() => {\n if (!historyList || !historyList.length) {\n return historyList;\n }\n return historyList.filter(\n (item) => !movedConversations.includes(item.conversationId)\n );\n }, [historyList, movedConversations]);\n\n return (\n <div className=\"history\" ref={rootRef}>\n <div className={classNames(\"section\", { collapsed: projectsCollapsed })}>\n <div className=\"section-title\">\n <div\n className=\"section-label\"\n onClick={() => setProjectsCollapsed((prev) => !prev)}\n >\n {t(K.PROJECTS)}\n <WrappedIcon lib=\"fa\" icon=\"angle-down\" />\n </div>\n <WrappedIconButton\n icon={ADD_ICON}\n variant=\"mini-light\"\n tooltip={t(K.CREATE_PROJECT)}\n onClick={onAddProject}\n />\n </div>\n <ul className=\"items\">\n {projectsError ? (\n <li className=\"error\">Failed to load project</li>\n ) : projects ? (\n projects.map((project) => (\n <li key={project.instanceId}>\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\": project.instanceId === actionsVisible,\n active: project.instanceId === projectActiveId,\n })}\n onClick={onHistoryClick}\n {...(projectUrlTemplate\n ? { url: parseTemplate(projectUrlTemplate, project) }\n : null)}\n >\n <div className=\"item-title\" title={project.name}>\n {project.name || t(K.UNNAMED)}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={projectActions}\n onActionClick={(e) => {\n onProjectActionClick({ action: e.detail, project });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? project.instanceId : null);\n }}\n />\n </WrappedLink>\n </li>\n ))\n ) : (\n <li className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </li>\n )}\n </ul>\n </div>\n <div className={classNames(\"section\", { collapsed: historyCollapsed })}>\n <div className=\"section-title\">\n <div\n className=\"section-label\"\n onClick={() => setHistoryCollapsed((prev) => !prev)}\n >\n {t(K.HISTORY)}\n <WrappedIcon lib=\"fa\" icon=\"angle-down\" />\n </div>\n </div>\n <ul className=\"items\">\n {filteredHistoryList ? (\n filteredHistoryList.map((item) => (\n <li key={item.conversationId}>\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\": item.conversationId === actionsVisible,\n active: item.conversationId === historyActiveId,\n })}\n onClick={onHistoryClick}\n {...(historyUrlTemplate\n ? { url: parseTemplate(historyUrlTemplate, item) }\n : null)}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title || t(K.UNTITLED)}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={mergedHistoryActions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.conversationId : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))\n ) : (\n <li className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </li>\n )}\n {historyError ? (\n <li className=\"error\">Failed to load chat history</li>\n ) : null}\n </ul>\n {!historyCollapsed && nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </div>\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.sidebar{position:relative;z-index:1;width:260px;height:100%;background:rgba(246,247,249,0.5);border:1px solid rgba(255,255,255,0.3);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:23px 11px 0;display:flex;flex-direction:column;transition:transform 0.3s ease-in-out}.logo-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;margin-left:4px}.logo-link::part(link){display:block}.logo{vertical-align:middle}.new-chat::part(link){display:flex;gap:0;align-items:center;color:var(--elevo-color-brand);font-size:14px;text-align:left;cursor:pointer}.sidebar .new-chat::part(link){background:#f0f4ff;border-radius:8px;border:1px solid #c9d7ff;padding:9px 13px;font-weight:500;margin-bottom:16px}.sidebar .new-chat::part(link):hover{background:rgba(201,215,255,0.5)}.new-chat-icon{font-size:16px;margin-right:5px}.footer{border-top:1px solid rgba(0,0,0,0.04);padding:9px 12px;margin:0 -12px}.dropdown{display:block}.account{background:none;border:none;border-radius:8px;padding:6px 10px;display:block;width:100%;text-align:left;cursor:pointer}.account:hover{background:rgba(0,0,0,0.04)}.alternative{position:fixed;top:8px;left:8px;padding:6px 10px 6px 8px;display:flex;align-items:center;opacity:0;z-index:1;transition:opacity 0.2s ease-in-out;background:rgba(255,255,255,0);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.alternative .new-chat::part(link){padding:4px;margin-left:16px;font-size:12px}.alternative .new-chat::part(link):hover{color:#7891ff}.alternative .new-chat::part(link):active{color:#0911b3}.container{width:270px;padding:10px 0 10px 10px;height:100%;transition:width 0.3s ease-in-out,padding 0.3s ease-in-out}.container.collapsed{width:0;padding:10px 0;overflow:visible}.container.collapsed .sidebar{transform:translateX(-100%)}.container.collapsed .alternative{opacity:1}:host([behavior=\"drawer\"]){z-index:1;width:0}:host(:not([behavior=\"drawer\"])) .alternative .new-chat{display:none}.mask{position:fixed;top:0;right:0;bottom:0;left:0}.links{border-bottom:1px solid rgba(0,0,0,0.06);padding-bottom:16px;margin-bottom:16px}.link{display:block}.link + .link{margin-top:4px}.link::part(link){display:flex;gap:0;align-items:center;padding:7px 10px;border-radius:8px;color:#000}.link::part(link):hover{background:rgba(0,0,0,0.04)}.link .icon{font-size:16px;margin-right:10px}.link .title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history{flex:1;min-height:0;overflow-y:auto;margin:0 -12px;padding:0 12px}.history ul{list-style:none;margin:0;padding:0}.history .section + .section{margin-top:14px}.history .section-title{display:flex;align-items:center;justify-content:space-between;height:30px;margin-bottom:6px;padding:0 8px}.history .section-label{display:flex;align-items:center;height:24px;padding:0 8px;margin-left:-8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-size:12px;color:#8c8c8c;border-radius:8px}.history .section-label eo-icon{vertical-align:middle;margin-left:6px;transition:transform 0.2s ease-in-out}.history .section-label:hover{background:rgba(0,0,0,0.04)}.history .collapsed > ul{display:none}.history .collapsed .section-label eo-icon{transform:rotate(-90deg)}.history .error,.history .loading{display:flex;align-items:center;height:36px;padding:0 8px}.history .loading{justify-content:center}.history .error{color:var(--color-error)}.history .group + .group{margin-top:15px}.history .group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.history .item{display:block}.history .item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.history .item.active::part(link){background:rgba(0,0,0,0.06)}.history .item.actions-active::part(link),.history .item::part(link):hover{background:rgba(0,0,0,0.04)}.history .item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history .actions{cursor:auto}.history .item:not(:hover):not(.actions-active) .actions{display:none}.history .working{width:8px;height:8px;border-radius:8px;background:var(--elevo-color-brand);margin:0 7px}.history .item.actions-active .working,.history .item:hover .working,.history .item.active .working{display:none}.history .load-more{display:flex;justify-content:center;align-items:center;height:36px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n NEW_CHAT = \"NEW_CHAT\",\n LOGOUT = \"LOGOUT\",\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n PREVIOUS_7_DAYS = \"PREVIOUS_7_DAYS\",\n PREVIOUS_30_DAYS = \"PREVIOUS_30_DAYS\",\n SWITCH_LANGUAGE = \"SWITCH_LANGUAGE\",\n PROJECTS = \"PROJECTS\",\n HISTORY = \"HISTORY\",\n CREATE_PROJECT = \"CREATE_PROJECT\",\n MOVE_TO_PROJECT = \"MOVE_TO_PROJECT\",\n UNTITLED = \"UNTITLED\",\n UNNAMED = \"UNNAMED\",\n}\n\nconst en: Locale = {\n [K.NEW_CHAT]: \"New chat\",\n [K.LOGOUT]: \"Logout\",\n [K.TODAY]: \"Today\",\n [K.YESTERDAY]: \"Yesterday\",\n [K.PREVIOUS_7_DAYS]: \"Previous 7 days\",\n [K.PREVIOUS_30_DAYS]: \"Previous 30 days\",\n [K.SWITCH_LANGUAGE]: \"中文\",\n [K.PROJECTS]: \"Project management\",\n [K.HISTORY]: \"Chat history\",\n [K.CREATE_PROJECT]: \"Create project\",\n [K.MOVE_TO_PROJECT]: \"Move to project\",\n [K.UNTITLED]: \"Untitled\",\n [K.UNNAMED]: \"Unnamed\",\n};\n\nconst zh: Locale = {\n [K.NEW_CHAT]: \"新对话\",\n [K.LOGOUT]: \"登出\",\n [K.TODAY]: \"今天\",\n [K.YESTERDAY]: \"昨天\",\n [K.PREVIOUS_7_DAYS]: \"过去7天\",\n [K.PREVIOUS_30_DAYS]: \"过去30天\",\n [K.SWITCH_LANGUAGE]: \"English\",\n [K.PROJECTS]: \"项目管理\",\n [K.HISTORY]: \"历史对话\",\n [K.CREATE_PROJECT]: \"创建项目\",\n [K.MOVE_TO_PROJECT]: \"移动到项目\",\n [K.UNTITLED]: \"无标题\",\n [K.UNNAMED]: \"未命名\",\n};\n\nexport const NS = \"bricks/ai-portal/elevo-sidebar\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n"],"names":["AgentFlowApi_searchTaskForAgentFlow","async","data","options","http","post","LegacyChatHistory","forwardRef","LowLevelChatHistory","_ref","ref","activeId","actions","urlTemplate","onActionClick","onHistoryClick","rootRef","useRef","list","setList","useState","nextToken","setNextToken","loadNextToken","setLoadNextToken","useEffect","Promise","all","next_token","interceptorParams","ignoreLoadingBar","resolve","setTimeout","then","_ref2","prev","catch","error","console","groups","useMemo","groupMap","Map","now","moment","startOfDay","clone","startOf","yesterday","subtract","sevenDaysAgo","thirtyDaysAgo","timestamps","item","groupKey","startTime","t","K","TODAY","YESTERDAY","PREVIOUS_7_DAYS","PREVIOUS_30_DAYS","format","group","get","set","title","items","push","values","actionsVisible","setActionsVisible","nextRef","next","current","root","observer","IntersectionObserver","entries","entry","isIntersecting","observe","disconnect","pullIdRef","pull","useCallback","pullId","tempList","prevList","newList","newIds","Set","map","id","newItemsMap","foundIntersection","foundChanged","isFirst","newItem","isEqual","filter","has","useImperativeHandle","React","className","key","WrappedLink","_extends","classNames","active","onClick","url","parseTemplate","WrappedMiniActions","e","action","detail","onVisibleChange","DONE_STATES","includes","state","WrappedIcon","lib","icon","spinning","theme","wrapBrick","WrappedDropdownActions","WrappedEasyopsAvatar","WrappedIconButton","ElevoApi_listElevoConversations","params","ADD_ICON","ChatHistory","historyActiveId","historyActions","historyUrlTemplate","projectActiveId","projectUrlTemplate","projectActions","onProjectActionClick","onAddProject","projects","setProjects","projectsCollapsed","setProjectsCollapsed","projectsError","setProjectsError","historyList","setHistoryList","historyCollapsed","setHistoryCollapsed","historyError","setHistoryError","initialRef","movedConversations","setMovedConversations","mergedHistoryActions","isDropdown","text","MOVE_TO_PROJECT","disabled","length","project","event","instanceId","name","page","page_size","ElevoApi_getElevoProjects","token","limit","onlyOwner","onlyUnrelatedProject","conversations","conversationId","removeProject","projectId","p","addProject","moveConversation","filteredHistoryList","collapsed","PROJECTS","variant","tooltip","CREATE_PROJECT","UNNAMED","HISTORY","UNTITLED","___CSS_LOADER_EXPORT___","module","toString","en","NEW_CHAT","LOGOUT","SWITCH_LANGUAGE","zh","NS","locales","i18n","getFixedT"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/3689.2a3f6d8c.js","mappings":"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","sources":["webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/agent_flow/searchTaskForAgentFlow.js","webpack:///./src/elevo-sidebar/LegacyChatHistory.tsx","webpack:///./src/elevo-sidebar/bricks.ts","webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/elevo/getElevoProjects.js","webpack:///../../node_modules/@next-api-sdk/llm-sdk/dist/esm/api/llm/elevo/listElevoConversations.js","webpack:///./src/elevo-sidebar/ChatHistory.tsx","webpack:///./src/elevo-sidebar/styles.shadow.css","webpack:///./src/elevo-sidebar/i18n.ts"],"sourcesContent":["import { http } from \"@next-core/http\";\n/**\n * @description 分页查询agent flow, 默认只查询最近三个页的数据\n * @endpoint POST /api/v1/llm/agent/flow/search\n */\nexport const AgentFlowApi_searchTaskForAgentFlow = async (data, options) => /**! @contract easyops.api.llm.agent_flow.SearchTaskForAgentFlow@1.0.0 */(await http.post(\"api/gateway/logic.llm.aiops_service/api/v1/llm/agent/flow/search\", data, options)).data;\n//# sourceMappingURL=searchTaskForAgentFlow.js.map","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport moment from \"moment\";\nimport classNames from \"classnames\";\nimport { AgentFlowApi_searchTaskForAgentFlow } from \"@next-api-sdk/llm-sdk\";\nimport type {\n ActionType,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport { isEqual } from \"lodash\";\nimport { K, t } from \"./i18n.js\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport { WrappedIcon, WrappedLink, WrappedMiniActions } from \"./bricks.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\nimport type { ChatHistoryRef } from \"./ChatHistory.js\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\ninterface LegacyHistoryItem {\n id: string;\n title: string;\n startTime: number;\n state?: TaskState;\n}\n\ninterface LegacyGroupedHistory {\n title: string;\n items: LegacyHistoryItem[];\n}\n\nexport interface LegacyActionClickDetail {\n action: SimpleActionType;\n item: LegacyHistoryItem;\n}\n\nexport interface LegacyChatHistoryProps {\n activeId?: string;\n urlTemplate?: string;\n actions?: ActionType[];\n onActionClick: (detail: LegacyActionClickDetail) => void;\n onHistoryClick: () => void;\n}\n\nexport const LegacyChatHistory = forwardRef(LowLevelChatHistory);\n\nexport function LowLevelChatHistory(\n {\n activeId,\n actions,\n urlTemplate,\n onActionClick,\n onHistoryClick,\n }: LegacyChatHistoryProps,\n ref: React.Ref<ChatHistoryRef>\n) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [list, setList] = useState<LegacyHistoryItem[] | null>(null);\n const [nextToken, setNextToken] = useState<string | undefined>();\n const [loadNextToken, setLoadNextToken] = useState<string | undefined>();\n\n useEffect(() => {\n Promise.all([\n AgentFlowApi_searchTaskForAgentFlow(\n { next_token: loadNextToken },\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n ),\n new Promise((resolve) => setTimeout(resolve, 500)), // Force a minimum delay\n ])\n .then(([data]) => {\n setList((prev) => [\n ...(prev ?? []),\n ...(data.data as LegacyHistoryItem[]),\n ]);\n setNextToken(data.next_token);\n })\n .catch((error) => {\n if (process.env.NODE_ENV !== \"test\") {\n // eslint-disable-next-line no-console\n console.error(\"Error loading chat history:\", error);\n }\n });\n }, [loadNextToken]);\n\n const groups = useMemo(() => {\n const groupMap = new Map<string, LegacyGroupedHistory>();\n // Group history by\n // - today\n // - yesterday\n // - previous 7 days\n // - previous 30 days\n // - each month this year\n // - each year before.\n const now = moment();\n const startOfDay = now.clone().startOf(\"day\");\n const yesterday = startOfDay.clone().subtract(1, \"day\");\n const sevenDaysAgo = startOfDay.clone().subtract(7, \"days\");\n const thirtyDaysAgo = startOfDay.clone().subtract(30, \"days\");\n const thisYear = now.clone().startOf(\"year\");\n\n const timestamps = {\n startOfDay: +startOfDay / 1000,\n yesterday: +yesterday / 1000,\n sevenDaysAgo: +sevenDaysAgo / 1000,\n thirtyDaysAgo: +thirtyDaysAgo / 1000,\n thisYear: +thisYear / 1000,\n };\n for (const item of list ?? []) {\n let groupKey: string;\n if (item.startTime >= timestamps.startOfDay) {\n groupKey = t(K.TODAY);\n } else if (item.startTime >= timestamps.yesterday) {\n groupKey = t(K.YESTERDAY);\n } else if (item.startTime >= timestamps.sevenDaysAgo) {\n groupKey = t(K.PREVIOUS_7_DAYS);\n } else if (item.startTime >= timestamps.thirtyDaysAgo) {\n groupKey = t(K.PREVIOUS_30_DAYS);\n } else if (item.startTime >= timestamps.thisYear) {\n groupKey = moment(item.startTime * 1000).format(\"MMMM\");\n } else {\n groupKey = moment(item.startTime * 1000).format(\"YYYY\");\n }\n let group = groupMap.get(groupKey);\n if (!group) {\n groupMap.set(groupKey, (group = { title: groupKey, items: [] }));\n }\n group.items.push(item);\n }\n\n return [...groupMap.values()];\n }, [list]);\n\n const [actionsVisible, setActionsVisible] = useState<string | null>(null);\n\n const nextRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const next = nextRef.current;\n const root = rootRef.current;\n if (!next || !nextToken || !root) {\n return;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setLoadNextToken(nextToken);\n }\n }\n },\n { root }\n );\n observer.observe(next);\n return () => {\n observer.disconnect();\n };\n }, [nextToken]);\n\n const pullIdRef = useRef(0);\n\n const pull = useCallback(async () => {\n try {\n const pullId = ++pullIdRef.current;\n const tempList = await AgentFlowApi_searchTaskForAgentFlow(\n {},\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n if (pullId !== pullIdRef.current) {\n // Ignore this pull if a newer one has been triggered\n return;\n }\n setList((prev) => {\n const prevList = prev ?? [];\n const newList = tempList.data as LegacyHistoryItem[];\n const newIds = new Set(newList.map((item) => item.id));\n const newItemsMap = new Map(newList.map((item) => [item.id, item]));\n\n let foundIntersection = false;\n let foundChanged = false;\n let isFirst = true;\n for (const item of prevList) {\n const newItem = newItemsMap.get(item.id);\n if (newItem) {\n foundIntersection = true;\n foundChanged =\n (isFirst && newItem !== newList[0]) || !isEqual(newItem, item);\n if (foundChanged) {\n break;\n }\n } else {\n break;\n }\n isFirst = false;\n }\n\n if (!foundIntersection) {\n setNextToken(tempList.next_token);\n return newList;\n }\n\n if (foundChanged) {\n return [\n ...newList,\n ...prevList.filter((item) => !newIds.has(item.id)),\n ];\n }\n\n return prev;\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error pulling chat history:\", error);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n pull,\n }),\n [pull]\n );\n\n if (!list) {\n return (\n <div className=\"history\">\n <div className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"history\" ref={rootRef}>\n <ul>\n {groups.map((group) => (\n <li key={group.title} className=\"group\">\n <div className=\"group-title\">{group.title}</div>\n <ul className=\"items\">\n {group.items.map((item) => (\n <li key={item.id}>\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\": item.id === actionsVisible,\n active: item.id === activeId,\n })}\n onClick={onHistoryClick}\n {...(urlTemplate\n ? { url: parseTemplate(urlTemplate, item) }\n : null)}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.id : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n {nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </div>\n );\n}\n","import { wrapBrick } from \"@next-core/react-element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping,\n} from \"@next-bricks/basic/dropdown-actions\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type {\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n} from \"@next-bricks/basic/mini-actions\";\nimport type { IconButton, IconButtonProps } from \"../icon-button\";\n\nexport const WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nexport const WrappedDropdownActions = wrapBrick<\n EoDropdownActions,\n DropdownActionsProps,\n DropdownActionsEvents,\n DropdownActionsEventsMapping\n>(\"eo-dropdown-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\nexport const WrappedEasyopsAvatar = wrapBrick<\n EoEasyopsAvatar,\n EoEasyopsAvatarProps\n>(\"eo-easyops-avatar\");\nexport const WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\nexport const WrappedIconButton = wrapBrick<IconButton, IconButtonProps>(\n \"ai-portal.icon-button\"\n);\n","import { http } from \"@next-core/http\";\n/**\n * @description 获取elevo项目列表\n * @endpoint list /api/v1/elevo/projects\n */\nexport const ElevoApi_getElevoProjects = async (params, options) => /**! @contract easyops.api.llm.elevo.GetElevoProjects@1.0.0 */(await http.get(\"api/gateway/logic.llm.aiops_service/api/v1/elevo/projects\", {\n ...options,\n params\n})).data;\n//# sourceMappingURL=getElevoProjects.js.map","import { http } from \"@next-core/http\";\n/**\n * @description 获取elevo会话列表\n * @endpoint GET /api/v1/elevo/conversations\n */\nexport const ElevoApi_listElevoConversations = async (params, options) => /**! @contract easyops.api.llm.elevo.ListElevoConversations@1.0.0 */(await http.get(\"api/gateway/logic.llm.aiops_service/api/v1/elevo/conversations\", {\n ...options,\n params\n})).data;\n//# sourceMappingURL=listElevoConversations.js.map","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport classNames from \"classnames\";\nimport {\n ElevoApi_listElevoConversations,\n ElevoApi_getElevoProjects,\n type ElevoApi_ListElevoConversationsRequestParams,\n} from \"@next-api-sdk/llm-sdk\";\nimport type {\n ActionType,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { isEqual } from \"lodash\";\nimport { K, t } from \"./i18n.js\";\nimport type { TaskState } from \"../cruise-canvas/interfaces.js\";\nimport {\n WrappedIcon,\n WrappedLink,\n WrappedMiniActions,\n WrappedIconButton,\n} from \"./bricks.js\";\nimport { DONE_STATES } from \"../shared/constants.js\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\nconst ADD_ICON: GeneralIconProps = {\n lib: \"fa\",\n icon: \"plus\",\n};\n\nexport interface HistoryItem {\n conversationId: string;\n title: string;\n startTime: number;\n state?: TaskState;\n}\n\nexport interface GroupedHistory {\n title: string;\n items: HistoryItem[];\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: HistoryItem;\n project?: Project;\n}\n\nexport interface ProjectActionClickDetail {\n action: SimpleActionType;\n project: Project;\n}\n\nexport interface Project {\n /** 实例ID */\n instanceId: string;\n /** 项目名称 */\n name: string;\n /** 项目描述 */\n description: string;\n /** 状态 */\n state: \"active\" | \"inactive\";\n /** 默认数字人ID */\n defaultAiEmployeeId: string;\n /** 创建者 */\n creator: string;\n /** 创建时间 */\n ctime: string;\n /** 修改时间 */\n mtime: string;\n /** 修改者 */\n modifier: string;\n}\n\nexport interface ChatHistoryProps {\n historyActiveId?: string;\n historyUrlTemplate?: string;\n historyActions?: ActionType[];\n projectActiveId?: string;\n projectUrlTemplate?: string;\n projectActions?: ActionType[];\n onActionClick: (detail: ActionClickDetail) => void;\n onHistoryClick: () => void;\n onProjectActionClick: (detail: ProjectActionClickDetail) => void;\n onAddProject: () => void;\n}\n\nexport interface ChatHistoryRef {\n pull: () => void;\n removeProject?: (projectId: string) => void;\n addProject?: (project: Project) => void;\n moveConversation?: (conversationId: string) => void;\n}\n\nexport const ChatHistory = forwardRef(LowLevelChatHistory);\n\nexport function LowLevelChatHistory(\n {\n historyActiveId,\n historyActions,\n historyUrlTemplate,\n projectActiveId,\n projectUrlTemplate,\n projectActions,\n onActionClick,\n onHistoryClick,\n onProjectActionClick,\n onAddProject,\n }: ChatHistoryProps,\n ref: React.Ref<ChatHistoryRef>\n) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const [projects, setProjects] = useState<Project[] | null>(null);\n const [projectsCollapsed, setProjectsCollapsed] = useState(false);\n const [projectsError, setProjectsError] = useState(false);\n const [historyList, setHistoryList] = useState<HistoryItem[] | null>(null);\n const [historyCollapsed, setHistoryCollapsed] = useState(false);\n const [nextToken, setNextToken] = useState<string | undefined>();\n const [loadNextToken, setLoadNextToken] = useState<string | undefined>();\n const [historyError, setHistoryError] = useState(false);\n const initialRef = useRef(true);\n const [movedConversations, setMovedConversations] = useState<string[]>([]);\n\n const mergedHistoryActions = useMemo(\n () =>\n [\n ...(historyActions ?? []),\n {\n isDropdown: true,\n text: t(K.MOVE_TO_PROJECT),\n disabled: !projects?.length,\n items: projects?.map((project) => ({\n event: \"move\",\n key: project.instanceId,\n text: project.name,\n project,\n })),\n },\n ] as ActionType[],\n [historyActions, projects]\n );\n\n useEffect(() => {\n (async () => {\n try {\n const projects = await ElevoApi_getElevoProjects({\n page: 1,\n page_size: 3000,\n });\n setProjects(projects.list as Project[]);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error loading projects:\", error);\n setProjectsError(true);\n setProjects([]);\n }\n })();\n }, []);\n\n useEffect(() => {\n Promise.all([\n ElevoApi_listElevoConversations(\n {\n token: loadNextToken,\n limit: 30,\n onlyOwner: true,\n onlyUnrelatedProject: true,\n } as ElevoApi_ListElevoConversationsRequestParams,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n ),\n ...(initialRef.current\n ? []\n : [\n new Promise((resolve) => setTimeout(resolve, 500)), // Force a minimum delay\n ]),\n ])\n .then(([data]) => {\n initialRef.current = false;\n setHistoryList((prev) => [\n ...(prev ?? []),\n ...(data.conversations as HistoryItem[]),\n ]);\n setNextToken(data.nextToken);\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(\"Error loading chat history:\", error);\n setHistoryList([]);\n setHistoryError(true);\n });\n }, [loadNextToken]);\n\n const [actionsVisible, setActionsVisible] = useState<string | null>(null);\n\n const nextRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const next = nextRef.current;\n const root = rootRef.current;\n if (!next || !nextToken || !root || historyCollapsed) {\n return;\n }\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n setLoadNextToken(nextToken);\n }\n }\n },\n { root }\n );\n observer.observe(next);\n return () => {\n observer.disconnect();\n };\n }, [nextToken, historyCollapsed]);\n\n const pullIdRef = useRef(0);\n\n const pull = useCallback(async () => {\n try {\n const pullId = ++pullIdRef.current;\n const tempList = await ElevoApi_listElevoConversations(\n {\n limit: 30,\n onlyOwner: true,\n onlyUnrelatedProject: true,\n } as ElevoApi_ListElevoConversationsRequestParams,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n if (pullId !== pullIdRef.current) {\n // Ignore this pull if a newer one has been triggered\n return;\n }\n setHistoryList((prev) => {\n const prevList = prev ?? [];\n const newList = tempList.conversations as HistoryItem[];\n const newIds = new Set(newList.map((item) => item.conversationId));\n const newItemsMap = new Map(\n newList.map((item) => [item.conversationId, item])\n );\n\n let foundIntersection = false;\n let foundChanged = false;\n let isFirst = true;\n for (const item of prevList) {\n const newItem = newItemsMap.get(item.conversationId);\n if (newItem) {\n foundIntersection = true;\n foundChanged =\n (isFirst && newItem !== newList[0]) || !isEqual(newItem, item);\n if (foundChanged) {\n break;\n }\n } else {\n break;\n }\n isFirst = false;\n }\n\n if (!foundIntersection) {\n setNextToken(tempList.nextToken);\n return newList;\n }\n\n if (foundChanged) {\n return [\n ...newList,\n ...prevList.filter((item) => !newIds.has(item.conversationId)),\n ];\n }\n\n return prev;\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error pulling chat history:\", error);\n }\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n pull,\n removeProject: (projectId: string) => {\n setProjects((prev) =>\n prev ? prev.filter((p) => p.instanceId !== projectId) : prev\n );\n },\n addProject: (project: Project) => {\n setProjects((prev) => (prev ? [...prev, project] : [project]));\n },\n moveConversation: (conversationId: string) => {\n setMovedConversations((prev) => [...prev, conversationId]);\n },\n }),\n [pull]\n );\n\n const filteredHistoryList = useMemo(() => {\n if (!historyList || !historyList.length) {\n return historyList;\n }\n return historyList.filter(\n (item) => !movedConversations.includes(item.conversationId)\n );\n }, [historyList, movedConversations]);\n\n return (\n <div className=\"history\" ref={rootRef}>\n <div className={classNames(\"section\", { collapsed: projectsCollapsed })}>\n <div className=\"section-title\">\n <div\n className=\"section-label\"\n onClick={() => setProjectsCollapsed((prev) => !prev)}\n >\n {t(K.PROJECTS)}\n <WrappedIcon lib=\"fa\" icon=\"angle-down\" />\n </div>\n <WrappedIconButton\n icon={ADD_ICON}\n variant=\"mini-light\"\n tooltip={t(K.CREATE_PROJECT)}\n onClick={onAddProject}\n />\n </div>\n <ul className=\"items\">\n {projectsError ? (\n <li className=\"error\">Failed to load project</li>\n ) : projects ? (\n projects.map((project) => (\n <li key={project.instanceId}>\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\": project.instanceId === actionsVisible,\n active: project.instanceId === projectActiveId,\n })}\n onClick={onHistoryClick}\n {...(projectUrlTemplate\n ? { url: parseTemplate(projectUrlTemplate, project) }\n : null)}\n >\n <div className=\"item-title\" title={project.name}>\n {project.name || t(K.UNNAMED)}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={projectActions}\n onActionClick={(e) => {\n onProjectActionClick({ action: e.detail, project });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? project.instanceId : null);\n }}\n />\n </WrappedLink>\n </li>\n ))\n ) : (\n <li className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </li>\n )}\n </ul>\n </div>\n <div className={classNames(\"section\", { collapsed: historyCollapsed })}>\n <div className=\"section-title\">\n <div\n className=\"section-label\"\n onClick={() => setHistoryCollapsed((prev) => !prev)}\n >\n {t(K.HISTORY)}\n <WrappedIcon lib=\"fa\" icon=\"angle-down\" />\n </div>\n </div>\n <ul className=\"items\">\n {filteredHistoryList ? (\n filteredHistoryList.map((item) => (\n <li key={item.conversationId}>\n <WrappedLink\n className={classNames(\"item\", {\n \"actions-active\": item.conversationId === actionsVisible,\n active: item.conversationId === historyActiveId,\n })}\n onClick={onHistoryClick}\n {...(historyUrlTemplate\n ? { url: parseTemplate(historyUrlTemplate, item) }\n : null)}\n >\n <div className=\"item-title\" title={item.title}>\n {item.title || t(K.UNTITLED)}\n </div>\n <WrappedMiniActions\n className=\"actions\"\n actions={mergedHistoryActions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail ? item.conversationId : null);\n }}\n />\n {!DONE_STATES.includes(item.state!) && (\n <div className=\"working\"></div>\n )}\n </WrappedLink>\n </li>\n ))\n ) : (\n <li className=\"loading\">\n <WrappedIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon=\"loading-3-quarters\"\n spinning\n />\n </li>\n )}\n {historyError ? (\n <li className=\"error\">Failed to load chat history</li>\n ) : null}\n </ul>\n {!historyCollapsed && nextToken && (\n <div className=\"load-more\" ref={nextRef}>\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n )}\n </div>\n </div>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.sidebar{position:relative;z-index:1;width:260px;height:100%;background:rgba(246,247,249,0.5);border:1px solid rgba(255,255,255,0.3);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:23px 11px 0;display:flex;flex-direction:column;transition:transform 0.3s ease-in-out}.logo-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;margin-left:4px}.logo-link::part(link){display:block}.logo{vertical-align:middle}.new-chat::part(link){display:flex;gap:0;align-items:center;color:var(--elevo-color-brand);font-size:14px;text-align:left;cursor:pointer}.sidebar .new-chat::part(link){background:#f0f4ff;border-radius:8px;border:1px solid #c9d7ff;padding:9px 13px;font-weight:500;margin-bottom:16px}.sidebar .new-chat::part(link):hover{background:rgba(201,215,255,0.5)}.new-chat-icon{font-size:16px;margin-right:5px}.footer{border-top:1px solid rgba(0,0,0,0.04);padding:9px 12px;margin:0 -12px}.dropdown{display:block}.account{background:none;border:none;border-radius:8px;padding:6px 10px;display:block;width:100%;text-align:left;cursor:pointer}.account:hover{background:rgba(0,0,0,0.04)}.alternative{position:fixed;top:8px;left:8px;padding:6px 10px 6px 8px;display:flex;align-items:center;opacity:0;z-index:1;transition:opacity 0.2s ease-in-out;background:rgba(255,255,255,0);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.alternative .new-chat::part(link){padding:4px;margin-left:16px;font-size:12px}.alternative .new-chat::part(link):hover{color:#7891ff}.alternative .new-chat::part(link):active{color:#0911b3}.container{width:270px;padding:10px 0 10px 10px;height:100%;transition:width 0.3s ease-in-out,padding 0.3s ease-in-out}.container.collapsed{width:0;padding:10px 0;overflow:visible}.container.collapsed .sidebar{transform:translateX(-100%)}.container.collapsed .alternative{opacity:1}:host([behavior=\"drawer\"]){z-index:1;width:0}:host(:not([behavior=\"drawer\"])) .alternative .new-chat{display:none}.mask{position:fixed;top:0;right:0;bottom:0;left:0}.links{border-bottom:1px solid rgba(0,0,0,0.06);padding-bottom:16px;margin-bottom:16px}.link{display:block}.link + .link{margin-top:4px}.link::part(link){display:flex;gap:0;align-items:center;padding:7px 10px;border-radius:8px;color:#000}.link::part(link):hover{background:rgba(0,0,0,0.04)}.link .icon{font-size:16px;margin-right:10px}.link .title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history{flex:1;min-height:0;overflow-y:auto;margin:0 -12px;padding:0 12px}.history ul{list-style:none;margin:0;padding:0}.history .section + .section{margin-top:14px}.history .section-title{display:flex;align-items:center;justify-content:space-between;height:30px;margin-bottom:6px;padding:0 8px}.history .section-label{display:flex;align-items:center;height:24px;padding:0 8px;margin-left:-8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-size:12px;color:#8c8c8c;border-radius:8px}.history .section-label eo-icon{vertical-align:middle;margin-left:6px;transition:transform 0.2s ease-in-out}.history .section-label:hover{background:rgba(0,0,0,0.04)}.history .collapsed > ul{display:none}.history .collapsed .section-label eo-icon{transform:rotate(-90deg)}.history .error,.history .loading{display:flex;align-items:center;height:36px;padding:0 8px}.history .loading{justify-content:center}.history .error{color:var(--color-error)}.history .group + .group{margin-top:15px}.history .group-title{font-weight:500;font-size:12px;color:#000;padding:8px;height:36px;line-height:20px}.history .item{display:block}.history .item::part(link){display:flex;align-items:center;padding:0 8px;height:36px;border-radius:8px;color:#000}.history .item.active::part(link){background:rgba(0,0,0,0.06)}.history .item.actions-active::part(link),.history .item::part(link):hover{background:rgba(0,0,0,0.04)}.history .item-title{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.history .actions{cursor:auto}.history .item:not(:hover):not(.actions-active) .actions{display:none}.history .working{width:8px;height:8px;border-radius:8px;background:var(--elevo-color-brand);margin:0 7px}.history .item.actions-active .working,.history .item:hover .working,.history .item.active .working{display:none}.history .load-more{display:flex;justify-content:center;align-items:center;height:36px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n NEW_CHAT = \"NEW_CHAT\",\n LOGOUT = \"LOGOUT\",\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n PREVIOUS_7_DAYS = \"PREVIOUS_7_DAYS\",\n PREVIOUS_30_DAYS = \"PREVIOUS_30_DAYS\",\n SWITCH_LANGUAGE = \"SWITCH_LANGUAGE\",\n PROJECTS = \"PROJECTS\",\n HISTORY = \"HISTORY\",\n CREATE_PROJECT = \"CREATE_PROJECT\",\n MOVE_TO_PROJECT = \"MOVE_TO_PROJECT\",\n UNTITLED = \"UNTITLED\",\n UNNAMED = \"UNNAMED\",\n}\n\nconst en: Locale = {\n [K.NEW_CHAT]: \"New chat\",\n [K.LOGOUT]: \"Logout\",\n [K.TODAY]: \"Today\",\n [K.YESTERDAY]: \"Yesterday\",\n [K.PREVIOUS_7_DAYS]: \"Previous 7 days\",\n [K.PREVIOUS_30_DAYS]: \"Previous 30 days\",\n [K.SWITCH_LANGUAGE]: \"中文\",\n [K.PROJECTS]: \"Project management\",\n [K.HISTORY]: \"Chat history\",\n [K.CREATE_PROJECT]: \"Create project\",\n [K.MOVE_TO_PROJECT]: \"Move to project\",\n [K.UNTITLED]: \"Untitled\",\n [K.UNNAMED]: \"Unnamed\",\n};\n\nconst zh: Locale = {\n [K.NEW_CHAT]: \"新对话\",\n [K.LOGOUT]: \"登出\",\n [K.TODAY]: \"今天\",\n [K.YESTERDAY]: \"昨天\",\n [K.PREVIOUS_7_DAYS]: \"过去7天\",\n [K.PREVIOUS_30_DAYS]: \"过去30天\",\n [K.SWITCH_LANGUAGE]: \"English\",\n [K.PROJECTS]: \"项目管理\",\n [K.HISTORY]: \"历史对话\",\n [K.CREATE_PROJECT]: \"创建项目\",\n [K.MOVE_TO_PROJECT]: \"移动到项目\",\n [K.UNTITLED]: \"无标题\",\n [K.UNNAMED]: \"未命名\",\n};\n\nexport const NS = \"bricks/ai-portal/elevo-sidebar\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n"],"names":["AgentFlowApi_searchTaskForAgentFlow","async","data","options","http","post","LegacyChatHistory","forwardRef","LowLevelChatHistory","_ref","ref","activeId","actions","urlTemplate","onActionClick","onHistoryClick","rootRef","useRef","list","setList","useState","nextToken","setNextToken","loadNextToken","setLoadNextToken","useEffect","Promise","all","next_token","interceptorParams","ignoreLoadingBar","resolve","setTimeout","then","_ref2","prev","catch","error","console","groups","useMemo","groupMap","Map","now","moment","startOfDay","clone","startOf","yesterday","subtract","sevenDaysAgo","thirtyDaysAgo","timestamps","item","groupKey","startTime","t","K","TODAY","YESTERDAY","PREVIOUS_7_DAYS","PREVIOUS_30_DAYS","format","group","get","set","title","items","push","values","actionsVisible","setActionsVisible","nextRef","next","current","root","observer","IntersectionObserver","entries","entry","isIntersecting","observe","disconnect","pullIdRef","pull","useCallback","pullId","tempList","prevList","newList","newIds","Set","map","id","newItemsMap","foundIntersection","foundChanged","isFirst","newItem","isEqual","filter","has","useImperativeHandle","React","className","key","WrappedLink","_extends","classNames","active","onClick","url","parseTemplate","WrappedMiniActions","e","action","detail","onVisibleChange","DONE_STATES","includes","state","WrappedIcon","lib","icon","spinning","theme","wrapBrick","WrappedDropdownActions","WrappedEasyopsAvatar","WrappedIconButton","ElevoApi_listElevoConversations","params","ADD_ICON","ChatHistory","historyActiveId","historyActions","historyUrlTemplate","projectActiveId","projectUrlTemplate","projectActions","onProjectActionClick","onAddProject","projects","setProjects","projectsCollapsed","setProjectsCollapsed","projectsError","setProjectsError","historyList","setHistoryList","historyCollapsed","setHistoryCollapsed","historyError","setHistoryError","initialRef","movedConversations","setMovedConversations","mergedHistoryActions","isDropdown","text","MOVE_TO_PROJECT","disabled","length","project","event","instanceId","name","page","page_size","ElevoApi_getElevoProjects","token","limit","onlyOwner","onlyUnrelatedProject","conversations","conversationId","removeProject","projectId","p","addProject","moveConversation","filteredHistoryList","collapsed","PROJECTS","variant","tooltip","CREATE_PROJECT","UNNAMED","HISTORY","UNTITLED","___CSS_LOADER_EXPORT___","module","toString","en","NEW_CHAT","LOGOUT","SWITCH_LANGUAGE","zh","NS","locales","i18n","getFixedT"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[6573],{433:(e,t,n)=>{n.d(t,{I:()=>s,K:()=>a,NS:()=>l,t:()=>u});var o=n(87117);let a=function(e){return e.ASK_ANY_THING="ASK_ANYTHING",e.COMMON_TASKS="COMMON_TASKS",e}({});const i={[a.ASK_ANY_THING]:"Ask anything",[a.COMMON_TASKS]:"Common tasks"},r={[a.ASK_ANY_THING]:"询问任何问题",[a.COMMON_TASKS]:"常用任务"},l="bricks/ai-portal/chat-box",s={en:i,zh:r},u=o.i18n.getFixedT(null,l)},20062:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},24586:(e,t,n)=>{n.d(t,{A:()=>a});var o=n(11369);function a(e,t,n){return(t=(0,o.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},47008:(e,t,n)=>{n.d(t,{A:()=>p});var o=n(36758),a=n.n(o),i=n(40935),r=n.n(i),l=n(20062),s=n.n(l),u=new URL(n(47336),n.b),c=r()(a()),d=s()(u);c.push([e.id,`:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background:url(${d}) no-repeat center bottom;background-size:100% 104px;padding:12px 12px 29px;margin:0 -12px}.container{position:relative;background:#ffffff;box-shadow:0px 2px 4px 0px rgba(38,45,65,0.1);border-radius:16px;border:1px solid #dadfe8}.container:has(textarea:focus){border-color:#b7c3d8}textarea{display:block;width:100%;padding:10px 16px 50px;color:var(--antd-input-color);border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font:inherit;font-size:14px;line-height:22px;height:120px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.actions-bar{position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:flex-end;justify-content:space-between}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff;flex-shrink:0}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}`,""]);const p=c.toString()},47336:(e,t,n)=>{e.exports=n.p+"images/25c20165.png"},67707:(e,t,n)=>{n.r(t),n.d(t,{ChatBox:()=>F,ChatBoxComponent:()=>V,LegacyChatBoxComponent:()=>D});var o,a=n(74635),i=n(70918),r=n(24586),l=n(26902),s=n(5536),u=n(86121),c=n(70829),d=n(62740),p=n(18769),h=n.n(p),b=n(7921),f=n(11280),m=n(71451),g=(n(65168),n(87117)),x=n(433),v=n(47008);let S,w,A,k,y,C,z,R,_,N,E,M;(0,g.initializeI18n)(x.NS,x.I);const K=(0,f.wrapBrick)("eo-icon"),{defineElement:T,property:B,event:H,method:I}=(0,b.createDecorators)(),V=(0,p.forwardRef)(D);let F;var O=new WeakMap,P=new WeakMap,W=new WeakMap,Y=new WeakMap,G=new WeakSet,$=new WeakMap;class j extends f.ReactNextElement{constructor(){super(...arguments),(0,a.A)(this,G),(0,r.A)(this,"ref",(S(this),(0,p.createRef)())),(0,i.A)(this,O,A(this)),(0,i.A)(this,P,(k(this),y(this))),(0,i.A)(this,W,(C(this),z(this))),(0,i.A)(this,Y,(R(this),_(this))),(0,i.A)(this,$,(M(this),e=>{(0,s.A)(G,this,N).emit(e)}))}get disabled(){return(0,c.A)(O,this)}set disabled(e){(0,u.A)(O,this,e)}get placeholder(){return(0,c.A)(P,this)}set placeholder(e){(0,u.A)(P,this,e)}get autoFocus(){return(0,c.A)(W,this)}set autoFocus(e){(0,u.A)(W,this,e)}setValue(e){var t;null===(t=this.ref.current)||void 0===t||t.setValue(e)}getValue(){var e;return null===(e=this.ref.current)||void 0===e?void 0:e.getValue()}render(){return h().createElement(V,{disabled:this.disabled,placeholder:this.placeholder,autoFocus:this.autoFocus,onSubmit:(0,c.A)($,this),ref:this.ref})}}function D(e,t){let{disabled:n,placeholder:o,autoFocus:a,onSubmit:i}=e;const r=(0,p.useRef)(null),l=(0,p.useRef)(null),[s,u]=(0,p.useState)(""),c=(0,p.useRef)("");(0,p.useImperativeHandle)(t,(()=>({setValue:e=>{c.current=e,u(e)},getValue:()=>c.current})));const d=(0,p.useCallback)((e=>{e.currentTarget.value&&i(e.currentTarget.value)}),[i]),b=(0,p.useCallback)((e=>{c.current=e.target.value,u(e.target.value)}),[]),f=(0,p.useCallback)((()=>{i(c.current)}),[i]);return(0,p.useEffect)((()=>{a&&Promise.resolve().then((()=>{var e;null===(e=l.current)||void 0===e||e.focus()}))}),[]),h().createElement("div",{className:"root"},h().createElement("div",{className:"container",ref:r},h().createElement(m.e,{containerRef:r,ref:l,value:s,minRows:58/22,paddingSize:60,autoResize:!0,disabled:n,placeholder:null!=o?o:(0,x.t)(x.K.ASK_ANY_THING),submitWhen:"enter-without-shift",onSubmit:d,onChange:b}),h().createElement("div",{className:"actions-bar"},h().createElement("div",null,h().createElement("slot",{name:"actions"})),h().createElement("button",{className:"btn-send",disabled:!s,onClick:f},h().createElement(K,{lib:"fa",prefix:"fas",icon:"arrow-up"})))))}o=j,({e:[A,k,y,C,z,R,_,N,E,M,S],c:[F,w]}=(0,d.A)(o,[T("ai-portal.chat-box",{styleTexts:[v.A]})],[[B({type:Boolean}),1,"disabled"],[B(),1,"placeholder"],[B({type:Boolean}),1,"autoFocus"],[H({type:"message.submit"}),1,"messageSubmit",e=>(0,c.A)(Y,e),(e,t)=>(0,u.A)(Y,e,t)],[I(),2,"setValue"],[I(),2,"getValue"]],0,(e=>$.has((0,l.A)(e))),f.ReactNextElement)),w()},71451:(e,t,n)=>{n.d(t,{e:()=>c});var o=n(89575),a=n(18769),i=n(59435),r=n(99126);const l=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break","white-space"];let s;const u=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey",c=a.forwardRef(d);function d(e,t){let{autoResize:n,minRows:c,maxRows:d,borderSize:p,paddingSize:h,containerRef:b,value:f,style:m,submitWhen:g,onChange:x,onSubmit:v,onKeyDown:S,onCompositionStart:w,onCompositionEnd:A,...k}=e;const y=null==n||n,[C,z]=(0,a.useState)(null!=f?f:""),R=(0,a.useRef)(null),[_,N]=(0,a.useState)(null);(0,a.useImperativeHandle)(t,(()=>({focus:()=>{const e=R.current;if(e){var t;const n=null===(t=e.value)||void 0===t?void 0:t.length;e.focus(),n&&e.setSelectionRange(n,n)}}})),[]);const E=(0,a.useCallback)((()=>{const e=R.current;if(e&&y){const t=function(e,t){const{minRows:n=null,maxRows:o=null,borderSize:a=2,paddingSize:i=8}=null!=t?t:{};s||(s=document.createElement("textarea"),s.setAttribute("tab-index","-1"),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));const r=window.getComputedStyle(e),u=l.map((e=>`${e}:${r.getPropertyValue(e)}`)).join(";");let c,d,p;s.setAttribute("style",`${u};\n min-height: 0!important;\n max-height: none!important;\n height: 0!important;\n visibility: hidden!important;\n overflow: hidden!important;\n position: absolute!important;\n z-index: -1000!important;\n top: 0!important;\n right: 0!important;\n pointer-events: none!important;\n`),s.value=e.value||e.placeholder||"";let h=s.scrollHeight+a;if(null!==n||null!==o){const e=parseFloat(window.getComputedStyle(s).getPropertyValue("line-height"));null!==n&&(c=e*n+i+a,h=Math.max(c,h)),null!==o&&(d=e*o+i+a,h<=d&&(p="hidden"),h=Math.min(d,h))}const b={height:h,overflowY:p,resize:"none"};return c&&(b.minHeight=c),d&&(b.maxHeight=d),b}(e,{minRows:c,maxRows:d,borderSize:p,paddingSize:h});(0,i.flushSync)((()=>{N(t)}))}}),[y,d,c,p,h]);(0,a.useEffect)((()=>{z(null!=f?f:"")}),[f]),(0,a.useEffect)((()=>{E()}),[E,C]);const M=(0,a.useRef)(!1),K=(0,a.useCallback)((e=>{M.current=!0,null==w||w(e)}),[w]),T=(0,a.useCallback)((e=>{M.current=!1,null==A||A(e)}),[A]),B=(0,a.useCallback)((e=>{M.current||("Enter"===e.key&&("enter-without-shift"===g?!e.shiftKey:"enter-with-mod"===g&&e[u])&&(e.preventDefault(),e.stopPropagation(),null==v||v(e)),null==S||S(e))}),[S,v,g]);return(0,a.useEffect)((()=>{const e=null==b?void 0:b.current;if(!e||!y)return;let t;const n=new r.A((n=>{for(const o of n)if(o.target===e){const e=o.contentBoxSize?o.contentBoxSize[0]?o.contentBoxSize[0].inlineSize:o.contentBoxSize.inlineSize:o.contentRect.width;if(void 0!==e&&e!==t){const n=!t;t=e,n||requestAnimationFrame(E)}}}));return n.observe(e),()=>{n.disconnect()}}),[y,b,E]),a.createElement("textarea",(0,o.A)({},k,{ref:R,value:C,style:{...m,..._},onChange:e=>{z(e.target.value),null==x||x(e)},onCompositionStart:K,onCompositionEnd:T,onKeyDown:B}))}}}]);
|
|
2
|
+
//# sourceMappingURL=chat-box.9c68697e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/chat-box.9c68697e.js","mappings":"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","sources":["webpack:///./src/chat-box/i18n.ts","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./src/chat-box/styles.shadow.css","webpack:///./src/chat-box/index.tsx","webpack:///../../../src/utils/calculateAutoSizeStyle.ts","webpack:///../../src/TextareaAutoResize.tsx"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n ASK_ANY_THING = \"ASK_ANYTHING\",\n COMMON_TASKS = \"COMMON_TASKS\",\n}\n\nconst en: Locale = {\n [K.ASK_ANY_THING]: \"Ask anything\",\n [K.COMMON_TASKS]: \"Common tasks\",\n};\n\nconst zh: Locale = {\n [K.ASK_ANY_THING]: \"询问任何问题\",\n [K.COMMON_TASKS]: \"常用任务\",\n};\n\nexport const NS = \"bricks/ai-portal/chat-box\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./images/bg.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.root{color:#262626;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat center bottom;background-size:100% 104px;padding:12px 12px 29px;margin:0 -12px}.container{position:relative;background:#ffffff;box-shadow:0px 2px 4px 0px rgba(38,45,65,0.1);border-radius:16px;border:1px solid #dadfe8}.container:has(textarea:focus){border-color:#b7c3d8}textarea{display:block;width:100%;padding:10px 16px 50px;color:var(--antd-input-color);border-radius:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.5);font:inherit;font-size:14px;line-height:22px;height:120px}textarea::placeholder{color:rgba(0,0,0,0.4)}.btn-send:focus,\ntextarea:focus{outline:none}.actions-bar{position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:flex-end;justify-content:space-between}.btn-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--elevo-color-brand);border:none;border-radius:8px;color:#fff;flex-shrink:0}.btn-send[disabled]{background:rgba(0,0,0,0.15)}.btn-send:not([disabled]){cursor:pointer}.btn-send:not([disabled]):hover{background:#5166ff}.btn-send:not([disabled]):active{background:#1e33cc}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n useImperativeHandle,\n createRef,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport {\n TextareaAutoResize,\n type TextareaAutoResizeRef,\n} from \"@next-shared/form\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeI18n(NS, locales);\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport const ChatBoxComponent = forwardRef(LegacyChatBoxComponent);\n\nexport interface ChatBoxProps {\n disabled?: boolean;\n placeholder?: string;\n autoFocus?: boolean;\n}\n\nexport interface ChatBoxRef {\n setValue: (value: string) => void;\n getValue: () => string;\n}\n\n/**\n * 构件 `ai-portal.chat-box`\n */\nexport\n@defineElement(\"ai-portal.chat-box\", {\n styleTexts: [styleText],\n})\nclass ChatBox extends ReactNextElement implements ChatBoxProps {\n ref = createRef<ChatBoxRef>();\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n @property({ type: Boolean })\n accessor autoFocus: boolean | undefined;\n\n @event({ type: \"message.submit\" })\n accessor #messageSubmit!: EventEmitter<string>;\n\n #handleMessageSubmit = (value: string) => {\n this.#messageSubmit.emit(value);\n };\n\n @method()\n setValue(value: string) {\n this.ref.current?.setValue(value);\n }\n\n @method()\n getValue() {\n return this.ref.current?.getValue();\n }\n\n render() {\n return (\n <ChatBoxComponent\n disabled={this.disabled}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n onSubmit={this.#handleMessageSubmit}\n ref={this.ref}\n />\n );\n }\n}\n\nexport interface ChatBoxComponentProps extends ChatBoxProps {\n // Define react event handlers here.\n onSubmit: (value: string) => void;\n ref?: React.Ref<ChatBoxRef>;\n}\n\nexport function LegacyChatBoxComponent(\n { disabled, placeholder, autoFocus, onSubmit }: ChatBoxComponentProps,\n ref: React.Ref<ChatBoxRef>\n) {\n const containerRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<TextareaAutoResizeRef>(null);\n const [value, setValue] = useState(\"\");\n const valueRef = useRef(\"\");\n\n useImperativeHandle(ref, () => ({\n setValue: (value: string) => {\n valueRef.current = value;\n setValue(value);\n },\n getValue: () => {\n return valueRef.current;\n },\n }));\n\n const handleSubmit = useCallback(\n (e: React.FormEvent<HTMLTextAreaElement>) => {\n if (e.currentTarget.value) {\n onSubmit(e.currentTarget.value);\n }\n },\n [onSubmit]\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n valueRef.current = e.target.value;\n setValue(e.target.value);\n },\n []\n );\n\n const handleSubmitClick = useCallback(() => {\n onSubmit(valueRef.current);\n }, [onSubmit]);\n\n useEffect(\n () => {\n if (autoFocus) {\n Promise.resolve().then(() => {\n textareaRef.current?.focus();\n });\n }\n },\n // One-time focus\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n return (\n <div className=\"root\">\n <div className=\"container\" ref={containerRef}>\n <TextareaAutoResize\n containerRef={containerRef}\n ref={textareaRef}\n value={value}\n minRows={58 / 22}\n paddingSize={60}\n autoResize\n disabled={disabled}\n placeholder={placeholder ?? t(K.ASK_ANY_THING)}\n submitWhen=\"enter-without-shift\"\n onSubmit={handleSubmit}\n onChange={handleChange}\n />\n <div className=\"actions-bar\">\n <div>\n <slot name=\"actions\"></slot>\n </div>\n <button\n className=\"btn-send\"\n disabled={!value}\n onClick={handleSubmitClick}\n >\n <WrappedIcon lib=\"fa\" prefix=\"fas\" icon=\"arrow-up\" />\n </button>\n </div>\n </div>\n </div>\n );\n}\n","// istanbul ignore file\nimport type React from \"react\";\n\nconst HIDDEN_TEXTAREA_STYLE = `\n min-height: 0!important;\n max-height: none!important;\n height: 0!important;\n visibility: hidden!important;\n overflow: hidden!important;\n position: absolute!important;\n z-index: -1000!important;\n top: 0!important;\n right: 0!important;\n pointer-events: none!important;\n`;\n\nconst SIZING_STYLE = [\n \"letter-spacing\",\n \"line-height\",\n \"padding-top\",\n \"padding-bottom\",\n \"font-family\",\n \"font-weight\",\n \"font-size\",\n \"font-variant\",\n \"text-rendering\",\n \"text-transform\",\n \"width\",\n \"text-indent\",\n \"padding-left\",\n \"padding-right\",\n \"border-width\",\n \"box-sizing\",\n \"word-break\",\n \"white-space\",\n];\n\nlet hiddenTextarea: HTMLTextAreaElement | undefined;\n\nexport interface AutoSizeOptions {\n minRows?: number | null;\n maxRows?: number | null;\n borderSize?: number;\n paddingSize?: number;\n}\n\n/**\n * 计算 textarea 高度\n * https://github.com/react-component/textarea/blob/1c0026fbe30e5f7dff1fca695b2cf262246381ca/src/calculateNodeHeight.tsx\n */\nexport default function calculateAutoSizeStyle(\n uiTextNode: HTMLTextAreaElement,\n options?: AutoSizeOptions\n): React.CSSProperties {\n const {\n minRows = null,\n maxRows = null,\n borderSize = 2,\n paddingSize = 8,\n } = options ?? {};\n\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement(\"textarea\");\n hiddenTextarea.setAttribute(\"tab-index\", \"-1\");\n hiddenTextarea.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenTextarea);\n }\n\n const uiTextNodeStyle = window.getComputedStyle(uiTextNode);\n const sizingStyle = SIZING_STYLE.map(\n (name) => `${name}:${uiTextNodeStyle.getPropertyValue(name)}`\n ).join(\";\");\n\n // equal style\n hiddenTextarea.setAttribute(\n \"style\",\n `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`\n );\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || \"\";\n\n let minHeight: number | undefined;\n let maxHeight: number | undefined;\n let overflowY: React.CSSProperties[\"overflowY\"];\n\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n if (minRows !== null || maxRows !== null) {\n const singleRowHeight =\n process.env.NODE_ENV === \"test\"\n ? 22\n : parseFloat(\n window\n .getComputedStyle(hiddenTextarea)\n .getPropertyValue(\"line-height\")\n );\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n if (height <= maxHeight) {\n overflowY = \"hidden\";\n }\n height = Math.min(maxHeight, height);\n }\n }\n\n const style: React.CSSProperties = {\n height,\n overflowY,\n resize: \"none\",\n };\n\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n\n return style;\n}\n","import React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { flushSync } from \"react-dom\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport calculateAutoSizeStyle from \"./utils/calculateAutoSizeStyle.js\";\n\n// istanbul ignore next\nconst modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n\nexport interface TextareaAutoResizeProps\n extends React.DetailedHTMLProps<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n > {\n /** @default true */\n autoResize?: boolean;\n minRows?: number | null;\n maxRows?: number | null;\n /** @default 2 */\n borderSize?: number;\n /** @default 8 */\n paddingSize?: number;\n containerRef?: React.RefObject<HTMLElement>;\n submitWhen?: \"enter-without-shift\" | \"enter-with-mod\";\n}\n\nexport interface TextareaAutoResizeRef {\n focus(): void;\n}\n\nexport const TextareaAutoResize = React.forwardRef<\n TextareaAutoResizeRef,\n TextareaAutoResizeProps\n>(LegacyTextareaAutoResize);\n\nfunction LegacyTextareaAutoResize(\n {\n autoResize: _autoResize,\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n containerRef,\n value: propValue,\n style,\n submitWhen,\n onChange,\n onSubmit,\n onKeyDown,\n onCompositionStart,\n onCompositionEnd,\n ...props\n }: TextareaAutoResizeProps,\n ref: React.ForwardedRef<TextareaAutoResizeRef>\n): React.JSX.Element {\n const autoResize = _autoResize ?? true;\n const [value, setValue] = useState(propValue ?? \"\");\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const [autoStyle, setAutoStyle] = useState<React.CSSProperties | null>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n focus: () => {\n const textarea = textareaRef.current;\n // istanbul ignore else: defensive check\n if (textarea) {\n const valueLength = textarea.value?.length;\n textarea.focus();\n valueLength && textarea.setSelectionRange(valueLength, valueLength);\n }\n },\n }),\n []\n );\n\n const doAutoResize = useCallback(() => {\n const textarea = textareaRef.current;\n if (textarea && autoResize) {\n const style = calculateAutoSizeStyle(textarea, {\n minRows,\n maxRows,\n borderSize,\n paddingSize,\n });\n // istanbul ignore next\n if (process.env.NODE_ENV === \"test\") {\n setAutoStyle(style);\n } else {\n flushSync(() => {\n setAutoStyle(style);\n });\n }\n }\n }, [autoResize, maxRows, minRows, borderSize, paddingSize]);\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLTextAreaElement>\n ): void => {\n setValue(e.target.value);\n onChange?.(e);\n };\n\n useEffect(() => {\n setValue(propValue ?? \"\");\n }, [propValue]);\n\n useEffect(() => {\n doAutoResize();\n }, [doAutoResize, value]);\n\n const compositionRef = useRef(false);\n\n const handleCompositionStart = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = true;\n onCompositionStart?.(e);\n },\n [onCompositionStart]\n );\n\n const handleCompositionEnd = useCallback(\n (e: React.CompositionEvent<HTMLTextAreaElement>) => {\n compositionRef.current = false;\n onCompositionEnd?.(e);\n },\n [onCompositionEnd]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (compositionRef.current) {\n // Ignore key events during composition\n return;\n }\n\n if (\n e.key === \"Enter\" &&\n (submitWhen === \"enter-without-shift\"\n ? !e.shiftKey\n : submitWhen === \"enter-with-mod\" && e[modKey])\n ) {\n e.preventDefault();\n e.stopPropagation();\n onSubmit?.(e);\n }\n\n onKeyDown?.(e);\n },\n [onKeyDown, onSubmit, submitWhen]\n );\n\n // istanbul ignore next\n useEffect(() => {\n const container = containerRef?.current;\n if (!container || !autoResize) {\n return;\n }\n let previousInlineSize: number | undefined;\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === container) {\n // istanbul ignore next: compatibility\n const currentInlineSize = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].inlineSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .inlineSize\n : entry.contentRect.width;\n if (\n currentInlineSize !== undefined &&\n currentInlineSize !== previousInlineSize\n ) {\n const isInitial = !previousInlineSize;\n previousInlineSize = currentInlineSize;\n if (!isInitial) {\n requestAnimationFrame(doAutoResize);\n }\n }\n }\n }\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, [autoResize, containerRef, doAutoResize]);\n\n return (\n <textarea\n {...props}\n ref={textareaRef}\n value={value}\n style={{\n ...style,\n ...autoStyle,\n }}\n onChange={handleInputChange}\n onCompositionStart={handleCompositionStart}\n onCompositionEnd={handleCompositionEnd}\n onKeyDown={handleKeyDown}\n />\n );\n}\n"],"names":["K","en","ASK_ANY_THING","COMMON_TASKS","zh","NS","locales","t","i18n","getFixedT","module","exports","url","options","String","__esModule","default","test","slice","hash","needQuotes","concat","replace","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","push","id","toString","initializeI18n","WrappedIcon","wrapBrick","defineElement","property","event","method","createDecorators","ChatBoxComponent","forwardRef","LegacyChatBoxComponent","_ChatBox","_A","WeakMap","_B","_C","_D","_ChatBox_brand","WeakSet","_handleMessageSubmit","ChatBox","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_initProto","createRef","_classPrivateFieldInitSpec","_init_disabled","_init_extra_disabled","_init_placeholder","_init_extra_placeholder","_init_autoFocus","_init_extra_autoFocus","_init_messageSubmit","_init_extra_messageSubmit","_classPrivateGetter","this","_get_messageSubmit","emit","disabled","_classPrivateFieldGet","v","_classPrivateFieldSet","placeholder","autoFocus","setValue","_this$ref$current","ref","current","getValue","_this$ref$current2","render","React","onSubmit","_ref","containerRef","useRef","textareaRef","useState","valueRef","useImperativeHandle","handleSubmit","useCallback","e","currentTarget","handleChange","target","handleSubmitClick","useEffect","Promise","resolve","then","_textareaRef$current","focus","className","TextareaAutoResize","minRows","paddingSize","autoResize","submitWhen","onChange","name","onClick","lib","prefix","icon","_ChatBox2","_set_messageSubmit","c","_initClass","_applyDecs","styleTexts","styleText","type","Boolean","o","_","has","_checkInRHS","SIZING_STYLE","hiddenTextarea","modKey","navigator","platform","LegacyTextareaAutoResize","_autoResize","maxRows","borderSize","propValue","style","onKeyDown","onCompositionStart","onCompositionEnd","props","autoStyle","setAutoStyle","textarea","_textarea$value","valueLength","length","setSelectionRange","doAutoResize","uiTextNode","document","createElement","setAttribute","body","appendChild","uiTextNodeStyle","window","getComputedStyle","sizingStyle","map","getPropertyValue","join","minHeight","maxHeight","overflowY","height","scrollHeight","singleRowHeight","parseFloat","Math","max","min","resize","calculateAutoSizeStyle","flushSync","compositionRef","handleCompositionStart","handleCompositionEnd","handleKeyDown","shiftKey","preventDefault","stopPropagation","container","previousInlineSize","observer","ResizeObserver","entries","entry","currentInlineSize","contentBoxSize","inlineSize","contentRect","width","undefined","isInitial","requestAnimationFrame","observe","disconnect","_extends"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[2052,5064],{11369:(t,e,n)=>{n.d(e,{A:()=>o});var r=n(17545);function o(t){var e=function(t){if("object"!=(0,r.A)(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=(0,r.A)(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==(0,r.A)(e)?e:e+""}},17099:(t,e,n)=>{t.exports=n.p+"images/e47076cc.png"},17545:(t,e,n)=>{function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}n.d(e,{A:()=>r})},26902:(t,e,n)=>{n.d(e,{A:()=>o});var r=n(17545);function o(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?(0,r.A)(t):"null"));return t}},31653:(t,e,n)=>{n.d(e,{A:()=>c});var r=n(36758),o=n.n(r),i=n(40935),a=n.n(i)()(o());a.push([t.id,":host{display:inline-block}:host([hidden]){display:none}img{vertical-align:middle}",""]);const c=a.toString()},36758:t=>{t.exports=function(t){return t[1]}},40935:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",r=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),r&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),r&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,r,o,i){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(r)for(var c=0;c<this.length;c++){var u=this[c][0];null!=u&&(a[u]=!0)}for(var l=0;l<t.length;l++){var s=[].concat(t[l]);r&&a[s[0]]||(void 0!==i&&(void 0===s[5]||(s[1]="@layer".concat(s[5].length>0?" ".concat(s[5]):""," {").concat(s[1],"}")),s[5]=i),n&&(s[2]?(s[1]="@media ".concat(s[2]," {").concat(s[1],"}"),s[2]=n):s[2]=n),o&&(s[4]?(s[1]="@supports (".concat(s[4],") {").concat(s[1],"}"),s[4]=o):s[4]="".concat(o)),e.push(s))}},e}},62740:(t,e,n)=>{n.d(e,{A:()=>c});var r=n(17545),o=n(26902);function i(t,e,n){"symbol"==(0,r.A)(e)&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}var a=n(11369);function c(t,e,n,c,u,l){var s,f,d,p,v,h,m,g=Symbol.metadata||Symbol.for("Symbol.metadata"),b=Object.defineProperty,y=Object.create,w=[y(null),y(null)],A=e.length;function E(e,n,r){return function(o,i){n&&(i=o,o=t);for(var a=0;a<e.length;a++)i=e[a].apply(o,r?[i]:[]);return r?i:o}}function S(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw new TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function j(t,e,n,o,a,c,u,l,d,p,v){function h(t){if(!v(t))throw new TypeError("Attempted to access private element on non-instance")}var m=[].concat(e[0]),g=e[3],y=!u,A=1===a,j=3===a,x=4===a,k=2===a;function T(e,n,r){return function(o,i){return n&&(i=o,o=t),r&&r(o),_[e].call(o,i)}}if(!y){var _={},O=[],P=j?"get":x||A?"set":"value";if(d?(p||A?_={get:i((function(){return g(this)}),o,"get"),set:function(t){e[4](this,t)}}:_[P]=g,p||i(_[P],o,k?"":P)):p||(_=Object.getOwnPropertyDescriptor(t,o)),!p&&!d){if((f=w[+l][o])&&7!=(f^a))throw Error("Decorating two elements with the same name ("+_[P].name+") is not supported yet");w[+l][o]=a<3?1:a}}for(var z=t,D=m.length-1;D>=0;D-=n?2:1){var N=S(m[D],"A decorator","be",!0),C=n?m[D-1]:void 0,I={},R={kind:["field","accessor","method","getter","setter","class"][a],name:o,metadata:s,addInitializer:function(t,e){if(t.v)throw Error("attempted to call addInitializer after decoration was finished");S(e,"An initializer","be",!0),c.push(e)}.bind(null,I)};if(y)f=N.call(C,z,R),I.v=1,S(f,"class decorators","return")&&(z=f);else if(R.static=l,R.private=d,f=R.access={has:d?v.bind():function(t){return o in t}},x||(f.get=d?k?function(t){return h(t),_.value}:T("get",0,h):function(t){return t[o]}),k||j||(f.set=d?T("set",0,h):function(t,e){t[o]=e}),z=N.call(C,A?{get:_.get,set:_.set}:_[P],R),I.v=1,A){if("object"==(0,r.A)(z)&&z)(f=S(z.get,"accessor.get"))&&(_.get=f),(f=S(z.set,"accessor.set"))&&(_.set=f),(f=S(z.init,"accessor.init"))&&O.unshift(f);else if(void 0!==z)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else S(z,(p?"field":"method")+" decorators","return")&&(p?O.unshift(z):_[P]=z)}return a<2&&u.push(E(O,l,1),E(c,l,0)),p||y||(d?A?u.splice(-1,0,T("get",l),T("set",l)):u.push(k?_[P]:S.call.bind(_[P])):b(t,o,_)),z}function x(t){return b(t,g,{configurable:!0,enumerable:!0,value:s})}return void 0!==l&&(s=l[g]),s=y(null==s?null:s),v=[],h=function(t){t&&v.push(E(t))},m=function(e,r){for(var i=0;i<n.length;i++){var c=n[i],l=c[1],s=7&l;if((8&l)==e&&!s==r){var f=c[2],h=!!c[3],m=16&l;j(e?t:t.prototype,c,m,h?"#"+f:(0,a.A)(f),s,s<2?[]:e?p=p||[]:d=d||[],v,!!e,h,r,e&&h?function(e){return(0,o.A)(e)===t}:u)}}},m(8,0),m(0,0),m(8,1),m(0,1),h(d),h(p),f=v,A||x(t),{e:f,get c(){var n=[];return A&&[x(t=j(t,[e],c,t.name,5,n)),E(n,1)]}}}},76722:(t,e,n)=>{n.r(e),n.d(e,{ElevoLogo:()=>p});var r,o=n(62740),i=n(18769),a=n.n(i),c=n(7921),u=n(11280),l=(n(65168),n(17099)),s=n(31653);let f;const{defineElement:d}=(0,c.createDecorators)();let p;class v extends u.ReactNextElement{render(){return a().createElement("img",{className:"logo",alt:"Elevo",src:l,width:95,height:28})}}r=v,[p,f]=(0,o.A)(r,[d("ai-portal.elevo-logo",{styleTexts:[s.A]})],[],0,void 0,u.ReactNextElement).c,f()}}]);
|
|
2
|
+
//# sourceMappingURL=elevo-logo.dc137a3c.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/elevo-logo.dc137a3c.js","mappings":"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","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///./src/elevo-logo/styles.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2311.js","webpack:///./src/elevo-logo/index.tsx"],"sourcesContent":["import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}img{vertical-align:middle}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2311(e, t, n, r, o, i) {\n var a,\n c,\n u,\n s,\n f,\n l,\n p,\n d = Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"),\n m = Object.defineProperty,\n h = Object.create,\n y = [h(null), h(null)],\n v = t.length;\n function g(t, n, r) {\n return function (o, i) {\n n && (i = o, o = e);\n for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);\n return r ? i : o;\n };\n }\n function b(e, t, n, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, n, r, o, i, u, s, f, l, p) {\n function d(e) {\n if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var h = [].concat(t[0]),\n v = t[3],\n w = !u,\n D = 1 === o,\n S = 3 === o,\n j = 4 === o,\n E = 2 === o;\n function I(t, n, r) {\n return function (o, i) {\n return n && (i = o, o = e), r && r(o), P[t].call(o, i);\n };\n }\n if (!w) {\n var P = {},\n k = [],\n F = S ? \"get\" : j || D ? \"set\" : \"value\";\n if (f ? (l || D ? P = {\n get: setFunctionName(function () {\n return v(this);\n }, r, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : P[F] = v, l || setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {\n if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\");\n y[+s][r] = o < 3 ? 1 : o;\n }\n }\n for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {\n var z = b(h[O], \"A decorator\", \"be\", !0),\n A = n ? h[O - 1] : void 0,\n H = {},\n K = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: r,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw Error(\"attempted to call addInitializer after decoration was finished\");\n b(t, \"An initializer\", \"be\", !0), i.push(t);\n }.bind(null, H)\n };\n if (w) c = z.call(A, N, K), H.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (K[\"static\"] = s, K[\"private\"] = f, c = K.access = {\n has: f ? p.bind() : function (e) {\n return r in e;\n }\n }, j || (c.get = f ? E ? function (e) {\n return d(e), P.value;\n } : I(\"get\", 0, d) : function (e) {\n return e[r];\n }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) {\n e[r] = t;\n }), N = z.call(A, D ? {\n get: P.get,\n set: P.set\n } : P[F], K), H.v = 1, D) {\n if (\"object\" == _typeof(N) && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\");\n } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N);\n }\n return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;\n }\n function w(e) {\n return m(e, d, {\n configurable: !0,\n enumerable: !0,\n value: a\n });\n }\n return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {\n e && f.push(g(e));\n }, p = function p(t, r) {\n for (var i = 0; i < n.length; i++) {\n var a = n[i],\n c = a[1],\n l = 7 & c;\n if ((8 & c) == t && !l == r) {\n var p = a[2],\n d = !!a[3],\n m = 16 & c;\n applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {\n return checkInRHS(t) === e;\n } : o);\n }\n }\n }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {\n e: c,\n get c() {\n var n = [];\n return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];\n }\n };\n}","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport Logo from \"./images/logo@2x.png\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `ai-portal.elevo-logo`\n */\nexport\n@defineElement(\"ai-portal.elevo-logo\", {\n styleTexts: [styleText],\n})\nclass ElevoLogo extends ReactNextElement {\n render() {\n return (\n <img className=\"logo\" alt=\"Elevo\" src={Logo} width={95} height={28} />\n );\n }\n}\n"],"names":["toPropertyKey","t","i","e","Symbol","toPrimitive","call","r","TypeError","String","_typeof","o","iterator","constructor","prototype","_checkInRHS","Object","___CSS_LOADER_EXPORT___","push","module","id","toString","exports","cssWithMappingToString","list","this","map","item","content","needLayer","concat","length","join","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","setFunctionName","n","description","defineProperty","configurable","value","applyDecs2311","a","c","u","s","f","l","p","d","metadata","m","h","create","y","v","g","apply","b","applyDec","w","D","S","j","E","I","P","F","get","set","getOwnPropertyDescriptor","Error","name","N","O","z","A","H","K","kind","addInitializer","bind","access","has","init","unshift","splice","enumerable","checkInRHS","defineElement","createDecorators","_ElevoLogo","ElevoLogo","ReactNextElement","render","React","className","alt","src","Logo","width","height","_ElevoLogo2","_initClass","_applyDecs","styleTexts","styleText"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see elevo-sidebar.08b20757.js.LICENSE.txt */
|
|
2
|
+
(globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[2052,7771],{5536:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});var n=r(12559);function i(t,e,r){return r((0,n.A)(t,e))}},11369:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});var n=r(17545);function i(t){var e=function(t){if("object"!=(0,n.A)(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=(0,n.A)(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==(0,n.A)(e)?e:e+""}},12559:(t,e,r)=>{"use strict";function n(t,e,r){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:r;throw new TypeError("Private element is not present on this object")}r.d(e,{A:()=>n})},17545:(t,e,r)=>{"use strict";function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}r.d(e,{A:()=>n})},26902:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});var n=r(17545);function i(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?(0,n.A)(t):"null"));return t}},36758:t=>{"use strict";t.exports=function(t){return t[1]}},40935:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var r="",n=void 0!==e[5];return e[4]&&(r+="@supports (".concat(e[4],") {")),e[2]&&(r+="@media ".concat(e[2]," {")),n&&(r+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),r+=t(e),n&&(r+="}"),e[2]&&(r+="}"),e[4]&&(r+="}"),r})).join("")},e.i=function(t,r,n,i,o){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(n)for(var s=0;s<this.length;s++){var c=this[s][0];null!=c&&(a[c]=!0)}for(var l=0;l<t.length;l++){var u=[].concat(t[l]);n&&a[u[0]]||(void 0!==o&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=o),r&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=r):u[2]=r),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),e.push(u))}},e}},53373:(t,e)=>{var r;!function(){"use strict";var n={}.hasOwnProperty;function i(){for(var t="",e=0;e<arguments.length;e++){var r=arguments[e];r&&(t=a(t,o(r)))}return t}function o(t){if("string"==typeof t||"number"==typeof t)return t;if("object"!=typeof t)return"";if(Array.isArray(t))return i.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var e="";for(var r in t)n.call(t,r)&&t[r]&&(e=a(e,r));return e}function a(t,e){return e?t?t+" "+e:t+e:t}t.exports?(i.default=i,t.exports=i):void 0===(r=function(){return i}.apply(e,[]))||(t.exports=r)}()},62740:(t,e,r)=>{"use strict";r.d(e,{A:()=>s});var n=r(17545),i=r(26902);function o(t,e,r){"symbol"==(0,n.A)(e)&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:r?r+" "+e:e})}catch(t){}return t}var a=r(11369);function s(t,e,r,s,c,l){var u,h,d,p,A,v,m,f=Symbol.metadata||Symbol.for("Symbol.metadata"),g=Object.defineProperty,y=Object.create,b=[y(null),y(null)],w=e.length;function k(e,r,n){return function(i,o){r&&(o=i,i=t);for(var a=0;a<e.length;a++)o=e[a].apply(i,n?[o]:[]);return n?o:i}}function j(t,e,r,n){if("function"!=typeof t&&(n||void 0!==t))throw new TypeError(e+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return t}function C(t,e,r,i,a,s,c,l,d,p,A){function v(t){if(!A(t))throw new TypeError("Attempted to access private element on non-instance")}var m=[].concat(e[0]),f=e[3],y=!c,w=1===a,C=3===a,E=4===a,I=2===a;function W(e,r,n){return function(i,o){return r&&(o=i,i=t),n&&n(i),T[e].call(i,o)}}if(!y){var T={},M=[],U=C?"get":E||w?"set":"value";if(d?(p||w?T={get:o((function(){return f(this)}),i,"get"),set:function(t){e[4](this,t)}}:T[U]=f,p||o(T[U],i,I?"":U)):p||(T=Object.getOwnPropertyDescriptor(t,i)),!p&&!d){if((h=b[+l][i])&&7!=(h^a))throw Error("Decorating two elements with the same name ("+T[U].name+") is not supported yet");b[+l][i]=a<3?1:a}}for(var P=t,N=m.length-1;N>=0;N-=r?2:1){var S=j(m[N],"A decorator","be",!0),x=r?m[N-1]:void 0,O={},L={kind:["field","accessor","method","getter","setter","class"][a],name:i,metadata:u,addInitializer:function(t,e){if(t.v)throw Error("attempted to call addInitializer after decoration was finished");j(e,"An initializer","be",!0),s.push(e)}.bind(null,O)};if(y)h=S.call(x,P,L),O.v=1,j(h,"class decorators","return")&&(P=h);else if(L.static=l,L.private=d,h=L.access={has:d?A.bind():function(t){return i in t}},E||(h.get=d?I?function(t){return v(t),T.value}:W("get",0,v):function(t){return t[i]}),I||C||(h.set=d?W("set",0,v):function(t,e){t[i]=e}),P=S.call(x,w?{get:T.get,set:T.set}:T[U],L),O.v=1,w){if("object"==(0,n.A)(P)&&P)(h=j(P.get,"accessor.get"))&&(T.get=h),(h=j(P.set,"accessor.set"))&&(T.set=h),(h=j(P.init,"accessor.init"))&&M.unshift(h);else if(void 0!==P)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else j(P,(p?"field":"method")+" decorators","return")&&(p?M.unshift(P):T[U]=P)}return a<2&&c.push(k(M,l,1),k(s,l,0)),p||y||(d?w?c.splice(-1,0,W("get",l),W("set",l)):c.push(I?T[U]:j.call.bind(T[U])):g(t,i,T)),P}function E(t){return g(t,f,{configurable:!0,enumerable:!0,value:u})}return void 0!==l&&(u=l[f]),u=y(null==u?null:u),A=[],v=function(t){t&&A.push(k(t))},m=function(e,n){for(var o=0;o<r.length;o++){var s=r[o],l=s[1],u=7&l;if((8&l)==e&&!u==n){var h=s[2],v=!!s[3],m=16&l;C(e?t:t.prototype,s,m,v?"#"+h:(0,a.A)(h),u,u<2?[]:e?p=p||[]:d=d||[],A,!!e,v,n,e&&v?function(e){return(0,i.A)(e)===t}:c)}}},m(8,0),m(0,0),m(8,1),m(0,1),v(d),v(p),h=A,w||E(t),{e:h,get c(){var r=[];return w&&[E(t=C(t,[e],s,t.name,5,r)),k(r,1)]}}}},70829:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});var n=r(12559);function i(t,e){return t.get((0,n.A)(t,e))}},70918:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});var n=r(72016);function i(t,e,r){(0,n.A)(t,e),e.set(t,r)}},72016:(t,e,r)=>{"use strict";function n(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}r.d(e,{A:()=>n})},74635:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});var n=r(72016);function i(t,e){(0,n.A)(t,e),e.add(t)}},86121:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});var n=r(12559);function i(t,e,r){return t.set((0,n.A)(t,e),r),r}},86833:(t,e,r)=>{"use strict";r.r(e),r.d(e,{ElevoSidebar:()=>Ct});var n,i=r(89575),o=r(74635),a=r(70918),s=r(26902),c=r(5536),l=r(86121),u=r(70829),h=r(62740),d=r(18769),p=r.n(d),A=r(7921),v=r(11280),m=(r(65168),r(87117)),f=r(29475),g=r(53373),y=r.n(g),b=r(99671),w=r(61408),k=r(42965),j=r(45646),C=r(26785);let E,I,W,T,M,U,P,N,S,x,O,L,_,H,B,z,q,R,D,K,Q,G,J,X,Y,Z,$,F,V,tt,et,rt,nt,it,ot,at,st,ct,lt,ut,ht,dt,pt,At,vt,mt;(0,m.initializeI18n)(b.NS,b.I);const ft={lib:"easyops",icon:"sidebar"},gt=(0,v.wrapBrick)("ai-portal.elevo-logo"),{defineElement:yt,property:bt,event:wt,method:kt}=(0,A.createDecorators)(),jt=(0,d.forwardRef)($t);let Ct;var Et=new WeakMap,It=new WeakMap,Wt=new WeakMap,Tt=new WeakMap,Mt=new WeakMap,Ut=new WeakMap,Pt=new WeakMap,Nt=new WeakMap,St=new WeakMap,xt=new WeakMap,Ot=new WeakMap,Lt=new WeakMap,_t=new WeakMap,Ht=new WeakMap,Bt=new WeakMap,zt=new WeakSet,qt=new WeakMap,Rt=new WeakMap,Dt=new WeakMap,Kt=new WeakMap,Qt=new WeakMap,Gt=new WeakMap,Jt=new WeakMap,Xt=new WeakMap,Yt=new WeakMap;class Zt extends v.ReactNextElement{constructor(){super(...arguments),(0,o.A)(this,zt),(0,a.A)(this,Et,(E(this),W(this,!0))),(0,a.A)(this,It,(T(this),M(this))),(0,a.A)(this,Wt,(U(this),P(this))),(0,a.A)(this,Tt,(N(this),S(this))),(0,a.A)(this,Mt,(x(this),O(this))),(0,a.A)(this,Ut,(L(this),_(this))),(0,a.A)(this,Pt,(H(this),B(this))),(0,a.A)(this,Nt,(z(this),q(this))),(0,a.A)(this,St,(R(this),D(this))),(0,a.A)(this,xt,(K(this),Q(this))),(0,a.A)(this,Ot,(G(this),J(this))),(0,a.A)(this,Lt,(X(this),Y(this))),(0,a.A)(this,_t,(Z(this),$(this))),(0,a.A)(this,Ht,(F(this),V(this))),(0,a.A)(this,Bt,(tt(this),et(this))),(0,a.A)(this,qt,(it(this),()=>{(0,c.A)(zt,this,rt).emit()})),(0,a.A)(this,Rt,ot(this)),(0,a.A)(this,Dt,(ct(this),t=>{(0,c.A)(zt,this,at).emit(t)})),(0,a.A)(this,Kt,(t=>{(0,c.A)(zt,this,at).emit(t)})),(0,a.A)(this,Qt,lt(this)),(0,a.A)(this,Gt,(dt(this),t=>{(0,c.A)(zt,this,ut).emit(t)})),(0,a.A)(this,Jt,pt(this)),(0,a.A)(this,Xt,(mt(this),()=>{(0,c.A)(zt,this,At).emit()})),(0,a.A)(this,Yt,(0,d.createRef)())}get legacy(){return(0,u.A)(Et,this)}set legacy(t){(0,l.A)(Et,this,t)}get userInstanceId(){return(0,u.A)(It,this)}set userInstanceId(t){(0,l.A)(It,this,t)}get behavior(){return(0,u.A)(Wt,this)}set behavior(t){(0,l.A)(Wt,this,t)}get bordered(){return(0,u.A)(Tt,this)}set bordered(t){(0,l.A)(Tt,this,t)}get logoUrl(){return(0,u.A)(Mt,this)}set logoUrl(t){(0,l.A)(Mt,this,t)}get newChatUrl(){return(0,u.A)(Ut,this)}set newChatUrl(t){(0,l.A)(Ut,this,t)}get newChatLinkWhenCollapsed(){return(0,u.A)(Pt,this)}set newChatLinkWhenCollapsed(t){(0,l.A)(Pt,this,t)}get historyActiveId(){return(0,u.A)(Nt,this)}set historyActiveId(t){(0,l.A)(Nt,this,t)}get historyUrlTemplate(){return(0,u.A)(St,this)}set historyUrlTemplate(t){(0,l.A)(St,this,t)}get historyActions(){return(0,u.A)(xt,this)}set historyActions(t){(0,l.A)(xt,this,t)}get projectActiveId(){return(0,u.A)(Ot,this)}set projectActiveId(t){(0,l.A)(Ot,this,t)}get projectUrlTemplate(){return(0,u.A)(Lt,this)}set projectUrlTemplate(t){(0,l.A)(Lt,this,t)}get projectActions(){return(0,u.A)(_t,this)}set projectActions(t){(0,l.A)(_t,this,t)}get links(){return(0,u.A)(Ht,this)}set links(t){(0,l.A)(Ht,this,t)}pullHistory(t){setTimeout((()=>{var t;null===(t=(0,u.A)(Yt,this).current)||void 0===t||t.pull()}),t)}close(){var t;null===(t=(0,u.A)(Yt,this).current)||void 0===t||t.close()}removeProject(t){var e,r;null===(e=(0,u.A)(Yt,this).current)||void 0===e||null===(r=e.removeProject)||void 0===r||r.call(e,t)}addProject(t){var e,r;null===(e=(0,u.A)(Yt,this).current)||void 0===e||null===(r=e.addProject)||void 0===r||r.call(e,t)}moveConversation(t){var e,r;null===(e=(0,u.A)(Yt,this).current)||void 0===e||null===(r=e.moveConversation)||void 0===r||r.call(e,t)}render(){return p().createElement(jt,{ref:(0,u.A)(Yt,this),legacy:this.legacy,userInstanceId:this.userInstanceId,behavior:this.behavior,logoUrl:this.logoUrl,newChatUrl:this.newChatUrl,newChatLinkWhenCollapsed:this.newChatLinkWhenCollapsed,historyActiveId:this.historyActiveId,historyUrlTemplate:this.historyUrlTemplate,historyActions:this.historyActions,projectActiveId:this.projectActiveId,projectUrlTemplate:this.projectUrlTemplate,projectActions:this.projectActions,links:this.links,onLogout:(0,u.A)(qt,this),onLegacyActionClick:(0,u.A)(Kt,this),onActionClick:(0,u.A)(Dt,this),onProjectActionClick:(0,u.A)(Gt,this),onAddProject:(0,u.A)(Xt,this)})}}function $t(t,e){let{legacy:r,userInstanceId:n,behavior:o,logoUrl:a,newChatUrl:s,newChatLinkWhenCollapsed:c,historyActiveId:l,historyUrlTemplate:u,historyActions:h,projectActiveId:A,projectUrlTemplate:v,projectActions:g,links:w,onLogout:E,onActionClick:I,onLegacyActionClick:W,onProjectActionClick:T,onAddProject:M}=t;const[U,P]=(0,d.useState)("drawer"===o),N=(0,d.useCallback)((()=>{P(!0)}),[]),S=(0,d.useCallback)((()=>{P(!1)}),[]);(0,d.useEffect)((()=>{"drawer"===o&&P(!0)}),[o]);const x=(0,d.useCallback)((()=>{P(!0)}),[]),O=(0,d.useCallback)((()=>{"drawer"===o&&P(!0)}),[o]),L=(0,d.useMemo)((()=>[{key:"logout",icon:{lib:"fa",prefix:"fas",icon:"arrow-right-from-bracket"},text:(0,b.t)(b.K.LOGOUT)},{key:"switch-language",icon:{lib:"easyops",icon:"language"},text:(0,b.t)(b.K.SWITCH_LANGUAGE)}]),[]),_=(0,d.useRef)(null);return(0,d.useImperativeHandle)(e,(()=>({close:()=>{P(!0)},pull:()=>{var t;null===(t=_.current)||void 0===t||t.pull()},removeProject:t=>{var e,r;null===(e=_.current)||void 0===e||null===(r=e.removeProject)||void 0===r||r.call(e,t)},addProject:t=>{var e,r;null===(e=_.current)||void 0===e||null===(r=e.addProject)||void 0===r||r.call(e,t)},moveConversation:t=>{var e,r;null===(e=_.current)||void 0===e||null===(r=e.moveConversation)||void 0===r||r.call(e,t)}})),[]),p().createElement("div",{className:y()("container",{collapsed:U})},"drawer"===o&&!U&&p().createElement("div",{className:"mask",onClick:x}),p().createElement("div",{className:"alternative"},p().createElement(k.Py,{icon:ft,variant:"light",onClick:S}),c&&p().createElement(k.EM,{className:"new-chat",url:s},p().createElement(k.Bj,{className:"new-chat-icon",lib:"easyops",icon:"new-chat"}),(0,b.t)(b.K.NEW_CHAT))),p().createElement("div",{className:"sidebar"},p().createElement("div",{className:"logo-bar"},p().createElement(k.EM,{url:a,className:"logo-link"},p().createElement(gt,null)),p().createElement(k.Py,{icon:ft,variant:"light",onClick:N})),p().createElement(k.EM,{className:"new-chat",url:s},p().createElement(k.Bj,{className:"new-chat-icon",lib:"easyops",icon:"new-chat"}),(0,b.t)(b.K.NEW_CHAT)),null!=w&&w.length?p().createElement("div",{className:"links"},w.map(((t,e)=>p().createElement(k.EM,{className:"link",key:e,url:t.url},p().createElement(k.Bj,(0,i.A)({className:"icon"},t.icon)),p().createElement("span",{className:"title"},t.title))))):null,r?p().createElement(C.Y,{ref:_,activeId:l,urlTemplate:u,actions:h,onActionClick:W,onHistoryClick:O}):p().createElement(j.D,{ref:_,historyActiveId:l,historyUrlTemplate:u,historyActions:h,projectActiveId:A,projectUrlTemplate:v,projectActions:g,onActionClick:I,onHistoryClick:O,onProjectActionClick:T,onAddProject:M}),p().createElement("div",{className:"footer"},p().createElement(k.qb,{className:"dropdown",actions:L,onActionClick:async t=>{"logout"===t.detail.key?E():(await m.i18n.changeLanguage(m.i18n.language&&"en"===m.i18n.language.split("-")[0]?"zh":"en"),(0,f.getHistory)().reload())}},p().createElement("button",{className:"account"},p().createElement(k.JQ,{nameOrInstanceId:n,showName:!0,size:"xs"}))))))}n=Zt,({e:[W,T,M,U,P,N,S,x,O,L,_,H,B,z,q,R,D,K,Q,G,J,X,Y,Z,$,F,V,tt,et,rt,nt,it,ot,at,st,ct,lt,ut,ht,dt,pt,At,vt,mt,E],c:[Ct,I]}=(0,h.A)(n,[yt("ai-portal.elevo-sidebar",{styleTexts:[w.A]})],[[bt({type:Boolean}),1,"legacy"],[bt(),1,"userInstanceId"],[bt(),1,"behavior"],[bt({type:Boolean,render:!1}),1,"bordered"],[bt(),1,"logoUrl"],[bt(),1,"newChatUrl"],[bt({type:Boolean}),1,"newChatLinkWhenCollapsed"],[bt(),1,"historyActiveId"],[bt(),1,"historyUrlTemplate"],[bt({attribute:!1}),1,"historyActions"],[bt(),1,"projectActiveId"],[bt(),1,"projectUrlTemplate"],[bt({attribute:!1}),1,"projectActions"],[bt({attribute:!1}),1,"links"],[wt({type:"logout"}),1,"logout",t=>(0,u.A)(Bt,t),(t,e)=>(0,l.A)(Bt,t,e)],[wt({type:"action.click"}),1,"actionClick",t=>(0,u.A)(Rt,t),(t,e)=>(0,l.A)(Rt,t,e)],[wt({type:"project.action.click"}),1,"projectActionClick",t=>(0,u.A)(Qt,t),(t,e)=>(0,l.A)(Qt,t,e)],[wt({type:"add.project"}),1,"addProject",t=>(0,u.A)(Jt,t),(t,e)=>(0,l.A)(Jt,t,e)],[kt(),2,"pullHistory"],[kt(),2,"close"],[kt(),2,"removeProject"],[kt(),2,"addProject"],[kt(),2,"moveConversation"]],0,(t=>Yt.has((0,s.A)(t))),v.ReactNextElement)),I()},89575:(t,e,r)=>{"use strict";function n(){return n=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},n.apply(this,arguments)}r.d(e,{A:()=>n})},97907:(t,e,r)=>{"use strict";r.d(e,{$g:()=>l,LQ:()=>a,QB:()=>n,Rq:()=>c,X4:()=>i,Xc:()=>s,Z5:()=>o,ju:()=>h,mJ:()=>u});const n=["completed","failed","canceled","terminated"],i=[...n,"paused"],o=[...i,"input-required"],a={lib:"lucide",icon:"x"},s={lib:"antd",icon:"loading-3-quarters",spinning:!0},c={lib:"lucide",icon:"network"},l={lib:"lucide",icon:"messages-square"},u={lib:"lucide",icon:"message-square"},h={lib:"lucide",icon:"external-link"}},98343:(t,e,r)=>{"use strict";r.d(e,{Q:()=>i});var n=r(41030);function i(t,e){return null==t?void 0:t.replace(/{{(.*?)}}/g,((t,r)=>(0,n.get)(e,r.trim())))}}}]);
|
|
3
|
+
//# sourceMappingURL=elevo-sidebar.08b20757.js.map
|