xmirror-components 1.0.37 → 1.0.39
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/build/dist/index.cjs +14 -14
- package/build/dist/index.mjs +44 -17
- package/build/es/components/SearchArea/Item/index.js +1 -1
- package/build/es/components/SearchArea/index.js +1 -1
- package/build/es/components/Table/PopoverSetColumns/index.js +4 -0
- package/build/lib/components/SearchArea/Item/index.js +1 -1
- package/build/lib/components/SearchArea/index.js +1 -1
- package/build/lib/components/Table/PopoverSetColumns/index.js +4 -0
- package/build/package.json +5 -5
- package/package.json +5 -5
package/build/dist/index.cjs
CHANGED
|
@@ -182,7 +182,7 @@ Valid keys: `+JSON.stringify(Object.keys(N),null," "));var C=Ae(H,se,W,ee,te+".
|
|
|
182
182
|
background-color: #f0f0f0;
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
|
-
`;function sf({order:e,visibleItems:t,columns:r=[],onChangeOrder:n,columnsVisible:a,columnsSort:o,onChangeVisible:i}){const s=M.useRef(null),l=M.useRef(null),u=E=>{s.current=E.currentTarget},m=E=>{if(!l.current||!s.current)return;s.current.style.display="block",E.currentTarget.classList.remove("drag-up"),l.current.classList.remove("drag-up"),E.currentTarget.classList.remove("drag-down"),l.current.classList.remove("drag-down");const S=[...e],h=Number(s.current.dataset.index),c=Number(l.current.dataset.index);S.splice(c,0,S.splice(h,1)[0]),n(S)},d=E=>{if(E.preventDefault(),!s.current)return;s.current.style.display="none";const S=E.target;if(S.tagName!=="LI")return;const h=s.current.dataset.index,c=S.dataset.index,g=S.dataset.id;if(!g||y.includes(g)||!h||!c)return;const v=h>c?"drag-up":"drag-down";l.current&&S.dataset.index!==l.current.dataset.index&&l.current.classList.remove("drag-up","drag-down"),S.classList.contains(v)||(S.classList.add(v),l.current=S)},b=({target:{checked:E}},{dataIndex:S})=>{if(t.length===1&&!E){exports.message.error($.jsx($t,{id:"component.table.visibleError",defaultMessage:"列表最少保留一个字段"}));return}const h=Array.isArray(S)?S.join(","):S,c=[...t];E?c.push(h):c.splice(c.indexOf(h),1),i(c)},y=M.useMemo(()=>{const E=[];for(const S of r)if(S.columnSortDisabled&&"dataIndex"in S){let h;Array.isArray(S.dataIndex)?h=S.dataIndex.join(","):h=S.dataIndex,E.push(h)}return E},[r]),w=M.useMemo(()=>e.map((E,S)=>{let h;for(const p of r)if("dataIndex"in p){let x;if(Array.isArray(p.dataIndex)?x=p.dataIndex.join(","):x=p.dataIndex,E===x){h=p;break}}if(!h||!("dataIndex"in h))return"";const c=o&&h&&!h.columnSortDisabled;let g;h&&Array.isArray(h.dataIndex)?g=h.dataIndex.join(","):h&&(g=h.dataIndex);const v=typeof g=="string"&&t.includes(g);return h?$.jsxs("li",{draggable:c,onDragEnd:m,onDragStart:u,"data-index":S,"data-id":Array.isArray(h.dataIndex)?h.dataIndex.join(","):String(h.dataIndex),children:[o&&$.jsx(qt.HolderOutlined,{className:"icon-drag"}),a&&$.jsx(Ee.Checkbox,{style:{marginRight:"10px"},checked:!!v,disabled:h.columnVisibleDisabled,onChange:p=>{b(p,h)}}),typeof h.title=="function"?h.title({}):h.title]},Array.isArray(h.dataIndex)?h.dataIndex.join(","):String(h.dataIndex)):null}),[e,t,r,o,a]);return $.jsx(Ee.Popover,{overlayClassName:"table-columns-setting-popover",content:$.jsx(of,{onDragOver:d,children:w}),trigger:"click",align:{offset:[-60,-14]},children:$.jsx(Ca,{type:"icon-setting",style:{float:"right",fontSize:"17px",lineHeight:1,marginTop:"2px",fontWeight:500}})})}const lf=Ne.div`
|
|
185
|
+
`;function sf({order:e,visibleItems:t,columns:r=[],onChangeOrder:n,columnsVisible:a,columnsSort:o,onChangeVisible:i}){const s=M.useRef(null),l=M.useRef(null),u=E=>{s.current=E.currentTarget},m=E=>{if(!l.current||!s.current)return;s.current.style.display="block",E.currentTarget.classList.remove("drag-up"),l.current.classList.remove("drag-up"),E.currentTarget.classList.remove("drag-down"),l.current.classList.remove("drag-down");const S=[...e],h=Number(s.current.dataset.index),c=Number(l.current.dataset.index);S.splice(c,0,S.splice(h,1)[0]),n(S)},d=E=>{if(E.preventDefault(),!s.current)return;s.current.style.display="none";const S=E.target;if(S.tagName!=="LI")return;const h=s.current.dataset.index,c=S.dataset.index,g=S.dataset.id;if(!g||y.includes(g)||!h||!c)return;const v=h>c?"drag-up":"drag-down";l.current&&S.dataset.index!==l.current.dataset.index&&l.current.classList.remove("drag-up","drag-down"),S.classList.contains(v)||(S.classList.add(v),l.current=S)},b=({target:{checked:E}},{dataIndex:S})=>{if(t.length===1&&!E){exports.message.error($.jsx($t,{id:"component.table.visibleError",defaultMessage:"列表最少保留一个字段"}));return}const h=Array.isArray(S)?S.join(","):S,c=[...t];E?c.push(h):c.splice(c.indexOf(h),1),i(c)},y=M.useMemo(()=>{const E=[];for(const S of r)if(S.columnSortDisabled&&"dataIndex"in S){let h;Array.isArray(S.dataIndex)?h=S.dataIndex.join(","):h=S.dataIndex,E.push(h)}return E},[r]),w=M.useMemo(()=>e.map((E,S)=>{let h;for(const p of r)if("dataIndex"in p){let x;if(Array.isArray(p.dataIndex)?x=p.dataIndex.join(","):x=p.dataIndex,E===x){h=p;break}}if(!h||!("dataIndex"in h))return"";const c=o&&h&&!h.columnSortDisabled;let g;h&&Array.isArray(h.dataIndex)?g=h.dataIndex.join(","):h&&(g=h.dataIndex);const v=typeof g=="string"&&t.includes(g);return h?$.jsxs("li",{draggable:c,onDragEnd:m,onDragStart:u,"data-index":S,"data-id":Array.isArray(h.dataIndex)?h.dataIndex.join(","):String(h.dataIndex),children:[o&&$.jsx(qt.HolderOutlined,{className:"icon-drag"}),a&&$.jsx(Ee.Checkbox,{style:{marginRight:"10px"},checked:!!v,disabled:h.columnVisibleDisabled,onChange:p=>{b(p,h)}}),typeof h.title=="function"?h.title({}):h.title]},Array.isArray(h.dataIndex)?h.dataIndex.join(","):String(h.dataIndex)):null}),[e,t,r,o,a]);return $.jsx(Ee.Popover,{overlayClassName:"table-columns-setting-popover",content:$.jsx(of,{onDragOver:d,children:w}),trigger:"click",align:{offset:[-60,-14]},styles:{body:{padding:0}},children:$.jsx(Ca,{type:"icon-setting",style:{float:"right",fontSize:"17px",lineHeight:1,marginTop:"2px",fontWeight:500}})})}const lf=Ne.div`
|
|
186
186
|
position: absolute;
|
|
187
187
|
left: 8px;
|
|
188
188
|
`,uf=Ne.span`
|
|
@@ -295,8 +295,6 @@ Valid keys: `+JSON.stringify(Object.keys(N),null," "));var C=Ae(H,se,W,ee,te+".
|
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
`;function Tf(e,t){const{columns:r=[],columnsSort:n,columnsVisible:a,tableId:o="",pagination:i,dataSource:s,columnsResizable:l}=e,m=location.pathname+o,[d,b]=bs("TABLE_"+m,{defaultValue:null}),[y,w]=M.useState([]),[E,S]=M.useState([]),h=M.useRef(null),c=A=>{w(A),v(A,E)},g=A=>{S(A),v(y,A)},v=(A,k)=>{b({order:A,visibleItems:k})},p=()=>{if(d)w(d.order),S(d.visibleItems);else{const A=[],k=[];for(const B of r){let U;"dataIndex"in B&&(Array.isArray(B.dataIndex)?U=B.dataIndex.join(","):U=B.dataIndex,A.push(U),"columnVisible"in B&&!B.columnVisible||k.push(U))}w(A),S(k)}},x=A=>{const k={...A},B=U=>$.jsxs("span",{children:[U,$.jsx(sf,{onChangeOrder:c,onChangeVisible:g,order:y,columnsSort:n,visibleItems:E,columns:r,columnsVisible:a})]});return typeof A.title=="function"?k.title=U=>B(A.title(U)):k.title=B(A.title),k},f=A=>A!=null&&A!==""?$.jsx(Ee.Tooltip,{title:A,placement:"topLeft",children:$.jsx("span",{className:"column-ellipsis",children:A})}):"-",P=M.useMemo(()=>{let A=r;if(!n&&!a)A=r;else{const k=[];y.filter(B=>E.includes(B)).forEach((B,U,L)=>{for(const J of r)if("dataIndex"in J){let X;if(Array.isArray(J.dataIndex)?X=J.dataIndex.join(","):X=J.dataIndex,B===X){(n||a)&&U===L.length-1?k.push(x(J)):k.push(J);break}}}),A=k}return A.map(k=>{if(k.filters&&!k.filterIcon&&(k.filterIcon=$.jsx(qt.DownOutlined,{type:"icon-xiajiantou",style:{fontWeight:500}})),k.ellipsis===!1)k.ellipsis=!1;else{const B=k.ellipsis||{};k.ellipsis={showTitle:!1,...B},k.render||(k.render=f)}return k})},[y,E,r]),j=M.useMemo(()=>e.pagination?{...i||{},showTotal:()=>s&&s.length>0&&$.jsx(hf,{...e})}:!1,[i]);return M.useEffect(()=>{p()},[]),$.jsx(_f,{ref:t,children:$.jsx(Ee.Table,{ref:h,scroll:{x:900},components:{header:{cell:l?Pf:void 0}},...e,pagination:j,columns:l?Of(P,o):P})})}const Cf=M.forwardRef(Tf),Df=Ne(Ee.Form.Item)`
|
|
298
|
-
margin-bottom: 0 !important;
|
|
299
|
-
|
|
300
298
|
.search-item__label {
|
|
301
299
|
position: relative;
|
|
302
300
|
display: inline-flex;
|
|
@@ -325,14 +323,16 @@ Valid keys: `+JSON.stringify(Object.keys(N),null," "));var C=Ae(H,se,W,ee,te+".
|
|
|
325
323
|
transition: max-height 0.4s ease-in-out;
|
|
326
324
|
max-height: ${e=>e.show?"450px":"0"};
|
|
327
325
|
`,If=Ne(Ee.Form)`
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
background: #F7FAFB;
|
|
332
|
-
border: 1px solid #F3F3F4;
|
|
333
|
-
|
|
334
|
-
.ant-form-item {
|
|
326
|
+
&.ant-form {
|
|
327
|
+
padding: 20px;
|
|
328
|
+
padding-bottom: 0;
|
|
335
329
|
margin-bottom: 20px;
|
|
330
|
+
background: #F7FAFB;
|
|
331
|
+
border: 1px solid #F3F3F4;
|
|
332
|
+
|
|
333
|
+
.ant-form-item {
|
|
334
|
+
margin-bottom: 20px;
|
|
335
|
+
}
|
|
336
336
|
}
|
|
337
337
|
`,kf=Ne.div`
|
|
338
338
|
gap: 10px;
|
|
@@ -340,7 +340,7 @@ Valid keys: `+JSON.stringify(Object.keys(N),null," "));var C=Ae(H,se,W,ee,te+".
|
|
|
340
340
|
justify-content: flex-end;
|
|
341
341
|
margin-bottom: 20px;
|
|
342
342
|
`;function Ff({children:e,onSearch:t,onClose:r,onReset:n,resetFieldsValue:a,col:o={},row:i={},loading:s=!1,instance:l,...u}){const[m]=Ee.Form.useForm(),[d,b]=M.useState((l==null?void 0:l.show)??!1),y=M.useMemo(()=>(l==null?void 0:l.show)??d,[l,d]),w=M.useCallback(()=>{var c;typeof(l==null?void 0:l.toggle)=="function"?(c=l==null?void 0:l.toggle)==null||c.call(l):b(g=>!g)},[l,d]),E=()=>{const c=m.getFieldsValue();t==null||t(c)},S=()=>{a?m.setFieldsValue(a):m.resetFields(),E(),n==null||n()},h=()=>{w(),r==null||r()};return $.jsx(Mf,{show:y,children:$.jsx(If,{form:m,labelCol:{flex:"70px"},wrapperCol:{flex:"1",style:{maxWidth:"280px"}},...u,children:$.jsxs(Ee.Row,{gutter:10,justify:"space-between",...i,children:[Array.isArray(e)?e.map(c=>M.createElement(Ee.Col,{span:6,xxl:6,xl:8,lg:12,xs:24,key:c.props.name||c.key||c.props.label,...o},c)):e,$.jsx(Ee.Col,{flex:1,children:$.jsxs(kf,{children:[$.jsx(Ee.Button,{loading:s,type:"primary",onClick:E,children:$.jsx($t,{id:"component.searcharea.submit",defaultMessage:"筛选"})}),$.jsx(Ee.Button,{loading:s,onClick:S,children:$.jsx($t,{id:"component.searcharea.reset",defaultMessage:"重置"})}),$.jsxs(Ee.Button,{type:"link",style:{paddingLeft:0,paddingRight:0},onClick:h,children:[$.jsx($t,{id:"component.searcharea.close",defaultMessage:"收起"}),$.jsx(qt.UpOutlined,{})]})]})})]})})})}const pn=Ff;function Lf(e){const[t,r]=M.useState(e??!1);return{show:t,toggle:()=>{r(a=>!a)}}}pn.useSearchArea=Lf;pn.Item=jf;pn.ToggleButton=Af;function zf(e,t,r){const n=Qc(e,{...t,onError(o,i){var s;((t==null?void 0:t.errorMessage)??!0)&&exports.message.error(o.message),(s=t==null?void 0:t.onError)==null||s.call(t,o,i)}},r),a=n.data&&typeof n.data=="object"&&"data"in n.data?n.data.data:n.data;return{...n,data:a}}const $f={ascend:"ASC",descend:"DESC"},Uf={rowKey:"id",interval:!1,immediate:!0,defaultPagination:{current:1,pageSize:10},showRowSelection:!1,multiPageSelection:!1,onBeforeRequest:async e=>{},onAfterRequest:async e=>{}};function Wf(e,t={}){const r=Nu(),{rowKey:n,interval:a,immediate:o,defaultPagination:i,showRowSelection:s,multiPageSelection:l,onBeforeRequest:u,onAfterRequest:m}={...Uf,...t},d=M.useRef(null),[b,y]=M.useState(!1),[w,E]=M.useState([]),[S,h]=M.useState({current:1,pageSize:10,total:0,...i}),[c,g]=M.useState([]),{current:v}=M.useRef({pageNum:1,pageSize:10,column:null,order:null}),p=M.useRef(S);p.current=S;const x=et(async(L=1,J=10,X)=>{if(X!=="auto")y(!0),P();else if(c.length!==0){f(L,J);return}try{const ue={...v,pageNum:Number(L),pageSize:Number(J)},Z=await(u==null?void 0:u(ue)),N=await e(Z!==void 0?Z:ue),{records:O,total:F,current:z,size:W}=N.data,ee=await(m==null?void 0:m(N)),te=Array.isArray(ee)?ee:O;if(E(te),(z!==S.current||J!==S.pageSize||F!==S.total)&&h({current:z,pageSize:W,total:F}),te.length===0&&z&&z>1&&F&&F>0){const H=Math.ceil(F/W);x(H,J,X)}else f(z,W)}catch(ue){const Z=ue instanceof Error?ue.message:"请求失败";exports.message.error(Z)}finally{l||g([]),y(!1)}}),f=et((L,J)=>{a&&(P(),d.current===null&&(d.current=setTimeout(()=>{x(L,J,"auto")},a)))}),P=M.useCallback(()=>{d.current&&(clearTimeout(d.current),d.current=null)},[]),j=M.useCallback((L,J,X)=>{g(J)},[]),A=M.useCallback((L={})=>{const J={pageNum:1,pageSize:S.pageSize,column:v.column,order:v.order};Object.keys(v).forEach(X=>{X!=="column"&&X!=="order"&&X!=="pageNum"&&X!=="pageSize"&&Reflect.deleteProperty(v,X)}),Object.assign(v,J,L),x(1,S.pageSize)},[S.pageSize,x,v]),k=M.useCallback(L=>{if(L){const J={column:v.column,order:v.order};L!=null&&L.pageSize&&h({...S,pageSize:L.pageSize}),L!=null&&L.pageNum&&h({...S,current:L.pageNum});for(const X in v)delete v[X];Object.assign(v,J,L),x((L==null?void 0:L.pageNum)||S.current,(L==null?void 0:L.pageSize)||S.pageSize)}else x(S.current,S.pageSize)},[x,S,v]),B=M.useCallback((L,J,X,ue)=>{var O;Object.entries(J).forEach(([F,z])=>{z&&Array.isArray(z)&&z.length===1?v[F]=z[0]:v[F]=z});const Z=Array.isArray(X)?X[0]:X;Z!=null&&Z.order?((O=Z==null?void 0:Z.column)!=null&&O.sort?v.column=Z.column.sort:Z.field&&(v.column=Array.isArray(Z.field)?Z.field[0]:Z.field),v.order=$f[Z.order]):(v.column=null,v.order=null);const we=L.current??p.current.current,N=L.pageSize??p.current.pageSize;x(we,N)},[x,v]),U=()=>{g([]),E([]),h({current:1,pageSize:10,total:0,...i}),y(!1),v.pageNum=1,v.pageSize=(i==null?void 0:i.pageSize)||10};return M.useEffect(()=>(o&&x(p.current.current,p.current.pageSize),()=>{P()}),[o,x,P]),{loading:b,tableProps:{rowKey:String(n),loading:b,dataSource:w,...s?{rowSelection:{selectedRowKeys:c.map(L=>L[n]),onChange:j}}:{},onChange:B,pagination:{showQuickJumper:!0,showSizeChanger:!0,showTotal:L=>r.$t({id:"component.table.total",defaultMessage:"共{total}条"},{total:L}),...S}},search:{pagination:S,params:v,submit:A,refresh:k,reset:U},rowSelection:{selectedRows:c,selectedRowKeys:c.map(L=>L[n])}}}/**
|
|
343
|
-
* @remix-run/router v1.23.
|
|
343
|
+
* @remix-run/router v1.23.2
|
|
344
344
|
*
|
|
345
345
|
* Copyright (c) Remix Software Inc.
|
|
346
346
|
*
|
|
@@ -348,9 +348,9 @@ Valid keys: `+JSON.stringify(Object.keys(N),null," "));var C=Ae(H,se,W,ee,te+".
|
|
|
348
348
|
* LICENSE.md file in the root directory of this source tree.
|
|
349
349
|
*
|
|
350
350
|
* @license MIT
|
|
351
|
-
*/function Se(){return Se=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Se.apply(this,arguments)}var Oe;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(Oe||(Oe={}));function Ps(e){e===void 0&&(e={});let{initialEntries:t=["/"],initialIndex:r,v5Compat:n=!1}=e,a;a=t.map((y,w)=>m(y,typeof y=="string"?null:y.state,w===0?"default":void 0));let o=l(r??a.length-1),i=Oe.Pop,s=null;function l(y){return Math.min(Math.max(y,0),a.length-1)}function u(){return a[o]}function m(y,w,E){w===void 0&&(w=null);let S=da(a?u().pathname:"/",y,w,E);return je(S.pathname.charAt(0)==="/","relative pathnames are not supported in memory history: "+JSON.stringify(y)),S}function d(y){return typeof y=="string"?y:wr(y)}return{get index(){return o},get action(){return i},get location(){return u()},createHref:d,createURL(y){return new URL(d(y),"http://localhost")},encodeLocation(y){let w=typeof y=="string"?Ge(y):y;return{pathname:w.pathname||"",search:w.search||"",hash:w.hash||""}},push(y,w){i=Oe.Push;let E=m(y,w);o+=1,a.splice(o,a.length,E),n&&s&&s({action:i,location:E,delta:1})},replace(y,w){i=Oe.Replace;let E=m(y,w);a[o]=E,n&&s&&s({action:i,location:E,delta:0})},go(y){i=Oe.Pop;let w=l(o+y),E=a[w];o=w,s&&s({action:i,location:E,delta:y})},listen(y){return s=y,()=>{s=null}}}}function K(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function je(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function qf(){return Math.random().toString(36).substr(2,8)}function da(e,t,r,n){return r===void 0&&(r=null),Se({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ge(t):t,{state:r,key:t&&t.key||n||qf()})}function wr(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function Ge(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}var be;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(be||(be={}));const Bf=new Set(["lazy","caseSensitive","path","id","index","children"]);function Hf(e){return e.index===!0}function Qr(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,o)=>{let i=[...r,String(o)],s=typeof a.id=="string"?a.id:i.join("-");if(K(a.index!==!0||!a.children,"Cannot specify children on an index route"),K(!n[s],'Found a route id collision on id "'+s+`". Route id's must be globally unique within Data Router usages`),Hf(a)){let l=Se({},a,t(a),{id:s});return n[s]=l,l}else{let l=Se({},a,t(a),{id:s,children:void 0});return n[s]=l,a.children&&(l.children=Qr(a.children,t,i,n)),l}})}function dt(e,t,r){return r===void 0&&(r="/"),Gr(e,t,r,!1)}function Gr(e,t,r,n){let a=typeof t=="string"?Ge(t):t,o=_t(a.pathname||"/",r);if(o==null)return null;let i=_s(e);Yf(i);let s=null;for(let l=0;s==null&&l<i.length;++l){let u=Cs(o);s=td(i[l],u,n)}return s}function Os(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function _s(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let a=(o,i,s)=>{let l={relativePath:s===void 0?o.path||"":s,caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};l.relativePath.startsWith("/")&&(K(l.relativePath.startsWith(n),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(n.length));let u=ot([n,l.relativePath]),m=r.concat(l);o.children&&o.children.length>0&&(K(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),_s(o.children,t,m,u)),!(o.path==null&&!o.index)&&t.push({path:u,score:Qf(u,o.index),routesMeta:m})};return e.forEach((o,i)=>{var s;if(o.path===""||!((s=o.path)!=null&&s.includes("?")))a(o,i);else for(let l of Ts(o.path))a(o,i,l)}),t}function Ts(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),o=r.replace(/\?$/,"");if(n.length===0)return a?[o,""]:[o];let i=Ts(n.join("/")),s=[];return s.push(...i.map(l=>l===""?o:[o,l].join("/"))),a&&s.push(...i),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function Yf(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:ed(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const Vf=/^:[\w-]+$/,Xf=3,Gf=2,Kf=1,Jf=10,Zf=-2,gi=e=>e==="*";function Qf(e,t){let r=e.split("/"),n=r.length;return r.some(gi)&&(n+=Zf),t&&(n+=Gf),r.filter(a=>!gi(a)).reduce((a,o)=>a+(Vf.test(o)?Xf:o===""?Kf:Jf),n)}function ed(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function td(e,t,r){r===void 0&&(r=!1);let{routesMeta:n}=e,a={},o="/",i=[];for(let s=0;s<n.length;++s){let l=n[s],u=s===n.length-1,m=o==="/"?t:t.slice(o.length)||"/",d=en({path:l.relativePath,caseSensitive:l.caseSensitive,end:u},m),b=l.route;if(!d&&u&&r&&!n[n.length-1].route.index&&(d=en({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},m)),!d)return null;Object.assign(a,d.params),i.push({params:a,pathname:ot([o,d.pathname]),pathnameBase:id(ot([o,d.pathnameBase])),route:b}),d.pathnameBase!=="/"&&(o=ot([o,d.pathnameBase]))}return i}function rd(e,t){t===void 0&&(t={});let r=e;r.endsWith("*")&&r!=="*"&&!r.endsWith("/*")&&(je(!1,'Route path "'+r+'" will be treated as if it were '+('"'+r.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+r.replace(/\*$/,"/*")+'".')),r=r.replace(/\*$/,"/*"));const n=r.startsWith("/")?"/":"",a=i=>i==null?"":typeof i=="string"?i:String(i),o=r.split(/\/+/).map((i,s,l)=>{if(s===l.length-1&&i==="*")return a(t["*"]);const m=i.match(/^:([\w-]+)(\??)$/);if(m){const[,d,b]=m;let y=t[d];return K(b==="?"||y!=null,'Missing ":'+d+'" param'),a(y)}return i.replace(/\?$/g,"")}).filter(i=>!!i);return n+o.join("/")}function en(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=nd(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),s=a.slice(1);return{params:n.reduce((u,m,d)=>{let{paramName:b,isOptional:y}=m;if(b==="*"){let E=s[d]||"";i=o.slice(0,o.length-E.length).replace(/(.)\/+$/,"$1")}const w=s[d];return y&&!w?u[b]=void 0:u[b]=(w||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function nd(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),je(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,s,l)=>(n.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function Cs(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return je(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function _t(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}const ad=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,od=e=>ad.test(e);function Ds(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?Ge(e):e,o;if(r)if(od(r))o=r;else{if(r.includes("//")){let i=r;r=r.replace(/\/\/+/g,"/"),je(!1,"Pathnames cannot have embedded double slashes - normalizing "+(i+" -> "+r))}r.startsWith("/")?o=vi(r.substring(1),"/"):o=vi(r,t)}else o=t;return{pathname:o,search:sd(n),hash:ld(a)}}function vi(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function Gn(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function js(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function hn(e,t){let r=js(e);return t?r.map((n,a)=>a===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function mn(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=Ge(e):(a=Se({},e),K(!a.pathname||!a.pathname.includes("?"),Gn("?","pathname","search",a)),K(!a.pathname||!a.pathname.includes("#"),Gn("#","pathname","hash",a)),K(!a.search||!a.search.includes("#"),Gn("#","search","hash",a)));let o=e===""||a.pathname==="",i=o?"/":a.pathname,s;if(i==null)s=r;else{let d=t.length-1;if(!n&&i.startsWith("..")){let b=i.split("/");for(;b[0]==="..";)b.shift(),d-=1;a.pathname=b.join("/")}s=d>=0?t[d]:"/"}let l=Ds(a,s),u=i&&i!=="/"&&i.endsWith("/"),m=(o||i===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(u||m)&&(l.pathname+="/"),l}const ot=e=>e.join("/").replace(/\/\/+/g,"/"),id=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),sd=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,ld=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,ud=function(t,r){r===void 0&&(r={});let n=typeof r=="number"?{status:r}:r,a=new Headers(n.headers);return a.has("Content-Type")||a.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(t),Se({},n,{headers:a}))};class tn extends Error{}class cd{constructor(t,r){this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],K(t&&typeof t=="object"&&!Array.isArray(t),"defer() only accepts plain objects");let n;this.abortPromise=new Promise((o,i)=>n=i),this.controller=new AbortController;let a=()=>n(new tn("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",a),this.controller.signal.addEventListener("abort",a),this.data=Object.entries(t).reduce((o,i)=>{let[s,l]=i;return Object.assign(o,{[s]:this.trackPromise(s,l)})},{}),this.done&&this.unlistenAbortSignal(),this.init=r}trackPromise(t,r){if(!(r instanceof Promise))return r;this.deferredKeys.push(t),this.pendingKeysSet.add(t);let n=Promise.race([r,this.abortPromise]).then(a=>this.onSettle(n,t,void 0,a),a=>this.onSettle(n,t,a));return n.catch(()=>{}),Object.defineProperty(n,"_tracked",{get:()=>!0}),n}onSettle(t,r,n,a){if(this.controller.signal.aborted&&n instanceof tn)return this.unlistenAbortSignal(),Object.defineProperty(t,"_error",{get:()=>n}),Promise.reject(n);if(this.pendingKeysSet.delete(r),this.done&&this.unlistenAbortSignal(),n===void 0&&a===void 0){let o=new Error('Deferred data for key "'+r+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(t,"_error",{get:()=>o}),this.emit(!1,r),Promise.reject(o)}return a===void 0?(Object.defineProperty(t,"_error",{get:()=>n}),this.emit(!1,r),Promise.reject(n)):(Object.defineProperty(t,"_data",{get:()=>a}),this.emit(!1,r),a)}emit(t,r){this.subscribers.forEach(n=>n(t,r))}subscribe(t){return this.subscribers.add(t),()=>this.subscribers.delete(t)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach((t,r)=>this.pendingKeysSet.delete(r)),this.emit(!0)}async resolveData(t){let r=!1;if(!this.done){let n=()=>this.cancel();t.addEventListener("abort",n),r=await new Promise(a=>{this.subscribe(o=>{t.removeEventListener("abort",n),(o||this.done)&&a(o)})})}return r}get done(){return this.pendingKeysSet.size===0}get unwrappedData(){return K(this.data!==null&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce((t,r)=>{let[n,a]=r;return Object.assign(t,{[n]:dd(a)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}function fd(e){return e instanceof Promise&&e._tracked===!0}function dd(e){if(!fd(e))return e;if(e._error)throw e._error;return e._data}const pd=function(t,r){r===void 0&&(r={});let n=typeof r=="number"?{status:r}:r;return new cd(t,n)},Ia=function(t,r){r===void 0&&(r=302);let n=r;typeof n=="number"?n={status:n}:typeof n.status>"u"&&(n.status=302);let a=new Headers(n.headers);return a.set("Location",t),new Response(null,Se({},n,{headers:a}))},hd=(e,t)=>{let r=Ia(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},md=(e,t)=>{let r=Ia(e,t);return r.headers.set("X-Remix-Replace","true"),r};class pa{constructor(t,r,n,a){a===void 0&&(a=!1),this.status=t,this.statusText=r||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function Wt(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const Ns=["post","put","patch","delete"],gd=new Set(Ns),vd=["get",...Ns],yd=new Set(vd),bd=new Set([301,302,303,307,308]),Ed=new Set([307,308]),Kn={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},xd={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ft={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ka=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Sd=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),As="remix-router-transitions";function wd(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",n=!r;K(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a;if(e.mapRouteProperties)a=e.mapRouteProperties;else if(e.detectErrorBoundary){let R=e.detectErrorBoundary;a=_=>({hasErrorBoundary:R(_)})}else a=Sd;let o={},i=Qr(e.routes,a,void 0,o),s,l=e.basename||"/",u=e.dataStrategy||_d,m=e.patchRoutesOnNavigation,d=Se({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),b=null,y=new Set,w=null,E=null,S=null,h=e.hydrationData!=null,c=dt(i,e.history.location,l),g=!1,v=null;if(c==null&&!m){let R=ze(404,{pathname:e.history.location.pathname}),{matches:_,route:T}=Ti(i);c=_,v={[T.id]:R}}c&&!e.hydrationData&&_r(c,i,e.history.location.pathname).active&&(c=null);let p;if(c)if(c.some(R=>R.route.lazy))p=!1;else if(!c.some(R=>R.route.loader))p=!0;else if(d.v7_partialHydration){let R=e.hydrationData?e.hydrationData.loaderData:null,_=e.hydrationData?e.hydrationData.errors:null;if(_){let T=c.findIndex(I=>_[I.route.id]!==void 0);p=c.slice(0,T+1).every(I=>!ma(I.route,R,_))}else p=c.every(T=>!ma(T.route,R,_))}else p=e.hydrationData!=null;else if(p=!1,c=[],d.v7_partialHydration){let R=_r(null,i,e.history.location.pathname);R.active&&R.matches&&(g=!0,c=R.matches)}let x,f={historyAction:e.history.action,location:e.history.location,matches:c,initialized:p,navigation:Kn,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||v,fetchers:new Map,blockers:new Map},P=Oe.Pop,j=!1,A,k=!1,B=new Map,U=null,L=!1,J=!1,X=[],ue=new Set,Z=new Map,we=0,N=-1,O=new Map,F=new Set,z=new Map,W=new Map,ee=new Set,te=new Map,H=new Map,ne;function le(){if(b=e.history.listen(R=>{let{action:_,location:T,delta:I}=R;if(ne){ne(),ne=void 0;return}je(H.size===0||I!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let q=Qa({currentLocation:f.location,nextLocation:T,historyAction:_});if(q&&I!=null){let re=new Promise(ae=>{ne=ae});e.history.go(I*-1),Or(q,{state:"blocked",location:T,proceed(){Or(q,{state:"proceeding",proceed:void 0,reset:void 0,location:T}),re.then(()=>e.history.go(I))},reset(){let ae=new Map(f.blockers);ae.set(q,Ft),C({blockers:ae})}});return}return yt(_,T)}),r){Ud(t,B);let R=()=>Wd(t,B);t.addEventListener("pagehide",R),U=()=>t.removeEventListener("pagehide",R)}return f.initialized||yt(Oe.Pop,f.location,{initialHydration:!0}),x}function se(){b&&b(),U&&U(),y.clear(),A&&A.abort(),f.fetchers.forEach((R,_)=>Pr(_)),f.blockers.forEach((R,_)=>Za(_))}function Ae(R){return y.add(R),()=>y.delete(R)}function C(R,_){_===void 0&&(_={}),f=Se({},f,R);let T=[],I=[];d.v7_fetcherPersist&&f.fetchers.forEach((q,re)=>{q.state==="idle"&&(ee.has(re)?I.push(re):T.push(re))}),ee.forEach(q=>{!f.fetchers.has(q)&&!Z.has(q)&&I.push(q)}),[...y].forEach(q=>q(f,{deletedFetchers:I,viewTransitionOpts:_.viewTransitionOpts,flushSync:_.flushSync===!0})),d.v7_fetcherPersist?(T.forEach(q=>f.fetchers.delete(q)),I.forEach(q=>Pr(q))):I.forEach(q=>ee.delete(q))}function _e(R,_,T){var I,q;let{flushSync:re}=T===void 0?{}:T,ae=f.actionData!=null&&f.navigation.formMethod!=null&&Ve(f.navigation.formMethod)&&f.navigation.state==="loading"&&((I=R.state)==null?void 0:I._isRedirect)!==!0,V;_.actionData?Object.keys(_.actionData).length>0?V=_.actionData:V=null:ae?V=f.actionData:V=null;let G=_.loaderData?Oi(f.loaderData,_.loaderData,_.matches||[],_.errors):f.loaderData,Y=f.blockers;Y.size>0&&(Y=new Map(Y),Y.forEach((ce,Me)=>Y.set(Me,Ft)));let Q=j===!0||f.navigation.formMethod!=null&&Ve(f.navigation.formMethod)&&((q=R.state)==null?void 0:q._isRedirect)!==!0;s&&(i=s,s=void 0),L||P===Oe.Pop||(P===Oe.Push?e.history.push(R,R.state):P===Oe.Replace&&e.history.replace(R,R.state));let ie;if(P===Oe.Pop){let ce=B.get(f.location.pathname);ce&&ce.has(R.pathname)?ie={currentLocation:f.location,nextLocation:R}:B.has(R.pathname)&&(ie={currentLocation:R,nextLocation:f.location})}else if(k){let ce=B.get(f.location.pathname);ce?ce.add(R.pathname):(ce=new Set([R.pathname]),B.set(f.location.pathname,ce)),ie={currentLocation:f.location,nextLocation:R}}C(Se({},_,{actionData:V,loaderData:G,historyAction:P,location:R,initialized:!0,navigation:Kn,revalidation:"idle",restoreScrollPosition:to(R,_.matches||f.matches),preventScrollReset:Q,blockers:Y}),{viewTransitionOpts:ie,flushSync:re===!0}),P=Oe.Pop,j=!1,k=!1,L=!1,J=!1,X=[]}async function Be(R,_){if(typeof R=="number"){e.history.go(R);return}let T=ha(f.location,f.matches,l,d.v7_prependBasename,R,d.v7_relativeSplatPath,_==null?void 0:_.fromRouteId,_==null?void 0:_.relative),{path:I,submission:q,error:re}=yi(d.v7_normalizeFormMethod,!1,T,_),ae=f.location,V=da(f.location,I,_&&_.state);V=Se({},V,e.history.encodeLocation(V));let G=_&&_.replace!=null?_.replace:void 0,Y=Oe.Push;G===!0?Y=Oe.Replace:G===!1||q!=null&&Ve(q.formMethod)&&q.formAction===f.location.pathname+f.location.search&&(Y=Oe.Replace);let Q=_&&"preventScrollReset"in _?_.preventScrollReset===!0:void 0,ie=(_&&_.flushSync)===!0,ce=Qa({currentLocation:ae,nextLocation:V,historyAction:Y});if(ce){Or(ce,{state:"blocked",location:V,proceed(){Or(ce,{state:"proceeding",proceed:void 0,reset:void 0,location:V}),Be(R,_)},reset(){let Me=new Map(f.blockers);Me.set(ce,Ft),C({blockers:Me})}});return}return await yt(Y,V,{submission:q,pendingError:re,preventScrollReset:Q,replace:_&&_.replace,enableViewTransition:_&&_.viewTransition,flushSync:ie})}function vt(){if(yn(),C({revalidation:"loading"}),f.navigation.state!=="submitting"){if(f.navigation.state==="idle"){yt(f.historyAction,f.location,{startUninterruptedRevalidation:!0});return}yt(P||f.historyAction,f.navigation.location,{overrideNavigation:f.navigation,enableViewTransition:k===!0})}}async function yt(R,_,T){A&&A.abort(),A=null,P=R,L=(T&&T.startUninterruptedRevalidation)===!0,sl(f.location,f.matches),j=(T&&T.preventScrollReset)===!0,k=(T&&T.enableViewTransition)===!0;let I=s||i,q=T&&T.overrideNavigation,re=T!=null&&T.initialHydration&&f.matches&&f.matches.length>0&&!g?f.matches:dt(I,_,l),ae=(T&&T.flushSync)===!0;if(re&&f.initialized&&!J&&Ad(f.location,_)&&!(T&&T.submission&&Ve(T.submission.formMethod))){_e(_,{matches:re},{flushSync:ae});return}let V=_r(re,I,_.pathname);if(V.active&&V.matches&&(re=V.matches),!re){let{error:xe,notFoundMatches:de,route:Re}=bn(_.pathname);_e(_,{matches:de,loaderData:{},errors:{[Re.id]:xe}},{flushSync:ae});return}A=new AbortController;let G=Mt(e.history,_,A.signal,T&&T.submission),Y;if(T&&T.pendingError)Y=[Rt(re).route.id,{type:be.error,error:T.pendingError}];else if(T&&T.submission&&Ve(T.submission.formMethod)){let xe=await Zs(G,_,T.submission,re,V.active,{replace:T.replace,flushSync:ae});if(xe.shortCircuited)return;if(xe.pendingActionResult){let[de,Re]=xe.pendingActionResult;if(We(Re)&&Wt(Re.error)&&Re.error.status===404){A=null,_e(_,{matches:xe.matches,loaderData:{},errors:{[de]:Re.error}});return}}re=xe.matches||re,Y=xe.pendingActionResult,q=Jn(_,T.submission),ae=!1,V.active=!1,G=Mt(e.history,G.url,G.signal)}let{shortCircuited:Q,matches:ie,loaderData:ce,errors:Me}=await Qs(G,_,re,V.active,q,T&&T.submission,T&&T.fetcherSubmission,T&&T.replace,T&&T.initialHydration===!0,ae,Y);Q||(A=null,_e(_,Se({matches:ie||re},_i(Y),{loaderData:ce,errors:Me})))}async function Zs(R,_,T,I,q,re){re===void 0&&(re={}),yn();let ae=zd(_,T);if(C({navigation:ae},{flushSync:re.flushSync===!0}),q){let Y=await Tr(I,_.pathname,R.signal);if(Y.type==="aborted")return{shortCircuited:!0};if(Y.type==="error"){let Q=Rt(Y.partialMatches).route.id;return{matches:Y.partialMatches,pendingActionResult:[Q,{type:be.error,error:Y.error}]}}else if(Y.matches)I=Y.matches;else{let{notFoundMatches:Q,error:ie,route:ce}=bn(_.pathname);return{matches:Q,pendingActionResult:[ce.id,{type:be.error,error:ie}]}}}let V,G=pr(I,_);if(!G.route.action&&!G.route.lazy)V={type:be.error,error:ze(405,{method:R.method,pathname:_.pathname,routeId:G.route.id})};else if(V=(await Vt("action",f,R,[G],I,null))[G.route.id],R.signal.aborted)return{shortCircuited:!0};if(Pt(V)){let Y;return re&&re.replace!=null?Y=re.replace:Y=wi(V.response.headers.get("Location"),new URL(R.url),l)===f.location.pathname+f.location.search,await bt(R,V,!0,{submission:T,replace:Y}),{shortCircuited:!0}}if(pt(V))throw ze(400,{type:"defer-action"});if(We(V)){let Y=Rt(I,G.route.id);return(re&&re.replace)!==!0&&(P=Oe.Push),{matches:I,pendingActionResult:[Y.route.id,V]}}return{matches:I,pendingActionResult:[G.route.id,V]}}async function Qs(R,_,T,I,q,re,ae,V,G,Y,Q){let ie=q||Jn(_,re),ce=re||ae||Di(ie),Me=!L&&(!d.v7_partialHydration||!G);if(I){if(Me){let Pe=Ya(Q);C(Se({navigation:ie},Pe!==void 0?{actionData:Pe}:{}),{flushSync:Y})}let fe=await Tr(T,_.pathname,R.signal);if(fe.type==="aborted")return{shortCircuited:!0};if(fe.type==="error"){let Pe=Rt(fe.partialMatches).route.id;return{matches:fe.partialMatches,loaderData:{},errors:{[Pe]:fe.error}}}else if(fe.matches)T=fe.matches;else{let{error:Pe,notFoundMatches:jt,route:Kt}=bn(_.pathname);return{matches:jt,loaderData:{},errors:{[Kt.id]:Pe}}}}let xe=s||i,[de,Re]=Ei(e.history,f,T,ce,_,d.v7_partialHydration&&G===!0,d.v7_skipActionErrorRevalidation,J,X,ue,ee,z,F,xe,l,Q);if(En(fe=>!(T&&T.some(Pe=>Pe.route.id===fe))||de&&de.some(Pe=>Pe.route.id===fe)),N=++we,de.length===0&&Re.length===0){let fe=Ka();return _e(_,Se({matches:T,loaderData:{},errors:Q&&We(Q[1])?{[Q[0]]:Q[1].error}:null},_i(Q),fe?{fetchers:new Map(f.fetchers)}:{}),{flushSync:Y}),{shortCircuited:!0}}if(Me){let fe={};if(!I){fe.navigation=ie;let Pe=Ya(Q);Pe!==void 0&&(fe.actionData=Pe)}Re.length>0&&(fe.fetchers=el(Re)),C(fe,{flushSync:Y})}Re.forEach(fe=>{lt(fe.key),fe.controller&&Z.set(fe.key,fe.controller)});let Dt=()=>Re.forEach(fe=>lt(fe.key));A&&A.signal.addEventListener("abort",Dt);let{loaderResults:Xt,fetcherResults:at}=await Va(f,T,de,Re,R);if(R.signal.aborted)return{shortCircuited:!0};A&&A.signal.removeEventListener("abort",Dt),Re.forEach(fe=>Z.delete(fe.key));let Ke=$r(Xt);if(Ke)return await bt(R,Ke.result,!0,{replace:V}),{shortCircuited:!0};if(Ke=$r(at),Ke)return F.add(Ke.key),await bt(R,Ke.result,!0,{replace:V}),{shortCircuited:!0};let{loaderData:xn,errors:Gt}=Pi(f,T,Xt,Q,Re,at,te);te.forEach((fe,Pe)=>{fe.subscribe(jt=>{(jt||fe.done)&&te.delete(Pe)})}),d.v7_partialHydration&&G&&f.errors&&(Gt=Se({},f.errors,Gt));let Et=Ka(),Cr=Ja(N),Dr=Et||Cr||Re.length>0;return Se({matches:T,loaderData:xn,errors:Gt},Dr?{fetchers:new Map(f.fetchers)}:{})}function Ya(R){if(R&&!We(R[1]))return{[R[0]]:R[1].data};if(f.actionData)return Object.keys(f.actionData).length===0?null:f.actionData}function el(R){return R.forEach(_=>{let T=f.fetchers.get(_.key),I=lr(void 0,T?T.data:void 0);f.fetchers.set(_.key,I)}),new Map(f.fetchers)}function tl(R,_,T,I){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");lt(R);let q=(I&&I.flushSync)===!0,re=s||i,ae=ha(f.location,f.matches,l,d.v7_prependBasename,T,d.v7_relativeSplatPath,_,I==null?void 0:I.relative),V=dt(re,ae,l),G=_r(V,re,ae);if(G.active&&G.matches&&(V=G.matches),!V){nt(R,_,ze(404,{pathname:ae}),{flushSync:q});return}let{path:Y,submission:Q,error:ie}=yi(d.v7_normalizeFormMethod,!0,ae,I);if(ie){nt(R,_,ie,{flushSync:q});return}let ce=pr(V,Y),Me=(I&&I.preventScrollReset)===!0;if(Q&&Ve(Q.formMethod)){rl(R,_,Y,ce,V,G.active,q,Me,Q);return}z.set(R,{routeId:_,path:Y}),nl(R,_,Y,ce,V,G.active,q,Me,Q)}async function rl(R,_,T,I,q,re,ae,V,G){yn(),z.delete(R);function Y(Ce){if(!Ce.route.action&&!Ce.route.lazy){let Nt=ze(405,{method:G.formMethod,pathname:T,routeId:_});return nt(R,_,Nt,{flushSync:ae}),!0}return!1}if(!re&&Y(I))return;let Q=f.fetchers.get(R);st(R,$d(G,Q),{flushSync:ae});let ie=new AbortController,ce=Mt(e.history,T,ie.signal,G);if(re){let Ce=await Tr(q,new URL(ce.url).pathname,ce.signal,R);if(Ce.type==="aborted")return;if(Ce.type==="error"){nt(R,_,Ce.error,{flushSync:ae});return}else if(Ce.matches){if(q=Ce.matches,I=pr(q,T),Y(I))return}else{nt(R,_,ze(404,{pathname:T}),{flushSync:ae});return}}Z.set(R,ie);let Me=we,de=(await Vt("action",f,ce,[I],q,R))[I.route.id];if(ce.signal.aborted){Z.get(R)===ie&&Z.delete(R);return}if(d.v7_fetcherPersist&&ee.has(R)){if(Pt(de)||We(de)){st(R,ft(void 0));return}}else{if(Pt(de))if(Z.delete(R),N>Me){st(R,ft(void 0));return}else return F.add(R),st(R,lr(G)),bt(ce,de,!1,{fetcherSubmission:G,preventScrollReset:V});if(We(de)){nt(R,_,de.error);return}}if(pt(de))throw ze(400,{type:"defer-action"});let Re=f.navigation.location||f.location,Dt=Mt(e.history,Re,ie.signal),Xt=s||i,at=f.navigation.state!=="idle"?dt(Xt,f.navigation.location,l):f.matches;K(at,"Didn't find any matches after fetcher action");let Ke=++we;O.set(R,Ke);let xn=lr(G,de.data);f.fetchers.set(R,xn);let[Gt,Et]=Ei(e.history,f,at,G,Re,!1,d.v7_skipActionErrorRevalidation,J,X,ue,ee,z,F,Xt,l,[I.route.id,de]);Et.filter(Ce=>Ce.key!==R).forEach(Ce=>{let Nt=Ce.key,ro=f.fetchers.get(Nt),cl=lr(void 0,ro?ro.data:void 0);f.fetchers.set(Nt,cl),lt(Nt),Ce.controller&&Z.set(Nt,Ce.controller)}),C({fetchers:new Map(f.fetchers)});let Cr=()=>Et.forEach(Ce=>lt(Ce.key));ie.signal.addEventListener("abort",Cr);let{loaderResults:Dr,fetcherResults:fe}=await Va(f,at,Gt,Et,Dt);if(ie.signal.aborted)return;ie.signal.removeEventListener("abort",Cr),O.delete(R),Z.delete(R),Et.forEach(Ce=>Z.delete(Ce.key));let Pe=$r(Dr);if(Pe)return bt(Dt,Pe.result,!1,{preventScrollReset:V});if(Pe=$r(fe),Pe)return F.add(Pe.key),bt(Dt,Pe.result,!1,{preventScrollReset:V});let{loaderData:jt,errors:Kt}=Pi(f,at,Dr,void 0,Et,fe,te);if(f.fetchers.has(R)){let Ce=ft(de.data);f.fetchers.set(R,Ce)}Ja(Ke),f.navigation.state==="loading"&&Ke>N?(K(P,"Expected pending action"),A&&A.abort(),_e(f.navigation.location,{matches:at,loaderData:jt,errors:Kt,fetchers:new Map(f.fetchers)})):(C({errors:Kt,loaderData:Oi(f.loaderData,jt,at,Kt),fetchers:new Map(f.fetchers)}),J=!1)}async function nl(R,_,T,I,q,re,ae,V,G){let Y=f.fetchers.get(R);st(R,lr(G,Y?Y.data:void 0),{flushSync:ae});let Q=new AbortController,ie=Mt(e.history,T,Q.signal);if(re){let de=await Tr(q,new URL(ie.url).pathname,ie.signal,R);if(de.type==="aborted")return;if(de.type==="error"){nt(R,_,de.error,{flushSync:ae});return}else if(de.matches)q=de.matches,I=pr(q,T);else{nt(R,_,ze(404,{pathname:T}),{flushSync:ae});return}}Z.set(R,Q);let ce=we,xe=(await Vt("loader",f,ie,[I],q,R))[I.route.id];if(pt(xe)&&(xe=await Fa(xe,ie.signal,!0)||xe),Z.get(R)===Q&&Z.delete(R),!ie.signal.aborted){if(ee.has(R)){st(R,ft(void 0));return}if(Pt(xe))if(N>ce){st(R,ft(void 0));return}else{F.add(R),await bt(ie,xe,!1,{preventScrollReset:V});return}if(We(xe)){nt(R,_,xe.error);return}K(!pt(xe),"Unhandled fetcher deferred data"),st(R,ft(xe.data))}}async function bt(R,_,T,I){let{submission:q,fetcherSubmission:re,preventScrollReset:ae,replace:V}=I===void 0?{}:I;_.response.headers.has("X-Remix-Revalidate")&&(J=!0);let G=_.response.headers.get("Location");K(G,"Expected a Location header on the redirect Response"),G=wi(G,new URL(R.url),l);let Y=da(f.location,G,{_isRedirect:!0});if(r){let de=!1;if(_.response.headers.has("X-Remix-Reload-Document"))de=!0;else if(ka.test(G)){const Re=e.history.createURL(G);de=Re.origin!==t.location.origin||_t(Re.pathname,l)==null}if(de){V?t.location.replace(G):t.location.assign(G);return}}A=null;let Q=V===!0||_.response.headers.has("X-Remix-Replace")?Oe.Replace:Oe.Push,{formMethod:ie,formAction:ce,formEncType:Me}=f.navigation;!q&&!re&&ie&&ce&&Me&&(q=Di(f.navigation));let xe=q||re;if(Ed.has(_.response.status)&&xe&&Ve(xe.formMethod))await yt(Q,Y,{submission:Se({},xe,{formAction:G}),preventScrollReset:ae||j,enableViewTransition:T?k:void 0});else{let de=Jn(Y,q);await yt(Q,Y,{overrideNavigation:de,fetcherSubmission:re,preventScrollReset:ae||j,enableViewTransition:T?k:void 0})}}async function Vt(R,_,T,I,q,re){let ae,V={};try{ae=await Td(u,R,_,T,I,q,re,o,a)}catch(G){return I.forEach(Y=>{V[Y.route.id]={type:be.error,error:G}}),V}for(let[G,Y]of Object.entries(ae))if(Md(Y)){let Q=Y.result;V[G]={type:be.redirect,response:jd(Q,T,G,q,l,d.v7_relativeSplatPath)}}else V[G]=await Dd(Y);return V}async function Va(R,_,T,I,q){let re=R.matches,ae=Vt("loader",R,q,T,_,null),V=Promise.all(I.map(async Q=>{if(Q.matches&&Q.match&&Q.controller){let ce=(await Vt("loader",R,Mt(e.history,Q.path,Q.controller.signal),[Q.match],Q.matches,Q.key))[Q.match.route.id];return{[Q.key]:ce}}else return Promise.resolve({[Q.key]:{type:be.error,error:ze(404,{pathname:Q.path})}})})),G=await ae,Y=(await V).reduce((Q,ie)=>Object.assign(Q,ie),{});return await Promise.all([Fd(_,G,q.signal,re,R.loaderData),Ld(_,Y,I)]),{loaderResults:G,fetcherResults:Y}}function yn(){J=!0,X.push(...En()),z.forEach((R,_)=>{Z.has(_)&&ue.add(_),lt(_)})}function st(R,_,T){T===void 0&&(T={}),f.fetchers.set(R,_),C({fetchers:new Map(f.fetchers)},{flushSync:(T&&T.flushSync)===!0})}function nt(R,_,T,I){I===void 0&&(I={});let q=Rt(f.matches,_);Pr(R),C({errors:{[q.route.id]:T},fetchers:new Map(f.fetchers)},{flushSync:(I&&I.flushSync)===!0})}function Xa(R){return W.set(R,(W.get(R)||0)+1),ee.has(R)&&ee.delete(R),f.fetchers.get(R)||xd}function Pr(R){let _=f.fetchers.get(R);Z.has(R)&&!(_&&_.state==="loading"&&O.has(R))&<(R),z.delete(R),O.delete(R),F.delete(R),d.v7_fetcherPersist&&ee.delete(R),ue.delete(R),f.fetchers.delete(R)}function al(R){let _=(W.get(R)||0)-1;_<=0?(W.delete(R),ee.add(R),d.v7_fetcherPersist||Pr(R)):W.set(R,_),C({fetchers:new Map(f.fetchers)})}function lt(R){let _=Z.get(R);_&&(_.abort(),Z.delete(R))}function Ga(R){for(let _ of R){let T=Xa(_),I=ft(T.data);f.fetchers.set(_,I)}}function Ka(){let R=[],_=!1;for(let T of F){let I=f.fetchers.get(T);K(I,"Expected fetcher: "+T),I.state==="loading"&&(F.delete(T),R.push(T),_=!0)}return Ga(R),_}function Ja(R){let _=[];for(let[T,I]of O)if(I<R){let q=f.fetchers.get(T);K(q,"Expected fetcher: "+T),q.state==="loading"&&(lt(T),O.delete(T),_.push(T))}return Ga(_),_.length>0}function ol(R,_){let T=f.blockers.get(R)||Ft;return H.get(R)!==_&&H.set(R,_),T}function Za(R){f.blockers.delete(R),H.delete(R)}function Or(R,_){let T=f.blockers.get(R)||Ft;K(T.state==="unblocked"&&_.state==="blocked"||T.state==="blocked"&&_.state==="blocked"||T.state==="blocked"&&_.state==="proceeding"||T.state==="blocked"&&_.state==="unblocked"||T.state==="proceeding"&&_.state==="unblocked","Invalid blocker state transition: "+T.state+" -> "+_.state);let I=new Map(f.blockers);I.set(R,_),C({blockers:I})}function Qa(R){let{currentLocation:_,nextLocation:T,historyAction:I}=R;if(H.size===0)return;H.size>1&&je(!1,"A router only supports one blocker at a time");let q=Array.from(H.entries()),[re,ae]=q[q.length-1],V=f.blockers.get(re);if(!(V&&V.state==="proceeding")&&ae({currentLocation:_,nextLocation:T,historyAction:I}))return re}function bn(R){let _=ze(404,{pathname:R}),T=s||i,{matches:I,route:q}=Ti(T);return En(),{notFoundMatches:I,route:q,error:_}}function En(R){let _=[];return te.forEach((T,I)=>{(!R||R(I))&&(T.cancel(),_.push(I),te.delete(I))}),_}function il(R,_,T){if(w=R,S=_,E=T||null,!h&&f.navigation===Kn){h=!0;let I=to(f.location,f.matches);I!=null&&C({restoreScrollPosition:I})}return()=>{w=null,S=null,E=null}}function eo(R,_){return E&&E(R,_.map(I=>Os(I,f.loaderData)))||R.key}function sl(R,_){if(w&&S){let T=eo(R,_);w[T]=S()}}function to(R,_){if(w){let T=eo(R,_),I=w[T];if(typeof I=="number")return I}return null}function _r(R,_,T){if(m)if(R){if(Object.keys(R[0].params).length>0)return{active:!0,matches:Gr(_,T,l,!0)}}else return{active:!0,matches:Gr(_,T,l,!0)||[]};return{active:!1,matches:null}}async function Tr(R,_,T,I){if(!m)return{type:"success",matches:R};let q=R;for(;;){let re=s==null,ae=s||i,V=o;try{await m({signal:T,path:_,matches:q,fetcherKey:I,patch:(Q,ie)=>{T.aborted||Si(Q,ie,ae,V,a)}})}catch(Q){return{type:"error",error:Q,partialMatches:q}}finally{re&&!T.aborted&&(i=[...i])}if(T.aborted)return{type:"aborted"};let G=dt(ae,_,l);if(G)return{type:"success",matches:G};let Y=Gr(ae,_,l,!0);if(!Y||q.length===Y.length&&q.every((Q,ie)=>Q.route.id===Y[ie].route.id))return{type:"success",matches:null};q=Y}}function ll(R){o={},s=Qr(R,a,void 0,o)}function ul(R,_){let T=s==null;Si(R,_,s||i,o,a),T&&(i=[...i],C({}))}return x={get basename(){return l},get future(){return d},get state(){return f},get routes(){return i},get window(){return t},initialize:le,subscribe:Ae,enableScrollRestoration:il,navigate:Be,fetch:tl,revalidate:vt,createHref:R=>e.history.createHref(R),encodeLocation:R=>e.history.encodeLocation(R),getFetcher:Xa,deleteFetcher:al,dispose:se,getBlocker:ol,deleteBlocker:Za,patchRoutes:ul,_internalFetchControllers:Z,_internalActiveDeferreds:te,_internalSetRoutes:ll},x}function Rd(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function ha(e,t,r,n,a,o,i,s){let l,u;if(i){l=[];for(let d of t)if(l.push(d),d.route.id===i){u=d;break}}else l=t,u=t[t.length-1];let m=mn(a||".",hn(l,o),_t(e.pathname,r)||e.pathname,s==="path");if(a==null&&(m.search=e.search,m.hash=e.hash),(a==null||a===""||a===".")&&u){let d=La(m.search);if(u.route.index&&!d)m.search=m.search?m.search.replace(/^\?/,"?index&"):"?index";else if(!u.route.index&&d){let b=new URLSearchParams(m.search),y=b.getAll("index");b.delete("index"),y.filter(E=>E).forEach(E=>b.append("index",E));let w=b.toString();m.search=w?"?"+w:""}}return n&&r!=="/"&&(m.pathname=m.pathname==="/"?r:ot([r,m.pathname])),wr(m)}function yi(e,t,r,n){if(!n||!Rd(n))return{path:r};if(n.formMethod&&!kd(n.formMethod))return{path:r,error:ze(405,{method:n.formMethod})};let a=()=>({path:r,error:ze(400,{type:"invalid-body"})}),o=n.formMethod||"get",i=e?o.toUpperCase():o.toLowerCase(),s=ks(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!Ve(i))return a();let b=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((y,w)=>{let[E,S]=w;return""+y+E+"="+S+`
|
|
352
|
-
`},""):String(n.body);return{path:r,submission:{formMethod:i,formAction:s,formEncType:n.formEncType,formData:void 0,json:void 0,text:b}}}else if(n.formEncType==="application/json"){if(!Ve(i))return a();try{let b=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:i,formAction:s,formEncType:n.formEncType,formData:void 0,json:b,text:void 0}}}catch{return a()}}}K(typeof FormData=="function","FormData is not available in this environment");let l,u;if(n.formData)l=ga(n.formData),u=n.formData;else if(n.body instanceof FormData)l=ga(n.body),u=n.body;else if(n.body instanceof URLSearchParams)l=n.body,u=Ri(l);else if(n.body==null)l=new URLSearchParams,u=new FormData;else try{l=new URLSearchParams(n.body),u=Ri(l)}catch{return a()}let m={formMethod:i,formAction:s,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:u,json:void 0,text:void 0};if(Ve(m.formMethod))return{path:r,submission:m};let d=Ge(r);return t&&d.search&&La(d.search)&&l.append("index",""),d.search="?"+l,{path:wr(d),submission:m}}function bi(e,t,r){r===void 0&&(r=!1);let n=e.findIndex(a=>a.route.id===t);return n>=0?e.slice(0,r?n+1:n):e}function Ei(e,t,r,n,a,o,i,s,l,u,m,d,b,y,w,E){let S=E?We(E[1])?E[1].error:E[1].data:void 0,h=e.createURL(t.location),c=e.createURL(a),g=r;o&&t.errors?g=bi(r,Object.keys(t.errors)[0],!0):E&&We(E[1])&&(g=bi(r,E[0]));let v=E?E[1].statusCode:void 0,p=i&&v&&v>=400,x=g.filter((P,j)=>{let{route:A}=P;if(A.lazy)return!0;if(A.loader==null)return!1;if(o)return ma(A,t.loaderData,t.errors);if(Pd(t.loaderData,t.matches[j],P)||l.some(U=>U===P.route.id))return!0;let k=t.matches[j],B=P;return xi(P,Se({currentUrl:h,currentParams:k.params,nextUrl:c,nextParams:B.params},n,{actionResult:S,actionStatus:v,defaultShouldRevalidate:p?!1:s||h.pathname+h.search===c.pathname+c.search||h.search!==c.search||Ms(k,B)}))}),f=[];return d.forEach((P,j)=>{if(o||!r.some(L=>L.route.id===P.routeId)||m.has(j))return;let A=dt(y,P.path,w);if(!A){f.push({key:j,routeId:P.routeId,path:P.path,matches:null,match:null,controller:null});return}let k=t.fetchers.get(j),B=pr(A,P.path),U=!1;b.has(j)?U=!1:u.has(j)?(u.delete(j),U=!0):k&&k.state!=="idle"&&k.data===void 0?U=s:U=xi(B,Se({currentUrl:h,currentParams:t.matches[t.matches.length-1].params,nextUrl:c,nextParams:r[r.length-1].params},n,{actionResult:S,actionStatus:v,defaultShouldRevalidate:p?!1:s})),U&&f.push({key:j,routeId:P.routeId,path:P.path,matches:A,match:B,controller:new AbortController})}),[x,f]}function ma(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=t!=null&&t[e.id]!==void 0,a=r!=null&&r[e.id]!==void 0;return!n&&a?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!n&&!a}function Pd(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function Ms(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function xi(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function Si(e,t,r,n,a){var o;let i;if(e){let u=n[e];K(u,"No route found to patch children into: routeId = "+e),u.children||(u.children=[]),i=u.children}else i=r;let s=t.filter(u=>!i.some(m=>Is(u,m))),l=Qr(s,a,[e||"_","patch",String(((o=i)==null?void 0:o.length)||"0")],n);i.push(...l)}function Is(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,n)=>{var a;return(a=t.children)==null?void 0:a.some(o=>Is(r,o))}):!1}async function Od(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];K(a,"No route found in manifest");let o={};for(let i in n){let l=a[i]!==void 0&&i!=="hasErrorBoundary";je(!l,'Route "'+a.id+'" has a static property "'+i+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+i+'" will be ignored.')),!l&&!Bf.has(i)&&(o[i]=n[i])}Object.assign(a,o),Object.assign(a,Se({},t(a),{lazy:void 0}))}async function _d(e){let{matches:t}=e,r=t.filter(a=>a.shouldLoad);return(await Promise.all(r.map(a=>a.resolve()))).reduce((a,o,i)=>Object.assign(a,{[r[i].route.id]:o}),{})}async function Td(e,t,r,n,a,o,i,s,l,u){let m=o.map(y=>y.route.lazy?Od(y.route,l,s):void 0),d=o.map((y,w)=>{let E=m[w],S=a.some(c=>c.route.id===y.route.id);return Se({},y,{shouldLoad:S,resolve:async c=>(c&&n.method==="GET"&&(y.route.lazy||y.route.loader)&&(S=!0),S?Cd(t,n,y,E,c,u):Promise.resolve({type:be.data,result:void 0}))})}),b=await e({matches:d,request:n,params:o[0].params,fetcherKey:i,context:u});try{await Promise.all(m)}catch{}return b}async function Cd(e,t,r,n,a,o){let i,s,l=u=>{let m,d=new Promise((w,E)=>m=E);s=()=>m(),t.signal.addEventListener("abort",s);let b=w=>typeof u!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+r.route.id+"]"))):u({request:t,params:r.params,context:o},...w!==void 0?[w]:[]),y=(async()=>{try{return{type:"data",result:await(a?a(E=>b(E)):b())}}catch(w){return{type:"error",result:w}}})();return Promise.race([y,d])};try{let u=r.route[e];if(n)if(u){let m,[d]=await Promise.all([l(u).catch(b=>{m=b}),n]);if(m!==void 0)throw m;i=d}else if(await n,u=r.route[e],u)i=await l(u);else if(e==="action"){let m=new URL(t.url),d=m.pathname+m.search;throw ze(405,{method:t.method,pathname:d,routeId:r.route.id})}else return{type:be.data,result:void 0};else if(u)i=await l(u);else{let m=new URL(t.url),d=m.pathname+m.search;throw ze(404,{pathname:d})}K(i.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(u){return{type:be.error,result:u}}finally{s&&t.signal.removeEventListener("abort",s)}return i}async function Dd(e){let{result:t,type:r}=e;if(Fs(t)){let d;try{let b=t.headers.get("Content-Type");b&&/\bapplication\/json\b/.test(b)?t.body==null?d=null:d=await t.json():d=await t.text()}catch(b){return{type:be.error,error:b}}return r===be.error?{type:be.error,error:new pa(t.status,t.statusText,d),statusCode:t.status,headers:t.headers}:{type:be.data,data:d,statusCode:t.status,headers:t.headers}}if(r===be.error){if(Ci(t)){var n,a;if(t.data instanceof Error){var o,i;return{type:be.error,error:t.data,statusCode:(o=t.init)==null?void 0:o.status,headers:(i=t.init)!=null&&i.headers?new Headers(t.init.headers):void 0}}return{type:be.error,error:new pa(((n=t.init)==null?void 0:n.status)||500,void 0,t.data),statusCode:Wt(t)?t.status:void 0,headers:(a=t.init)!=null&&a.headers?new Headers(t.init.headers):void 0}}return{type:be.error,error:t,statusCode:Wt(t)?t.status:void 0}}if(Id(t)){var s,l;return{type:be.deferred,deferredData:t,statusCode:(s=t.init)==null?void 0:s.status,headers:((l=t.init)==null?void 0:l.headers)&&new Headers(t.init.headers)}}if(Ci(t)){var u,m;return{type:be.data,data:t.data,statusCode:(u=t.init)==null?void 0:u.status,headers:(m=t.init)!=null&&m.headers?new Headers(t.init.headers):void 0}}return{type:be.data,data:t}}function jd(e,t,r,n,a,o){let i=e.headers.get("Location");if(K(i,"Redirects returned/thrown from loaders/actions must have a Location header"),!ka.test(i)){let s=n.slice(0,n.findIndex(l=>l.route.id===r)+1);i=ha(new URL(t.url),s,a,!0,i,o),e.headers.set("Location",i)}return e}function wi(e,t,r){if(ka.test(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),o=_t(a.pathname,r)!=null;if(a.origin===t.origin&&o)return a.pathname+a.search+a.hash}return e}function Mt(e,t,r,n){let a=e.createURL(ks(t)).toString(),o={signal:r};if(n&&Ve(n.formMethod)){let{formMethod:i,formEncType:s}=n;o.method=i.toUpperCase(),s==="application/json"?(o.headers=new Headers({"Content-Type":s}),o.body=JSON.stringify(n.json)):s==="text/plain"?o.body=n.text:s==="application/x-www-form-urlencoded"&&n.formData?o.body=ga(n.formData):o.body=n.formData}return new Request(a,o)}function ga(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function Ri(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Nd(e,t,r,n,a){let o={},i=null,s,l=!1,u={},m=r&&We(r[1])?r[1].error:void 0;return e.forEach(d=>{if(!(d.route.id in t))return;let b=d.route.id,y=t[b];if(K(!Pt(y),"Cannot handle redirect results in processLoaderData"),We(y)){let w=y.error;m!==void 0&&(w=m,m=void 0),i=i||{};{let E=Rt(e,b);i[E.route.id]==null&&(i[E.route.id]=w)}o[b]=void 0,l||(l=!0,s=Wt(y.error)?y.error.status:500),y.headers&&(u[b]=y.headers)}else pt(y)?(n.set(b,y.deferredData),o[b]=y.deferredData.data,y.statusCode!=null&&y.statusCode!==200&&!l&&(s=y.statusCode),y.headers&&(u[b]=y.headers)):(o[b]=y.data,y.statusCode&&y.statusCode!==200&&!l&&(s=y.statusCode),y.headers&&(u[b]=y.headers))}),m!==void 0&&r&&(i={[r[0]]:m},o[r[0]]=void 0),{loaderData:o,errors:i,statusCode:s||200,loaderHeaders:u}}function Pi(e,t,r,n,a,o,i){let{loaderData:s,errors:l}=Nd(t,r,n,i);return a.forEach(u=>{let{key:m,match:d,controller:b}=u,y=o[m];if(K(y,"Did not find corresponding fetcher result"),!(b&&b.signal.aborted))if(We(y)){let w=Rt(e.matches,d==null?void 0:d.route.id);l&&l[w.route.id]||(l=Se({},l,{[w.route.id]:y.error})),e.fetchers.delete(m)}else if(Pt(y))K(!1,"Unhandled fetcher revalidation redirect");else if(pt(y))K(!1,"Unhandled fetcher deferred data");else{let w=ft(y.data);e.fetchers.set(m,w)}}),{loaderData:s,errors:l}}function Oi(e,t,r,n){let a=Se({},t);for(let o of r){let i=o.route.id;if(t.hasOwnProperty(i)?t[i]!==void 0&&(a[i]=t[i]):e[i]!==void 0&&o.route.loader&&(a[i]=e[i]),n&&n.hasOwnProperty(i))break}return a}function _i(e){return e?We(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Rt(e,t){return(t?e.slice(0,e.findIndex(n=>n.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function Ti(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ze(e,t){let{pathname:r,routeId:n,method:a,type:o,message:i}=t===void 0?{}:t,s="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(s="Bad Request",a&&r&&n?l="You made a "+a+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":o==="defer-action"?l="defer() is not supported in actions":o==="invalid-body"&&(l="Unable to encode submission body")):e===403?(s="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):e===404?(s="Not Found",l='No route matches URL "'+r+'"'):e===405&&(s="Method Not Allowed",a&&r&&n?l="You made a "+a.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":a&&(l='Invalid request method "'+a.toUpperCase()+'"')),new pa(e||500,s,new Error(l),!0)}function $r(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,a]=t[r];if(Pt(a))return{key:n,result:a}}}function ks(e){let t=typeof e=="string"?Ge(e):e;return wr(Se({},t,{hash:""}))}function Ad(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Md(e){return Fs(e.result)&&bd.has(e.result.status)}function pt(e){return e.type===be.deferred}function We(e){return e.type===be.error}function Pt(e){return(e&&e.type)===be.redirect}function Ci(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function Id(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function Fs(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function kd(e){return yd.has(e.toLowerCase())}function Ve(e){return gd.has(e.toLowerCase())}async function Fd(e,t,r,n,a){let o=Object.entries(t);for(let i=0;i<o.length;i++){let[s,l]=o[i],u=e.find(b=>(b==null?void 0:b.route.id)===s);if(!u)continue;let m=n.find(b=>b.route.id===u.route.id),d=m!=null&&!Ms(m,u)&&(a&&a[u.route.id])!==void 0;pt(l)&&d&&await Fa(l,r,!1).then(b=>{b&&(t[s]=b)})}}async function Ld(e,t,r){for(let n=0;n<r.length;n++){let{key:a,routeId:o,controller:i}=r[n],s=t[a];e.find(u=>(u==null?void 0:u.route.id)===o)&&pt(s)&&(K(i,"Expected an AbortController for revalidating fetcher deferred result"),await Fa(s,i.signal,!0).then(u=>{u&&(t[a]=u)}))}}async function Fa(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:be.data,data:e.deferredData.unwrappedData}}catch(a){return{type:be.error,error:a}}return{type:be.data,data:e.deferredData.data}}}function La(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function pr(e,t){let r=typeof t=="string"?Ge(t).search:t.search;if(e[e.length-1].route.index&&La(r||""))return e[e.length-1];let n=js(e);return n[n.length-1]}function Di(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(o!=null)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function Jn(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function zd(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function lr(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function $d(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function ft(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Ud(e,t){try{let r=e.sessionStorage.getItem(As);if(r){let n=JSON.parse(r);for(let[a,o]of Object.entries(n||{}))o&&Array.isArray(o)&&t.set(a,new Set(o||[]))}}catch{}}function Wd(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(As,JSON.stringify(r))}catch(n){je(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/**
|
|
353
|
-
* React Router v6.30.
|
|
351
|
+
*/function Se(){return Se=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Se.apply(this,arguments)}var Oe;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(Oe||(Oe={}));function Ps(e){e===void 0&&(e={});let{initialEntries:t=["/"],initialIndex:r,v5Compat:n=!1}=e,a;a=t.map((y,w)=>m(y,typeof y=="string"?null:y.state,w===0?"default":void 0));let o=l(r??a.length-1),i=Oe.Pop,s=null;function l(y){return Math.min(Math.max(y,0),a.length-1)}function u(){return a[o]}function m(y,w,E){w===void 0&&(w=null);let S=da(a?u().pathname:"/",y,w,E);return je(S.pathname.charAt(0)==="/","relative pathnames are not supported in memory history: "+JSON.stringify(y)),S}function d(y){return typeof y=="string"?y:wr(y)}return{get index(){return o},get action(){return i},get location(){return u()},createHref:d,createURL(y){return new URL(d(y),"http://localhost")},encodeLocation(y){let w=typeof y=="string"?Ge(y):y;return{pathname:w.pathname||"",search:w.search||"",hash:w.hash||""}},push(y,w){i=Oe.Push;let E=m(y,w);o+=1,a.splice(o,a.length,E),n&&s&&s({action:i,location:E,delta:1})},replace(y,w){i=Oe.Replace;let E=m(y,w);a[o]=E,n&&s&&s({action:i,location:E,delta:0})},go(y){i=Oe.Pop;let w=l(o+y),E=a[w];o=w,s&&s({action:i,location:E,delta:y})},listen(y){return s=y,()=>{s=null}}}}function K(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function je(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function qf(){return Math.random().toString(36).substr(2,8)}function da(e,t,r,n){return r===void 0&&(r=null),Se({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ge(t):t,{state:r,key:t&&t.key||n||qf()})}function wr(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function Ge(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}var be;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(be||(be={}));const Bf=new Set(["lazy","caseSensitive","path","id","index","children"]);function Hf(e){return e.index===!0}function Qr(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,o)=>{let i=[...r,String(o)],s=typeof a.id=="string"?a.id:i.join("-");if(K(a.index!==!0||!a.children,"Cannot specify children on an index route"),K(!n[s],'Found a route id collision on id "'+s+`". Route id's must be globally unique within Data Router usages`),Hf(a)){let l=Se({},a,t(a),{id:s});return n[s]=l,l}else{let l=Se({},a,t(a),{id:s,children:void 0});return n[s]=l,a.children&&(l.children=Qr(a.children,t,i,n)),l}})}function dt(e,t,r){return r===void 0&&(r="/"),Gr(e,t,r,!1)}function Gr(e,t,r,n){let a=typeof t=="string"?Ge(t):t,o=_t(a.pathname||"/",r);if(o==null)return null;let i=_s(e);Yf(i);let s=null;for(let l=0;s==null&&l<i.length;++l){let u=Cs(o);s=td(i[l],u,n)}return s}function Os(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function _s(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let a=(o,i,s)=>{let l={relativePath:s===void 0?o.path||"":s,caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};l.relativePath.startsWith("/")&&(K(l.relativePath.startsWith(n),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(n.length));let u=ot([n,l.relativePath]),m=r.concat(l);o.children&&o.children.length>0&&(K(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),_s(o.children,t,m,u)),!(o.path==null&&!o.index)&&t.push({path:u,score:Qf(u,o.index),routesMeta:m})};return e.forEach((o,i)=>{var s;if(o.path===""||!((s=o.path)!=null&&s.includes("?")))a(o,i);else for(let l of Ts(o.path))a(o,i,l)}),t}function Ts(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),o=r.replace(/\?$/,"");if(n.length===0)return a?[o,""]:[o];let i=Ts(n.join("/")),s=[];return s.push(...i.map(l=>l===""?o:[o,l].join("/"))),a&&s.push(...i),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function Yf(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:ed(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const Vf=/^:[\w-]+$/,Xf=3,Gf=2,Kf=1,Jf=10,Zf=-2,gi=e=>e==="*";function Qf(e,t){let r=e.split("/"),n=r.length;return r.some(gi)&&(n+=Zf),t&&(n+=Gf),r.filter(a=>!gi(a)).reduce((a,o)=>a+(Vf.test(o)?Xf:o===""?Kf:Jf),n)}function ed(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function td(e,t,r){r===void 0&&(r=!1);let{routesMeta:n}=e,a={},o="/",i=[];for(let s=0;s<n.length;++s){let l=n[s],u=s===n.length-1,m=o==="/"?t:t.slice(o.length)||"/",d=en({path:l.relativePath,caseSensitive:l.caseSensitive,end:u},m),b=l.route;if(!d&&u&&r&&!n[n.length-1].route.index&&(d=en({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},m)),!d)return null;Object.assign(a,d.params),i.push({params:a,pathname:ot([o,d.pathname]),pathnameBase:id(ot([o,d.pathnameBase])),route:b}),d.pathnameBase!=="/"&&(o=ot([o,d.pathnameBase]))}return i}function rd(e,t){t===void 0&&(t={});let r=e;r.endsWith("*")&&r!=="*"&&!r.endsWith("/*")&&(je(!1,'Route path "'+r+'" will be treated as if it were '+('"'+r.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+r.replace(/\*$/,"/*")+'".')),r=r.replace(/\*$/,"/*"));const n=r.startsWith("/")?"/":"",a=i=>i==null?"":typeof i=="string"?i:String(i),o=r.split(/\/+/).map((i,s,l)=>{if(s===l.length-1&&i==="*")return a(t["*"]);const m=i.match(/^:([\w-]+)(\??)$/);if(m){const[,d,b]=m;let y=t[d];return K(b==="?"||y!=null,'Missing ":'+d+'" param'),a(y)}return i.replace(/\?$/g,"")}).filter(i=>!!i);return n+o.join("/")}function en(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=nd(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),s=a.slice(1);return{params:n.reduce((u,m,d)=>{let{paramName:b,isOptional:y}=m;if(b==="*"){let E=s[d]||"";i=o.slice(0,o.length-E.length).replace(/(.)\/+$/,"$1")}const w=s[d];return y&&!w?u[b]=void 0:u[b]=(w||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function nd(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),je(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,s,l)=>(n.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function Cs(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return je(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function _t(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}const ad=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,od=e=>ad.test(e);function Ds(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?Ge(e):e,o;if(r)if(od(r))o=r;else{if(r.includes("//")){let i=r;r=r.replace(/\/\/+/g,"/"),je(!1,"Pathnames cannot have embedded double slashes - normalizing "+(i+" -> "+r))}r.startsWith("/")?o=vi(r.substring(1),"/"):o=vi(r,t)}else o=t;return{pathname:o,search:sd(n),hash:ld(a)}}function vi(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function Gn(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function js(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function hn(e,t){let r=js(e);return t?r.map((n,a)=>a===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function mn(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=Ge(e):(a=Se({},e),K(!a.pathname||!a.pathname.includes("?"),Gn("?","pathname","search",a)),K(!a.pathname||!a.pathname.includes("#"),Gn("#","pathname","hash",a)),K(!a.search||!a.search.includes("#"),Gn("#","search","hash",a)));let o=e===""||a.pathname==="",i=o?"/":a.pathname,s;if(i==null)s=r;else{let d=t.length-1;if(!n&&i.startsWith("..")){let b=i.split("/");for(;b[0]==="..";)b.shift(),d-=1;a.pathname=b.join("/")}s=d>=0?t[d]:"/"}let l=Ds(a,s),u=i&&i!=="/"&&i.endsWith("/"),m=(o||i===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(u||m)&&(l.pathname+="/"),l}const ot=e=>e.join("/").replace(/\/\/+/g,"/"),id=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),sd=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,ld=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,ud=function(t,r){r===void 0&&(r={});let n=typeof r=="number"?{status:r}:r,a=new Headers(n.headers);return a.has("Content-Type")||a.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(t),Se({},n,{headers:a}))};class tn extends Error{}class cd{constructor(t,r){this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],K(t&&typeof t=="object"&&!Array.isArray(t),"defer() only accepts plain objects");let n;this.abortPromise=new Promise((o,i)=>n=i),this.controller=new AbortController;let a=()=>n(new tn("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",a),this.controller.signal.addEventListener("abort",a),this.data=Object.entries(t).reduce((o,i)=>{let[s,l]=i;return Object.assign(o,{[s]:this.trackPromise(s,l)})},{}),this.done&&this.unlistenAbortSignal(),this.init=r}trackPromise(t,r){if(!(r instanceof Promise))return r;this.deferredKeys.push(t),this.pendingKeysSet.add(t);let n=Promise.race([r,this.abortPromise]).then(a=>this.onSettle(n,t,void 0,a),a=>this.onSettle(n,t,a));return n.catch(()=>{}),Object.defineProperty(n,"_tracked",{get:()=>!0}),n}onSettle(t,r,n,a){if(this.controller.signal.aborted&&n instanceof tn)return this.unlistenAbortSignal(),Object.defineProperty(t,"_error",{get:()=>n}),Promise.reject(n);if(this.pendingKeysSet.delete(r),this.done&&this.unlistenAbortSignal(),n===void 0&&a===void 0){let o=new Error('Deferred data for key "'+r+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(t,"_error",{get:()=>o}),this.emit(!1,r),Promise.reject(o)}return a===void 0?(Object.defineProperty(t,"_error",{get:()=>n}),this.emit(!1,r),Promise.reject(n)):(Object.defineProperty(t,"_data",{get:()=>a}),this.emit(!1,r),a)}emit(t,r){this.subscribers.forEach(n=>n(t,r))}subscribe(t){return this.subscribers.add(t),()=>this.subscribers.delete(t)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach((t,r)=>this.pendingKeysSet.delete(r)),this.emit(!0)}async resolveData(t){let r=!1;if(!this.done){let n=()=>this.cancel();t.addEventListener("abort",n),r=await new Promise(a=>{this.subscribe(o=>{t.removeEventListener("abort",n),(o||this.done)&&a(o)})})}return r}get done(){return this.pendingKeysSet.size===0}get unwrappedData(){return K(this.data!==null&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce((t,r)=>{let[n,a]=r;return Object.assign(t,{[n]:dd(a)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}function fd(e){return e instanceof Promise&&e._tracked===!0}function dd(e){if(!fd(e))return e;if(e._error)throw e._error;return e._data}const pd=function(t,r){r===void 0&&(r={});let n=typeof r=="number"?{status:r}:r;return new cd(t,n)},Ia=function(t,r){r===void 0&&(r=302);let n=r;typeof n=="number"?n={status:n}:typeof n.status>"u"&&(n.status=302);let a=new Headers(n.headers);return a.set("Location",t),new Response(null,Se({},n,{headers:a}))},hd=(e,t)=>{let r=Ia(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},md=(e,t)=>{let r=Ia(e,t);return r.headers.set("X-Remix-Replace","true"),r};class pa{constructor(t,r,n,a){a===void 0&&(a=!1),this.status=t,this.statusText=r||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function Wt(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const Ns=["post","put","patch","delete"],gd=new Set(Ns),vd=["get",...Ns],yd=new Set(vd),bd=new Set([301,302,303,307,308]),Ed=new Set([307,308]),Kn={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},xd={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ft={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ka=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Sd=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),As="remix-router-transitions";function wd(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",n=!r;K(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a;if(e.mapRouteProperties)a=e.mapRouteProperties;else if(e.detectErrorBoundary){let R=e.detectErrorBoundary;a=_=>({hasErrorBoundary:R(_)})}else a=Sd;let o={},i=Qr(e.routes,a,void 0,o),s,l=e.basename||"/",u=e.dataStrategy||_d,m=e.patchRoutesOnNavigation,d=Se({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),b=null,y=new Set,w=null,E=null,S=null,h=e.hydrationData!=null,c=dt(i,e.history.location,l),g=!1,v=null;if(c==null&&!m){let R=ze(404,{pathname:e.history.location.pathname}),{matches:_,route:T}=Ti(i);c=_,v={[T.id]:R}}c&&!e.hydrationData&&_r(c,i,e.history.location.pathname).active&&(c=null);let p;if(c)if(c.some(R=>R.route.lazy))p=!1;else if(!c.some(R=>R.route.loader))p=!0;else if(d.v7_partialHydration){let R=e.hydrationData?e.hydrationData.loaderData:null,_=e.hydrationData?e.hydrationData.errors:null;if(_){let T=c.findIndex(I=>_[I.route.id]!==void 0);p=c.slice(0,T+1).every(I=>!ma(I.route,R,_))}else p=c.every(T=>!ma(T.route,R,_))}else p=e.hydrationData!=null;else if(p=!1,c=[],d.v7_partialHydration){let R=_r(null,i,e.history.location.pathname);R.active&&R.matches&&(g=!0,c=R.matches)}let x,f={historyAction:e.history.action,location:e.history.location,matches:c,initialized:p,navigation:Kn,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||v,fetchers:new Map,blockers:new Map},P=Oe.Pop,j=!1,A,k=!1,B=new Map,U=null,L=!1,J=!1,X=[],ue=new Set,Z=new Map,we=0,N=-1,O=new Map,F=new Set,z=new Map,W=new Map,ee=new Set,te=new Map,H=new Map,ne;function le(){if(b=e.history.listen(R=>{let{action:_,location:T,delta:I}=R;if(ne){ne(),ne=void 0;return}je(H.size===0||I!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let q=Qa({currentLocation:f.location,nextLocation:T,historyAction:_});if(q&&I!=null){let re=new Promise(ae=>{ne=ae});e.history.go(I*-1),Or(q,{state:"blocked",location:T,proceed(){Or(q,{state:"proceeding",proceed:void 0,reset:void 0,location:T}),re.then(()=>e.history.go(I))},reset(){let ae=new Map(f.blockers);ae.set(q,Ft),C({blockers:ae})}});return}return yt(_,T)}),r){Ud(t,B);let R=()=>Wd(t,B);t.addEventListener("pagehide",R),U=()=>t.removeEventListener("pagehide",R)}return f.initialized||yt(Oe.Pop,f.location,{initialHydration:!0}),x}function se(){b&&b(),U&&U(),y.clear(),A&&A.abort(),f.fetchers.forEach((R,_)=>Pr(_)),f.blockers.forEach((R,_)=>Za(_))}function Ae(R){return y.add(R),()=>y.delete(R)}function C(R,_){_===void 0&&(_={}),f=Se({},f,R);let T=[],I=[];d.v7_fetcherPersist&&f.fetchers.forEach((q,re)=>{q.state==="idle"&&(ee.has(re)?I.push(re):T.push(re))}),ee.forEach(q=>{!f.fetchers.has(q)&&!Z.has(q)&&I.push(q)}),[...y].forEach(q=>q(f,{deletedFetchers:I,viewTransitionOpts:_.viewTransitionOpts,flushSync:_.flushSync===!0})),d.v7_fetcherPersist?(T.forEach(q=>f.fetchers.delete(q)),I.forEach(q=>Pr(q))):I.forEach(q=>ee.delete(q))}function _e(R,_,T){var I,q;let{flushSync:re}=T===void 0?{}:T,ae=f.actionData!=null&&f.navigation.formMethod!=null&&Ve(f.navigation.formMethod)&&f.navigation.state==="loading"&&((I=R.state)==null?void 0:I._isRedirect)!==!0,V;_.actionData?Object.keys(_.actionData).length>0?V=_.actionData:V=null:ae?V=f.actionData:V=null;let G=_.loaderData?Oi(f.loaderData,_.loaderData,_.matches||[],_.errors):f.loaderData,Y=f.blockers;Y.size>0&&(Y=new Map(Y),Y.forEach((ce,Me)=>Y.set(Me,Ft)));let Q=j===!0||f.navigation.formMethod!=null&&Ve(f.navigation.formMethod)&&((q=R.state)==null?void 0:q._isRedirect)!==!0;s&&(i=s,s=void 0),L||P===Oe.Pop||(P===Oe.Push?e.history.push(R,R.state):P===Oe.Replace&&e.history.replace(R,R.state));let ie;if(P===Oe.Pop){let ce=B.get(f.location.pathname);ce&&ce.has(R.pathname)?ie={currentLocation:f.location,nextLocation:R}:B.has(R.pathname)&&(ie={currentLocation:R,nextLocation:f.location})}else if(k){let ce=B.get(f.location.pathname);ce?ce.add(R.pathname):(ce=new Set([R.pathname]),B.set(f.location.pathname,ce)),ie={currentLocation:f.location,nextLocation:R}}C(Se({},_,{actionData:V,loaderData:G,historyAction:P,location:R,initialized:!0,navigation:Kn,revalidation:"idle",restoreScrollPosition:to(R,_.matches||f.matches),preventScrollReset:Q,blockers:Y}),{viewTransitionOpts:ie,flushSync:re===!0}),P=Oe.Pop,j=!1,k=!1,L=!1,J=!1,X=[]}async function Be(R,_){if(typeof R=="number"){e.history.go(R);return}let T=ha(f.location,f.matches,l,d.v7_prependBasename,R,d.v7_relativeSplatPath,_==null?void 0:_.fromRouteId,_==null?void 0:_.relative),{path:I,submission:q,error:re}=yi(d.v7_normalizeFormMethod,!1,T,_),ae=f.location,V=da(f.location,I,_&&_.state);V=Se({},V,e.history.encodeLocation(V));let G=_&&_.replace!=null?_.replace:void 0,Y=Oe.Push;G===!0?Y=Oe.Replace:G===!1||q!=null&&Ve(q.formMethod)&&q.formAction===f.location.pathname+f.location.search&&(Y=Oe.Replace);let Q=_&&"preventScrollReset"in _?_.preventScrollReset===!0:void 0,ie=(_&&_.flushSync)===!0,ce=Qa({currentLocation:ae,nextLocation:V,historyAction:Y});if(ce){Or(ce,{state:"blocked",location:V,proceed(){Or(ce,{state:"proceeding",proceed:void 0,reset:void 0,location:V}),Be(R,_)},reset(){let Me=new Map(f.blockers);Me.set(ce,Ft),C({blockers:Me})}});return}return await yt(Y,V,{submission:q,pendingError:re,preventScrollReset:Q,replace:_&&_.replace,enableViewTransition:_&&_.viewTransition,flushSync:ie})}function vt(){if(yn(),C({revalidation:"loading"}),f.navigation.state!=="submitting"){if(f.navigation.state==="idle"){yt(f.historyAction,f.location,{startUninterruptedRevalidation:!0});return}yt(P||f.historyAction,f.navigation.location,{overrideNavigation:f.navigation,enableViewTransition:k===!0})}}async function yt(R,_,T){A&&A.abort(),A=null,P=R,L=(T&&T.startUninterruptedRevalidation)===!0,sl(f.location,f.matches),j=(T&&T.preventScrollReset)===!0,k=(T&&T.enableViewTransition)===!0;let I=s||i,q=T&&T.overrideNavigation,re=T!=null&&T.initialHydration&&f.matches&&f.matches.length>0&&!g?f.matches:dt(I,_,l),ae=(T&&T.flushSync)===!0;if(re&&f.initialized&&!J&&Ad(f.location,_)&&!(T&&T.submission&&Ve(T.submission.formMethod))){_e(_,{matches:re},{flushSync:ae});return}let V=_r(re,I,_.pathname);if(V.active&&V.matches&&(re=V.matches),!re){let{error:xe,notFoundMatches:de,route:Re}=bn(_.pathname);_e(_,{matches:de,loaderData:{},errors:{[Re.id]:xe}},{flushSync:ae});return}A=new AbortController;let G=Mt(e.history,_,A.signal,T&&T.submission),Y;if(T&&T.pendingError)Y=[Rt(re).route.id,{type:be.error,error:T.pendingError}];else if(T&&T.submission&&Ve(T.submission.formMethod)){let xe=await Zs(G,_,T.submission,re,V.active,{replace:T.replace,flushSync:ae});if(xe.shortCircuited)return;if(xe.pendingActionResult){let[de,Re]=xe.pendingActionResult;if(We(Re)&&Wt(Re.error)&&Re.error.status===404){A=null,_e(_,{matches:xe.matches,loaderData:{},errors:{[de]:Re.error}});return}}re=xe.matches||re,Y=xe.pendingActionResult,q=Jn(_,T.submission),ae=!1,V.active=!1,G=Mt(e.history,G.url,G.signal)}let{shortCircuited:Q,matches:ie,loaderData:ce,errors:Me}=await Qs(G,_,re,V.active,q,T&&T.submission,T&&T.fetcherSubmission,T&&T.replace,T&&T.initialHydration===!0,ae,Y);Q||(A=null,_e(_,Se({matches:ie||re},_i(Y),{loaderData:ce,errors:Me})))}async function Zs(R,_,T,I,q,re){re===void 0&&(re={}),yn();let ae=zd(_,T);if(C({navigation:ae},{flushSync:re.flushSync===!0}),q){let Y=await Tr(I,_.pathname,R.signal);if(Y.type==="aborted")return{shortCircuited:!0};if(Y.type==="error"){let Q=Rt(Y.partialMatches).route.id;return{matches:Y.partialMatches,pendingActionResult:[Q,{type:be.error,error:Y.error}]}}else if(Y.matches)I=Y.matches;else{let{notFoundMatches:Q,error:ie,route:ce}=bn(_.pathname);return{matches:Q,pendingActionResult:[ce.id,{type:be.error,error:ie}]}}}let V,G=pr(I,_);if(!G.route.action&&!G.route.lazy)V={type:be.error,error:ze(405,{method:R.method,pathname:_.pathname,routeId:G.route.id})};else if(V=(await Vt("action",f,R,[G],I,null))[G.route.id],R.signal.aborted)return{shortCircuited:!0};if(Pt(V)){let Y;return re&&re.replace!=null?Y=re.replace:Y=wi(V.response.headers.get("Location"),new URL(R.url),l,e.history)===f.location.pathname+f.location.search,await bt(R,V,!0,{submission:T,replace:Y}),{shortCircuited:!0}}if(pt(V))throw ze(400,{type:"defer-action"});if(We(V)){let Y=Rt(I,G.route.id);return(re&&re.replace)!==!0&&(P=Oe.Push),{matches:I,pendingActionResult:[Y.route.id,V]}}return{matches:I,pendingActionResult:[G.route.id,V]}}async function Qs(R,_,T,I,q,re,ae,V,G,Y,Q){let ie=q||Jn(_,re),ce=re||ae||Di(ie),Me=!L&&(!d.v7_partialHydration||!G);if(I){if(Me){let Pe=Ya(Q);C(Se({navigation:ie},Pe!==void 0?{actionData:Pe}:{}),{flushSync:Y})}let fe=await Tr(T,_.pathname,R.signal);if(fe.type==="aborted")return{shortCircuited:!0};if(fe.type==="error"){let Pe=Rt(fe.partialMatches).route.id;return{matches:fe.partialMatches,loaderData:{},errors:{[Pe]:fe.error}}}else if(fe.matches)T=fe.matches;else{let{error:Pe,notFoundMatches:jt,route:Kt}=bn(_.pathname);return{matches:jt,loaderData:{},errors:{[Kt.id]:Pe}}}}let xe=s||i,[de,Re]=Ei(e.history,f,T,ce,_,d.v7_partialHydration&&G===!0,d.v7_skipActionErrorRevalidation,J,X,ue,ee,z,F,xe,l,Q);if(En(fe=>!(T&&T.some(Pe=>Pe.route.id===fe))||de&&de.some(Pe=>Pe.route.id===fe)),N=++we,de.length===0&&Re.length===0){let fe=Ka();return _e(_,Se({matches:T,loaderData:{},errors:Q&&We(Q[1])?{[Q[0]]:Q[1].error}:null},_i(Q),fe?{fetchers:new Map(f.fetchers)}:{}),{flushSync:Y}),{shortCircuited:!0}}if(Me){let fe={};if(!I){fe.navigation=ie;let Pe=Ya(Q);Pe!==void 0&&(fe.actionData=Pe)}Re.length>0&&(fe.fetchers=el(Re)),C(fe,{flushSync:Y})}Re.forEach(fe=>{lt(fe.key),fe.controller&&Z.set(fe.key,fe.controller)});let Dt=()=>Re.forEach(fe=>lt(fe.key));A&&A.signal.addEventListener("abort",Dt);let{loaderResults:Xt,fetcherResults:at}=await Va(f,T,de,Re,R);if(R.signal.aborted)return{shortCircuited:!0};A&&A.signal.removeEventListener("abort",Dt),Re.forEach(fe=>Z.delete(fe.key));let Ke=$r(Xt);if(Ke)return await bt(R,Ke.result,!0,{replace:V}),{shortCircuited:!0};if(Ke=$r(at),Ke)return F.add(Ke.key),await bt(R,Ke.result,!0,{replace:V}),{shortCircuited:!0};let{loaderData:xn,errors:Gt}=Pi(f,T,Xt,Q,Re,at,te);te.forEach((fe,Pe)=>{fe.subscribe(jt=>{(jt||fe.done)&&te.delete(Pe)})}),d.v7_partialHydration&&G&&f.errors&&(Gt=Se({},f.errors,Gt));let Et=Ka(),Cr=Ja(N),Dr=Et||Cr||Re.length>0;return Se({matches:T,loaderData:xn,errors:Gt},Dr?{fetchers:new Map(f.fetchers)}:{})}function Ya(R){if(R&&!We(R[1]))return{[R[0]]:R[1].data};if(f.actionData)return Object.keys(f.actionData).length===0?null:f.actionData}function el(R){return R.forEach(_=>{let T=f.fetchers.get(_.key),I=lr(void 0,T?T.data:void 0);f.fetchers.set(_.key,I)}),new Map(f.fetchers)}function tl(R,_,T,I){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");lt(R);let q=(I&&I.flushSync)===!0,re=s||i,ae=ha(f.location,f.matches,l,d.v7_prependBasename,T,d.v7_relativeSplatPath,_,I==null?void 0:I.relative),V=dt(re,ae,l),G=_r(V,re,ae);if(G.active&&G.matches&&(V=G.matches),!V){nt(R,_,ze(404,{pathname:ae}),{flushSync:q});return}let{path:Y,submission:Q,error:ie}=yi(d.v7_normalizeFormMethod,!0,ae,I);if(ie){nt(R,_,ie,{flushSync:q});return}let ce=pr(V,Y),Me=(I&&I.preventScrollReset)===!0;if(Q&&Ve(Q.formMethod)){rl(R,_,Y,ce,V,G.active,q,Me,Q);return}z.set(R,{routeId:_,path:Y}),nl(R,_,Y,ce,V,G.active,q,Me,Q)}async function rl(R,_,T,I,q,re,ae,V,G){yn(),z.delete(R);function Y(Ce){if(!Ce.route.action&&!Ce.route.lazy){let Nt=ze(405,{method:G.formMethod,pathname:T,routeId:_});return nt(R,_,Nt,{flushSync:ae}),!0}return!1}if(!re&&Y(I))return;let Q=f.fetchers.get(R);st(R,$d(G,Q),{flushSync:ae});let ie=new AbortController,ce=Mt(e.history,T,ie.signal,G);if(re){let Ce=await Tr(q,new URL(ce.url).pathname,ce.signal,R);if(Ce.type==="aborted")return;if(Ce.type==="error"){nt(R,_,Ce.error,{flushSync:ae});return}else if(Ce.matches){if(q=Ce.matches,I=pr(q,T),Y(I))return}else{nt(R,_,ze(404,{pathname:T}),{flushSync:ae});return}}Z.set(R,ie);let Me=we,de=(await Vt("action",f,ce,[I],q,R))[I.route.id];if(ce.signal.aborted){Z.get(R)===ie&&Z.delete(R);return}if(d.v7_fetcherPersist&&ee.has(R)){if(Pt(de)||We(de)){st(R,ft(void 0));return}}else{if(Pt(de))if(Z.delete(R),N>Me){st(R,ft(void 0));return}else return F.add(R),st(R,lr(G)),bt(ce,de,!1,{fetcherSubmission:G,preventScrollReset:V});if(We(de)){nt(R,_,de.error);return}}if(pt(de))throw ze(400,{type:"defer-action"});let Re=f.navigation.location||f.location,Dt=Mt(e.history,Re,ie.signal),Xt=s||i,at=f.navigation.state!=="idle"?dt(Xt,f.navigation.location,l):f.matches;K(at,"Didn't find any matches after fetcher action");let Ke=++we;O.set(R,Ke);let xn=lr(G,de.data);f.fetchers.set(R,xn);let[Gt,Et]=Ei(e.history,f,at,G,Re,!1,d.v7_skipActionErrorRevalidation,J,X,ue,ee,z,F,Xt,l,[I.route.id,de]);Et.filter(Ce=>Ce.key!==R).forEach(Ce=>{let Nt=Ce.key,ro=f.fetchers.get(Nt),cl=lr(void 0,ro?ro.data:void 0);f.fetchers.set(Nt,cl),lt(Nt),Ce.controller&&Z.set(Nt,Ce.controller)}),C({fetchers:new Map(f.fetchers)});let Cr=()=>Et.forEach(Ce=>lt(Ce.key));ie.signal.addEventListener("abort",Cr);let{loaderResults:Dr,fetcherResults:fe}=await Va(f,at,Gt,Et,Dt);if(ie.signal.aborted)return;ie.signal.removeEventListener("abort",Cr),O.delete(R),Z.delete(R),Et.forEach(Ce=>Z.delete(Ce.key));let Pe=$r(Dr);if(Pe)return bt(Dt,Pe.result,!1,{preventScrollReset:V});if(Pe=$r(fe),Pe)return F.add(Pe.key),bt(Dt,Pe.result,!1,{preventScrollReset:V});let{loaderData:jt,errors:Kt}=Pi(f,at,Dr,void 0,Et,fe,te);if(f.fetchers.has(R)){let Ce=ft(de.data);f.fetchers.set(R,Ce)}Ja(Ke),f.navigation.state==="loading"&&Ke>N?(K(P,"Expected pending action"),A&&A.abort(),_e(f.navigation.location,{matches:at,loaderData:jt,errors:Kt,fetchers:new Map(f.fetchers)})):(C({errors:Kt,loaderData:Oi(f.loaderData,jt,at,Kt),fetchers:new Map(f.fetchers)}),J=!1)}async function nl(R,_,T,I,q,re,ae,V,G){let Y=f.fetchers.get(R);st(R,lr(G,Y?Y.data:void 0),{flushSync:ae});let Q=new AbortController,ie=Mt(e.history,T,Q.signal);if(re){let de=await Tr(q,new URL(ie.url).pathname,ie.signal,R);if(de.type==="aborted")return;if(de.type==="error"){nt(R,_,de.error,{flushSync:ae});return}else if(de.matches)q=de.matches,I=pr(q,T);else{nt(R,_,ze(404,{pathname:T}),{flushSync:ae});return}}Z.set(R,Q);let ce=we,xe=(await Vt("loader",f,ie,[I],q,R))[I.route.id];if(pt(xe)&&(xe=await Fa(xe,ie.signal,!0)||xe),Z.get(R)===Q&&Z.delete(R),!ie.signal.aborted){if(ee.has(R)){st(R,ft(void 0));return}if(Pt(xe))if(N>ce){st(R,ft(void 0));return}else{F.add(R),await bt(ie,xe,!1,{preventScrollReset:V});return}if(We(xe)){nt(R,_,xe.error);return}K(!pt(xe),"Unhandled fetcher deferred data"),st(R,ft(xe.data))}}async function bt(R,_,T,I){let{submission:q,fetcherSubmission:re,preventScrollReset:ae,replace:V}=I===void 0?{}:I;_.response.headers.has("X-Remix-Revalidate")&&(J=!0);let G=_.response.headers.get("Location");K(G,"Expected a Location header on the redirect Response"),G=wi(G,new URL(R.url),l,e.history);let Y=da(f.location,G,{_isRedirect:!0});if(r){let de=!1;if(_.response.headers.has("X-Remix-Reload-Document"))de=!0;else if(ka.test(G)){const Re=e.history.createURL(G);de=Re.origin!==t.location.origin||_t(Re.pathname,l)==null}if(de){V?t.location.replace(G):t.location.assign(G);return}}A=null;let Q=V===!0||_.response.headers.has("X-Remix-Replace")?Oe.Replace:Oe.Push,{formMethod:ie,formAction:ce,formEncType:Me}=f.navigation;!q&&!re&&ie&&ce&&Me&&(q=Di(f.navigation));let xe=q||re;if(Ed.has(_.response.status)&&xe&&Ve(xe.formMethod))await yt(Q,Y,{submission:Se({},xe,{formAction:G}),preventScrollReset:ae||j,enableViewTransition:T?k:void 0});else{let de=Jn(Y,q);await yt(Q,Y,{overrideNavigation:de,fetcherSubmission:re,preventScrollReset:ae||j,enableViewTransition:T?k:void 0})}}async function Vt(R,_,T,I,q,re){let ae,V={};try{ae=await Td(u,R,_,T,I,q,re,o,a)}catch(G){return I.forEach(Y=>{V[Y.route.id]={type:be.error,error:G}}),V}for(let[G,Y]of Object.entries(ae))if(Md(Y)){let Q=Y.result;V[G]={type:be.redirect,response:jd(Q,T,G,q,l,d.v7_relativeSplatPath)}}else V[G]=await Dd(Y);return V}async function Va(R,_,T,I,q){let re=R.matches,ae=Vt("loader",R,q,T,_,null),V=Promise.all(I.map(async Q=>{if(Q.matches&&Q.match&&Q.controller){let ce=(await Vt("loader",R,Mt(e.history,Q.path,Q.controller.signal),[Q.match],Q.matches,Q.key))[Q.match.route.id];return{[Q.key]:ce}}else return Promise.resolve({[Q.key]:{type:be.error,error:ze(404,{pathname:Q.path})}})})),G=await ae,Y=(await V).reduce((Q,ie)=>Object.assign(Q,ie),{});return await Promise.all([Fd(_,G,q.signal,re,R.loaderData),Ld(_,Y,I)]),{loaderResults:G,fetcherResults:Y}}function yn(){J=!0,X.push(...En()),z.forEach((R,_)=>{Z.has(_)&&ue.add(_),lt(_)})}function st(R,_,T){T===void 0&&(T={}),f.fetchers.set(R,_),C({fetchers:new Map(f.fetchers)},{flushSync:(T&&T.flushSync)===!0})}function nt(R,_,T,I){I===void 0&&(I={});let q=Rt(f.matches,_);Pr(R),C({errors:{[q.route.id]:T},fetchers:new Map(f.fetchers)},{flushSync:(I&&I.flushSync)===!0})}function Xa(R){return W.set(R,(W.get(R)||0)+1),ee.has(R)&&ee.delete(R),f.fetchers.get(R)||xd}function Pr(R){let _=f.fetchers.get(R);Z.has(R)&&!(_&&_.state==="loading"&&O.has(R))&<(R),z.delete(R),O.delete(R),F.delete(R),d.v7_fetcherPersist&&ee.delete(R),ue.delete(R),f.fetchers.delete(R)}function al(R){let _=(W.get(R)||0)-1;_<=0?(W.delete(R),ee.add(R),d.v7_fetcherPersist||Pr(R)):W.set(R,_),C({fetchers:new Map(f.fetchers)})}function lt(R){let _=Z.get(R);_&&(_.abort(),Z.delete(R))}function Ga(R){for(let _ of R){let T=Xa(_),I=ft(T.data);f.fetchers.set(_,I)}}function Ka(){let R=[],_=!1;for(let T of F){let I=f.fetchers.get(T);K(I,"Expected fetcher: "+T),I.state==="loading"&&(F.delete(T),R.push(T),_=!0)}return Ga(R),_}function Ja(R){let _=[];for(let[T,I]of O)if(I<R){let q=f.fetchers.get(T);K(q,"Expected fetcher: "+T),q.state==="loading"&&(lt(T),O.delete(T),_.push(T))}return Ga(_),_.length>0}function ol(R,_){let T=f.blockers.get(R)||Ft;return H.get(R)!==_&&H.set(R,_),T}function Za(R){f.blockers.delete(R),H.delete(R)}function Or(R,_){let T=f.blockers.get(R)||Ft;K(T.state==="unblocked"&&_.state==="blocked"||T.state==="blocked"&&_.state==="blocked"||T.state==="blocked"&&_.state==="proceeding"||T.state==="blocked"&&_.state==="unblocked"||T.state==="proceeding"&&_.state==="unblocked","Invalid blocker state transition: "+T.state+" -> "+_.state);let I=new Map(f.blockers);I.set(R,_),C({blockers:I})}function Qa(R){let{currentLocation:_,nextLocation:T,historyAction:I}=R;if(H.size===0)return;H.size>1&&je(!1,"A router only supports one blocker at a time");let q=Array.from(H.entries()),[re,ae]=q[q.length-1],V=f.blockers.get(re);if(!(V&&V.state==="proceeding")&&ae({currentLocation:_,nextLocation:T,historyAction:I}))return re}function bn(R){let _=ze(404,{pathname:R}),T=s||i,{matches:I,route:q}=Ti(T);return En(),{notFoundMatches:I,route:q,error:_}}function En(R){let _=[];return te.forEach((T,I)=>{(!R||R(I))&&(T.cancel(),_.push(I),te.delete(I))}),_}function il(R,_,T){if(w=R,S=_,E=T||null,!h&&f.navigation===Kn){h=!0;let I=to(f.location,f.matches);I!=null&&C({restoreScrollPosition:I})}return()=>{w=null,S=null,E=null}}function eo(R,_){return E&&E(R,_.map(I=>Os(I,f.loaderData)))||R.key}function sl(R,_){if(w&&S){let T=eo(R,_);w[T]=S()}}function to(R,_){if(w){let T=eo(R,_),I=w[T];if(typeof I=="number")return I}return null}function _r(R,_,T){if(m)if(R){if(Object.keys(R[0].params).length>0)return{active:!0,matches:Gr(_,T,l,!0)}}else return{active:!0,matches:Gr(_,T,l,!0)||[]};return{active:!1,matches:null}}async function Tr(R,_,T,I){if(!m)return{type:"success",matches:R};let q=R;for(;;){let re=s==null,ae=s||i,V=o;try{await m({signal:T,path:_,matches:q,fetcherKey:I,patch:(Q,ie)=>{T.aborted||Si(Q,ie,ae,V,a)}})}catch(Q){return{type:"error",error:Q,partialMatches:q}}finally{re&&!T.aborted&&(i=[...i])}if(T.aborted)return{type:"aborted"};let G=dt(ae,_,l);if(G)return{type:"success",matches:G};let Y=Gr(ae,_,l,!0);if(!Y||q.length===Y.length&&q.every((Q,ie)=>Q.route.id===Y[ie].route.id))return{type:"success",matches:null};q=Y}}function ll(R){o={},s=Qr(R,a,void 0,o)}function ul(R,_){let T=s==null;Si(R,_,s||i,o,a),T&&(i=[...i],C({}))}return x={get basename(){return l},get future(){return d},get state(){return f},get routes(){return i},get window(){return t},initialize:le,subscribe:Ae,enableScrollRestoration:il,navigate:Be,fetch:tl,revalidate:vt,createHref:R=>e.history.createHref(R),encodeLocation:R=>e.history.encodeLocation(R),getFetcher:Xa,deleteFetcher:al,dispose:se,getBlocker:ol,deleteBlocker:Za,patchRoutes:ul,_internalFetchControllers:Z,_internalActiveDeferreds:te,_internalSetRoutes:ll},x}function Rd(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function ha(e,t,r,n,a,o,i,s){let l,u;if(i){l=[];for(let d of t)if(l.push(d),d.route.id===i){u=d;break}}else l=t,u=t[t.length-1];let m=mn(a||".",hn(l,o),_t(e.pathname,r)||e.pathname,s==="path");if(a==null&&(m.search=e.search,m.hash=e.hash),(a==null||a===""||a===".")&&u){let d=La(m.search);if(u.route.index&&!d)m.search=m.search?m.search.replace(/^\?/,"?index&"):"?index";else if(!u.route.index&&d){let b=new URLSearchParams(m.search),y=b.getAll("index");b.delete("index"),y.filter(E=>E).forEach(E=>b.append("index",E));let w=b.toString();m.search=w?"?"+w:""}}return n&&r!=="/"&&(m.pathname=m.pathname==="/"?r:ot([r,m.pathname])),wr(m)}function yi(e,t,r,n){if(!n||!Rd(n))return{path:r};if(n.formMethod&&!kd(n.formMethod))return{path:r,error:ze(405,{method:n.formMethod})};let a=()=>({path:r,error:ze(400,{type:"invalid-body"})}),o=n.formMethod||"get",i=e?o.toUpperCase():o.toLowerCase(),s=ks(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!Ve(i))return a();let b=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((y,w)=>{let[E,S]=w;return""+y+E+"="+S+`
|
|
352
|
+
`},""):String(n.body);return{path:r,submission:{formMethod:i,formAction:s,formEncType:n.formEncType,formData:void 0,json:void 0,text:b}}}else if(n.formEncType==="application/json"){if(!Ve(i))return a();try{let b=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:i,formAction:s,formEncType:n.formEncType,formData:void 0,json:b,text:void 0}}}catch{return a()}}}K(typeof FormData=="function","FormData is not available in this environment");let l,u;if(n.formData)l=ga(n.formData),u=n.formData;else if(n.body instanceof FormData)l=ga(n.body),u=n.body;else if(n.body instanceof URLSearchParams)l=n.body,u=Ri(l);else if(n.body==null)l=new URLSearchParams,u=new FormData;else try{l=new URLSearchParams(n.body),u=Ri(l)}catch{return a()}let m={formMethod:i,formAction:s,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:u,json:void 0,text:void 0};if(Ve(m.formMethod))return{path:r,submission:m};let d=Ge(r);return t&&d.search&&La(d.search)&&l.append("index",""),d.search="?"+l,{path:wr(d),submission:m}}function bi(e,t,r){r===void 0&&(r=!1);let n=e.findIndex(a=>a.route.id===t);return n>=0?e.slice(0,r?n+1:n):e}function Ei(e,t,r,n,a,o,i,s,l,u,m,d,b,y,w,E){let S=E?We(E[1])?E[1].error:E[1].data:void 0,h=e.createURL(t.location),c=e.createURL(a),g=r;o&&t.errors?g=bi(r,Object.keys(t.errors)[0],!0):E&&We(E[1])&&(g=bi(r,E[0]));let v=E?E[1].statusCode:void 0,p=i&&v&&v>=400,x=g.filter((P,j)=>{let{route:A}=P;if(A.lazy)return!0;if(A.loader==null)return!1;if(o)return ma(A,t.loaderData,t.errors);if(Pd(t.loaderData,t.matches[j],P)||l.some(U=>U===P.route.id))return!0;let k=t.matches[j],B=P;return xi(P,Se({currentUrl:h,currentParams:k.params,nextUrl:c,nextParams:B.params},n,{actionResult:S,actionStatus:v,defaultShouldRevalidate:p?!1:s||h.pathname+h.search===c.pathname+c.search||h.search!==c.search||Ms(k,B)}))}),f=[];return d.forEach((P,j)=>{if(o||!r.some(L=>L.route.id===P.routeId)||m.has(j))return;let A=dt(y,P.path,w);if(!A){f.push({key:j,routeId:P.routeId,path:P.path,matches:null,match:null,controller:null});return}let k=t.fetchers.get(j),B=pr(A,P.path),U=!1;b.has(j)?U=!1:u.has(j)?(u.delete(j),U=!0):k&&k.state!=="idle"&&k.data===void 0?U=s:U=xi(B,Se({currentUrl:h,currentParams:t.matches[t.matches.length-1].params,nextUrl:c,nextParams:r[r.length-1].params},n,{actionResult:S,actionStatus:v,defaultShouldRevalidate:p?!1:s})),U&&f.push({key:j,routeId:P.routeId,path:P.path,matches:A,match:B,controller:new AbortController})}),[x,f]}function ma(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=t!=null&&t[e.id]!==void 0,a=r!=null&&r[e.id]!==void 0;return!n&&a?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!n&&!a}function Pd(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function Ms(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function xi(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function Si(e,t,r,n,a){var o;let i;if(e){let u=n[e];K(u,"No route found to patch children into: routeId = "+e),u.children||(u.children=[]),i=u.children}else i=r;let s=t.filter(u=>!i.some(m=>Is(u,m))),l=Qr(s,a,[e||"_","patch",String(((o=i)==null?void 0:o.length)||"0")],n);i.push(...l)}function Is(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,n)=>{var a;return(a=t.children)==null?void 0:a.some(o=>Is(r,o))}):!1}async function Od(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];K(a,"No route found in manifest");let o={};for(let i in n){let l=a[i]!==void 0&&i!=="hasErrorBoundary";je(!l,'Route "'+a.id+'" has a static property "'+i+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+i+'" will be ignored.')),!l&&!Bf.has(i)&&(o[i]=n[i])}Object.assign(a,o),Object.assign(a,Se({},t(a),{lazy:void 0}))}async function _d(e){let{matches:t}=e,r=t.filter(a=>a.shouldLoad);return(await Promise.all(r.map(a=>a.resolve()))).reduce((a,o,i)=>Object.assign(a,{[r[i].route.id]:o}),{})}async function Td(e,t,r,n,a,o,i,s,l,u){let m=o.map(y=>y.route.lazy?Od(y.route,l,s):void 0),d=o.map((y,w)=>{let E=m[w],S=a.some(c=>c.route.id===y.route.id);return Se({},y,{shouldLoad:S,resolve:async c=>(c&&n.method==="GET"&&(y.route.lazy||y.route.loader)&&(S=!0),S?Cd(t,n,y,E,c,u):Promise.resolve({type:be.data,result:void 0}))})}),b=await e({matches:d,request:n,params:o[0].params,fetcherKey:i,context:u});try{await Promise.all(m)}catch{}return b}async function Cd(e,t,r,n,a,o){let i,s,l=u=>{let m,d=new Promise((w,E)=>m=E);s=()=>m(),t.signal.addEventListener("abort",s);let b=w=>typeof u!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+r.route.id+"]"))):u({request:t,params:r.params,context:o},...w!==void 0?[w]:[]),y=(async()=>{try{return{type:"data",result:await(a?a(E=>b(E)):b())}}catch(w){return{type:"error",result:w}}})();return Promise.race([y,d])};try{let u=r.route[e];if(n)if(u){let m,[d]=await Promise.all([l(u).catch(b=>{m=b}),n]);if(m!==void 0)throw m;i=d}else if(await n,u=r.route[e],u)i=await l(u);else if(e==="action"){let m=new URL(t.url),d=m.pathname+m.search;throw ze(405,{method:t.method,pathname:d,routeId:r.route.id})}else return{type:be.data,result:void 0};else if(u)i=await l(u);else{let m=new URL(t.url),d=m.pathname+m.search;throw ze(404,{pathname:d})}K(i.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(u){return{type:be.error,result:u}}finally{s&&t.signal.removeEventListener("abort",s)}return i}async function Dd(e){let{result:t,type:r}=e;if(Fs(t)){let d;try{let b=t.headers.get("Content-Type");b&&/\bapplication\/json\b/.test(b)?t.body==null?d=null:d=await t.json():d=await t.text()}catch(b){return{type:be.error,error:b}}return r===be.error?{type:be.error,error:new pa(t.status,t.statusText,d),statusCode:t.status,headers:t.headers}:{type:be.data,data:d,statusCode:t.status,headers:t.headers}}if(r===be.error){if(Ci(t)){var n,a;if(t.data instanceof Error){var o,i;return{type:be.error,error:t.data,statusCode:(o=t.init)==null?void 0:o.status,headers:(i=t.init)!=null&&i.headers?new Headers(t.init.headers):void 0}}return{type:be.error,error:new pa(((n=t.init)==null?void 0:n.status)||500,void 0,t.data),statusCode:Wt(t)?t.status:void 0,headers:(a=t.init)!=null&&a.headers?new Headers(t.init.headers):void 0}}return{type:be.error,error:t,statusCode:Wt(t)?t.status:void 0}}if(Id(t)){var s,l;return{type:be.deferred,deferredData:t,statusCode:(s=t.init)==null?void 0:s.status,headers:((l=t.init)==null?void 0:l.headers)&&new Headers(t.init.headers)}}if(Ci(t)){var u,m;return{type:be.data,data:t.data,statusCode:(u=t.init)==null?void 0:u.status,headers:(m=t.init)!=null&&m.headers?new Headers(t.init.headers):void 0}}return{type:be.data,data:t}}function jd(e,t,r,n,a,o){let i=e.headers.get("Location");if(K(i,"Redirects returned/thrown from loaders/actions must have a Location header"),!ka.test(i)){let s=n.slice(0,n.findIndex(l=>l.route.id===r)+1);i=ha(new URL(t.url),s,a,!0,i,o),e.headers.set("Location",i)}return e}function wi(e,t,r,n){let a=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];if(ka.test(e)){let o=e,i=o.startsWith("//")?new URL(t.protocol+o):new URL(o);if(a.includes(i.protocol))throw new Error("Invalid redirect location");let s=_t(i.pathname,r)!=null;if(i.origin===t.origin&&s)return i.pathname+i.search+i.hash}try{let o=n.createURL(e);if(a.includes(o.protocol))throw new Error("Invalid redirect location")}catch{}return e}function Mt(e,t,r,n){let a=e.createURL(ks(t)).toString(),o={signal:r};if(n&&Ve(n.formMethod)){let{formMethod:i,formEncType:s}=n;o.method=i.toUpperCase(),s==="application/json"?(o.headers=new Headers({"Content-Type":s}),o.body=JSON.stringify(n.json)):s==="text/plain"?o.body=n.text:s==="application/x-www-form-urlencoded"&&n.formData?o.body=ga(n.formData):o.body=n.formData}return new Request(a,o)}function ga(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function Ri(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Nd(e,t,r,n,a){let o={},i=null,s,l=!1,u={},m=r&&We(r[1])?r[1].error:void 0;return e.forEach(d=>{if(!(d.route.id in t))return;let b=d.route.id,y=t[b];if(K(!Pt(y),"Cannot handle redirect results in processLoaderData"),We(y)){let w=y.error;m!==void 0&&(w=m,m=void 0),i=i||{};{let E=Rt(e,b);i[E.route.id]==null&&(i[E.route.id]=w)}o[b]=void 0,l||(l=!0,s=Wt(y.error)?y.error.status:500),y.headers&&(u[b]=y.headers)}else pt(y)?(n.set(b,y.deferredData),o[b]=y.deferredData.data,y.statusCode!=null&&y.statusCode!==200&&!l&&(s=y.statusCode),y.headers&&(u[b]=y.headers)):(o[b]=y.data,y.statusCode&&y.statusCode!==200&&!l&&(s=y.statusCode),y.headers&&(u[b]=y.headers))}),m!==void 0&&r&&(i={[r[0]]:m},o[r[0]]=void 0),{loaderData:o,errors:i,statusCode:s||200,loaderHeaders:u}}function Pi(e,t,r,n,a,o,i){let{loaderData:s,errors:l}=Nd(t,r,n,i);return a.forEach(u=>{let{key:m,match:d,controller:b}=u,y=o[m];if(K(y,"Did not find corresponding fetcher result"),!(b&&b.signal.aborted))if(We(y)){let w=Rt(e.matches,d==null?void 0:d.route.id);l&&l[w.route.id]||(l=Se({},l,{[w.route.id]:y.error})),e.fetchers.delete(m)}else if(Pt(y))K(!1,"Unhandled fetcher revalidation redirect");else if(pt(y))K(!1,"Unhandled fetcher deferred data");else{let w=ft(y.data);e.fetchers.set(m,w)}}),{loaderData:s,errors:l}}function Oi(e,t,r,n){let a=Se({},t);for(let o of r){let i=o.route.id;if(t.hasOwnProperty(i)?t[i]!==void 0&&(a[i]=t[i]):e[i]!==void 0&&o.route.loader&&(a[i]=e[i]),n&&n.hasOwnProperty(i))break}return a}function _i(e){return e?We(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Rt(e,t){return(t?e.slice(0,e.findIndex(n=>n.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function Ti(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ze(e,t){let{pathname:r,routeId:n,method:a,type:o,message:i}=t===void 0?{}:t,s="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(s="Bad Request",a&&r&&n?l="You made a "+a+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":o==="defer-action"?l="defer() is not supported in actions":o==="invalid-body"&&(l="Unable to encode submission body")):e===403?(s="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):e===404?(s="Not Found",l='No route matches URL "'+r+'"'):e===405&&(s="Method Not Allowed",a&&r&&n?l="You made a "+a.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":a&&(l='Invalid request method "'+a.toUpperCase()+'"')),new pa(e||500,s,new Error(l),!0)}function $r(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,a]=t[r];if(Pt(a))return{key:n,result:a}}}function ks(e){let t=typeof e=="string"?Ge(e):e;return wr(Se({},t,{hash:""}))}function Ad(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Md(e){return Fs(e.result)&&bd.has(e.result.status)}function pt(e){return e.type===be.deferred}function We(e){return e.type===be.error}function Pt(e){return(e&&e.type)===be.redirect}function Ci(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function Id(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function Fs(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function kd(e){return yd.has(e.toLowerCase())}function Ve(e){return gd.has(e.toLowerCase())}async function Fd(e,t,r,n,a){let o=Object.entries(t);for(let i=0;i<o.length;i++){let[s,l]=o[i],u=e.find(b=>(b==null?void 0:b.route.id)===s);if(!u)continue;let m=n.find(b=>b.route.id===u.route.id),d=m!=null&&!Ms(m,u)&&(a&&a[u.route.id])!==void 0;pt(l)&&d&&await Fa(l,r,!1).then(b=>{b&&(t[s]=b)})}}async function Ld(e,t,r){for(let n=0;n<r.length;n++){let{key:a,routeId:o,controller:i}=r[n],s=t[a];e.find(u=>(u==null?void 0:u.route.id)===o)&&pt(s)&&(K(i,"Expected an AbortController for revalidating fetcher deferred result"),await Fa(s,i.signal,!0).then(u=>{u&&(t[a]=u)}))}}async function Fa(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:be.data,data:e.deferredData.unwrappedData}}catch(a){return{type:be.error,error:a}}return{type:be.data,data:e.deferredData.data}}}function La(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function pr(e,t){let r=typeof t=="string"?Ge(t).search:t.search;if(e[e.length-1].route.index&&La(r||""))return e[e.length-1];let n=js(e);return n[n.length-1]}function Di(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(o!=null)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function Jn(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function zd(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function lr(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function $d(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function ft(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Ud(e,t){try{let r=e.sessionStorage.getItem(As);if(r){let n=JSON.parse(r);for(let[a,o]of Object.entries(n||{}))o&&Array.isArray(o)&&t.set(a,new Set(o||[]))}}catch{}}function Wd(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(As,JSON.stringify(r))}catch(n){je(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/**
|
|
353
|
+
* React Router v6.30.3
|
|
354
354
|
*
|
|
355
355
|
* Copyright (c) Remix Software Inc.
|
|
356
356
|
*
|
package/build/dist/index.mjs
CHANGED
|
@@ -4554,6 +4554,11 @@ function jf({ order: e, visibleItems: t, columns: r = [], onChangeOrder: n, colu
|
|
|
4554
4554
|
align: {
|
|
4555
4555
|
offset: [-60, -14]
|
|
4556
4556
|
},
|
|
4557
|
+
styles: {
|
|
4558
|
+
body: {
|
|
4559
|
+
padding: 0
|
|
4560
|
+
}
|
|
4561
|
+
},
|
|
4557
4562
|
children: /* @__PURE__ */ z.jsx(
|
|
4558
4563
|
bs,
|
|
4559
4564
|
{
|
|
@@ -6407,8 +6412,6 @@ function Zf(e, t) {
|
|
|
6407
6412
|
);
|
|
6408
6413
|
}
|
|
6409
6414
|
const fh = un(Zf), Qf = je(Pa.Item)`
|
|
6410
|
-
margin-bottom: 0 !important;
|
|
6411
|
-
|
|
6412
6415
|
.search-item__label {
|
|
6413
6416
|
position: relative;
|
|
6414
6417
|
display: inline-flex;
|
|
@@ -6475,14 +6478,16 @@ const nd = je("div", {
|
|
|
6475
6478
|
transition: max-height 0.4s ease-in-out;
|
|
6476
6479
|
max-height: ${(e) => e.show ? "450px" : "0"};
|
|
6477
6480
|
`, ad = je(Pa)`
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6481
|
-
background: #F7FAFB;
|
|
6482
|
-
border: 1px solid #F3F3F4;
|
|
6483
|
-
|
|
6484
|
-
.ant-form-item {
|
|
6481
|
+
&.ant-form {
|
|
6482
|
+
padding: 20px;
|
|
6483
|
+
padding-bottom: 0;
|
|
6485
6484
|
margin-bottom: 20px;
|
|
6485
|
+
background: #F7FAFB;
|
|
6486
|
+
border: 1px solid #F3F3F4;
|
|
6487
|
+
|
|
6488
|
+
.ant-form-item {
|
|
6489
|
+
margin-bottom: 20px;
|
|
6490
|
+
}
|
|
6486
6491
|
}
|
|
6487
6492
|
`, od = je.div`
|
|
6488
6493
|
gap: 10px;
|
|
@@ -6790,7 +6795,7 @@ function ph(e, t = {}) {
|
|
|
6790
6795
|
};
|
|
6791
6796
|
}
|
|
6792
6797
|
/**
|
|
6793
|
-
* @remix-run/router v1.23.
|
|
6798
|
+
* @remix-run/router v1.23.2
|
|
6794
6799
|
*
|
|
6795
6800
|
* Copyright (c) Remix Software Inc.
|
|
6796
6801
|
*
|
|
@@ -7744,7 +7749,7 @@ function Bd(e) {
|
|
|
7744
7749
|
};
|
|
7745
7750
|
if (Ct(Y)) {
|
|
7746
7751
|
let H;
|
|
7747
|
-
return te && te.replace != null ? H = te.replace : H = Ni(Y.response.headers.get("Location"), new URL(R.url), l) === f.location.pathname + f.location.search, await wt(R, Y, !0, {
|
|
7752
|
+
return te && te.replace != null ? H = te.replace : H = Ni(Y.response.headers.get("Location"), new URL(R.url), l, e.history) === f.location.pathname + f.location.search, await wt(R, Y, !0, {
|
|
7748
7753
|
submission: T,
|
|
7749
7754
|
replace: H
|
|
7750
7755
|
}), {
|
|
@@ -8115,7 +8120,7 @@ function Bd(e) {
|
|
|
8115
8120
|
} = M === void 0 ? {} : M;
|
|
8116
8121
|
_.response.headers.has("X-Remix-Revalidate") && (K = !0);
|
|
8117
8122
|
let X = _.response.headers.get("Location");
|
|
8118
|
-
G(X, "Expected a Location header on the redirect Response"), X = Ni(X, new URL(R.url), l);
|
|
8123
|
+
G(X, "Expected a Location header on the redirect Response"), X = Ni(X, new URL(R.url), l, e.history);
|
|
8119
8124
|
let H = ba(f.location, X, {
|
|
8120
8125
|
_isRedirect: !0
|
|
8121
8126
|
});
|
|
@@ -8915,11 +8920,33 @@ function Zd(e, t, r, n, a, o) {
|
|
|
8915
8920
|
}
|
|
8916
8921
|
return e;
|
|
8917
8922
|
}
|
|
8918
|
-
function Ni(e, t, r) {
|
|
8923
|
+
function Ni(e, t, r, n) {
|
|
8924
|
+
let a = [
|
|
8925
|
+
"about:",
|
|
8926
|
+
"blob:",
|
|
8927
|
+
"chrome:",
|
|
8928
|
+
"chrome-untrusted:",
|
|
8929
|
+
"content:",
|
|
8930
|
+
"data:",
|
|
8931
|
+
"devtools:",
|
|
8932
|
+
"file:",
|
|
8933
|
+
"filesystem:",
|
|
8934
|
+
// eslint-disable-next-line no-script-url
|
|
8935
|
+
"javascript:"
|
|
8936
|
+
];
|
|
8919
8937
|
if (Ha.test(e)) {
|
|
8920
|
-
let
|
|
8921
|
-
if (a.
|
|
8922
|
-
|
|
8938
|
+
let o = e, i = o.startsWith("//") ? new URL(t.protocol + o) : new URL(o);
|
|
8939
|
+
if (a.includes(i.protocol))
|
|
8940
|
+
throw new Error("Invalid redirect location");
|
|
8941
|
+
let s = jt(i.pathname, r) != null;
|
|
8942
|
+
if (i.origin === t.origin && s)
|
|
8943
|
+
return i.pathname + i.search + i.hash;
|
|
8944
|
+
}
|
|
8945
|
+
try {
|
|
8946
|
+
let o = n.createURL(e);
|
|
8947
|
+
if (a.includes(o.protocol))
|
|
8948
|
+
throw new Error("Invalid redirect location");
|
|
8949
|
+
} catch {
|
|
8923
8950
|
}
|
|
8924
8951
|
return e;
|
|
8925
8952
|
}
|
|
@@ -9294,7 +9321,7 @@ function up(e, t) {
|
|
|
9294
9321
|
}
|
|
9295
9322
|
}
|
|
9296
9323
|
/**
|
|
9297
|
-
* React Router v6.30.
|
|
9324
|
+
* React Router v6.30.3
|
|
9298
9325
|
*
|
|
9299
9326
|
* Copyright (c) Remix Software Inc.
|
|
9300
9327
|
*
|
|
@@ -27,7 +27,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
27
27
|
import React from 'react';
|
|
28
28
|
import { Form } from 'antd';
|
|
29
29
|
import styled from '@emotion/styled';
|
|
30
|
-
var StyledFormItem = styled(Form.Item)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n
|
|
30
|
+
var StyledFormItem = styled(Form.Item)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n .search-item__label {\n position: relative;\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n height: 32px;\n font-size: 14px;\n color: rgba(0, 0, 0, 85%);\n\n &::after {\n position: relative;\n top: -0.5px;\n margin: 0 8px 0 2px;\n content: ':';\n }\n }\n\n .search-item__content {\n flex: 1;\n }\n"], ["\n .search-item__label {\n position: relative;\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n height: 32px;\n font-size: 14px;\n color: rgba(0, 0, 0, 85%);\n\n &::after {\n position: relative;\n top: -0.5px;\n margin: 0 8px 0 2px;\n content: ':';\n }\n }\n\n .search-item__content {\n flex: 1;\n }\n"
|
|
31
31
|
/**
|
|
32
32
|
* 筛选项
|
|
33
33
|
* @param props
|
|
@@ -34,7 +34,7 @@ import { FormattedMessage } from '../IntlProvider';
|
|
|
34
34
|
var AnimatedContainer = styled('div', {
|
|
35
35
|
shouldForwardProp: function (prop) { return prop !== 'show'; },
|
|
36
36
|
})(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n overflow: hidden;\n transition: max-height 0.4s ease-in-out;\n max-height: ", ";\n"], ["\n overflow: hidden;\n transition: max-height 0.4s ease-in-out;\n max-height: ", ";\n"])), function (props) { return props.show ? '450px' : '0'; });
|
|
37
|
-
var StyledForm = styled(Form)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 20px;\n
|
|
37
|
+
var StyledForm = styled(Form)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n &.ant-form {\n padding: 20px;\n padding-bottom: 0;\n margin-bottom: 20px;\n background: #F7FAFB;\n border: 1px solid #F3F3F4;\n\n .ant-form-item {\n margin-bottom: 20px;\n }\n }\n"], ["\n &.ant-form {\n padding: 20px;\n padding-bottom: 0;\n margin-bottom: 20px;\n background: #F7FAFB;\n border: 1px solid #F3F3F4;\n\n .ant-form-item {\n margin-bottom: 20px;\n }\n }\n"])));
|
|
38
38
|
var SearchAreaHandle = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n gap: 10px;\n display: flex;\n justify-content: flex-end;\n margin-bottom: 20px;\n"], ["\n gap: 10px;\n display: flex;\n justify-content: flex-end;\n margin-bottom: 20px;\n"])));
|
|
39
39
|
/**
|
|
40
40
|
* 高级筛选
|
|
@@ -162,6 +162,10 @@ function PopoverSetColumns(_a) {
|
|
|
162
162
|
}, [order, visibleItems, columns, columnsSort, columnsVisible]);
|
|
163
163
|
return (React.createElement(Popover, { overlayClassName: "table-columns-setting-popover", content: React.createElement(ColumnsSettingWrapper, { onDragOver: dragOver }, renderList), trigger: "click", align: {
|
|
164
164
|
offset: [-60, -14]
|
|
165
|
+
}, styles: {
|
|
166
|
+
body: {
|
|
167
|
+
padding: 0
|
|
168
|
+
}
|
|
165
169
|
} },
|
|
166
170
|
React.createElement(IconFont, { type: "icon-setting", style: {
|
|
167
171
|
float: 'right',
|
|
@@ -32,7 +32,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
32
32
|
var react_1 = __importDefault(require("react"));
|
|
33
33
|
var antd_1 = require("antd");
|
|
34
34
|
var styled_1 = __importDefault(require("@emotion/styled"));
|
|
35
|
-
var StyledFormItem = (0, styled_1.default)(antd_1.Form.Item)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n
|
|
35
|
+
var StyledFormItem = (0, styled_1.default)(antd_1.Form.Item)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n .search-item__label {\n position: relative;\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n height: 32px;\n font-size: 14px;\n color: rgba(0, 0, 0, 85%);\n\n &::after {\n position: relative;\n top: -0.5px;\n margin: 0 8px 0 2px;\n content: ':';\n }\n }\n\n .search-item__content {\n flex: 1;\n }\n"], ["\n .search-item__label {\n position: relative;\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n height: 32px;\n font-size: 14px;\n color: rgba(0, 0, 0, 85%);\n\n &::after {\n position: relative;\n top: -0.5px;\n margin: 0 8px 0 2px;\n content: ':';\n }\n }\n\n .search-item__content {\n flex: 1;\n }\n"
|
|
36
36
|
/**
|
|
37
37
|
* 筛选项
|
|
38
38
|
* @param props
|
|
@@ -72,7 +72,7 @@ var IntlProvider_1 = require("../IntlProvider");
|
|
|
72
72
|
var AnimatedContainer = (0, styled_1.default)('div', {
|
|
73
73
|
shouldForwardProp: function (prop) { return prop !== 'show'; },
|
|
74
74
|
})(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n overflow: hidden;\n transition: max-height 0.4s ease-in-out;\n max-height: ", ";\n"], ["\n overflow: hidden;\n transition: max-height 0.4s ease-in-out;\n max-height: ", ";\n"])), function (props) { return props.show ? '450px' : '0'; });
|
|
75
|
-
var StyledForm = (0, styled_1.default)(antd_1.Form)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 20px;\n
|
|
75
|
+
var StyledForm = (0, styled_1.default)(antd_1.Form)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n &.ant-form {\n padding: 20px;\n padding-bottom: 0;\n margin-bottom: 20px;\n background: #F7FAFB;\n border: 1px solid #F3F3F4;\n\n .ant-form-item {\n margin-bottom: 20px;\n }\n }\n"], ["\n &.ant-form {\n padding: 20px;\n padding-bottom: 0;\n margin-bottom: 20px;\n background: #F7FAFB;\n border: 1px solid #F3F3F4;\n\n .ant-form-item {\n margin-bottom: 20px;\n }\n }\n"])));
|
|
76
76
|
var SearchAreaHandle = styled_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n gap: 10px;\n display: flex;\n justify-content: flex-end;\n margin-bottom: 20px;\n"], ["\n gap: 10px;\n display: flex;\n justify-content: flex-end;\n margin-bottom: 20px;\n"])));
|
|
77
77
|
/**
|
|
78
78
|
* 高级筛选
|
|
@@ -200,6 +200,10 @@ function PopoverSetColumns(_a) {
|
|
|
200
200
|
}, [order, visibleItems, columns, columnsSort, columnsVisible]);
|
|
201
201
|
return (react_1.default.createElement(antd_1.Popover, { overlayClassName: "table-columns-setting-popover", content: react_1.default.createElement(styles_1.ColumnsSettingWrapper, { onDragOver: dragOver }, renderList), trigger: "click", align: {
|
|
202
202
|
offset: [-60, -14]
|
|
203
|
+
}, styles: {
|
|
204
|
+
body: {
|
|
205
|
+
padding: 0
|
|
206
|
+
}
|
|
203
207
|
} },
|
|
204
208
|
react_1.default.createElement(IconFont_1.default, { type: "icon-setting", style: {
|
|
205
209
|
float: 'right',
|
package/build/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xmirror-components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.39",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "build/lib/index.js",
|
|
6
6
|
"module": "build/es/index.js",
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
"publish:dev": "npm publish --access public --tag dev"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
+
"@ahooksjs/use-url-state": "^3.5.1",
|
|
26
27
|
"@ant-design/icons": ">=5.0.0",
|
|
27
28
|
"ahooks": ">=3.0.0",
|
|
28
|
-
"antd": "
|
|
29
|
+
"antd": "^5.29.2",
|
|
29
30
|
"lodash-es": ">=4.17.0",
|
|
30
31
|
"react": ">=18.0.0",
|
|
31
32
|
"react-dom": ">=18.0.0",
|
|
32
33
|
"react-intl": "^7.1.14",
|
|
33
|
-
"react-
|
|
34
|
-
"
|
|
35
|
-
"react-router-dom": "^6.30.2"
|
|
34
|
+
"react-router-dom": "^6.30.2",
|
|
35
|
+
"react-transition-group": ">=4.4.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@emotion/react": "^11.14.0",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xmirror-components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.39",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "build/lib/index.js",
|
|
6
6
|
"module": "build/es/index.js",
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
"publish:dev": "npm publish --access public --tag dev"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
+
"@ahooksjs/use-url-state": "^3.5.1",
|
|
26
27
|
"@ant-design/icons": ">=5.0.0",
|
|
27
28
|
"ahooks": ">=3.0.0",
|
|
28
|
-
"antd": "
|
|
29
|
+
"antd": "^5.29.2",
|
|
29
30
|
"lodash-es": ">=4.17.0",
|
|
30
31
|
"react": ">=18.0.0",
|
|
31
32
|
"react-dom": ">=18.0.0",
|
|
32
33
|
"react-intl": "^7.1.14",
|
|
33
|
-
"react-
|
|
34
|
-
"
|
|
35
|
-
"react-router-dom": "^6.30.2"
|
|
34
|
+
"react-router-dom": "^6.30.2",
|
|
35
|
+
"react-transition-group": ">=4.4.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@emotion/react": "^11.14.0",
|