jingrow/apps/jingrow/frontend/dist/assets/AppLayout-846579c2.js

2 lines
9.0 KiB
JavaScript

import{_ as j}from"./logo-a60c622a.js";import{d as C,k as W,v as V,c as w,x as O,l as m,e as L,f as S,h as s,w as u,g as E,y as M,j as o,z as G,t as c,A as J,u as X,a as Z,r as I,n as $,B as D,p as A,F as U,C as ee,D as x,E as te,i as R,m as oe,G as se,H as ae,I as le,o as Y,J as ne,K as Q,L as re,T as ce,M as ie,O as ue,P as de,Q as pe,R as z}from"./index-d271a6a3.js";import{u as _e}from"./menu-1e1b8738.js";import{p as F}from"./slug-9937a98a.js";import{_ as he}from"./DynamicIcon.vue_vue_type_script_setup_true_lang-6d1ac17e.js";import{_ as H}from"./_plugin-vue_export-helper-c27b6911.js";import{I as T}from"./iconify-242f8a3c.js";const me={class:"app-sidebar"},fe={class:"sidebar-header"},ve={class:"logo"},ge=["alt"],be={key:0,class:"logo-text"},ye={class:"menu-container"},we=C({__name:"AppSidebar",props:{collapsed:{type:Boolean}},emits:["menu-select"],setup(B,{emit:i}){const d=i,p=W(),f=V(),v=w(()=>f.name),k=_e(),b=w(()=>localStorage.getItem("appName")||"Jingrow"),y=r=>{const e={};r.forEach(l=>e[l.id]={...l,children:[]});const t=[];return r.forEach(l=>{const _=l.parentId;_&&e[_]?e[_].children.push(e[l.id]):t.push(e[l.id])}),t},h=(r,e=24)=>r?()=>J(he,{name:r,size:e,color:"#64748b",iconLibrary:"tabler"}):void 0,g=r=>r.map(e=>({label:c(e.label),key:e.id,icon:h(e.icon,24),children:e.children&&e.children.length?e.children.map(t=>{var l;return{label:c(t.label),key:t.id,icon:h(t.icon,20),children:(l=t.children)!=null&&l.length?g(t.children):void 0}}):void 0})),n=w(()=>{const r=y(k.visibleItems);return g(r)}),a=r=>{const e=k.items.find(t=>t.id===r);if(e)if(d("menu-select"),e.type==="pagetype"&&e.pagetype){const t=F(e.pagetype);p.push({name:"PageTypeList",params:{entity:t}})}else if(e.type==="route"&&e.routeName)p.push({name:e.routeName});else if(e.type==="url"&&e.url)e.url.startsWith("http://")||e.url.startsWith("https://")?window.open(e.url,"_blank"):p.push(e.url);else{if(e.type==="workspace"&&e.workspaceName){const t=F(e.workspaceName);p.push(`/workspace/${t}`);return}e.url?e.url.startsWith("http://")||e.url.startsWith("https://")?window.open(e.url,"_blank"):p.push(e.url):e.routeName&&p.push({name:e.routeName})}};return(r,e)=>{const t=O("router-link");return m(),L("div",me,[S("div",fe,[S("div",ve,[s(t,{to:"/",class:"logo-link"},{default:u(()=>[S("img",{src:j,alt:b.value,width:"32",height:"32"},null,8,ge),r.collapsed?M("",!0):(m(),L("span",be,E(b.value),1))]),_:1})])]),S("div",ye,[s(o(G),{collapsed:r.collapsed,"collapsed-width":64,"collapsed-icon-size":24,options:n.value,value:v.value,"onUpdate:value":a},null,8,["collapsed","options","value"])])])}}});const Se=H(we,[["__scopeId","data-v-b09c3830"]]),ke={class:"app-header"},Le={class:"header-left"},Ne={class:"header-right"},Te={class:"username"},Ee=C({__name:"AppHeader",setup(B){const i=W(),d=V(),p=X(),f=Z(),v=I(""),k=w(()=>localStorage.getItem("appName")||"Jingrow"),b=w(()=>f.user),y=w(()=>{var e;return((e=f.user)==null?void 0:e.user_type)==="System User"}),h=w(()=>{const e=[];if(d.name==="PageTypeList"){const t=d.params.entity;t&&e.push({label:t,href:`/app/${t}`})}else if(d.name==="PageTypeDetail"){const t=d.params.entity,l=d.params.id;t&&e.push({label:t,href:`/app/${t}`}),l&&l!=="new"&&e.push({label:l==="new"?c("Create"):l})}else{const l={Dashboard:c("Dashboard"),AgentList:c("Agents"),AgentDetail:c("Agent Detail"),NodeList:c("Node Management"),NodeDetail:c("Node Detail"),LocalJobList:c("Local Jobs"),LocalJobDetail:c("Local Job Detail"),FlowBuilder:c("Flow Builder"),ScheduledJobList:c("Scheduled Jobs"),ScheduledJobDetail:c("Scheduled Job Detail"),MenuManager:c("Menu Manager"),Settings:c("Settings"),SearchResults:c("Search Results")}[d.name];l&&e.push({label:l})}return e}),g=w(()=>[{label:c("Profile"),key:"profile",icon:()=>J(T,{icon:"tabler:user"})},{label:c("Logout"),key:"logout",icon:()=>J(T,{icon:"tabler:logout"})}]),n=async e=>{e==="logout"?(await f.logout(),p.success(c("Logged out")),i.push("/login")):e==="profile"&&i.push("/profile")},a=()=>{v.value.trim()&&i.push({name:"SearchResults",query:{q:v.value.trim()}})},r=()=>{v.value=""};return(e,t)=>{const l=O("router-link");return m(),L("div",ke,[S("div",Le,[s(o($),{quaternary:"",circle:"",onClick:t[0]||(t[0]=_=>e.$emit("toggle-sidebar")),class:"sidebar-toggle"},{icon:u(()=>[s(o(T),{icon:"tabler:menu-2"})]),_:1}),s(o(te),{class:"breadcrumb"},{default:u(()=>[s(o(D),null,{default:u(()=>[s(l,{to:"/"},{default:u(()=>[A(E(k.value),1)]),_:1})]),_:1}),(m(!0),L(U,null,ee(h.value,(_,N)=>(m(),L(U,{key:N},[_.href?(m(),x(o(D),{key:0},{default:u(()=>[s(l,{to:_.href},{default:u(()=>[A(E(_.label),1)]),_:2},1032,["to"])]),_:2},1024)):(m(),x(o(D),{key:1},{default:u(()=>[A(E(_.label),1)]),_:2},1024))],64))),128))]),_:1})]),S("div",Ne,[s(o(le),null,{default:u(()=>[y.value?(m(),x(o(oe),{key:0,value:v.value,"onUpdate:value":t[1]||(t[1]=_=>v.value=_),placeholder:o(c)("Search..."),clearable:"",class:"search-input",onKeyup:R(a,["enter"]),onClear:r},{prefix:u(()=>[s(o(T),{icon:"tabler:search"})]),_:1},8,["value","placeholder"])):M("",!0),s(o($),{quaternary:"",circle:""},{icon:u(()=>[s(o(T),{icon:"tabler:bell"})]),_:1}),s(o(se),{trigger:"click",options:g.value,onSelect:n},{default:u(()=>[s(o($),{quaternary:""},{default:u(()=>{var _,N;return[s(o(ae),{round:"",size:"small",src:(_=b.value)==null?void 0:_.avatar},{default:u(()=>{var P,q;return[A(E((q=(P=b.value)==null?void 0:P.username)==null?void 0:q.charAt(0).toUpperCase()),1)]}),_:1},8,["src"]),S("span",Te,E((N=b.value)==null?void 0:N.username),1),s(o(T),{icon:"tabler:chevron-down"})]}),_:1})]),_:1},8,["options"])]),_:1})])])}}});const Ie=H(Ee,[["__scopeId","data-v-85ad4a00"]]),xe=["aria-label","title","onKeydown"],Ae={class:"progress-ring",viewBox:"0 0 48 48"},Ce=["stroke-dasharray","stroke-dashoffset"],Me=300,He=23,Be=C({__name:"BackToTop",setup(B){const i=I(!1),d=I(0),p=I([]),f=w(()=>2*Math.PI*He),v=w(()=>f.value*(1-d.value)),k=()=>{const n=[window],a=document.querySelector(".content-wrapper");return a&&n.push(a),document.querySelectorAll('[class*="scroll"], [class*="content"], [class*="wrapper"]').forEach(e=>{const t=window.getComputedStyle(e);(t.overflowY==="auto"||t.overflowY==="scroll"||t.overflow==="auto"||t.overflow==="scroll")&&(n.includes(e)||n.push(e))}),n},b=n=>{if(n===window)return{scrollTop:window.pageYOffset||document.documentElement.scrollTop||0,scrollHeight:document.documentElement.scrollHeight||document.body.scrollHeight||0,clientHeight:window.innerHeight||document.documentElement.clientHeight||0};{const a=n;return{scrollTop:a.scrollTop||0,scrollHeight:a.scrollHeight||0,clientHeight:a.clientHeight||0}}},y=()=>{p.value.forEach(a=>{a===window?window.scrollTo({top:0,behavior:"smooth"}):a.scrollTo({top:0,behavior:"smooth"})})};let h=null;const g=()=>{h===null&&(h=requestAnimationFrame(()=>{const n=p.value;if(n.length===0){h=null;return}let a=0,r=0;n.forEach(e=>{const t=b(e),l=t.scrollTop,_=t.scrollHeight-t.clientHeight;if(l>a&&(a=l),_>0){const N=Math.min(l/_,1);N>r&&(r=N)}}),d.value=r,i.value=a>Me,h=null}))};return Y(()=>{ne(()=>{const n=k();p.value=n,n.forEach(a=>{a.addEventListener("scroll",g,{passive:!0})}),g()})}),Q(()=>{p.value.forEach(n=>{n.removeEventListener("scroll",g)}),p.value=[],h!==null&&(cancelAnimationFrame(h),h=null)}),(n,a)=>(m(),x(ce,{name:"back-to-top-fade"},{default:u(()=>[i.value?(m(),L("div",{key:0,class:"back-to-top-btn",role:"button",tabindex:"0","aria-label":o(c)("Back to top"),title:o(c)("Back to top"),onClick:y,onKeydown:[R(y,["enter"]),R(re(y,["prevent"]),["space"])]},[(m(),L("svg",Ae,[a[0]||(a[0]=S("circle",{class:"progress-ring-bg",cx:"24",cy:"24",r:"23",fill:"none",stroke:"#d1d5db","stroke-width":"2"},null,-1)),S("circle",{class:"progress-ring-progress",cx:"24",cy:"24",r:"23",fill:"none",stroke:"#22c55e","stroke-width":"2","stroke-linecap":"round","stroke-dasharray":f.value,"stroke-dashoffset":v.value},null,8,Ce)])),s(o(T),{icon:"tabler:arrow-up",width:20,height:20,class:"arrow-icon"})],40,xe)):M("",!0)]),_:1}))}});const $e=H(Be,[["__scopeId","data-v-1b4f2300"]]),De={class:"content-wrapper"},K="app.sidebar.collapsed",Je=C({__name:"AppLayout",setup(B){const i=I(localStorage.getItem(K)==="true"),d=I(!1),p=()=>{d.value=window.innerWidth<768,d.value&&(i.value=!0)},f=()=>{i.value=!i.value},v=()=>{i.value=!0},k=()=>{i.value=!1},b=()=>{d.value&&(i.value=!0)},y=()=>{p()};return Y(()=>{p(),window.addEventListener("resize",y)}),Q(()=>{window.removeEventListener("resize",y)}),ie(i,h=>{localStorage.setItem(K,String(h))}),(h,g)=>{const n=O("router-view");return m(),x(o(z),{"has-sider":"",class:"app-layout"},{default:u(()=>[s(o(ue),{bordered:"","collapse-mode":"width","collapsed-width":64,width:240,collapsed:i.value,"onUpdate:collapsed":g[0]||(g[0]=a=>i.value=a),"show-trigger":!d.value,responsive:!0,breakpoint:768,onCollapse:v,onExpand:k},{default:u(()=>[s(Se,{collapsed:i.value,onMenuSelect:b},null,8,["collapsed"])]),_:1},8,["collapsed","show-trigger"]),s(o(z),null,{default:u(()=>[s(o(de),{bordered:""},{default:u(()=>[s(Ie,{onToggleSidebar:f})]),_:1}),s(o(pe),null,{default:u(()=>[S("div",De,[s(n)])]),_:1})]),_:1}),d.value&&!i.value?(m(),L("div",{key:0,class:"mobile-overlay",onClick:f})):M("",!0),s($e)]),_:1})}}});const Ke=H(Je,[["__scopeId","data-v-7c9a0753"]]);export{Ke as default};