react-luminus-components 1.3.102 → 1.3.104
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/README.md +349 -349
- package/dist/.vite/manifest.json +82 -71
- package/dist/{FullScreenContainer-rYQb7kSs.js → FullScreenContainer-BJprjc0-.js} +1 -1
- package/dist/FullScreenContainer-PAUPFvDa.cjs +1 -0
- package/dist/{Loading-BoA9uNB4.js → Loading-B-a28A6h.js} +1 -1
- package/dist/Loading-xgF6OsXz.cjs +1 -0
- package/dist/{nivo-bar.es-BN3jDiSg.js → ResponsiveContextDropdown-BTWYs_5c.js} +5847 -5838
- package/dist/{nivo-bar.es-Zz2h71SX.cjs → ResponsiveContextDropdown-DJHED0fJ.cjs} +39 -39
- package/dist/{SimpleTooltip-BlDrop56.js → SimpleTooltip-CZBF7c7i.js} +1 -1
- package/dist/SimpleTooltip-DUaCV_sl.cjs +1 -0
- package/dist/contexts.cjs.js +1 -1
- package/dist/contexts.es.js +63 -63
- package/dist/hooks/useSearchQueryState/useSearchQueryState.d.ts +1 -0
- package/dist/hooks.cjs.js +1 -1
- package/dist/hooks.es.js +15 -14
- package/dist/layout/SideMenu/MenuItem/MenuItem.d.ts +3 -1
- package/dist/layout/SideMenu/SideMenu.d.ts +3 -1
- package/dist/layout.cjs.js +1 -1
- package/dist/layout.es.js +116 -101
- package/dist/main.cjs.js +2 -2
- package/dist/main.es.js +2802 -2801
- package/dist/searchUtils-Duo7lkt3.cjs +1 -0
- package/dist/{searchUtils-5UHaQmUO.js → searchUtils-e4stptnK.js} +1 -1
- package/dist/style.css +1 -1
- package/dist/useClickOutside-BmlXg38T.js +14 -0
- package/dist/useClickOutside-D0505nsm.cjs +1 -0
- package/dist/useClipboard-CPpcsAUr.js +60 -0
- package/dist/useClipboard-DO4Wt5yn.cjs +1 -0
- package/dist/useGetApiData-DZI3UwZY.cjs +1 -0
- package/dist/{useGetApiData-DQPuOQsH.js → useGetApiData-DlXJYhhW.js} +6 -6
- package/dist/usePermissions-Bv3PjjAi.cjs +1 -0
- package/dist/usePermissions-Xt0Kg7pS.js +20 -0
- package/dist/utils.cjs.js +1 -1
- package/dist/utils.es.js +21 -21
- package/dist/variables.scss +171 -171
- package/package.json +115 -115
- package/dist/FullScreenContainer-D9vl18Xi.cjs +0 -1
- package/dist/Loading-DxKS0GPs.cjs +0 -1
- package/dist/SimpleTooltip-CIDRZ8-w.cjs +0 -1
- package/dist/searchUtils-BlNdThnm.cjs +0 -1
- package/dist/useClipboard-CPMVrqpg.cjs +0 -1
- package/dist/useClipboard-Dr5dQ4Af.js +0 -70
- package/dist/useGetApiData-DtC7NEKp.cjs +0 -1
- package/dist/usePermissions-CUsW8ZkT.js +0 -20
- package/dist/usePermissions-DwD2zQ8r.cjs +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { j as o, a0 as a,
|
|
1
|
+
import { j as o, a0 as a, bQ as e } from "./ResponsiveContextDropdown-BTWYs_5c.js";
|
|
2
2
|
const l = ({ text: s, placement: r, children: t }) => /* @__PURE__ */ o.jsx(a, { placement: r, overlay: /* @__PURE__ */ o.jsx(e, { className: "luminus-tooltip", children: s }), children: t });
|
|
3
3
|
export {
|
|
4
4
|
l as S
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const o=require("./ResponsiveContextDropdown-DJHED0fJ.cjs"),i=({text:e,placement:t,children:s})=>o.jsxRuntimeExports.jsx(o.OverlayTrigger,{placement:t,overlay:o.jsxRuntimeExports.jsx(o.Tooltip,{className:"luminus-tooltip",children:e}),children:s});exports.SimpleTooltip=i;
|
package/dist/contexts.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ResponsiveContextDropdown-DJHED0fJ.cjs"),t=require("react"),v=require("@azure/msal-browser"),w=require("@azure/msal-react");require("react-router-dom");require("react-hook-form");require("react-flexmonster");const b=require("./Loading-xgF6OsXz.cjs"),k=require("./useGetApiData-DZI3UwZY.cjs"),I=require("./useLocalStorageState-BFc8Gc8H.cjs");function P(s){const u=e.toDate(s);return u.setHours(23,59,59,999),u}function T(){return P(Date.now())}function M(s,u){const n=+e.toDate(s),[o,r]=[+e.toDate(u.start),+e.toDate(u.end)].sort((a,i)=>a-i);return n>=o&&n<=r}function A(){return e.startOfDay(Date.now())}const O=({children:s})=>{const[u,n]=t.useState(!1),[o,r]=t.useState(""),a=t.useCallback(c=>{n(!0),r(c)},[]),i=t.useCallback(()=>{n(!1)},[]),l=t.useMemo(()=>({show:u,text:o,showConfirm:a,hideConfirm:i}),[u,o,a,i]);return e.jsxRuntimeExports.jsxs(e.ConfirmContext.Provider,{value:l,children:[e.jsxRuntimeExports.jsx(F,{}),s]})},N=()=>{const{texts:{confirm:s}}=t.useContext(e.LuminusComponentsContext),{isShown:u,text:n,onFinish:o}=e.usePrompt(),{options:r}=t.useContext(e.PromptContext),[a,i]=t.useState(r.defaultValue??""),l=t.useCallback(()=>{o(null)},[o]),c=t.useCallback(f=>{f.preventDefault(),!(r.required&&!a)&&o(a)},[o,r.required,a]);t.useEffect(()=>{u===!0&&i(r.defaultValue??"")},[u,r.defaultValue]);const d=t.useMemo(()=>({value:a,onChange:f=>i(f.currentTarget.value),className:"w-100",autoFocus:!0,tabIndex:0}),[a]);return e.jsxRuntimeExports.jsxs(e.Modal,{show:u,size:"sm",centered:!0,onHide:l,children:[e.jsxRuntimeExports.jsx(e.Modal.Header,{className:"justify-content-center",children:e.jsxRuntimeExports.jsx(e.Modal.Title,{children:n})}),e.jsxRuntimeExports.jsxs("form",{onSubmit:c,children:[e.jsxRuntimeExports.jsxs(e.Modal.Body,{children:[r.input==="textarea"?e.jsxRuntimeExports.jsx("textarea",{...d,rows:5}):void 0,r.input==="input"?e.jsxRuntimeExports.jsx(e.FormControl,{...d,type:r.type}):void 0]}),e.jsxRuntimeExports.jsxs(e.Modal.Footer,{className:"w-100 d-flex gap-5",children:[e.jsxRuntimeExports.jsx(e.PrimaryButton,{variant:"outlined",color:"secondary",onClick:l,className:"flex-grow-1",children:s.cancel}),e.jsxRuntimeExports.jsx(e.PrimaryButton,{color:"primary",disabled:r.required&&!a,type:"submit",className:"flex-grow-1",children:s.confirm})]})]})]})},U=({children:s})=>{const[u,n]=t.useState(!1),[o,r]=t.useState(""),[a,i]=t.useState({input:"textarea",type:"text"}),l=t.useRef(()=>{}),c=t.useCallback(C=>{r(C),n(!0)},[]),d=t.useCallback(()=>{n(!1)},[]),f=t.useMemo(()=>({isShown:u,text:o,showPrompt:c,hidePrompt:d,resolveRef:l,options:a,setOptions:i}),[u,o,c,d,a]);return e.jsxRuntimeExports.jsxs(e.PromptContext.Provider,{value:f,children:[s,e.jsxRuntimeExports.jsx(N,{})]})},G=({cookieDomain:s,axiosOptions:u,language:n,texts:o,ProjectIconComponent:r,localizationContext:a,chartColorPalette:i,children:l})=>{const c=t.useMemo(()=>({axiosOptions:u,cookieDomain:s,language:n,texts:o,ProjectIconComponent:r,localizationContext:a,chartColorPalette:i}),[u,s,n,r,a,o,i]);return e.jsxRuntimeExports.jsx(e.LuminusComponentsContext.Provider,{value:c,children:e.jsxRuntimeExports.jsx(O,{children:e.jsxRuntimeExports.jsxs(U,{children:[e.jsxRuntimeExports.jsx(e.Ie,{}),l]})})})},q=({children:s})=>{const[u,n]=t.useState(!1),[o]=t.useState(new Set),r=t.useCallback(l=>{o.add(l),n(!0)},[o]),a=t.useCallback(l=>{o.delete(l),o.size===0&&n(!1)},[o]),i=t.useMemo(()=>({isLoading:u,startLoading:r,stopLoading:a}),[u,r,a]);return e.jsxRuntimeExports.jsxs(e.LoadingContext.Provider,{value:i,children:[u&&e.jsxRuntimeExports.jsx(b.Loading,{}),s]})},_=({children:s})=>{const u=e.useAxios(),{msalInstance:n}=t.useContext(e.AuthContext),{delegation:o,setDelegation:r,setAvailableDelegations:a,refreshAvailableDelegations:i}=t.useContext(e.DelegationContext),{getToken:l}=e.useAuth(),[c,d]=t.useState(null),f=t.useCallback(async()=>{const x=await l();x&&d(x)},[l]);t.useEffect(()=>{f()},[f]);const p=t.useCallback(()=>{const x=localStorage.getItem("user")??null;return x?JSON.parse(x??""):null},[])(),[E,h]=t.useState({state:p?e.LoginState.LOGGED_IN:e.LoginState.LOGGING_IN,user:p}),L=t.useCallback(async x=>{let m=null;return await u.get("/user/detail",x?{headers:{Authorization:`Bearer ${x}`}}:void 0).then(S=>{m=S.data}).catch(()=>{m=null}),m},[u]),R=t.useCallback(()=>{localStorage.removeItem("user"),h({state:e.LoginState.LOGGED_OUT,user:null}),r(null),a(null)},[a,r]),j=t.useCallback(async x=>{h({state:e.LoginState.LOGGING_IN,user:null});const m=await L(x);return m?(h({state:e.LoginState.LOGGED_IN,user:m}),localStorage.setItem("user",JSON.stringify(m)),await i(),!0):(h({state:e.LoginState.LOGIN_FAILED,user:null}),!1)},[L,i]),g=t.useCallback(()=>{R()},[R]);t.useEffect(()=>{if(n){const x=n.addEventCallback(m=>{if(m.eventType===v.EventType.LOGIN_SUCCESS&&m.payload){const S=m.payload;d(S.accessToken)}});return()=>{x&&n.removeEventCallback(x)}}return()=>{}},[n,j,g]);const y=t.useCallback(async x=>{x&&await j(x).catch(()=>{g(),r(null)})},[j,g,r]);t.useEffect(()=>{y(c)},[c,o==null?void 0:o.id,y]);const D=t.useMemo(()=>({user:E.user,userLoginState:E,loginUser:j,logoutUser:g}),[E,j,g]);return e.jsxRuntimeExports.jsx(e.UserContext.Provider,{value:D,children:s})},B=({...s})=>{const{cookieDomain:u}=t.useContext(e.LuminusComponentsContext),[,n]=e.useCookies(["Authorization"]),o=t.useMemo(()=>({useMsal:s.useMsal??!1,msalInstance:s.useMsal?s.msalInstance??null:null,msalScopes:s.useMsal?s.msalScopes??[]:[]}),[s]);return t.useEffect(()=>{if(s.useMsal){const r=s.msalInstance.addEventCallback(a=>{if(a.eventType===v.EventType.LOGIN_SUCCESS||a.eventType===v.EventType.ACQUIRE_TOKEN_SUCCESS&&a.payload){const i=a.payload,l=i.account;s.msalInstance.setActiveAccount(l);const c=i.accessToken,d=i.expiresOn;n("Authorization",c,{path:"/",secure:!0,sameSite:"none",domain:u,expires:d??void 0})}a.error&&console.error("AuthProvider MSAL Error",a)});return()=>{r&&s.msalInstance.removeEventCallback(r)}}return()=>{}},[s,n,u]),e.jsxRuntimeExports.jsx(e.AuthContext.Provider,{value:o,children:s.useMsal?e.jsxRuntimeExports.jsx(w.MsalProvider,{instance:s.msalInstance,children:s.children}):s.children})},z=({children:s,relativeEndpoint:u})=>{const[n,o,r]=I.useLocalStorageState("user-delegation",null),a=t.useMemo(()=>{if(!n)return null;const C=n.from?e.parseISO(n.from):A(),p=n.to?e.parseISO(n.to):T();return M(new Date(Date.now()),{start:C,end:p})?n:(o(null),null)},[n,o]),{data:i,setData:l,reloadData:c}=k.useGetApiData(u,{nullStateBeforeLoad:!1,nullStateOnFail:!0}),d=t.useRef(null);t.useEffect(()=>{const C=()=>{c(),d.current=window.setTimeout(C,e.msToStartOfNextDay()+5e3)};return C(),()=>{d.current!==null&&window.clearTimeout(d.current)}},[c]),t.useEffect(()=>{const C=()=>{r()};return window.addEventListener("focus",C),()=>{window.removeEventListener("focus",C)}},[r,c]);const f=t.useMemo(()=>({delegation:a,setDelegation:o,availableDelegations:i,setAvailableDelegations:l,refreshAvailableDelegations:c}),[a,o,i,l,c]);return e.jsxRuntimeExports.jsx(e.DelegationContext.Provider,{value:f,children:s})},F=()=>{const{texts:{confirm:s}}=t.useContext(e.LuminusComponentsContext),{onConfirm:u,onCancel:n,text:o,show:r}=e.useConfirm();return e.jsxRuntimeExports.jsxs(e.Modal,{show:r,size:"sm",centered:!0,onHide:n,children:[e.jsxRuntimeExports.jsx(e.Modal.Header,{className:"justify-content-center",children:e.jsxRuntimeExports.jsx(e.Modal.Title,{children:o})}),e.jsxRuntimeExports.jsx(e.Modal.Body,{children:e.jsxRuntimeExports.jsxs("div",{className:"w-100 d-flex gap-5",children:[e.jsxRuntimeExports.jsx(e.PrimaryButton,{type:"button",variant:"outlined",color:"secondary",className:"w-100",onClick:n,children:s.no}),e.jsxRuntimeExports.jsx(e.PrimaryButton,{type:"button",color:"primary",onClick:u,className:"w-100 ml",children:s.yes})]})})]})};exports.AuthContext=e.AuthContext;exports.DelegationContext=e.DelegationContext;exports.LoadingContext=e.LoadingContext;exports.LuminusComponentsContext=e.LuminusComponentsContext;exports.UserContext=e.UserContext;exports.AuthProvider=B;exports.DelegationProvider=z;exports.LoadingProvider=q;exports.LuminusComponentsProvider=G;exports.UserProvider=_;
|
package/dist/contexts.es.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { t as b,
|
|
2
|
-
import { useState as
|
|
3
|
-
import { EventType as
|
|
4
|
-
import { MsalProvider as
|
|
1
|
+
import { t as b, bb as B, j as r, bc as F, a3 as T, a_ as H, bd as U, ae as v, aZ as q, a4 as L, be as V, aQ as J, as as Q, ay as _, bf as M, az as K, aB as w, aA as W, bg as Z, aO as G, bh as $, aS as X } from "./ResponsiveContextDropdown-BTWYs_5c.js";
|
|
2
|
+
import { useState as g, useCallback as d, useMemo as S, useContext as y, useEffect as C, useRef as R } from "react";
|
|
3
|
+
import { EventType as P } from "@azure/msal-browser";
|
|
4
|
+
import { MsalProvider as Y } from "@azure/msal-react";
|
|
5
5
|
import "react-router-dom";
|
|
6
6
|
import "react-hook-form";
|
|
7
7
|
import "react-flexmonster";
|
|
8
|
-
import { L as ee } from "./Loading-
|
|
9
|
-
import { u as te } from "./useGetApiData-
|
|
8
|
+
import { L as ee } from "./Loading-B-a28A6h.js";
|
|
9
|
+
import { u as te } from "./useGetApiData-DlXJYhhW.js";
|
|
10
10
|
import { u as se } from "./useLocalStorageState-Bt99kkCr.js";
|
|
11
11
|
function ne(e) {
|
|
12
12
|
const a = b(e);
|
|
@@ -23,20 +23,20 @@ function ae(e, a) {
|
|
|
23
23
|
return t >= s && t <= n;
|
|
24
24
|
}
|
|
25
25
|
function re() {
|
|
26
|
-
return
|
|
26
|
+
return B(Date.now());
|
|
27
27
|
}
|
|
28
28
|
const ie = ({ children: e }) => {
|
|
29
|
-
const [a, t] =
|
|
29
|
+
const [a, t] = g(!1), [s, n] = g(""), o = d((c) => {
|
|
30
30
|
t(!0), n(c);
|
|
31
31
|
}, []), i = d(() => {
|
|
32
32
|
t(!1);
|
|
33
33
|
}, []), l = S(() => ({ show: a, text: s, showConfirm: o, hideConfirm: i }), [a, s, o, i]);
|
|
34
|
-
return /* @__PURE__ */ r.jsxs(
|
|
34
|
+
return /* @__PURE__ */ r.jsxs(F.Provider, { value: l, children: [
|
|
35
35
|
/* @__PURE__ */ r.jsx(ue, {}),
|
|
36
36
|
e
|
|
37
37
|
] });
|
|
38
38
|
}, le = () => {
|
|
39
|
-
const { texts: { confirm: e } } =
|
|
39
|
+
const { texts: { confirm: e } } = y(T), { isShown: a, text: t, onFinish: s } = H(), { options: n } = y(U), [o, i] = g(n.defaultValue ?? ""), l = d(() => {
|
|
40
40
|
s(null);
|
|
41
41
|
}, [s]), c = d((x) => {
|
|
42
42
|
x.preventDefault(), !(n.required && !o) && s(o);
|
|
@@ -51,21 +51,21 @@ const ie = ({ children: e }) => {
|
|
|
51
51
|
autoFocus: !0,
|
|
52
52
|
tabIndex: 0
|
|
53
53
|
}), [o]);
|
|
54
|
-
return /* @__PURE__ */ r.jsxs(
|
|
55
|
-
/* @__PURE__ */ r.jsx(
|
|
54
|
+
return /* @__PURE__ */ r.jsxs(v, { show: a, size: "sm", centered: !0, onHide: l, children: [
|
|
55
|
+
/* @__PURE__ */ r.jsx(v.Header, { className: "justify-content-center", children: /* @__PURE__ */ r.jsx(v.Title, { children: t }) }),
|
|
56
56
|
/* @__PURE__ */ r.jsxs("form", { onSubmit: c, children: [
|
|
57
|
-
/* @__PURE__ */ r.jsxs(
|
|
57
|
+
/* @__PURE__ */ r.jsxs(v.Body, { children: [
|
|
58
58
|
n.input === "textarea" ? /* @__PURE__ */ r.jsx("textarea", { ...m, rows: 5 }) : void 0,
|
|
59
59
|
n.input === "input" ? /* @__PURE__ */ r.jsx(q, { ...m, type: n.type }) : void 0
|
|
60
60
|
] }),
|
|
61
|
-
/* @__PURE__ */ r.jsxs(
|
|
61
|
+
/* @__PURE__ */ r.jsxs(v.Footer, { className: "w-100 d-flex gap-5", children: [
|
|
62
62
|
/* @__PURE__ */ r.jsx(L, { variant: "outlined", color: "secondary", onClick: l, className: "flex-grow-1", children: e.cancel }),
|
|
63
63
|
/* @__PURE__ */ r.jsx(L, { color: "primary", disabled: n.required && !o, type: "submit", className: "flex-grow-1", children: e.confirm })
|
|
64
64
|
] })
|
|
65
65
|
] })
|
|
66
66
|
] });
|
|
67
67
|
}, ce = ({ children: e }) => {
|
|
68
|
-
const [a, t] =
|
|
68
|
+
const [a, t] = g(!1), [s, n] = g(""), [o, i] = g({ input: "textarea", type: "text" }), l = R(() => {
|
|
69
69
|
}), c = d((h) => {
|
|
70
70
|
n(h), t(!0);
|
|
71
71
|
}, []), m = d(() => {
|
|
@@ -83,7 +83,7 @@ const ie = ({ children: e }) => {
|
|
|
83
83
|
e,
|
|
84
84
|
/* @__PURE__ */ r.jsx(le, {})
|
|
85
85
|
] });
|
|
86
|
-
},
|
|
86
|
+
}, ye = ({ cookieDomain: e, axiosOptions: a, language: t, texts: s, ProjectIconComponent: n, localizationContext: o, chartColorPalette: i, children: l }) => {
|
|
87
87
|
const c = S(() => ({
|
|
88
88
|
axiosOptions: a,
|
|
89
89
|
cookieDomain: e,
|
|
@@ -105,8 +105,8 @@ const ie = ({ children: e }) => {
|
|
|
105
105
|
/* @__PURE__ */ r.jsx(V, {}),
|
|
106
106
|
l
|
|
107
107
|
] }) }) });
|
|
108
|
-
},
|
|
109
|
-
const [a, t] =
|
|
108
|
+
}, je = ({ children: e }) => {
|
|
109
|
+
const [a, t] = g(!1), [s] = g(/* @__PURE__ */ new Set()), n = d((l) => {
|
|
110
110
|
s.add(l), t(!0);
|
|
111
111
|
}, [s]), o = d((l) => {
|
|
112
112
|
s.delete(l), s.size === 0 && t(!1);
|
|
@@ -115,38 +115,38 @@ const ie = ({ children: e }) => {
|
|
|
115
115
|
a && /* @__PURE__ */ r.jsx(ee, {}),
|
|
116
116
|
e
|
|
117
117
|
] });
|
|
118
|
-
},
|
|
119
|
-
const a = Q(), { msalInstance: t } =
|
|
118
|
+
}, Ie = ({ children: e }) => {
|
|
119
|
+
const a = Q(), { msalInstance: t } = y(_), { delegation: s, setDelegation: n, setAvailableDelegations: o, refreshAvailableDelegations: i } = y(M), { getToken: l } = K(), [c, m] = g(null), x = d(async () => {
|
|
120
120
|
const u = await l();
|
|
121
121
|
u && m(u);
|
|
122
122
|
}, [l]);
|
|
123
123
|
C(() => {
|
|
124
124
|
x();
|
|
125
125
|
}, [x]);
|
|
126
|
-
const
|
|
126
|
+
const p = d(() => {
|
|
127
127
|
const u = localStorage.getItem("user") ?? null;
|
|
128
128
|
return u ? JSON.parse(u ?? "") : null;
|
|
129
|
-
}, [])(), [N, D] =
|
|
130
|
-
state:
|
|
131
|
-
user:
|
|
132
|
-
}),
|
|
129
|
+
}, [])(), [N, D] = g({
|
|
130
|
+
state: p ? w.LOGGED_IN : w.LOGGING_IN,
|
|
131
|
+
user: p
|
|
132
|
+
}), A = d(async (u) => {
|
|
133
133
|
let f = null;
|
|
134
|
-
return await a.get("/user/detail", u ? { headers: { Authorization: `Bearer ${u}` } } : void 0).then((
|
|
135
|
-
f =
|
|
134
|
+
return await a.get("/user/detail", u ? { headers: { Authorization: `Bearer ${u}` } } : void 0).then((O) => {
|
|
135
|
+
f = O.data;
|
|
136
136
|
}).catch(() => {
|
|
137
137
|
f = null;
|
|
138
138
|
}), f;
|
|
139
|
-
}, [a]),
|
|
139
|
+
}, [a]), E = d(() => {
|
|
140
140
|
localStorage.removeItem("user"), D({
|
|
141
141
|
state: w.LOGGED_OUT,
|
|
142
142
|
user: null
|
|
143
143
|
}), n(null), o(null);
|
|
144
|
-
}, [o, n]),
|
|
144
|
+
}, [o, n]), j = d(async (u) => {
|
|
145
145
|
D({
|
|
146
146
|
state: w.LOGGING_IN,
|
|
147
147
|
user: null
|
|
148
148
|
});
|
|
149
|
-
const f = await
|
|
149
|
+
const f = await A(u);
|
|
150
150
|
return f ? (D({
|
|
151
151
|
state: w.LOGGED_IN,
|
|
152
152
|
user: f
|
|
@@ -154,15 +154,15 @@ const ie = ({ children: e }) => {
|
|
|
154
154
|
state: w.LOGIN_FAILED,
|
|
155
155
|
user: null
|
|
156
156
|
}), !1);
|
|
157
|
-
}, [
|
|
158
|
-
|
|
159
|
-
}, [
|
|
157
|
+
}, [A, i]), I = d(() => {
|
|
158
|
+
E();
|
|
159
|
+
}, [E]);
|
|
160
160
|
C(() => {
|
|
161
161
|
if (t) {
|
|
162
162
|
const u = t.addEventCallback((f) => {
|
|
163
|
-
if (f.eventType ===
|
|
164
|
-
const
|
|
165
|
-
m(
|
|
163
|
+
if (f.eventType === P.LOGIN_SUCCESS && f.payload) {
|
|
164
|
+
const O = f.payload;
|
|
165
|
+
m(O.accessToken);
|
|
166
166
|
}
|
|
167
167
|
});
|
|
168
168
|
return () => {
|
|
@@ -171,24 +171,24 @@ const ie = ({ children: e }) => {
|
|
|
171
171
|
}
|
|
172
172
|
return () => {
|
|
173
173
|
};
|
|
174
|
-
}, [t,
|
|
175
|
-
const
|
|
176
|
-
u && await
|
|
177
|
-
|
|
174
|
+
}, [t, j, I]);
|
|
175
|
+
const k = d(async (u) => {
|
|
176
|
+
u && await j(u).catch(() => {
|
|
177
|
+
I(), n(null);
|
|
178
178
|
});
|
|
179
|
-
}, [
|
|
179
|
+
}, [j, I, n]);
|
|
180
180
|
C(() => {
|
|
181
|
-
|
|
182
|
-
}, [c, s == null ? void 0 : s.id,
|
|
183
|
-
const
|
|
181
|
+
k(c);
|
|
182
|
+
}, [c, s == null ? void 0 : s.id, k]);
|
|
183
|
+
const z = S(() => ({
|
|
184
184
|
user: N.user,
|
|
185
185
|
userLoginState: N,
|
|
186
|
-
loginUser:
|
|
187
|
-
logoutUser:
|
|
188
|
-
}), [N,
|
|
189
|
-
return /* @__PURE__ */ r.jsx(W.Provider, { value:
|
|
190
|
-
},
|
|
191
|
-
const { cookieDomain: a } =
|
|
186
|
+
loginUser: j,
|
|
187
|
+
logoutUser: I
|
|
188
|
+
}), [N, j, I]);
|
|
189
|
+
return /* @__PURE__ */ r.jsx(W.Provider, { value: z, children: e });
|
|
190
|
+
}, pe = ({ ...e }) => {
|
|
191
|
+
const { cookieDomain: a } = y(T), [, t] = Z(["Authorization"]), s = S(() => ({
|
|
192
192
|
useMsal: e.useMsal ?? !1,
|
|
193
193
|
msalInstance: e.useMsal ? e.msalInstance ?? null : null,
|
|
194
194
|
msalScopes: e.useMsal ? e.msalScopes ?? [] : []
|
|
@@ -196,7 +196,7 @@ const ie = ({ children: e }) => {
|
|
|
196
196
|
return C(() => {
|
|
197
197
|
if (e.useMsal) {
|
|
198
198
|
const n = e.msalInstance.addEventCallback((o) => {
|
|
199
|
-
if (o.eventType ===
|
|
199
|
+
if (o.eventType === P.LOGIN_SUCCESS || o.eventType === P.ACQUIRE_TOKEN_SUCCESS && o.payload) {
|
|
200
200
|
const i = o.payload, l = i.account;
|
|
201
201
|
e.msalInstance.setActiveAccount(l);
|
|
202
202
|
const c = i.accessToken, m = i.expiresOn;
|
|
@@ -216,20 +216,20 @@ const ie = ({ children: e }) => {
|
|
|
216
216
|
}
|
|
217
217
|
return () => {
|
|
218
218
|
};
|
|
219
|
-
}, [e, t, a]), /* @__PURE__ */ r.jsx(_.Provider, { value: s, children: e.useMsal ? /* @__PURE__ */ r.jsx(
|
|
219
|
+
}, [e, t, a]), /* @__PURE__ */ r.jsx(_.Provider, { value: s, children: e.useMsal ? /* @__PURE__ */ r.jsx(Y, { instance: e.msalInstance, children: e.children }) : e.children });
|
|
220
220
|
}, De = ({ children: e, relativeEndpoint: a }) => {
|
|
221
221
|
const [t, s, n] = se("user-delegation", null), o = S(() => {
|
|
222
222
|
if (!t)
|
|
223
223
|
return null;
|
|
224
|
-
const h = t.from ? G(t.from) : re(),
|
|
225
|
-
return ae(new Date(Date.now()), { start: h, end:
|
|
224
|
+
const h = t.from ? G(t.from) : re(), p = t.to ? G(t.to) : oe();
|
|
225
|
+
return ae(new Date(Date.now()), { start: h, end: p }) ? t : (s(null), null);
|
|
226
226
|
}, [t, s]), { data: i, setData: l, reloadData: c } = te(a, {
|
|
227
227
|
nullStateBeforeLoad: !1,
|
|
228
228
|
nullStateOnFail: !0
|
|
229
229
|
}), m = R(null);
|
|
230
230
|
C(() => {
|
|
231
231
|
const h = () => {
|
|
232
|
-
c(), m.current = window.setTimeout(h,
|
|
232
|
+
c(), m.current = window.setTimeout(h, $() + 5e3);
|
|
233
233
|
};
|
|
234
234
|
return h(), () => {
|
|
235
235
|
m.current !== null && window.clearTimeout(m.current);
|
|
@@ -257,10 +257,10 @@ const ie = ({ children: e }) => {
|
|
|
257
257
|
]);
|
|
258
258
|
return /* @__PURE__ */ r.jsx(M.Provider, { value: x, children: e });
|
|
259
259
|
}, ue = () => {
|
|
260
|
-
const { texts: { confirm: e } } =
|
|
261
|
-
return /* @__PURE__ */ r.jsxs(
|
|
262
|
-
/* @__PURE__ */ r.jsx(
|
|
263
|
-
/* @__PURE__ */ r.jsx(
|
|
260
|
+
const { texts: { confirm: e } } = y(T), { onConfirm: a, onCancel: t, text: s, show: n } = X();
|
|
261
|
+
return /* @__PURE__ */ r.jsxs(v, { show: n, size: "sm", centered: !0, onHide: t, children: [
|
|
262
|
+
/* @__PURE__ */ r.jsx(v.Header, { className: "justify-content-center", children: /* @__PURE__ */ r.jsx(v.Title, { children: s }) }),
|
|
263
|
+
/* @__PURE__ */ r.jsx(v.Body, { children: /* @__PURE__ */ r.jsxs("div", { className: "w-100 d-flex gap-5", children: [
|
|
264
264
|
/* @__PURE__ */ r.jsx(L, { type: "button", variant: "outlined", color: "secondary", className: "w-100", onClick: t, children: e.no }),
|
|
265
265
|
/* @__PURE__ */ r.jsx(L, { type: "button", color: "primary", onClick: a, className: "w-100 ml", children: e.yes })
|
|
266
266
|
] }) })
|
|
@@ -268,13 +268,13 @@ const ie = ({ children: e }) => {
|
|
|
268
268
|
};
|
|
269
269
|
export {
|
|
270
270
|
_ as AuthContext,
|
|
271
|
-
|
|
271
|
+
pe as AuthProvider,
|
|
272
272
|
M as DelegationContext,
|
|
273
273
|
De as DelegationProvider,
|
|
274
274
|
J as LoadingContext,
|
|
275
|
-
|
|
275
|
+
je as LoadingProvider,
|
|
276
276
|
T as LuminusComponentsContext,
|
|
277
|
-
|
|
277
|
+
ye as LuminusComponentsProvider,
|
|
278
278
|
W as UserContext,
|
|
279
|
-
|
|
279
|
+
Ie as UserProvider
|
|
280
280
|
};
|
|
@@ -8,6 +8,7 @@ type SupportedTypes = number | string | boolean | null | object;
|
|
|
8
8
|
* @template T type to apply to returned state and parameter of setState
|
|
9
9
|
* @param paramKey key by which the value gets saved in query param
|
|
10
10
|
* @param defaultState value of state if query param is absent or invalid
|
|
11
|
+
* @param typeOverride brute forces type to always be this type
|
|
11
12
|
* @returns [T extends SupportedTypes, (newState: T) => void]
|
|
12
13
|
* @todo fix a bug when you call setState on 2 different queryStates at once - it doesn't set up values properly; seems to be problem with setSearch - it doesn't get updated and second setState is called stale; #USQSdup
|
|
13
14
|
*/
|
package/dist/hooks.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./ResponsiveContextDropdown-DJHED0fJ.cjs"),l=require("./useClickOutside-D0505nsm.cjs"),d=require("./usePermissions-Bv3PjjAi.cjs"),r=require("./useClipboard-DO4Wt5yn.cjs"),m=require("./useGetApiData-DZI3UwZY.cjs"),c=require("react"),h=require("./useLocalStorageState-BFc8Gc8H.cjs"),S=a=>{let e="pending",t;const o=a.then(u=>{e="success",t=u},u=>{e="error",t=u});return()=>{switch(e){case"pending":throw o;case"success":return t;case"error":throw t;default:throw new Error("Unknown status")}}};function y(a,e){const t=s.useAxios({silent:!0,differentBaseUrl:e==null?void 0:e.customBaseUrl,customToken:e==null?void 0:e.customToken}),[o,u]=c.useState(null);return c.useEffect(()=>{(async()=>{const n=t.get(a).then(i=>i.data);u(S(n))})()},[t,a]),o}exports.cancelToken=s.cancelToken;exports.useAuth=s.useAuth;exports.useAxios=s.useAxios;exports.useConfirm=s.useConfirm;exports.useFormControlType=s.useFormControlType;exports.useNotifications=s.useNotifications;exports.usePrompt=s.usePrompt;exports.useZodSchemaTypes=s.useZodSchemaTypes;exports.useClickOutside=l.useClickOutside;exports.usePermissions=d.usePermissions;exports.useClipboard=r.useClipboard;exports.useEmployeePhotoPath=r.useEmployeePhotoPath;exports.useKeyPress=r.useKeyPress;exports.useSearchQuery=r.useSearchQuery;exports.useSearchQueryState=r.useSearchQueryState;exports.useGetApiData=m.useGetApiData;exports.useLocalStorageState=h.useLocalStorageState;exports.useGetDataBound=y;
|
package/dist/hooks.es.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { u as
|
|
5
|
-
import { u as F } from "./
|
|
1
|
+
import { as as c } from "./ResponsiveContextDropdown-BTWYs_5c.js";
|
|
2
|
+
import { bi as S, az as y, aS as g, aF as w, aR as k, a_ as D, bj as P } from "./ResponsiveContextDropdown-BTWYs_5c.js";
|
|
3
|
+
import { u as b } from "./useClickOutside-BmlXg38T.js";
|
|
4
|
+
import { u as A } from "./usePermissions-Xt0Kg7pS.js";
|
|
5
|
+
import { u as E, d as U, a as F, b as G, c as Q } from "./useClipboard-CPpcsAUr.js";
|
|
6
|
+
import { u as z } from "./useGetApiData-DlXJYhhW.js";
|
|
6
7
|
import { useState as n, useEffect as m } from "react";
|
|
7
8
|
import { u as L } from "./useLocalStorageState-Bt99kkCr.js";
|
|
8
9
|
const f = (t) => {
|
|
@@ -39,22 +40,22 @@ function p(t, e) {
|
|
|
39
40
|
}, [s, t]), r;
|
|
40
41
|
}
|
|
41
42
|
export {
|
|
42
|
-
|
|
43
|
+
S as cancelToken,
|
|
43
44
|
y as useAuth,
|
|
44
45
|
c as useAxios,
|
|
45
46
|
b as useClickOutside,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
E as useClipboard,
|
|
48
|
+
g as useConfirm,
|
|
49
|
+
U as useEmployeePhotoPath,
|
|
49
50
|
w as useFormControlType,
|
|
50
|
-
|
|
51
|
+
z as useGetApiData,
|
|
51
52
|
p as useGetDataBound,
|
|
52
|
-
|
|
53
|
+
F as useKeyPress,
|
|
53
54
|
L as useLocalStorageState,
|
|
54
55
|
k as useNotifications,
|
|
55
|
-
|
|
56
|
+
A as usePermissions,
|
|
56
57
|
D as usePrompt,
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
G as useSearchQuery,
|
|
59
|
+
Q as useSearchQueryState,
|
|
59
60
|
P as useZodSchemaTypes
|
|
60
61
|
};
|
|
@@ -6,6 +6,8 @@ type Props = {
|
|
|
6
6
|
collapsed: boolean;
|
|
7
7
|
onCollapse: () => void;
|
|
8
8
|
currentPath: string;
|
|
9
|
+
useHover: boolean;
|
|
10
|
+
useTooltips: boolean;
|
|
9
11
|
};
|
|
10
|
-
declare const MenuItem: ({ item, menuExpanded, collapsed, onCollapse, currentPath }: Props) => import("react").JSX.Element;
|
|
12
|
+
declare const MenuItem: ({ item, menuExpanded, collapsed, onCollapse, currentPath, useHover, useTooltips, }: Props) => import("react").JSX.Element;
|
|
11
13
|
export default MenuItem;
|
|
@@ -7,6 +7,8 @@ type Props = {
|
|
|
7
7
|
expanded: boolean;
|
|
8
8
|
setExpanded: (expanded: boolean) => void;
|
|
9
9
|
currentPath: string;
|
|
10
|
+
useHover: boolean;
|
|
11
|
+
useTooltips: boolean;
|
|
10
12
|
};
|
|
11
|
-
declare const SideMenu: ({ headerItem, mainItems, secondaryItems, expanded, setExpanded, currentPath, }: Props) => import("react").JSX.Element;
|
|
13
|
+
declare const SideMenu: ({ headerItem, mainItems, secondaryItems, expanded, setExpanded, currentPath, useHover, useTooltips, }: Props) => import("react").JSX.Element;
|
|
12
14
|
export default SideMenu;
|
package/dist/layout.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ResponsiveContextDropdown-DJHED0fJ.cjs"),j=require("react"),q=require("react-router-dom");require("react-hook-form");require("react-flexmonster");const k=require("./SimpleTooltip-DUaCV_sl.cjs");require("@azure/msal-browser");require("@azure/msal-react");const y=require("./useClickOutside-D0505nsm.cjs"),B=require("./usePermissions-Bv3PjjAi.cjs"),N=require("./FullScreenContainer-PAUPFvDa.cjs"),C="_side-menu-item_ql22m_1",g="_disabled_ql22m_6",P="_nav-button_ql22m_10",I="_child_ql22m_18",S="_text_ql22m_23",w="_icon_ql22m_30",T="_collapse-icon_ql22m_36",L="_collapsed_ql22m_46",f="_collapse-icon-mini_ql22m_49",F="_expanded_ql22m_80",O="_children-container_ql22m_86",$="_visible_ql22m_94",A="_children_ql22m_86",o={"side-menu-item":"_side-menu-item_ql22m_1",sideMenuItem:C,disabled:g,"nav-button":"_nav-button_ql22m_10",navButton:P,child:I,text:S,icon:w,"collapse-icon":"_collapse-icon_ql22m_36",collapseIcon:T,collapsed:L,"collapse-icon-mini":"_collapse-icon-mini_ql22m_49",collapseIconMini:f,expanded:F,"children-container":"_children-container_ql22m_86",childrenContainer:O,visible:$,children:A},D=({item:s,menuExpanded:l,useTooltips:r,children:t})=>s.tooltip&&!l&&r?e.jsxRuntimeExports.jsx(k.SimpleTooltip,{text:s.tooltip,placement:"right",children:t}):t,E=({item:s,menuExpanded:l,collapsed:r,onCollapse:t,currentPath:m,useHover:u,useTooltips:c})=>{var v,h,i,a;const[b,x]=j.useState(!1),[p]=m.split("?"),d=s.linkTo===p||((v=s.children)==null?void 0:v.some(n=>n.linkTo===p)),R=j.useRef(null);return y.useClickOutside([R],()=>r&&t()),e.jsxRuntimeExports.jsxs("li",{ref:R,className:e.classNames("luminus-side-menu-item",o.sideMenuItem,{[o.expanded]:l},{active:b||d},{open:r&&s.children},{[o.disabled]:s.disabled||s.notPermitted||((h=s.children)==null?void 0:h.every(n=>n.notPermitted||n.disabled))},{disabled:s.disabled||s.notPermitted||((i=s.children)==null?void 0:i.every(n=>n.notPermitted||n.disabled))}),onMouseEnter:()=>x(!0),onMouseLeave:()=>x(!1),children:[e.jsxRuntimeExports.jsx(D,{item:s,menuExpanded:l,useTooltips:c,children:s.children?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:e.jsxRuntimeExports.jsxs("button",{type:"button",className:e.classNames("nav-link",o.navButton),onClick:()=>{t()},children:[e.jsxRuntimeExports.jsx("div",{className:e.classNames("icon",o.icon),children:s.icon}),!u&&!l&&e.jsxRuntimeExports.jsx("div",{className:e.classNames("collapse-icon-mini rounded",o.collapseIconMini,{[o.collapsed]:r}),children:e.jsxRuntimeExports.jsx(e.MdOutlineKeyboardArrowRight,{})}),l&&e.jsxRuntimeExports.jsx("div",{className:e.classNames("text",o.text,"text-nowrap"),children:s.title}),l&&e.jsxRuntimeExports.jsx("div",{className:e.classNames("collapse-icon",o.collapseIcon,{[o.collapsed]:r}),children:e.jsxRuntimeExports.jsx(e.MdOutlineKeyboardArrowRight,{})})]})}):e.jsxRuntimeExports.jsxs(q.Link,{to:s.disabled||s.notPermitted?"/":s.linkTo??"/",className:e.classNames("nav-link",o.navButton),children:[e.jsxRuntimeExports.jsx("div",{className:e.classNames("icon",o.icon),children:s.icon}),l&&e.jsxRuntimeExports.jsx("div",{className:e.classNames("text",o.text,"text-nowrap"),children:s.title})]})}),e.jsxRuntimeExports.jsx("div",{className:e.classNames("children-container",o.childrenContainer,{[o.visible]:r}),children:e.jsxRuntimeExports.jsx("div",{className:e.classNames("shadow rounded children",o.children),children:(a=s.children)==null?void 0:a.map(n=>e.jsxRuntimeExports.jsx(q.Link,{to:n.disabled||n.notPermitted?"/":n.linkTo??"/",className:e.classNames("nav-link child rounded",o.navButton,o.child,{[o.disabled]:n.disabled||n.notPermitted},{disabled:n.disabled||n.notPermitted}),onClick:t,children:e.jsxRuntimeExports.jsx("div",{className:e.classNames("text",o.text,"text-nowrap"),children:n.title})},n.linkTo))})})]})},K="_side-menu_1deqc_1",U="_sidebar-header_1deqc_13",z="_side-menu-content_1deqc_20",G="_expand_1deqc_24",J="_only-logo_1deqc_28",Q="_divider_1deqc_31",_={"side-menu":"_side-menu_1deqc_1",sideMenu:K,"sidebar-header":"_sidebar-header_1deqc_13",sidebarHeader:U,"side-menu-content":"_side-menu-content_1deqc_20",sideMenuContent:z,expand:G,"only-logo":"_only-logo_1deqc_28",onlyLogo:J,divider:Q},V=({headerItem:s,mainItems:l,secondaryItems:r,expanded:t,setExpanded:m,currentPath:u,useHover:c,useTooltips:b})=>{const[x,p]=j.useState(-1),{checkUserHasPermissions:d}=B.usePermissions(),R=j.useMemo(()=>l.map(i=>{var a;return{...i,notPermitted:!d(i.permissions??[],"any"),children:(a=i.children)==null?void 0:a.map(n=>({...n,notPermitted:!d(n.permissions??[],"any"),disabled:i.disabled||n.disabled}))}}),[l,d]),v=j.useMemo(()=>r.map(i=>{var a;return{...i,notPermitted:!d(i.permissions??[],"any"),children:(a=i.children)==null?void 0:a.map(n=>({...n,notPermitted:!d(n.permissions??[],"any")}))}}),[r,d]),h=i=>{p(i===x?-1:i)};return j.useEffect(()=>{t||p(-1)},[t]),e.jsxRuntimeExports.jsxs("section",{className:e.classNames("luminus-side-menu shadow",_.sideMenu,{[_.expand]:t},{expand:t}),onMouseEnter:()=>c&&m(!0),onMouseLeave:()=>c&&m(!1),children:[e.jsxRuntimeExports.jsx("div",{className:e.classNames("sidebar-header",_.sidebarHeader,{[_.onlyLogo]:c}),role:c?void 0:"button",onClick:c?void 0:()=>m(!t),children:c?s:t?e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(e.MdOutlineArrowBack,{}),s]}):e.jsxRuntimeExports.jsx(e.MdOutlineMenu,{})}),e.jsxRuntimeExports.jsxs("ul",{className:_.sideMenuContent,children:[R.map((i,a)=>e.jsxRuntimeExports.jsx(E,{item:i,menuExpanded:t,collapsed:a===x,onCollapse:()=>h(a),currentPath:u,useHover:c,useTooltips:b},i.title)),e.jsxRuntimeExports.jsx("hr",{className:e.classNames("divider",_.divider)}),v.map((i,a)=>e.jsxRuntimeExports.jsx(E,{item:i,menuExpanded:t,collapsed:a===x,onCollapse:()=>h(a),currentPath:u,useHover:c,useTooltips:b},i.title))]})]})},X="_top-bar_1lk80_1",Y="_top-bar-brand_1lk80_14",M={"top-bar":"_top-bar_1lk80_1",topBar:X,"top-bar-brand":"_top-bar-brand_1lk80_14",topBarBrand:Y},Z=({appName:s,leftOffset:l,centerContent:r,rightContent:t})=>e.jsxRuntimeExports.jsxs("nav",{className:e.classNames("luminus-top-bar shadow",M.topBar),style:{width:l?`calc(100% - ${l}px)`:void 0,left:l?`${l}px`:void 0},children:[e.jsxRuntimeExports.jsx(q.Link,{to:"/",className:e.classNames("luminus-top-bar-brand",M.topBarBrand),children:s}),r&&e.jsxRuntimeExports.jsx("div",{children:r}),e.jsxRuntimeExports.jsx("div",{className:"d-flex justify-content-end align-items-center gap-2",children:t??null})]}),H=({title:s,children:l,sideContent:r,sideContentWidth:t=250,noPadding:m,className:u})=>e.jsxRuntimeExports.jsxs("div",{className:e.classNames("container-fluid",m?"p-0":"p-3",u),children:[e.jsxRuntimeExports.jsxs("div",{style:{paddingRight:r?`${t}px`:void 0},children:[s?e.jsxRuntimeExports.jsx(N.PageTitle,{title:s}):null,l]}),r&&e.jsxRuntimeExports.jsx(N.SideContentBar,{width:t,children:r})]});exports.FullScreenContainer=N.FullScreenContainer;exports.SideContentBar=N.SideContentBar;exports.MainContainer=H;exports.SideMenu=V;exports.TopBar=Z;
|