@ukpc-lib/react 0.1.5 → 0.1.7
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 +109 -2
- package/dist/share/index.cjs +1 -1
- package/dist/share/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,2 +1,109 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
1
|
+
# @ukpc-lib/react
|
|
2
|
+
|
|
3
|
+
@ukpc-lib is a comprehensive npm library designed to provide a suite of reusable components, themes, colors, hooks, and auth providers for UKPC applications. It aims to streamline development and ensure consistency across different projects.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
### React
|
|
8
|
+
|
|
9
|
+
To install package, use the following command:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @ukpc-lib/react
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### .NET
|
|
16
|
+
|
|
17
|
+
With .NET applications, you can import the script and use it as follows:
|
|
18
|
+
|
|
19
|
+
Topbar:
|
|
20
|
+
https://unpkg.com/@ukpc-lib/react@latest/web-components-bundle/global-topbar/index.js
|
|
21
|
+
|
|
22
|
+
Global Menu:
|
|
23
|
+
https://unpkg.com/@ukpc-lib/react@latest/web-components-bundle/global-menu/index.js
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
**To ensure the correct display, you should use the layout as shown below:**
|
|
28
|
+
|
|
29
|
+
### React
|
|
30
|
+
|
|
31
|
+
After installation, you can start using components by importing it into your project. Here's an example of how to use Global Menu:
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
import { GlobalMenu } from '@ukpc-lib/react/components';
|
|
35
|
+
import { useAuth } from '@ukpc-lib/react/share';
|
|
36
|
+
import { Outlet } from 'react-router-dom';
|
|
37
|
+
import TopBar from './TopBar';
|
|
38
|
+
|
|
39
|
+
export default function PrivateLayout() {
|
|
40
|
+
const { logout } = useAuth();
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<div style={{ display: 'flex', flexDirection: 'column', height: '100vh' }}>
|
|
44
|
+
<div style={{ height: '64px' }}>
|
|
45
|
+
<TopBar />
|
|
46
|
+
</div>
|
|
47
|
+
<div
|
|
48
|
+
style={{
|
|
49
|
+
display: 'flex',
|
|
50
|
+
flexDirection: 'row',
|
|
51
|
+
flex: 1,
|
|
52
|
+
overflow: 'hidden',
|
|
53
|
+
}}
|
|
54
|
+
>
|
|
55
|
+
<GlobalMenu
|
|
56
|
+
baseUrl="https://saas.dev-intelli-park.com"
|
|
57
|
+
menuPath="/global-menu-config/api/v1/menu-items/user"
|
|
58
|
+
logout={logout}
|
|
59
|
+
/>
|
|
60
|
+
<div style={{ flex: 1, padding: '40px', overflow: 'auto' }}>
|
|
61
|
+
<Outlet />
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### .NET
|
|
70
|
+
|
|
71
|
+
```js
|
|
72
|
+
<div style="display: flex; flex-direction: column; height: 100vh;">
|
|
73
|
+
<div style="height: 64px;">
|
|
74
|
+
<global-topbar
|
|
75
|
+
base-url="@baseurl"
|
|
76
|
+
user="@userJson"
|
|
77
|
+
logo="logoURL"
|
|
78
|
+
></global-topbar>
|
|
79
|
+
</div>
|
|
80
|
+
<div style="display: flex; flex-direction: row; flex: 1; overflow: hidden;">
|
|
81
|
+
<global-menu
|
|
82
|
+
menu-path="/global-menu-config/api/v1/menu-items/user"
|
|
83
|
+
base-url="@baseurl"
|
|
84
|
+
logout="logout"
|
|
85
|
+
></global-menu>
|
|
86
|
+
<div style="flex: 1; padding: 40px; overflow: auto;">
|
|
87
|
+
<Outlet />
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## API
|
|
94
|
+
|
|
95
|
+
#### Global menu:
|
|
96
|
+
|
|
97
|
+
- `baseUrl`: This is the root path where the global menu resources are located.
|
|
98
|
+
- `menuPath`: This is appended to the `baseUrl` to form the full URL to the menu resource.
|
|
99
|
+
- `logout()`: A method that logs out the current user. When called, it will clear the user's session and redirect them to the login page.
|
|
100
|
+
|
|
101
|
+
#### Topbar:
|
|
102
|
+
|
|
103
|
+
- `baseUrl`: This is the root path where the global topbar resources are located.
|
|
104
|
+
- `user`: A JSON string representing the current user.
|
|
105
|
+
- `logo`: The URL of the logo image to be displayed on the topbar.
|
|
106
|
+
|
|
107
|
+
## Contributing
|
|
108
|
+
|
|
109
|
+
We always welcome community contributions. If you want to contribute, please create a Pull Request and we will review it.
|
package/dist/share/index.cjs
CHANGED
|
@@ -98,4 +98,4 @@ const theme2 = createTheme({ palette: {
|
|
|
98
98
|
animation: ${0} 1.4s linear infinite;
|
|
99
99
|
`),pa)),ga=vr("svg",{name:"MuiCircularProgress",slot:"Svg",overridesResolver:(e,r)=>r.svg})({display:"block"}),ba=vr("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(e,r)=>{const{ownerState:t}=e;return[r.circle,r[`circle${oe(t.variant)}`],t.disableShrink&&r.circleDisableShrink]}})(({ownerState:e,theme:r})=>c._extends({stroke:"currentColor"},e.variant==="determinate"&&{transition:r.transitions.create("stroke-dashoffset")},e.variant==="indeterminate"&&{strokeDasharray:"80px, 200px",strokeDashoffset:0}),({ownerState:e})=>e.variant==="indeterminate"&&!e.disableShrink&&Hr(Bt||(Bt=xr`
|
|
100
100
|
animation: ${0} 1.4s ease-in-out infinite;
|
|
101
|
-
`),ma)),Tn=j.forwardRef(function(r,t){const n=_n({props:r,name:"MuiCircularProgress"}),{className:o,color:s="primary",disableShrink:i=!1,size:a=40,style:u,thickness:l=3.6,value:f=0,variant:h="indeterminate"}=n,p=c._objectWithoutPropertiesLoose(n,da),b=c._extends({},n,{color:s,disableShrink:i,size:a,thickness:l,value:f,variant:h}),g=ha(b),d={},m={},v={};if(h==="determinate"){const w=2*Math.PI*((ce-l)/2);d.strokeDasharray=w.toFixed(3),v["aria-valuenow"]=Math.round(f),d.strokeDashoffset=`${((100-f)/100*w).toFixed(3)}px`,m.transform="rotate(-90deg)"}return K.jsx(ya,c._extends({className:c.clsx(g.root,o),style:c._extends({width:a,height:a},m,u),ownerState:b,ref:t,role:"progressbar"},v,p,{children:K.jsx(ga,{className:g.svg,ownerState:b,viewBox:`${ce/2} ${ce/2} ${ce} ${ce}`,children:K.jsx(ba,{className:g.circle,style:d,ownerState:b,cx:ce,cy:ce,r:(ce-l)/2,fill:"none",strokeWidth:l})})}))});process.env.NODE_ENV!=="production"&&(Tn.propTypes={classes:c.PropTypes.object,className:c.PropTypes.string,color:c.PropTypes.oneOfType([c.PropTypes.oneOf(["inherit","primary","secondary","error","info","success","warning"]),c.PropTypes.string]),disableShrink:ns(c.PropTypes.bool,e=>e.disableShrink&&e.variant&&e.variant!=="indeterminate"?new Error("MUI: You have provided the `disableShrink` prop with a variant other than `indeterminate`. This will have no effect."):null),size:c.PropTypes.oneOfType([c.PropTypes.number,c.PropTypes.string]),style:c.PropTypes.object,sx:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.oneOfType([c.PropTypes.func,c.PropTypes.object,c.PropTypes.bool])),c.PropTypes.func,c.PropTypes.object]),thickness:c.PropTypes.number,value:c.PropTypes.number,variant:c.PropTypes.oneOf(["determinate","indeterminate"])});const va=Tn,Pn=j.createContext();process.env.NODE_ENV!=="production"&&(Pn.displayName="GridContext");const Gt=Pn;function xa(e){return cr("MuiGrid",e)}const Ea=[0,1,2,3,4,5,6,7,8,9,10],Sa=["column-reverse","column","row-reverse","row"],_a=["nowrap","wrap-reverse","wrap"],ke=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],Fe=yn("MuiGrid",["root","container","item","zeroMinWidth",...Ea.map(e=>`spacing-xs-${e}`),...Sa.map(e=>`direction-xs-${e}`),..._a.map(e=>`wrap-xs-${e}`),...ke.map(e=>`grid-xs-${e}`),...ke.map(e=>`grid-sm-${e}`),...ke.map(e=>`grid-md-${e}`),...ke.map(e=>`grid-lg-${e}`),...ke.map(e=>`grid-xl-${e}`)]),Ta=["className","columns","columnSpacing","component","container","direction","item","rowSpacing","spacing","wrap","zeroMinWidth"];function ve(e){const r=parseFloat(e);return`${r}${String(e).replace(String(r),"")||"px"}`}function Pa({theme:e,ownerState:r}){let t;return e.breakpoints.keys.reduce((n,o)=>{let s={};if(r[o]&&(t=r[o]),!t)return n;if(t===!0)s={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if(t==="auto")s={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{const i=ur({values:r.columns,breakpoints:e.breakpoints.values}),a=typeof i=="object"?i[o]:i;if(a==null)return n;const u=`${Math.round(t/a*1e8)/1e6}%`;let l={};if(r.container&&r.item&&r.columnSpacing!==0){const f=e.spacing(r.columnSpacing);if(f!=="0px"){const h=`calc(${u} + ${ve(f)})`;l={flexBasis:h,maxWidth:h}}}s=c._extends({flexBasis:u,flexGrow:0,maxWidth:u},l)}return e.breakpoints.values[o]===0?Object.assign(n,s):n[e.breakpoints.up(o)]=s,n},{})}function wa({theme:e,ownerState:r}){const t=ur({values:r.direction,breakpoints:e.breakpoints.values});return X({theme:e},t,n=>{const o={flexDirection:n};return n.indexOf("column")===0&&(o[`& > .${Fe.item}`]={maxWidth:"none"}),o})}function wn({breakpoints:e,values:r}){let t="";Object.keys(r).forEach(o=>{t===""&&r[o]!==0&&(t=o)});const n=Object.keys(e).sort((o,s)=>e[o]-e[s]);return n.slice(0,n.indexOf(t))}function Oa({theme:e,ownerState:r}){const{container:t,rowSpacing:n}=r;let o={};if(t&&n!==0){const s=ur({values:n,breakpoints:e.breakpoints.values});let i;typeof s=="object"&&(i=wn({breakpoints:e.breakpoints.values,values:s})),o=X({theme:e},s,(a,u)=>{var l;const f=e.spacing(a);return f!=="0px"?{marginTop:`-${ve(f)}`,[`& > .${Fe.item}`]:{paddingTop:ve(f)}}:(l=i)!=null&&l.includes(u)?{}:{marginTop:0,[`& > .${Fe.item}`]:{paddingTop:0}}})}return o}function $a({theme:e,ownerState:r}){const{container:t,columnSpacing:n}=r;let o={};if(t&&n!==0){const s=ur({values:n,breakpoints:e.breakpoints.values});let i;typeof s=="object"&&(i=wn({breakpoints:e.breakpoints.values,values:s})),o=X({theme:e},s,(a,u)=>{var l;const f=e.spacing(a);return f!=="0px"?{width:`calc(100% + ${ve(f)})`,marginLeft:`-${ve(f)}`,[`& > .${Fe.item}`]:{paddingLeft:ve(f)}}:(l=i)!=null&&l.includes(u)?{}:{width:"100%",marginLeft:0,[`& > .${Fe.item}`]:{paddingLeft:0}}})}return o}function Ca(e,r,t={}){if(!e||e<=0)return[];if(typeof e=="string"&&!Number.isNaN(Number(e))||typeof e=="number")return[t[`spacing-xs-${String(e)}`]];const n=[];return r.forEach(o=>{const s=e[o];Number(s)>0&&n.push(t[`spacing-${o}-${String(s)}`])}),n}const Na=vr("div",{name:"MuiGrid",slot:"Root",overridesResolver:(e,r)=>{const{ownerState:t}=e,{container:n,direction:o,item:s,spacing:i,wrap:a,zeroMinWidth:u,breakpoints:l}=t;let f=[];n&&(f=Ca(i,l,r));const h=[];return l.forEach(p=>{const b=t[p];b&&h.push(r[`grid-${p}-${String(b)}`])}),[r.root,n&&r.container,s&&r.item,u&&r.zeroMinWidth,...f,o!=="row"&&r[`direction-xs-${String(o)}`],a!=="wrap"&&r[`wrap-xs-${String(a)}`],...h]}})(({ownerState:e})=>c._extends({boxSizing:"border-box"},e.container&&{display:"flex",flexWrap:"wrap",width:"100%"},e.item&&{margin:0},e.zeroMinWidth&&{minWidth:0},e.wrap!=="wrap"&&{flexWrap:e.wrap}),wa,Oa,$a,Pa);function ka(e,r){if(!e||e<=0)return[];if(typeof e=="string"&&!Number.isNaN(Number(e))||typeof e=="number")return[`spacing-xs-${String(e)}`];const t=[];return r.forEach(n=>{const o=e[n];if(Number(o)>0){const s=`spacing-${n}-${String(o)}`;t.push(s)}}),t}const Ra=e=>{const{classes:r,container:t,direction:n,item:o,spacing:s,wrap:i,zeroMinWidth:a,breakpoints:u}=e;let l=[];t&&(l=ka(s,u));const f=[];u.forEach(p=>{const b=e[p];b&&f.push(`grid-${p}-${String(b)}`)});const h={root:["root",t&&"container",o&&"item",a&&"zeroMinWidth",...l,n!=="row"&&`direction-xs-${String(n)}`,i!=="wrap"&&`wrap-xs-${String(i)}`,...f]};return hn(h,xa,r)},Ae=j.forwardRef(function(r,t){const n=_n({props:r,name:"MuiGrid"}),{breakpoints:o}=ca(),s=gi(n),{className:i,columns:a,columnSpacing:u,component:l="div",container:f=!1,direction:h="row",item:p=!1,rowSpacing:b,spacing:g=0,wrap:d="wrap",zeroMinWidth:m=!1}=s,v=c._objectWithoutPropertiesLoose(s,Ta),w=b||g,T=u||g,S=j.useContext(Gt),y=f?a||12:S,C={},P=c._extends({},v);o.keys.forEach(_=>{v[_]!=null&&(C[_]=v[_],delete P[_])});const Z=c._extends({},s,{columns:y,container:f,direction:h,item:p,rowSpacing:w,columnSpacing:T,wrap:d,zeroMinWidth:m,spacing:g},C,{breakpoints:o.keys}),U=Ra(Z);return K.jsx(Gt.Provider,{value:y,children:K.jsx(Na,c._extends({ownerState:Z,className:c.clsx(U.root,i),as:l,ref:t},P))})});process.env.NODE_ENV!=="production"&&(Ae.propTypes={children:c.PropTypes.node,classes:c.PropTypes.object,className:c.PropTypes.string,columns:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.number),c.PropTypes.number,c.PropTypes.object]),columnSpacing:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.oneOfType([c.PropTypes.number,c.PropTypes.string])),c.PropTypes.number,c.PropTypes.object,c.PropTypes.string]),component:c.PropTypes.elementType,container:c.PropTypes.bool,direction:c.PropTypes.oneOfType([c.PropTypes.oneOf(["column-reverse","column","row-reverse","row"]),c.PropTypes.arrayOf(c.PropTypes.oneOf(["column-reverse","column","row-reverse","row"])),c.PropTypes.object]),item:c.PropTypes.bool,lg:c.PropTypes.oneOfType([c.PropTypes.oneOf(["auto"]),c.PropTypes.number,c.PropTypes.bool]),md:c.PropTypes.oneOfType([c.PropTypes.oneOf(["auto"]),c.PropTypes.number,c.PropTypes.bool]),rowSpacing:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.oneOfType([c.PropTypes.number,c.PropTypes.string])),c.PropTypes.number,c.PropTypes.object,c.PropTypes.string]),sm:c.PropTypes.oneOfType([c.PropTypes.oneOf(["auto"]),c.PropTypes.number,c.PropTypes.bool]),spacing:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.oneOfType([c.PropTypes.number,c.PropTypes.string])),c.PropTypes.number,c.PropTypes.object,c.PropTypes.string]),sx:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.oneOfType([c.PropTypes.func,c.PropTypes.object,c.PropTypes.bool])),c.PropTypes.func,c.PropTypes.object]),wrap:c.PropTypes.oneOf(["nowrap","wrap-reverse","wrap"]),xl:c.PropTypes.oneOfType([c.PropTypes.oneOf(["auto"]),c.PropTypes.number,c.PropTypes.bool]),xs:c.PropTypes.oneOfType([c.PropTypes.oneOf(["auto"]),c.PropTypes.number,c.PropTypes.bool]),zeroMinWidth:c.PropTypes.bool});if(process.env.NODE_ENV!=="production"){const e=us("Grid",Ae);Ae["propTypes"]=c._extends({},Ae.propTypes,{direction:e("container"),lg:e("item"),md:e("item"),sm:e("item"),spacing:e("container"),wrap:e("container"),xs:e("item"),zeroMinWidth:e("item")})}const Aa=Ae,Yt=window.location.href,On=le.createContext({}),ja=({children:e,baseUrl:r,userData:t})=>{const n=()=>{window.location.href=`${r}/authentication/login?callbackUrl=${Yt}`},o=()=>{window.location.href=`${r}/authentication/logout?callbackUrl=${Yt}`};return t!=null&&t.isFetching?K.jsx(Aa,{container:!0,justifyContent:"center",alignItems:"center",sx:{minHeight:"100vh"},children:K.jsx(va,{})}):t!=null&&t.isError?(n(),null):K.jsx(On.Provider,{value:{user:t==null?void 0:t.data,login:n,logout:o},children:e})},Ma=()=>{const{login:e,logout:r,user:t}=le.useContext(On);return{login:e,logout:r,user:t}},Kt={TOKEN_MALFORMED:"token_malformed",TOKEN_EXPIRED:"token_expired"},qt=e=>{window.location.href=`${e}/authentication/login?callbackUrl=${window.location.href}`};function Ia({config:e,pushError:r=c.pushError}){const t=Ht.create(e);t.interceptors.request.use(async o=>(o.headers={Accept:"application/json","Content-Type":"application/json"},o),o=>Promise.reject(o)),t.interceptors.response.use(o=>o,async o=>n(o));function n(o){var i,a,u,l,f,h;console.error("Error 🚨:",o);const s=o==null?void 0:o.config;if(((i=o.response)==null?void 0:i.status)===401&&o.response.data.errorMessage===Kt.TOKEN_EXPIRED&&!s._retry&&(s._retry=!0,t.post("/authentication/api/v1/auth/refresh-token").then(()=>t(s)).catch(()=>qt(e.baseURL))),(((a=o.response)==null?void 0:a.status)===401&&((u=o.response)==null?void 0:u.data.errorMessage)!==Kt.TOKEN_EXPIRED||!((l=o.response)!=null&&l.data.errorMessage))&&qt(e.baseURL),o.response.status!==401){const p=((f=o.response)==null?void 0:f.data)&&((h=o.response.data)==null?void 0:h.errorMessage)||"Something went wrong!";return r(p),Promise.reject(o.response.data)}return Promise.reject(o)}return t}const $n=e=>{const[r,t]=le.useState([]);return le.useEffect(()=>{Ht.get(`${e}/user-management/api/v1/users/my-account/permissions`,{withCredentials:!0}).then(n=>t(n.data)).catch(n=>{console.error("Getting user permission error:",n)})},[e]),r},tt=e=>(r,t)=>{const n=$n(e);return t?r.every(o=>n==null?void 0:n.includes(o)):r.some(o=>n==null?void 0:n.includes(o))},Da=({baseUrl:e,accessWith:r,requireAll:t,children:n})=>tt(e)(r,t)?K.jsx(K.Fragment,{children:n}):null,Fa=({accessWith:e,requireAll:r,baseUrl:t,unAuthorizedPath:n,children:o})=>tt(t)(e,r)?K.jsx(K.Fragment,{children:o}):K.jsx(Cn.Navigate,{to:n,replace:!0});exports.AuthProvider=ja;exports.HasPermission=Da;exports.PermissionRoute=Fa;exports.getAxiosInstance=Ia;exports.getUseHasPermission=tt;exports.useAuth=Ma;exports.useGetPermission=$n;
|
|
101
|
+
`),ma)),Tn=j.forwardRef(function(r,t){const n=_n({props:r,name:"MuiCircularProgress"}),{className:o,color:s="primary",disableShrink:i=!1,size:a=40,style:u,thickness:l=3.6,value:f=0,variant:h="indeterminate"}=n,p=c._objectWithoutPropertiesLoose(n,da),b=c._extends({},n,{color:s,disableShrink:i,size:a,thickness:l,value:f,variant:h}),g=ha(b),d={},m={},v={};if(h==="determinate"){const w=2*Math.PI*((ce-l)/2);d.strokeDasharray=w.toFixed(3),v["aria-valuenow"]=Math.round(f),d.strokeDashoffset=`${((100-f)/100*w).toFixed(3)}px`,m.transform="rotate(-90deg)"}return K.jsx(ya,c._extends({className:c.clsx(g.root,o),style:c._extends({width:a,height:a},m,u),ownerState:b,ref:t,role:"progressbar"},v,p,{children:K.jsx(ga,{className:g.svg,ownerState:b,viewBox:`${ce/2} ${ce/2} ${ce} ${ce}`,children:K.jsx(ba,{className:g.circle,style:d,ownerState:b,cx:ce,cy:ce,r:(ce-l)/2,fill:"none",strokeWidth:l})})}))});process.env.NODE_ENV!=="production"&&(Tn.propTypes={classes:c.PropTypes.object,className:c.PropTypes.string,color:c.PropTypes.oneOfType([c.PropTypes.oneOf(["inherit","primary","secondary","error","info","success","warning"]),c.PropTypes.string]),disableShrink:ns(c.PropTypes.bool,e=>e.disableShrink&&e.variant&&e.variant!=="indeterminate"?new Error("MUI: You have provided the `disableShrink` prop with a variant other than `indeterminate`. This will have no effect."):null),size:c.PropTypes.oneOfType([c.PropTypes.number,c.PropTypes.string]),style:c.PropTypes.object,sx:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.oneOfType([c.PropTypes.func,c.PropTypes.object,c.PropTypes.bool])),c.PropTypes.func,c.PropTypes.object]),thickness:c.PropTypes.number,value:c.PropTypes.number,variant:c.PropTypes.oneOf(["determinate","indeterminate"])});const va=Tn,Pn=j.createContext();process.env.NODE_ENV!=="production"&&(Pn.displayName="GridContext");const Gt=Pn;function xa(e){return cr("MuiGrid",e)}const Ea=[0,1,2,3,4,5,6,7,8,9,10],Sa=["column-reverse","column","row-reverse","row"],_a=["nowrap","wrap-reverse","wrap"],ke=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],Fe=yn("MuiGrid",["root","container","item","zeroMinWidth",...Ea.map(e=>`spacing-xs-${e}`),...Sa.map(e=>`direction-xs-${e}`),..._a.map(e=>`wrap-xs-${e}`),...ke.map(e=>`grid-xs-${e}`),...ke.map(e=>`grid-sm-${e}`),...ke.map(e=>`grid-md-${e}`),...ke.map(e=>`grid-lg-${e}`),...ke.map(e=>`grid-xl-${e}`)]),Ta=["className","columns","columnSpacing","component","container","direction","item","rowSpacing","spacing","wrap","zeroMinWidth"];function ve(e){const r=parseFloat(e);return`${r}${String(e).replace(String(r),"")||"px"}`}function Pa({theme:e,ownerState:r}){let t;return e.breakpoints.keys.reduce((n,o)=>{let s={};if(r[o]&&(t=r[o]),!t)return n;if(t===!0)s={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if(t==="auto")s={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{const i=ur({values:r.columns,breakpoints:e.breakpoints.values}),a=typeof i=="object"?i[o]:i;if(a==null)return n;const u=`${Math.round(t/a*1e8)/1e6}%`;let l={};if(r.container&&r.item&&r.columnSpacing!==0){const f=e.spacing(r.columnSpacing);if(f!=="0px"){const h=`calc(${u} + ${ve(f)})`;l={flexBasis:h,maxWidth:h}}}s=c._extends({flexBasis:u,flexGrow:0,maxWidth:u},l)}return e.breakpoints.values[o]===0?Object.assign(n,s):n[e.breakpoints.up(o)]=s,n},{})}function wa({theme:e,ownerState:r}){const t=ur({values:r.direction,breakpoints:e.breakpoints.values});return X({theme:e},t,n=>{const o={flexDirection:n};return n.indexOf("column")===0&&(o[`& > .${Fe.item}`]={maxWidth:"none"}),o})}function wn({breakpoints:e,values:r}){let t="";Object.keys(r).forEach(o=>{t===""&&r[o]!==0&&(t=o)});const n=Object.keys(e).sort((o,s)=>e[o]-e[s]);return n.slice(0,n.indexOf(t))}function Oa({theme:e,ownerState:r}){const{container:t,rowSpacing:n}=r;let o={};if(t&&n!==0){const s=ur({values:n,breakpoints:e.breakpoints.values});let i;typeof s=="object"&&(i=wn({breakpoints:e.breakpoints.values,values:s})),o=X({theme:e},s,(a,u)=>{var l;const f=e.spacing(a);return f!=="0px"?{marginTop:`-${ve(f)}`,[`& > .${Fe.item}`]:{paddingTop:ve(f)}}:(l=i)!=null&&l.includes(u)?{}:{marginTop:0,[`& > .${Fe.item}`]:{paddingTop:0}}})}return o}function $a({theme:e,ownerState:r}){const{container:t,columnSpacing:n}=r;let o={};if(t&&n!==0){const s=ur({values:n,breakpoints:e.breakpoints.values});let i;typeof s=="object"&&(i=wn({breakpoints:e.breakpoints.values,values:s})),o=X({theme:e},s,(a,u)=>{var l;const f=e.spacing(a);return f!=="0px"?{width:`calc(100% + ${ve(f)})`,marginLeft:`-${ve(f)}`,[`& > .${Fe.item}`]:{paddingLeft:ve(f)}}:(l=i)!=null&&l.includes(u)?{}:{width:"100%",marginLeft:0,[`& > .${Fe.item}`]:{paddingLeft:0}}})}return o}function Ca(e,r,t={}){if(!e||e<=0)return[];if(typeof e=="string"&&!Number.isNaN(Number(e))||typeof e=="number")return[t[`spacing-xs-${String(e)}`]];const n=[];return r.forEach(o=>{const s=e[o];Number(s)>0&&n.push(t[`spacing-${o}-${String(s)}`])}),n}const Na=vr("div",{name:"MuiGrid",slot:"Root",overridesResolver:(e,r)=>{const{ownerState:t}=e,{container:n,direction:o,item:s,spacing:i,wrap:a,zeroMinWidth:u,breakpoints:l}=t;let f=[];n&&(f=Ca(i,l,r));const h=[];return l.forEach(p=>{const b=t[p];b&&h.push(r[`grid-${p}-${String(b)}`])}),[r.root,n&&r.container,s&&r.item,u&&r.zeroMinWidth,...f,o!=="row"&&r[`direction-xs-${String(o)}`],a!=="wrap"&&r[`wrap-xs-${String(a)}`],...h]}})(({ownerState:e})=>c._extends({boxSizing:"border-box"},e.container&&{display:"flex",flexWrap:"wrap",width:"100%"},e.item&&{margin:0},e.zeroMinWidth&&{minWidth:0},e.wrap!=="wrap"&&{flexWrap:e.wrap}),wa,Oa,$a,Pa);function ka(e,r){if(!e||e<=0)return[];if(typeof e=="string"&&!Number.isNaN(Number(e))||typeof e=="number")return[`spacing-xs-${String(e)}`];const t=[];return r.forEach(n=>{const o=e[n];if(Number(o)>0){const s=`spacing-${n}-${String(o)}`;t.push(s)}}),t}const Ra=e=>{const{classes:r,container:t,direction:n,item:o,spacing:s,wrap:i,zeroMinWidth:a,breakpoints:u}=e;let l=[];t&&(l=ka(s,u));const f=[];u.forEach(p=>{const b=e[p];b&&f.push(`grid-${p}-${String(b)}`)});const h={root:["root",t&&"container",o&&"item",a&&"zeroMinWidth",...l,n!=="row"&&`direction-xs-${String(n)}`,i!=="wrap"&&`wrap-xs-${String(i)}`,...f]};return hn(h,xa,r)},Ae=j.forwardRef(function(r,t){const n=_n({props:r,name:"MuiGrid"}),{breakpoints:o}=ca(),s=gi(n),{className:i,columns:a,columnSpacing:u,component:l="div",container:f=!1,direction:h="row",item:p=!1,rowSpacing:b,spacing:g=0,wrap:d="wrap",zeroMinWidth:m=!1}=s,v=c._objectWithoutPropertiesLoose(s,Ta),w=b||g,T=u||g,S=j.useContext(Gt),y=f?a||12:S,C={},P=c._extends({},v);o.keys.forEach(_=>{v[_]!=null&&(C[_]=v[_],delete P[_])});const Z=c._extends({},s,{columns:y,container:f,direction:h,item:p,rowSpacing:w,columnSpacing:T,wrap:d,zeroMinWidth:m,spacing:g},C,{breakpoints:o.keys}),U=Ra(Z);return K.jsx(Gt.Provider,{value:y,children:K.jsx(Na,c._extends({ownerState:Z,className:c.clsx(U.root,i),as:l,ref:t},P))})});process.env.NODE_ENV!=="production"&&(Ae.propTypes={children:c.PropTypes.node,classes:c.PropTypes.object,className:c.PropTypes.string,columns:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.number),c.PropTypes.number,c.PropTypes.object]),columnSpacing:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.oneOfType([c.PropTypes.number,c.PropTypes.string])),c.PropTypes.number,c.PropTypes.object,c.PropTypes.string]),component:c.PropTypes.elementType,container:c.PropTypes.bool,direction:c.PropTypes.oneOfType([c.PropTypes.oneOf(["column-reverse","column","row-reverse","row"]),c.PropTypes.arrayOf(c.PropTypes.oneOf(["column-reverse","column","row-reverse","row"])),c.PropTypes.object]),item:c.PropTypes.bool,lg:c.PropTypes.oneOfType([c.PropTypes.oneOf(["auto"]),c.PropTypes.number,c.PropTypes.bool]),md:c.PropTypes.oneOfType([c.PropTypes.oneOf(["auto"]),c.PropTypes.number,c.PropTypes.bool]),rowSpacing:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.oneOfType([c.PropTypes.number,c.PropTypes.string])),c.PropTypes.number,c.PropTypes.object,c.PropTypes.string]),sm:c.PropTypes.oneOfType([c.PropTypes.oneOf(["auto"]),c.PropTypes.number,c.PropTypes.bool]),spacing:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.oneOfType([c.PropTypes.number,c.PropTypes.string])),c.PropTypes.number,c.PropTypes.object,c.PropTypes.string]),sx:c.PropTypes.oneOfType([c.PropTypes.arrayOf(c.PropTypes.oneOfType([c.PropTypes.func,c.PropTypes.object,c.PropTypes.bool])),c.PropTypes.func,c.PropTypes.object]),wrap:c.PropTypes.oneOf(["nowrap","wrap-reverse","wrap"]),xl:c.PropTypes.oneOfType([c.PropTypes.oneOf(["auto"]),c.PropTypes.number,c.PropTypes.bool]),xs:c.PropTypes.oneOfType([c.PropTypes.oneOf(["auto"]),c.PropTypes.number,c.PropTypes.bool]),zeroMinWidth:c.PropTypes.bool});if(process.env.NODE_ENV!=="production"){const e=us("Grid",Ae);Ae["propTypes"]=c._extends({},Ae.propTypes,{direction:e("container"),lg:e("item"),md:e("item"),sm:e("item"),spacing:e("container"),wrap:e("container"),xs:e("item"),zeroMinWidth:e("item")})}const Aa=Ae,Yt=window.location.href,On=le.createContext({}),ja=({children:e,baseUrl:r,userData:t})=>{const n=()=>{window.location.href=`${r}/authentication/login?callbackUrl=${Yt}`},o=()=>{window.location.href=`${r}/authentication/logout?callbackUrl=${Yt}`};return t!=null&&t.isFetching?K.jsx(Aa,{container:!0,justifyContent:"center",alignItems:"center",sx:{minHeight:"100vh"},children:K.jsx(va,{})}):t!=null&&t.isError?(n(),null):K.jsx(On.Provider,{value:{user:t==null?void 0:t.data,login:n,logout:o},children:e})},Ma=()=>{const{login:e,logout:r,user:t}=le.useContext(On);return{login:e,logout:r,user:t}},Kt={TOKEN_MALFORMED:"token_malformed",TOKEN_EXPIRED:"token_expired"},qt=e=>{window.location.href=`${e}/authentication/login?callbackUrl=${window.location.href}`};function Ia({config:e,pushError:r=c.pushError}){const t=Ht.create(e);t.interceptors.request.use(async o=>(o.headers={Accept:"application/json","Content-Type":"application/json"},o),o=>Promise.reject(o)),t.interceptors.response.use(o=>o,async o=>n(o));function n(o){var i,a,u,l,f,h;console.error("Error 🚨:",o);const s=o==null?void 0:o.config;if(((i=o.response)==null?void 0:i.status)===401&&o.response.data.errorMessage===Kt.TOKEN_EXPIRED&&!s._retry&&(s._retry=!0,t.post("/authentication/api/v1/auth/refresh-token").then(()=>t(s)).catch(()=>qt(e.baseURL))),((a=o.response)==null?void 0:a.status)===401&&(((u=o.response)==null?void 0:u.data.errorMessage)!==Kt.TOKEN_EXPIRED||!((l=o.response)!=null&&l.data.errorMessage))&&qt(e.baseURL),o.response.status!==401){const p=((f=o.response)==null?void 0:f.data)&&((h=o.response.data)==null?void 0:h.errorMessage)||"Something went wrong!";return r(p),Promise.reject(o.response.data)}return Promise.reject(o)}return t}const $n=e=>{const[r,t]=le.useState([]);return le.useEffect(()=>{Ht.get(`${e}/user-management/api/v1/users/my-account/permissions`,{withCredentials:!0}).then(n=>t(n.data)).catch(n=>{console.error("Getting user permission error:",n)})},[e]),r},tt=e=>(r,t)=>{const n=$n(e);return t?r.every(o=>n==null?void 0:n.includes(o)):r.some(o=>n==null?void 0:n.includes(o))},Da=({baseUrl:e,accessWith:r,requireAll:t,children:n})=>tt(e)(r,t)?K.jsx(K.Fragment,{children:n}):null,Fa=({accessWith:e,requireAll:r,baseUrl:t,unAuthorizedPath:n,children:o})=>tt(t)(e,r)?K.jsx(K.Fragment,{children:o}):K.jsx(Cn.Navigate,{to:n,replace:!0});exports.AuthProvider=ja;exports.HasPermission=Da;exports.PermissionRoute=Fa;exports.getAxiosInstance=Ia;exports.getUseHasPermission=tt;exports.useAuth=Ma;exports.useGetPermission=$n;
|
package/dist/share/index.js
CHANGED
|
@@ -4349,7 +4349,7 @@ function Xa({
|
|
|
4349
4349
|
var i, a, c, u, l, m;
|
|
4350
4350
|
console.error("Error 🚨:", o);
|
|
4351
4351
|
const s = o == null ? void 0 : o.config;
|
|
4352
|
-
if (((i = o.response) == null ? void 0 : i.status) === 401 && o.response.data.errorMessage === Kt.TOKEN_EXPIRED && !s._retry && (s._retry = !0, t.post("/authentication/api/v1/auth/refresh-token").then(() => t(s)).catch(() => qt(e.baseURL))), ((
|
|
4352
|
+
if (((i = o.response) == null ? void 0 : i.status) === 401 && o.response.data.errorMessage === Kt.TOKEN_EXPIRED && !s._retry && (s._retry = !0, t.post("/authentication/api/v1/auth/refresh-token").then(() => t(s)).catch(() => qt(e.baseURL))), ((a = o.response) == null ? void 0 : a.status) === 401 && (((c = o.response) == null ? void 0 : c.data.errorMessage) !== Kt.TOKEN_EXPIRED || !((u = o.response) != null && u.data.errorMessage)) && qt(e.baseURL), o.response.status !== 401) {
|
|
4353
4353
|
const d = ((l = o.response) == null ? void 0 : l.data) && ((m = o.response.data) == null ? void 0 : m.errorMessage) || "Something went wrong!";
|
|
4354
4354
|
return r(d), Promise.reject(o.response.data);
|
|
4355
4355
|
}
|