@refinedev/antd 5.14.0 → 5.16.1

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,141 @@
1
1
  # @pankod/refine-antd
2
2
 
3
+ ## 5.16.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#4295](https://github.com/refinedev/refine/pull/4295) [`7f24a6a2b14`](https://github.com/refinedev/refine/commit/7f24a6a2b14f1e10a2483298b13cc143861fb08f) Thanks [@salihozdemir](https://github.com/salihozdemir)! - chore: bump to latest version of `@refinedev/ui-types`
8
+
9
+ ## 5.16.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#4272](https://github.com/refinedev/refine/pull/4272) [`420d2442741`](https://github.com/refinedev/refine/commit/420d2442741d211561dd48c72bcb143ee5f44e9e) Thanks [@salihozdemir](https://github.com/salihozdemir)! - feat: added the `fixed` prop to the `<ThemedSiderV2/>` to allow the sider to be fixed
14
+
15
+ The prop is optional and defaults to `false`. You can see the usage as follows:
16
+
17
+ ```tsx
18
+ import { Refine } from "@refinedev/core";
19
+ import { ThemedLayoutV2, ThemedSiderV2 } from "@refinedev/antd";
20
+
21
+ const App: React.FC = () => {
22
+ return (
23
+ <Refine
24
+ ...
25
+ >
26
+ <ThemedLayoutV2 Sider={() => <ThemedSiderV2 fixed />}>
27
+ {/* ... */}
28
+ </ThemedLayoutV2>
29
+ </Refine>
30
+ );
31
+ };
32
+ ```
33
+
34
+ - [#4278](https://github.com/refinedev/refine/pull/4278) [`b14f2ad8a70`](https://github.com/refinedev/refine/commit/b14f2ad8a700d5ae157f437a8f610481d88ae09b) Thanks [@alicanerdurmaz](https://github.com/alicanerdurmaz)! - feat: added `autoSubmitClose` prop to `useEditableTable`.
35
+ Now you can choose whether to close the table's row after submitting the form or not.
36
+
37
+ ```tsx
38
+ const editableTable = useEditableTable({
39
+ autoSubmitClose: false,
40
+ });
41
+ ```
42
+
43
+ ### Patch Changes
44
+
45
+ - [#4267](https://github.com/refinedev/refine/pull/4267) [`5e128c76c16`](https://github.com/refinedev/refine/commit/5e128c76c162cb01822c283e567003a5b6ce62f8) Thanks [@yildirayunlu](https://github.com/yildirayunlu)! - fix: `onFinish` prop override on `useDrawerForm` and `useModalForm` hook
46
+
47
+ When override `onFinish` prop using the `useDrawerForm` and `useModalForm` hooks, the modal not close after submit the form.
48
+
49
+ - [#4277](https://github.com/refinedev/refine/pull/4277) [`7172c1b42d2`](https://github.com/refinedev/refine/commit/7172c1b42d26ade22780527892ce26ceef15c838) Thanks [@salihozdemir](https://github.com/salihozdemir)! - fix: renamed the `<ThemedHeaderV2/>` prop `isSticky` to `sticky`
50
+
51
+ To provide backwards compatibility, the old prop name is still supported, but it is deprecated and will be removed in the next major version.
52
+
53
+ Example:
54
+
55
+ ```tsx
56
+ import { Refine } from "@refinedev/core";
57
+ import { ThemedLayoutV2, ThemedHeaderV2 } from "@refinedev/antd"; // or @refinedev/chakra-ui, @refinedev/mui, @refinedev/mantine
58
+
59
+ const App: React.FC = () => {
60
+ return (
61
+ <Refine
62
+ ...
63
+ >
64
+ <ThemedLayoutV2
65
+ Header={() => <ThemedHeaderV2 sticky />}
66
+ >
67
+ {/* ... */}
68
+ </ThemedLayoutV2>
69
+ </Refine>
70
+ );
71
+ };
72
+ ```
73
+
74
+ ## 5.15.0
75
+
76
+ ### Minor Changes
77
+
78
+ - [#4272](https://github.com/refinedev/refine/pull/4272) [`420d2442741`](https://github.com/refinedev/refine/commit/420d2442741d211561dd48c72bcb143ee5f44e9e) Thanks [@salihozdemir](https://github.com/salihozdemir)! - feat: added the `fixed` prop to the `<ThemedSiderV2/>` to allow the sider to be fixed
79
+
80
+ The prop is optional and defaults to `false`. You can see the usage as follows:
81
+
82
+ ```tsx
83
+ import { Refine } from "@refinedev/core";
84
+ import { ThemedLayoutV2, ThemedSiderV2 } from "@refinedev/antd";
85
+
86
+ const App: React.FC = () => {
87
+ return (
88
+ <Refine
89
+ ...
90
+ >
91
+ <ThemedLayoutV2 Sider={() => <ThemedSiderV2 fixed />}>
92
+ {/* ... */}
93
+ </ThemedLayoutV2>
94
+ </Refine>
95
+ );
96
+ };
97
+ ```
98
+
99
+ - [#4278](https://github.com/refinedev/refine/pull/4278) [`b14f2ad8a70`](https://github.com/refinedev/refine/commit/b14f2ad8a700d5ae157f437a8f610481d88ae09b) Thanks [@alicanerdurmaz](https://github.com/alicanerdurmaz)! - feat: added `autoSubmitClose` prop to `useEditableTable`.
100
+ Now you can choose whether to close the table's row after submitting the form or not.
101
+
102
+ ```tsx
103
+ const editableTable = useEditableTable({
104
+ autoSubmitClose: false,
105
+ });
106
+ ```
107
+
108
+ ### Patch Changes
109
+
110
+ - [#4267](https://github.com/refinedev/refine/pull/4267) [`5e128c76c16`](https://github.com/refinedev/refine/commit/5e128c76c162cb01822c283e567003a5b6ce62f8) Thanks [@yildirayunlu](https://github.com/yildirayunlu)! - fix: `onFinish` prop override on `useDrawerForm` and `useModalForm` hook
111
+
112
+ When override `onFinish` prop using the `useDrawerForm` and `useModalForm` hooks, the modal not close after submit the form.
113
+
114
+ - [#4277](https://github.com/refinedev/refine/pull/4277) [`7172c1b42d2`](https://github.com/refinedev/refine/commit/7172c1b42d26ade22780527892ce26ceef15c838) Thanks [@salihozdemir](https://github.com/salihozdemir)! - fix: renamed the `<ThemedHeaderV2/>` prop `isSticky` to `sticky`
115
+
116
+ To provide backwards compatibility, the old prop name is still supported, but it is deprecated and will be removed in the next major version.
117
+
118
+ Example:
119
+
120
+ ```tsx
121
+ import { Refine } from "@refinedev/core";
122
+ import { ThemedLayoutV2, ThemedHeaderV2 } from "@refinedev/antd"; // or @refinedev/chakra-ui, @refinedev/mui, @refinedev/mantine
123
+
124
+ const App: React.FC = () => {
125
+ return (
126
+ <Refine
127
+ ...
128
+ >
129
+ <ThemedLayoutV2
130
+ Header={() => <ThemedHeaderV2 sticky />}
131
+ >
132
+ {/* ... */}
133
+ </ThemedLayoutV2>
134
+ </Refine>
135
+ );
136
+ };
137
+ ```
138
+
3
139
  ## 5.14.0
4
140
 
5
141
  ### Minor Changes
@@ -8,7 +8,7 @@ See https://refine.dev/docs/api-reference/core/hooks/useForm/#resource`);let te=
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`),{queryResult:Ia({resource:E==null?void 0:E.name,id:C!=null?C:"",queryOptions:{enabled:C!==void 0,...m},successNotification:r,errorNotification:o,meta:S,metaData:S,liveMode:n,onLiveEvent:s,dataProviderName:p}),showId:C,setShowId:L}},qo=v("react"),Jd=v("papaparse"),ec=q(v("lodash/chunk")),tc=({resourceName:e,resource:t,mapData:r=f=>f,paparseOptions:o,batchSize:a=Number.MAX_SAFE_INTEGER,onFinish:i,meta:n,metaData:s,onProgress:p,dataProviderName:m}={})=>{let[f,y]=(0,qo.useState)(0),[x,c]=(0,qo.useState)(0),[h,d]=(0,qo.useState)(!1),{resource:l}=de(t!=null?t:e),u=Ii(),b=ja(),g;a===1?g=b:g=u;let C=()=>{c(0),y(0),d(!1)},L=E=>{let T={succeeded:E.filter(S=>S.type==="success"),errored:E.filter(S=>S.type==="error")};i==null||i(T),d(!1)};(0,qo.useEffect)(()=>{p==null||p({totalAmount:x,processedAmount:f})},[x,f]);let P=({file:E})=>(C(),new Promise(T=>{d(!0),(0,Jd.parse)(E,{complete:async({data:S})=>{let F=ki(S,r);if(c(F.length),a===1){let D=F.map(B=>async()=>{var R;return{response:await b.mutateAsync({resource:(R=l==null?void 0:l.name)!=null?R:"",values:B,successNotification:!1,errorNotification:!1,dataProviderName:m,meta:N(n,s),metaData:N(n,s)}),value:B}}),w=await Wn(D,({response:B,value:R})=>(y(O=>O+1),{response:[B.data],type:"success",request:[R]}),(B,R)=>({response:[B],type:"error",request:[F[R]]}));T(w)}else{let D=(0,ec.default)(F,a),w=D.map(R=>async()=>{var O;return{response:await u.mutateAsync({resource:(O=l==null?void 0:l.name)!=null?O:"",values:R,successNotification:!1,errorNotification:!1,dataProviderName:m,meta:N(n,s),metaData:N(n,s)}),value:R,currentBatchLength:R.length}}),B=await Wn(w,({response:R,currentBatchLength:O,value:$})=>(y(U=>U+O),{response:R.data,type:"success",request:$}),(R,O)=>({response:[R],type:"error",request:D[O]}));T(B)}},...o})}).then(T=>(L(T),T)));return{inputProps:{type:"file",accept:".csv",onChange:E=>{E.target.files&&E.target.files.length>0&&P({file:E.target.files[0]})}},mutationResult:g,isLoading:h,handleChange:P}},wa=v("react"),rc=({defaultVisible:e=!1}={})=>{let[t,r]=(0,wa.useState)(e),o=(0,wa.useCallback)(()=>r(!0),[t]),a=(0,wa.useCallback)(()=>r(!1),[t]);return{visible:t,show:o,close:a}},oc=q(v("react")),Za=()=>{let e=Ee(),{resource:t,resources:r}=de(),o=Ye();return oc.default.useCallback(({resource:a,action:i,meta:n})=>{var s;let p=a||t;if(!p)return;let m=(s=nt(p,r,e==="legacy").find(f=>f.action===i))==null?void 0:s.route;return m?ft(m,p==null?void 0:p.meta,o,n):void 0},[r,t,o])},ac=({resource:e,action:t,meta:r,legacy:o})=>Za()({resource:e,action:t,meta:r,legacy:o}),pi=q(v("react")),jo=()=>{let e=(0,pi.useContext)(vo);return e!=null&&e.Link?e.Link:({to:t,...r})=>pi.default.createElement("a",{href:t,...r})},nc=v("react"),ls=q(v("react")),_t={useHistory:()=>!1,useLocation:()=>!1,useParams:()=>({}),Prompt:()=>null,Link:()=>null},ic=ls.default.createContext(_t),Xa=ic,sc=({children:e,useHistory:t,useLocation:r,useParams:o,Prompt:a,Link:i,routes:n})=>ls.default.createElement(Xa.Provider,{value:{useHistory:t!=null?t:_t.useHistory,useLocation:r!=null?r:_t.useLocation,useParams:o!=null?o:_t.useParams,Prompt:a!=null?a:_t.Prompt,Link:i!=null?i:_t.Link,routes:n!=null?n:_t.routes}},e),We=()=>{let e=(0,nc.useContext)(Xa),{useHistory:t,useLocation:r,useParams:o,Prompt:a,Link:i,routes:n}=e!=null?e:_t;return{useHistory:t,useLocation:r,useParams:o,Prompt:a,Link:i,routes:n}},lc=v("@tanstack/react-query"),uc=v("react"),us=q(v("react")),Ko=us.default.createContext({}),dc=({can:e,children:t})=>us.default.createElement(Ko.Provider,{value:{can:e}},t),ds=e=>{let{icon:t,list:r,edit:o,create:a,show:i,clone:n,children:s,meta:p,options:m,...f}=e,{icon:y,...x}=p!=null?p:{},{icon:c,...h}=m!=null?m:{};return{...f,...p?{meta:x}:{},...m?{options:h}:{}}},cs=({action:e,resource:t,params:r,queryOptions:o})=>{let{can:a}=(0,uc.useContext)(Ko),{resource:i,...n}=r!=null?r:{},s=ds(i!=null?i:{}),p=(0,lc.useQuery)(["useCan",{action:e,resource:t,params:{...n,resource:s},enabled:o==null?void 0:o.enabled}],()=>{var m;return(m=a==null?void 0:a({action:e,resource:t,params:n}))!=null?m:Promise.resolve({can:!0})},{enabled:typeof a<"u",...o,retry:!1});return typeof a>"u"?{data:{can:!0}}:p},cc=v("react"),pc=()=>{let{can:e}=(0,cc.useContext)(Ko);return{can:e}},kr=v("react"),mc=q(v("lodash/uniqBy")),fc=q(v("lodash/debounce")),No=q(v("lodash/get")),yc=e=>{var t,r,o;let[a,i]=(0,kr.useState)([]),[n,s]=(0,kr.useState)([]),[p,m]=(0,kr.useState)([]),{resource:f,sort:y,sorters:x,filters:c=[],optionLabel:h="title",optionValue:d="id",debounce:l=300,successNotification:u,errorNotification:b,defaultValueQueryOptions:g,queryOptions:C,fetchSize:L,pagination:P,hasPagination:E=!1,liveMode:T,defaultValue:S=[],onLiveEvent:F,onSearch:D,liveParams:w,meta:B,metaData:R,dataProviderName:O}=e,{resources:$}=de(),U=$e(),M=Te(f,$),A=(t=M==null?void 0:M.name)!=null?t:f,H=U({resource:M,meta:N(B,R)}),V=Array.isArray(S)?S:[S],Q=(0,kr.useCallback)(G=>{m(G.data.map(K=>({label:(0,No.default)(K,h),value:(0,No.default)(K,d)})))},[h,d]),W=g!=null?g:C,I=Qi({resource:A,ids:V,queryOptions:{...W,enabled:V.length>0&&((r=g==null?void 0:g.enabled)!=null?r:!0),onSuccess:G=>{var K;Q(G),(K=W==null?void 0:W.onSuccess)==null||K.call(W,G)}},meta:H,metaData:H,liveMode:"off",dataProviderName:O}),ee=(0,kr.useCallback)(G=>{s(G.data.map(K=>({label:(0,No.default)(K,h),value:(0,No.default)(K,d)})))},[h,d]),j=za({resource:A,sorters:N(x,y),filters:c.concat(a),pagination:{current:P==null?void 0:P.current,pageSize:(o=P==null?void 0:P.pageSize)!=null?o:L,mode:P==null?void 0:P.mode},hasPagination:E,queryOptions:{...C,onSuccess:G=>{var K;ee(G),(K=C==null?void 0:C.onSuccess)==null||K.call(C,G)}},successNotification:u,errorNotification:b,meta:H,metaData:H,liveMode:T,liveParams:w,onLiveEvent:F,dataProviderName:O}),Z=G=>{if(D){i(D(G));return}if(G)i([{field:h,operator:"contains",value:G}]);else{i([]);return}};return{queryResult:j,defaultValueQueryResult:I,options:(0,kr.useMemo)(()=>(0,mc.default)([...n,...p],"value"),[n,p]),onSearch:(0,fc.default)(Z,l)}},gr=q(v("react")),mi=q(v("qs")),Oo=q(v("lodash/differenceWith")),Vo=q(v("lodash/isEqual")),gc=q(v("warn-once")),fi=[],yi=[];function vc({initialCurrent:e,initialPageSize:t,hasPagination:r=!0,pagination:o,initialSorter:a,permanentSorter:i=yi,defaultSetFilterBehavior:n,initialFilter:s,permanentFilter:p=fi,filters:m,sorters:f,syncWithLocation:y,resource:x,successNotification:c,errorNotification:h,queryOptions:d,liveMode:l,onLiveEvent:u,liveParams:b,meta:g,metaData:C,dataProviderName:L}={}){var P,E,T,S,F,D,w,B,R,O;let{syncWithLocation:$}=ns(),U=y!=null?y:$,M=Gi(l),A=Ee(),{useLocation:H}=We(),{search:V,pathname:Q}=H(),W=$e(),I=Ye(),ee=((m==null?void 0:m.mode)||"server")==="server",j=((f==null?void 0:f.mode)||"server")==="server",Z=r===!1?"off":"server",G=((P=o==null?void 0:o.mode)!=null?P:Z)!=="off",K=N(o==null?void 0:o.current,e),te=N(o==null?void 0:o.pageSize,t),le=N(g,C),{parsedCurrent:pe,parsedPageSize:be,parsedSorter:Pe,parsedFilters:Se}=$a(V!=null?V:"?"),He=N(m==null?void 0:m.initial,s),ye=(E=N(m==null?void 0:m.permanent,p))!=null?E:fi,pr=N(f==null?void 0:f.initial,a),pt=(T=N(f==null?void 0:f.permanent,i))!=null?T:yi,Bo=(S=N(m==null?void 0:m.defaultBehavior,n))!=null?S:"merge",Kt,Ce,Ke,Ge;U?(Kt=((F=I==null?void 0:I.params)==null?void 0:F.current)||pe||K||1,Ce=((D=I==null?void 0:I.params)==null?void 0:D.pageSize)||be||te||10,Ke=((w=I==null?void 0:I.params)==null?void 0:w.sorters)||(Pe.length?Pe:pr),Ge=((B=I==null?void 0:I.params)==null?void 0:B.filters)||(Se.length?Se:He)):(Kt=K||1,Ce=te||10,Ke=pr,Ge=He);let{replace:mr}=ht(),Et=vt(),{resource:Bt}=de(x),Gt=W({resource:Bt,meta:le}),Rt=Bt==null?void 0:Bt.name;gr.default.useEffect(()=>{(0,gc.default)(typeof Rt>"u","useTable: `resource` is not defined.")},[Rt]);let[Mt,En]=(0,gr.useState)(Ua(pt,Ke!=null?Ke:[])),[uo,Ro]=(0,gr.useState)(Aa(ye,Ge!=null?Ge:[])),[co,Ln]=(0,gr.useState)(Kt),[fr,Sn]=(0,gr.useState)(Ce),tu=({pagination:{current:we,pageSize:mt},sorter:Mo,filters:Ao})=>{var Uo;if(A==="new")return(Uo=Et({type:"path",options:{keepHash:!0,keepQuery:!0},query:{...G?{current:we,pageSize:mt}:{},sorters:Mo,filters:Ao,...wn()}}))!=null?Uo:"";{let po=mi.default.parse(V==null?void 0:V.substring(1)),Dn=Ra({pagination:{pageSize:mt,current:we},sorters:Mt!=null?Mt:Mo,filters:Ao,...po});return`${Q!=null?Q:""}?${Dn!=null?Dn:""}`}};(0,gr.useEffect)(()=>{V===""&&(Ln(Kt),Sn(Ce),En(Ua(pt,Ke!=null?Ke:[])),Ro(Aa(ye,Ge!=null?Ge:[])))},[V]);let wn=()=>{var we;if(A==="new"){let{sorters:mt,filters:Mo,pageSize:Ao,current:Uo,...po}=(we=I==null?void 0:I.params)!=null?we:{};return po}else{let{sorter:mt,filters:Mo,pageSize:Ao,current:Uo,...po}=mi.default.parse(V,{ignoreQueryPrefix:!0});return po}};(0,gr.useEffect)(()=>{if(U){let we=wn();if(A==="new")Et({type:"replace",options:{keepQuery:!0},query:{...G?{pageSize:fr,current:co}:{},sorters:(0,Oo.default)(Mt,pt,Vo.default),filters:(0,Oo.default)(uo,ye,Vo.default)}});else{let mt=Ra({...G?{pagination:{pageSize:fr,current:co}}:{},sorters:(0,Oo.default)(Mt,pt,Vo.default),filters:(0,Oo.default)(uo,ye,Vo.default),...we});return mr==null?void 0:mr(`${Q}?${mt}`,void 0,{shallow:!0})}}},[U,co,fr,Mt,uo]);let Fn=za({resource:Rt,hasPagination:r,pagination:{current:co,pageSize:fr,mode:o==null?void 0:o.mode},filters:ee?mo(ye,uo):void 0,sorters:j?Ma(pt,Mt):void 0,queryOptions:d,successNotification:c,errorNotification:h,meta:Gt,metaData:Gt,liveMode:M,liveParams:b,onLiveEvent:u,dataProviderName:L}),ru=we=>{Ro(mt=>mo(ye,we,mt))},ou=we=>{Ro(mo(ye,we))},au=we=>{Ro(mt=>mo(ye,we(mt)))},nu=(we,mt=Bo)=>{typeof we=="function"?au(we):mt==="replace"?ou(we):ru(we)},kn=we=>{En(()=>Ma(pt,we))};return{tableQueryResult:Fn,sorters:Mt,setSorters:kn,sorter:Mt,setSorter:kn,filters:uo,setFilters:nu,current:co,setCurrent:Ln,pageSize:fr,setPageSize:Sn,pageCount:fr?Math.ceil(((O=(R=Fn.data)==null?void 0:R.total)!=null?O:0)/fr):1,createLinkForSyncWithLocation:tu}}var gi=v("react"),Fa=v("@tanstack/react-query"),ps=q(v("react")),Go=ps.default.createContext({}),hc=({create:e,get:t,update:r,children:o})=>ps.default.createElement(Go.Provider,{value:{create:e,get:t,update:r}},o),Tr=({logMutationOptions:e,renameMutationOptions:t}={})=>{let r=(0,Fa.useQueryClient)(),o=(0,gi.useContext)(Go),a=Ae(),{resources:i}=(0,gi.useContext)(go),{data:n,refetch:s,isLoading:p}=Ei({v3LegacyAuthProviderCompatible:Boolean(a==null?void 0:a.isLegacy),queryOptions:{enabled:!!o}}),m=(0,Fa.useMutation)(async y=>{var x,c,h,d,l;let u=Te(y.resource,i),b=N((x=u==null?void 0:u.meta)==null?void 0:x.audit,(c=u==null?void 0:u.options)==null?void 0:c.audit,(d=(h=u==null?void 0:u.options)==null?void 0:h.auditLog)==null?void 0:d.permissions);if(b&&!Ou(b,y.action))return;let g;return p&&(g=await s()),await((l=o.create)==null?void 0:l.call(o,{...y,author:n!=null?n:g==null?void 0:g.data}))},e),f=(0,Fa.useMutation)(async y=>{var x;return await((x=o.update)==null?void 0:x.call(o,y))},{onSuccess:y=>{if(y!=null&&y.resource){let x=gt(y==null?void 0:y.resource);r.invalidateQueries(x.logList())}},...t});return{log:m,rename:f}},bc=v("react"),Tc=v("@tanstack/react-query"),xc=({resource:e,action:t,meta:r,author:o,metaData:a,queryOptions:i})=>{let{get:n}=(0,bc.useContext)(Go),s=gt(e,void 0,a);return(0,Tc.useQuery)(s.logList(r),()=>{var p;return(p=n==null?void 0:n({resource:e,action:t,author:o,meta:r,metaData:a}))!=null?p:Promise.resolve([])},{enabled:typeof n<"u",...i,retry:!1})},Pc=v("react"),Cc=v("@tanstack/react-query"),xr=()=>{let{resources:e}=de(),t=(0,Cc.useQueryClient)();return(0,Pc.useCallback)(({resource:r,dataProviderName:o,invalidates:a,id:i})=>{if(a===!1)return;let n=gt(r,J(r,o,e));a.forEach(s=>{switch(s){case"all":t.invalidateQueries(n.all);break;case"list":t.invalidateQueries(n.list());break;case"many":t.invalidateQueries(n.many());break;case"resourceAll":t.invalidateQueries(n.resourceAll);break;case"detail":t.invalidateQueries(n.detail(i||""));break;default:break}})},[])},Ec=v("react"),Lc=q(v("warn-once")),Sc=({meta:e={}}={})=>{let t=Ee(),{i18nProvider:r}=(0,Ec.useContext)(Ur),o=Ye(),a=ge(),{resources:i,resource:n,action:s}=de(),p=[];if(!(n!=null&&n.name))return{breadcrumbs:p};let m=f=>{var y,x,c,h,d,l,u,b;let g=typeof f=="string"?(y=Te(f,i,t==="legacy"))!=null?y:{name:f}:f;if(g){let C=N((x=g==null?void 0:g.meta)==null?void 0:x.parent,g==null?void 0:g.parentName);C&&m(C);let L=nt(g,i,t==="legacy").find(T=>T.action==="list"),P=(c=L==null?void 0:L.resource)!=null&&c.list?L==null?void 0:L.route:void 0,E=P?t==="legacy"?P:ft(P,g==null?void 0:g.meta,o,e):void 0;p.push({label:(l=N((h=g.meta)==null?void 0:h.label,(d=g.options)==null?void 0:d.label))!=null?l:a(`${g.name}.${g.name}`,Ho(g.name)),href:E,icon:N((u=g.meta)==null?void 0:u.icon,(b=g.options)==null?void 0:b.icon,g.icon)})}};if(m(n),s&&s!=="list"){let f=`actions.${s}`,y=a(f);typeof r<"u"&&y===f?((0,Lc.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/core/hooks/useBreadcrumb/#i18n-support`),p.push({label:a(`buttons.${s}`,Ho(s))})):p.push({label:a(f,Ho(s))})}return{breadcrumbs:p}},ka=q(v("react")),Qo=(e,t,r=!1)=>{let o=[],a=Yt(e,t);for(;a;)o.push(a),a=Yt(a,t);return o.reverse(),`/${[...o,e].map(i=>{var n,s;return Nt((s=(n=r?i.route:void 0)!=null?n:i.identifier)!=null?s:i.name)}).join("/").replace(/^\//,"")}`},wc=(e,t=!1)=>{let r={item:{name:"__root__"},children:{}};e.forEach(a=>{var i,n;let s=[],p=Yt(a,e);for(;p;)s.push(p),p=Yt(p,e);s.reverse();let m=r;s.forEach(y=>{var x,c;let h=(c=(x=t?y.route:void 0)!=null?x:y.identifier)!=null?c:y.name;m.children[h]||(m.children[h]={item:y,children:{}}),m=m.children[h]});let f=(n=(i=t?a.route:void 0)!=null?i:a.identifier)!=null?n:a.name;m.children[f]||(m.children[f]={item:a,children:{}})});let o=a=>{let i=[];return Object.keys(a.children).forEach(n=>{let s=Qo(a.children[n].item,e,t),p={...a.children[n].item,key:s,children:o(a.children[n])};i.push(p)}),i};return o(r)},vi=e=>e.split("?")[0].split("#")[0].replace(/(.+)(\/$)/,"$1"),Fc=({meta:e,hideOnMissingParameter:t}={hideOnMissingParameter:!0})=>{let r=ge(),o=Za(),a=Ee(),{resource:i,resources:n}=de(),{pathname:s}=Ye(),{useLocation:p}=We(),{pathname:m}=p(),f=a==="legacy"?vi(m):s?vi(s):void 0,y=`/${(f!=null?f:"").replace(/^\//,"")}`,x=i?Qo(i,n,a==="legacy"):y!=null?y:"",c=ka.default.useMemo(()=>{if(!i)return[];let l=Yt(i,n),u=[Qo(i,n)];for(;l;)u.push(Qo(l,n)),l=Yt(l,n);return u},[]),h=ka.default.useCallback(l=>{var u,b,g,C,L,P,E,T;if(((g=(u=l==null?void 0:l.meta)==null?void 0:u.hide)!=null?g:(b=l==null?void 0:l.options)==null?void 0:b.hide)||!(l!=null&&l.list)&&l.children.length===0)return;let S=l.list?o({resource:l,action:"list",legacy:a==="legacy",meta:e}):void 0;if(!(t&&S&&S.match(/(\/|^):(.+?)(\/|$){1}/)))return{...l,route:S,icon:N((C=l.meta)==null?void 0:C.icon,(L=l.options)==null?void 0:L.icon,l.icon),label:(T=N((P=l==null?void 0:l.meta)==null?void 0:P.label,(E=l==null?void 0:l.options)==null?void 0:E.label))!=null?T:r(`${l.name}.${l.name}`,Qa(l.name,"plural"))}},[a,e,r,t]),d=ka.default.useMemo(()=>{let l=wc(n,a==="legacy"),u=b=>b.flatMap(g=>{let C=u(g.children),L=h({...g,children:C});return L?[L]:[]});return u(l)},[n,a,h]);return{defaultOpenKeys:c,selectedKey:x,menuItems:d}},$e=()=>{let{params:e}=Ye();return({resource:t,meta:r}={})=>{let{meta:o}=ds(t!=null?t:{}),{filters:a,sorters:i,current:n,pageSize:s,...p}=e!=null?e:{};return{...o,...p,...r}}},kc=()=>{let[e,t]=(0,yr.useState)(),r=ge(),{push:o}=ht(),a=vt(),i=Ee(),{resource:n,action:s}=de();return(0,yr.useEffect)(()=>{n&&s&&t(r("pages.error.info",{action:s,resource:n==null?void 0:n.name},`You may have forgotten to add the "${s}" component to "${n==null?void 0:n.name}" resource.`))},[n,s]),yr.default.createElement(yr.default.Fragment,null,yr.default.createElement("h1",null,r("pages.error.404",void 0,"Sorry, the page you visited does not exist.")),e&&yr.default.createElement("p",null,e),yr.default.createElement("button",{onClick:()=>{i==="legacy"?o("/"):a({to:"/"})}},r("pages.error.backHome",void 0,"Back Home")))},Me=q(v("react")),ms=()=>{let[e,t]=(0,Me.useState)(""),[r,o]=(0,Me.useState)(""),a=ge(),i=Ae(),{mutate:n}=Oa({v3LegacyAuthProviderCompatible:Boolean(i==null?void 0:i.isLegacy)});return Me.default.createElement(Me.default.Fragment,null,Me.default.createElement("h1",null,a("pages.login.title","Sign in your account")),Me.default.createElement("form",{onSubmit:s=>{s.preventDefault(),n({username:e,password:r})}},Me.default.createElement("table",null,Me.default.createElement("tbody",null,Me.default.createElement("tr",null,Me.default.createElement("td",null,a("pages.login.username",void 0,"username"),":"),Me.default.createElement("td",null,Me.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)}))),Me.default.createElement("tr",null,Me.default.createElement("td",null,a("pages.login.password",void 0,"password"),":"),Me.default.createElement("td",null,Me.default.createElement("input",{type:"password",required:!0,size:20,value:r,onChange:s=>o(s.target.value)}))))),Me.default.createElement("br",null),Me.default.createElement("input",{type:"submit",value:"login"})))},Dr=q(v("react")),me=q(v("react")),Dc=({providers:e,registerLink:t,forgotPasswordLink:r,rememberMe:o,contentProps:a,wrapperProps:i,renderContent:n,formProps:s,title:p=void 0})=>{let m=Ee(),f=jo(),{Link:y}=We(),x=m==="legacy"?y:f,[c,h]=(0,me.useState)(""),[d,l]=(0,me.useState)(""),[u,b]=(0,me.useState)(!1),g=ge(),C=Ae(),{mutate:L}=Oa({v3LegacyAuthProviderCompatible:Boolean(C==null?void 0:C.isLegacy)}),P=(S,F)=>S?typeof S=="string"?me.default.createElement(x,{to:S},F):S:null,E=()=>e?e.map(S=>{var F;return me.default.createElement("div",{key:S.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},me.default.createElement("button",{onClick:()=>L({providerName:S.name}),style:{display:"flex",alignItems:"center"}},S==null?void 0:S.icon,(F=S.label)!=null?F:me.default.createElement("label",null,S.label)))}):null,T=me.default.createElement("div",{...a},me.default.createElement("h1",{style:{textAlign:"center"}},g("pages.login.title","Sign in to your account")),E(),me.default.createElement("hr",null),me.default.createElement("form",{onSubmit:S=>{S.preventDefault(),L({email:c,password:d,remember:u})},...s},me.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},me.default.createElement("label",null,g("pages.login.fields.email","Email")),me.default.createElement("input",{name:"email",type:"text",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:c,onChange:S=>h(S.target.value)}),me.default.createElement("label",null,g("pages.login.fields.password","Password")),me.default.createElement("input",{type:"password",name:"password",required:!0,size:20,value:d,onChange:S=>l(S.target.value)}),o!=null?o:me.default.createElement(me.default.Fragment,null,me.default.createElement("label",null,g("pages.login.buttons.rememberMe","Remember me"),me.default.createElement("input",{name:"remember",type:"checkbox",size:20,checked:u,value:u.toString(),onChange:()=>{b(!u)}}))),me.default.createElement("br",null),r!=null?r:P("/forgot-password",g("pages.login.buttons.forgotPassword","Forgot password?")),me.default.createElement("input",{type:"submit",value:g("pages.login.signin","Sign in")}),t!=null?t:me.default.createElement("span",null,g("pages.login.buttons.noAccount","Don\u2019t have an account?")," ",P("/register",g("pages.login.register","Sign up"))))));return me.default.createElement("div",{...i},n?n(T,p):T)},Fe=q(v("react")),Bc=({providers:e,loginLink:t,wrapperProps:r,contentProps:o,renderContent:a,formProps:i,title:n=void 0})=>{let s=Ee(),p=jo(),{Link:m}=We(),f=s==="legacy"?m:p,[y,x]=(0,Fe.useState)(""),[c,h]=(0,Fe.useState)(""),d=ge(),l=Ae(),{mutate:u,isLoading:b}=Li({v3LegacyAuthProviderCompatible:Boolean(l==null?void 0:l.isLegacy)}),g=(P,E)=>P?typeof P=="string"?Fe.default.createElement(f,{to:P},E):P:null,C=()=>e?e.map(P=>{var E;return Fe.default.createElement("div",{key:P.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},Fe.default.createElement("button",{onClick:()=>u({providerName:P.name}),style:{display:"flex",alignItems:"center"}},P==null?void 0:P.icon,(E=P.label)!=null?E:Fe.default.createElement("label",null,P.label)))}):null,L=Fe.default.createElement("div",{...o},Fe.default.createElement("h1",{style:{textAlign:"center"}},d("pages.register.title","Sign up for your account")),C(),Fe.default.createElement("hr",null),Fe.default.createElement("form",{onSubmit:P=>{P.preventDefault(),u({email:y,password:c})},...i},Fe.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},Fe.default.createElement("label",null,d("pages.register.fields.email","Email")),Fe.default.createElement("input",{name:"email",type:"email",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:y,onChange:P=>x(P.target.value)}),Fe.default.createElement("label",null,d("pages.register.fields.password","Password")),Fe.default.createElement("input",{name:"password",type:"password",required:!0,size:20,value:c,onChange:P=>h(P.target.value)}),Fe.default.createElement("input",{type:"submit",value:d("pages.register.buttons.submit","Sign up"),disabled:b}),t!=null?t:Fe.default.createElement(Fe.default.Fragment,null,Fe.default.createElement("span",null,d("pages.login.buttons.haveAccount","Have an account?")," ",g("/login",d("pages.login.signin","Sign in")))))));return Fe.default.createElement("div",{...r},a?a(L,n):L)},ot=q(v("react")),Rc=({loginLink:e,wrapperProps:t,contentProps:r,renderContent:o,formProps:a,title:i=void 0})=>{let n=ge(),s=Ee(),p=jo(),{Link:m}=We(),f=s==="legacy"?m:p,[y,x]=(0,ot.useState)(""),{mutate:c,isLoading:h}=Si(),d=(u,b)=>u?typeof u=="string"?ot.default.createElement(f,{to:u},b):u:null,l=ot.default.createElement("div",{...r},ot.default.createElement("h1",{style:{textAlign:"center"}},n("pages.forgotPassword.title","Forgot your password?")),ot.default.createElement("hr",null),ot.default.createElement("form",{onSubmit:u=>{u.preventDefault(),c({email:y})},...a},ot.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},ot.default.createElement("label",null,n("pages.forgotPassword.fields.email","Email")),ot.default.createElement("input",{name:"email",type:"mail",autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:y,onChange:u=>x(u.target.value)}),ot.default.createElement("input",{type:"submit",disabled:h,value:n("pages.forgotPassword.buttons.submit","Send reset instructions")}),ot.default.createElement("br",null),e!=null?e:ot.default.createElement("span",null,n("pages.register.buttons.haveAccount","Have an account? ")," ",d("/login",n("pages.login.signin","Sign in"))))));return ot.default.createElement("div",{...t},o?o(l,i):l)},at=q(v("react")),Mc=({wrapperProps:e,contentProps:t,renderContent:r,formProps:o,title:a=void 0})=>{let i=ge(),n=Ae(),{mutate:s,isLoading:p}=wi({v3LegacyAuthProviderCompatible:Boolean(n==null?void 0:n.isLegacy)}),[m,f]=(0,at.useState)(""),[y,x]=(0,at.useState)(""),c=at.default.createElement("div",{...t},at.default.createElement("h1",{style:{textAlign:"center"}},i("pages.updatePassword.title","Update Password")),at.default.createElement("hr",null),at.default.createElement("form",{onSubmit:h=>{h.preventDefault(),s({password:m,confirmPassword:y})},...o},at.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},at.default.createElement("label",null,i("pages.updatePassword.fields.password","New Password")),at.default.createElement("input",{name:"password",type:"password",required:!0,size:20,value:m,onChange:h=>f(h.target.value)}),at.default.createElement("label",null,i("pages.updatePassword.fields.confirmPassword","Confirm New Password")),at.default.createElement("input",{name:"confirmPassword",type:"password",required:!0,size:20,value:y,onChange:h=>x(h.target.value)}),at.default.createElement("input",{type:"submit",disabled:p,value:i("pages.updatePassword.buttons.submit","Update")}))));return at.default.createElement("div",{...e},r?r(c,a):c)},Ac=e=>{let{type:t}=e;return Dr.default.createElement(Dr.default.Fragment,null,(()=>{switch(t){case"register":return Dr.default.createElement(Bc,{...e});case"forgotPassword":return Dr.default.createElement(Rc,{...e});case"updatePassword":return Dr.default.createElement(Mc,{...e});default:return Dr.default.createElement(Dc,{...e})}})())},_e=q(v("react")),fs=()=>_e.default.createElement(_e.default.Fragment,null,_e.default.createElement("h1",null,"Welcome on board"),_e.default.createElement("p",null,"Your configuration is completed."),_e.default.createElement("p",null,"Now you can get started by adding your resources to the"," ",_e.default.createElement("code",null,"`resources`")," property of ",_e.default.createElement("code",null,"`<Refine>`")),_e.default.createElement("div",{style:{display:"flex",gap:8}},_e.default.createElement("a",{href:"https://refine.dev",target:"_blank",rel:"noreferrer"},_e.default.createElement("button",null,"Documentation")),_e.default.createElement("a",{href:"https://refine.dev/examples",target:"_blank",rel:"noreferrer"},_e.default.createElement("button",null,"Examples")),_e.default.createElement("a",{href:"https://discord.gg/refine",target:"_blank",rel:"noreferrer"},_e.default.createElement("button",null,"Community")))),re=q(v("react")),Uc=[{title:"Documentation",description:"Learn about the technical details of using refine in your projects.",link:"https://refine.dev/",icon:re.default.createElement("svg",{width:"14",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},re.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:re.default.createElement("svg",{width:"16",height:"14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},re.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"}),re.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:re.default.createElement("svg",{width:"16",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},re.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"}),re.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:re.default.createElement("svg",{width:"16",height:"12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},re.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"}))}],qc=()=>{let e=In("(max-width: 1010px)"),t=In("(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 re.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"}},re.default.createElement("div",{style:{height:"89px"}}),re.default.createElement("div",{style:{display:"flex",justifyContent:"center"}},re.default.createElement("img",{src:"https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/welcome-logo.webp",width:"198",height:"54"})),re.default.createElement("div",{style:{height:e?"270px":"22vw",minHeight:e?"270px":"313px"}}),re.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px",textAlign:"center"}},re.default.createElement("h1",{style:{fontSize:o(),fontWeight:700,margin:"0px"}},"Welcome Aboard!"),re.default.createElement("h4",{style:{fontSize:a(),fontWeight:400,margin:"0px"}},"Your configuration is completed.")),re.default.createElement("div",{style:{height:"64px"}}),re.default.createElement("div",{style:{display:"grid",gridTemplateColumns:`repeat(${r()})`,justifyContent:"center",gap:"48px",paddingRight:"16px",paddingLeft:"16px",maxWidth:"976px",margin:"auto"}},Uc.map(i=>re.default.createElement(Nc,{key:`welcome-page-${i.title}`,card:i}))),re.default.createElement("div",{style:{height:"64px"}}))},Nc=({card:e})=>{let{title:t,description:r,icon:o,link:a}=e,[i,n]=(0,re.useState)(!1);return re.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},re.default.createElement("div",{style:{display:"flex",alignItems:"center"}},re.default.createElement("a",{onPointerEnter:()=>n(!0),onPointerLeave:()=>n(!1),style:{display:"flex",alignItems:"center",color:"#fff",textDecoration:"none"},href:a},o,re.default.createElement("span",{style:{fontSize:"16px",fontWeight:700,marginLeft:"13px",marginRight:"14px"}},t),re.default.createElement("svg",{style:{transition:"transform 0.5s ease-in-out, opacity 0.2s ease-in-out",...i&&{transform:"translateX(4px)",opacity:1}},width:"12",height:"8",fill:"none",opacity:"0.5",xmlns:"http://www.w3.org/2000/svg"},re.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"})))),re.default.createElement("span",{style:{fontSize:"12px",opacity:.5,lineHeight:"16px"}},r))},fe=q(v("react")),Da=v("@tanstack/react-query"),Oc=v("@tanstack/react-query-devtools"),Vc=v("react"),vr=v("react"),Hc="4.14.1",$c=()=>{let e=Fi(),t=(0,vr.useContext)(Go),r=(0,vr.useContext)(fo),o=(0,vr.useContext)(Xa),a=(0,vr.useContext)(Ka),{i18nProvider:i}=(0,vr.useContext)(Ur),n=(0,vr.useContext)(Ga),s=(0,vr.useContext)(Ko),{resources:p}=de(),m=!!t.create||!!t.get||!!t.update,f=!!(r!=null&&r.publish)||!!(r!=null&&r.subscribe)||!!(r!=null&&r.unsubscribe),y=!!o.useHistory||!!o.Link||!!o.Prompt||!!o.useLocation||!!o.useParams,x=!!a,c=!!(i!=null&&i.changeLocale)||!!(i!=null&&i.getLocale)||!!(i!=null&&i.translate),h=!!n.close||!!n.open,d=!!s.can;return{providers:{auth:e,auditLog:m,live:f,router:y,data:x,i18n:c,notification:h,accessControl:d},version:Hc,resourceCount:p.length}},Qc=e=>{let t=JSON.stringify(e||{});return typeof btoa<"u"?btoa(t):Buffer.from(t).toString("base64")},Wc=()=>{let e=$c();return(0,Vc.useEffect)(()=>{if(typeof window>"u"&&!Image)return;let t=new Image;t.src=`https://telemetry.refine.dev/telemetry?payload=${Qc(e)}`},[]),null},zc=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},hi=q(v("react")),Ic=e=>{let t=hi.default.useRef(!1);hi.default.useEffect(()=>{t.current===!1&&e&&zc(e)&&(t.current=!0)},[e])},jc=({legacyAuthProvider:e,authProvider:t,dataProvider:r,legacyRouterProvider:o,routerProvider:a,notificationProvider:i,accessControlProvider:n,auditLogProvider:s,resources:p,DashboardPage:m,ReadyPage:f,LoginPage:y,catchAll:x,children:c,liveProvider:h,i18nProvider:d,Title:l,Layout:u,Sider:b,Header:g,Footer:C,OffLayoutArea:L,onLiveEvent:P,options:E})=>{let{optionsWithDefaults:T,disableTelemetryWithDefault:S,reactQueryWithDefaults:F}=Ku({options:E}),D=Yi(()=>{var R;return F.clientConfig instanceof Da.QueryClient?F.clientConfig:new Da.QueryClient({...F.clientConfig,defaultOptions:{...F.clientConfig.defaultOptions,queries:{refetchOnWindowFocus:!1,keepPreviousData:!0,...(R=F.clientConfig.defaultOptions)==null?void 0:R.queries}}})},[F.clientConfig]),w=fe.default.useMemo(()=>typeof i=="function"?i:()=>i!=null?i:{},[i])();if(Ic(a),o&&!a&&(p!=null?p:[]).length===0)return f?fe.default.createElement(f,null):fe.default.createElement(fs,null);let{RouterComponent:B=fe.default.Fragment}=a?{}:o!=null?o:{};return fe.default.createElement(Da.QueryClientProvider,{client:D},fe.default.createElement(Ad,{...w},fe.default.createElement(bu,{...e!=null?e:{},isProvided:Boolean(e)},fe.default.createElement(Tu,{...t!=null?t:{},isProvided:Boolean(t)},fe.default.createElement(yd,{...r},fe.default.createElement(bd,{liveProvider:h},fe.default.createElement(kd,{value:o&&!a?"legacy":"new"},fe.default.createElement(Bd,{router:a},fe.default.createElement(sc,{...o},fe.default.createElement(Fd,{resources:p!=null?p:[]},fe.default.createElement(qd,{i18nProvider:d},fe.default.createElement(dc,{...n!=null?n:{}},fe.default.createElement(hc,{...s!=null?s:{}},fe.default.createElement(td,null,fe.default.createElement(ju,{mutationMode:T.mutationMode,warnWhenUnsavedChanges:T.warnWhenUnsavedChanges,syncWithLocation:T.syncWithLocation,Title:l,undoableTimeout:T.undoableTimeout,catchAll:x,DashboardPage:m,LoginPage:y,Layout:u,Sider:b,Footer:C,Header:g,OffLayoutArea:L,hasDashboard:!!m,liveMode:T.liveMode,onLiveEvent:P,options:T},fe.default.createElement(Hd,null,fe.default.createElement(B,null,c,!S&&fe.default.createElement(Wc,null),fe.default.createElement(gs,null))))))))))))))))),F.devtoolConfig===!1?null:fe.default.createElement(Oc.ReactQueryDevtools,{initialIsOpen:!1,position:"bottom-right",...F.devtoolConfig}))},bi=v("react"),ys=({notification:e})=>{let t=ge(),{notificationDispatch:r}=Ar(),{open:o}=Xt(),[a,i]=(0,bi.useState)(),n=()=>{if(e.isRunning===!0&&(e.seconds===0&&e.doMutation(),e.isSilent||o==null||o({key:`${e.id}-${e.resource}-notification`,type:"progress",message:t("notifications.undoable",{seconds:Ea(e.seconds)},`You have ${Ea(e.seconds)} seconds to undo`),cancelMutation:e.cancelMutation,undoableTimeout:Ea(e.seconds)}),e.seconds>0)){a&&clearTimeout(a);let s=setTimeout(()=>{r({type:"DECREASE_NOTIFICATION_SECOND",payload:{id:e.id,seconds:e.seconds,resource:e.resource}})},1e3);i(s)}};return(0,bi.useEffect)(()=>{n()},[e]),null},Wo=q(v("react")),Kc=({children:e,Layout:t,Sider:r,Header:o,Title:a,Footer:i,OffLayoutArea:n})=>{let{Layout:s,Footer:p,Header:m,Sider:f,Title:y,OffLayoutArea:x}=Ya(),c=t!=null?t:s;return Wo.default.createElement(c,{Sider:r!=null?r:f,Header:o!=null?o:m,Footer:i!=null?i:p,Title:a!=null?a:y,OffLayoutArea:n!=null?n:x},e,Wo.default.createElement(Gc,null))},Gc=()=>{let{Prompt:e}=We(),t=ge(),{warnWhen:r,setWarnWhen:o}=_a(),a=i=>(i.preventDefault(),i.returnValue=t("warnWhenUnsavedChanges","Are you sure you want to leave? You have unsaved changes."),i.returnValue);return(0,Wo.useEffect)(()=>(r&&window.addEventListener("beforeunload",a),window.removeEventListener("beforeunload",a)),[r]),Wo.default.createElement(e,{when:r,message:t("warnWhenUnsavedChanges","Are you sure you want to leave? You have unsaved changes."),setWarnWhen:o})},it=q(v("react")),_c=()=>{let e=vt(),[t,r]=it.default.useState(void 0);return it.default.useEffect(()=>{t&&e(t)},[t]),it.default.useCallback(o=>{t||r(o)},[t])};function Yc({redirectOnFail:e=!0,appendCurrentPathToQuery:t=!0,children:r,fallback:o,loading:a}){var i;let n=Ae(),s=Ee(),p=Boolean(n==null?void 0:n.isProvided),m=Boolean(n==null?void 0:n.isLegacy),f=s==="legacy",y=Ye(),x=vt(),c=_c(),{replace:h}=ht(),{useLocation:d}=We(),l=d(),{isLoading:u,isFetching:b,isSuccess:g,data:{authenticated:C,redirectTo:L}={},refetch:P}=Va({v3LegacyAuthProviderCompatible:m});it.default.useEffect(()=>{P()},[r,o]);let E=it.default.useRef({status:u?"initial":"pending",content:a!=null?a:null});b?E.current.status="pending":b||(E.current.status="settled");let T=p?m?g:C:!0;if(E.current.status==="settled")if(T)E.current.content=it.default.createElement(it.default.Fragment,null,r!=null?r:null);else if(typeof o<"u")E.current.content=it.default.createElement(it.default.Fragment,null,o);else{let S=`${f?l==null?void 0:l.pathname:y.pathname}`.replace(/(\?.*|#.*)$/,""),F=m?typeof e=="string"?e:"/login":typeof e=="string"?e:L;if(F)if(f){let D=t?`?to=${encodeURIComponent(S)}`:"";h(`${F}${D}`)}else c({to:F,query:t?{to:(i=y.params)!=null&&i.to?y.params.to:x({to:S,options:{keepQuery:!0},type:"path"})}:void 0,type:"replace"})}return p?it.default.createElement(it.default.Fragment,null,E.current.content):it.default.createElement(it.default.Fragment,null,r!=null?r:null)}var Zc=v("react"),gs=()=>{let{useLocation:e}=We(),{checkAuth:t}=yt(),r=e();return(0,Zc.useEffect)(()=>{t==null||t().catch(()=>!1)},[r==null?void 0:r.pathname]),null},Br=q(v("react")),Xc=({resource:e,action:t,params:r,fallback:o,children:a,...i})=>{var n,s;let p=Ee(),{resources:m}=de(),{useParams:f}=We(),{resource:y,id:x,action:c}=Ye(),{resource:h,id:d,action:l}=f(),u=y==null?void 0:y.name,b=!e||e===(p==="legacy"?h:u)?(n=r==null?void 0:r.id)!=null?n:p==="legacy"?d:x:r==null?void 0:r.id,g=e!=null?e:p==="legacy"?h:u,C,L=ho();if(p==="legacy")g&&(C=L(g));else if(e){let E=Te(e,m);E?C=E:C={name:e,route:e}}else if(typeof y=="string"){let E=Te(y,m);E?C=E:C={name:y,route:y}}else C=y;let{data:P}=cs({resource:e!=null?e:C==null?void 0:C.name,action:(s=t!=null?t:p==="legacy"?l:c)!=null?s:"",params:r!=null?r:{id:b,resource:C}});return P!=null&&P.can?Br.default.isValidElement(a)?Br.default.cloneElement(a,i):Br.default.createElement(Br.default.Fragment,null,a):(P==null?void 0:P.can)===!1?Br.default.createElement(Br.default.Fragment,null,o!=null?o:null):null},hr=q(v("react")),Jc=[`
11
+ For more information, see https://refine.dev/docs/core/hooks/useBreadcrumb/#i18n-support`),p.push({label:a(`buttons.${s}`,Ho(s))})):p.push({label:a(f,Ho(s))})}return{breadcrumbs:p}},ka=q(v("react")),Qo=(e,t,r=!1)=>{let o=[],a=Yt(e,t);for(;a;)o.push(a),a=Yt(a,t);return o.reverse(),`/${[...o,e].map(i=>{var n,s;return Nt((s=(n=r?i.route:void 0)!=null?n:i.identifier)!=null?s:i.name)}).join("/").replace(/^\//,"")}`},wc=(e,t=!1)=>{let r={item:{name:"__root__"},children:{}};e.forEach(a=>{var i,n;let s=[],p=Yt(a,e);for(;p;)s.push(p),p=Yt(p,e);s.reverse();let m=r;s.forEach(y=>{var x,c;let h=(c=(x=t?y.route:void 0)!=null?x:y.identifier)!=null?c:y.name;m.children[h]||(m.children[h]={item:y,children:{}}),m=m.children[h]});let f=(n=(i=t?a.route:void 0)!=null?i:a.identifier)!=null?n:a.name;m.children[f]||(m.children[f]={item:a,children:{}})});let o=a=>{let i=[];return Object.keys(a.children).forEach(n=>{let s=Qo(a.children[n].item,e,t),p={...a.children[n].item,key:s,children:o(a.children[n])};i.push(p)}),i};return o(r)},vi=e=>e.split("?")[0].split("#")[0].replace(/(.+)(\/$)/,"$1"),Fc=({meta:e,hideOnMissingParameter:t}={hideOnMissingParameter:!0})=>{let r=ge(),o=Za(),a=Ee(),{resource:i,resources:n}=de(),{pathname:s}=Ye(),{useLocation:p}=We(),{pathname:m}=p(),f=a==="legacy"?vi(m):s?vi(s):void 0,y=`/${(f!=null?f:"").replace(/^\//,"")}`,x=i?Qo(i,n,a==="legacy"):y!=null?y:"",c=ka.default.useMemo(()=>{if(!i)return[];let l=Yt(i,n),u=[Qo(i,n)];for(;l;)u.push(Qo(l,n)),l=Yt(l,n);return u},[]),h=ka.default.useCallback(l=>{var u,b,g,C,L,P,E,T;if(((g=(u=l==null?void 0:l.meta)==null?void 0:u.hide)!=null?g:(b=l==null?void 0:l.options)==null?void 0:b.hide)||!(l!=null&&l.list)&&l.children.length===0)return;let S=l.list?o({resource:l,action:"list",legacy:a==="legacy",meta:e}):void 0;if(!(t&&S&&S.match(/(\/|^):(.+?)(\/|$){1}/)))return{...l,route:S,icon:N((C=l.meta)==null?void 0:C.icon,(L=l.options)==null?void 0:L.icon,l.icon),label:(T=N((P=l==null?void 0:l.meta)==null?void 0:P.label,(E=l==null?void 0:l.options)==null?void 0:E.label))!=null?T:r(`${l.name}.${l.name}`,Qa(l.name,"plural"))}},[a,e,r,t]),d=ka.default.useMemo(()=>{let l=wc(n,a==="legacy"),u=b=>b.flatMap(g=>{let C=u(g.children),L=h({...g,children:C});return L?[L]:[]});return u(l)},[n,a,h]);return{defaultOpenKeys:c,selectedKey:x,menuItems:d}},$e=()=>{let{params:e}=Ye();return({resource:t,meta:r}={})=>{let{meta:o}=ds(t!=null?t:{}),{filters:a,sorters:i,current:n,pageSize:s,...p}=e!=null?e:{};return{...o,...p,...r}}},kc=()=>{let[e,t]=(0,yr.useState)(),r=ge(),{push:o}=ht(),a=vt(),i=Ee(),{resource:n,action:s}=de();return(0,yr.useEffect)(()=>{n&&s&&t(r("pages.error.info",{action:s,resource:n==null?void 0:n.name},`You may have forgotten to add the "${s}" component to "${n==null?void 0:n.name}" resource.`))},[n,s]),yr.default.createElement(yr.default.Fragment,null,yr.default.createElement("h1",null,r("pages.error.404",void 0,"Sorry, the page you visited does not exist.")),e&&yr.default.createElement("p",null,e),yr.default.createElement("button",{onClick:()=>{i==="legacy"?o("/"):a({to:"/"})}},r("pages.error.backHome",void 0,"Back Home")))},Me=q(v("react")),ms=()=>{let[e,t]=(0,Me.useState)(""),[r,o]=(0,Me.useState)(""),a=ge(),i=Ae(),{mutate:n}=Oa({v3LegacyAuthProviderCompatible:Boolean(i==null?void 0:i.isLegacy)});return Me.default.createElement(Me.default.Fragment,null,Me.default.createElement("h1",null,a("pages.login.title","Sign in your account")),Me.default.createElement("form",{onSubmit:s=>{s.preventDefault(),n({username:e,password:r})}},Me.default.createElement("table",null,Me.default.createElement("tbody",null,Me.default.createElement("tr",null,Me.default.createElement("td",null,a("pages.login.username",void 0,"username"),":"),Me.default.createElement("td",null,Me.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)}))),Me.default.createElement("tr",null,Me.default.createElement("td",null,a("pages.login.password",void 0,"password"),":"),Me.default.createElement("td",null,Me.default.createElement("input",{type:"password",required:!0,size:20,value:r,onChange:s=>o(s.target.value)}))))),Me.default.createElement("br",null),Me.default.createElement("input",{type:"submit",value:"login"})))},Dr=q(v("react")),me=q(v("react")),Dc=({providers:e,registerLink:t,forgotPasswordLink:r,rememberMe:o,contentProps:a,wrapperProps:i,renderContent:n,formProps:s,title:p=void 0})=>{let m=Ee(),f=jo(),{Link:y}=We(),x=m==="legacy"?y:f,[c,h]=(0,me.useState)(""),[d,l]=(0,me.useState)(""),[u,b]=(0,me.useState)(!1),g=ge(),C=Ae(),{mutate:L}=Oa({v3LegacyAuthProviderCompatible:Boolean(C==null?void 0:C.isLegacy)}),P=(S,F)=>S?typeof S=="string"?me.default.createElement(x,{to:S},F):S:null,E=()=>e?e.map(S=>{var F;return me.default.createElement("div",{key:S.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},me.default.createElement("button",{onClick:()=>L({providerName:S.name}),style:{display:"flex",alignItems:"center"}},S==null?void 0:S.icon,(F=S.label)!=null?F:me.default.createElement("label",null,S.label)))}):null,T=me.default.createElement("div",{...a},me.default.createElement("h1",{style:{textAlign:"center"}},g("pages.login.title","Sign in to your account")),E(),me.default.createElement("hr",null),me.default.createElement("form",{onSubmit:S=>{S.preventDefault(),L({email:c,password:d,remember:u})},...s},me.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},me.default.createElement("label",null,g("pages.login.fields.email","Email")),me.default.createElement("input",{name:"email",type:"text",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:c,onChange:S=>h(S.target.value)}),me.default.createElement("label",null,g("pages.login.fields.password","Password")),me.default.createElement("input",{type:"password",name:"password",required:!0,size:20,value:d,onChange:S=>l(S.target.value)}),o!=null?o:me.default.createElement(me.default.Fragment,null,me.default.createElement("label",null,g("pages.login.buttons.rememberMe","Remember me"),me.default.createElement("input",{name:"remember",type:"checkbox",size:20,checked:u,value:u.toString(),onChange:()=>{b(!u)}}))),me.default.createElement("br",null),r!=null?r:P("/forgot-password",g("pages.login.buttons.forgotPassword","Forgot password?")),me.default.createElement("input",{type:"submit",value:g("pages.login.signin","Sign in")}),t!=null?t:me.default.createElement("span",null,g("pages.login.buttons.noAccount","Don\u2019t have an account?")," ",P("/register",g("pages.login.register","Sign up"))))));return me.default.createElement("div",{...i},n?n(T,p):T)},Fe=q(v("react")),Bc=({providers:e,loginLink:t,wrapperProps:r,contentProps:o,renderContent:a,formProps:i,title:n=void 0})=>{let s=Ee(),p=jo(),{Link:m}=We(),f=s==="legacy"?m:p,[y,x]=(0,Fe.useState)(""),[c,h]=(0,Fe.useState)(""),d=ge(),l=Ae(),{mutate:u,isLoading:b}=Li({v3LegacyAuthProviderCompatible:Boolean(l==null?void 0:l.isLegacy)}),g=(P,E)=>P?typeof P=="string"?Fe.default.createElement(f,{to:P},E):P:null,C=()=>e?e.map(P=>{var E;return Fe.default.createElement("div",{key:P.name,style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"1rem"}},Fe.default.createElement("button",{onClick:()=>u({providerName:P.name}),style:{display:"flex",alignItems:"center"}},P==null?void 0:P.icon,(E=P.label)!=null?E:Fe.default.createElement("label",null,P.label)))}):null,L=Fe.default.createElement("div",{...o},Fe.default.createElement("h1",{style:{textAlign:"center"}},d("pages.register.title","Sign up for your account")),C(),Fe.default.createElement("hr",null),Fe.default.createElement("form",{onSubmit:P=>{P.preventDefault(),u({email:y,password:c})},...i},Fe.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},Fe.default.createElement("label",null,d("pages.register.fields.email","Email")),Fe.default.createElement("input",{name:"email",type:"email",size:20,autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:y,onChange:P=>x(P.target.value)}),Fe.default.createElement("label",null,d("pages.register.fields.password","Password")),Fe.default.createElement("input",{name:"password",type:"password",required:!0,size:20,value:c,onChange:P=>h(P.target.value)}),Fe.default.createElement("input",{type:"submit",value:d("pages.register.buttons.submit","Sign up"),disabled:b}),t!=null?t:Fe.default.createElement(Fe.default.Fragment,null,Fe.default.createElement("span",null,d("pages.login.buttons.haveAccount","Have an account?")," ",g("/login",d("pages.login.signin","Sign in")))))));return Fe.default.createElement("div",{...r},a?a(L,n):L)},ot=q(v("react")),Rc=({loginLink:e,wrapperProps:t,contentProps:r,renderContent:o,formProps:a,title:i=void 0})=>{let n=ge(),s=Ee(),p=jo(),{Link:m}=We(),f=s==="legacy"?m:p,[y,x]=(0,ot.useState)(""),{mutate:c,isLoading:h}=Si(),d=(u,b)=>u?typeof u=="string"?ot.default.createElement(f,{to:u},b):u:null,l=ot.default.createElement("div",{...r},ot.default.createElement("h1",{style:{textAlign:"center"}},n("pages.forgotPassword.title","Forgot your password?")),ot.default.createElement("hr",null),ot.default.createElement("form",{onSubmit:u=>{u.preventDefault(),c({email:y})},...a},ot.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},ot.default.createElement("label",null,n("pages.forgotPassword.fields.email","Email")),ot.default.createElement("input",{name:"email",type:"mail",autoCorrect:"off",spellCheck:!1,autoCapitalize:"off",required:!0,value:y,onChange:u=>x(u.target.value)}),ot.default.createElement("input",{type:"submit",disabled:h,value:n("pages.forgotPassword.buttons.submit","Send reset instructions")}),ot.default.createElement("br",null),e!=null?e:ot.default.createElement("span",null,n("pages.register.buttons.haveAccount","Have an account? ")," ",d("/login",n("pages.login.signin","Sign in"))))));return ot.default.createElement("div",{...t},o?o(l,i):l)},at=q(v("react")),Mc=({wrapperProps:e,contentProps:t,renderContent:r,formProps:o,title:a=void 0})=>{let i=ge(),n=Ae(),{mutate:s,isLoading:p}=wi({v3LegacyAuthProviderCompatible:Boolean(n==null?void 0:n.isLegacy)}),[m,f]=(0,at.useState)(""),[y,x]=(0,at.useState)(""),c=at.default.createElement("div",{...t},at.default.createElement("h1",{style:{textAlign:"center"}},i("pages.updatePassword.title","Update Password")),at.default.createElement("hr",null),at.default.createElement("form",{onSubmit:h=>{h.preventDefault(),s({password:m,confirmPassword:y})},...o},at.default.createElement("div",{style:{display:"flex",flexDirection:"column",padding:25}},at.default.createElement("label",null,i("pages.updatePassword.fields.password","New Password")),at.default.createElement("input",{name:"password",type:"password",required:!0,size:20,value:m,onChange:h=>f(h.target.value)}),at.default.createElement("label",null,i("pages.updatePassword.fields.confirmPassword","Confirm New Password")),at.default.createElement("input",{name:"confirmPassword",type:"password",required:!0,size:20,value:y,onChange:h=>x(h.target.value)}),at.default.createElement("input",{type:"submit",disabled:p,value:i("pages.updatePassword.buttons.submit","Update")}))));return at.default.createElement("div",{...e},r?r(c,a):c)},Ac=e=>{let{type:t}=e;return Dr.default.createElement(Dr.default.Fragment,null,(()=>{switch(t){case"register":return Dr.default.createElement(Bc,{...e});case"forgotPassword":return Dr.default.createElement(Rc,{...e});case"updatePassword":return Dr.default.createElement(Mc,{...e});default:return Dr.default.createElement(Dc,{...e})}})())},_e=q(v("react")),fs=()=>_e.default.createElement(_e.default.Fragment,null,_e.default.createElement("h1",null,"Welcome on board"),_e.default.createElement("p",null,"Your configuration is completed."),_e.default.createElement("p",null,"Now you can get started by adding your resources to the"," ",_e.default.createElement("code",null,"`resources`")," property of ",_e.default.createElement("code",null,"`<Refine>`")),_e.default.createElement("div",{style:{display:"flex",gap:8}},_e.default.createElement("a",{href:"https://refine.dev",target:"_blank",rel:"noreferrer"},_e.default.createElement("button",null,"Documentation")),_e.default.createElement("a",{href:"https://refine.dev/examples",target:"_blank",rel:"noreferrer"},_e.default.createElement("button",null,"Examples")),_e.default.createElement("a",{href:"https://discord.gg/refine",target:"_blank",rel:"noreferrer"},_e.default.createElement("button",null,"Community")))),re=q(v("react")),Uc=[{title:"Documentation",description:"Learn about the technical details of using refine in your projects.",link:"https://refine.dev/",icon:re.default.createElement("svg",{width:"14",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},re.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:re.default.createElement("svg",{width:"16",height:"14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},re.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"}),re.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:re.default.createElement("svg",{width:"16",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},re.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"}),re.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:re.default.createElement("svg",{width:"16",height:"12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},re.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"}))}],qc=()=>{let e=In("(max-width: 1010px)"),t=In("(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 re.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"}},re.default.createElement("div",{style:{height:"89px"}}),re.default.createElement("div",{style:{display:"flex",justifyContent:"center"}},re.default.createElement("img",{src:"https://refine.ams3.cdn.digitaloceanspaces.com/welcome-page/welcome-logo.webp",width:"198",height:"54"})),re.default.createElement("div",{style:{height:e?"270px":"22vw",minHeight:e?"270px":"313px"}}),re.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px",textAlign:"center"}},re.default.createElement("h1",{style:{fontSize:o(),fontWeight:700,margin:"0px"}},"Welcome Aboard!"),re.default.createElement("h4",{style:{fontSize:a(),fontWeight:400,margin:"0px"}},"Your configuration is completed.")),re.default.createElement("div",{style:{height:"64px"}}),re.default.createElement("div",{style:{display:"grid",gridTemplateColumns:`repeat(${r()})`,justifyContent:"center",gap:"48px",paddingRight:"16px",paddingLeft:"16px",maxWidth:"976px",margin:"auto"}},Uc.map(i=>re.default.createElement(Nc,{key:`welcome-page-${i.title}`,card:i}))),re.default.createElement("div",{style:{height:"64px"}}))},Nc=({card:e})=>{let{title:t,description:r,icon:o,link:a}=e,[i,n]=(0,re.useState)(!1);return re.default.createElement("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},re.default.createElement("div",{style:{display:"flex",alignItems:"center"}},re.default.createElement("a",{onPointerEnter:()=>n(!0),onPointerLeave:()=>n(!1),style:{display:"flex",alignItems:"center",color:"#fff",textDecoration:"none"},href:a},o,re.default.createElement("span",{style:{fontSize:"16px",fontWeight:700,marginLeft:"13px",marginRight:"14px"}},t),re.default.createElement("svg",{style:{transition:"transform 0.5s ease-in-out, opacity 0.2s ease-in-out",...i&&{transform:"translateX(4px)",opacity:1}},width:"12",height:"8",fill:"none",opacity:"0.5",xmlns:"http://www.w3.org/2000/svg"},re.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"})))),re.default.createElement("span",{style:{fontSize:"12px",opacity:.5,lineHeight:"16px"}},r))},fe=q(v("react")),Da=v("@tanstack/react-query"),Oc=v("@tanstack/react-query-devtools"),Vc=v("react"),vr=v("react"),Hc="4.14.3",$c=()=>{let e=Fi(),t=(0,vr.useContext)(Go),r=(0,vr.useContext)(fo),o=(0,vr.useContext)(Xa),a=(0,vr.useContext)(Ka),{i18nProvider:i}=(0,vr.useContext)(Ur),n=(0,vr.useContext)(Ga),s=(0,vr.useContext)(Ko),{resources:p}=de(),m=!!t.create||!!t.get||!!t.update,f=!!(r!=null&&r.publish)||!!(r!=null&&r.subscribe)||!!(r!=null&&r.unsubscribe),y=!!o.useHistory||!!o.Link||!!o.Prompt||!!o.useLocation||!!o.useParams,x=!!a,c=!!(i!=null&&i.changeLocale)||!!(i!=null&&i.getLocale)||!!(i!=null&&i.translate),h=!!n.close||!!n.open,d=!!s.can;return{providers:{auth:e,auditLog:m,live:f,router:y,data:x,i18n:c,notification:h,accessControl:d},version:Hc,resourceCount:p.length}},Qc=e=>{let t=JSON.stringify(e||{});return typeof btoa<"u"?btoa(t):Buffer.from(t).toString("base64")},Wc=()=>{let e=$c();return(0,Vc.useEffect)(()=>{if(typeof window>"u"&&!Image)return;let t=new Image;t.src=`https://telemetry.refine.dev/telemetry?payload=${Qc(e)}`},[]),null},zc=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},hi=q(v("react")),Ic=e=>{let t=hi.default.useRef(!1);hi.default.useEffect(()=>{t.current===!1&&e&&zc(e)&&(t.current=!0)},[e])},jc=({legacyAuthProvider:e,authProvider:t,dataProvider:r,legacyRouterProvider:o,routerProvider:a,notificationProvider:i,accessControlProvider:n,auditLogProvider:s,resources:p,DashboardPage:m,ReadyPage:f,LoginPage:y,catchAll:x,children:c,liveProvider:h,i18nProvider:d,Title:l,Layout:u,Sider:b,Header:g,Footer:C,OffLayoutArea:L,onLiveEvent:P,options:E})=>{let{optionsWithDefaults:T,disableTelemetryWithDefault:S,reactQueryWithDefaults:F}=Ku({options:E}),D=Yi(()=>{var R;return F.clientConfig instanceof Da.QueryClient?F.clientConfig:new Da.QueryClient({...F.clientConfig,defaultOptions:{...F.clientConfig.defaultOptions,queries:{refetchOnWindowFocus:!1,keepPreviousData:!0,...(R=F.clientConfig.defaultOptions)==null?void 0:R.queries}}})},[F.clientConfig]),w=fe.default.useMemo(()=>typeof i=="function"?i:()=>i!=null?i:{},[i])();if(Ic(a),o&&!a&&(p!=null?p:[]).length===0)return f?fe.default.createElement(f,null):fe.default.createElement(fs,null);let{RouterComponent:B=fe.default.Fragment}=a?{}:o!=null?o:{};return fe.default.createElement(Da.QueryClientProvider,{client:D},fe.default.createElement(Ad,{...w},fe.default.createElement(bu,{...e!=null?e:{},isProvided:Boolean(e)},fe.default.createElement(Tu,{...t!=null?t:{},isProvided:Boolean(t)},fe.default.createElement(yd,{...r},fe.default.createElement(bd,{liveProvider:h},fe.default.createElement(kd,{value:o&&!a?"legacy":"new"},fe.default.createElement(Bd,{router:a},fe.default.createElement(sc,{...o},fe.default.createElement(Fd,{resources:p!=null?p:[]},fe.default.createElement(qd,{i18nProvider:d},fe.default.createElement(dc,{...n!=null?n:{}},fe.default.createElement(hc,{...s!=null?s:{}},fe.default.createElement(td,null,fe.default.createElement(ju,{mutationMode:T.mutationMode,warnWhenUnsavedChanges:T.warnWhenUnsavedChanges,syncWithLocation:T.syncWithLocation,Title:l,undoableTimeout:T.undoableTimeout,catchAll:x,DashboardPage:m,LoginPage:y,Layout:u,Sider:b,Footer:C,Header:g,OffLayoutArea:L,hasDashboard:!!m,liveMode:T.liveMode,onLiveEvent:P,options:T},fe.default.createElement(Hd,null,fe.default.createElement(B,null,c,!S&&fe.default.createElement(Wc,null),fe.default.createElement(gs,null))))))))))))))))),F.devtoolConfig===!1?null:fe.default.createElement(Oc.ReactQueryDevtools,{initialIsOpen:!1,position:"bottom-right",...F.devtoolConfig}))},bi=v("react"),ys=({notification:e})=>{let t=ge(),{notificationDispatch:r}=Ar(),{open:o}=Xt(),[a,i]=(0,bi.useState)(),n=()=>{if(e.isRunning===!0&&(e.seconds===0&&e.doMutation(),e.isSilent||o==null||o({key:`${e.id}-${e.resource}-notification`,type:"progress",message:t("notifications.undoable",{seconds:Ea(e.seconds)},`You have ${Ea(e.seconds)} seconds to undo`),cancelMutation:e.cancelMutation,undoableTimeout:Ea(e.seconds)}),e.seconds>0)){a&&clearTimeout(a);let s=setTimeout(()=>{r({type:"DECREASE_NOTIFICATION_SECOND",payload:{id:e.id,seconds:e.seconds,resource:e.resource}})},1e3);i(s)}};return(0,bi.useEffect)(()=>{n()},[e]),null},Wo=q(v("react")),Kc=({children:e,Layout:t,Sider:r,Header:o,Title:a,Footer:i,OffLayoutArea:n})=>{let{Layout:s,Footer:p,Header:m,Sider:f,Title:y,OffLayoutArea:x}=Ya(),c=t!=null?t:s;return Wo.default.createElement(c,{Sider:r!=null?r:f,Header:o!=null?o:m,Footer:i!=null?i:p,Title:a!=null?a:y,OffLayoutArea:n!=null?n:x},e,Wo.default.createElement(Gc,null))},Gc=()=>{let{Prompt:e}=We(),t=ge(),{warnWhen:r,setWarnWhen:o}=_a(),a=i=>(i.preventDefault(),i.returnValue=t("warnWhenUnsavedChanges","Are you sure you want to leave? You have unsaved changes."),i.returnValue);return(0,Wo.useEffect)(()=>(r&&window.addEventListener("beforeunload",a),window.removeEventListener("beforeunload",a)),[r]),Wo.default.createElement(e,{when:r,message:t("warnWhenUnsavedChanges","Are you sure you want to leave? You have unsaved changes."),setWarnWhen:o})},it=q(v("react")),_c=()=>{let e=vt(),[t,r]=it.default.useState(void 0);return it.default.useEffect(()=>{t&&e(t)},[t]),it.default.useCallback(o=>{t||r(o)},[t])};function Yc({redirectOnFail:e=!0,appendCurrentPathToQuery:t=!0,children:r,fallback:o,loading:a}){var i;let n=Ae(),s=Ee(),p=Boolean(n==null?void 0:n.isProvided),m=Boolean(n==null?void 0:n.isLegacy),f=s==="legacy",y=Ye(),x=vt(),c=_c(),{replace:h}=ht(),{useLocation:d}=We(),l=d(),{isLoading:u,isFetching:b,isSuccess:g,data:{authenticated:C,redirectTo:L}={},refetch:P}=Va({v3LegacyAuthProviderCompatible:m});it.default.useEffect(()=>{P()},[r,o]);let E=it.default.useRef({status:u?"initial":"pending",content:a!=null?a:null});b?E.current.status="pending":b||(E.current.status="settled");let T=p?m?g:C:!0;if(E.current.status==="settled")if(T)E.current.content=it.default.createElement(it.default.Fragment,null,r!=null?r:null);else if(typeof o<"u")E.current.content=it.default.createElement(it.default.Fragment,null,o);else{let S=`${f?l==null?void 0:l.pathname:y.pathname}`.replace(/(\?.*|#.*)$/,""),F=m?typeof e=="string"?e:"/login":typeof e=="string"?e:L;if(F)if(f){let D=t?`?to=${encodeURIComponent(S)}`:"";h(`${F}${D}`)}else c({to:F,query:t?{to:(i=y.params)!=null&&i.to?y.params.to:x({to:S,options:{keepQuery:!0},type:"path"})}:void 0,type:"replace"})}return p?it.default.createElement(it.default.Fragment,null,E.current.content):it.default.createElement(it.default.Fragment,null,r!=null?r:null)}var Zc=v("react"),gs=()=>{let{useLocation:e}=We(),{checkAuth:t}=yt(),r=e();return(0,Zc.useEffect)(()=>{t==null||t().catch(()=>!1)},[r==null?void 0:r.pathname]),null},Br=q(v("react")),Xc=({resource:e,action:t,params:r,fallback:o,children:a,...i})=>{var n,s;let p=Ee(),{resources:m}=de(),{useParams:f}=We(),{resource:y,id:x,action:c}=Ye(),{resource:h,id:d,action:l}=f(),u=y==null?void 0:y.name,b=!e||e===(p==="legacy"?h:u)?(n=r==null?void 0:r.id)!=null?n:p==="legacy"?d:x:r==null?void 0:r.id,g=e!=null?e:p==="legacy"?h:u,C,L=ho();if(p==="legacy")g&&(C=L(g));else if(e){let E=Te(e,m);E?C=E:C={name:e,route:e}}else if(typeof y=="string"){let E=Te(y,m);E?C=E:C={name:y,route:y}}else C=y;let{data:P}=cs({resource:e!=null?e:C==null?void 0:C.name,action:(s=t!=null?t:p==="legacy"?l:c)!=null?s:"",params:r!=null?r:{id:b,resource:C}});return P!=null&&P.can?Br.default.isValidElement(a)?Br.default.cloneElement(a,i):Br.default.createElement(Br.default.Fragment,null,a):(P==null?void 0:P.can)===!1?Br.default.createElement(Br.default.Fragment,null,o!=null?o:null):null},hr=q(v("react")),Jc=[`
12
12
  .banner {
13
13
  display: flex;
14
14
  @media (max-width: 1000px) {