@refinedev/core 4.25.1 → 4.26.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # @pankod/refine-core
2
2
 
3
+ ## 4.26.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#4568](https://github.com/refinedev/refine/pull/4568) [`8c2b3be35b0`](https://github.com/refinedev/refine/commit/8c2b3be35b0132fc9a7b79287d281a9f922424d0) Thanks [@salihozdemir](https://github.com/salihozdemir)! - feat: add the `textTransformers` option to `<Refine/>` component
8
+
9
+ The `textTransformers` option in **refine** is used to transform the resource name displayed on the user interface (UI). By default, if you define a resource named `posts`, refine will display it as `Posts`. Similarly, when you delete a record, notification messages will be shown as `Post deleted successfully.`.
10
+
11
+ You have the flexibility to customize these messages by using the `textTransformers` option. For instance, if you wish to disable any transformation, you can set the `textTransformers` option as shown in the example below:
12
+
13
+ ```tsx
14
+ const App: React.FC = () => (
15
+ <Refine
16
+ // ...
17
+ options={{
18
+ textTransformers: {
19
+ humanize: (text) => text,
20
+ plural: (text) => text,
21
+ singular: (text) => text,
22
+ },
23
+ }}
24
+ />
25
+ );
26
+ ```
27
+
28
+ ### Patch Changes
29
+
30
+ - [#4583](https://github.com/refinedev/refine/pull/4583) [`c3c0deed564`](https://github.com/refinedev/refine/commit/c3c0deed564bdbded58c615357a55e666473923a) Thanks [@aliemir](https://github.com/aliemir)! - Added the missing `resource` property in `params` of the `useCan` call, which was leading to missing resource details in the access control checks in the `can` function.
31
+
32
+ The provided `resource` item is sanitized to remove non-serializable properties such as `icon` etc. If you need such items, you should try to access your `resource` item directly from your defitinions.
33
+
34
+ - [#4599](https://github.com/refinedev/refine/pull/4599) [`5bb6f47a4d4`](https://github.com/refinedev/refine/commit/5bb6f47a4d4e29a7de5426879754fcd78e3fa4d5) Thanks [@aliemir](https://github.com/aliemir)! - Update default document title generation to use the fallback title when `i18n`'s `translate` function returns the `key` value.
35
+
3
36
  ## 4.25.1
4
37
 
5
38
  ### Patch Changes
package/dist/esm/index.js CHANGED
@@ -8,7 +8,7 @@ See https://refine.dev/docs/api-reference/core/hooks/useForm/#resource`);let Z=I
8
8
  If you don't use the \`setShowId\` method to set the \`showId\`, you should pass the \`id\` prop to \`useShow\`. Otherwise, \`useShow\` will not be able to infer the \`id\` from the current URL.
9
9
 
10
10
  See https://refine.dev/docs/api-reference/core/hooks/show/useShow/#resource`);let i=Mt({resource:P,id:U??"",queryOptions:{enabled:U!==void 0,...d},successNotification:r,errorNotification:s,meta:h,metaData:h,liveMode:n,onLiveEvent:u,dataProviderName:p}),{elapsedTime:f}=_({isLoading:i.isFetching,interval:l==null?void 0:l.interval,onInterval:l==null?void 0:l.onInterval});return{queryResult:i,showId:U,setShowId:S,overtime:{elapsedTime:f}}};import{useEffect as va,useState as Or}from"react";import{parse as Da}from"papaparse";import La from"lodash-es/chunk";var PT=({resourceName:e,resource:t,mapData:r=l=>l,paparseOptions:s,batchSize:o=Number.MAX_SAFE_INTEGER,onFinish:a,meta:n,metaData:u,onProgress:p,dataProviderName:d}={})=>{let[l,c]=Or(0),[m,P]=Or(0),[x,C]=Or(!1),{resource:v,identifier:g}=k(t??e),U=K(),S=Br(),h=It(),i=U({resource:v,meta:M(n,u)}),f;o===1?f=h:f=S;let R=()=>{P(0),c(0),C(!1)},b=y=>{let D={succeeded:y.filter(L=>L.type==="success"),errored:y.filter(L=>L.type==="error")};a==null||a(D),C(!1)};va(()=>{p==null||p({totalAmount:m,processedAmount:l})},[m,l]);let T=({file:y})=>(R(),new Promise(D=>{C(!0),Da(y,{complete:async({data:L})=>{let A=$t(L,r);if(P(A.length),o===1){let I=A.map(w=>async()=>({response:await h.mutateAsync({resource:g??"",values:w,successNotification:!1,errorNotification:!1,dataProviderName:d,meta:i,metaData:i}),value:w})),E=await Yt(I,({response:w,value:F})=>(c(V=>V+1),{response:[w.data],type:"success",request:[F]}),(w,F)=>({response:[w],type:"error",request:[A[F]]}));D(E)}else{let I=La(A,o),E=I.map(F=>async()=>({response:await S.mutateAsync({resource:g??"",values:F,successNotification:!1,errorNotification:!1,dataProviderName:d,meta:i,metaData:i}),value:F,currentBatchLength:F.length})),w=await Yt(E,({response:F,currentBatchLength:V,value:O})=>(c(G=>G+V),{response:F.data,type:"success",request:O}),(F,V)=>({response:[F],type:"error",request:I[V]}));D(w)}},...s})}).then(D=>(b(D),D)));return{inputProps:{type:"file",accept:".csv",onChange:y=>{y.target.files&&y.target.files.length>0&&T({file:y.target.files[0]})}},mutationResult:f,isLoading:x,handleChange:T}};import{useCallback as es,useState as Ea}from"react";var hT=({defaultVisible:e=!1}={})=>{let[t,r]=Ea(e),s=es(()=>r(!0),[t]),o=es(()=>r(!1),[t]);return{visible:t,show:s,close:o}};import Ua from"react";var At=()=>{let e=z(),{resource:t,resources:r}=k(),s=de();return Ua.useCallback(({resource:a,action:n,meta:u})=>{var m;let p=a||t;if(!p)return;let l=(m=fe(p,r,e==="legacy").find(P=>P.action===n))==null?void 0:m.route;return l?Pe(l,p==null?void 0:p.meta,s,u):void 0},[r,t,s])};var Ma=({resource:e,action:t,meta:r,legacy:s})=>At()({resource:e,action:t,meta:r,legacy:s});import Ia,{useContext as wa}from"react";var ot=()=>{let e=wa(Ke);return e!=null&&e.Link?e.Link:({to:r,...s})=>Ia.createElement("a",{href:r,...s})};import{useContext as Aa}from"react";import ts from"react";var ze={useHistory:()=>!1,useLocation:()=>!1,useParams:()=>({}),Prompt:()=>null,Link:()=>null},Sa=ts.createContext(ze),Ft=Sa,rs=({children:e,useHistory:t,useLocation:r,useParams:s,Prompt:o,Link:a,routes:n})=>ts.createElement(Ft.Provider,{value:{useHistory:t??ze.useHistory,useLocation:r??ze.useLocation,useParams:s??ze.useParams,Prompt:o??ze.Prompt,Link:a??ze.Link,routes:n??ze.routes}},e);var te=()=>{let e=Aa(Ft),{useHistory:t,useLocation:r,useParams:s,Prompt:o,Link:a,routes:n}=e??ze;return{useHistory:t,useLocation:r,useParams:s,Prompt:o,Link:a,routes:n}};import{useQuery as Fa}from"@tanstack/react-query";import{useContext as Qa}from"react";import os from"react";var Xe=os.createContext({options:{buttons:{enableAccessControl:!0,hideIfUnauthorized:!1}}});var ss=({can:e,children:t,options:r})=>os.createElement(Xe.Provider,{value:{can:e,options:r?{...r,buttons:{enableAccessControl:!0,hideIfUnauthorized:!1,...r.buttons}}:{buttons:{enableAccessControl:!0,hideIfUnauthorized:!1}}}},t);var sr=e=>{if(!e)return;let{icon:t,list:r,edit:s,create:o,show:a,clone:n,children:u,meta:p,options:d,...l}=e,{icon:c,...m}=p??{},{icon:P,...x}=d??{};return{...l,...p?{meta:m}:{},...d?{options:x}:{}}};var ns=({action:e,resource:t,params:r,queryOptions:s})=>{let{can:o}=Qa(Xe),{resource:a,...n}=r??{},u=sr(a),p=Fa(["useCan",{action:e,resource:t,params:{...n,resource:u},enabled:s==null?void 0:s.enabled}],()=>(o==null?void 0:o({action:e,resource:t,params:{...n,resource:u}}))??Promise.resolve({can:!0}),{enabled:typeof o<"u",...s,retry:!1});return typeof o>"u"?{data:{can:!0}}:p};import{useContext as ka}from"react";var dR=()=>{let{can:e}=ka(Xe);return{can:e}};import{useCallback as as,useMemo as Va,useState as $r}from"react";import Ba from"lodash/uniqBy";import Na from"lodash/debounce";import nr from"lodash/get";var LR=e=>{let[t,r]=$r([]),[s,o]=$r([]),[a,n]=$r([]),{resource:u,sort:p,sorters:d,filters:l=[],optionLabel:c="title",optionValue:m="id",debounce:P=300,successNotification:x,errorNotification:C,defaultValueQueryOptions:v,queryOptions:g,fetchSize:U,pagination:S,hasPagination:h=!1,liveMode:i,defaultValue:f=[],onLiveEvent:R,onSearch:b,liveParams:T,meta:y,metaData:D,dataProviderName:L,overtimeOptions:A}=e,{resource:I,identifier:E}=k(u),F=K()({resource:I,meta:M(y,D)}),V=Array.isArray(f)?f:[f],O=as(Z=>{n(Z.data.map(ne=>({label:nr(ne,c),value:nr(ne,m)})))},[c,m]),G=v??g,X=Ar({resource:E,ids:V,queryOptions:{...G,enabled:V.length>0&&((G==null?void 0:G.enabled)??!0),onSuccess:Z=>{var ne;O(Z),(ne=G==null?void 0:G.onSuccess)==null||ne.call(G,Z)}},meta:F,metaData:F,liveMode:"off",dataProviderName:L}),j=as(Z=>{o(Z.data.map(ne=>({label:nr(ne,c),value:nr(ne,m)})))},[c,m]),Q=Ut({resource:E,sorters:M(d,p),filters:l.concat(t),pagination:{current:S==null?void 0:S.current,pageSize:(S==null?void 0:S.pageSize)??U,mode:S==null?void 0:S.mode},hasPagination:h,queryOptions:{...g,onSuccess:Z=>{var ne;j(Z),(ne=g==null?void 0:g.onSuccess)==null||ne.call(g,Z)}},successNotification:x,errorNotification:C,meta:F,metaData:F,liveMode:i,liveParams:T,onLiveEvent:R,dataProviderName:L}),$=Z=>{if(b){r(b(Z));return}if(Z)r([{field:c,operator:"contains",value:Z}]);else{r([]);return}},{elapsedTime:H}=_({isLoading:Q.isFetching||X.isFetching,interval:A==null?void 0:A.interval,onInterval:A==null?void 0:A.onInterval});return{queryResult:Q,defaultValueQueryResult:X,options:Va(()=>Ba([...s,...a],"value"),[s,a]),onSearch:Na($,P),overtime:{elapsedTime:H}}};import Ha,{useState as ar,useEffect as is}from"react";import us from"qs";import ir from"lodash/differenceWith";import ur from"lodash/isEqual";import Oa from"warn-once";var cs=[],ps=[];function HR({initialCurrent:e,initialPageSize:t,hasPagination:r=!0,pagination:s,initialSorter:o,permanentSorter:a=ps,defaultSetFilterBehavior:n,initialFilter:u,permanentFilter:p=cs,filters:d,sorters:l,syncWithLocation:c,resource:m,successNotification:P,errorNotification:x,queryOptions:C,liveMode:v,onLiveEvent:g,liveParams:U,meta:S,metaData:h,dataProviderName:i,overtimeOptions:f}={}){var Yr,Jr,Xr,qr,eo;let{syncWithLocation:R}=Sr(),b=c??R,T=jo(v),y=z(),{useLocation:D}=te(),{search:L,pathname:A}=D(),I=K(),E=de(),w=((d==null?void 0:d.mode)||"server")==="server",F=((l==null?void 0:l.mode)||"server")==="server",V=r===!1?"off":"server",O=((s==null?void 0:s.mode)??V)!=="off",G=M(s==null?void 0:s.current,e),X=M(s==null?void 0:s.pageSize,t),j=M(S,h),{parsedCurrent:Q,parsedPageSize:$,parsedSorter:H,parsedFilters:Z}=Gt(L??"?"),ne=M(d==null?void 0:d.initial,u),ge=M(d==null?void 0:d.permanent,p)??cs,qe=M(l==null?void 0:l.initial,o),Oe=M(l==null?void 0:l.permanent,a)??ps,cr=M(d==null?void 0:d.defaultBehavior,n)??"merge",at,et,it,ut;b?(at=((Yr=E==null?void 0:E.params)==null?void 0:Yr.current)||Q||G||1,et=((Jr=E==null?void 0:E.params)==null?void 0:Jr.pageSize)||$||X||10,it=((Xr=E==null?void 0:E.params)==null?void 0:Xr.sorters)||(H.length?H:qe),ut=((qr=E==null?void 0:E.params)==null?void 0:qr.filters)||(Z.length?Z:ne)):(at=G||1,et=X||10,it=qe,ut=ne);let{replace:ct}=ue(),pt=ce(),{resource:jr,identifier:kt}=k(m),pr=I({resource:jr,meta:j});Ha.useEffect(()=>{Oa(typeof kt>"u","useTable: `resource` is not defined.")},[kt]);let[_e,xt]=ar(_t(Oe,it??[])),[tt,Te]=ar(zt(ge,ut??[])),[Ee,Be]=ar(at),[Ue,Me]=ar(et),je=({pagination:{current:me,pageSize:Ie},sorter:Bt,filters:Nt})=>{if(y==="new")return pt({type:"path",options:{keepHash:!0,keepQuery:!0},query:{...O?{current:me,pageSize:Ie}:{},sorters:Bt,filters:Nt,...Ze()}})??"";{let Ct=us.parse(L==null?void 0:L.substring(1)),Qs=Wt({pagination:{pageSize:Ie,current:me},sorters:_e??Bt,filters:Nt,...Ct});return`${A??""}?${Qs??""}`}};is(()=>{L===""&&(Be(at),Me(et),xt(_t(Oe,it??[])),Te(zt(ge,ut??[])))},[L]);let Ze=()=>{if(y==="new"){let{sorters:me,filters:Ie,pageSize:Bt,current:Nt,...Ct}=(E==null?void 0:E.params)??{};return Ct}else{let{sorter:me,filters:Ie,pageSize:Bt,current:Nt,...Ct}=us.parse(L,{ignoreQueryPrefix:!0});return Ct}};is(()=>{if(b){let me=Ze();if(y==="new")pt({type:"replace",options:{keepQuery:!0},query:{...O?{pageSize:Ue,current:Ee}:{},sorters:ir(_e,Oe,ur),filters:ir(tt,ge,ur)}});else{let Ie=Wt({...O?{pagination:{pageSize:Ue,current:Ee}}:{},sorters:ir(_e,Oe,ur),filters:ir(tt,ge,ur),...me});return ct==null?void 0:ct(`${A}?${Ie}`,void 0,{shallow:!0})}}},[b,Ee,Ue,_e,tt]);let $e=Ut({resource:kt,hasPagination:r,pagination:{current:Ee,pageSize:Ue,mode:s==null?void 0:s.mode},filters:w?mt(ge,tt):void 0,sorters:F?Kt(Oe,_e):void 0,queryOptions:C,successNotification:P,errorNotification:x,meta:pr,metaData:pr,liveMode:T,liveParams:U,onLiveEvent:g,dataProviderName:i}),Vt=me=>{Te(Ie=>mt(ge,me,Ie))},ws=me=>{Te(mt(ge,me))},Ss=me=>{Te(Ie=>mt(ge,me(Ie)))},As=(me,Ie=cr)=>{typeof me=="function"?Ss(me):Ie==="replace"?ws(me):Vt(me)},Zr=me=>{xt(()=>Kt(Oe,me))},{elapsedTime:Fs}=_({isLoading:$e.isFetching,interval:f==null?void 0:f.interval,onInterval:f==null?void 0:f.onInterval});return{tableQueryResult:$e,sorters:_e,setSorters:Zr,sorter:_e,setSorter:Zr,filters:tt,setFilters:As,current:Ee,setCurrent:Be,pageSize:Ue,setPageSize:Me,pageCount:Ue?Math.ceil((((eo=$e.data)==null?void 0:eo.total)??0)/Ue):1,createLinkForSyncWithLocation:je,overtime:{elapsedTime:Fs}}}import{useContext as ms}from"react";import{useMutation as fs,useQueryClient as $a}from"@tanstack/react-query";import ds from"react";var st=ds.createContext({}),ls=({create:e,get:t,update:r,children:s})=>ds.createElement(st.Provider,{value:{create:e,get:t,update:r}},s);var Se=({logMutationOptions:e,renameMutationOptions:t}={})=>{let r=$a(),s=ms(st),o=W(),{resources:a}=ms(Je),{data:n,refetch:u,isLoading:p}=dr({v3LegacyAuthProviderCompatible:!!(o!=null&&o.isLegacy),queryOptions:{enabled:!!s}}),d=fs(async c=>{var C,v,g,U,S;let m=pe(c.resource,a),P=M((C=m==null?void 0:m.meta)==null?void 0:C.audit,(v=m==null?void 0:m.options)==null?void 0:v.audit,(U=(g=m==null?void 0:m.options)==null?void 0:g.auditLog)==null?void 0:U.permissions);if(P&&!hr(P,c.action))return;let x;return p&&(x=await u()),await((S=s.create)==null?void 0:S.call(s,{...c,author:n??(x==null?void 0:x.data)}))},e),l=fs(async c=>{var m;return await((m=s.update)==null?void 0:m.call(s,c))},{onSuccess:c=>{if(c!=null&&c.resource){let m=q(c==null?void 0:c.resource);r.invalidateQueries(m.logList())}},...t});return{log:d,rename:l}};import{useContext as Ga}from"react";import{useQuery as Wa}from"@tanstack/react-query";var iP=({resource:e,action:t,meta:r,author:s,metaData:o,queryOptions:a})=>{let{get:n}=Ga(st),u=q(e,void 0,o);return Wa(u.logList(r),()=>(n==null?void 0:n({resource:e,action:t,author:s,meta:r,metaData:o}))??Promise.resolve([]),{enabled:typeof n<"u",...a,retry:!1})};import{useCallback as Ka}from"react";import{useQueryClient as za}from"@tanstack/react-query";var Ae=()=>{let{resources:e}=k(),t=za();return Ka(({resource:s,dataProviderName:o,invalidates:a,id:n})=>{if(a===!1)return;let u=q(s,N(s,o,e));a.forEach(p=>{switch(p){case"all":t.invalidateQueries(u.all);break;case"list":t.invalidateQueries(u.list());break;case"many":t.invalidateQueries(u.many());break;case"resourceAll":t.invalidateQueries(u.resourceAll);break;case"detail":t.invalidateQueries(u.detail(n||""));break;default:break}})},[])};import{useContext as _a}from"react";import ja from"warn-once";var UP=({meta:e={}}={})=>{let t=z(),{i18nProvider:r}=_a(Fe),s=de(),o=B(),{resources:a,resource:n,action:u}=k(),{options:{textTransformers:p}}=ae(),d=[];if(!(n!=null&&n.name))return{breadcrumbs:d};let l=c=>{var P,x,C,v,g,U;let m=typeof c=="string"?pe(c,a,t==="legacy")??{name:c}:c;if(m){let S=M((P=m==null?void 0:m.meta)==null?void 0:P.parent,m==null?void 0:m.parentName);S&&l(S);let h=fe(m,a,t==="legacy").find(R=>R.action==="list"),i=(x=h==null?void 0:h.resource)!=null&&x.list?h==null?void 0:h.route:void 0,f=i?t==="legacy"?i:Pe(i,m==null?void 0:m.meta,s,e):void 0;d.push({label:M((C=m.meta)==null?void 0:C.label,(v=m.options)==null?void 0:v.label)??o(`${m.name}.${m.name}`,p.humanize(m.name)),href:f,icon:M((g=m.meta)==null?void 0:g.icon,(U=m.options)==null?void 0:U.icon,m.icon)})}};if(l(n),u&&u!=="list"){let c=`actions.${u}`,m=o(c);typeof r<"u"&&m===c?(ja(!0,`[useBreadcrumb]: Breadcrumb missing translate key for the "${u}" action. Please add "actions.${u}" key to your translation file.
11
- For more information, see https://refine.dev/docs/api-reference/core/hooks/useBreadcrumb/#i18n-support`),d.push({label:o(`buttons.${u}`,p.humanize(u))})):d.push({label:o(c,p.humanize(u))})}return{breadcrumbs:d}};import Gr from"react";var gt=(e,t,r=!1)=>{let s=[],o=De(e,t);for(;o;)s.push(o),o=De(o,t);return s.reverse(),`/${[...s,e].map(n=>Re((r?n.route:void 0)??n.identifier??n.name)).join("/").replace(/^\//,"")}`};var ys=(e,t=!1)=>{let r={item:{name:"__root__"},children:{}};e.forEach(o=>{let a=[],n=De(o,e);for(;n;)a.push(n),n=De(n,e);a.reverse();let u=r;a.forEach(d=>{let l=(t?d.route:void 0)??d.identifier??d.name;u.children[l]||(u.children[l]={item:d,children:{}}),u=u.children[l]});let p=(t?o.route:void 0)??o.identifier??o.name;u.children[p]||(u.children[p]={item:o,children:{}})});let s=o=>{let a=[];return Object.keys(o.children).forEach(n=>{let u=gt(o.children[n].item,e,t),p={...o.children[n].item,key:u,children:s(o.children[n])};a.push(p)}),a};return s(r)};var gs=e=>e.split("?")[0].split("#")[0].replace(/(.+)(\/$)/,"$1"),Za=({meta:e,hideOnMissingParameter:t}={hideOnMissingParameter:!0})=>{let r=B(),s=At(),o=z(),{resource:a,resources:n}=k(),{pathname:u}=de(),{useLocation:p}=te(),{pathname:d}=p(),l=ft(),m=`/${((o==="legacy"?gs(d):u?gs(u):void 0)??"").replace(/^\//,"")}`,P=a?gt(a,n,o==="legacy"):m??"",x=Gr.useMemo(()=>{if(!a)return[];let g=De(a,n),U=[gt(a,n)];for(;g;)U.push(gt(g,n)),g=De(g,n);return U},[]),C=Gr.useCallback(g=>{var S,h,i,f,R,b;if((((S=g==null?void 0:g.meta)==null?void 0:S.hide)??((h=g==null?void 0:g.options)==null?void 0:h.hide))||!(g!=null&&g.list)&&g.children.length===0)return;let U=g.list?s({resource:g,action:"list",legacy:o==="legacy",meta:e}):void 0;if(!(t&&U&&U.match(/(\/|^):(.+?)(\/|$){1}/)))return{...g,route:U,icon:M((i=g.meta)==null?void 0:i.icon,(f=g.options)==null?void 0:f.icon,g.icon),label:M((R=g==null?void 0:g.meta)==null?void 0:R.label,(b=g==null?void 0:g.options)==null?void 0:b.label)??r(`${g.name}.${g.name}`,l(g.name,"plural"))}},[o,e,r,t]),v=Gr.useMemo(()=>{let g=ys(n,o==="legacy"),U=S=>S.flatMap(h=>{let i=U(h.children),f=C({...h,children:i});return f?[f]:[]});return U(g)},[n,o,C]);return{defaultOpenKeys:x,selectedKey:P,menuItems:v}};var K=()=>{let{params:e}=de();return({resource:r,meta:s}={})=>{let{meta:o}=sr(r)??{meta:{}},{filters:a,sorters:n,current:u,pageSize:p,...d}=e??{};return{...o,...d,...s}}};var Xa=()=>{let[e,t]=Ja(),r=B(),{push:s}=ue(),o=ce(),a=z(),{resource:n,action:u}=k();return Ya(()=>{n&&u&&t(r("pages.error.info",{action:u,resource:n.name},`You may have forgotten to add the "${u}" component to "${n.name}" resource.`))},[n,u]),Qt.createElement(Qt.Fragment,null,Qt.createElement("h1",null,r("pages.error.404",void 0,"Sorry, the page you visited does not exist.")),e&&Qt.createElement("p",null,e),Qt.createElement("button",{onClick:()=>{a==="legacy"?s("/"):o({to:"/"})}},r("pages.error.backHome",void 0,"Back Home")))};import xe,{useState as Ts}from"react";var Ur=()=>{let[e,t]=Ts(""),[r,s]=Ts(""),o=B(),a=W(),{mutate:n}=ht({v3LegacyAuthProviderCompatible:!!(a!=null&&a.isLegacy)});return xe.createElement(xe.Fragment,null,xe.createElement("h1",null,o("pages.login.title","Sign in your account")),xe.createElement("form",{onSubmit:u=>{u.preventDefault(),n({username:e,password:r})}},xe.createElement("table",null,xe.createElement("tbody",null,xe.createElement("tr",null,xe.createElement("td",null,o("pages.login.username",void 0,"username"),":"),xe.createElement("td",null,xe.createElement("input",{type:"text",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",autoFocus:!0,required:!0,value:e,onChange:u=>t(u.target.value)}))),xe.createElement("tr",null,xe.createElement("td",null,o("pages.login.password",void 0,"password"),":"),xe.createElement("td",null,xe.createElement("input",{type:"password",required:!0,size:20,value:r,onChange:u=>s(u.target.value)}))))),xe.createElement("br",null),xe.createElement("input",{type:"submit",value:"login"})))};import Tt from"react";import le,{useState as Wr}from"react";var Rs=({providers:e,registerLink:t,forgotPasswordLink:r,rememberMe:s,contentProps:o,wrapperProps:a,renderContent:n,formProps:u,title:p=void 0})=>{let d=z(),l=ot(),{Link:c}=te(),m=d==="legacy"?c:l,[P,x]=Wr(""),[C,v]=Wr(""),[g,U]=Wr(!1),S=B(),h=W(),{mutate:i}=ht({v3LegacyAuthProviderCompatible:!!(h!=null&&h.isLegacy)}),f=(T,y)=>le.createElement(m,{to:T},y),R=()=>e?e.map(T=>le.createElement("div",{key:T.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},le.createElement("button",{onClick:()=>i({providerName:T.name}),style:{display:"flex",alignItems:"center"}},T==null?void 0:T.icon,T.label??le.createElement("label",null,T.label)))):null,b=le.createElement("div",{...o},le.createElement("h1",{style:{textAlign:"center"}},S("pages.login.title","Sign in to your account")),R(),le.createElement("hr",null),le.createElement("form",{onSubmit:T=>{T.preventDefault(),i({email:P,password:C,remember:g})},...u},le.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},le.createElement("label",{htmlFor:"email-input"},S("pages.login.fields.email","Email")),le.createElement("input",{id:"email-input",name:"email",type:"text",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:P,onChange:T=>x(T.target.value)}),le.createElement("label",{htmlFor:"password-input"},S("pages.login.fields.password","Password")),le.createElement("input",{id:"password-input",type:"password",name:"password",required:!0,size:20,value:C,onChange:T=>v(T.target.value)}),s??le.createElement(le.Fragment,null,le.createElement("label",{htmlFor:"remember-me-input"},S("pages.login.buttons.rememberMe","Remember me"),le.createElement("input",{id:"remember-me-input",name:"remember",type:"checkbox",size:20,checked:g,value:g.toString(),onChange:()=>{U(!g)}}))),le.createElement("br",null),r??f("/forgot-password",S("pages.login.buttons.forgotPassword","Forgot password?")),le.createElement("input",{type:"submit",value:S("pages.login.signin","Sign in")}),t??le.createElement("span",null,S("pages.login.buttons.noAccount","Don\u2019t have an account?")," ",f("/register",S("pages.login.register","Sign up"))))));return le.createElement("div",{...a},n?n(b,p):b)};import ye,{useState as Ps}from"react";var xs=({providers:e,loginLink:t,wrapperProps:r,contentProps:s,renderContent:o,formProps:a,title:n=void 0})=>{let u=z(),p=ot(),{Link:d}=te(),l=u==="legacy"?d:p,[c,m]=Ps(""),[P,x]=Ps(""),C=B(),v=W(),{mutate:g,isLoading:U}=yr({v3LegacyAuthProviderCompatible:!!(v!=null&&v.isLegacy)}),S=(f,R)=>ye.createElement(l,{to:f},R),h=()=>e?e.map(f=>ye.createElement("div",{key:f.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},ye.createElement("button",{onClick:()=>g({providerName:f.name}),style:{display:"flex",alignItems:"center"}},f==null?void 0:f.icon,f.label??ye.createElement("label",null,f.label)))):null,i=ye.createElement("div",{...s},ye.createElement("h1",{style:{textAlign:"center"}},C("pages.register.title","Sign up for your account")),h(),ye.createElement("hr",null),ye.createElement("form",{onSubmit:f=>{f.preventDefault(),g({email:c,password:P})},...a},ye.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},ye.createElement("label",{htmlFor:"email-input"},C("pages.register.fields.email","Email")),ye.createElement("input",{id:"email-input",name:"email",type:"email",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:c,onChange:f=>m(f.target.value)}),ye.createElement("label",{htmlFor:"password-input"},C("pages.register.fields.password","Password")),ye.createElement("input",{id:"password-input",name:"password",type:"password",required:!0,size:20,value:P,onChange:f=>x(f.target.value)}),ye.createElement("input",{type:"submit",value:C("pages.register.buttons.submit","Sign up"),disabled:U}),t??ye.createElement(ye.Fragment,null,ye.createElement("span",null,C("pages.login.buttons.haveAccount","Have an account?")," ",S("/login",C("pages.login.signin","Sign in")))))));return ye.createElement("div",{...r},o?o(i,n):i)};import Qe,{useState as qa}from"react";var Cs=({loginLink:e,wrapperProps:t,contentProps:r,renderContent:s,formProps:o,title:a=void 0})=>{let n=B(),u=z(),p=ot(),{Link:d}=te(),l=u==="legacy"?d:p,[c,m]=qa(""),{mutate:P,isLoading:x}=Tr(),C=(g,U)=>Qe.createElement(l,{to:g},U),v=Qe.createElement("div",{...r},Qe.createElement("h1",{style:{textAlign:"center"}},n("pages.forgotPassword.title","Forgot your password?")),Qe.createElement("hr",null),Qe.createElement("form",{onSubmit:g=>{g.preventDefault(),P({email:c})},...o},Qe.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},Qe.createElement("label",{htmlFor:"email-input"},n("pages.forgotPassword.fields.email","Email")),Qe.createElement("input",{id:"email-input",name:"email",type:"mail",autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:c,onChange:g=>m(g.target.value)}),Qe.createElement("input",{type:"submit",disabled:x,value:n("pages.forgotPassword.buttons.submit","Send reset instructions")}),Qe.createElement("br",null),e??Qe.createElement("span",null,n("pages.register.buttons.haveAccount","Have an account? ")," ",C("/login",n("pages.login.signin","Sign in"))))));return Qe.createElement("div",{...t},s?s(v,a):v)};import Ve,{useState as hs}from"react";var bs=({wrapperProps:e,contentProps:t,renderContent:r,formProps:s,title:o=void 0})=>{let a=B(),n=W(),{mutate:u,isLoading:p}=Pr({v3LegacyAuthProviderCompatible:!!(n!=null&&n.isLegacy)}),[d,l]=hs(""),[c,m]=hs(""),P=Ve.createElement("div",{...t},Ve.createElement("h1",{style:{textAlign:"center"}},a("pages.updatePassword.title","Update Password")),Ve.createElement("hr",null),Ve.createElement("form",{onSubmit:x=>{x.preventDefault(),u({password:d,confirmPassword:c})},...s},Ve.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},Ve.createElement("label",{htmlFor:"password-input"},a("pages.updatePassword.fields.password","New Password")),Ve.createElement("input",{id:"password-input",name:"password",type:"password",required:!0,size:20,value:d,onChange:x=>l(x.target.value)}),Ve.createElement("label",{htmlFor:"confirm-password-input"},a("pages.updatePassword.fields.confirmPassword","Confirm New Password")),Ve.createElement("input",{id:"confirm-password-input",name:"confirmPassword",type:"password",required:!0,size:20,value:c,onChange:x=>m(x.target.value)}),Ve.createElement("input",{type:"submit",disabled:p,value:a("pages.updatePassword.buttons.submit","Update")}))));return Ve.createElement("div",{...e},r?r(P,o):P)};var ei=e=>{let{type:t}=e;return Tt.createElement(Tt.Fragment,null,(()=>{switch(t){case"register":return Tt.createElement(xs,{...e});case"forgotPassword":return Tt.createElement(Cs,{...e});case"updatePassword":return Tt.createElement(bs,{...e});default:return Tt.createElement(Rs,{...e})}})())};import ve from"react";var Kr=()=>ve.createElement(ve.Fragment,null,ve.createElement("h1",null,"Welcome on board"),ve.createElement("p",null,"Your configuration is completed."),ve.createElement("p",null,"Now you can get started by adding your resources to the"," ",ve.createElement("code",null,"`resources`")," property of ",ve.createElement("code",null,"`<Refine>`")),ve.createElement("div",{style:{display:"flex",gap:8}},ve.createElement("a",{href:"https://refine.dev",target:"_blank",rel:"noreferrer"},ve.createElement("button",null,"Documentation")),ve.createElement("a",{href:"https://refine.dev/examples",target:"_blank",rel:"noreferrer"},ve.createElement("button",null,"Examples")),ve.createElement("a",{href:"https://discord.gg/refine",target:"_blank",rel:"noreferrer"},ve.createElement("button",null,"Community"))));import J,{useState as ti}from"react";var ri=[{title:"Documentation",description:"Learn about the technical details of using refine in your projects.",link:"https://refine.dev/",icon:J.createElement("svg",{width:"14",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},J.createElement("path",{d:"M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V5a1 1 0 0 0-1-1H3a1 1 0 0 1 0-2h10a1 1 0 1 0 0-2H2Z",fill:"#fff"}))},{title:"Tutorial",description:"Learn how to use refine by building a fully-functioning CRUD app, from scratch to full launch.",link:"https://refine.dev/docs/tutorial/introduction/index/",icon:J.createElement("svg",{width:"16",height:"14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},J.createElement("path",{d:"M0 4.573c0-.475.163-.948.53-1.25a4.57 4.57 0 0 1 .854-.553L5.956.485a4.571 4.571 0 0 1 4.088 0l4.572 2.285c.308.154.594.34.853.553.306.251.47.62.517 1.01.01.055.014.112.014.169v6.5a1 1 0 0 1-2 0V6.684l-3.956 1.978a4.571 4.571 0 0 1-4.088 0L1.384 6.376a4.57 4.57 0 0 1-.853-.553C.163 5.522 0 5.05 0 4.573Z",fill:"#fff"}),J.createElement("path",{d:"M5.061 13.305 3 12.274V9.42l2.061 1.031a6.571 6.571 0 0 0 5.878 0L13 9.421v2.853l-2.061 1.03a6.571 6.571 0 0 1-5.878 0Z",fill:"#fff"}))},{title:"Examples",description:"A collection of reference applications you can use as a starting point.",link:"https://refine.dev/examples",icon:J.createElement("svg",{width:"16",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},J.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4H0V2Zm3 2a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm4-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm2 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z",fill:"#fff"}),J.createElement("path",{d:"M0 14V8h16v6a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2Z",fill:"#fff"}))},{title:"Community",description:"Join our Discord community and keep up with the latest news.",link:"https://discord.gg/refine",icon:J.createElement("svg",{width:"16",height:"12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},J.createElement("path",{d:"M13.553 1.005A13.334 13.334 0 0 0 10.253 0c-.156.276-.298.56-.423.85a12.42 12.42 0 0 0-3.664 0A8.975 8.975 0 0 0 5.744 0 13.43 13.43 0 0 0 2.44 1.007C.351 4.066-.215 7.05.068 9.99A13.36 13.36 0 0 0 4.116 12c.328-.436.618-.9.867-1.384a8.647 8.647 0 0 1-1.365-.645c.115-.082.227-.167.335-.249a9.594 9.594 0 0 0 8.094 0c.11.089.222.173.335.25-.436.254-.894.47-1.368.646.249.484.539.946.867 1.382a13.3 13.3 0 0 0 4.051-2.01c.332-3.41-.568-6.365-2.379-8.985Zm-8.21 7.176c-.79 0-1.442-.709-1.442-1.58 0-.872.63-1.587 1.439-1.587s1.456.715 1.442 1.586c-.014.872-.636 1.58-1.44 1.58Zm5.315 0c-.79 0-1.44-.709-1.44-1.58 0-.872.63-1.587 1.44-1.587.81 0 1.452.715 1.438 1.586-.014.872-.634 1.58-1.438 1.58Z",fill:"#fff"}))}],oi=()=>{let e=er("(max-width: 1010px)"),t=er("(max-width: 650px)"),r=()=>t?"1, 280px":e?"2, 280px":"4, 208px",s=()=>t?"32px":e?"40px":"48px",o=()=>t?"16px":e?"20px":"24px";return J.createElement("div",{style:{backgroundImage:"url(https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/welcome-page.webp)",backgroundPosition:"center top",backgroundSize:"cover",backgroundRepeat:"no-repeat",minHeight:"100vh",backgroundColor:"#0D0D12",fontFamily:"Arial",color:"#FFFFFF"}},J.createElement("div",{style:{height:"89px"}}),J.createElement("div",{style:{display:"flex",justifyContent:"center"}},J.createElement("img",{src:"https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/welcome-logo.webp",width:"198",height:"54"})),J.createElement("div",{style:{height:e?"270px":"22vw",minHeight:e?"270px":"313px"}}),J.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px",textAlign:"center"}},J.createElement("h1",{style:{fontSize:s(),fontWeight:700,margin:"0px"}},"Welcome Aboard!"),J.createElement("h4",{style:{fontSize:o(),fontWeight:400,margin:"0px"}},"Your configuration is completed.")),J.createElement("div",{style:{height:"64px"}}),J.createElement("div",{style:{display:"grid",gridTemplateColumns:`repeat(${r()})`,justifyContent:"center",gap:"48px",paddingRight:"16px",paddingLeft:"16px",maxWidth:"976px",margin:"auto"}},ri.map(a=>J.createElement(si,{key:`welcome-page-${a.title}`,card:a}))),J.createElement("div",{style:{height:"64px"}}))},si=({card:e})=>{let{title:t,description:r,icon:s,link:o}=e,[a,n]=ti(!1);return J.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},J.createElement("div",{style:{display:"flex",alignItems:"center"}},J.createElement("a",{onPointerEnter:()=>n(!0),onPointerLeave:()=>n(!1),style:{display:"flex",alignItems:"center",color:"#fff",textDecoration:"none"},href:o},s,J.createElement("span",{style:{fontSize:"16px",fontWeight:700,marginLeft:"13px",marginRight:"14px"}},t),J.createElement("svg",{style:{transition:"transform 0.5s ease-in-out, opacity 0.2s ease-in-out",...a&&{transform:"translateX(4px)",opacity:1}},width:"12",height:"8",fill:"none",opacity:"0.5",xmlns:"http://www.w3.org/2000/svg"},J.createElement("path",{d:"M7.293.293a1 1 0 0 1 1.414 0l3 3a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414-1.414L8.586 5H1a1 1 0 0 1 0-2h7.586L7.293 1.707a1 1 0 0 1 0-1.414Z",fill:"#fff"})))),J.createElement("span",{style:{fontSize:"12px",opacity:.5,lineHeight:"16px"}},r))};import se from"react";import{QueryClientProvider as ui,QueryClient as Ms}from"@tanstack/react-query";import{ReactQueryDevtools as ci}from"@tanstack/react-query-devtools";import{useEffect as ai}from"react";import{useContext as nt}from"react";var ni="4.25.1",vs=()=>{let e=xr(),t=nt(st),r=nt(We),s=nt(Ft),o=nt(wt),{i18nProvider:a}=nt(Fe),n=nt(St),u=nt(Xe),{resources:p}=k(),d=!!t.create||!!t.get||!!t.update,l=!!(r!=null&&r.publish)||!!(r!=null&&r.subscribe)||!!(r!=null&&r.unsubscribe),c=!!s.useHistory||!!s.Link||!!s.Prompt||!!s.useLocation||!!s.useParams,m=!!o,P=!!(a!=null&&a.changeLocale)||!!(a!=null&&a.getLocale)||!!(a!=null&&a.translate),x=!!n.close||!!n.open,C=!!u.can;return{providers:{auth:e,auditLog:d,live:l,router:c,data:m,i18n:P,notification:x,accessControl:C},version:ni,resourceCount:p.length}};var ii=e=>{let t=JSON.stringify(e||{});return typeof btoa<"u"?btoa(t):Buffer.from(t).toString("base64")},Ds=()=>{let e=vs();return ai(()=>{if(typeof window>"u"&&!Image)return;let t=new Image;t.src=`https://telemetry.refine.dev/telemetry?payload=${ii(e)}`},[]),null};var Ls=e=>{let t=["go","parse","back","Link"],r=Object.keys(e).filter(o=>!t.includes(o));return r.length>0?(console.warn(`Unsupported properties are found in \`routerProvider\` prop. You provided \`${r.join(", ")}\`. Supported properties are \`${t.join(", ")}\`. You may wanted to use \`legacyRouterProvider\` prop instead.`),!0):!1};import Es from"react";var Us=e=>{let t=Es.useRef(!1);Es.useEffect(()=>{t.current===!1&&e&&Ls(e)&&(t.current=!0)},[e])};var pi=({legacyAuthProvider:e,authProvider:t,dataProvider:r,legacyRouterProvider:s,routerProvider:o,notificationProvider:a,accessControlProvider:n,auditLogProvider:u,resources:p,DashboardPage:d,ReadyPage:l,LoginPage:c,catchAll:m,children:P,liveProvider:x,i18nProvider:C,Title:v,Layout:g,Sider:U,Header:S,Footer:h,OffLayoutArea:i,onLiveEvent:f,options:R})=>{let{optionsWithDefaults:b,disableTelemetryWithDefault:T,reactQueryWithDefaults:y}=Mr({options:R}),D=or(()=>{var E;return y.clientConfig instanceof Ms?y.clientConfig:new Ms({...y.clientConfig,defaultOptions:{...y.clientConfig.defaultOptions,queries:{refetchOnWindowFocus:!1,keepPreviousData:!0,...(E=y.clientConfig.defaultOptions)==null?void 0:E.queries}}})},[y.clientConfig]),A=se.useMemo(()=>typeof a=="function"?a:()=>a??{},[a])();if(Us(o),s&&!o&&(p??[]).length===0)return l?se.createElement(l,null):se.createElement(Kr,null);let{RouterComponent:I=se.Fragment}=o?{}:s??{};return se.createElement(ui,{client:D},se.createElement(Zo,{...A},se.createElement(ro,{...e??{},isProvided:!!e},se.createElement(so,{...t??{},isProvided:!!t},se.createElement(Qo,{...r},se.createElement(Vo,{liveProvider:x},se.createElement(Go,{value:s&&!o?"legacy":"new"},se.createElement(Ko,{router:o},se.createElement(rs,{...s},se.createElement(Ho,{resources:p??[]},se.createElement(Jo,{i18nProvider:C},se.createElement(ss,{...n??{}},se.createElement(ls,{...u??{}},se.createElement(kr,null,se.createElement(Do,{mutationMode:b.mutationMode,warnWhenUnsavedChanges:b.warnWhenUnsavedChanges,syncWithLocation:b.syncWithLocation,Title:v,undoableTimeout:b.undoableTimeout,catchAll:m,DashboardPage:d,LoginPage:c,Layout:g,Sider:U,Footer:h,Header:S,OffLayoutArea:i,hasDashboard:!!d,liveMode:b.liveMode,onLiveEvent:f,options:b},se.createElement(Io,null,se.createElement(I,null,P,!T&&se.createElement(Ds,null),se.createElement(zr,null))))))))))))))))),y.devtoolConfig===!1?null:se.createElement(ci,{initialIsOpen:!1,position:"bottom-right",...y.devtoolConfig}))};import{useEffect as di,useState as li}from"react";var Ao=({notification:e})=>{let t=B(),{notificationDispatch:r}=He(),{open:s}=he(),[o,a]=li(),n=()=>{if(e.isRunning===!0&&(e.seconds===0&&e.doMutation(),e.isSilent||s==null||s({key:`${e.id}-${e.resource}-notification`,type:"progress",message:t("notifications.undoable",{seconds:bt(e.seconds)},`You have ${bt(e.seconds)} seconds to undo`),cancelMutation:e.cancelMutation,undoableTimeout:bt(e.seconds)}),e.seconds>0)){o&&clearTimeout(o);let u=setTimeout(()=>{r({type:"DECREASE_NOTIFICATION_SECOND",payload:{id:e.id,seconds:e.seconds,resource:e.resource}})},1e3);a(u)}};return di(()=>{n()},[e]),null};import _r,{useEffect as mi}from"react";var fi=({children:e,Layout:t,Sider:r,Header:s,Title:o,Footer:a,OffLayoutArea:n})=>{let{Layout:u,Footer:p,Header:d,Sider:l,Title:c,OffLayoutArea:m}=ae();return _r.createElement(t??u,{Sider:r??l,Header:s??d,Footer:a??p,Title:o??c,OffLayoutArea:n??m},e,_r.createElement(yi,null))},yi=()=>{let{Prompt:e}=te(),t=B(),{warnWhen:r,setWarnWhen:s}=Et(),o=a=>(a.preventDefault(),a.returnValue=t("warnWhenUnsavedChanges","Are you sure you want to leave? You have unsaved changes."),a.returnValue);return mi(()=>(r&&window.addEventListener("beforeunload",o),window.removeEventListener("beforeunload",o)),[r]),_r.createElement(e,{when:r,message:t("warnWhenUnsavedChanges","Are you sure you want to leave? You have unsaved changes."),setWarnWhen:s})};import Le from"react";var gi=()=>{let e=ce(),[t,r]=Le.useState(void 0);return Le.useEffect(()=>{t&&e(t)},[t]),Le.useCallback(o=>{t||r(o)},[t])};function Ti({redirectOnFail:e=!0,appendCurrentPathToQuery:t=!0,children:r,fallback:s,loading:o}){var b;let a=W(),n=z(),u=!!(a!=null&&a.isProvided),p=!!(a!=null&&a.isLegacy),d=n==="legacy",l=de(),c=ce(),m=gi(),{replace:P}=ue(),{useLocation:x}=te(),C=x(),{isLoading:v,isFetching:g,isSuccess:U,data:{authenticated:S,redirectTo:h}={},refetch:i}=Ot({v3LegacyAuthProviderCompatible:p});Le.useEffect(()=>{i()},[r,s]);let f=Le.useRef({status:v?"initial":"pending",content:o??null});g?f.current.status="pending":g||(f.current.status="settled");let R=u?p?U:S:!0;if(f.current.status==="settled")if(R)f.current.content=Le.createElement(Le.Fragment,null,r??null);else if(typeof s<"u")f.current.content=Le.createElement(Le.Fragment,null,s);else{let T=`${d?C==null?void 0:C.pathname:l.pathname}`.replace(/(\?.*|#.*)$/,""),y=p?typeof e=="string"?e:"/login":typeof e=="string"?e:h;if(y)if(d){let D=t?`?to=${encodeURIComponent(T)}`:"";P(`${y}${D}`)}else m({to:y,query:t?{to:(b=l.params)!=null&&b.to?l.params.to:c({to:T,options:{keepQuery:!0},type:"path"})}:void 0,type:"replace"})}return u?Le.createElement(Le.Fragment,null,f.current.content):Le.createElement(Le.Fragment,null,r??null)}import{useEffect as Ri}from"react";var zr=()=>{let{useLocation:e}=te(),{checkAuth:t}=ee(),r=e();return Ri(()=>{t==null||t().catch(()=>!1)},[r==null?void 0:r.pathname]),null};import Rt from"react";var Pi=({resource:e,action:t,params:r,fallback:s,children:o,...a})=>{let{resource:n,id:u,action:p}=k(e),{identifier:d}=k(),c=(()=>{let P=(r==null?void 0:r.id)??u;return e&&e!==d?r==null?void 0:r.id:P})(),{data:m}=ns({resource:e??(n==null?void 0:n.name),action:t??p??"",params:r??{id:c,resource:n}});return m!=null&&m.can?Rt.isValidElement(o)?Rt.cloneElement(o,a):Rt.createElement(Rt.Fragment,null,o):(m==null?void 0:m.can)===!1?Rt.createElement(Rt.Fragment,null,s??null):null};import Pt,{useEffect as xi}from"react";var Is=[`
11
+ For more information, see https://refine.dev/docs/api-reference/core/hooks/useBreadcrumb/#i18n-support`),d.push({label:o(`buttons.${u}`,p.humanize(u))})):d.push({label:o(c,p.humanize(u))})}return{breadcrumbs:d}};import Gr from"react";var gt=(e,t,r=!1)=>{let s=[],o=De(e,t);for(;o;)s.push(o),o=De(o,t);return s.reverse(),`/${[...s,e].map(n=>Re((r?n.route:void 0)??n.identifier??n.name)).join("/").replace(/^\//,"")}`};var ys=(e,t=!1)=>{let r={item:{name:"__root__"},children:{}};e.forEach(o=>{let a=[],n=De(o,e);for(;n;)a.push(n),n=De(n,e);a.reverse();let u=r;a.forEach(d=>{let l=(t?d.route:void 0)??d.identifier??d.name;u.children[l]||(u.children[l]={item:d,children:{}}),u=u.children[l]});let p=(t?o.route:void 0)??o.identifier??o.name;u.children[p]||(u.children[p]={item:o,children:{}})});let s=o=>{let a=[];return Object.keys(o.children).forEach(n=>{let u=gt(o.children[n].item,e,t),p={...o.children[n].item,key:u,children:s(o.children[n])};a.push(p)}),a};return s(r)};var gs=e=>e.split("?")[0].split("#")[0].replace(/(.+)(\/$)/,"$1"),Za=({meta:e,hideOnMissingParameter:t}={hideOnMissingParameter:!0})=>{let r=B(),s=At(),o=z(),{resource:a,resources:n}=k(),{pathname:u}=de(),{useLocation:p}=te(),{pathname:d}=p(),l=ft(),m=`/${((o==="legacy"?gs(d):u?gs(u):void 0)??"").replace(/^\//,"")}`,P=a?gt(a,n,o==="legacy"):m??"",x=Gr.useMemo(()=>{if(!a)return[];let g=De(a,n),U=[gt(a,n)];for(;g;)U.push(gt(g,n)),g=De(g,n);return U},[]),C=Gr.useCallback(g=>{var S,h,i,f,R,b;if((((S=g==null?void 0:g.meta)==null?void 0:S.hide)??((h=g==null?void 0:g.options)==null?void 0:h.hide))||!(g!=null&&g.list)&&g.children.length===0)return;let U=g.list?s({resource:g,action:"list",legacy:o==="legacy",meta:e}):void 0;if(!(t&&U&&U.match(/(\/|^):(.+?)(\/|$){1}/)))return{...g,route:U,icon:M((i=g.meta)==null?void 0:i.icon,(f=g.options)==null?void 0:f.icon,g.icon),label:M((R=g==null?void 0:g.meta)==null?void 0:R.label,(b=g==null?void 0:g.options)==null?void 0:b.label)??r(`${g.name}.${g.name}`,l(g.name,"plural"))}},[o,e,r,t]),v=Gr.useMemo(()=>{let g=ys(n,o==="legacy"),U=S=>S.flatMap(h=>{let i=U(h.children),f=C({...h,children:i});return f?[f]:[]});return U(g)},[n,o,C]);return{defaultOpenKeys:x,selectedKey:P,menuItems:v}};var K=()=>{let{params:e}=de();return({resource:r,meta:s}={})=>{let{meta:o}=sr(r)??{meta:{}},{filters:a,sorters:n,current:u,pageSize:p,...d}=e??{};return{...o,...d,...s}}};var Xa=()=>{let[e,t]=Ja(),r=B(),{push:s}=ue(),o=ce(),a=z(),{resource:n,action:u}=k();return Ya(()=>{n&&u&&t(r("pages.error.info",{action:u,resource:n.name},`You may have forgotten to add the "${u}" component to "${n.name}" resource.`))},[n,u]),Qt.createElement(Qt.Fragment,null,Qt.createElement("h1",null,r("pages.error.404",void 0,"Sorry, the page you visited does not exist.")),e&&Qt.createElement("p",null,e),Qt.createElement("button",{onClick:()=>{a==="legacy"?s("/"):o({to:"/"})}},r("pages.error.backHome",void 0,"Back Home")))};import xe,{useState as Ts}from"react";var Ur=()=>{let[e,t]=Ts(""),[r,s]=Ts(""),o=B(),a=W(),{mutate:n}=ht({v3LegacyAuthProviderCompatible:!!(a!=null&&a.isLegacy)});return xe.createElement(xe.Fragment,null,xe.createElement("h1",null,o("pages.login.title","Sign in your account")),xe.createElement("form",{onSubmit:u=>{u.preventDefault(),n({username:e,password:r})}},xe.createElement("table",null,xe.createElement("tbody",null,xe.createElement("tr",null,xe.createElement("td",null,o("pages.login.username",void 0,"username"),":"),xe.createElement("td",null,xe.createElement("input",{type:"text",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",autoFocus:!0,required:!0,value:e,onChange:u=>t(u.target.value)}))),xe.createElement("tr",null,xe.createElement("td",null,o("pages.login.password",void 0,"password"),":"),xe.createElement("td",null,xe.createElement("input",{type:"password",required:!0,size:20,value:r,onChange:u=>s(u.target.value)}))))),xe.createElement("br",null),xe.createElement("input",{type:"submit",value:"login"})))};import Tt from"react";import le,{useState as Wr}from"react";var Rs=({providers:e,registerLink:t,forgotPasswordLink:r,rememberMe:s,contentProps:o,wrapperProps:a,renderContent:n,formProps:u,title:p=void 0})=>{let d=z(),l=ot(),{Link:c}=te(),m=d==="legacy"?c:l,[P,x]=Wr(""),[C,v]=Wr(""),[g,U]=Wr(!1),S=B(),h=W(),{mutate:i}=ht({v3LegacyAuthProviderCompatible:!!(h!=null&&h.isLegacy)}),f=(T,y)=>le.createElement(m,{to:T},y),R=()=>e?e.map(T=>le.createElement("div",{key:T.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},le.createElement("button",{onClick:()=>i({providerName:T.name}),style:{display:"flex",alignItems:"center"}},T==null?void 0:T.icon,T.label??le.createElement("label",null,T.label)))):null,b=le.createElement("div",{...o},le.createElement("h1",{style:{textAlign:"center"}},S("pages.login.title","Sign in to your account")),R(),le.createElement("hr",null),le.createElement("form",{onSubmit:T=>{T.preventDefault(),i({email:P,password:C,remember:g})},...u},le.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},le.createElement("label",{htmlFor:"email-input"},S("pages.login.fields.email","Email")),le.createElement("input",{id:"email-input",name:"email",type:"text",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:P,onChange:T=>x(T.target.value)}),le.createElement("label",{htmlFor:"password-input"},S("pages.login.fields.password","Password")),le.createElement("input",{id:"password-input",type:"password",name:"password",required:!0,size:20,value:C,onChange:T=>v(T.target.value)}),s??le.createElement(le.Fragment,null,le.createElement("label",{htmlFor:"remember-me-input"},S("pages.login.buttons.rememberMe","Remember me"),le.createElement("input",{id:"remember-me-input",name:"remember",type:"checkbox",size:20,checked:g,value:g.toString(),onChange:()=>{U(!g)}}))),le.createElement("br",null),r??f("/forgot-password",S("pages.login.buttons.forgotPassword","Forgot password?")),le.createElement("input",{type:"submit",value:S("pages.login.signin","Sign in")}),t??le.createElement("span",null,S("pages.login.buttons.noAccount","Don\u2019t have an account?")," ",f("/register",S("pages.login.register","Sign up"))))));return le.createElement("div",{...a},n?n(b,p):b)};import ye,{useState as Ps}from"react";var xs=({providers:e,loginLink:t,wrapperProps:r,contentProps:s,renderContent:o,formProps:a,title:n=void 0})=>{let u=z(),p=ot(),{Link:d}=te(),l=u==="legacy"?d:p,[c,m]=Ps(""),[P,x]=Ps(""),C=B(),v=W(),{mutate:g,isLoading:U}=yr({v3LegacyAuthProviderCompatible:!!(v!=null&&v.isLegacy)}),S=(f,R)=>ye.createElement(l,{to:f},R),h=()=>e?e.map(f=>ye.createElement("div",{key:f.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},ye.createElement("button",{onClick:()=>g({providerName:f.name}),style:{display:"flex",alignItems:"center"}},f==null?void 0:f.icon,f.label??ye.createElement("label",null,f.label)))):null,i=ye.createElement("div",{...s},ye.createElement("h1",{style:{textAlign:"center"}},C("pages.register.title","Sign up for your account")),h(),ye.createElement("hr",null),ye.createElement("form",{onSubmit:f=>{f.preventDefault(),g({email:c,password:P})},...a},ye.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},ye.createElement("label",{htmlFor:"email-input"},C("pages.register.fields.email","Email")),ye.createElement("input",{id:"email-input",name:"email",type:"email",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:c,onChange:f=>m(f.target.value)}),ye.createElement("label",{htmlFor:"password-input"},C("pages.register.fields.password","Password")),ye.createElement("input",{id:"password-input",name:"password",type:"password",required:!0,size:20,value:P,onChange:f=>x(f.target.value)}),ye.createElement("input",{type:"submit",value:C("pages.register.buttons.submit","Sign up"),disabled:U}),t??ye.createElement(ye.Fragment,null,ye.createElement("span",null,C("pages.login.buttons.haveAccount","Have an account?")," ",S("/login",C("pages.login.signin","Sign in")))))));return ye.createElement("div",{...r},o?o(i,n):i)};import Qe,{useState as qa}from"react";var Cs=({loginLink:e,wrapperProps:t,contentProps:r,renderContent:s,formProps:o,title:a=void 0})=>{let n=B(),u=z(),p=ot(),{Link:d}=te(),l=u==="legacy"?d:p,[c,m]=qa(""),{mutate:P,isLoading:x}=Tr(),C=(g,U)=>Qe.createElement(l,{to:g},U),v=Qe.createElement("div",{...r},Qe.createElement("h1",{style:{textAlign:"center"}},n("pages.forgotPassword.title","Forgot your password?")),Qe.createElement("hr",null),Qe.createElement("form",{onSubmit:g=>{g.preventDefault(),P({email:c})},...o},Qe.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},Qe.createElement("label",{htmlFor:"email-input"},n("pages.forgotPassword.fields.email","Email")),Qe.createElement("input",{id:"email-input",name:"email",type:"mail",autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:c,onChange:g=>m(g.target.value)}),Qe.createElement("input",{type:"submit",disabled:x,value:n("pages.forgotPassword.buttons.submit","Send reset instructions")}),Qe.createElement("br",null),e??Qe.createElement("span",null,n("pages.register.buttons.haveAccount","Have an account? ")," ",C("/login",n("pages.login.signin","Sign in"))))));return Qe.createElement("div",{...t},s?s(v,a):v)};import Ve,{useState as hs}from"react";var bs=({wrapperProps:e,contentProps:t,renderContent:r,formProps:s,title:o=void 0})=>{let a=B(),n=W(),{mutate:u,isLoading:p}=Pr({v3LegacyAuthProviderCompatible:!!(n!=null&&n.isLegacy)}),[d,l]=hs(""),[c,m]=hs(""),P=Ve.createElement("div",{...t},Ve.createElement("h1",{style:{textAlign:"center"}},a("pages.updatePassword.title","Update Password")),Ve.createElement("hr",null),Ve.createElement("form",{onSubmit:x=>{x.preventDefault(),u({password:d,confirmPassword:c})},...s},Ve.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},Ve.createElement("label",{htmlFor:"password-input"},a("pages.updatePassword.fields.password","New Password")),Ve.createElement("input",{id:"password-input",name:"password",type:"password",required:!0,size:20,value:d,onChange:x=>l(x.target.value)}),Ve.createElement("label",{htmlFor:"confirm-password-input"},a("pages.updatePassword.fields.confirmPassword","Confirm New Password")),Ve.createElement("input",{id:"confirm-password-input",name:"confirmPassword",type:"password",required:!0,size:20,value:c,onChange:x=>m(x.target.value)}),Ve.createElement("input",{type:"submit",disabled:p,value:a("pages.updatePassword.buttons.submit","Update")}))));return Ve.createElement("div",{...e},r?r(P,o):P)};var ei=e=>{let{type:t}=e;return Tt.createElement(Tt.Fragment,null,(()=>{switch(t){case"register":return Tt.createElement(xs,{...e});case"forgotPassword":return Tt.createElement(Cs,{...e});case"updatePassword":return Tt.createElement(bs,{...e});default:return Tt.createElement(Rs,{...e})}})())};import ve from"react";var Kr=()=>ve.createElement(ve.Fragment,null,ve.createElement("h1",null,"Welcome on board"),ve.createElement("p",null,"Your configuration is completed."),ve.createElement("p",null,"Now you can get started by adding your resources to the"," ",ve.createElement("code",null,"`resources`")," property of ",ve.createElement("code",null,"`<Refine>`")),ve.createElement("div",{style:{display:"flex",gap:8}},ve.createElement("a",{href:"https://refine.dev",target:"_blank",rel:"noreferrer"},ve.createElement("button",null,"Documentation")),ve.createElement("a",{href:"https://refine.dev/examples",target:"_blank",rel:"noreferrer"},ve.createElement("button",null,"Examples")),ve.createElement("a",{href:"https://discord.gg/refine",target:"_blank",rel:"noreferrer"},ve.createElement("button",null,"Community"))));import J,{useState as ti}from"react";var ri=[{title:"Documentation",description:"Learn about the technical details of using refine in your projects.",link:"https://refine.dev/",icon:J.createElement("svg",{width:"14",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},J.createElement("path",{d:"M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V5a1 1 0 0 0-1-1H3a1 1 0 0 1 0-2h10a1 1 0 1 0 0-2H2Z",fill:"#fff"}))},{title:"Tutorial",description:"Learn how to use refine by building a fully-functioning CRUD app, from scratch to full launch.",link:"https://refine.dev/docs/tutorial/introduction/index/",icon:J.createElement("svg",{width:"16",height:"14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},J.createElement("path",{d:"M0 4.573c0-.475.163-.948.53-1.25a4.57 4.57 0 0 1 .854-.553L5.956.485a4.571 4.571 0 0 1 4.088 0l4.572 2.285c.308.154.594.34.853.553.306.251.47.62.517 1.01.01.055.014.112.014.169v6.5a1 1 0 0 1-2 0V6.684l-3.956 1.978a4.571 4.571 0 0 1-4.088 0L1.384 6.376a4.57 4.57 0 0 1-.853-.553C.163 5.522 0 5.05 0 4.573Z",fill:"#fff"}),J.createElement("path",{d:"M5.061 13.305 3 12.274V9.42l2.061 1.031a6.571 6.571 0 0 0 5.878 0L13 9.421v2.853l-2.061 1.03a6.571 6.571 0 0 1-5.878 0Z",fill:"#fff"}))},{title:"Examples",description:"A collection of reference applications you can use as a starting point.",link:"https://refine.dev/examples",icon:J.createElement("svg",{width:"16",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},J.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4H0V2Zm3 2a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm4-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm2 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z",fill:"#fff"}),J.createElement("path",{d:"M0 14V8h16v6a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2Z",fill:"#fff"}))},{title:"Community",description:"Join our Discord community and keep up with the latest news.",link:"https://discord.gg/refine",icon:J.createElement("svg",{width:"16",height:"12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},J.createElement("path",{d:"M13.553 1.005A13.334 13.334 0 0 0 10.253 0c-.156.276-.298.56-.423.85a12.42 12.42 0 0 0-3.664 0A8.975 8.975 0 0 0 5.744 0 13.43 13.43 0 0 0 2.44 1.007C.351 4.066-.215 7.05.068 9.99A13.36 13.36 0 0 0 4.116 12c.328-.436.618-.9.867-1.384a8.647 8.647 0 0 1-1.365-.645c.115-.082.227-.167.335-.249a9.594 9.594 0 0 0 8.094 0c.11.089.222.173.335.25-.436.254-.894.47-1.368.646.249.484.539.946.867 1.382a13.3 13.3 0 0 0 4.051-2.01c.332-3.41-.568-6.365-2.379-8.985Zm-8.21 7.176c-.79 0-1.442-.709-1.442-1.58 0-.872.63-1.587 1.439-1.587s1.456.715 1.442 1.586c-.014.872-.636 1.58-1.44 1.58Zm5.315 0c-.79 0-1.44-.709-1.44-1.58 0-.872.63-1.587 1.44-1.587.81 0 1.452.715 1.438 1.586-.014.872-.634 1.58-1.438 1.58Z",fill:"#fff"}))}],oi=()=>{let e=er("(max-width: 1010px)"),t=er("(max-width: 650px)"),r=()=>t?"1, 280px":e?"2, 280px":"4, 208px",s=()=>t?"32px":e?"40px":"48px",o=()=>t?"16px":e?"20px":"24px";return J.createElement("div",{style:{backgroundImage:"url(https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/welcome-page.webp)",backgroundPosition:"center top",backgroundSize:"cover",backgroundRepeat:"no-repeat",minHeight:"100vh",backgroundColor:"#0D0D12",fontFamily:"Arial",color:"#FFFFFF"}},J.createElement("div",{style:{height:"89px"}}),J.createElement("div",{style:{display:"flex",justifyContent:"center"}},J.createElement("img",{src:"https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/welcome-logo.webp",width:"198",height:"54"})),J.createElement("div",{style:{height:e?"270px":"22vw",minHeight:e?"270px":"313px"}}),J.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px",textAlign:"center"}},J.createElement("h1",{style:{fontSize:s(),fontWeight:700,margin:"0px"}},"Welcome Aboard!"),J.createElement("h4",{style:{fontSize:o(),fontWeight:400,margin:"0px"}},"Your configuration is completed.")),J.createElement("div",{style:{height:"64px"}}),J.createElement("div",{style:{display:"grid",gridTemplateColumns:`repeat(${r()})`,justifyContent:"center",gap:"48px",paddingRight:"16px",paddingLeft:"16px",maxWidth:"976px",margin:"auto"}},ri.map(a=>J.createElement(si,{key:`welcome-page-${a.title}`,card:a}))),J.createElement("div",{style:{height:"64px"}}))},si=({card:e})=>{let{title:t,description:r,icon:s,link:o}=e,[a,n]=ti(!1);return J.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},J.createElement("div",{style:{display:"flex",alignItems:"center"}},J.createElement("a",{onPointerEnter:()=>n(!0),onPointerLeave:()=>n(!1),style:{display:"flex",alignItems:"center",color:"#fff",textDecoration:"none"},href:o},s,J.createElement("span",{style:{fontSize:"16px",fontWeight:700,marginLeft:"13px",marginRight:"14px"}},t),J.createElement("svg",{style:{transition:"transform 0.5s ease-in-out, opacity 0.2s ease-in-out",...a&&{transform:"translateX(4px)",opacity:1}},width:"12",height:"8",fill:"none",opacity:"0.5",xmlns:"http://www.w3.org/2000/svg"},J.createElement("path",{d:"M7.293.293a1 1 0 0 1 1.414 0l3 3a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414-1.414L8.586 5H1a1 1 0 0 1 0-2h7.586L7.293 1.707a1 1 0 0 1 0-1.414Z",fill:"#fff"})))),J.createElement("span",{style:{fontSize:"12px",opacity:.5,lineHeight:"16px"}},r))};import se from"react";import{QueryClientProvider as ui,QueryClient as Ms}from"@tanstack/react-query";import{ReactQueryDevtools as ci}from"@tanstack/react-query-devtools";import{useEffect as ai}from"react";import{useContext as nt}from"react";var ni="4.26.0",vs=()=>{let e=xr(),t=nt(st),r=nt(We),s=nt(Ft),o=nt(wt),{i18nProvider:a}=nt(Fe),n=nt(St),u=nt(Xe),{resources:p}=k(),d=!!t.create||!!t.get||!!t.update,l=!!(r!=null&&r.publish)||!!(r!=null&&r.subscribe)||!!(r!=null&&r.unsubscribe),c=!!s.useHistory||!!s.Link||!!s.Prompt||!!s.useLocation||!!s.useParams,m=!!o,P=!!(a!=null&&a.changeLocale)||!!(a!=null&&a.getLocale)||!!(a!=null&&a.translate),x=!!n.close||!!n.open,C=!!u.can;return{providers:{auth:e,auditLog:d,live:l,router:c,data:m,i18n:P,notification:x,accessControl:C},version:ni,resourceCount:p.length}};var ii=e=>{let t=JSON.stringify(e||{});return typeof btoa<"u"?btoa(t):Buffer.from(t).toString("base64")},Ds=()=>{let e=vs();return ai(()=>{if(typeof window>"u"&&!Image)return;let t=new Image;t.src=`https://telemetry.refine.dev/telemetry?payload=${ii(e)}`},[]),null};var Ls=e=>{let t=["go","parse","back","Link"],r=Object.keys(e).filter(o=>!t.includes(o));return r.length>0?(console.warn(`Unsupported properties are found in \`routerProvider\` prop. You provided \`${r.join(", ")}\`. Supported properties are \`${t.join(", ")}\`. You may wanted to use \`legacyRouterProvider\` prop instead.`),!0):!1};import Es from"react";var Us=e=>{let t=Es.useRef(!1);Es.useEffect(()=>{t.current===!1&&e&&Ls(e)&&(t.current=!0)},[e])};var pi=({legacyAuthProvider:e,authProvider:t,dataProvider:r,legacyRouterProvider:s,routerProvider:o,notificationProvider:a,accessControlProvider:n,auditLogProvider:u,resources:p,DashboardPage:d,ReadyPage:l,LoginPage:c,catchAll:m,children:P,liveProvider:x,i18nProvider:C,Title:v,Layout:g,Sider:U,Header:S,Footer:h,OffLayoutArea:i,onLiveEvent:f,options:R})=>{let{optionsWithDefaults:b,disableTelemetryWithDefault:T,reactQueryWithDefaults:y}=Mr({options:R}),D=or(()=>{var E;return y.clientConfig instanceof Ms?y.clientConfig:new Ms({...y.clientConfig,defaultOptions:{...y.clientConfig.defaultOptions,queries:{refetchOnWindowFocus:!1,keepPreviousData:!0,...(E=y.clientConfig.defaultOptions)==null?void 0:E.queries}}})},[y.clientConfig]),A=se.useMemo(()=>typeof a=="function"?a:()=>a??{},[a])();if(Us(o),s&&!o&&(p??[]).length===0)return l?se.createElement(l,null):se.createElement(Kr,null);let{RouterComponent:I=se.Fragment}=o?{}:s??{};return se.createElement(ui,{client:D},se.createElement(Zo,{...A},se.createElement(ro,{...e??{},isProvided:!!e},se.createElement(so,{...t??{},isProvided:!!t},se.createElement(Qo,{...r},se.createElement(Vo,{liveProvider:x},se.createElement(Go,{value:s&&!o?"legacy":"new"},se.createElement(Ko,{router:o},se.createElement(rs,{...s},se.createElement(Ho,{resources:p??[]},se.createElement(Jo,{i18nProvider:C},se.createElement(ss,{...n??{}},se.createElement(ls,{...u??{}},se.createElement(kr,null,se.createElement(Do,{mutationMode:b.mutationMode,warnWhenUnsavedChanges:b.warnWhenUnsavedChanges,syncWithLocation:b.syncWithLocation,Title:v,undoableTimeout:b.undoableTimeout,catchAll:m,DashboardPage:d,LoginPage:c,Layout:g,Sider:U,Footer:h,Header:S,OffLayoutArea:i,hasDashboard:!!d,liveMode:b.liveMode,onLiveEvent:f,options:b},se.createElement(Io,null,se.createElement(I,null,P,!T&&se.createElement(Ds,null),se.createElement(zr,null))))))))))))))))),y.devtoolConfig===!1?null:se.createElement(ci,{initialIsOpen:!1,position:"bottom-right",...y.devtoolConfig}))};import{useEffect as di,useState as li}from"react";var Ao=({notification:e})=>{let t=B(),{notificationDispatch:r}=He(),{open:s}=he(),[o,a]=li(),n=()=>{if(e.isRunning===!0&&(e.seconds===0&&e.doMutation(),e.isSilent||s==null||s({key:`${e.id}-${e.resource}-notification`,type:"progress",message:t("notifications.undoable",{seconds:bt(e.seconds)},`You have ${bt(e.seconds)} seconds to undo`),cancelMutation:e.cancelMutation,undoableTimeout:bt(e.seconds)}),e.seconds>0)){o&&clearTimeout(o);let u=setTimeout(()=>{r({type:"DECREASE_NOTIFICATION_SECOND",payload:{id:e.id,seconds:e.seconds,resource:e.resource}})},1e3);a(u)}};return di(()=>{n()},[e]),null};import _r,{useEffect as mi}from"react";var fi=({children:e,Layout:t,Sider:r,Header:s,Title:o,Footer:a,OffLayoutArea:n})=>{let{Layout:u,Footer:p,Header:d,Sider:l,Title:c,OffLayoutArea:m}=ae();return _r.createElement(t??u,{Sider:r??l,Header:s??d,Footer:a??p,Title:o??c,OffLayoutArea:n??m},e,_r.createElement(yi,null))},yi=()=>{let{Prompt:e}=te(),t=B(),{warnWhen:r,setWarnWhen:s}=Et(),o=a=>(a.preventDefault(),a.returnValue=t("warnWhenUnsavedChanges","Are you sure you want to leave? You have unsaved changes."),a.returnValue);return mi(()=>(r&&window.addEventListener("beforeunload",o),window.removeEventListener("beforeunload",o)),[r]),_r.createElement(e,{when:r,message:t("warnWhenUnsavedChanges","Are you sure you want to leave? You have unsaved changes."),setWarnWhen:s})};import Le from"react";var gi=()=>{let e=ce(),[t,r]=Le.useState(void 0);return Le.useEffect(()=>{t&&e(t)},[t]),Le.useCallback(o=>{t||r(o)},[t])};function Ti({redirectOnFail:e=!0,appendCurrentPathToQuery:t=!0,children:r,fallback:s,loading:o}){var b;let a=W(),n=z(),u=!!(a!=null&&a.isProvided),p=!!(a!=null&&a.isLegacy),d=n==="legacy",l=de(),c=ce(),m=gi(),{replace:P}=ue(),{useLocation:x}=te(),C=x(),{isLoading:v,isFetching:g,isSuccess:U,data:{authenticated:S,redirectTo:h}={},refetch:i}=Ot({v3LegacyAuthProviderCompatible:p});Le.useEffect(()=>{i()},[r,s]);let f=Le.useRef({status:v?"initial":"pending",content:o??null});g?f.current.status="pending":g||(f.current.status="settled");let R=u?p?U:S:!0;if(f.current.status==="settled")if(R)f.current.content=Le.createElement(Le.Fragment,null,r??null);else if(typeof s<"u")f.current.content=Le.createElement(Le.Fragment,null,s);else{let T=`${d?C==null?void 0:C.pathname:l.pathname}`.replace(/(\?.*|#.*)$/,""),y=p?typeof e=="string"?e:"/login":typeof e=="string"?e:h;if(y)if(d){let D=t?`?to=${encodeURIComponent(T)}`:"";P(`${y}${D}`)}else m({to:y,query:t?{to:(b=l.params)!=null&&b.to?l.params.to:c({to:T,options:{keepQuery:!0},type:"path"})}:void 0,type:"replace"})}return u?Le.createElement(Le.Fragment,null,f.current.content):Le.createElement(Le.Fragment,null,r??null)}import{useEffect as Ri}from"react";var zr=()=>{let{useLocation:e}=te(),{checkAuth:t}=ee(),r=e();return Ri(()=>{t==null||t().catch(()=>!1)},[r==null?void 0:r.pathname]),null};import Rt from"react";var Pi=({resource:e,action:t,params:r,fallback:s,children:o,...a})=>{let{resource:n,id:u,action:p}=k(e),{identifier:d}=k(),c=(()=>{let P=(r==null?void 0:r.id)??u;return e&&e!==d?r==null?void 0:r.id:P})(),{data:m}=ns({resource:e??(n==null?void 0:n.name),action:t??p??"",params:r??{id:c,resource:n}});return m!=null&&m.can?Rt.isValidElement(o)?Rt.cloneElement(o,a):Rt.createElement(Rt.Fragment,null,o):(m==null?void 0:m.can)===!1?Rt.createElement(Rt.Fragment,null,s??null):null};import Pt,{useEffect as xi}from"react";var Is=[`
12
12
  .banner {
13
13
  display: flex;
14
14
  @media (max-width: 1000px) {