react-luminus-components 1.2.27 → 1.2.30

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.
Files changed (40) hide show
  1. package/dist/.vite/manifest.json +53 -53
  2. package/dist/EventType-D1zXMD8A.js +63 -0
  3. package/dist/EventType-DO8vvA6X.cjs +1 -0
  4. package/dist/{SimpleTooltip-BRhpcft2.cjs → SimpleTooltip-CjMfPKvQ.cjs} +1 -1
  5. package/dist/{SimpleTooltip-QvdXlxmf.js → SimpleTooltip-cMiObSvf.js} +1 -1
  6. package/dist/{Typography-ViYwSz0j.js → Typography-B12JkmMC.js} +1 -1
  7. package/dist/{Typography-tgs5dV12.cjs → Typography-Plu1Wa0_.cjs} +1 -1
  8. package/dist/{UserAvatarToggle-C3Sj7vJ2.js → UserAvatarToggle-BWDRIIXE.js} +2450 -2036
  9. package/dist/UserAvatarToggle-DEb7Klk7.cjs +253 -0
  10. package/dist/components/common/AuthTemplate/AuthTemplate.d.ts +6 -0
  11. package/dist/components/common/index.d.ts +1 -0
  12. package/dist/contexts/auth/AuthContext.d.ts +10 -0
  13. package/dist/contexts/auth/AuthProvider.d.ts +16 -0
  14. package/dist/contexts/index.d.ts +2 -0
  15. package/dist/contexts/luminus-components/LuminusComponentsContext.d.ts +2 -1
  16. package/dist/contexts/luminus-components/LuminusComponentsProvider.d.ts +3 -2
  17. package/dist/contexts/user/UserContext.d.ts +1 -1
  18. package/dist/contexts.cjs.js +1 -1
  19. package/dist/contexts.es.js +651 -475
  20. package/dist/hooks/useAuth/hooks/useDevAuth.d.ts +7 -0
  21. package/dist/hooks/useAuth/hooks/useMsalAuth.d.ts +8 -0
  22. package/dist/hooks/useAuth/useAuth.d.ts +2 -1
  23. package/dist/hooks.cjs.js +1 -1
  24. package/dist/hooks.es.js +4 -4
  25. package/dist/layout/FullScreenContainer/FullScreenContainer.d.ts +1 -1
  26. package/dist/layout/MainContainer/MainContainer.d.ts +1 -1
  27. package/dist/layout.cjs.js +1 -1
  28. package/dist/layout.es.js +20 -20
  29. package/dist/main.cjs.js +1 -1
  30. package/dist/main.d.ts +1 -0
  31. package/dist/main.es.js +2170 -1788
  32. package/dist/models/prop-types/ContainerProps.d.ts +1 -0
  33. package/dist/{useConfirm-BSs-RcsS.js → useConfirm-CKDkB8lL.js} +1 -1
  34. package/dist/{useConfirm-D1nPczaK.cjs → useConfirm-QOAtP0re.cjs} +1 -1
  35. package/dist/{usePermissions-BoFHWnT4.js → usePermissions-Cg_BMKPX.js} +1 -1
  36. package/dist/{usePermissions-COxTbL_u.cjs → usePermissions-zYTcBjf7.cjs} +1 -1
  37. package/package.json +3 -1
  38. package/dist/DataKey-BehuC6mV.js +0 -33
  39. package/dist/DataKey-CD61sktc.cjs +0 -1
  40. package/dist/UserAvatarToggle-BKpAJdnv.cjs +0 -253
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ children: React.ReactNode;
4
+ };
5
+ declare const AuthTemplate: ({ children }: Props) => string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
6
+ export default AuthTemplate;
@@ -14,3 +14,4 @@ export { default as Card } from './Card/Card';
14
14
  export { default as PhotoLightbox } from './PhotoLightbox/PhotoLightbox';
15
15
  export { default as PhotoLibrary } from './PhotoLibrary/PhotoLibrary';
16
16
  export { default as Backdrop } from './Backdrop/Backdrop';
17
+ export { default as AuthTemplate } from './AuthTemplate/AuthTemplate';
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { PublicClientApplication } from '@azure/msal-browser';
3
+ interface IAuthContext {
4
+ useMsal: boolean;
5
+ storedToken: string | null;
6
+ msalInstance: PublicClientApplication | null;
7
+ msalScopes: string[];
8
+ }
9
+ declare const AuthContext: import("react").Context<IAuthContext>;
10
+ export default AuthContext;
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ import { PublicClientApplication } from '@azure/msal-browser';
3
+ type BaseProps = {
4
+ children: React.ReactNode;
5
+ };
6
+ type MsalProps = {
7
+ msalInstance: PublicClientApplication;
8
+ msalScopes: string[];
9
+ };
10
+ type Props = BaseProps & ({
11
+ useMsal?: false;
12
+ } | (MsalProps & {
13
+ useMsal: true;
14
+ }));
15
+ declare const AuthProvider: ({ ...props }: Props) => import("react").JSX.Element;
16
+ export default AuthProvider;
@@ -4,3 +4,5 @@ export { default as LoadingContext } from './loading/LoadingContext';
4
4
  export { default as LoadingProvider } from './loading/LoadingProvider';
5
5
  export { default as UserContext } from './user/UserContext';
6
6
  export { default as UserProvider } from './user/UserProvider';
7
+ export { default as AuthContext } from './auth/AuthContext';
8
+ export { default as AuthProvider } from './auth/AuthProvider';
@@ -1,11 +1,12 @@
1
1
  /// <reference types="react" />
2
2
  import { AxiosInstance } from 'axios';
3
- import { LinkProps } from 'react-router-dom';
3
+ import { LinkProps, NavigateProps } from 'react-router-dom';
4
4
  import { AppSearchTexts, AxiosTexts, ConfirmTexts, CustomSelectTexts, FormSubmitTexts, FormValidationTexts, HomeDashboardTexts } from '@models/index';
5
5
  interface ILuminusComponentsContext {
6
6
  cookieDomain: string;
7
7
  axiosInstance: AxiosInstance;
8
8
  LinkComponent: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
9
+ NavigateComponent: (props: NavigateProps) => null;
9
10
  language: string;
10
11
  axiosTexts: AxiosTexts;
11
12
  confirmTexts: ConfirmTexts;
@@ -1,11 +1,12 @@
1
1
  /// <reference types="react" />
2
- import { LinkProps } from 'react-router-dom';
2
+ import { LinkProps, NavigateProps } from 'react-router-dom';
3
3
  import { AxiosInstance } from 'axios';
4
4
  import { AppSearchTexts, AxiosTexts, ConfirmTexts, CustomSelectTexts, FormSubmitTexts, FormValidationTexts, HomeDashboardTexts } from '@models/index';
5
5
  type Props = {
6
6
  cookieDomain: string;
7
7
  axiosInstance: AxiosInstance;
8
8
  LinkComponent: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
9
+ NavigateComponent: (props: NavigateProps) => null;
9
10
  language: string;
10
11
  axiosTexts: AxiosTexts;
11
12
  confirmTexts: ConfirmTexts;
@@ -16,5 +17,5 @@ type Props = {
16
17
  customSelectTexts: CustomSelectTexts;
17
18
  children: React.ReactNode;
18
19
  };
19
- declare const LuminusComponentsProvider: ({ cookieDomain, axiosInstance, LinkComponent, language, axiosTexts, confirmTexts, formValidationTexts, homeDashboardTexts, formSubmitTexts, appSearchTexts, customSelectTexts, children, }: Props) => import("react").JSX.Element;
20
+ declare const LuminusComponentsProvider: ({ cookieDomain, axiosInstance, LinkComponent, NavigateComponent, language, axiosTexts, confirmTexts, formValidationTexts, homeDashboardTexts, formSubmitTexts, appSearchTexts, customSelectTexts, children, }: Props) => import("react").JSX.Element;
20
21
  export default LuminusComponentsProvider;
@@ -2,7 +2,7 @@
2
2
  import UserModel from '@models/types/UserModel';
3
3
  interface IUserContext {
4
4
  user: UserModel | null;
5
- loginUser: () => Promise<boolean>;
5
+ loginUser: (token?: string) => Promise<boolean>;
6
6
  logoutUser: () => void;
7
7
  }
8
8
  declare const UserContext: import("react").Context<IUserContext>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./UserAvatarToggle-BKpAJdnv.cjs"),a=require("react"),je=require("./useConfirm-D1nPczaK.cjs"),De=require("./Typography-tgs5dV12.cjs"),j=require("./DataKey-CD61sktc.cjs"),Fe=require("react-dom");function Ie(s){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const n in s)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(s,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:()=>s[n]})}}return t.default=s,Object.freeze(t)}const g=Ie(a),Pe=s=>g.forwardRef((t,n)=>e.jsxRuntimeExports.jsx("div",{...t,ref:n,className:e.classNames(t.className,s)})),Ue={"aria-label":e.PropTypes.string,onClick:e.PropTypes.func,variant:e.PropTypes.oneOf(["white"])},me=g.forwardRef(({className:s,variant:t,"aria-label":n="Close",...o},r)=>e.jsxRuntimeExports.jsx("button",{ref:r,type:"button",className:e.classNames("btn-close",t&&`btn-close-${t}`,s),"aria-label":n,...o}));me.displayName="CloseButton";me.propTypes=Ue;var J;function ge(s){if((!J&&J!==0||s)&&e.canUseDOM){var t=document.createElement("div");t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),J=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return J}function ce(s){s===void 0&&(s=e.ownerDocument());try{var t=s.activeElement;return!t||!t.nodeName?null:t}catch{return s.body}}function We(s=document){const t=s.defaultView;return Math.abs(t.innerWidth-s.documentElement.clientWidth)}const Ee=j.dataAttr("modal-open");class fe{constructor({ownerDocument:t,handleContainerOverflow:n=!0,isRTL:o=!1}={}){this.handleContainerOverflow=n,this.isRTL=o,this.modals=[],this.ownerDocument=t}getScrollbarWidth(){return We(this.ownerDocument)}getElement(){return(this.ownerDocument||document).body}setModalAttributes(t){}removeModalAttributes(t){}setContainerStyle(t){const n={overflow:"hidden"},o=this.isRTL?"paddingLeft":"paddingRight",r=this.getElement();t.style={overflow:r.style.overflow,[o]:r.style[o]},t.scrollBarWidth&&(n[o]=`${parseInt(e.style(r,o)||"0",10)+t.scrollBarWidth}px`),r.setAttribute(Ee,""),e.style(r,n)}reset(){[...this.modals].forEach(t=>this.remove(t))}removeContainerStyle(t){const n=this.getElement();n.removeAttribute(Ee),Object.assign(n.style,t.style)}add(t){let n=this.modals.indexOf(t);return n!==-1||(n=this.modals.length,this.modals.push(t),this.setModalAttributes(t),n!==0)||(this.state={scrollBarWidth:this.getScrollbarWidth(),style:{}},this.handleContainerOverflow&&this.setContainerStyle(this.state)),n}remove(t){const n=this.modals.indexOf(t);n!==-1&&(this.modals.splice(n,1),!this.modals.length&&this.handleContainerOverflow&&this.removeContainerStyle(this.state),this.removeModalAttributes(t))}isTopModal(t){return!!this.modals.length&&this.modals[this.modals.length-1]===t}}const He=["show","role","className","style","children","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","transition","runTransition","backdropTransition","runBackdropTransition","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","manager","container","onShow","onHide","onExit","onExited","onExiting","onEnter","onEntering","onEntered"];function _e(s,t){if(s==null)return{};var n={},o=Object.keys(s),r,i;for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&(n[r]=s[r]);return n}let ue;function $e(s){return ue||(ue=new fe({ownerDocument:s==null?void 0:s.document})),ue}function qe(s){const t=e.useWindow(),n=s||$e(t),o=a.useRef({dialog:null,backdrop:null});return Object.assign(o.current,{add:()=>n.add(o.current),remove:()=>n.remove(o.current),isTopModal:()=>n.isTopModal(o.current),setDialogRef:a.useCallback(r=>{o.current.dialog=r},[]),setBackdropRef:a.useCallback(r=>{o.current.backdrop=r},[])})}const Re=a.forwardRef((s,t)=>{let{show:n=!1,role:o="dialog",className:r,style:i,children:m,backdrop:c=!0,keyboard:f=!0,onBackdropClick:p,onEscapeKeyDown:u,transition:h,runTransition:v,backdropTransition:w,runBackdropTransition:Q,autoFocus:W=!0,enforceFocus:Z=!0,restoreFocus:N=!0,restoreFocusOptions:ee,renderDialog:H,renderBackdrop:te=d=>e.jsxRuntimeExports.jsx("div",Object.assign({},d)),manager:se,container:ne,onShow:_,onHide:A=()=>{},onExit:oe,onExited:D,onExiting:$,onEnter:q,onEntering:K,onEntered:z}=s,re=_e(s,He);const R=e.useWindow(),M=e.useWaitForDOMRef(ne),x=qe(se),ae=e.useMounted(),V=j.usePrevious(n),[y,k]=a.useState(!n),E=a.useRef(null);a.useImperativeHandle(t,()=>x,[x]),e.canUseDOM&&!V&&n&&(E.current=ce(R==null?void 0:R.document)),n&&y&&k(!1);const C=e.useEventCallback(()=>{if(x.add(),T.current=e.listen(document,"keydown",le),I.current=e.listen(document,"focus",()=>setTimeout(ie),!0),_&&_(),W){var d,Y;const U=ce((d=(Y=x.dialog)==null?void 0:Y.ownerDocument)!=null?d:R==null?void 0:R.document);x.dialog&&U&&!e.contains(x.dialog,U)&&(E.current=U,x.dialog.focus())}}),F=e.useEventCallback(()=>{if(x.remove(),T.current==null||T.current(),I.current==null||I.current(),N){var d;(d=E.current)==null||d.focus==null||d.focus(ee),E.current=null}});a.useEffect(()=>{!n||!M||C()},[n,M,C]),a.useEffect(()=>{y&&F()},[y,F]),e.useWillUnmount(()=>{F()});const ie=e.useEventCallback(()=>{if(!Z||!ae()||!x.isTopModal())return;const d=ce(R==null?void 0:R.document);x.dialog&&d&&!e.contains(x.dialog,d)&&x.dialog.focus()}),G=e.useEventCallback(d=>{d.target===d.currentTarget&&(p==null||p(d),c===!0&&A())}),le=e.useEventCallback(d=>{f&&e.isEscKey(d)&&x.isTopModal()&&(u==null||u(d),d.defaultPrevented||A())}),I=a.useRef(),T=a.useRef(),X=(...d)=>{k(!0),D==null||D(...d)};if(!M)return null;const S=Object.assign({role:o,ref:x.setDialogRef,"aria-modal":o==="dialog"?!0:void 0},re,{style:i,className:r,tabIndex:-1});let P=H?H(S):e.jsxRuntimeExports.jsx("div",Object.assign({},S,{children:g.cloneElement(m,{role:"document"})}));P=e.renderTransition(h,v,{unmountOnExit:!0,mountOnEnter:!0,appear:!0,in:!!n,onExit:oe,onExiting:$,onExited:X,onEnter:q,onEntering:K,onEntered:z,children:P});let O=null;return c&&(O=te({ref:x.setBackdropRef,onClick:G}),O=e.renderTransition(w,Q,{in:!!n,appear:!0,mountOnEnter:!0,unmountOnExit:!0,children:O})),e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:Fe.createPortal(e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[O,P]}),M)})});Re.displayName="Modal";const Ke=Object.assign(Re,{Manager:fe});function ze(s,t){s.classList?s.classList.add(t):e.hasClass(s,t)||(typeof s.className=="string"?s.className=s.className+" "+t:s.setAttribute("class",(s.className&&s.className.baseVal||"")+" "+t))}function ve(s,t){return s.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function Ve(s,t){s.classList?s.classList.remove(t):typeof s.className=="string"?s.className=ve(s.className,t):s.setAttribute("class",ve(s.className&&s.className.baseVal||"",t))}const B={FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"};class Ge extends fe{adjustAndStore(t,n,o){const r=n.style[t];n.dataset[t]=r,e.style(n,{[t]:`${parseFloat(e.style(n,t))+o}px`})}restore(t,n){const o=n.dataset[t];o!==void 0&&(delete n.dataset[t],e.style(n,{[t]:o}))}setContainerStyle(t){super.setContainerStyle(t);const n=this.getElement();if(ze(n,"modal-open"),!t.scrollBarWidth)return;const o=this.isRTL?"paddingLeft":"paddingRight",r=this.isRTL?"marginLeft":"marginRight";j.qsa(n,B.FIXED_CONTENT).forEach(i=>this.adjustAndStore(o,i,t.scrollBarWidth)),j.qsa(n,B.STICKY_CONTENT).forEach(i=>this.adjustAndStore(r,i,-t.scrollBarWidth)),j.qsa(n,B.NAVBAR_TOGGLER).forEach(i=>this.adjustAndStore(r,i,t.scrollBarWidth))}removeContainerStyle(t){super.removeContainerStyle(t);const n=this.getElement();Ve(n,"modal-open");const o=this.isRTL?"paddingLeft":"paddingRight",r=this.isRTL?"marginLeft":"marginRight";j.qsa(n,B.FIXED_CONTENT).forEach(i=>this.restore(o,i)),j.qsa(n,B.STICKY_CONTENT).forEach(i=>this.restore(r,i)),j.qsa(n,B.NAVBAR_TOGGLER).forEach(i=>this.restore(r,i))}}let de;function Xe(s){return de||(de=new Ge(s)),de}const Ce=g.forwardRef(({className:s,bsPrefix:t,as:n="div",...o},r)=>(t=e.useBootstrapPrefix(t,"modal-body"),e.jsxRuntimeExports.jsx(n,{ref:r,className:e.classNames(s,t),...o})));Ce.displayName="ModalBody";const ye=g.createContext({onHide(){}}),pe=g.forwardRef(({bsPrefix:s,className:t,contentClassName:n,centered:o,size:r,fullscreen:i,children:m,scrollable:c,...f},p)=>{s=e.useBootstrapPrefix(s,"modal");const u=`${s}-dialog`,h=typeof i=="string"?`${s}-fullscreen-${i}`:`${s}-fullscreen`;return e.jsxRuntimeExports.jsx("div",{...f,ref:p,className:e.classNames(u,t,r&&`${s}-${r}`,o&&`${u}-centered`,c&&`${u}-scrollable`,i&&h),children:e.jsxRuntimeExports.jsx("div",{className:e.classNames(`${s}-content`,n),children:m})})});pe.displayName="ModalDialog";const be=g.forwardRef(({className:s,bsPrefix:t,as:n="div",...o},r)=>(t=e.useBootstrapPrefix(t,"modal-footer"),e.jsxRuntimeExports.jsx(n,{ref:r,className:e.classNames(s,t),...o})));be.displayName="ModalFooter";const Ye=g.forwardRef(({closeLabel:s="Close",closeVariant:t,closeButton:n=!1,onHide:o,children:r,...i},m)=>{const c=a.useContext(ye),f=e.useEventCallback(()=>{c==null||c.onHide(),o==null||o()});return e.jsxRuntimeExports.jsxs("div",{ref:m,...i,children:[r,n&&e.jsxRuntimeExports.jsx(me,{"aria-label":s,variant:t,onClick:f})]})}),we=g.forwardRef(({bsPrefix:s,className:t,closeLabel:n="Close",closeButton:o=!1,...r},i)=>(s=e.useBootstrapPrefix(s,"modal-header"),e.jsxRuntimeExports.jsx(Ye,{ref:i,...r,className:e.classNames(t,s),closeLabel:n,closeButton:o})));we.displayName="ModalHeader";const Je=Pe("h4"),Ne=g.forwardRef(({className:s,bsPrefix:t,as:n=Je,...o},r)=>(t=e.useBootstrapPrefix(t,"modal-title"),e.jsxRuntimeExports.jsx(n,{ref:r,className:e.classNames(s,t),...o})));Ne.displayName="ModalTitle";function Qe(s){return e.jsxRuntimeExports.jsx(e.Fade,{...s,timeout:null})}function Ze(s){return e.jsxRuntimeExports.jsx(e.Fade,{...s,timeout:null})}const Me=g.forwardRef(({bsPrefix:s,className:t,style:n,dialogClassName:o,contentClassName:r,children:i,dialogAs:m=pe,"data-bs-theme":c,"aria-labelledby":f,"aria-describedby":p,"aria-label":u,show:h=!1,animation:v=!0,backdrop:w=!0,keyboard:Q=!0,onEscapeKeyDown:W,onShow:Z,onHide:N,container:ee,autoFocus:H=!0,enforceFocus:te=!0,restoreFocus:se=!0,restoreFocusOptions:ne,onEntered:_,onExit:A,onExiting:oe,onEnter:D,onEntering:$,onExited:q,backdropClassName:K,manager:z,...re},R)=>{const[M,x]=a.useState({}),[ae,V]=a.useState(!1),y=a.useRef(!1),k=a.useRef(!1),E=a.useRef(null),[C,F]=e.useCallbackRef(),ie=e.useMergedRefs(R,F),G=e.useEventCallback(N),le=e.useIsRTL();s=e.useBootstrapPrefix(s,"modal");const I=a.useMemo(()=>({onHide:G}),[G]);function T(){return z||Xe({isRTL:le})}function X(l){if(!e.canUseDOM)return;const L=T().getScrollbarWidth()>0,he=l.scrollHeight>e.ownerDocument(l).documentElement.clientHeight;x({paddingRight:L&&!he?ge():void 0,paddingLeft:!L&&he?ge():void 0})}const S=e.useEventCallback(()=>{C&&X(C.dialog)});e.useWillUnmount(()=>{e.removeEventListener(window,"resize",S),E.current==null||E.current()});const P=()=>{y.current=!0},O=l=>{y.current&&C&&l.target===C.dialog&&(k.current=!0),y.current=!1},d=()=>{V(!0),E.current=e.transitionEnd(C.dialog,()=>{V(!1)})},Y=l=>{l.target===l.currentTarget&&d()},U=l=>{if(w==="static"){Y(l);return}if(k.current||l.target!==l.currentTarget){k.current=!1;return}N==null||N()},ke=l=>{Q?W==null||W(l):(l.preventDefault(),w==="static"&&d())},Te=(l,L)=>{l&&X(l),D==null||D(l,L)},Se=l=>{E.current==null||E.current(),A==null||A(l)},Oe=(l,L)=>{$==null||$(l,L),e.addEventListener(window,"resize",S)},Le=l=>{l&&(l.style.display=""),q==null||q(l),e.removeEventListener(window,"resize",S)},Be=a.useCallback(l=>e.jsxRuntimeExports.jsx("div",{...l,className:e.classNames(`${s}-backdrop`,K,!v&&"show")}),[v,K,s]),xe={...n,...M};xe.display="block";const Ae=l=>e.jsxRuntimeExports.jsx("div",{role:"dialog",...l,style:xe,className:e.classNames(t,s,ae&&`${s}-static`,!v&&"show"),onClick:w?U:void 0,onMouseUp:O,"data-bs-theme":c,"aria-label":u,"aria-labelledby":f,"aria-describedby":p,children:e.jsxRuntimeExports.jsx(m,{...re,onMouseDown:P,className:o,contentClassName:r,children:i})});return e.jsxRuntimeExports.jsx(ye.Provider,{value:I,children:e.jsxRuntimeExports.jsx(Ke,{show:h,ref:ie,backdrop:w,container:ee,keyboard:!0,autoFocus:H,enforceFocus:te,restoreFocus:se,restoreFocusOptions:ne,onEscapeKeyDown:ke,onShow:Z,onHide:N,onEnter:Te,onEntering:Oe,onEntered:_,onExit:Se,onExiting:oe,onExited:Le,manager:T(),transition:v?Qe:void 0,backdropTransition:v?Ze:void 0,renderBackdrop:Be,renderDialog:Ae})})});Me.displayName="Modal";const b=Object.assign(Me,{Body:Ce,Header:we,Title:Ne,Footer:be,Dialog:pe,TRANSITION_DURATION:300,BACKDROP_TRANSITION_DURATION:150}),et=()=>{const{confirmTexts:s}=a.useContext(e.LuminusComponentsContext),{isShown:t,text:n,onFinish:o}=je.usePrompt(),{options:r}=a.useContext(e.PromptContext),[i,m]=a.useState(r.defaultValue??""),c=a.useCallback(()=>{o(null)},[o]),f=a.useCallback(()=>{o(i)},[o,i]);a.useEffect(()=>{t===!0&&m(r.defaultValue??"")},[t,r.defaultValue]);const p=a.useMemo(()=>({value:i,onChange:u=>m(u.currentTarget.value),className:"w-100",autoFocus:!0,tabIndex:0}),[i]);return e.jsxRuntimeExports.jsxs(b,{show:t,size:"sm",centered:!0,onHide:c,children:[e.jsxRuntimeExports.jsx(b.Header,{children:e.jsxRuntimeExports.jsx(b.Title,{children:n})}),e.jsxRuntimeExports.jsxs(b.Body,{children:[r.input==="textarea"?e.jsxRuntimeExports.jsx("textarea",{...p,rows:5}):void 0,r.input==="input"?e.jsxRuntimeExports.jsx("input",{...p,type:r.type}):void 0]}),e.jsxRuntimeExports.jsxs(b.Footer,{children:[e.jsxRuntimeExports.jsx("button",{type:"button",className:"btn btn-secondary",onClick:c,children:s.cancel}),e.jsxRuntimeExports.jsx("button",{type:"button",className:"btn btn-primary ml",onClick:f,disabled:r.required&&!i,children:s.confirm})]})]})},tt=({children:s})=>{const[t,n]=a.useState(!1),[o,r]=a.useState(""),[i,m]=a.useState({input:"textarea",type:"text"}),c=a.useRef(()=>{}),f=a.useCallback(h=>{r(h),n(!0)},[]),p=a.useCallback(()=>{n(!1)},[]),u=a.useMemo(()=>({isShown:t,text:o,showPrompt:f,hidePrompt:p,resolveRef:c,options:i,setOptions:m}),[t,o,f,p,i]);return e.jsxRuntimeExports.jsxs(e.PromptContext.Provider,{value:u,children:[s,e.jsxRuntimeExports.jsx(et,{})]})},st=({children:s})=>{const[t,n]=a.useState(!1),[o,r]=a.useState(""),i=a.useCallback(f=>{n(!0),r(f)},[]),m=a.useCallback(()=>{n(!1)},[]),c=a.useMemo(()=>({show:t,text:o,showConfirm:i,hideConfirm:m}),[t,o,i,m]);return e.jsxRuntimeExports.jsxs(e.ConfirmContext.Provider,{value:c,children:[e.jsxRuntimeExports.jsx(at,{}),s]})},nt=({cookieDomain:s,axiosInstance:t,LinkComponent:n,language:o,axiosTexts:r,confirmTexts:i,formValidationTexts:m,homeDashboardTexts:c,formSubmitTexts:f,appSearchTexts:p,customSelectTexts:u,children:h})=>{const v=a.useMemo(()=>({axiosInstance:t,cookieDomain:s,LinkComponent:n,language:o,axiosTexts:r,confirmTexts:i,formValidationTexts:m,homeDashboardTexts:c,formSubmitTexts:f,appSearchTexts:p,customSelectTexts:u}),[t,s,n,o,r,i,m,c,f,p,u]);return e.jsxRuntimeExports.jsx(e.LuminusComponentsContext.Provider,{value:v,children:e.jsxRuntimeExports.jsx(st,{children:e.jsxRuntimeExports.jsxs(tt,{children:[e.jsxRuntimeExports.jsx(e.Ie,{}),h]})})})},ot=({children:s})=>{const[t,n]=a.useState(!1),[o]=a.useState(new Set),r=a.useCallback(c=>{o.add(c),n(!0)},[o]),i=a.useCallback(c=>{o.delete(c),o.size===0&&n(!1)},[o]),m=a.useMemo(()=>({isLoading:t,startLoading:r,stopLoading:i}),[t,r,i]);return e.jsxRuntimeExports.jsxs(e.LoadingContext.Provider,{value:m,children:[t&&e.jsxRuntimeExports.jsx(j.Loading,{}),s]})},rt=({children:s})=>{const t=e.useAxios(),n=a.useCallback(()=>{const u=localStorage.getItem("user")??null;return u?JSON.parse(u):null},[]),[o,r]=a.useState(n()),i=a.useCallback(async()=>{let u=null;return await t.get("/user/detail").then(h=>{u=h.data}).catch(()=>{u=null}),localStorage.setItem("user",JSON.stringify(u)),u},[t]),m=a.useCallback(()=>{localStorage.removeItem("user")},[]),c=a.useCallback(async()=>{const u=await i();return u?(r(u),!0):!1},[i]),f=a.useCallback(()=>{m(),r(null)},[m]),p=a.useMemo(()=>({user:o,loginUser:c,logoutUser:f}),[o,c,f]);return a.useEffect(()=>{r(n())},[n]),e.jsxRuntimeExports.jsx(e.UserContext.Provider,{value:p,children:s})},at=()=>{const{confirmTexts:s}=a.useContext(e.LuminusComponentsContext),{onConfirm:t,onCancel:n,text:o,show:r}=je.useConfirm();return e.jsxRuntimeExports.jsx(b,{show:r,size:"sm",centered:!0,onHide:n,children:e.jsxRuntimeExports.jsxs(b.Body,{children:[e.jsxRuntimeExports.jsx("div",{className:"mb-5 text-center",children:e.jsxRuntimeExports.jsx(De.Typography,{variant:"h6",children:o})}),e.jsxRuntimeExports.jsxs("div",{className:"w-100 d-flex gap-5",children:[e.jsxRuntimeExports.jsx("button",{type:"button",className:"btn btn-secondary w-100",onClick:n,children:s.no}),e.jsxRuntimeExports.jsx("button",{type:"button",className:"btn btn-primary w-100 ml",onClick:t,children:s.yes})]})]})})};exports.LoadingContext=e.LoadingContext;exports.LuminusComponentsContext=e.LuminusComponentsContext;exports.UserContext=e.UserContext;exports.LoadingProvider=ot;exports.LuminusComponentsProvider=nt;exports.UserProvider=rt;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./UserAvatarToggle-DEb7Klk7.cjs"),a=require("react"),Ce=require("./useConfirm-QOAtP0re.cjs"),_e=require("./Typography-Plu1Wa0_.cjs"),m=require("./EventType-DO8vvA6X.cjs"),Ue=require("react-dom");function De(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const o=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(n,s,o.get?o:{enumerable:!0,get:()=>t[s]})}}return n.default=t,Object.freeze(n)}const R=De(a),Fe=t=>R.forwardRef((n,s)=>e.jsxRuntimeExports.jsx("div",{...n,ref:s,className:e.classNames(n.className,t)})),We={"aria-label":e.PropTypes.string,onClick:e.PropTypes.func,variant:e.PropTypes.oneOf(["white"])},fe=R.forwardRef(({className:t,variant:n,"aria-label":s="Close",...o},r)=>e.jsxRuntimeExports.jsx("button",{ref:r,type:"button",className:e.classNames("btn-close",n&&`btn-close-${n}`,t),"aria-label":s,...o}));fe.displayName="CloseButton";fe.propTypes=We;var Y;function ge(t){if((!Y&&Y!==0||t)&&e.canUseDOM){var n=document.createElement("div");n.style.position="absolute",n.style.top="-9999px",n.style.width="50px",n.style.height="50px",n.style.overflow="scroll",document.body.appendChild(n),Y=n.offsetWidth-n.clientWidth,document.body.removeChild(n)}return Y}function ue(t){t===void 0&&(t=e.ownerDocument());try{var n=t.activeElement;return!n||!n.nodeName?null:n}catch{return t.body}}function He(t=document){const n=t.defaultView;return Math.abs(n.innerWidth-t.documentElement.clientWidth)}const ve=m.dataAttr("modal-open");class pe{constructor({ownerDocument:n,handleContainerOverflow:s=!0,isRTL:o=!1}={}){this.handleContainerOverflow=s,this.isRTL=o,this.modals=[],this.ownerDocument=n}getScrollbarWidth(){return He(this.ownerDocument)}getElement(){return(this.ownerDocument||document).body}setModalAttributes(n){}removeModalAttributes(n){}setContainerStyle(n){const s={overflow:"hidden"},o=this.isRTL?"paddingLeft":"paddingRight",r=this.getElement();n.style={overflow:r.style.overflow,[o]:r.style[o]},n.scrollBarWidth&&(s[o]=`${parseInt(e.style(r,o)||"0",10)+n.scrollBarWidth}px`),r.setAttribute(ve,""),e.style(r,s)}reset(){[...this.modals].forEach(n=>this.remove(n))}removeContainerStyle(n){const s=this.getElement();s.removeAttribute(ve),Object.assign(s.style,n.style)}add(n){let s=this.modals.indexOf(n);return s!==-1||(s=this.modals.length,this.modals.push(n),this.setModalAttributes(n),s!==0)||(this.state={scrollBarWidth:this.getScrollbarWidth(),style:{}},this.handleContainerOverflow&&this.setContainerStyle(this.state)),s}remove(n){const s=this.modals.indexOf(n);s!==-1&&(this.modals.splice(s,1),!this.modals.length&&this.handleContainerOverflow&&this.removeContainerStyle(this.state),this.removeModalAttributes(n))}isTopModal(n){return!!this.modals.length&&this.modals[this.modals.length-1]===n}}const Ke=["show","role","className","style","children","backdrop","keyboard","onBackdropClick","onEscapeKeyDown","transition","runTransition","backdropTransition","runBackdropTransition","autoFocus","enforceFocus","restoreFocus","restoreFocusOptions","renderDialog","renderBackdrop","manager","container","onShow","onHide","onExit","onExited","onExiting","onEnter","onEntering","onEntered"];function $e(t,n){if(t==null)return{};var s={},o=Object.keys(t),r,i;for(i=0;i<o.length;i++)r=o[i],!(n.indexOf(r)>=0)&&(s[r]=t[r]);return s}let de;function qe(t){return de||(de=new pe({ownerDocument:t==null?void 0:t.document})),de}function ze(t){const n=e.useWindow(),s=t||qe(n),o=a.useRef({dialog:null,backdrop:null});return Object.assign(o.current,{add:()=>s.add(o.current),remove:()=>s.remove(o.current),isTopModal:()=>s.isTopModal(o.current),setDialogRef:a.useCallback(r=>{o.current.dialog=r},[]),setBackdropRef:a.useCallback(r=>{o.current.backdrop=r},[])})}const Te=a.forwardRef((t,n)=>{let{show:s=!1,role:o="dialog",className:r,style:i,children:c,backdrop:l=!0,keyboard:d=!0,onBackdropClick:x,onEscapeKeyDown:h,transition:p,runTransition:E,backdropTransition:v,runBackdropTransition:Z,autoFocus:F=!0,enforceFocus:ee=!0,restoreFocus:S=!0,restoreFocusOptions:te,renderDialog:W,renderBackdrop:ne=f=>e.jsxRuntimeExports.jsx("div",Object.assign({},f)),manager:se,container:oe,onShow:H,onHide:L=()=>{},onExit:re,onExited:P,onExiting:K,onEnter:$,onEntering:q,onEntered:z}=t,ae=$e(t,Ke);const C=e.useWindow(),N=e.useWaitForDOMRef(oe),g=ze(se),ie=e.useMounted(),G=m.usePrevious(s),[b,k]=a.useState(!s),y=a.useRef(null);a.useImperativeHandle(n,()=>g,[g]),e.canUseDOM&&!G&&s&&(y.current=ue(C==null?void 0:C.document)),s&&b&&k(!1);const T=e.useEventCallback(()=>{if(g.add(),w.current=e.listen(document,"keydown",ce),_.current=e.listen(document,"focus",()=>setTimeout(le),!0),H&&H(),F){var f,X;const D=ue((f=(X=g.dialog)==null?void 0:X.ownerDocument)!=null?f:C==null?void 0:C.document);g.dialog&&D&&!e.contains(g.dialog,D)&&(y.current=D,g.dialog.focus())}}),B=e.useEventCallback(()=>{if(g.remove(),w.current==null||w.current(),_.current==null||_.current(),S){var f;(f=y.current)==null||f.focus==null||f.focus(te),y.current=null}});a.useEffect(()=>{!s||!N||T()},[s,N,T]),a.useEffect(()=>{b&&B()},[b,B]),e.useWillUnmount(()=>{B()});const le=e.useEventCallback(()=>{if(!ee||!ie()||!g.isTopModal())return;const f=ue(C==null?void 0:C.document);g.dialog&&f&&!e.contains(g.dialog,f)&&g.dialog.focus()}),V=e.useEventCallback(f=>{f.target===f.currentTarget&&(x==null||x(f),l===!0&&L())}),ce=e.useEventCallback(f=>{d&&e.isEscKey(f)&&g.isTopModal()&&(h==null||h(f),f.defaultPrevented||L())}),_=a.useRef(),w=a.useRef(),Q=(...f)=>{k(!0),P==null||P(...f)};if(!N)return null;const M=Object.assign({role:o,ref:g.setDialogRef,"aria-modal":o==="dialog"?!0:void 0},ae,{style:i,className:r,tabIndex:-1});let U=W?W(M):e.jsxRuntimeExports.jsx("div",Object.assign({},M,{children:R.cloneElement(c,{role:"document"})}));U=e.renderTransition(p,E,{unmountOnExit:!0,mountOnEnter:!0,appear:!0,in:!!s,onExit:re,onExiting:K,onExited:Q,onEnter:$,onEntering:q,onEntered:z,children:U});let I=null;return l&&(I=ne({ref:g.setBackdropRef,onClick:V}),I=e.renderTransition(v,Z,{in:!!s,appear:!0,mountOnEnter:!0,unmountOnExit:!0,children:I})),e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:Ue.createPortal(e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[I,U]}),N)})});Te.displayName="Modal";const Ge=Object.assign(Te,{Manager:pe});function Ve(t,n){t.classList?t.classList.add(n):e.hasClass(t,n)||(typeof t.className=="string"?t.className=t.className+" "+n:t.setAttribute("class",(t.className&&t.className.baseVal||"")+" "+n))}function Re(t,n){return t.replace(new RegExp("(^|\\s)"+n+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function Qe(t,n){t.classList?t.classList.remove(n):typeof t.className=="string"?t.className=Re(t.className,n):t.setAttribute("class",Re(t.className&&t.className.baseVal||"",n))}const A={FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"};class Xe extends pe{adjustAndStore(n,s,o){const r=s.style[n];s.dataset[n]=r,e.style(s,{[n]:`${parseFloat(e.style(s,n))+o}px`})}restore(n,s){const o=s.dataset[n];o!==void 0&&(delete s.dataset[n],e.style(s,{[n]:o}))}setContainerStyle(n){super.setContainerStyle(n);const s=this.getElement();if(Ve(s,"modal-open"),!n.scrollBarWidth)return;const o=this.isRTL?"paddingLeft":"paddingRight",r=this.isRTL?"marginLeft":"marginRight";m.qsa(s,A.FIXED_CONTENT).forEach(i=>this.adjustAndStore(o,i,n.scrollBarWidth)),m.qsa(s,A.STICKY_CONTENT).forEach(i=>this.adjustAndStore(r,i,-n.scrollBarWidth)),m.qsa(s,A.NAVBAR_TOGGLER).forEach(i=>this.adjustAndStore(r,i,n.scrollBarWidth))}removeContainerStyle(n){super.removeContainerStyle(n);const s=this.getElement();Qe(s,"modal-open");const o=this.isRTL?"paddingLeft":"paddingRight",r=this.isRTL?"marginLeft":"marginRight";m.qsa(s,A.FIXED_CONTENT).forEach(i=>this.restore(o,i)),m.qsa(s,A.STICKY_CONTENT).forEach(i=>this.restore(r,i)),m.qsa(s,A.NAVBAR_TOGGLER).forEach(i=>this.restore(r,i))}}let me;function Ye(t){return me||(me=new Xe(t)),me}const be=R.forwardRef(({className:t,bsPrefix:n,as:s="div",...o},r)=>(n=e.useBootstrapPrefix(n,"modal-body"),e.jsxRuntimeExports.jsx(s,{ref:r,className:e.classNames(t,n),...o})));be.displayName="ModalBody";const je=R.createContext({onHide(){}}),xe=R.forwardRef(({bsPrefix:t,className:n,contentClassName:s,centered:o,size:r,fullscreen:i,children:c,scrollable:l,...d},x)=>{t=e.useBootstrapPrefix(t,"modal");const h=`${t}-dialog`,p=typeof i=="string"?`${t}-fullscreen-${i}`:`${t}-fullscreen`;return e.jsxRuntimeExports.jsx("div",{...d,ref:x,className:e.classNames(h,n,r&&`${t}-${r}`,o&&`${h}-centered`,l&&`${h}-scrollable`,i&&p),children:e.jsxRuntimeExports.jsx("div",{className:e.classNames(`${t}-content`,s),children:c})})});xe.displayName="ModalDialog";const Se=R.forwardRef(({className:t,bsPrefix:n,as:s="div",...o},r)=>(n=e.useBootstrapPrefix(n,"modal-footer"),e.jsxRuntimeExports.jsx(s,{ref:r,className:e.classNames(t,n),...o})));Se.displayName="ModalFooter";const Je=R.forwardRef(({closeLabel:t="Close",closeVariant:n,closeButton:s=!1,onHide:o,children:r,...i},c)=>{const l=a.useContext(je),d=e.useEventCallback(()=>{l==null||l.onHide(),o==null||o()});return e.jsxRuntimeExports.jsxs("div",{ref:c,...i,children:[r,s&&e.jsxRuntimeExports.jsx(fe,{"aria-label":t,variant:n,onClick:d})]})}),Ne=R.forwardRef(({bsPrefix:t,className:n,closeLabel:s="Close",closeButton:o=!1,...r},i)=>(t=e.useBootstrapPrefix(t,"modal-header"),e.jsxRuntimeExports.jsx(Je,{ref:i,...r,className:e.classNames(n,t),closeLabel:s,closeButton:o})));Ne.displayName="ModalHeader";const Ze=Fe("h4"),ke=R.forwardRef(({className:t,bsPrefix:n,as:s=Ze,...o},r)=>(n=e.useBootstrapPrefix(n,"modal-title"),e.jsxRuntimeExports.jsx(s,{ref:r,className:e.classNames(t,n),...o})));ke.displayName="ModalTitle";function et(t){return e.jsxRuntimeExports.jsx(e.Fade,{...t,timeout:null})}function tt(t){return e.jsxRuntimeExports.jsx(e.Fade,{...t,timeout:null})}const we=R.forwardRef(({bsPrefix:t,className:n,style:s,dialogClassName:o,contentClassName:r,children:i,dialogAs:c=xe,"data-bs-theme":l,"aria-labelledby":d,"aria-describedby":x,"aria-label":h,show:p=!1,animation:E=!0,backdrop:v=!0,keyboard:Z=!0,onEscapeKeyDown:F,onShow:ee,onHide:S,container:te,autoFocus:W=!0,enforceFocus:ne=!0,restoreFocus:se=!0,restoreFocusOptions:oe,onEntered:H,onExit:L,onExiting:re,onEnter:P,onEntering:K,onExited:$,backdropClassName:q,manager:z,...ae},C)=>{const[N,g]=a.useState({}),[ie,G]=a.useState(!1),b=a.useRef(!1),k=a.useRef(!1),y=a.useRef(null),[T,B]=e.useCallbackRef(),le=e.useMergedRefs(C,B),V=e.useEventCallback(S),ce=e.useIsRTL();t=e.useBootstrapPrefix(t,"modal");const _=a.useMemo(()=>({onHide:V}),[V]);function w(){return z||Ye({isRTL:ce})}function Q(u){if(!e.canUseDOM)return;const O=w().getScrollbarWidth()>0,he=u.scrollHeight>e.ownerDocument(u).documentElement.clientHeight;g({paddingRight:O&&!he?ge():void 0,paddingLeft:!O&&he?ge():void 0})}const M=e.useEventCallback(()=>{T&&Q(T.dialog)});e.useWillUnmount(()=>{e.removeEventListener(window,"resize",M),y.current==null||y.current()});const U=()=>{b.current=!0},I=u=>{b.current&&T&&u.target===T.dialog&&(k.current=!0),b.current=!1},f=()=>{G(!0),y.current=e.transitionEnd(T.dialog,()=>{G(!1)})},X=u=>{u.target===u.currentTarget&&f()},D=u=>{if(v==="static"){X(u);return}if(k.current||u.target!==u.currentTarget){k.current=!1;return}S==null||S()},Me=u=>{Z?F==null||F(u):(u.preventDefault(),v==="static"&&f())},Ie=(u,O)=>{u&&Q(u),P==null||P(u,O)},Oe=u=>{y.current==null||y.current(),L==null||L(u)},Ae=(u,O)=>{K==null||K(u,O),e.addEventListener(window,"resize",M)},Le=u=>{u&&(u.style.display=""),$==null||$(u),e.removeEventListener(window,"resize",M)},Pe=a.useCallback(u=>e.jsxRuntimeExports.jsx("div",{...u,className:e.classNames(`${t}-backdrop`,q,!E&&"show")}),[E,q,t]),Ee={...s,...N};Ee.display="block";const Be=u=>e.jsxRuntimeExports.jsx("div",{role:"dialog",...u,style:Ee,className:e.classNames(n,t,ie&&`${t}-static`,!E&&"show"),onClick:v?D:void 0,onMouseUp:I,"data-bs-theme":l,"aria-label":h,"aria-labelledby":d,"aria-describedby":x,children:e.jsxRuntimeExports.jsx(c,{...ae,onMouseDown:U,className:o,contentClassName:r,children:i})});return e.jsxRuntimeExports.jsx(je.Provider,{value:_,children:e.jsxRuntimeExports.jsx(Ge,{show:p,ref:le,backdrop:v,container:te,keyboard:!0,autoFocus:W,enforceFocus:ne,restoreFocus:se,restoreFocusOptions:oe,onEscapeKeyDown:Me,onShow:ee,onHide:S,onEnter:Ie,onEntering:Ae,onEntered:H,onExit:Oe,onExiting:re,onExited:Le,manager:w(),transition:E?et:void 0,backdropTransition:E?tt:void 0,renderBackdrop:Pe,renderDialog:Be})})});we.displayName="Modal";const j=Object.assign(we,{Body:be,Header:Ne,Title:ke,Footer:Se,Dialog:xe,TRANSITION_DURATION:300,BACKDROP_TRANSITION_DURATION:150}),nt=()=>{const{confirmTexts:t}=a.useContext(e.LuminusComponentsContext),{isShown:n,text:s,onFinish:o}=Ce.usePrompt(),{options:r}=a.useContext(e.PromptContext),[i,c]=a.useState(r.defaultValue??""),l=a.useCallback(()=>{o(null)},[o]),d=a.useCallback(()=>{o(i)},[o,i]);a.useEffect(()=>{n===!0&&c(r.defaultValue??"")},[n,r.defaultValue]);const x=a.useMemo(()=>({value:i,onChange:h=>c(h.currentTarget.value),className:"w-100",autoFocus:!0,tabIndex:0}),[i]);return e.jsxRuntimeExports.jsxs(j,{show:n,size:"sm",centered:!0,onHide:l,children:[e.jsxRuntimeExports.jsx(j.Header,{children:e.jsxRuntimeExports.jsx(j.Title,{children:s})}),e.jsxRuntimeExports.jsxs(j.Body,{children:[r.input==="textarea"?e.jsxRuntimeExports.jsx("textarea",{...x,rows:5}):void 0,r.input==="input"?e.jsxRuntimeExports.jsx("input",{...x,type:r.type}):void 0]}),e.jsxRuntimeExports.jsxs(j.Footer,{children:[e.jsxRuntimeExports.jsx("button",{type:"button",className:"btn btn-secondary",onClick:l,children:t.cancel}),e.jsxRuntimeExports.jsx("button",{type:"button",className:"btn btn-primary ml",onClick:d,disabled:r.required&&!i,children:t.confirm})]})]})},st=({children:t})=>{const[n,s]=a.useState(!1),[o,r]=a.useState(""),[i,c]=a.useState({input:"textarea",type:"text"}),l=a.useRef(()=>{}),d=a.useCallback(p=>{r(p),s(!0)},[]),x=a.useCallback(()=>{s(!1)},[]),h=a.useMemo(()=>({isShown:n,text:o,showPrompt:d,hidePrompt:x,resolveRef:l,options:i,setOptions:c}),[n,o,d,x,i]);return e.jsxRuntimeExports.jsxs(e.PromptContext.Provider,{value:h,children:[t,e.jsxRuntimeExports.jsx(nt,{})]})},ot=({children:t})=>{const[n,s]=a.useState(!1),[o,r]=a.useState(""),i=a.useCallback(d=>{s(!0),r(d)},[]),c=a.useCallback(()=>{s(!1)},[]),l=a.useMemo(()=>({show:n,text:o,showConfirm:i,hideConfirm:c}),[n,o,i,c]);return e.jsxRuntimeExports.jsxs(e.ConfirmContext.Provider,{value:l,children:[e.jsxRuntimeExports.jsx(ft,{}),t]})},rt=({cookieDomain:t,axiosInstance:n,LinkComponent:s,NavigateComponent:o,language:r,axiosTexts:i,confirmTexts:c,formValidationTexts:l,homeDashboardTexts:d,formSubmitTexts:x,appSearchTexts:h,customSelectTexts:p,children:E})=>{const v=a.useMemo(()=>({axiosInstance:n,cookieDomain:t,LinkComponent:s,NavigateComponent:o,language:r,axiosTexts:i,confirmTexts:c,formValidationTexts:l,homeDashboardTexts:d,formSubmitTexts:x,appSearchTexts:h,customSelectTexts:p}),[n,t,s,o,r,i,c,l,d,x,h,p]);return e.jsxRuntimeExports.jsx(e.LuminusComponentsContext.Provider,{value:v,children:e.jsxRuntimeExports.jsx(ot,{children:e.jsxRuntimeExports.jsxs(st,{children:[e.jsxRuntimeExports.jsx(e.Ie,{}),E]})})})},at=({children:t})=>{const[n,s]=a.useState(!1),[o]=a.useState(new Set),r=a.useCallback(l=>{o.add(l),s(!0)},[o]),i=a.useCallback(l=>{o.delete(l),o.size===0&&s(!1)},[o]),c=a.useMemo(()=>({isLoading:n,startLoading:r,stopLoading:i}),[n,r,i]);return e.jsxRuntimeExports.jsxs(e.LoadingContext.Provider,{value:c,children:[n&&e.jsxRuntimeExports.jsx(m.Loading,{}),t]})};/*! @azure/msal-browser v3.14.0 2024-05-07 */class it{static getInteractionStatusFromEvent(n,s){switch(n.eventType){case m.EventType.LOGIN_START:return e.InteractionStatus.Login;case m.EventType.SSO_SILENT_START:return e.InteractionStatus.SsoSilent;case m.EventType.ACQUIRE_TOKEN_START:if(n.interactionType===e.InteractionType.Redirect||n.interactionType===e.InteractionType.Popup)return e.InteractionStatus.AcquireToken;break;case m.EventType.HANDLE_REDIRECT_START:return e.InteractionStatus.HandleRedirect;case m.EventType.LOGOUT_START:return e.InteractionStatus.Logout;case m.EventType.SSO_SILENT_SUCCESS:case m.EventType.SSO_SILENT_FAILURE:if(s&&s!==e.InteractionStatus.SsoSilent)break;return e.InteractionStatus.None;case m.EventType.LOGOUT_END:if(s&&s!==e.InteractionStatus.Logout)break;return e.InteractionStatus.None;case m.EventType.HANDLE_REDIRECT_END:if(s&&s!==e.InteractionStatus.HandleRedirect)break;return e.InteractionStatus.None;case m.EventType.LOGIN_SUCCESS:case m.EventType.LOGIN_FAILURE:case m.EventType.ACQUIRE_TOKEN_SUCCESS:case m.EventType.ACQUIRE_TOKEN_FAILURE:case m.EventType.RESTORE_FROM_BFCACHE:if(n.interactionType===e.InteractionType.Redirect||n.interactionType===e.InteractionType.Popup){if(s&&s!==e.InteractionStatus.Login&&s!==e.InteractionStatus.AcquireToken)break;return e.InteractionStatus.None}break}return null}}/*! @azure/msal-react v2.0.16 2024-05-07 */const lt="@azure/msal-react",ye="2.0.16";/*! @azure/msal-react v2.0.16 2024-05-07 */const J={UNBLOCK_INPROGRESS:"UNBLOCK_INPROGRESS",EVENT:"EVENT"},ct=(t,n)=>{const{type:s,payload:o}=n;let r=t.inProgress;switch(s){case J.UNBLOCK_INPROGRESS:t.inProgress===e.InteractionStatus.Startup&&(r=e.InteractionStatus.None,o.logger.info("MsalProvider - handleRedirectPromise resolved, setting inProgress to 'none'"));break;case J.EVENT:const c=o.message,l=it.getInteractionStatusFromEvent(c,t.inProgress);l&&(o.logger.info(`MsalProvider - ${c.eventType} results in setting inProgress from ${t.inProgress} to ${l}`),r=l);break;default:throw new Error(`Unknown action type: ${s}`)}const i=o.instance.getAllAccounts();return r!==t.inProgress&&!e.accountArraysAreEqual(i,t.accounts)?{...t,inProgress:r,accounts:i}:r!==t.inProgress?{...t,inProgress:r}:e.accountArraysAreEqual(i,t.accounts)?t:{...t,accounts:i}};function ut({instance:t,children:n}){a.useEffect(()=>{t.initializeWrapperLibrary(e.WrapperSKU.React,ye)},[t]);const s=a.useMemo(()=>t.getLogger().clone(lt,ye),[t]),[o,r]=a.useReducer(ct,void 0,()=>({inProgress:e.InteractionStatus.Startup,accounts:t.getAllAccounts()}));a.useEffect(()=>{const c=t.addEventCallback(l=>{r({payload:{instance:t,logger:s,message:l},type:J.EVENT})});return s.verbose(`MsalProvider - Registered event callback with id: ${c}`),t.initialize().then(()=>{t.handleRedirectPromise().catch(()=>{}).finally(()=>{r({payload:{instance:t,logger:s},type:J.UNBLOCK_INPROGRESS})})}).catch(()=>{}),()=>{c&&(s.verbose(`MsalProvider - Removing event callback ${c}`),t.removeEventCallback(c))}},[t,s]);const i={instance:t,inProgress:o.inProgress,accounts:o.accounts,logger:s};return a.createElement(e.MsalContext.Provider,{value:i},n)}const dt=({children:t})=>{const n=e.useAxios(),{msalInstance:s}=a.useContext(e.AuthContext),o=a.useCallback(()=>{const p=localStorage.getItem("user")??null;return p?JSON.parse(p):null},[]),[r,i]=a.useState(o()),c=a.useCallback(async p=>{let E=null;return await n.get("/user/detail",p?{headers:{Authorization:`Bearer ${p}`}}:void 0).then(v=>{E=v.data}).catch(()=>{E=null}),localStorage.setItem("user",JSON.stringify(E)),E},[n]),l=a.useCallback(()=>{localStorage.removeItem("user")},[]),d=a.useCallback(async p=>{const E=await c(p);return E?(i(E),!0):!1},[c]),x=a.useCallback(()=>{l(),i(null)},[l]),h=a.useMemo(()=>({user:r,loginUser:d,logoutUser:x}),[r,d,x]);return a.useEffect(()=>{i(o())},[o]),a.useEffect(()=>{if(s){const p=s.addEventCallback(E=>{if(E.eventType===m.EventType.ACQUIRE_TOKEN_SUCCESS&&E.payload){const v=E.payload;d(v.accessToken).catch(()=>x())}});return()=>{p&&s.removeEventCallback(p)}}return()=>{}},[s,d,x]),e.jsxRuntimeExports.jsx(e.UserContext.Provider,{value:h,children:t})},mt=({...t})=>{const{cookieDomain:n}=a.useContext(e.LuminusComponentsContext),[,s]=e.useCookies(["Authorization"]),[o,r]=a.useState(null),i=a.useMemo(()=>({useMsal:t.useMsal??!1,storedToken:(o==null?void 0:o.token)??null,msalInstance:t.useMsal?t.msalInstance??null:null,msalScopes:t.useMsal?t.msalScopes??[]:[]}),[t,o]);return a.useEffect(()=>{if(t.useMsal){const c=t.msalInstance.addEventCallback(l=>{if(l.eventType===m.EventType.LOGIN_SUCCESS||l.eventType===m.EventType.ACQUIRE_TOKEN_SUCCESS&&l.payload){const d=l.payload,x=d.account;t.msalInstance.setActiveAccount(x);const h=d.accessToken,p=d.expiresOn;r({token:h,expiresOn:p})}});return()=>{c&&t.msalInstance.removeEventCallback(c)}}return()=>{}},[t]),a.useEffect(()=>{o&&s("Authorization",o.token,{path:"/",secure:!0,sameSite:"none",domain:n,expires:o.expiresOn??void 0})},[o,n,s]),e.jsxRuntimeExports.jsx(e.AuthContext.Provider,{value:i,children:t.useMsal?e.jsxRuntimeExports.jsx(ut,{instance:t.msalInstance,children:t.children}):t.children})},ft=()=>{const{confirmTexts:t}=a.useContext(e.LuminusComponentsContext),{onConfirm:n,onCancel:s,text:o,show:r}=Ce.useConfirm();return e.jsxRuntimeExports.jsx(j,{show:r,size:"sm",centered:!0,onHide:s,children:e.jsxRuntimeExports.jsxs(j.Body,{children:[e.jsxRuntimeExports.jsx("div",{className:"mb-5 text-center",children:e.jsxRuntimeExports.jsx(_e.Typography,{variant:"h6",children:o})}),e.jsxRuntimeExports.jsxs("div",{className:"w-100 d-flex gap-5",children:[e.jsxRuntimeExports.jsx("button",{type:"button",className:"btn btn-secondary w-100",onClick:s,children:t.no}),e.jsxRuntimeExports.jsx("button",{type:"button",className:"btn btn-primary w-100 ml",onClick:n,children:t.yes})]})]})})};exports.AuthContext=e.AuthContext;exports.LoadingContext=e.LoadingContext;exports.LuminusComponentsContext=e.LuminusComponentsContext;exports.UserContext=e.UserContext;exports.AuthProvider=mt;exports.LoadingProvider=at;exports.LuminusComponentsProvider=rt;exports.UserProvider=dt;