@vuu-ui/vuu-shell 0.8.11 → 0.8.12

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/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var eo=Object.create;var be=Object.defineProperty;var to=Object.getOwnPropertyDescriptor;var oo=Object.getOwnPropertyNames;var ao=Object.getPrototypeOf,ro=Object.prototype.hasOwnProperty;var no=(e,t)=>{for(var o in t)be(e,o,{get:t[o],enumerable:!0})},nt=(e,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of oo(t))!ro.call(e,n)&&n!==o&&be(e,n,{get:()=>t[n],enumerable:!(a=to(t,n))||a.enumerable});return e};var M=(e,t,o)=>(o=e!=null?eo(ao(e)):{},nt(t||!e||!e.__esModule?be(o,"default",{value:e,enumerable:!0}):o,e)),so=e=>nt(be({},"__esModule",{value:!0}),e);var Ro={};no(Ro,{ConnectionStatusIcon:()=>io,ContextPanel:()=>et,DEFAULT_DENSITY:()=>Tt,DEFAULT_THEME:()=>xt,DEFAULT_THEME_MODE:()=>bt,DensitySwitch:()=>mo,Feature:()=>ye,FeatureList:()=>He,LayoutManagementContext:()=>Ze,LayoutManagementProvider:()=>vo,LayoutsList:()=>Ye,LeftNav:()=>So,LoginPanel:()=>To,SaveLayoutPanel:()=>yo,SessionEditingForm:()=>Mo,Shell:()=>Do,ShellContextProvider:()=>Vo,ThemeContext:()=>ke,ThemeProvider:()=>Ve,ThemeSwitch:()=>Qe,getAuthDetailsFromCookies:()=>xo,getAuthModeFromCookies:()=>Pt,logout:()=>ze,redirectToLogin:()=>Et,useLayoutManager:()=>Le,useShellContext:()=>Io,useShellLayout:()=>tt,useThemeAttributes:()=>Ce});module.exports=so(Ro);var ue=M(require("react")),st=M(require("classnames"));var X=require("react/jsx-runtime"),io=({connectionStatus:e,className:t,element:o="span",...a})=>{let[n,s]=(0,ue.useState)("vuuConnectingStatus");(0,ue.useEffect)(()=>{switch(e){case"connected":case"reconnected":s("vuuActiveStatus");break;case"connecting":s("vuuConnectingStatus");break;case"disconnected":s("vuuDisconnectedStatus");break;default:break}},[e]);let i=ue.default.createElement(o,{...a,className:(0,st.default)("vuuStatus vuuIcon",n,t)});return(0,X.jsx)(X.Fragment,{children:(0,X.jsxs)("div",{className:"vuuStatus-container salt-theme",children:[i,(0,X.jsxs)("div",{className:"vuuStatus-text",children:["Status: ",e.toUpperCase()]})]})})};var it=require("@salt-ds/lab"),lt=require("react"),ut=M(require("classnames")),ct=require("react/jsx-runtime"),lo="vuuDensitySwitch",uo=["high","medium","low","touch"],co="high",mo=({className:e,defaultDensity:t=co,onChange:o})=>{let a=(0,lt.useCallback)((s,i)=>{o(i)},[o]),n=(0,ut.default)(lo,e);return(0,ct.jsx)(it.Dropdown,{className:n,source:uo,defaultSelected:t,onSelectionChange:a})};var j=M(require("react")),ht=require("@vuu-ui/vuu-layout");var mt=M(require("react")),Q=require("react/jsx-runtime"),Ne=class extends mt.default.Component{constructor(t){super(t),this.state={errorMessage:null}}static getDerivedStateFromError(t){return{errorMessage:t.message}}componentDidCatch(t,o){console.log(`error creating component at ${this.props.url}`),console.log(t,o)}render(){return this.state.errorMessage?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)("h1",{children:"An error occured while creating component."}),(0,Q.jsx)("p",{children:this.state.errorMessage})]}):this.props.children}};var pt=require("react/jsx-runtime"),dt=()=>(0,pt.jsx)("div",{className:"hwLoader",children:"loading"});var ft=async e=>{let t=new CSSStyleSheet;return fetch(e).then(o=>o.text()).then(o=>t.replace(o))};var ge=require("react/jsx-runtime"),Me=new Map,po=e=>{(0,j.useEffect)(()=>()=>{Me.delete(e)},[e]),Me.has(e)||Me.set(e,j.default.lazy(()=>import(e)));let t=Me.get(e);if(t)return t;throw Error(`Unable to load Lazy Feature at url ${e}`)};function fo({url:e,css:t,ComponentProps:o,...a}){t&&ft(t).then(s=>{document.adoptedStyleSheets=[...document.adoptedStyleSheets,s]});let n=po(e);return(0,ge.jsx)(Ne,{url:e,children:(0,ge.jsx)(j.Suspense,{fallback:(0,ge.jsx)(dt,{}),children:(0,ge.jsx)(n,{...a,...o})})})}var ye=j.default.memo(fo);ye.displayName="Feature";(0,ht.registerComponent)("Feature",ye,"view");var Y=require("react"),S=require("@salt-ds/core"),ce=require("@vuu-ui/vuu-ui-controls"),Ee=require("@vuu-ui/vuu-utils");var p=require("react/jsx-runtime"),P="saveLayoutPanel",Pe=`${P}-formField`,ho=["Group 1","Group 2","Group 3","Group 4","Group 5"],go=["Value 1","Value 2","Value 3"],gt=["Value 1","Value 2","Value 3"],yo=e=>{let{onCancel:t,onSave:o,componentId:a}=e,[n,s]=(0,Y.useState)(""),[i,d]=(0,Y.useState)(""),[r,c]=(0,Y.useState)([]),[u,L]=(0,Y.useState)(gt[0]),[f,x]=(0,Y.useState)();(0,Y.useEffect)(()=>{a&&(0,Ee.takeScreenshot)(document.getElementById(a)).then(m=>x(m))},[a]);let g=()=>{o({name:n,group:i,screenshot:f!=null?f:"",user:"User",date:(0,Ee.formatDate)(new Date,"dd.mm.yyyy")})};return(0,p.jsxs)("div",{className:`${P}-panelContainer`,children:[(0,p.jsxs)("div",{className:`${P}-panelContent`,children:[(0,p.jsxs)("div",{className:`${P}-formContainer`,children:[(0,p.jsxs)(S.FormField,{className:Pe,children:[(0,p.jsx)(S.FormFieldLabel,{children:"Group"}),(0,p.jsx)(ce.ComboBox,{source:ho,allowFreeText:!0,InputProps:{inputProps:{className:`${P}-inputText`,placeholder:"Select Group or Enter New Name",onChange:m=>d(m.target.value)}},width:120,onSelectionChange:(m,F)=>d(F||"")})]}),(0,p.jsxs)(S.FormField,{className:Pe,children:[(0,p.jsx)(S.FormFieldLabel,{children:"Layout Name"}),(0,p.jsx)(S.Input,{inputProps:{className:`${P}-inputText`,placeholder:"Enter Layout Name"},onChange:m=>s(m.target.value),value:n})]}),(0,p.jsxs)(S.FormField,{className:Pe,children:[(0,p.jsx)(S.FormFieldLabel,{children:"Some Layout Setting"}),(0,p.jsx)("div",{className:`${P}-settingsGroup`,children:go.map((m,F)=>(0,p.jsx)(ce.Checkbox,{onToggle:()=>c(R=>R.includes(m)?R.filter(K=>K!==m):[...R,m]),checked:r.includes(m),label:m},F))})]}),(0,p.jsxs)(S.FormField,{className:Pe,children:[(0,p.jsx)(S.FormFieldLabel,{children:"Some Layout Setting"}),(0,p.jsx)("div",{className:`${P}-settingsGroup`,children:gt.map((m,F)=>(0,p.jsx)(ce.RadioButton,{onClick:()=>L(m),checked:u===m,label:m,groupName:"radioGroup"},F))})]})]}),(0,p.jsx)("div",{className:`${P}-screenshotContainer`,children:f?(0,p.jsx)("img",{className:`${P}-screenshot`,src:f,alt:"screenshot of current layout"}):(0,p.jsx)(S.Text,{className:"screenshot",children:"No screenshot available"})})]}),(0,p.jsxs)("div",{className:`${P}-buttonsContainer`,children:[(0,p.jsx)(S.Button,{className:`${P}-cancelButton`,onClick:t,children:"Cancel"}),(0,p.jsx)(S.Button,{className:`${P}-saveButton`,onClick:g,disabled:n===""||i==="",children:"Save"})]})]})};var vt=require("@vuu-ui/vuu-ui-controls");var E=M(require("react")),we=require("@vuu-ui/vuu-layout"),Fe=require("@vuu-ui/vuu-layout/"),yt=require("react/jsx-runtime"),ve=new we.LocalLayoutPersistenceManager,Ze=E.default.createContext({layoutMetadata:[],saveLayout:()=>{},applicationLayout:Fe.defaultLayout,saveApplicationLayout:()=>{},loadLayoutById:()=>Fe.defaultLayout}),vo=e=>{let[t,o]=(0,E.useState)([]),[a,n]=(0,E.useState)(Fe.defaultLayout);(0,E.useEffect)(()=>{ve.loadMetadata().then(r=>{o(r)}),ve.loadApplicationLayout().then(r=>{n(r)})},[]);let s=(0,E.useCallback)(r=>{n(r),ve.saveApplicationLayout(r)},[]),i=(0,E.useCallback)(r=>{let c=(0,we.resolveJSONPath)(a,"#main-tabs.ACTIVE_CHILD");c&&ve.createLayout(r,c).then(u=>{let L={...r,id:u};o(f=>[...f,L])})},[a]),d=(0,E.useCallback)(r=>{ve.loadLayout(r).then(c=>{n(u=>({...u,children:[...u.children||[],c]}))})},[]);return(0,yt.jsx)(Ze.Provider,{value:{layoutMetadata:t,saveLayout:i,applicationLayout:a,saveApplicationLayout:s,loadLayoutById:d},children:e.children})},Le=()=>(0,E.useContext)(Ze);var T=require("react/jsx-runtime"),ee="vuuLayoutList",Ye=e=>{let{layoutMetadata:t,loadLayoutById:o}=Le(),a=s=>{s&&o(s)},n=t.reduce((s,i)=>s[i.group]?{...s,[i.group]:[...s[i.group],i]}:{...s,[i.group]:[i]},{});return(0,T.jsxs)("div",{className:ee,...e,children:[(0,T.jsx)("div",{className:`${ee}-header`,children:"My Layouts"}),(0,T.jsx)(vt.List,{height:"fit-content",source:Object.entries(n),ListItem:({item:s})=>{if(!s)return(0,T.jsx)(T.Fragment,{});let[i,d]=s;return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)("div",{className:`${ee}-groupName`,children:i}),d.map(r=>(0,T.jsxs)("div",{className:`${ee}-layoutContainer`,onClick:()=>a(r==null?void 0:r.id),children:[(0,T.jsx)("img",{className:`${ee}-screenshot`,src:r==null?void 0:r.screenshot}),(0,T.jsxs)("div",{children:[(0,T.jsx)("div",{className:`${ee}-layoutName`,children:r==null?void 0:r.name}),(0,T.jsx)("div",{className:`${ee}-layoutDetails`,children:(0,T.jsx)("div",{children:`${r==null?void 0:r.user}, ${r==null?void 0:r.date}`})})]})]},r==null?void 0:r.id))]})}})]})};var Lt=require("react"),v=require("react/jsx-runtime"),qe=(0,Lt.memo)(()=>(0,v.jsxs)("svg",{width:"44",height:"45",viewBox:"0 0 44 45",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,v.jsxs)("g",{clipPath:"url(#clip0_217_6990)",children:[(0,v.jsx)("path",{d:"M39.8642 15.5509L35.9196 7.58974L34.3369 6.85464L24.6235 22.0825L39.1628 30.618L42.3152 25.6347L39.8642 15.5509Z",fill:"url(#paint0_linear_217_6990)"}),(0,v.jsx)("path",{d:"M42.6246 24.8716C41.9199 25.9157 40.9625 26.824 39.767 27.4905C38.424 28.2396 36.9563 28.597 35.5081 28.597C32.7541 28.597 30.0715 27.3094 28.4466 24.9855L15.772 3.90967L15.7655 3.9206C13.3615 0.137431 8.25372 -1.13143 4.24754 1.10507C0.178173 3.37435 -1.20852 8.39359 1.14854 12.3125L18.3445 40.9095C19.1108 42.1846 20.1816 43.1834 21.4144 43.8764C21.4241 43.8826 21.4338 43.8889 21.4435 43.8951C21.4484 43.8982 21.4549 43.9013 21.4597 43.9045C22.0332 44.2228 22.6423 44.471 23.2725 44.6536C23.3194 44.6677 23.368 44.6817 23.415 44.6942C23.6418 44.7551 23.8702 44.8097 24.1019 44.8534C24.1456 44.8612 24.1894 44.8659 24.2331 44.8737C24.4194 44.9049 24.6073 44.9314 24.7952 44.9501C24.8698 44.9579 24.9443 44.9658 25.0188 44.9704C25.2342 44.9876 25.4497 44.9985 25.6668 45.0001C25.6781 45.0001 25.6895 45.0001 25.6992 45.0001C25.7024 45.0001 25.704 45.0001 25.7073 45.0001C25.7105 45.0001 25.7121 45.0001 25.7154 45.0001C25.9503 45.0001 26.1868 44.9876 26.4217 44.9689C26.4751 44.9642 26.5286 44.9595 26.5837 44.9533C26.8137 44.9299 27.0438 44.9002 27.2738 44.8596C27.277 44.8596 27.2803 44.8596 27.2835 44.8596C27.5362 44.8144 27.7889 44.7551 28.0384 44.6864C28.0546 44.6817 28.0692 44.677 28.0854 44.6723C28.4483 44.5709 28.8063 44.4445 29.1594 44.2931C29.1659 44.29 29.174 44.2868 29.1805 44.2837C29.4494 44.1682 29.7151 44.0418 29.9759 43.8967C30.24 43.75 30.491 43.5908 30.7308 43.4206C30.9398 43.2739 31.1407 43.1179 31.3367 42.9524C31.5748 42.7495 31.8 42.5373 32.009 42.3141C32.1661 42.1471 32.3168 41.9723 32.4609 41.7913C32.5079 41.732 32.5517 41.6711 32.5954 41.6118C32.6942 41.4807 32.7882 41.3465 32.8789 41.2091C32.9259 41.1373 32.9728 41.0671 33.0182 40.9953C33.036 40.9672 33.0555 40.9407 33.0717 40.9126L42.7153 24.8763H42.6214L42.6246 24.8716Z",fill:"url(#paint1_linear_217_6990)"}),(0,v.jsx)("path",{d:"M42.8402 16.4218L42.1112 15.2232L38.9636 9.58433L37.504 7.19644C37.2286 6.56123 36.579 6.11331 35.8176 6.11331C34.8083 6.11331 33.9919 6.90147 33.9919 7.87223C33.9919 8.20154 34.0907 8.50432 34.2543 8.76808L34.2349 8.78056L39.9048 18.0808C40.5884 19.2186 40.7715 20.5437 40.4199 21.8141C40.0684 23.0845 39.226 24.1458 38.045 24.806C37.2675 25.2398 36.3846 25.4693 35.4936 25.4693C33.6727 25.4693 31.9766 24.5281 31.0662 23.0143L22.9161 9.63271H22.9323L19.4899 3.90958L19.4834 3.92051C19.4235 3.8253 19.3538 3.73947 19.2907 3.64738L19.1935 3.48663C19.1935 3.48663 19.1854 3.49131 19.1821 3.49443C17.5654 1.27666 14.9799 0.0390178 12.3118 0.00936427V0H7.91199V0.02185C10.9851 -0.184164 14.0582 1.23296 15.7656 3.92051L15.7721 3.90958L28.4451 24.987C30.0699 27.3093 32.7542 28.5985 35.5066 28.5985C36.9548 28.5985 38.4225 28.2426 39.7655 27.4919C40.961 26.8255 41.9168 25.9156 42.6231 24.8731H42.717L42.6846 24.9261C43.1366 24.2347 43.4833 23.4731 43.7068 22.6615C44.2916 20.5452 43.9871 18.3352 42.8369 16.4234L42.8402 16.4218Z",fill:"#F37880"}),(0,v.jsxs)("g",{opacity:"0.86",children:[(0,v.jsx)("path",{d:"M34.2332 8.78212L39.9031 18.0824C40.5868 19.2202 40.7698 20.5452 40.4183 21.8156C40.2044 22.5897 39.8059 23.2858 39.2616 23.8617C39.9744 23.2343 40.4879 22.4243 40.7423 21.5035C41.0938 20.2331 40.9107 18.908 40.2271 17.7703L34.5572 8.46998L34.5767 8.4575C34.413 8.19374 34.3142 7.89096 34.3142 7.56165C34.3142 7.15586 34.4584 6.78285 34.6982 6.48476C34.2672 6.80626 33.9902 7.30881 33.9902 7.87379C33.9902 8.2031 34.0891 8.50588 34.2527 8.76964L34.2332 8.78212Z",fill:"white"}),(0,v.jsx)("path",{d:"M42.6917 24.9169L42.6863 24.9256C42.6863 24.9256 42.6899 24.9187 42.6935 24.9152C42.6935 24.9152 42.6935 24.9152 42.6935 24.9169H42.6917Z",fill:"white"}),(0,v.jsx)("path",{d:"M40.0911 27.1798C38.7481 27.9289 37.2804 28.2863 35.8322 28.2863C33.0782 28.2863 30.3955 26.9988 28.7707 24.6749L16.0961 3.59744L16.0896 3.60837C14.9281 1.78077 13.1364 0.543128 11.1422 0H7.91199V0.02185C10.9851 -0.184164 14.0582 1.23296 15.7656 3.92051L15.7721 3.90958L28.4451 24.987C30.0699 27.3093 32.7542 28.5985 35.5066 28.5985C36.9548 28.5985 38.4225 28.2426 39.7655 27.4919C40.4815 27.0924 41.1084 26.6055 41.6511 26.0561C41.1862 26.479 40.6662 26.8583 40.0894 27.1798H40.0911Z",fill:"white"})]})]}),(0,v.jsxs)("defs",{children:[(0,v.jsxs)("linearGradient",{id:"paint0_linear_217_6990",x1:"24.6235",y1:"18.7363",x2:"42.3152",y2:"18.7363",gradientUnits:"userSpaceOnUse",children:[(0,v.jsx)("stop",{stopColor:"#4906A5"}),(0,v.jsx)("stop",{offset:"1",stopColor:"#D3423A"})]}),(0,v.jsxs)("linearGradient",{id:"paint1_linear_217_6990",x1:"-2.35794e-05",y1:"22.5009",x2:"42.7186",y2:"22.5009",gradientUnits:"userSpaceOnUse",children:[(0,v.jsx)("stop",{stopColor:"#7C06A5"}),(0,v.jsx)("stop",{offset:"1",stopColor:"#D3423A"})]}),(0,v.jsx)("clipPath",{id:"clip0_217_6990",children:(0,v.jsx)("rect",{width:"44",height:"45",fill:"white"})})]})]}));qe.displayName="VuuLogo";var ae=require("@vuu-ui/vuu-layout"),q=require("@vuu-ui/vuu-ui-controls"),Ie=M(require("classnames"));var oe=require("react");var De=require("@vuu-ui/vuu-layout");var te=require("react/jsx-runtime"),Ct="vuuFeatureList",He=({features:e,title:t="VUU TABLES",...o})=>{let a={};return console.log({features:e}),(0,te.jsxs)("div",{...o,className:Ct,children:[(0,te.jsx)("div",{className:`${Ct}-header`,children:t}),(0,te.jsx)(De.Palette,{orientation:"vertical",ViewProps:a,children:e.map((n,s)=>(0,te.jsx)(De.PaletteItem,{closeable:!0,label:n.title,resizeable:!0,resize:"defer",header:!0,children:(0,te.jsx)(ye,{...n})},s))})]})};var B=require("react"),St=M(require("classnames")),Nt=require("react/jsx-runtime"),Tt="medium",xt="salt-theme",bt="light",ke=(0,B.createContext)({density:"high",theme:"vuu",themeMode:"light"}),Lo=["vuu","vuu-density-high","light"],Ce=e=>{let t=(0,B.useContext)(ke);return e?[e.themeClass,e.densityClass,e.dataMode]:t?[`${t.theme}-theme`,`${t.theme}-density-${t.density}`,t.themeMode]:Lo},Co=(e,t,o,a)=>{var n;return(0,B.isValidElement)(e)?(0,B.cloneElement)(e,{className:(0,St.default)((n=e.props)==null?void 0:n.className,`${t}-theme`,`${t}-density-${a}`),"data-mode":o}):(console.warn(`
1
+ "use strict";var Qt=Object.create;var be=Object.defineProperty;var jt=Object.getOwnPropertyDescriptor;var eo=Object.getOwnPropertyNames;var to=Object.getPrototypeOf,oo=Object.prototype.hasOwnProperty;var ao=(e,t)=>{for(var o in t)be(e,o,{get:t[o],enumerable:!0})},rt=(e,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of eo(t))!oo.call(e,r)&&r!==o&&be(e,r,{get:()=>t[r],enumerable:!(a=jt(t,r))||a.enumerable});return e};var P=(e,t,o)=>(o=e!=null?Qt(to(e)):{},rt(t||!e||!e.__esModule?be(o,"default",{value:e,enumerable:!0}):o,e)),ro=e=>rt(be({},"__esModule",{value:!0}),e);var Io={};ao(Io,{ConnectionStatusIcon:()=>no,ContextPanel:()=>je,DEFAULT_DENSITY:()=>Lt,DEFAULT_THEME:()=>Tt,DEFAULT_THEME_MODE:()=>St,DensitySwitch:()=>lo,Feature:()=>ge,FeatureList:()=>we,LayoutManagementContext:()=>Je,LayoutManagementProvider:()=>go,LayoutsList:()=>Ye,LeftNav:()=>Lo,LoginPanel:()=>To,SaveLayoutPanel:()=>ho,SessionEditingForm:()=>No,Shell:()=>Fo,ShellContextProvider:()=>Vo,ThemeContext:()=>He,ThemeProvider:()=>ke,ThemeSwitch:()=>Ze,getAuthDetailsFromCookies:()=>So,getAuthModeFromCookies:()=>Ct,isTableSchema:()=>wo,isWildcardSchema:()=>Do,logout:()=>Ke,redirectToLogin:()=>Pt,useLayoutManager:()=>ve,useShellContext:()=>Ro,useShellLayout:()=>et,useThemeAttributes:()=>Le});module.exports=ro(Io);var ue=P(require("react")),nt=P(require("classnames"));var Z=require("react/jsx-runtime"),no=({connectionStatus:e,className:t,element:o="span",...a})=>{let[r,n]=(0,ue.useState)("vuuConnectingStatus");(0,ue.useEffect)(()=>{switch(e){case"connected":case"reconnected":n("vuuActiveStatus");break;case"connecting":n("vuuConnectingStatus");break;case"disconnected":n("vuuDisconnectedStatus");break;default:break}},[e]);let u=ue.default.createElement(o,{...a,className:(0,nt.default)("vuuStatus vuuIcon",r,t)});return(0,Z.jsx)(Z.Fragment,{children:(0,Z.jsxs)("div",{className:"vuuStatus-container salt-theme",children:[u,(0,Z.jsxs)("div",{className:"vuuStatus-text",children:["Status: ",e.toUpperCase()]})]})})};var st=require("@salt-ds/lab"),it=require("react"),ut=P(require("classnames")),lt=require("react/jsx-runtime"),so="vuuDensitySwitch",io=["high","medium","low","touch"],uo="high",lo=({className:e,defaultDensity:t=uo,onChange:o})=>{let a=(0,it.useCallback)((n,u)=>{o(u)},[o]),r=(0,ut.default)(so,e);return(0,lt.jsx)(st.Dropdown,{className:r,source:io,defaultSelected:t,onSelectionChange:a})};var j=P(require("react")),ft=require("@vuu-ui/vuu-layout");var ct=P(require("react")),Q=require("react/jsx-runtime"),Ne=class extends ct.default.Component{constructor(t){super(t),this.state={errorMessage:null}}static getDerivedStateFromError(t){return{errorMessage:t.message}}componentDidCatch(t,o){console.log(`error creating component at ${this.props.url}`),console.log(t,o)}render(){return this.state.errorMessage?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)("h1",{children:"An error occured while creating component."}),(0,Q.jsx)("p",{children:this.state.errorMessage})]}):this.props.children}};var dt=require("react/jsx-runtime"),mt=()=>(0,dt.jsx)("div",{className:"hwLoader",children:"loading"});var pt=async e=>{let t=new CSSStyleSheet;return fetch(e).then(o=>o.text()).then(o=>t.replace(o))};var he=require("react/jsx-runtime"),Ce=new Map,co=e=>{(0,j.useEffect)(()=>()=>{Ce.delete(e)},[e]),Ce.has(e)||Ce.set(e,j.default.lazy(()=>import(e)));let t=Ce.get(e);if(t)return t;throw Error(`Unable to load Lazy Feature at url ${e}`)};function mo({url:e,css:t,ComponentProps:o,...a}){t&&pt(t).then(n=>{document.adoptedStyleSheets=[...document.adoptedStyleSheets,n]});let r=co(e);return(0,he.jsx)(Ne,{url:e,children:(0,he.jsx)(j.Suspense,{fallback:(0,he.jsx)(mt,{}),children:(0,he.jsx)(r,{...a,...o})})})}var ge=j.default.memo(mo);ge.displayName="Feature";(0,ft.registerComponent)("Feature",ge,"view");var Y=require("react"),S=require("@salt-ds/core"),le=require("@vuu-ui/vuu-ui-controls"),Me=require("@vuu-ui/vuu-utils");var f=require("react/jsx-runtime"),M="saveLayoutPanel",Pe=`${M}-formField`,po=["Group 1","Group 2","Group 3","Group 4","Group 5"],fo=["Value 1","Value 2","Value 3"],ht=["Value 1","Value 2","Value 3"],ho=e=>{let{onCancel:t,onSave:o,componentId:a}=e,[r,n]=(0,Y.useState)(""),[u,d]=(0,Y.useState)(""),[s,i]=(0,Y.useState)([]),[l,h]=(0,Y.useState)(ht[0]),[p,y]=(0,Y.useState)();(0,Y.useEffect)(()=>{a&&(0,Me.takeScreenshot)(document.getElementById(a)).then(m=>y(m))},[a]);let v=()=>{o({name:r,group:u,screenshot:p!=null?p:"",user:"User",date:(0,Me.formatDate)(new Date,"dd.mm.yyyy")})};return(0,f.jsxs)("div",{className:`${M}-panelContainer`,children:[(0,f.jsxs)("div",{className:`${M}-panelContent`,children:[(0,f.jsxs)("div",{className:`${M}-formContainer`,children:[(0,f.jsxs)(S.FormField,{className:Pe,children:[(0,f.jsx)(S.FormFieldLabel,{children:"Group"}),(0,f.jsx)(le.ComboBox,{source:po,allowFreeText:!0,InputProps:{inputProps:{className:`${M}-inputText`,placeholder:"Select Group or Enter New Name",onChange:m=>d(m.target.value)}},width:"100%",onSelectionChange:(m,E)=>d(E||"")})]}),(0,f.jsxs)(S.FormField,{className:Pe,children:[(0,f.jsx)(S.FormFieldLabel,{children:"Layout Name"}),(0,f.jsx)(S.Input,{inputProps:{className:`${M}-inputText`,placeholder:"Enter Layout Name"},onChange:m=>n(m.target.value),value:r})]}),(0,f.jsxs)(S.FormField,{className:Pe,children:[(0,f.jsx)(S.FormFieldLabel,{children:"Some Layout Setting"}),(0,f.jsx)("div",{className:`${M}-settingsGroup`,children:fo.map((m,E)=>(0,f.jsx)(le.Checkbox,{onToggle:()=>i(R=>R.includes(m)?R.filter(X=>X!==m):[...R,m]),checked:s.includes(m),label:m},E))})]}),(0,f.jsxs)(S.FormField,{className:Pe,children:[(0,f.jsx)(S.FormFieldLabel,{children:"Some Layout Setting"}),(0,f.jsx)("div",{className:`${M}-settingsGroup`,children:ht.map((m,E)=>(0,f.jsx)(le.RadioButton,{onClick:()=>h(m),checked:l===m,label:m,groupName:"radioGroup"},E))})]})]}),(0,f.jsx)("div",{className:`${M}-screenshotContainer`,children:p?(0,f.jsx)("img",{className:`${M}-screenshot`,src:p,alt:"screenshot of current layout"}):(0,f.jsx)(S.Text,{className:"screenshot",children:"No screenshot available"})})]}),(0,f.jsxs)("div",{className:`${M}-buttonsContainer`,children:[(0,f.jsx)(S.Button,{className:`${M}-cancelButton`,onClick:t,children:"Cancel"}),(0,f.jsx)(S.Button,{className:`${M}-saveButton`,onClick:v,disabled:r===""||u==="",children:"Save"})]})]})};var yt=require("@vuu-ui/vuu-ui-controls");var b=P(require("react")),Fe=require("@vuu-ui/vuu-layout"),Ee=require("@vuu-ui/vuu-layout/"),gt=require("react/jsx-runtime"),ye=new Fe.LocalLayoutPersistenceManager,Je=b.default.createContext({layoutMetadata:[],saveLayout:()=>{},applicationLayout:Ee.defaultLayout,saveApplicationLayout:()=>{},loadLayoutById:()=>Ee.defaultLayout}),go=e=>{let[t,o]=(0,b.useState)([]),[,a]=(0,b.useState)({}),r=(0,b.useRef)(Ee.defaultLayout),n=(0,b.useCallback)((i,l=!0)=>{r.current=i,l&&a({})},[]);(0,b.useEffect)(()=>{ye.loadMetadata().then(i=>{o(i)}),ye.loadApplicationLayout().then(i=>{n(i)})},[n]);let u=(0,b.useCallback)(i=>{n(i,!1),ye.saveApplicationLayout(i)},[n]),d=(0,b.useCallback)(i=>{let l=(0,Fe.resolveJSONPath)(r.current,"#main-tabs.ACTIVE_CHILD");l&&ye.createLayout(i,l).then(h=>{let p={...i,id:h};o(y=>[...y,p])})},[]),s=(0,b.useCallback)(i=>{ye.loadLayout(i).then(l=>{var p,y;let{current:h}=r;n({...h,active:(y=(p=h.children)==null?void 0:p.length)!=null?y:0,children:[...h.children||[],l]})})},[n]);return(0,gt.jsx)(Je.Provider,{value:{layoutMetadata:t,saveLayout:d,applicationLayout:r.current,saveApplicationLayout:u,loadLayoutById:s},children:e.children})},ve=()=>(0,b.useContext)(Je);var x=require("react/jsx-runtime"),ee="vuuLayoutList",Ye=e=>{let{layoutMetadata:t,loadLayoutById:o}=ve(),a=n=>{n&&o(n)},r=t.reduce((n,u)=>n[u.group]?{...n,[u.group]:[...n[u.group],u]}:{...n,[u.group]:[u]},{});return(0,x.jsxs)("div",{className:ee,...e,children:[(0,x.jsx)("div",{className:`${ee}-header`,children:"My Layouts"}),(0,x.jsx)(yt.List,{height:"auto",source:Object.entries(r),ListItem:({item:n})=>{if(!n)return(0,x.jsx)(x.Fragment,{});let[u,d]=n;return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:`${ee}-groupName`,children:u}),d.map(s=>(0,x.jsxs)("div",{className:`${ee}-layoutContainer`,onClick:()=>a(s==null?void 0:s.id),children:[(0,x.jsx)("img",{className:`${ee}-screenshot`,src:s==null?void 0:s.screenshot}),(0,x.jsxs)("div",{children:[(0,x.jsx)("div",{className:`${ee}-layoutName`,children:s==null?void 0:s.name}),(0,x.jsx)("div",{className:`${ee}-layoutDetails`,children:(0,x.jsx)("div",{children:`${s==null?void 0:s.user}, ${s==null?void 0:s.date}`})})]})]},s==null?void 0:s.id))]})}})]})};var bt=require("@vuu-ui/vuu-icons"),oe=require("@vuu-ui/vuu-layout"),q=require("@vuu-ui/vuu-ui-controls"),Ve=P(require("classnames"));var te=require("react");var De=require("@vuu-ui/vuu-layout");var W=require("react/jsx-runtime"),We="vuuFeatureList",we=({features:e,title:t="VUU TABLES",...o})=>{let a={},r={height:"100%"};return(0,W.jsxs)("div",{...o,className:We,children:[(0,W.jsx)("div",{className:`${We}-header`,children:t}),(0,W.jsx)("div",{className:`${We}-content`,children:(0,W.jsx)(De.Palette,{orientation:"vertical",ListProps:r,ViewProps:a,children:e.map((n,u)=>(0,W.jsx)(De.PaletteItem,{closeable:!0,label:n.title,resizeable:!0,resize:"defer",header:!0,children:(0,W.jsx)(ge,{...n})},u))})})]})};var $=require("react"),vt=P(require("classnames")),xt=require("react/jsx-runtime"),Lt="medium",Tt="salt-theme",St="light",He=(0,$.createContext)({density:"high",theme:"vuu",themeMode:"light"}),yo=["vuu","vuu-density-high","light"],Le=e=>{let t=(0,$.useContext)(He);return e?[e.themeClass,e.densityClass,e.dataMode]:t?[`${t.theme}-theme`,`${t.theme}-density-${t.density}`,t.themeMode]:yo},vo=(e,t,o,a)=>{var r;return(0,$.isValidElement)(e)?(0,$.cloneElement)(e,{className:(0,vt.default)((r=e.props)==null?void 0:r.className,`${t}-theme`,`${t}-density-${a}`),"data-mode":o}):(console.warn(`
2
2
  ThemeProvider can only apply CSS classes for theming to a single nested child element of the ThemeProvider.
3
- Wrap elements with a single container`),e)},Ve=({applyThemeClasses:e=!1,children:t,theme:o,themeMode:a,density:n})=>{var f,x,g;let{density:s,themeMode:i,theme:d}=(0,B.useContext)(ke),r=(f=n!=null?n:s)!=null?f:Tt,c=(x=a!=null?a:i)!=null?x:bt,u=(g=o!=null?o:d)!=null?g:xt,L=e?Co(t,u,c,r):t;return(0,Nt.jsx)(ke.Provider,{value:{themeMode:c,density:r,theme:u},children:L})};Ve.displayName="ThemeProvider";var h=require("react/jsx-runtime"),me="vuuLeftNav",So=({"data-path":e,features:t,onResize:o,sizeCollapsed:a=80,sizeContent:n=240,sizeExpanded:s=240,style:i,tableFeatures:d,...r})=>{let c=(0,ae.useLayoutProviderDispatch)(),[u,L]=(0,oe.useState)({activeTabIndex:0,navStatus:"menu-full"}),[f]=Ce(),x=(0,oe.useCallback)(y=>{switch(y){case"menu-icons":return s;case"menu-full":return a;case"menu-full-content":return a+n;case"menu-icons-content":return s+n}},[a,n,s]),g=y=>{switch(y){case"menu-icons":return"menu-full";case"menu-full":return"menu-icons";case"menu-full-content":return"menu-icons-content";case"menu-icons-content":return"menu-full-content"}},m=(0,oe.useCallback)((y,w)=>{if(w===0){let N=y==="menu-full-content"?"menu-full":y==="menu-icons-content"?"menu-icons":y;return N==="menu-icons"?[a,N]:[s,N]}else{let N=y==="menu-full"?"menu-full-content":y==="menu-icons"?"menu-icons-content":y;return N==="menu-icons-content"?[a+n,N]:[s+n,N]}},[a,n,s]),F=(0,oe.useCallback)(y=>{let[w,N]=m(u.navStatus,y);L({activeTabIndex:y,navStatus:N}),c({type:ae.Action.LAYOUT_RESIZE,path:e,size:w})},[c,m,u,e]),R=(0,oe.useCallback)(()=>{let{activeTabIndex:y,navStatus:w}=u;L({activeTabIndex:y,navStatus:g(w)}),c({type:ae.Action.LAYOUT_RESIZE,path:e,size:x(w)})},[c,u,e,x]),K={...i,"--nav-menu-collapsed-width":`${a}px`,"--nav-menu-expanded-width":`${s}px`};return(0,h.jsxs)("div",{...r,className:(0,Ie.default)(me,`${me}-${u.navStatus}`),style:K,children:[(0,h.jsxs)("div",{className:(0,Ie.default)(`${me}-menu-primary`,f),"data-mode":"dark",children:[(0,h.jsx)("div",{className:"vuuLeftNav-logo",children:(0,h.jsx)(qe,{})}),(0,h.jsx)("div",{className:`${me}-main`,children:(0,h.jsxs)(q.Tabstrip,{activeTabIndex:u.activeTabIndex,animateSelectionThumb:!1,className:`${me}-Tabstrip`,onActiveChange:F,orientation:"vertical",children:[(0,h.jsx)(q.Tab,{"data-icon":"demo",label:"DEMO"}),(0,h.jsx)(q.Tab,{"data-icon":"features",label:"VUU FEATURES"}),(0,h.jsx)(q.Tab,{"data-icon":"tables",label:"VUU TABLES"}),(0,h.jsx)(q.Tab,{"data-icon":"templates",label:"LAYOUT TEMPLATES"}),(0,h.jsx)(q.Tab,{"data-icon":"layouts",label:"MY LAYOUTS"})]})}),(0,h.jsx)("div",{className:"vuuLeftNav-buttonBar",children:(0,h.jsx)("button",{className:(0,Ie.default)("vuuLeftNav-toggleButton",{"vuuLeftNav-toggleButton-open":u.navStatus.startsWith("menu-full"),"vuuLeftNav-toggleButton-closed":u.navStatus.startsWith("menu-icons")}),"data-icon":u.navStatus.startsWith("menu-full")?"chevron-left":"chevron-right",onClick:R})})]}),(0,h.jsxs)(ae.Stack,{active:u.activeTabIndex-1,className:`${me}-menu-secondary`,showTabs:!1,children:[(0,h.jsx)(He,{features:t,title:"Vuu Features"}),(0,h.jsx)(He,{features:d,title:"Vuu Tables"}),(0,h.jsx)("div",{style:{background:"green",height:"100%"},children:"Layout Templates"}),(0,h.jsx)("div",{className:"vuuLeftNav-drawer",children:(0,h.jsx)(Ye,{})})]})]})};var We=require("react"),H=require("@salt-ds/core");var k=require("react/jsx-runtime"),Mt="vuuLoginPanel",To=({requirePassword:e=!0,onSubmit:t})=>{let[o,a]=(0,We.useState)(""),[n,s]=(0,We.useState)(""),i=()=>{t(o,n)},d=u=>{a(u.target.value)},r=u=>{s(u.target.value)},c=o.trim()!==""&&(e===!1||n.trim()!=="");return(0,k.jsxs)("div",{className:Mt,children:[(0,k.jsxs)(H.FormField,{style:{width:200},children:[(0,k.jsx)(H.FormFieldLabel,{children:"Username"}),(0,k.jsx)(H.Input,{value:o,id:"text-username",onChange:d})]}),e?(0,k.jsxs)(H.FormField,{style:{width:200},children:[(0,k.jsx)(H.FormFieldLabel,{children:"Password"}),(0,k.jsx)(H.Input,{inputProps:{type:"password"},value:n,id:"text-password",onChange:r})]}):null,(0,k.jsx)(H.Button,{className:`${Mt}-login`,disabled:!c,onClick:i,variant:"cta",children:"Login"})]})};var Re=require("@vuu-ui/vuu-utils"),Pt=()=>{let e=(0,Re.getCookieValue)("vuu-auth-mode");return e!=null?e:""},xo=()=>{let e=(0,Re.getCookieValue)("vuu-username"),t=(0,Re.getCookieValue)("vuu-auth-token");return[e,t]},bo=()=>Pt()==="login"?"login.html":"demo.html",Et=(e=bo())=>{window.location.href=e},ze=e=>{document.cookie="vuu-username= ; expires = Thu, 01 Jan 1970 00:00:00 GMT",document.cookie="vuu-auth-token= ; expires = Thu, 01 Jan 1970 00:00:00 GMT",Et(e)};var C=require("react"),Ke=M(require("classnames")),Ht=require("@salt-ds/core"),Xe=require("@salt-ds/core"),de=require("@vuu-ui/vuu-data"),re=require("@vuu-ui/vuu-utils");var D=require("react/jsx-runtime"),_="vuuSessionEditingForm",Ft=(e,t)=>{let o=e.find(a=>a.name===t);if(o)return o;throw Error(`SessionEditingForm, no field '${t}' found`)},wt=e=>{let{dataset:{field:t},value:o}=e.target;if(t===void 0)throw Error("SessionEditingForm, form field has no field name");return[t,o]},O={uninitialised:0,unchanged:1,changed:2,invalid:3};function Dt(e,t,o=!1){switch(t){case"int":case"long":{let a=parseInt(e,10);if((0,re.isValidNumber)(a))return a;if(o)throw Error("SessionEditingForm getTypedValue");return}case"double":{let a=parseFloat(e);return(0,re.isValidNumber)(a)?a:void 0}case"boolean":return e==="true";default:return e}}var No=(e,t)=>{if(e)return e;if(t)return new de.RemoteDataSource({bufferSize:0,table:t.table,columns:t.columns.map(o=>o.name)});throw Error("SessionEditingForm: either a DataSource or a TableSchema must be provided")},Mo=({className:e,config:{fields:t,key:o},dataSource:a,id:n,onClose:s,schema:i,...d})=>{let[r,c]=(0,C.useState)(),[u,L]=(0,C.useState)(""),f=(0,C.useRef)(null),x=(0,C.useRef)(),g=(0,C.useRef)(O.uninitialised),m=(0,C.useMemo)(()=>{let l=U=>{if(A){let $={};for(let le of m.columns)$[le]=U[A[le]];g.current===O.uninitialised&&(g.current=O.unchanged,x.current=$),c($)}},b=No(a,i),A=(0,re.buildColumnMap)(b.columns);return b.subscribe({range:{from:0,to:5}},U=>{U.type==="viewport-update"&&U.rows&&(g.current===O.uninitialised?l(U.rows[0]):console.log("what do we do with server updates"))}),b},[a,i]),F=(0,Ht.useIdMemo)(n),R=(0,C.useCallback)(l=>{let[b,A]=wt(l),{type:U}=Ft(t,b),$=Dt(A,U);c((le={})=>{let rt={...le,[b]:$},jt=(0,re.shallowEquals)(rt,x.current);return g.current=jt?O.unchanged:$!==void 0?O.changed:O.invalid,rt})},[t]),K=(0,C.useCallback)(l=>{let[b,A]=wt(l),{type:U}=Ft(t,b),$=r==null?void 0:r[o],le=Dt(A,U,!0);typeof $=="string"&&m.menuRpcCall({rowKey:$,field:b,value:le,type:"VP_EDIT_CELL_RPC"})},[m,t,o,r]),y=(0,C.useCallback)(l=>{typeof l=="object"&&l!==null&&"type"in l&&l.type==="CLOSE_DIALOG_ACTION"&&s()},[s]),w=(0,C.useCallback)(async()=>{let l=await m.menuRpcCall({type:"VP_EDIT_SUBMIT_FORM_RPC"});(0,de.isErrorResponse)(l)?L(l.error):(0,de.hasAction)(l)&&y(l.action)},[y,m]),N=(0,C.useCallback)(l=>{l.key==="Enter"&&g.current===O.changed&&w()},[w]),Ge=(0,C.useCallback)(()=>{s()},[s]),Je=l=>{var A;let b=String((A=r==null?void 0:r[l.name])!=null?A:"");return l.readonly||l.name===o?(0,D.jsx)("div",{className:`${_}-fieldValue vuuReadOnly`,children:b}):(0,D.jsx)("input",{className:`${_}-fieldValue`,"data-field":l.name,onBlur:K,onChange:R,type:"text",value:b,id:`${F}-input-${l.name}`})};(0,C.useEffect)(()=>{if(f.current){let l=f.current.querySelector("input");l&&setTimeout(()=>{l.focus(),l.select()},100)}},[]),(0,C.useEffect)(()=>()=>{m&&m.unsubscribe()},[m]);let Z=g.current===O.changed;return(0,D.jsxs)("div",{...d,className:(0,Ke.default)(_,e),children:[u?(0,D.jsx)("div",{className:`${_}-errorBanner`,"data-icon":"error",title:u,children:"Error, edit(s) not saved"}):void 0,(0,D.jsx)("div",{className:`${_}-content`,ref:f,onKeyDown:N,children:t.map(l=>{var b;return(0,D.jsxs)("div",{className:`${_}-field`,children:[(0,D.jsx)("label",{className:(0,Ke.default)(`${_}-fieldLabel`,{[`${_}-required`]:l.required}),htmlFor:`${F}-input-${l.name}`,children:(b=l==null?void 0:l.label)!=null?b:l.description}),Je(l)]},l.name)})}),(0,D.jsxs)("div",{className:`${_}-buttonbar salt-theme salt-density-high`,children:[(0,D.jsx)(Xe.Button,{type:"submit",variant:"cta",disabled:!Z,onClick:w,children:"Submit"}),(0,D.jsx)(Xe.Button,{variant:"secondary",onClick:Ge,children:"Cancel"})]})]})};var Kt=require("@vuu-ui/vuu-data"),Xt=M(require("classnames")),J=require("react"),Be=require("@vuu-ui/vuu-layout");var Jt=require("react");var Ut=require("@salt-ds/core"),$t=require("@salt-ds/lab"),Bt=require("@salt-ds/icons");var Vt=require("@vuu-ui/vuu-utils"),Ae=require("@salt-ds/lab"),It=require("@salt-ds/core"),Rt=require("@salt-ds/icons"),G=require("react");var kt=async e=>await fetch(`api/vui/${e.username}`,{}).then(o=>o.ok?o.json():null).catch(()=>{console.log("error getting history")});var W=require("react/jsx-runtime"),Po=({lastUpdate:e},{lastUpdate:t})=>t===e?0:t<e?-1:1,Eo=e=>(0,W.jsx)(Ae.ListItem,{...e}),At=(0,G.forwardRef)(function({loginUrl:t,onNavigate:o,user:a,layoutId:n="latest"},s){let[i,d]=(0,G.useState)([]);(0,G.useEffect)(()=>{async function L(){let x=(await kt(a)).filter(g=>g.id!=="latest").sort(Po).map(({id:g,lastUpdate:m})=>({lastUpdate:m,id:g,label:`Saved at ${(0,Vt.formatDate)(new Date(m),"kk:mm:ss")}`}));console.log({sortedHistory:x}),d(x)}L()},[a]);let r=(0,G.useCallback)((L,f)=>{f&&o(f.id)},[o]),c=(0,G.useCallback)(()=>{ze(t)},[t]),u=i.length===0?null:n==="latest"?i[0]:i.find(L=>L.id===n);return(0,W.jsxs)("div",{className:"vuuUserPanel",ref:s,children:[(0,W.jsx)(Ae.List,{ListItem:Eo,className:"vuuUserPanel-history",onSelect:r,selected:u,source:i}),(0,W.jsx)("div",{className:"vuuUserPanel-buttonBar",children:(0,W.jsxs)(It.Button,{"aria-label":"logout",onClick:c,children:[(0,W.jsx)(Rt.ExportIcon,{})," Logout"]})})]})});var pe=require("react/jsx-runtime"),_t=({layoutId:e,loginUrl:t,onNavigate:o,user:a})=>(0,pe.jsxs)($t.DropdownBase,{className:"vuuUserProfile",placement:"bottom-end",children:[(0,pe.jsx)(Ut.Button,{variant:"secondary",children:(0,pe.jsx)(Bt.UserSolidIcon,{})}),(0,pe.jsx)(At,{layoutId:e,loginUrl:t,onNavigate:s=>{o(s)},user:a})]});var Ot=M(require("classnames")),ne=require("@salt-ds/core"),Gt=require("react");var Se=require("react/jsx-runtime"),Fo="vuuThemeSwitch",Qe=({className:e,defaultMode:t,mode:o,onChange:a,...n})=>{let[s,i]=(0,ne.useControlled)({controlled:o,default:t!=null?t:"light",name:"ThemeSwitch",state:"mode"}),d=(0,Gt.useCallback)(c=>{let{value:u}=c.target;i(u),a(u)},[a,i]),r=(0,Ot.default)(Fo,e);return(0,Se.jsxs)(ne.ToggleButtonGroup,{className:r,...n,onChange:d,value:s,children:[(0,Se.jsx)(ne.ToggleButton,{"aria-label":"alert","data-icon":"light",value:"dark"}),(0,Se.jsx)(ne.ToggleButton,{"aria-label":"home","data-icon":"dark",value:"light"})]})};var Zt=M(require("classnames"));var Te=require("react/jsx-runtime"),wo="vuuAppHeader",Yt=({className:e,layoutId:t,loginUrl:o,onNavigate:a,onSwitchTheme:n,themeMode:s="light",user:i,...d})=>{let r=(0,Zt.default)(wo,e),c=(0,Jt.useCallback)(u=>n==null?void 0:n(u),[n]);return(0,Te.jsxs)("header",{className:r,...d,children:[(0,Te.jsx)(Qe,{defaultMode:s,onChange:c}),(0,Te.jsx)(_t,{layoutId:t,loginUrl:o,onNavigate:a,user:i})]})};var Qt=require("@vuu-ui/vuu-utils");var qt=require("@salt-ds/core"),je=M(require("classnames")),Ue=require("react"),$e=require("@vuu-ui/vuu-layout");var z=require("react/jsx-runtime"),V="vuuContextPanel",et=({className:e,expanded:t=!1,content:o,overlay:a=!1,title:n})=>{let s=(0,$e.useLayoutProviderDispatch)(),i=(0,Ue.useCallback)(()=>{s({path:"#context-panel",propName:"expanded",propValue:!1,type:"set-prop"})},[s]),d=(0,je.default)(V,e,{[`${V}-expanded`]:t,[`${V}-inline`]:a!==!0,[`${V}-overlay`]:a}),r=(0,Ue.useMemo)(()=>o?(0,$e.layoutFromJson)(o,"context-0"):null,[o]);return(0,z.jsx)("div",{className:(0,je.default)(V,d),children:(0,z.jsxs)("div",{className:`${V}-inner`,children:[(0,z.jsxs)("div",{className:`${V}-header`,children:[(0,z.jsx)("h2",{className:`${V}-title`,children:n}),(0,z.jsx)(qt.Button,{className:`${V}-close`,"data-icon":"close",onClick:i,variant:"secondary"})]}),(0,z.jsx)("div",{className:`${V}-content`,children:r})]})})};var xe=require("@vuu-ui/vuu-layout");var fe=require("react/jsx-runtime"),Wt=({appHeader:e,leftSidePanel:t})=>(0,fe.jsxs)(xe.Flexbox,{className:"App",style:{flexDirection:"row",height:"100%",width:"100%"},children:[t,(0,fe.jsxs)(xe.Flexbox,{className:"vuuShell-content",style:{flex:1,flexDirection:"column"},children:[e,(0,fe.jsx)(xe.DraggableLayout,{dropTarget:!0,style:{flex:1}},"main-content")]}),(0,fe.jsx)(et,{id:"context-panel",overlay:!0,title:"Column Settings"})]});var I=require("@vuu-ui/vuu-layout"),ie=require("react"),se=require("react/jsx-runtime"),zt=({appHeader:e,leftSidePanel:t})=>{let o=(0,ie.useRef)(null),[a,n]=(0,ie.useState)(!0),s=(0,ie.useCallback)(d=>{var c;let r=d.target;(c=o.current)!=null&&c.contains(r)||n(!a)},[a]),i=(0,ie.useCallback)(d=>{let r=[];return r.push((0,se.jsx)(I.Drawer,{onClick:s,open:a,position:"left",inline:!0,peekaboo:!0,sizeOpen:200,toggleButton:"end",children:(0,se.jsx)(I.View,{className:"vuuShell-palette",id:"vw-app-palette",ref:o,style:{height:"100%"},children:d},"app-palette")},"left-panel")),r},[s,a]);return(0,se.jsxs)(I.Flexbox,{className:"App",style:{flexDirection:"column",height:"100%",width:"100%"},children:[e,(0,se.jsx)(I.DockLayout,{style:{flex:1},children:i(t).concat((0,se.jsx)(I.DraggableLayout,{dropTarget:!0,style:{width:"100%",height:"100%"}},"main-content"))})]})};var tt=({leftSidePanelLayout:e="inlay",...t})=>(e==="inlay"?zt:Wt)(t);var he=require("react/jsx-runtime"),{error:ot}=(0,Qt.logger)("Shell"),Do=({LayoutProps:e,children:t,className:o,leftSidePanel:a,leftSidePanelLayout:n,loginUrl:s,saveLocation:i="remote",saveUrl:d,serverUrl:r,user:c,...u})=>{let L=(0,J.useRef)(null),f=(0,J.useRef)("latest"),{applicationLayout:x,saveApplicationLayout:g,loadLayoutById:m}=Le(),F=(0,J.useCallback)((Z,l)=>{try{g(Z),console.log(`handle layout changed ${l}`)}catch{ot==null||ot("Failed to save layout")}},[g]),R=(0,J.useCallback)(Z=>{L.current&&(L.current.dataset.mode=Z)},[]),K=(0,J.useCallback)(Z=>{f.current=Z,m(Z)},[m]);(0,J.useEffect)(()=>{r&&c.token&&(0,Kt.connectToServer)({authToken:c.token,url:r,username:c.username})},[r,c.token,c.username]);let[y,w,N]=Ce(),Ge=(0,Xt.default)("vuuShell",o,y,w),Je=tt({leftSidePanelLayout:n,appHeader:(0,he.jsx)(Yt,{layoutId:f.current,loginUrl:s,user:c,onNavigate:K,onSwitchTheme:R}),leftSidePanel:a});return(0,he.jsxs)(Ve,{children:[(0,he.jsx)(Be.LayoutProvider,{...e,layout:x,onLayoutChange:F,children:(0,he.jsx)(Be.DraggableLayout,{className:Ge,"data-mode":N,ref:L,...u,children:Je})}),t]})};var Oe=require("react"),_e=require("react/jsx-runtime"),Ho={},at=(0,Oe.createContext)(Ho),ko=({children:e,context:t,inheritedContext:o})=>{let a={...o,...t};return(0,_e.jsx)(at.Provider,{value:a,children:e})},Vo=({children:e,value:t})=>(0,_e.jsx)(at.Consumer,{children:o=>(0,_e.jsx)(ko,{context:t,inheritedContext:o,children:e})}),Io=()=>(0,Oe.useContext)(at);
3
+ Wrap elements with a single container`),e)},ke=({applyThemeClasses:e=!1,children:t,theme:o,themeMode:a,density:r})=>{var p,y,v;let{density:n,themeMode:u,theme:d}=(0,$.useContext)(He),s=(p=r!=null?r:n)!=null?p:Lt,i=(y=a!=null?a:u)!=null?y:St,l=(v=o!=null?o:d)!=null?v:Tt,h=e?vo(t,l,i,s):t;return(0,xt.jsx)(He.Provider,{value:{themeMode:i,density:s,theme:l},children:h})};ke.displayName="ThemeProvider";var g=require("react/jsx-runtime"),ce="vuuLeftNav",Lo=({"data-path":e,features:t,onResize:o,sizeCollapsed:a=80,sizeContent:r=300,sizeExpanded:n=240,style:u,tableFeatures:d,...s})=>{let i=(0,oe.useLayoutProviderDispatch)(),[l,h]=(0,te.useState)({activeTabIndex:0,navStatus:"menu-full"}),[p]=Le(),y=(0,te.useCallback)(L=>{switch(L){case"menu-icons":return n;case"menu-full":return a;case"menu-full-content":return a+r;case"menu-icons-content":return n+r}},[a,r,n]),v=L=>{switch(L){case"menu-icons":return"menu-full";case"menu-full":return"menu-icons";case"menu-full-content":return"menu-icons-content";case"menu-icons-content":return"menu-full-content"}},m=(0,te.useCallback)((L,F)=>{if(F===0){let C=L==="menu-full-content"?"menu-full":L==="menu-icons-content"?"menu-icons":L;return C==="menu-icons"?[a,C]:[n,C]}else{let C=L==="menu-full"?"menu-full-content":L==="menu-icons"?"menu-icons-content":L;return C==="menu-icons-content"?[a+r,C]:[n+r,C]}},[a,r,n]),E=(0,te.useCallback)(L=>{let[F,C]=m(l.navStatus,L);h({activeTabIndex:L,navStatus:C}),i({type:oe.Action.LAYOUT_RESIZE,path:e,size:F})},[i,m,l,e]),R=(0,te.useCallback)(()=>{let{activeTabIndex:L,navStatus:F}=l;h({activeTabIndex:L,navStatus:v(F)}),i({type:oe.Action.LAYOUT_RESIZE,path:e,size:y(F)})},[i,l,e,y]),X={...u,"--nav-menu-collapsed-width":`${a}px`,"--nav-menu-expanded-width":`${n}px`,"--nav-menu-content-width":`${r}px`};return(0,g.jsxs)("div",{...s,className:(0,Ve.default)(ce,`${ce}-${l.navStatus}`),style:X,children:[(0,g.jsxs)("div",{className:(0,Ve.default)(`${ce}-menu-primary`,p),"data-mode":"dark",children:[(0,g.jsx)("div",{className:"vuuLeftNav-logo",children:(0,g.jsx)(bt.VuuLogo,{})}),(0,g.jsx)("div",{className:`${ce}-main`,children:(0,g.jsxs)(q.Tabstrip,{activeTabIndex:l.activeTabIndex,animateSelectionThumb:!1,className:`${ce}-Tabstrip`,onActiveChange:E,orientation:"vertical",children:[(0,g.jsx)(q.Tab,{"data-icon":"demo",label:"DEMO"}),(0,g.jsx)(q.Tab,{"data-icon":"features",label:"VUU FEATURES"}),(0,g.jsx)(q.Tab,{"data-icon":"tables",label:"VUU TABLES"}),(0,g.jsx)(q.Tab,{"data-icon":"templates",label:"LAYOUT TEMPLATES"}),(0,g.jsx)(q.Tab,{"data-icon":"layouts",label:"MY LAYOUTS"})]})}),(0,g.jsx)("div",{className:"vuuLeftNav-buttonBar",children:(0,g.jsx)("button",{className:(0,Ve.default)("vuuLeftNav-toggleButton",{"vuuLeftNav-toggleButton-open":l.navStatus.startsWith("menu-full"),"vuuLeftNav-toggleButton-closed":l.navStatus.startsWith("menu-icons")}),"data-icon":l.navStatus.startsWith("menu-full")?"chevron-left":"chevron-right",onClick:R})})]}),(0,g.jsxs)(oe.Stack,{active:l.activeTabIndex-1,className:`${ce}-menu-secondary`,showTabs:!1,children:[(0,g.jsx)(we,{features:t,title:"VUU FEATURES"}),(0,g.jsx)(we,{features:d,title:"VUU TABLES"}),(0,g.jsx)("div",{style:{background:"green",height:"100%"},children:"LAYOUT TEMPLATES"}),(0,g.jsx)("div",{className:"vuuLeftNav-drawer",children:(0,g.jsx)(Ye,{})})]})]})};var qe=require("react"),w=require("@salt-ds/core");var H=require("react/jsx-runtime"),Nt="vuuLoginPanel",To=({requirePassword:e=!0,onSubmit:t})=>{let[o,a]=(0,qe.useState)(""),[r,n]=(0,qe.useState)(""),u=()=>{t(o,r)},d=l=>{a(l.target.value)},s=l=>{n(l.target.value)},i=o.trim()!==""&&(e===!1||r.trim()!=="");return(0,H.jsxs)("div",{className:Nt,children:[(0,H.jsxs)(w.FormField,{style:{width:200},children:[(0,H.jsx)(w.FormFieldLabel,{children:"Username"}),(0,H.jsx)(w.Input,{value:o,id:"text-username",onChange:d})]}),e?(0,H.jsxs)(w.FormField,{style:{width:200},children:[(0,H.jsx)(w.FormFieldLabel,{children:"Password"}),(0,H.jsx)(w.Input,{inputProps:{type:"password"},value:r,id:"text-password",onChange:s})]}):null,(0,H.jsx)(w.Button,{className:`${Nt}-login`,disabled:!i,onClick:u,variant:"cta",children:"Login"})]})};var Re=require("@vuu-ui/vuu-utils"),Ct=()=>{let e=(0,Re.getCookieValue)("vuu-auth-mode");return e!=null?e:""},So=()=>{let e=(0,Re.getCookieValue)("vuu-username"),t=(0,Re.getCookieValue)("vuu-auth-token");return[e,t]},xo=()=>Ct()==="login"?"login.html":"demo.html",Pt=(e=xo())=>{window.location.href=e},Ke=e=>{document.cookie="vuu-username= ; expires = Thu, 01 Jan 1970 00:00:00 GMT",document.cookie="vuu-auth-token= ; expires = Thu, 01 Jan 1970 00:00:00 GMT",Pt(e)};var T=require("react"),ze=P(require("classnames")),Dt=require("@salt-ds/core"),Xe=require("@salt-ds/core"),me=require("@vuu-ui/vuu-data"),ae=require("@vuu-ui/vuu-utils");var D=require("react/jsx-runtime"),B="vuuSessionEditingForm",Mt=(e,t)=>{let o=e.find(a=>a.name===t);if(o)return o;throw Error(`SessionEditingForm, no field '${t}' found`)},Et=e=>{let{dataset:{field:t},value:o}=e.target;if(t===void 0)throw Error("SessionEditingForm, form field has no field name");return[t,o]},O={uninitialised:0,unchanged:1,changed:2,invalid:3};function Ft(e,t,o=!1){switch(t){case"int":case"long":{let a=parseInt(e,10);if((0,ae.isValidNumber)(a))return a;if(o)throw Error("SessionEditingForm getTypedValue");return}case"double":{let a=parseFloat(e);return(0,ae.isValidNumber)(a)?a:void 0}case"boolean":return e==="true";default:return e}}var bo=(e,t)=>{if(e)return e;if(t)return new me.RemoteDataSource({bufferSize:0,table:t.table,columns:t.columns.map(o=>o.name)});throw Error("SessionEditingForm: either a DataSource or a TableSchema must be provided")},No=({className:e,config:{fields:t,key:o},dataSource:a,id:r,onClose:n,schema:u,...d})=>{let[s,i]=(0,T.useState)(),[l,h]=(0,T.useState)(""),p=(0,T.useRef)(null),y=(0,T.useRef)(),v=(0,T.useRef)(O.uninitialised),m=(0,T.useMemo)(()=>{let c=A=>{if(I){let U={};for(let ie of m.columns)U[ie]=A[I[ie]];v.current===O.uninitialised&&(v.current=O.unchanged,y.current=U),i(U)}},N=bo(a,u),I=(0,ae.buildColumnMap)(N.columns);return N.subscribe({range:{from:0,to:5}},A=>{A.type==="viewport-update"&&A.rows&&(v.current===O.uninitialised?c(A.rows[0]):console.log("what do we do with server updates"))}),N},[a,u]),E=(0,Dt.useIdMemo)(r),R=(0,T.useCallback)(c=>{let[N,I]=Et(c),{type:A}=Mt(t,N),U=Ft(I,A);i((ie={})=>{let at={...ie,[N]:U},Zt=(0,ae.shallowEquals)(at,y.current);return v.current=Zt?O.unchanged:U!==void 0?O.changed:O.invalid,at})},[t]),X=(0,T.useCallback)(c=>{let[N,I]=Et(c),{type:A}=Mt(t,N),U=s==null?void 0:s[o],ie=Ft(I,A,!0);typeof U=="string"&&m.menuRpcCall({rowKey:U,field:N,value:ie,type:"VP_EDIT_CELL_RPC"})},[m,t,o,s]),L=(0,T.useCallback)(c=>{typeof c=="object"&&c!==null&&"type"in c&&c.type==="CLOSE_DIALOG_ACTION"&&n()},[n]),F=(0,T.useCallback)(async()=>{let c=await m.menuRpcCall({type:"VP_EDIT_SUBMIT_FORM_RPC"});(0,me.isErrorResponse)(c)?h(c.error):(0,me.hasAction)(c)&&L(c.action)},[L,m]),C=(0,T.useCallback)(c=>{c.key==="Enter"&&v.current===O.changed&&F()},[F]),_e=(0,T.useCallback)(()=>{n()},[n]),Ge=c=>{var I;let N=String((I=s==null?void 0:s[c.name])!=null?I:"");return c.readonly||c.name===o?(0,D.jsx)("div",{className:`${B}-fieldValue vuuReadOnly`,children:N}):(0,D.jsx)("input",{className:`${B}-fieldValue`,"data-field":c.name,onBlur:X,onChange:R,type:"text",value:N,id:`${E}-input-${c.name}`})};(0,T.useEffect)(()=>{if(p.current){let c=p.current.querySelector("input");c&&setTimeout(()=>{c.focus(),c.select()},100)}},[]),(0,T.useEffect)(()=>()=>{m&&m.unsubscribe()},[m]);let J=v.current===O.changed;return(0,D.jsxs)("div",{...d,className:(0,ze.default)(B,e),children:[l?(0,D.jsx)("div",{className:`${B}-errorBanner`,"data-icon":"error",title:l,children:"Error, edit(s) not saved"}):void 0,(0,D.jsx)("div",{className:`${B}-content`,ref:p,onKeyDown:C,children:t.map(c=>{var N;return(0,D.jsxs)("div",{className:`${B}-field`,children:[(0,D.jsx)("label",{className:(0,ze.default)(`${B}-fieldLabel`,{[`${B}-required`]:c.required}),htmlFor:`${E}-input-${c.name}`,children:(N=c==null?void 0:c.label)!=null?N:c.description}),Ge(c)]},c.name)})}),(0,D.jsxs)("div",{className:`${B}-buttonbar salt-theme salt-density-high`,children:[(0,D.jsx)(Xe.Button,{type:"submit",variant:"cta",disabled:!J,onClick:F,children:"Submit"}),(0,D.jsx)(Xe.Button,{variant:"secondary",onClick:_e,children:"Cancel"})]})]})};var Kt=require("@vuu-ui/vuu-data"),zt=P(require("classnames")),G=require("react"),$e=require("@vuu-ui/vuu-layout");var _t=require("react");var It=require("@salt-ds/core"),At=require("@salt-ds/lab"),Ut=require("@salt-ds/icons");var Ht=require("@vuu-ui/vuu-utils"),Ie=require("@salt-ds/lab"),kt=require("@salt-ds/core"),Vt=require("@salt-ds/icons"),_=require("react");var wt=async e=>await fetch(`api/vui/${e.username}`,{}).then(o=>o.ok?o.json():null).catch(()=>{console.log("error getting history")});var K=require("react/jsx-runtime"),Co=({lastUpdate:e},{lastUpdate:t})=>t===e?0:t<e?-1:1,Po=e=>(0,K.jsx)(Ie.ListItem,{...e}),Rt=(0,_.forwardRef)(function({loginUrl:t,onNavigate:o,user:a,layoutId:r="latest"},n){let[u,d]=(0,_.useState)([]);(0,_.useEffect)(()=>{async function h(){let y=(await wt(a)).filter(v=>v.id!=="latest").sort(Co).map(({id:v,lastUpdate:m})=>({lastUpdate:m,id:v,label:`Saved at ${(0,Ht.formatDate)(new Date(m),"kk:mm:ss")}`}));console.log({sortedHistory:y}),d(y)}h()},[a]);let s=(0,_.useCallback)((h,p)=>{p&&o(p.id)},[o]),i=(0,_.useCallback)(()=>{Ke(t)},[t]),l=u.length===0?null:r==="latest"?u[0]:u.find(h=>h.id===r);return(0,K.jsxs)("div",{className:"vuuUserPanel",ref:n,children:[(0,K.jsx)(Ie.List,{ListItem:Po,className:"vuuUserPanel-history",onSelect:s,selected:l,source:u}),(0,K.jsx)("div",{className:"vuuUserPanel-buttonBar",children:(0,K.jsxs)(kt.Button,{"aria-label":"logout",onClick:i,children:[(0,K.jsx)(Vt.ExportIcon,{})," Logout"]})})]})});var de=require("react/jsx-runtime"),$t=({layoutId:e,loginUrl:t,onNavigate:o,user:a})=>(0,de.jsxs)(At.DropdownBase,{className:"vuuUserProfile",placement:"bottom-end",children:[(0,de.jsx)(It.Button,{variant:"secondary",children:(0,de.jsx)(Ut.UserSolidIcon,{})}),(0,de.jsx)(Rt,{layoutId:e,loginUrl:t,onNavigate:n=>{o(n)},user:a})]});var Bt=P(require("classnames")),re=require("@salt-ds/core"),Ot=require("react");var Te=require("react/jsx-runtime"),Mo="vuuThemeSwitch",Ze=({className:e,defaultMode:t,mode:o,onChange:a,...r})=>{let[n,u]=(0,re.useControlled)({controlled:o,default:t!=null?t:"light",name:"ThemeSwitch",state:"mode"}),d=(0,Ot.useCallback)(i=>{let{value:l}=i.target;u(l),a(l)},[a,u]),s=(0,Bt.default)(Mo,e);return(0,Te.jsxs)(re.ToggleButtonGroup,{className:s,...r,onChange:d,value:n,children:[(0,Te.jsx)(re.ToggleButton,{"aria-label":"alert","data-icon":"light",value:"dark"}),(0,Te.jsx)(re.ToggleButton,{"aria-label":"home","data-icon":"dark",value:"light"})]})};var Gt=P(require("classnames"));var Se=require("react/jsx-runtime"),Eo="vuuAppHeader",Jt=({className:e,layoutId:t,loginUrl:o,onNavigate:a,onSwitchTheme:r,themeMode:n="light",user:u,...d})=>{let s=(0,Gt.default)(Eo,e),i=(0,_t.useCallback)(l=>r==null?void 0:r(l),[r]);return(0,Se.jsxs)("header",{className:s,...d,children:[(0,Se.jsx)(Ze,{defaultMode:n,onChange:i}),(0,Se.jsx)($t,{layoutId:t,loginUrl:o,onNavigate:a,user:u})]})};var Xt=require("@vuu-ui/vuu-utils");var Yt=require("@salt-ds/core"),Qe=P(require("classnames")),Ae=require("react"),Ue=require("@vuu-ui/vuu-layout");var z=require("react/jsx-runtime"),k="vuuContextPanel",je=({className:e,expanded:t=!1,content:o,overlay:a=!1,title:r})=>{let n=(0,Ue.useLayoutProviderDispatch)(),u=(0,Ae.useCallback)(()=>{n({path:"#context-panel",propName:"expanded",propValue:!1,type:"set-prop"})},[n]),d=(0,Qe.default)(k,e,{[`${k}-expanded`]:t,[`${k}-inline`]:a!==!0,[`${k}-overlay`]:a}),s=(0,Ae.useMemo)(()=>o?(0,Ue.layoutFromJson)(o,"context-0"):null,[o]);return(0,z.jsx)("div",{className:(0,Qe.default)(k,d),children:(0,z.jsxs)("div",{className:`${k}-inner`,children:[(0,z.jsxs)("div",{className:`${k}-header`,children:[(0,z.jsx)("h2",{className:`${k}-title`,children:r}),(0,z.jsx)(Yt.Button,{className:`${k}-close`,"data-icon":"close",onClick:u,variant:"secondary"})]}),(0,z.jsx)("div",{className:`${k}-content`,children:s})]})})};var xe=require("@vuu-ui/vuu-layout");var pe=require("react/jsx-runtime"),Wt=({appHeader:e,leftSidePanel:t})=>(0,pe.jsxs)(xe.Flexbox,{className:"App",style:{flexDirection:"row",height:"100%",width:"100%"},children:[t,(0,pe.jsxs)(xe.Flexbox,{className:"vuuShell-content",style:{flex:1,flexDirection:"column"},children:[e,(0,pe.jsx)(xe.DraggableLayout,{dropTarget:!0,style:{flex:1}},"main-content")]}),(0,pe.jsx)(je,{id:"context-panel",overlay:!0,title:"Column Settings"})]});var V=require("@vuu-ui/vuu-layout"),se=require("react"),ne=require("react/jsx-runtime"),qt=({appHeader:e,leftSidePanel:t})=>{let o=(0,se.useRef)(null),[a,r]=(0,se.useState)(!0),n=(0,se.useCallback)(d=>{var i;let s=d.target;(i=o.current)!=null&&i.contains(s)||r(!a)},[a]),u=(0,se.useCallback)(d=>{let s=[];return s.push((0,ne.jsx)(V.Drawer,{onClick:n,open:a,position:"left",inline:!0,peekaboo:!0,sizeOpen:200,toggleButton:"end",children:(0,ne.jsx)(V.View,{className:"vuuShell-palette",id:"vw-app-palette",ref:o,style:{height:"100%"},children:d},"app-palette")},"left-panel")),s},[n,a]);return(0,ne.jsxs)(V.Flexbox,{className:"App",style:{flexDirection:"column",height:"100%",width:"100%"},children:[e,(0,ne.jsx)(V.DockLayout,{style:{flex:1},children:u(t).concat((0,ne.jsx)(V.DraggableLayout,{dropTarget:!0,style:{width:"100%",height:"100%"}},"main-content"))})]})};var et=({leftSidePanelLayout:e="inlay",...t})=>(e==="inlay"?qt:Wt)(t);var fe=require("react/jsx-runtime"),{error:tt}=(0,Xt.logger)("Shell"),Fo=({LayoutProps:e,children:t,className:o,leftSidePanel:a,leftSidePanelLayout:r,loginUrl:n,saveLocation:u="remote",saveUrl:d,serverUrl:s,user:i,...l})=>{let h=(0,G.useRef)(null),p=(0,G.useRef)("latest"),{applicationLayout:y,saveApplicationLayout:v,loadLayoutById:m}=ve(),E=(0,G.useCallback)((J,c)=>{try{v(J)}catch{tt==null||tt("Failed to save layout")}},[v]),R=(0,G.useCallback)(J=>{h.current&&(h.current.dataset.mode=J)},[]),X=(0,G.useCallback)(J=>{p.current=J,m(J)},[m]);(0,G.useEffect)(()=>{s&&i.token&&(0,Kt.connectToServer)({authToken:i.token,url:s,username:i.username})},[s,i.token,i.username]);let[L,F,C]=Le(),_e=(0,zt.default)("vuuShell",o,L,F),Ge=et({leftSidePanelLayout:r,appHeader:(0,fe.jsx)(Jt,{layoutId:p.current,loginUrl:n,user:i,onNavigate:X,onSwitchTheme:R}),leftSidePanel:a});return(0,fe.jsxs)(ke,{children:[(0,fe.jsx)($e.LayoutProvider,{...e,layout:y,onLayoutChange:E,children:(0,fe.jsx)($e.DraggableLayout,{className:_e,"data-mode":C,ref:h,...l,children:Ge})}),t]})};var Do=e=>e==="*",wo=e=>typeof e=="object"&&typeof e.module=="string"&&typeof e.table=="string";var Oe=require("react"),Be=require("react/jsx-runtime"),Ho={},ot=(0,Oe.createContext)(Ho),ko=({children:e,context:t,inheritedContext:o})=>{let a={...o,...t};return(0,Be.jsx)(ot.Provider,{value:a,children:e})},Vo=({children:e,value:t})=>(0,Be.jsx)(ot.Consumer,{children:o=>(0,Be.jsx)(ko,{context:t,inheritedContext:o,children:e})}),Ro=()=>(0,Oe.useContext)(ot);
4
4
  //# sourceMappingURL=index.js.map