@refinedev/antd 5.29.0 → 5.30.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 +53 -0
- package/dist/iife/index.js +1 -1
- package/dist/iife/index.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,58 @@
|
|
1
1
|
# @pankod/refine-antd
|
2
2
|
|
3
|
+
## 5.30.0
|
4
|
+
|
5
|
+
### Minor Changes
|
6
|
+
|
7
|
+
- [#4591](https://github.com/refinedev/refine/pull/4591) [`f8891ead2bd`](https://github.com/refinedev/refine/commit/f8891ead2bdb5f6743bbe9979230aa73ef3e69be) Thanks [@yildirayunlu](https://github.com/yildirayunlu)! - feat: `autoSave` feature for [`Edit`](https://refine.dev/docs/api-reference/antd/components/basic-views/edit/#autosaveprops).
|
8
|
+
[useForm](https://refine.dev/docs/api-reference/antd/hooks/form/useForm/#autosave), [useDrawerForm](https://refine.dev/docs/api-reference/antd/hooks/form/useDrawerForm/#autosave), [useModalForm](https://refine.dev/docs/api-reference/antd/hooks/form/useModalForm/#autosave), [useStepsForm](https://refine.dev/docs/api-reference/antd/hooks/form/useStepsForm/#autosave) hooks now accept `autoSave` object. `enabled` is a boolean value and `debounce` is a number value in milliseconds. `debounce` is optional and default value is `1000`.
|
9
|
+
|
10
|
+
```
|
11
|
+
const { autoSaveProps } = useForm({
|
12
|
+
autoSave: {
|
13
|
+
enabled: true,
|
14
|
+
debounce: 2000, // not required, default is 1000
|
15
|
+
},
|
16
|
+
});
|
17
|
+
|
18
|
+
return (
|
19
|
+
<Edit
|
20
|
+
saveButtonProps={saveButtonProps}
|
21
|
+
// pass autoSaveProps to Edit component
|
22
|
+
autoSaveProps={autoSaveProps}
|
23
|
+
>
|
24
|
+
// form fields
|
25
|
+
</Edit>
|
26
|
+
);
|
27
|
+
```
|
28
|
+
|
29
|
+
feat: Add [`<AutoSaveIndicator>`](https://refine.dev/docs/api-reference/antd/components/antd-auto-save-indicator/) component. It comes automatically when `autoSaveProps` is given to the `Edit` page. However, this component can be used to position it in a different place.
|
30
|
+
|
31
|
+
```
|
32
|
+
import { AutoSaveIndicator } from "@refinedev/antd";
|
33
|
+
const { autoSaveProps } = useForm({
|
34
|
+
autoSave: {
|
35
|
+
enabled: true,
|
36
|
+
debounce: 2000, // not required, default is 1000
|
37
|
+
},
|
38
|
+
});
|
39
|
+
|
40
|
+
return (
|
41
|
+
<div>
|
42
|
+
<AutoSaveIndicator {...autoSaveProps}>
|
43
|
+
</div>
|
44
|
+
);
|
45
|
+
```
|
46
|
+
|
47
|
+
- [#4652](https://github.com/refinedev/refine/pull/4652) [`96af6d25b7a`](https://github.com/refinedev/refine/commit/96af6d25b7a870a3c1c6fd33c30e0ca2224ed411) Thanks [@alicanerdurmaz](https://github.com/alicanerdurmaz)! - feat: when the `dataProvider` returns rejected promise with `errors` field, `useForm` will automatically update the error state with the rejected `errors` field.
|
48
|
+
|
49
|
+
[Refer to the server-side form validation documentation for more information. →](https://refine.dev/docs/advanced-tutorials/forms/server-side-form-validation/)
|
50
|
+
|
51
|
+
### Patch Changes
|
52
|
+
|
53
|
+
- Updated dependencies [[`f8891ead2bd`](https://github.com/refinedev/refine/commit/f8891ead2bdb5f6743bbe9979230aa73ef3e69be)]:
|
54
|
+
- @refinedev/ui-types@1.20.0
|
55
|
+
|
3
56
|
## 5.29.0
|
4
57
|
|
5
58
|
### Minor Changes
|
package/dist/iife/index.js
CHANGED
@@ -8,7 +8,7 @@ See https://refine.dev/docs/api-reference/core/hooks/useForm/#resource`);let V=J
|
|
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 y=sn({resource:f,id:b??"",queryOptions:{enabled:b!==void 0,...u},successNotification:r,errorNotification:o,meta:S,metaData:S,liveMode:i,onLiveEvent:s,dataProviderName:m}),{elapsedTime:P}=Qe({isLoading:y.isFetching,interval:p==null?void 0:p.interval,onInterval:p==null?void 0:p.onInterval});return{queryResult:y,showId:b,setShowId:h,overtime:{elapsedTime:P}}},Qo=d("react"),ac=d("papaparse"),nc=Q(d("lodash/chunk")),ic=({resourceName:e,resource:t,mapData:r=p=>p,paparseOptions:o,batchSize:a=Number.MAX_SAFE_INTEGER,onFinish:n,meta:i,metaData:s,onProgress:m,dataProviderName:u}={})=>{let[p,l]=(0,Qo.useState)(0),[T,f]=(0,Qo.useState)(0),[g,c]=(0,Qo.useState)(!1),{resource:v,identifier:b}=ne(t??e),h=Re(),S=os(),y=ln(),P=h({resource:v,meta:$(i,s)}),E;a===1?E=y:E=S;let C=()=>{f(0),l(0),c(!1)},M=w=>{let k={succeeded:w.filter(D=>D.type==="success"),errored:w.filter(D=>D.type==="error")};n==null||n(k),c(!1)};(0,Qo.useEffect)(()=>{m==null||m({totalAmount:T,processedAmount:p})},[T,p]);let x=({file:w})=>(C(),new Promise(k=>{c(!0),(0,ac.parse)(w,{complete:async({data:D})=>{let A=qi(D,r);if(f(A.length),a===1){let L=A.map(B=>async()=>({response:await y.mutateAsync({resource:b??"",values:B,successNotification:!1,errorNotification:!1,dataProviderName:u,meta:P,metaData:P}),value:B})),F=await ri(L,({response:B,value:I})=>(l(N=>N+1),{response:[B.data],type:"success",request:[I]}),(B,I)=>({response:[B],type:"error",request:[A[I]]}));k(F)}else{let L=(0,nc.default)(A,a),F=L.map(I=>async()=>({response:await S.mutateAsync({resource:b??"",values:I,successNotification:!1,errorNotification:!1,dataProviderName:u,meta:P,metaData:P}),value:I,currentBatchLength:I.length})),B=await ri(F,({response:I,currentBatchLength:N,value:O})=>(l(q=>q+N),{response:I.data,type:"success",request:O}),(I,N)=>({response:[I],type:"error",request:L[N]}));k(B)}},...o})}).then(k=>(M(k),k)));return{inputProps:{type:"file",accept:".csv",onChange:w=>{w.target.files&&w.target.files.length>0&&x({file:w.target.files[0]})}},mutationResult:E,isLoading:g,handleChange:x}},Va=d("react"),sc=({defaultVisible:e=!1}={})=>{let[t,r]=(0,Va.useState)(e),o=(0,Va.useCallback)(()=>r(!0),[t]),a=(0,Va.useCallback)(()=>r(!1),[t]);return{visible:t,show:o,close:a}},lc=Q(d("react")),cn=()=>{let e=Oe(),{resource:t,resources:r}=ne(),o=Rt();return lc.default.useCallback(({resource:a,action:n,meta:i})=>{var s;let m=a||t;if(!m)return;let u=(s=lt(m,r,e==="legacy").find(p=>p.action===n))==null?void 0:s.route;return u?gt(u,m==null?void 0:m.meta,o,i):void 0},[r,t,o])},uc=({resource:e,action:t,meta:r,legacy:o})=>cn()({resource:e,action:t,meta:r,legacy:o}),Ti=Q(d("react")),Xo=()=>{let e=(0,Ti.useContext)(Lo);return e!=null&&e.Link?e.Link:({to:t,...r})=>Ti.default.createElement("a",{href:t,...r})},dc=d("react"),bs=Q(d("react")),Jt={useHistory:()=>!1,useLocation:()=>!1,useParams:()=>({}),Prompt:()=>null,Link:()=>null},cc=bs.default.createContext(Jt),pn=cc,pc=({children:e,useHistory:t,useLocation:r,useParams:o,Prompt:a,Link:n,routes:i})=>bs.default.createElement(pn.Provider,{value:{useHistory:t??Jt.useHistory,useLocation:r??Jt.useLocation,useParams:o??Jt.useParams,Prompt:a??Jt.Prompt,Link:n??Jt.Link,routes:i??Jt.routes}},e),pt=()=>{let e=(0,dc.useContext)(pn),{useHistory:t,useLocation:r,useParams:o,Prompt:a,Link:n,routes:i}=e??Jt;return{useHistory:t,useLocation:r,useParams:o,Prompt:a,Link:n,routes:i}},mc=d("@tanstack/react-query"),fc=d("react"),Ts=Q(d("react")),Fo=Ts.default.createContext({options:{buttons:{enableAccessControl:!0,hideIfUnauthorized:!1}}}),yc=({can:e,children:t,options:r})=>Ts.default.createElement(Fo.Provider,{value:{can:e,options:r?{...r,buttons:{enableAccessControl:!0,hideIfUnauthorized:!1,...r.buttons}}:{buttons:{enableAccessControl:!0,hideIfUnauthorized:!1}}}},t),mn=e=>{if(!e)return;let{icon:t,list:r,edit:o,create:a,show:n,clone:i,children:s,meta:m,options:u,...p}=e,{icon:l,...T}=m??{},{icon:f,...g}=u??{};return{...p,...m?{meta:T}:{},...u?{options:g}:{}}},Ps=({action:e,resource:t,params:r,queryOptions:o})=>{let{can:a}=(0,fc.useContext)(Fo),{resource:n,...i}=r??{},s=mn(n),m=(0,mc.useQuery)(["useCan",{action:e,resource:t,params:{...i,resource:s},enabled:o==null?void 0:o.enabled}],()=>(a==null?void 0:a({action:e,resource:t,params:{...i,resource:s}}))??Promise.resolve({can:!0}),{enabled:typeof a<"u",...o,retry:!1});return typeof a>"u"?{data:{can:!0}}:m},Pi=Q(d("react")),vc=()=>{let{can:e}=Pi.default.useContext(Fo);return{can:Pi.default.useMemo(()=>e?async({params:t,...r})=>{let o=t!=null&&t.resource?mn(t.resource):void 0;return e({...r,...t?{params:{...t,resource:o}}:{}})}:void 0,[e])}},Ir=d("react"),gc=Q(d("lodash/uniqBy")),hc=Q(d("lodash/debounce")),zo=Q(d("lodash/get")),bc=e=>{let[t,r]=(0,Ir.useState)([]),[o,a]=(0,Ir.useState)([]),[n,i]=(0,Ir.useState)([]),{resource:s,sort:m,sorters:u,filters:p=[],optionLabel:l="title",optionValue:T="id",debounce:f=300,successNotification:g,errorNotification:c,defaultValueQueryOptions:v,queryOptions:b,fetchSize:h,pagination:S,hasPagination:y=!1,liveMode:P,defaultValue:E=[],onLiveEvent:C,onSearch:M,liveParams:x,meta:w,metaData:k,dataProviderName:D,overtimeOptions:A}=e,{resource:L,identifier:F}=ne(s),B=Re()({resource:L,meta:$(w,k)}),I=Array.isArray(E)?E:[E],N=(0,Ir.useCallback)(V=>{i(V.data.map(z=>({label:(0,zo.default)(z,l),value:(0,zo.default)(z,T)})))},[l,T]),O=v??b,q=ts({resource:F,ids:I,queryOptions:{...O,enabled:I.length>0&&((O==null?void 0:O.enabled)??!0),onSuccess:V=>{var z;N(V),(z=O==null?void 0:O.onSuccess)==null||z.call(O,V)}},meta:B,metaData:B,liveMode:"off",dataProviderName:D}),W=(0,Ir.useCallback)(V=>{a(V.data.map(z=>({label:(0,zo.default)(z,l),value:(0,zo.default)(z,T)})))},[l,T]),j=nn({resource:F,sorters:$(u,m),filters:p.concat(t),pagination:{current:S==null?void 0:S.current,pageSize:(S==null?void 0:S.pageSize)??h,mode:S==null?void 0:S.mode},hasPagination:y,queryOptions:{...b,onSuccess:V=>{var z;W(V),(z=b==null?void 0:b.onSuccess)==null||z.call(b,V)}},successNotification:g,errorNotification:c,meta:B,metaData:B,liveMode:P,liveParams:x,onLiveEvent:C,dataProviderName:D}),U=V=>{if(M){r(M(V));return}if(V)r([{field:l,operator:"contains",value:V}]);else{r([]);return}},{elapsedTime:H}=Qe({isLoading:j.isFetching||q.isFetching,interval:A==null?void 0:A.interval,onInterval:A==null?void 0:A.onInterval});return{queryResult:j,defaultValueQueryResult:q,options:(0,Ir.useMemo)(()=>(0,gc.default)([...o,...n],"value"),[o,n]),onSearch:(0,hc.default)(U,f),overtime:{elapsedTime:H}}},br=Q(d("react")),xi=Q(d("qs")),Wo=Q(d("lodash/differenceWith")),jo=Q(d("lodash/isEqual")),Tc=Q(d("warn-once")),Ci=[],Ei=[];function Pc({initialCurrent:e,initialPageSize:t,hasPagination:r=!0,pagination:o,initialSorter:a,permanentSorter:n=Ei,defaultSetFilterBehavior:i,initialFilter:s,permanentFilter:m=Ci,filters:u,sorters:p,syncWithLocation:l,resource:T,successNotification:f,errorNotification:g,queryOptions:c,liveMode:v,onLiveEvent:b,liveParams:h,meta:S,metaData:y,dataProviderName:P,overtimeOptions:E}={}){var C,M,x,w,k;let{syncWithLocation:D}=es(),A=l??D,L=fs(v),F=Oe(),{useLocation:B}=pt(),{search:I,pathname:N}=B(),O=Re(),q=Rt(),W=((u==null?void 0:u.mode)||"server")==="server",j=((p==null?void 0:p.mode)||"server")==="server",U=r===!1?"off":"server",H=((o==null?void 0:o.mode)??U)!=="off",V=$(o==null?void 0:o.current,e),z=$(o==null?void 0:o.pageSize,t),J=$(S,y),{parsedCurrent:_,parsedPageSize:le,parsedSorter:xe,parsedFilters:Z}=tn(I??"?"),ye=$(u==null?void 0:u.initial,s),te=$(u==null?void 0:u.permanent,m)??Ci,re=$(p==null?void 0:p.initial,a),oe=$(p==null?void 0:p.permanent,n)??Ei,De=$(u==null?void 0:u.defaultBehavior,i)??"merge",Ce,et,Ee,nt;A?(Ce=((C=q==null?void 0:q.params)==null?void 0:C.current)||_||V||1,et=((M=q==null?void 0:q.params)==null?void 0:M.pageSize)||le||z||10,Ee=((x=q==null?void 0:q.params)==null?void 0:x.sorters)||(xe.length?xe:re),nt=((w=q==null?void 0:q.params)==null?void 0:w.filters)||(Z.length?Z:ye)):(Ce=V||1,et=z||10,Ee=re,nt=ye);let{replace:Mr}=xt(),me=Pt(),{resource:qt,identifier:Xe}=ne(T),Ht=O({resource:qt,meta:J});br.default.useEffect(()=>{(0,Tc.default)(typeof Xe>"u","useTable: `resource` is not defined.")},[Xe]);let[Le,$t]=(0,br.useState)(Ga(oe,Ee??[])),[kt,Dt]=(0,br.useState)(Ka(te,nt??[])),[vr,On]=(0,br.useState)(Ce),[gr,Vn]=(0,br.useState)(et),au=({pagination:{current:Be,pageSize:vt},sorter:Ho,filters:$o})=>{if(F==="new")return me({type:"path",options:{keepHash:!0,keepQuery:!0},query:{...H?{current:Be,pageSize:vt}:{},sorters:Ho,filters:$o,...Hn()}})??"";{let xo=xi.default.parse(I==null?void 0:I.substring(1)),du=Wa({pagination:{pageSize:vt,current:Be},sorters:Le??Ho,filters:$o,...xo});return`${N??""}?${du??""}`}};(0,br.useEffect)(()=>{I===""&&(On(Ce),Vn(et),$t(Ga(oe,Ee??[])),Dt(Ka(te,nt??[])))},[I]);let Hn=()=>{if(F==="new"){let{sorters:Be,filters:vt,pageSize:Ho,current:$o,...xo}=(q==null?void 0:q.params)??{};return xo}else{let{sorter:Be,filters:vt,pageSize:Ho,current:$o,...xo}=xi.default.parse(I,{ignoreQueryPrefix:!0});return xo}};(0,br.useEffect)(()=>{if(A){let Be=Hn();if(F==="new")me({type:"replace",options:{keepQuery:!0},query:{...H?{pageSize:gr,current:vr}:{},sorters:(0,Wo.default)(Le,oe,jo.default),filters:(0,Wo.default)(kt,te,jo.default)}});else{let vt=Wa({...H?{pagination:{pageSize:gr,current:vr}}:{},sorters:(0,Wo.default)(Le,oe,jo.default),filters:(0,Wo.default)(kt,te,jo.default),...Be});return Mr==null?void 0:Mr(`${N}?${vt}`,void 0,{shallow:!0})}}},[A,vr,gr,Le,kt]);let Fa=nn({resource:Xe,hasPagination:r,pagination:{current:vr,pageSize:gr,mode:o==null?void 0:o.mode},filters:W?Co(te,kt):void 0,sorters:j?ja(oe,Le):void 0,queryOptions:c,successNotification:f,errorNotification:g,meta:Ht,metaData:Ht,liveMode:L,liveParams:h,onLiveEvent:b,dataProviderName:P}),nu=Be=>{Dt(vt=>Co(te,Be,vt))},iu=Be=>{Dt(Co(te,Be))},su=Be=>{Dt(vt=>Co(te,Be(vt)))},lu=(Be,vt=De)=>{typeof Be=="function"?su(Be):vt==="replace"?iu(Be):nu(Be)},$n=Be=>{$t(()=>ja(oe,Be))},{elapsedTime:uu}=Qe({isLoading:Fa.isFetching,interval:E==null?void 0:E.interval,onInterval:E==null?void 0:E.onInterval});return{tableQueryResult:Fa,sorters:Le,setSorters:$n,sorter:Le,setSorter:$n,filters:kt,setFilters:lu,current:vr,setCurrent:On,pageSize:gr,setPageSize:Vn,pageCount:gr?Math.ceil((((k=Fa.data)==null?void 0:k.total)??0)/gr):1,createLinkForSyncWithLocation:au,overtime:{elapsedTime:uu}}}var Si=d("react"),Ha=d("@tanstack/react-query"),xs=Q(d("react")),Jo=xs.default.createContext({}),xc=({create:e,get:t,update:r,children:o})=>xs.default.createElement(Jo.Provider,{value:{create:e,get:t,update:r}},o),Er=({logMutationOptions:e,renameMutationOptions:t}={})=>{let r=(0,Ha.useQueryClient)(),o=(0,Si.useContext)(Jo),a=qe(),{resources:n}=(0,Si.useContext)(So),{data:i,refetch:s,isLoading:m}=Ai({v3LegacyAuthProviderCompatible:!!(a!=null&&a.isLegacy),queryOptions:{enabled:!!o}}),u=(0,Ha.useMutation)(async l=>{var T,f,g,c,v;let b=je(l.resource,n),h=$((T=b==null?void 0:b.meta)==null?void 0:T.audit,(f=b==null?void 0:b.options)==null?void 0:f.audit,(c=(g=b==null?void 0:b.options)==null?void 0:g.auditLog)==null?void 0:c.permissions);if(h&&!Qu(h,l.action))return;let S;return m&&(S=await s()),await((v=o.create)==null?void 0:v.call(o,{...l,author:i??(S==null?void 0:S.data)}))},e),p=(0,Ha.useMutation)(async l=>{var T;return await((T=o.update)==null?void 0:T.call(o,l))},{onSuccess:l=>{if(l!=null&&l.resource){let T=bt(l==null?void 0:l.resource);r.invalidateQueries(T.logList())}},...t});return{log:u,rename:p}},Cc=d("react"),Ec=d("@tanstack/react-query"),Sc=({resource:e,action:t,meta:r,author:o,metaData:a,queryOptions:n})=>{let{get:i}=(0,Cc.useContext)(Jo),s=bt(e,void 0,a);return(0,Ec.useQuery)(s.logList(r),()=>(i==null?void 0:i({resource:e,action:t,author:o,meta:r,metaData:a}))??Promise.resolve([]),{enabled:typeof i<"u",...n,retry:!1})},Lc=d("react"),wc=d("@tanstack/react-query"),Sr=()=>{let{resources:e}=ne(),t=(0,wc.useQueryClient)();return(0,Lc.useCallback)(({resource:r,dataProviderName:o,invalidates:a,id:n})=>{if(a===!1)return;let i=bt(r,ee(r,o,e));a.forEach(s=>{switch(s){case"all":t.invalidateQueries(i.all);break;case"list":t.invalidateQueries(i.list());break;case"many":t.invalidateQueries(i.many());break;case"resourceAll":t.invalidateQueries(i.resourceAll);break;case"detail":t.invalidateQueries(i.detail(n||""));break;default:break}})},[])},Fc=d("react"),kc=Q(d("warn-once")),Dc=({meta:e={}}={})=>{let t=Oe(),{i18nProvider:r}=(0,Fc.useContext)(Cr),o=Rt(),a=he(),{resources:n,resource:i,action:s}=ne(),{options:{textTransformers:m}}=Tt(),u=[];if(!(i!=null&&i.name))return{breadcrumbs:u};let p=l=>{var T,f,g,c,v,b;let h=typeof l=="string"?je(l,n,t==="legacy")??{name:l}:l;if(h){let S=$((T=h==null?void 0:h.meta)==null?void 0:T.parent,h==null?void 0:h.parentName);S&&p(S);let y=lt(h,n,t==="legacy").find(C=>C.action==="list"),P=(f=y==null?void 0:y.resource)!=null&&f.list?y==null?void 0:y.route:void 0,E=P?t==="legacy"?P:gt(P,h==null?void 0:h.meta,o,e):void 0;u.push({label:$((g=h.meta)==null?void 0:g.label,(c=h.options)==null?void 0:c.label)??a(`${h.name}.${h.name}`,m.humanize(h.name)),href:E,icon:$((v=h.meta)==null?void 0:v.icon,(b=h.options)==null?void 0:b.icon,h.icon)})}};if(p(i),s&&s!=="list"){let l=`actions.${s}`,T=a(l);typeof r<"u"&&T===l?((0,kc.default)(!0,`[useBreadcrumb]: Breadcrumb missing translate key for the "${s}" action. Please add "actions.${s}" key to your translation file.
|
11
|
-
For more information, see https://refine.dev/docs/api-reference/core/hooks/useBreadcrumb/#i18n-support`),u.push({label:a(`buttons.${s}`,m.humanize(s))})):u.push({label:a(l,m.humanize(s))})}return{breadcrumbs:u}},$a=Q(d("react")),Go=(e,t,r=!1)=>{let o=[],a=er(e,t);for(;a;)o.push(a),a=er(a,t);return o.reverse(),`/${[...o,e].map(n=>Qt((r?n.route:void 0)??n.identifier??n.name)).join("/").replace(/^\//,"")}`},Bc=(e,t=!1)=>{let r={item:{name:"__root__"},children:{}};e.forEach(a=>{let n=[],i=er(a,e);for(;i;)n.push(i),i=er(i,e);n.reverse();let s=r;n.forEach(u=>{let p=(t?u.route:void 0)??u.identifier??u.name;s.children[p]||(s.children[p]={item:u,children:{}}),s=s.children[p]});let m=(t?a.route:void 0)??a.identifier??a.name;s.children[m]||(s.children[m]={item:a,children:{}})});let o=a=>{let n=[];return Object.keys(a.children).forEach(i=>{let s=Go(a.children[i].item,e,t),m={...a.children[i].item,key:s,children:o(a.children[i])};n.push(m)}),n};return o(r)},Li=e=>e.split("?")[0].split("#")[0].replace(/(.+)(\/$)/,"$1"),Rc=({meta:e,hideOnMissingParameter:t}={hideOnMissingParameter:!0})=>{let r=he(),o=cn(),a=Oe(),{resource:n,resources:i}=ne(),{pathname:s}=Rt(),{useLocation:m}=pt(),{pathname:u}=m(),p=an(),l=`/${((a==="legacy"?Li(u):s?Li(s):void 0)??"").replace(/^\//,"")}`,T=n?Go(n,i,a==="legacy"):l??"",f=$a.default.useMemo(()=>{if(!n)return[];let v=er(n,i),b=[Go(n,i)];for(;v;)b.push(Go(v,i)),v=er(v,i);return b},[]),g=$a.default.useCallback(v=>{var b,h,S,y,P,E;if((((b=v==null?void 0:v.meta)==null?void 0:b.hide)??((h=v==null?void 0:v.options)==null?void 0:h.hide))||!(v!=null&&v.list)&&v.children.length===0)return;let C=v.list?o({resource:v,action:"list",legacy:a==="legacy",meta:e}):void 0;if(!(t&&C&&C.match(/(\/|^):(.+?)(\/|$){1}/)))return{...v,route:C,icon:$((S=v.meta)==null?void 0:S.icon,(y=v.options)==null?void 0:y.icon,v.icon),label:$((P=v==null?void 0:v.meta)==null?void 0:P.label,(E=v==null?void 0:v.options)==null?void 0:E.label)??r(`${v.name}.${v.name}`,p(v.name,"plural"))}},[a,e,r,t]),c=$a.default.useMemo(()=>{let v=Bc(i,a==="legacy"),b=h=>h.flatMap(S=>{let y=b(S.children),P=g({...S,children:y});return P?[P]:[]});return b(v)},[i,a,g]);return{defaultOpenKeys:f,selectedKey:T,menuItems:c}},Re=()=>{let{params:e}=Rt();return({resource:t,meta:r}={})=>{let{meta:o}=mn(t)??{meta:{}},{filters:a,sorters:n,current:i,pageSize:s,...m}=e??{};return{...o,...m,...r}}},Ac=()=>{let[e,t]=(0,hr.useState)(),r=he(),{push:o}=xt(),a=Pt(),n=Oe(),{resource:i,action:s}=ne();return(0,hr.useEffect)(()=>{i&&s&&t(r("pages.error.info",{action:s,resource:i.name},`You may have forgotten to add the "${s}" component to "${i.name}" resource.`))},[i,s]),hr.default.createElement(hr.default.Fragment,null,hr.default.createElement("h1",null,r("pages.error.404",void 0,"Sorry, the page you visited does not exist.")),e&&hr.default.createElement("p",null,e),hr.default.createElement("button",{onClick:()=>{n==="legacy"?o("/"):a({to:"/"})}},r("pages.error.backHome",void 0,"Back Home")))},Ue=Q(d("react")),Cs=()=>{let[e,t]=(0,Ue.useState)(""),[r,o]=(0,Ue.useState)(""),a=he(),n=qe(),{mutate:i}=Xa({v3LegacyAuthProviderCompatible:!!(n!=null&&n.isLegacy)});return Ue.default.createElement(Ue.default.Fragment,null,Ue.default.createElement("h1",null,a("pages.login.title","Sign in your account")),Ue.default.createElement("form",{onSubmit:s=>{s.preventDefault(),i({username:e,password:r})}},Ue.default.createElement("table",null,Ue.default.createElement("tbody",null,Ue.default.createElement("tr",null,Ue.default.createElement("td",null,a("pages.login.username",void 0,"username"),":"),Ue.default.createElement("td",null,Ue.default.createElement("input",{type:"text",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",autoFocus:!0,required:!0,value:e,onChange:s=>t(s.target.value)}))),Ue.default.createElement("tr",null,Ue.default.createElement("td",null,a("pages.login.password",void 0,"password"),":"),Ue.default.createElement("td",null,Ue.default.createElement("input",{type:"password",required:!0,size:20,value:r,onChange:s=>o(s.target.value)}))))),Ue.default.createElement("br",null),Ue.default.createElement("input",{type:"submit",value:"login"})))},Nr=Q(d("react")),ve=Q(d("react")),Mc=({providers:e,registerLink:t,forgotPasswordLink:r,rememberMe:o,contentProps:a,wrapperProps:n,renderContent:i,formProps:s,title:m=void 0})=>{let u=Oe(),p=Xo(),{Link:l}=pt(),T=u==="legacy"?l:p,[f,g]=(0,ve.useState)(""),[c,v]=(0,ve.useState)(""),[b,h]=(0,ve.useState)(!1),S=he(),y=qe(),{mutate:P}=Xa({v3LegacyAuthProviderCompatible:!!(y!=null&&y.isLegacy)}),E=(x,w)=>ve.default.createElement(T,{to:x},w),C=()=>e?e.map(x=>ve.default.createElement("div",{key:x.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},ve.default.createElement("button",{onClick:()=>P({providerName:x.name}),style:{display:"flex",alignItems:"center"}},x==null?void 0:x.icon,x.label??ve.default.createElement("label",null,x.label)))):null,M=ve.default.createElement("div",{...a},ve.default.createElement("h1",{style:{textAlign:"center"}},S("pages.login.title","Sign in to your account")),C(),ve.default.createElement("hr",null),ve.default.createElement("form",{onSubmit:x=>{x.preventDefault(),P({email:f,password:c,remember:b})},...s},ve.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},ve.default.createElement("label",{htmlFor:"email-input"},S("pages.login.fields.email","Email")),ve.default.createElement("input",{id:"email-input",name:"email",type:"text",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:f,onChange:x=>g(x.target.value)}),ve.default.createElement("label",{htmlFor:"password-input"},S("pages.login.fields.password","Password")),ve.default.createElement("input",{id:"password-input",type:"password",name:"password",required:!0,size:20,value:c,onChange:x=>v(x.target.value)}),o??ve.default.createElement(ve.default.Fragment,null,ve.default.createElement("label",{htmlFor:"remember-me-input"},S("pages.login.buttons.rememberMe","Remember me"),ve.default.createElement("input",{id:"remember-me-input",name:"remember",type:"checkbox",size:20,checked:b,value:b.toString(),onChange:()=>{h(!b)}}))),ve.default.createElement("br",null),r??E("/forgot-password",S("pages.login.buttons.forgotPassword","Forgot password?")),ve.default.createElement("input",{type:"submit",value:S("pages.login.signin","Sign in")}),t??ve.default.createElement("span",null,S("pages.login.buttons.noAccount","Don\u2019t have an account?")," ",E("/register",S("pages.login.register","Sign up"))))));return ve.default.createElement("div",{...n},i?i(M,m):M)},we=Q(d("react")),Ic=({providers:e,loginLink:t,wrapperProps:r,contentProps:o,renderContent:a,formProps:n,title:i=void 0})=>{let s=Oe(),m=Xo(),{Link:u}=pt(),p=s==="legacy"?u:m,[l,T]=(0,we.useState)(""),[f,g]=(0,we.useState)(""),c=he(),v=qe(),{mutate:b,isLoading:h}=Mi({v3LegacyAuthProviderCompatible:!!(v!=null&&v.isLegacy)}),S=(E,C)=>we.default.createElement(p,{to:E},C),y=()=>e?e.map(E=>we.default.createElement("div",{key:E.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},we.default.createElement("button",{onClick:()=>b({providerName:E.name}),style:{display:"flex",alignItems:"center"}},E==null?void 0:E.icon,E.label??we.default.createElement("label",null,E.label)))):null,P=we.default.createElement("div",{...o},we.default.createElement("h1",{style:{textAlign:"center"}},c("pages.register.title","Sign up for your account")),y(),we.default.createElement("hr",null),we.default.createElement("form",{onSubmit:E=>{E.preventDefault(),b({email:l,password:f})},...n},we.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},we.default.createElement("label",{htmlFor:"email-input"},c("pages.register.fields.email","Email")),we.default.createElement("input",{id:"email-input",name:"email",type:"email",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:l,onChange:E=>T(E.target.value)}),we.default.createElement("label",{htmlFor:"password-input"},c("pages.register.fields.password","Password")),we.default.createElement("input",{id:"password-input",name:"password",type:"password",required:!0,size:20,value:f,onChange:E=>g(E.target.value)}),we.default.createElement("input",{type:"submit",value:c("pages.register.buttons.submit","Sign up"),disabled:h}),t??we.default.createElement(we.default.Fragment,null,we.default.createElement("span",null,c("pages.login.buttons.haveAccount","Have an account?")," ",S("/login",c("pages.login.signin","Sign in")))))));return we.default.createElement("div",{...r},a?a(P,i):P)},it=Q(d("react")),Nc=({loginLink:e,wrapperProps:t,contentProps:r,renderContent:o,formProps:a,title:n=void 0})=>{let i=he(),s=Oe(),m=Xo(),{Link:u}=pt(),p=s==="legacy"?u:m,[l,T]=(0,it.useState)(""),{mutate:f,isLoading:g}=Ii(),c=(b,h)=>it.default.createElement(p,{to:b},h),v=it.default.createElement("div",{...r},it.default.createElement("h1",{style:{textAlign:"center"}},i("pages.forgotPassword.title","Forgot your password?")),it.default.createElement("hr",null),it.default.createElement("form",{onSubmit:b=>{b.preventDefault(),f({email:l})},...a},it.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},it.default.createElement("label",{htmlFor:"email-input"},i("pages.forgotPassword.fields.email","Email")),it.default.createElement("input",{id:"email-input",name:"email",type:"mail",autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:l,onChange:b=>T(b.target.value)}),it.default.createElement("input",{type:"submit",disabled:g,value:i("pages.forgotPassword.buttons.submit","Send reset instructions")}),it.default.createElement("br",null),e??it.default.createElement("span",null,i("pages.register.buttons.haveAccount","Have an account? ")," ",c("/login",i("pages.login.signin","Sign in"))))));return it.default.createElement("div",{...t},o?o(v,n):v)},st=Q(d("react")),Uc=({wrapperProps:e,contentProps:t,renderContent:r,formProps:o,title:a=void 0})=>{let n=he(),i=qe(),{mutate:s,isLoading:m}=Ni({v3LegacyAuthProviderCompatible:!!(i!=null&&i.isLegacy)}),[u,p]=(0,st.useState)(""),[l,T]=(0,st.useState)(""),f=st.default.createElement("div",{...t},st.default.createElement("h1",{style:{textAlign:"center"}},n("pages.updatePassword.title","Update Password")),st.default.createElement("hr",null),st.default.createElement("form",{onSubmit:g=>{g.preventDefault(),s({password:u,confirmPassword:l})},...o},st.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},st.default.createElement("label",{htmlFor:"password-input"},n("pages.updatePassword.fields.password","New Password")),st.default.createElement("input",{id:"password-input",name:"password",type:"password",required:!0,size:20,value:u,onChange:g=>p(g.target.value)}),st.default.createElement("label",{htmlFor:"confirm-password-input"},n("pages.updatePassword.fields.confirmPassword","Confirm New Password")),st.default.createElement("input",{id:"confirm-password-input",name:"confirmPassword",type:"password",required:!0,size:20,value:l,onChange:g=>T(g.target.value)}),st.default.createElement("input",{type:"submit",disabled:m,value:n("pages.updatePassword.buttons.submit","Update")}))));return st.default.createElement("div",{...e},r?r(f,a):f)},qc=e=>{let{type:t}=e;return Nr.default.createElement(Nr.default.Fragment,null,(()=>{switch(t){case"register":return Nr.default.createElement(Ic,{...e});case"forgotPassword":return Nr.default.createElement(Nc,{...e});case"updatePassword":return Nr.default.createElement(Uc,{...e});default:return Nr.default.createElement(Mc,{...e})}})())},tt=Q(d("react")),Es=()=>tt.default.createElement(tt.default.Fragment,null,tt.default.createElement("h1",null,"Welcome on board"),tt.default.createElement("p",null,"Your configuration is completed."),tt.default.createElement("p",null,"Now you can get started by adding your resources to the"," ",tt.default.createElement("code",null,"`resources`")," property of ",tt.default.createElement("code",null,"`<Refine>`")),tt.default.createElement("div",{style:{display:"flex",gap:8}},tt.default.createElement("a",{href:"https://refine.dev",target:"_blank",rel:"noreferrer"},tt.default.createElement("button",null,"Documentation")),tt.default.createElement("a",{href:"https://refine.dev/examples",target:"_blank",rel:"noreferrer"},tt.default.createElement("button",null,"Examples")),tt.default.createElement("a",{href:"https://discord.gg/refine",target:"_blank",rel:"noreferrer"},tt.default.createElement("button",null,"Community")))),ae=Q(d("react")),Oc=[{title:"Documentation",description:"Learn about the technical details of using refine in your projects.",link:"https://refine.dev/",icon:ae.default.createElement("svg",{width:"14",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},ae.default.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:ae.default.createElement("svg",{width:"16",height:"14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},ae.default.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"}),ae.default.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:ae.default.createElement("svg",{width:"16",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},ae.default.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"}),ae.default.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:ae.default.createElement("svg",{width:"16",height:"12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},ae.default.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"}))}],Vc=()=>{let e=ai("(max-width: 1010px)"),t=ai("(max-width: 650px)"),r=()=>t?"1, 280px":e?"2, 280px":"4, 208px",o=()=>t?"32px":e?"40px":"48px",a=()=>t?"16px":e?"20px":"24px";return ae.default.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"}},ae.default.createElement("div",{style:{height:"89px"}}),ae.default.createElement("div",{style:{display:"flex",justifyContent:"center"}},ae.default.createElement("img",{src:"https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/welcome-logo.webp",width:"198",height:"54"})),ae.default.createElement("div",{style:{height:e?"270px":"22vw",minHeight:e?"270px":"313px"}}),ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px",textAlign:"center"}},ae.default.createElement("h1",{style:{fontSize:o(),fontWeight:700,margin:"0px"}},"Welcome Aboard!"),ae.default.createElement("h4",{style:{fontSize:a(),fontWeight:400,margin:"0px"}},"Your configuration is completed.")),ae.default.createElement("div",{style:{height:"64px"}}),ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:`repeat(${r()})`,justifyContent:"center",gap:"48px",paddingRight:"16px",paddingLeft:"16px",maxWidth:"976px",margin:"auto"}},Oc.map(n=>ae.default.createElement(Hc,{key:`welcome-page-${n.title}`,card:n}))),ae.default.createElement("div",{style:{height:"64px"}}))},Hc=({card:e})=>{let{title:t,description:r,icon:o,link:a}=e,[n,i]=(0,ae.useState)(!1);return ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},ae.default.createElement("div",{style:{display:"flex",alignItems:"center"}},ae.default.createElement("a",{onPointerEnter:()=>i(!0),onPointerLeave:()=>i(!1),style:{display:"flex",alignItems:"center",color:"#fff",textDecoration:"none"},href:a},o,ae.default.createElement("span",{style:{fontSize:"16px",fontWeight:700,marginLeft:"13px",marginRight:"14px"}},t),ae.default.createElement("svg",{style:{transition:"transform 0.5s ease-in-out, opacity 0.2s ease-in-out",...n&&{transform:"translateX(4px)",opacity:1}},width:"12",height:"8",fill:"none",opacity:"0.5",xmlns:"http://www.w3.org/2000/svg"},ae.default.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"})))),ae.default.createElement("span",{style:{fontSize:"12px",opacity:.5,lineHeight:"16px"}},r))},Qa=d("@tanstack/react-query"),$c=d("@tanstack/react-query-devtools"),ge=Q(d("react")),Qc=d("react"),Tr=d("react"),zc="4.27.0",Wc=()=>{let e=Ui(),t=(0,Tr.useContext)(Jo),r=(0,Tr.useContext)(Eo),o=(0,Tr.useContext)(pn),a=(0,Tr.useContext)(un),{i18nProvider:n}=(0,Tr.useContext)(Cr),i=(0,Tr.useContext)(dn),s=(0,Tr.useContext)(Fo),{resources:m}=ne(),u=!!t.create||!!t.get||!!t.update,p=!!(r!=null&&r.publish)||!!(r!=null&&r.subscribe)||!!(r!=null&&r.unsubscribe),l=!!o.useHistory||!!o.Link||!!o.Prompt||!!o.useLocation||!!o.useParams,T=!!a,f=!!(n!=null&&n.changeLocale)||!!(n!=null&&n.getLocale)||!!(n!=null&&n.translate),g=!!i.close||!!i.open,c=!!s.can;return{providers:{auth:e,auditLog:u,live:p,router:l,data:T,i18n:f,notification:g,accessControl:c},version:zc,resourceCount:m.length}},jc=e=>{let t=JSON.stringify(e||{});return typeof btoa<"u"?btoa(t):Buffer.from(t).toString("base64")},Kc=()=>{let e=Wc();return(0,Qc.useEffect)(()=>{if(typeof window>"u"&&!Image)return;let t=new Image;t.src=`https://telemetry.refine.dev/telemetry?payload=${jc(e)}`},[]),null},Gc=Q(d("warn-once")),_c=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},wi=Q(d("react")),Yc=e=>{let t=wi.default.useRef(!1);wi.default.useEffect(()=>{t.current===!1&&e&&_c(e)&&(t.current=!0)},[e])},Zc=({legacyAuthProvider:e,authProvider:t,dataProvider:r,legacyRouterProvider:o,routerProvider:a,notificationProvider:n,accessControlProvider:i,auditLogProvider:s,resources:m,DashboardPage:u,ReadyPage:p,LoginPage:l,catchAll:T,children:f,liveProvider:g,i18nProvider:c,Title:v,Layout:b,Sider:h,Header:S,Footer:y,OffLayoutArea:P,onLiveEvent:E,options:C})=>{var M;let{optionsWithDefaults:x,disableTelemetryWithDefault:w,reactQueryWithDefaults:k}=Xu({options:C}),D=ss(()=>{var F;return k.clientConfig instanceof Qa.QueryClient?k.clientConfig:new Qa.QueryClient({...k.clientConfig,defaultOptions:{...k.clientConfig.defaultOptions,queries:{refetchOnWindowFocus:!1,keepPreviousData:!0,...(F=k.clientConfig.defaultOptions)==null?void 0:F.queries}}})},[k.clientConfig]),A=ge.default.useMemo(()=>typeof n=="function"?n:()=>n??{},[n])();if(Yc(a),o&&!a&&(m??[]).length===0)return p?ge.default.createElement(p,null):ge.default.createElement(Es,null);let{RouterComponent:L=ge.default.Fragment}=a?{}:o??{};return typeof window<"u"&&((M=window==null?void 0:window.location)==null?void 0:M.hostname)==="localhost"&&(0,Gc.default)(!0,`%c
|
11
|
+
For more information, see https://refine.dev/docs/api-reference/core/hooks/useBreadcrumb/#i18n-support`),u.push({label:a(`buttons.${s}`,m.humanize(s))})):u.push({label:a(l,m.humanize(s))})}return{breadcrumbs:u}},$a=Q(d("react")),Go=(e,t,r=!1)=>{let o=[],a=er(e,t);for(;a;)o.push(a),a=er(a,t);return o.reverse(),`/${[...o,e].map(n=>Qt((r?n.route:void 0)??n.identifier??n.name)).join("/").replace(/^\//,"")}`},Bc=(e,t=!1)=>{let r={item:{name:"__root__"},children:{}};e.forEach(a=>{let n=[],i=er(a,e);for(;i;)n.push(i),i=er(i,e);n.reverse();let s=r;n.forEach(u=>{let p=(t?u.route:void 0)??u.identifier??u.name;s.children[p]||(s.children[p]={item:u,children:{}}),s=s.children[p]});let m=(t?a.route:void 0)??a.identifier??a.name;s.children[m]||(s.children[m]={item:a,children:{}})});let o=a=>{let n=[];return Object.keys(a.children).forEach(i=>{let s=Go(a.children[i].item,e,t),m={...a.children[i].item,key:s,children:o(a.children[i])};n.push(m)}),n};return o(r)},Li=e=>e.split("?")[0].split("#")[0].replace(/(.+)(\/$)/,"$1"),Rc=({meta:e,hideOnMissingParameter:t}={hideOnMissingParameter:!0})=>{let r=he(),o=cn(),a=Oe(),{resource:n,resources:i}=ne(),{pathname:s}=Rt(),{useLocation:m}=pt(),{pathname:u}=m(),p=an(),l=`/${((a==="legacy"?Li(u):s?Li(s):void 0)??"").replace(/^\//,"")}`,T=n?Go(n,i,a==="legacy"):l??"",f=$a.default.useMemo(()=>{if(!n)return[];let v=er(n,i),b=[Go(n,i)];for(;v;)b.push(Go(v,i)),v=er(v,i);return b},[]),g=$a.default.useCallback(v=>{var b,h,S,y,P,E;if((((b=v==null?void 0:v.meta)==null?void 0:b.hide)??((h=v==null?void 0:v.options)==null?void 0:h.hide))||!(v!=null&&v.list)&&v.children.length===0)return;let C=v.list?o({resource:v,action:"list",legacy:a==="legacy",meta:e}):void 0;if(!(t&&C&&C.match(/(\/|^):(.+?)(\/|$){1}/)))return{...v,route:C,icon:$((S=v.meta)==null?void 0:S.icon,(y=v.options)==null?void 0:y.icon,v.icon),label:$((P=v==null?void 0:v.meta)==null?void 0:P.label,(E=v==null?void 0:v.options)==null?void 0:E.label)??r(`${v.name}.${v.name}`,p(v.name,"plural"))}},[a,e,r,t]),c=$a.default.useMemo(()=>{let v=Bc(i,a==="legacy"),b=h=>h.flatMap(S=>{let y=b(S.children),P=g({...S,children:y});return P?[P]:[]});return b(v)},[i,a,g]);return{defaultOpenKeys:f,selectedKey:T,menuItems:c}},Re=()=>{let{params:e}=Rt();return({resource:t,meta:r}={})=>{let{meta:o}=mn(t)??{meta:{}},{filters:a,sorters:n,current:i,pageSize:s,...m}=e??{};return{...o,...m,...r}}},Ac=()=>{let[e,t]=(0,hr.useState)(),r=he(),{push:o}=xt(),a=Pt(),n=Oe(),{resource:i,action:s}=ne();return(0,hr.useEffect)(()=>{i&&s&&t(r("pages.error.info",{action:s,resource:i.name},`You may have forgotten to add the "${s}" component to "${i.name}" resource.`))},[i,s]),hr.default.createElement(hr.default.Fragment,null,hr.default.createElement("h1",null,r("pages.error.404",void 0,"Sorry, the page you visited does not exist.")),e&&hr.default.createElement("p",null,e),hr.default.createElement("button",{onClick:()=>{n==="legacy"?o("/"):a({to:"/"})}},r("pages.error.backHome",void 0,"Back Home")))},Ue=Q(d("react")),Cs=()=>{let[e,t]=(0,Ue.useState)(""),[r,o]=(0,Ue.useState)(""),a=he(),n=qe(),{mutate:i}=Xa({v3LegacyAuthProviderCompatible:!!(n!=null&&n.isLegacy)});return Ue.default.createElement(Ue.default.Fragment,null,Ue.default.createElement("h1",null,a("pages.login.title","Sign in your account")),Ue.default.createElement("form",{onSubmit:s=>{s.preventDefault(),i({username:e,password:r})}},Ue.default.createElement("table",null,Ue.default.createElement("tbody",null,Ue.default.createElement("tr",null,Ue.default.createElement("td",null,a("pages.login.username",void 0,"username"),":"),Ue.default.createElement("td",null,Ue.default.createElement("input",{type:"text",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",autoFocus:!0,required:!0,value:e,onChange:s=>t(s.target.value)}))),Ue.default.createElement("tr",null,Ue.default.createElement("td",null,a("pages.login.password",void 0,"password"),":"),Ue.default.createElement("td",null,Ue.default.createElement("input",{type:"password",required:!0,size:20,value:r,onChange:s=>o(s.target.value)}))))),Ue.default.createElement("br",null),Ue.default.createElement("input",{type:"submit",value:"login"})))},Nr=Q(d("react")),ve=Q(d("react")),Mc=({providers:e,registerLink:t,forgotPasswordLink:r,rememberMe:o,contentProps:a,wrapperProps:n,renderContent:i,formProps:s,title:m=void 0})=>{let u=Oe(),p=Xo(),{Link:l}=pt(),T=u==="legacy"?l:p,[f,g]=(0,ve.useState)(""),[c,v]=(0,ve.useState)(""),[b,h]=(0,ve.useState)(!1),S=he(),y=qe(),{mutate:P}=Xa({v3LegacyAuthProviderCompatible:!!(y!=null&&y.isLegacy)}),E=(x,w)=>ve.default.createElement(T,{to:x},w),C=()=>e?e.map(x=>ve.default.createElement("div",{key:x.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},ve.default.createElement("button",{onClick:()=>P({providerName:x.name}),style:{display:"flex",alignItems:"center"}},x==null?void 0:x.icon,x.label??ve.default.createElement("label",null,x.label)))):null,M=ve.default.createElement("div",{...a},ve.default.createElement("h1",{style:{textAlign:"center"}},S("pages.login.title","Sign in to your account")),C(),ve.default.createElement("hr",null),ve.default.createElement("form",{onSubmit:x=>{x.preventDefault(),P({email:f,password:c,remember:b})},...s},ve.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},ve.default.createElement("label",{htmlFor:"email-input"},S("pages.login.fields.email","Email")),ve.default.createElement("input",{id:"email-input",name:"email",type:"text",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:f,onChange:x=>g(x.target.value)}),ve.default.createElement("label",{htmlFor:"password-input"},S("pages.login.fields.password","Password")),ve.default.createElement("input",{id:"password-input",type:"password",name:"password",required:!0,size:20,value:c,onChange:x=>v(x.target.value)}),o??ve.default.createElement(ve.default.Fragment,null,ve.default.createElement("label",{htmlFor:"remember-me-input"},S("pages.login.buttons.rememberMe","Remember me"),ve.default.createElement("input",{id:"remember-me-input",name:"remember",type:"checkbox",size:20,checked:b,value:b.toString(),onChange:()=>{h(!b)}}))),ve.default.createElement("br",null),r??E("/forgot-password",S("pages.login.buttons.forgotPassword","Forgot password?")),ve.default.createElement("input",{type:"submit",value:S("pages.login.signin","Sign in")}),t??ve.default.createElement("span",null,S("pages.login.buttons.noAccount","Don\u2019t have an account?")," ",E("/register",S("pages.login.register","Sign up"))))));return ve.default.createElement("div",{...n},i?i(M,m):M)},we=Q(d("react")),Ic=({providers:e,loginLink:t,wrapperProps:r,contentProps:o,renderContent:a,formProps:n,title:i=void 0})=>{let s=Oe(),m=Xo(),{Link:u}=pt(),p=s==="legacy"?u:m,[l,T]=(0,we.useState)(""),[f,g]=(0,we.useState)(""),c=he(),v=qe(),{mutate:b,isLoading:h}=Mi({v3LegacyAuthProviderCompatible:!!(v!=null&&v.isLegacy)}),S=(E,C)=>we.default.createElement(p,{to:E},C),y=()=>e?e.map(E=>we.default.createElement("div",{key:E.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},we.default.createElement("button",{onClick:()=>b({providerName:E.name}),style:{display:"flex",alignItems:"center"}},E==null?void 0:E.icon,E.label??we.default.createElement("label",null,E.label)))):null,P=we.default.createElement("div",{...o},we.default.createElement("h1",{style:{textAlign:"center"}},c("pages.register.title","Sign up for your account")),y(),we.default.createElement("hr",null),we.default.createElement("form",{onSubmit:E=>{E.preventDefault(),b({email:l,password:f})},...n},we.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},we.default.createElement("label",{htmlFor:"email-input"},c("pages.register.fields.email","Email")),we.default.createElement("input",{id:"email-input",name:"email",type:"email",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:l,onChange:E=>T(E.target.value)}),we.default.createElement("label",{htmlFor:"password-input"},c("pages.register.fields.password","Password")),we.default.createElement("input",{id:"password-input",name:"password",type:"password",required:!0,size:20,value:f,onChange:E=>g(E.target.value)}),we.default.createElement("input",{type:"submit",value:c("pages.register.buttons.submit","Sign up"),disabled:h}),t??we.default.createElement(we.default.Fragment,null,we.default.createElement("span",null,c("pages.login.buttons.haveAccount","Have an account?")," ",S("/login",c("pages.login.signin","Sign in")))))));return we.default.createElement("div",{...r},a?a(P,i):P)},it=Q(d("react")),Nc=({loginLink:e,wrapperProps:t,contentProps:r,renderContent:o,formProps:a,title:n=void 0})=>{let i=he(),s=Oe(),m=Xo(),{Link:u}=pt(),p=s==="legacy"?u:m,[l,T]=(0,it.useState)(""),{mutate:f,isLoading:g}=Ii(),c=(b,h)=>it.default.createElement(p,{to:b},h),v=it.default.createElement("div",{...r},it.default.createElement("h1",{style:{textAlign:"center"}},i("pages.forgotPassword.title","Forgot your password?")),it.default.createElement("hr",null),it.default.createElement("form",{onSubmit:b=>{b.preventDefault(),f({email:l})},...a},it.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},it.default.createElement("label",{htmlFor:"email-input"},i("pages.forgotPassword.fields.email","Email")),it.default.createElement("input",{id:"email-input",name:"email",type:"mail",autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:l,onChange:b=>T(b.target.value)}),it.default.createElement("input",{type:"submit",disabled:g,value:i("pages.forgotPassword.buttons.submit","Send reset instructions")}),it.default.createElement("br",null),e??it.default.createElement("span",null,i("pages.register.buttons.haveAccount","Have an account? ")," ",c("/login",i("pages.login.signin","Sign in"))))));return it.default.createElement("div",{...t},o?o(v,n):v)},st=Q(d("react")),Uc=({wrapperProps:e,contentProps:t,renderContent:r,formProps:o,title:a=void 0})=>{let n=he(),i=qe(),{mutate:s,isLoading:m}=Ni({v3LegacyAuthProviderCompatible:!!(i!=null&&i.isLegacy)}),[u,p]=(0,st.useState)(""),[l,T]=(0,st.useState)(""),f=st.default.createElement("div",{...t},st.default.createElement("h1",{style:{textAlign:"center"}},n("pages.updatePassword.title","Update Password")),st.default.createElement("hr",null),st.default.createElement("form",{onSubmit:g=>{g.preventDefault(),s({password:u,confirmPassword:l})},...o},st.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},st.default.createElement("label",{htmlFor:"password-input"},n("pages.updatePassword.fields.password","New Password")),st.default.createElement("input",{id:"password-input",name:"password",type:"password",required:!0,size:20,value:u,onChange:g=>p(g.target.value)}),st.default.createElement("label",{htmlFor:"confirm-password-input"},n("pages.updatePassword.fields.confirmPassword","Confirm New Password")),st.default.createElement("input",{id:"confirm-password-input",name:"confirmPassword",type:"password",required:!0,size:20,value:l,onChange:g=>T(g.target.value)}),st.default.createElement("input",{type:"submit",disabled:m,value:n("pages.updatePassword.buttons.submit","Update")}))));return st.default.createElement("div",{...e},r?r(f,a):f)},qc=e=>{let{type:t}=e;return Nr.default.createElement(Nr.default.Fragment,null,(()=>{switch(t){case"register":return Nr.default.createElement(Ic,{...e});case"forgotPassword":return Nr.default.createElement(Nc,{...e});case"updatePassword":return Nr.default.createElement(Uc,{...e});default:return Nr.default.createElement(Mc,{...e})}})())},tt=Q(d("react")),Es=()=>tt.default.createElement(tt.default.Fragment,null,tt.default.createElement("h1",null,"Welcome on board"),tt.default.createElement("p",null,"Your configuration is completed."),tt.default.createElement("p",null,"Now you can get started by adding your resources to the"," ",tt.default.createElement("code",null,"`resources`")," property of ",tt.default.createElement("code",null,"`<Refine>`")),tt.default.createElement("div",{style:{display:"flex",gap:8}},tt.default.createElement("a",{href:"https://refine.dev",target:"_blank",rel:"noreferrer"},tt.default.createElement("button",null,"Documentation")),tt.default.createElement("a",{href:"https://refine.dev/examples",target:"_blank",rel:"noreferrer"},tt.default.createElement("button",null,"Examples")),tt.default.createElement("a",{href:"https://discord.gg/refine",target:"_blank",rel:"noreferrer"},tt.default.createElement("button",null,"Community")))),ae=Q(d("react")),Oc=[{title:"Documentation",description:"Learn about the technical details of using refine in your projects.",link:"https://refine.dev/",icon:ae.default.createElement("svg",{width:"14",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},ae.default.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:ae.default.createElement("svg",{width:"16",height:"14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},ae.default.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"}),ae.default.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:ae.default.createElement("svg",{width:"16",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},ae.default.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"}),ae.default.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:ae.default.createElement("svg",{width:"16",height:"12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},ae.default.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"}))}],Vc=()=>{let e=ai("(max-width: 1010px)"),t=ai("(max-width: 650px)"),r=()=>t?"1, 280px":e?"2, 280px":"4, 208px",o=()=>t?"32px":e?"40px":"48px",a=()=>t?"16px":e?"20px":"24px";return ae.default.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"}},ae.default.createElement("div",{style:{height:"89px"}}),ae.default.createElement("div",{style:{display:"flex",justifyContent:"center"}},ae.default.createElement("img",{src:"https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/welcome-logo.webp",width:"198",height:"54"})),ae.default.createElement("div",{style:{height:e?"270px":"22vw",minHeight:e?"270px":"313px"}}),ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px",textAlign:"center"}},ae.default.createElement("h1",{style:{fontSize:o(),fontWeight:700,margin:"0px"}},"Welcome Aboard!"),ae.default.createElement("h4",{style:{fontSize:a(),fontWeight:400,margin:"0px"}},"Your configuration is completed.")),ae.default.createElement("div",{style:{height:"64px"}}),ae.default.createElement("div",{style:{display:"grid",gridTemplateColumns:`repeat(${r()})`,justifyContent:"center",gap:"48px",paddingRight:"16px",paddingLeft:"16px",maxWidth:"976px",margin:"auto"}},Oc.map(n=>ae.default.createElement(Hc,{key:`welcome-page-${n.title}`,card:n}))),ae.default.createElement("div",{style:{height:"64px"}}))},Hc=({card:e})=>{let{title:t,description:r,icon:o,link:a}=e,[n,i]=(0,ae.useState)(!1);return ae.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},ae.default.createElement("div",{style:{display:"flex",alignItems:"center"}},ae.default.createElement("a",{onPointerEnter:()=>i(!0),onPointerLeave:()=>i(!1),style:{display:"flex",alignItems:"center",color:"#fff",textDecoration:"none"},href:a},o,ae.default.createElement("span",{style:{fontSize:"16px",fontWeight:700,marginLeft:"13px",marginRight:"14px"}},t),ae.default.createElement("svg",{style:{transition:"transform 0.5s ease-in-out, opacity 0.2s ease-in-out",...n&&{transform:"translateX(4px)",opacity:1}},width:"12",height:"8",fill:"none",opacity:"0.5",xmlns:"http://www.w3.org/2000/svg"},ae.default.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"})))),ae.default.createElement("span",{style:{fontSize:"12px",opacity:.5,lineHeight:"16px"}},r))},Qa=d("@tanstack/react-query"),$c=d("@tanstack/react-query-devtools"),ge=Q(d("react")),Qc=d("react"),Tr=d("react"),zc="4.28.0",Wc=()=>{let e=Ui(),t=(0,Tr.useContext)(Jo),r=(0,Tr.useContext)(Eo),o=(0,Tr.useContext)(pn),a=(0,Tr.useContext)(un),{i18nProvider:n}=(0,Tr.useContext)(Cr),i=(0,Tr.useContext)(dn),s=(0,Tr.useContext)(Fo),{resources:m}=ne(),u=!!t.create||!!t.get||!!t.update,p=!!(r!=null&&r.publish)||!!(r!=null&&r.subscribe)||!!(r!=null&&r.unsubscribe),l=!!o.useHistory||!!o.Link||!!o.Prompt||!!o.useLocation||!!o.useParams,T=!!a,f=!!(n!=null&&n.changeLocale)||!!(n!=null&&n.getLocale)||!!(n!=null&&n.translate),g=!!i.close||!!i.open,c=!!s.can;return{providers:{auth:e,auditLog:u,live:p,router:l,data:T,i18n:f,notification:g,accessControl:c},version:zc,resourceCount:m.length}},jc=e=>{let t=JSON.stringify(e||{});return typeof btoa<"u"?btoa(t):Buffer.from(t).toString("base64")},Kc=()=>{let e=Wc();return(0,Qc.useEffect)(()=>{if(typeof window>"u"&&!Image)return;let t=new Image;t.src=`https://telemetry.refine.dev/telemetry?payload=${jc(e)}`},[]),null},Gc=Q(d("warn-once")),_c=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},wi=Q(d("react")),Yc=e=>{let t=wi.default.useRef(!1);wi.default.useEffect(()=>{t.current===!1&&e&&_c(e)&&(t.current=!0)},[e])},Zc=({legacyAuthProvider:e,authProvider:t,dataProvider:r,legacyRouterProvider:o,routerProvider:a,notificationProvider:n,accessControlProvider:i,auditLogProvider:s,resources:m,DashboardPage:u,ReadyPage:p,LoginPage:l,catchAll:T,children:f,liveProvider:g,i18nProvider:c,Title:v,Layout:b,Sider:h,Header:S,Footer:y,OffLayoutArea:P,onLiveEvent:E,options:C})=>{var M;let{optionsWithDefaults:x,disableTelemetryWithDefault:w,reactQueryWithDefaults:k}=Xu({options:C}),D=ss(()=>{var F;return k.clientConfig instanceof Qa.QueryClient?k.clientConfig:new Qa.QueryClient({...k.clientConfig,defaultOptions:{...k.clientConfig.defaultOptions,queries:{refetchOnWindowFocus:!1,keepPreviousData:!0,...(F=k.clientConfig.defaultOptions)==null?void 0:F.queries}}})},[k.clientConfig]),A=ge.default.useMemo(()=>typeof n=="function"?n:()=>n??{},[n])();if(Yc(a),o&&!a&&(m??[]).length===0)return p?ge.default.createElement(p,null):ge.default.createElement(Es,null);let{RouterComponent:L=ge.default.Fragment}=a?{}:o??{};return typeof window<"u"&&((M=window==null?void 0:window.location)==null?void 0:M.hostname)==="localhost"&&(0,Gc.default)(!0,`%c
|
12
12
|
\u2705 Zero-trust security model
|
13
13
|
\u2705 User/role management
|
14
14
|
\u2705 Granular access control
|