@perses-dev/status-history-chart-plugin 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +41 -0
- package/__mf/css/async/263.17332bd7.css +1 -0
- package/__mf/css/async/341.17332bd7.css +1 -0
- package/__mf/css/async/759.17332bd7.css +1 -0
- package/__mf/font/lato-all-300-normal.322bdf14.woff +0 -0
- package/__mf/font/lato-all-400-normal.63513b00.woff +0 -0
- package/__mf/font/lato-all-700-normal.bb27db94.woff +0 -0
- package/__mf/font/lato-all-900-normal.a27049a3.woff +0 -0
- package/__mf/font/lato-latin-300-normal.c5195215.woff2 +0 -0
- package/__mf/font/lato-latin-400-normal.b7ffde23.woff2 +0 -0
- package/__mf/font/lato-latin-700-normal.d5eb20bc.woff2 +0 -0
- package/__mf/font/lato-latin-900-normal.d884a71c.woff2 +0 -0
- package/__mf/font/lato-latin-ext-300-normal.abcc64a9.woff2 +0 -0
- package/__mf/font/lato-latin-ext-400-normal.6ebed106.woff2 +0 -0
- package/__mf/font/lato-latin-ext-700-normal.8697d1d5.woff2 +0 -0
- package/__mf/font/lato-latin-ext-900-normal.20a2b415.woff2 +0 -0
- package/__mf/js/456.ee65e816.js +5 -0
- package/__mf/js/StatusHistoryChart.3532083a.js +5 -0
- package/__mf/js/async/13.714dc818.js +73 -0
- package/__mf/js/async/13.714dc818.js.LICENSE.txt +19 -0
- package/__mf/js/async/173.23a9af58.js +2 -0
- package/__mf/js/async/173.23a9af58.js.LICENSE.txt +19 -0
- package/__mf/js/async/214.bd903be0.js +1 -0
- package/__mf/js/async/22.b2b97531.js +38 -0
- package/__mf/js/async/224.d1554d4a.js +1 -0
- package/__mf/js/async/232.cccd71f6.js +1 -0
- package/__mf/js/async/238.e1063a95.js +1 -0
- package/__mf/js/async/292.6a606f52.js +1 -0
- package/__mf/js/async/333.a82fc8bd.js +2 -0
- package/__mf/js/async/333.a82fc8bd.js.LICENSE.txt +9 -0
- package/__mf/js/async/488.f3f63548.js +1 -0
- package/__mf/js/async/539.e7706a03.js +2 -0
- package/__mf/js/async/539.e7706a03.js.LICENSE.txt +15 -0
- package/__mf/js/async/610.37fe76b5.js +1 -0
- package/__mf/js/async/62.b55b7073.js +1 -0
- package/__mf/js/async/620.9ead3302.js +2 -0
- package/__mf/js/async/620.9ead3302.js.LICENSE.txt +9 -0
- package/__mf/js/async/651.f99d8a40.js +1 -0
- package/__mf/js/async/694.f0fc36da.js +1 -0
- package/__mf/js/async/738.a0be8511.js +1 -0
- package/__mf/js/async/740.6b036ded.js +1 -0
- package/__mf/js/async/75.2cda0740.js +1 -0
- package/__mf/js/async/770.ddaea8f9.js +1 -0
- package/__mf/js/async/822.c6b015c5.js +29 -0
- package/__mf/js/async/822.c6b015c5.js.LICENSE.txt +43 -0
- package/__mf/js/async/960.587af91a.js +2 -0
- package/__mf/js/async/960.587af91a.js.LICENSE.txt +8 -0
- package/__mf/js/async/964.03c8778c.js +2 -0
- package/__mf/js/async/964.03c8778c.js.LICENSE.txt +9 -0
- package/__mf/js/async/977.1462b2d4.js +110 -0
- package/__mf/js/async/977.1462b2d4.js.LICENSE.txt +27 -0
- package/__mf/js/async/981.caaa6409.js +2 -0
- package/__mf/js/async/981.caaa6409.js.LICENSE.txt +8 -0
- package/__mf/js/async/996.06dcce9b.js +2 -0
- package/__mf/js/async/996.06dcce9b.js.LICENSE.txt +24 -0
- package/__mf/js/async/__federation_expose_StatusHistoryChart.7de772fb.js +1 -0
- package/__mf/js/async/lib-router.c90fcaed.js +2 -0
- package/__mf/js/async/lib-router.c90fcaed.js.LICENSE.txt +32 -0
- package/__mf/js/main.2afb03fb.js +1 -0
- package/lib/StatusHistoryChart.d.ts +5 -0
- package/lib/StatusHistoryChart.d.ts.map +1 -0
- package/lib/StatusHistoryChart.js +35 -0
- package/lib/StatusHistoryChart.js.map +1 -0
- package/lib/StatusHistoryChartOptionsEditorSettings.d.ts +4 -0
- package/lib/StatusHistoryChartOptionsEditorSettings.d.ts.map +1 -0
- package/lib/StatusHistoryChartOptionsEditorSettings.js +55 -0
- package/lib/StatusHistoryChartOptionsEditorSettings.js.map +1 -0
- package/lib/StatusHistoryPanel.d.ts +7 -0
- package/lib/StatusHistoryPanel.d.ts.map +1 -0
- package/lib/StatusHistoryPanel.js +71 -0
- package/lib/StatusHistoryPanel.js.map +1 -0
- package/lib/StatusHistoryValueMappingEditor.d.ts +6 -0
- package/lib/StatusHistoryValueMappingEditor.d.ts.map +1 -0
- package/lib/StatusHistoryValueMappingEditor.js +28 -0
- package/lib/StatusHistoryValueMappingEditor.js.map +1 -0
- package/lib/bootstrap.d.ts +2 -0
- package/lib/bootstrap.d.ts.map +1 -0
- package/lib/bootstrap.js +19 -0
- package/lib/bootstrap.js.map +1 -0
- package/lib/cjs/StatusHistoryChart.js +43 -0
- package/lib/cjs/StatusHistoryChartOptionsEditorSettings.js +63 -0
- package/lib/cjs/StatusHistoryPanel.js +79 -0
- package/lib/cjs/StatusHistoryValueMappingEditor.js +36 -0
- package/lib/cjs/bootstrap.js +26 -0
- package/lib/cjs/env.d.js +14 -0
- package/lib/cjs/getPluginModule.js +27 -0
- package/lib/cjs/index-federation.js +55 -0
- package/lib/cjs/index.js +29 -0
- package/lib/cjs/setup-tests.js +19 -0
- package/lib/cjs/status-history-model.js +25 -0
- package/lib/cjs/utils/data-transform.js +124 -0
- package/lib/cjs/utils/get-timescale.js +27 -0
- package/lib/env.d.js +15 -0
- package/lib/env.d.js.map +1 -0
- package/lib/getPluginModule.d.ts +6 -0
- package/lib/getPluginModule.d.ts.map +1 -0
- package/lib/getPluginModule.js +16 -0
- package/lib/getPluginModule.js.map +1 -0
- package/lib/index-federation.d.ts +1 -0
- package/lib/index-federation.d.ts.map +1 -0
- package/lib/index-federation.js +15 -0
- package/lib/index-federation.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -0
- package/lib/setup-tests.d.ts +2 -0
- package/lib/setup-tests.d.ts.map +1 -0
- package/lib/setup-tests.js +17 -0
- package/lib/setup-tests.js.map +1 -0
- package/lib/status-history-model.d.ts +9 -0
- package/lib/status-history-model.d.ts.map +1 -0
- package/lib/status-history-model.js +17 -0
- package/lib/status-history-model.js.map +1 -0
- package/lib/utils/data-transform.d.ts +18 -0
- package/lib/utils/data-transform.d.ts.map +1 -0
- package/lib/utils/data-transform.js +116 -0
- package/lib/utils/data-transform.js.map +1 -0
- package/lib/utils/get-timescale.d.ts +4 -0
- package/lib/utils/get-timescale.d.ts.map +1 -0
- package/lib/utils/get-timescale.js +19 -0
- package/lib/utils/get-timescale.js.map +1 -0
- package/mf-manifest.json +367 -0
- package/mf-stats.json +421 -0
- package/package.json +53 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* ZRender, a high performance 2d drawing library.
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2013, Baidu Inc.
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
*
|
|
7
|
+
* LICENSE
|
|
8
|
+
* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/*! *****************************************************************************
|
|
12
|
+
Copyright (c) Microsoft Corporation.
|
|
13
|
+
|
|
14
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
15
|
+
purpose with or without fee is hereby granted.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
18
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
19
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
20
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
21
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
22
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
23
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
24
|
+
***************************************************************************** */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkStatusHistoryChart=self.webpackChunkStatusHistoryChart||[]).push([["560"],{28661:function(e,t,r){r.r(t),r.d(t,{StatusHistoryChart:()=>p});var l=r(24246),n=r(27463),o=r(75586),i=r(83941),a=r(48565),s=r(36372),u=r(93098),d=r(54538);function c(e,t=[]){if(!t.length)return{value:e};let r={value:e};return t.forEach(t=>{switch(t.kind){case"Value":{let l=t.spec;String(l.value)===String(e)&&(r.value=l.result.value||r.value,r.color=l.result.color);break}case"Range":{let l=t.spec;if(void 0===l.from&&void 0===l.to)break;let n=void 0!==l.from?l.from:-1/0,o=void 0!==l.to?l.to:1/0;e>=n&&e<=o&&(r.value=l.result.value||r.value,r.color=l.result.color);break}case"Regex":{let l=t.spec,n=e.toString();if(!l.pattern)break;let o=function(e){if(!e)throw Error("Input string cannot be empty");if(!e?.startsWith("/"))return RegExp(`^${e}$`);let t=e.match(/^\/(.+)\/([gimy]*)$/);if(!t)throw Error(`Invalid regular expression format: ${e}`);let[,r="",l=""]=t;try{return new RegExp(r,l)}catch(e){throw Error(`Failed to create RegExp ${e}`)}}(l.pattern);n.match(o)&&null!==l.result.value&&(r.value=n.replace(o,l.result.value.toString()||"")||r.value,r.color=l.result.color);break}case"Misc":{let l=t.spec;(function(e,t){switch(e){case"empty":return""===t;case"null":return null==t;case"NaN":return Number.isNaN(t);case"true":return!0===t;case"false":return!1===t;default:return!1}})(l.value,e)&&(r.value=l.result.value||r.value,r.color=l.result.color)}}}),r}var g=r(69481);let p={PanelComponent:function(e){var t;let{spec:r,contentDimensions:o,queryResults:a}=e,p=(0,d.useMemo)(()=>r.legend&&(0,n.validateLegendSpec)(r.legend)?(0,u.merge)({},r.legend):void 0,[r.legend]),h=(0,i.useChartsTheme)(),v=h.container.padding.default,{statusHistoryData:m,yAxisCategories:f,xAxisCategories:x,legendItems:C,timeScale:S,colors:y}=(t=h.echartsTheme.color,(0,d.useMemo)(()=>{var e;if(!a||0===a.length)return{legendItems:[],statusHistoryData:[],xAxisCategories:[],yAxisCategories:[],colors:[]};let l=function(e){let t=e.map(e=>e.data);return(0,g.C5)(t)}(a),n=[],o=[],s=new Set,u=null===(e=r.mappings)||void 0===e?void 0:e.length,d=function(e){if(!e)return[];let{startMs:t,endMs:r,stepMs:l}=e,n=[];for(let e=t;e<=r;e+=l)n.push(e);return n}(l);a.forEach(e=>{let{data:t}=e;t&&t.series.forEach(e=>{let t=e.formattedName||"";o.push(t);let l=o.length-1;e.values.forEach(e=>{let[t,o]=e,i=d.findIndex(e=>e===t);if(null!==o&&-1!==i){let e=o;u&&(e=c(o,r.mappings).value),s.add(o),n.push({value:[i,l,o],label:String(e)})}})})});let p=Array.from(s),h=(0,i.getColorsForValues)(p,t),v=p.map((e,t)=>{let l=h[t]??i.FALLBACK_COLOR;return u&&(l=c(e,r.mappings).color??l),{value:e,color:l}});return{xAxisCategories:d,yAxisCategories:o,legendItems:p.map((e,t)=>{var l;let n=String(e);u&&(n=String(c(e,r.mappings).value));let o=(null===(l=v.find(t=>t.value===e))||void 0===l?void 0:l.color)||i.FALLBACK_COLOR;return{id:`${t}-${e}`,label:n,color:o}}),statusHistoryData:n,timeScale:l,colors:v}},[a,r.mappings,t])),E=o?{width:o.width-2*v,height:o.height-2*v}:void 0;return m&&0!==m.length?(0,l.jsx)(s.Z,{sx:{padding:`${v}px`},children:(0,l.jsx)(i.ContentWithLegend,{width:(null==E?void 0:E.width)??400,height:(null==E?void 0:E.height)??1e3,legendSize:null==p?void 0:p.size,legendProps:p&&{options:p,data:C||[],selectedItems:"ALL",onSelectedItemsChange:()=>null},children:e=>{let{height:t,width:r}=e;return(0,l.jsx)(s.Z,{sx:{height:t,width:r},children:(0,l.jsx)(i.StatusHistoryChart,{xAxisCategories:x,yAxisCategories:f,data:m,timeScale:S,height:t,colors:y})})}})}):null},supportedQueryTypes:["TimeSeriesQuery"],panelOptionsEditorComponents:[{label:"Settings",content:function(e){let{onChange:t,value:r}=e;return(0,l.jsxs)(i.OptionsEditorGrid,{children:[(0,l.jsx)(i.OptionsEditorColumn,{children:(0,l.jsx)(n.LegendOptionsEditor,{showValuesEditor:!1,value:r.legend,onChange:e=>{t((0,o.Uy)(r,t=>{t.legend=e}))}})}),(0,l.jsx)(i.OptionsEditorColumn,{children:(0,l.jsx)(i.OptionsEditorGroup,{title:"Reset Settings",children:(0,l.jsx)(a.Z,{variant:"outlined",color:"secondary",onClick:()=>{t((0,o.Uy)(r,e=>{e.legend=void 0}))},children:"Reset To Defaults"})})})]})}},{label:"Value mapping",content:e=>{let{onChange:t,value:r}=e;return(0,l.jsx)(i.ValueMappingsEditor,{mappings:r.mappings??[],onChange:function(e){t({...r,mappings:e})}})}}],createInitialOptions:function(){return{}}}}}]);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! For license information please see lib-router.c90fcaed.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunkStatusHistoryChart=self.webpackChunkStatusHistoryChart||[]).push([["118"],{65895:function(e,t,r){r.r(t),r.d(t,{useSearchParams:()=>rx,matchPath:()=>O,createHashRouter:()=>rt,useViewTransitionState:()=>rO,useRoutes:()=>td,UNSAFE_NavigationContext:()=>e2,UNSAFE_useRouteId:()=>tS,unstable_HistoryRouter:()=>rp,useNavigationType:()=>tr,redirect:()=>Q,isRouteErrorResponse:()=>er,NavigationType:()=>c,useMatches:()=>tC,Router:()=>tH,useRouteError:()=>tk,Link:()=>ry,createPath:()=>C,resolvePath:()=>B,useBeforeUnload:()=>rj,createRoutesFromChildren:()=>tq,NavLink:()=>rg,useSubmit:()=>rD,renderMatches:()=>tX,createBrowserRouter:()=>re,ScrollRestoration:()=>rb,useFetcher:()=>rk,generatePath:()=>M,AbortedDeferredError:()=>q,Outlet:()=>tI,useFormAction:()=>rL,MemoryRouter:()=>tN,Form:()=>rw,HashRouter:()=>rf,Navigate:()=>tB,RouterProvider:()=>rc,createMemoryRouter:()=>tQ,UNSAFE_DataRouterStateContext:()=>e4,useHref:()=>e9,useBlocker:()=>tU,useLinkClickHandler:()=>rR,Await:()=>t$,createSearchParams:()=>t4,replace:()=>ee,parsePath:()=>P,defer:()=>G,json:()=>Y,BrowserRouter:()=>rh,matchRoutes:()=>_,useAsyncValue:()=>t_,useAsyncError:()=>tA,useLocation:()=>tt,UNSAFE_RouteContext:()=>e6,UNSAFE_FetchersContext:()=>ra,useNavigate:()=>to,useParams:()=>tu,useResolvedPath:()=>tc,Routes:()=>tW,UNSAFE_ViewTransitionContext:()=>rn,useActionData:()=>tL,useOutlet:()=>ts,useRevalidator:()=>tx,UNSAFE_ErrorResponseImpl:()=>et,UNSAFE_LocationContext:()=>e3,UNSAFE_useScrollRestoration:()=>rU,createRoutesFromElements:()=>tq,redirectDocument:()=>Z,unstable_usePrompt:()=>rM,useMatch:()=>tn,useRouteLoaderData:()=>tD,useFetchers:()=>r_,UNSAFE_DataRouterContext:()=>e7,useLoaderData:()=>tP,Route:()=>tz,useInRouterContext:()=>te,useNavigation:()=>tR,useOutletContext:()=>tl});var n,a,o,i,l,s,u,c,d,h,f,p=r(54538),m=r(6085);function v(){return(v=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}).apply(this,arguments)}(n=c||(c={})).Pop="POP",n.Push="PUSH",n.Replace="REPLACE";let y="popstate";function g(e){let t;void 0===e&&(e={});let{initialEntries:r=["/"],initialIndex:n,v5Compat:a=!1}=e;t=r.map((e,t)=>u(e,"string"==typeof e?null:e.state,0===t?"default":void 0));let o=s(null==n?t.length-1:n),i=c.Pop,l=null;function s(e){return Math.min(Math.max(e,0),t.length-1)}function u(e,r,n){void 0===r&&(r=null);let a=x(t?t[o].pathname:"/",e,r,n);return S("/"===a.pathname.charAt(0),"relative pathnames are not supported in memory history: "+JSON.stringify(e)),a}function d(e){return"string"==typeof e?e:C(e)}return{get index(){return o},get action(){return i},get location(){return t[o]},createHref:d,createURL:e=>new URL(d(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?P(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,r){i=c.Push;let n=u(e,r);o+=1,t.splice(o,t.length,n),a&&l&&l({action:i,location:n,delta:1})},replace(e,r){i=c.Replace;let n=u(e,r);t[o]=n,a&&l&&l({action:i,location:n,delta:0})},go(e){i=c.Pop;let r=s(o+e),n=t[r];o=r,l&&l({action:i,location:n,delta:e})},listen:e=>(l=e,()=>{l=null})}}function w(e){return void 0===e&&(e={}),D(function(e,t){let{pathname:r,search:n,hash:a}=e.location;return x("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){return"string"==typeof t?t:C(t)},null,e)}function b(e){return void 0===e&&(e={}),D(function(e,t){let{pathname:r="/",search:n="",hash:a=""}=P(e.location.hash.substr(1));return r.startsWith("/")||r.startsWith(".")||(r="/"+r),x("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){let r=e.document.querySelector("base"),n="";if(r&&r.getAttribute("href")){let t=e.location.href,r=t.indexOf("#");n=-1===r?t:t.slice(0,r)}return n+"#"+("string"==typeof t?t:C(t))},function(e,t){S("/"===e.pathname.charAt(0),"relative pathnames are not supported in hash history.push("+JSON.stringify(t)+")")},e)}function E(e,t){if(!1===e||null==e)throw Error(t)}function S(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw Error(t)}catch(e){}}}function R(e,t){return{usr:e.state,key:e.key,idx:t}}function x(e,t,r,n){return void 0===r&&(r=null),v({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?P(t):t,{state:r,key:t&&t.key||n||Math.random().toString(36).substr(2,8)})}function C(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 P(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}function D(e,t,r,n){void 0===n&&(n={});let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,l=c.Pop,s=null,u=d();function d(){return(i.state||{idx:null}).idx}function h(){l=c.Pop;let e=d(),t=null==e?null:e-u;u=e,s&&s({action:l,location:p.location,delta:t})}function f(e){let t="null"!==a.location.origin?a.location.origin:a.location.href,r="string"==typeof e?e:C(e);return E(t,"No window.location.(origin|href) available to create URL for href: "+(r=r.replace(/ $/,"%20"))),new URL(r,t)}null==u&&(u=0,i.replaceState(v({},i.state,{idx:u}),""));let p={get action(){return l},get location(){return e(a,i)},listen(e){if(s)throw Error("A history only accepts one active listener");return a.addEventListener(y,h),s=e,()=>{a.removeEventListener(y,h),s=null}},createHref:e=>t(a,e),createURL:f,encodeLocation(e){let t=f(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){l=c.Push;let n=x(p.location,e,t);r&&r(n,e);let h=R(n,u=d()+1),f=p.createHref(n);try{i.pushState(h,"",f)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;a.location.assign(f)}o&&s&&s({action:l,location:p.location,delta:1})},replace:function(e,t){l=c.Replace;let n=x(p.location,e,t);r&&r(n,e);let a=R(n,u=d()),h=p.createHref(n);i.replaceState(a,"",h),o&&s&&s({action:l,location:p.location,delta:0})},go:e=>i.go(e)};return p}(a=d||(d={})).data="data",a.deferred="deferred",a.redirect="redirect",a.error="error";let L=new Set(["lazy","caseSensitive","path","id","index","children"]);function k(e,t,r,n){return void 0===r&&(r=[]),void 0===n&&(n={}),e.map((e,a)=>{let o=[...r,String(a)],i="string"==typeof e.id?e.id:o.join("-");if(E(!0!==e.index||!e.children,"Cannot specify children on an index route"),E(!n[i],'Found a route id collision on id "'+i+"\". Route id's must be globally unique within Data Router usages"),!0===e.index){let r=v({},e,t(e),{id:i});return n[i]=r,r}{let r=v({},e,t(e),{id:i,children:void 0});return n[i]=r,e.children&&(r.children=k(e.children,t,o,n)),r}})}function _(e,t,r){return void 0===r&&(r="/"),A(e,t,r,!1)}function A(e,t,r,n){let a=N(("string"==typeof t?P(t):t).pathname||"/",r);if(null==a)return null;let o=function e(t,r,n,a){void 0===r&&(r=[]),void 0===n&&(n=[]),void 0===a&&(a="");let o=(t,o,i)=>{let l={relativePath:void 0===i?t.path||"":i,caseSensitive:!0===t.caseSensitive,childrenIndex:o,route:t};l.relativePath.startsWith("/")&&(E(l.relativePath.startsWith(a),'Absolute route path "'+l.relativePath+'" nested under path "'+a+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),l.relativePath=l.relativePath.slice(a.length));let s=$([a,l.relativePath]),u=n.concat(l);if(t.children&&t.children.length>0&&(E(!0!==t.index,'Index routes must not have child routes. Please remove all child routes from route path "'+s+'".'),e(t.children,r,u,s)),null!=t.path||t.index){var c,d;let e,n;r.push({path:s,score:(c=s,d=t.index,n=(e=c.split("/")).length,e.some(j)&&(n+=-2),d&&(n+=2),e.filter(e=>!j(e)).reduce((e,t)=>e+(U.test(t)?3:""===t?1:10),n)),routesMeta:u})}};return t.forEach((e,t)=>{var r;if(""!==e.path&&null!=(r=e.path)&&r.includes("?"))for(let r of function e(t){let r=t.split("/");if(0===r.length)return[];let[n,...a]=r,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===a.length)return o?[i,""]:[i];let l=e(a.join("/")),s=[];return s.push(...l.map(e=>""===e?i:[i,e].join("/"))),o&&s.push(...l),s.map(e=>t.startsWith("/")&&""===e?"/":e)}(e.path))o(e,t,r);else o(e,t)}),r}(e);!function(e){e.sort((e,t)=>{var r,n;return e.score!==t.score?t.score-e.score:(r=e.routesMeta.map(e=>e.childrenIndex),n=t.routesMeta.map(e=>e.childrenIndex),r.length===n.length&&r.slice(0,-1).every((e,t)=>e===n[t])?r[r.length-1]-n[n.length-1]:0)})}(o);let i=null;for(let e=0;null==i&&e<o.length;++e){let t=F(a);i=function(e,t,r){void 0===r&&(r=!1);let{routesMeta:n}=e,a={},o="/",i=[];for(let e=0;e<n.length;++e){let l=n[e],s=e===n.length-1,u="/"===o?t:t.slice(o.length)||"/",c=O({path:l.relativePath,caseSensitive:l.caseSensitive,end:s},u),d=l.route;if(!c&&s&&r&&!n[n.length-1].route.index&&(c=O({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},u)),!c)return null;Object.assign(a,c.params),i.push({params:a,pathname:$([o,c.pathname]),pathnameBase:V($([o,c.pathnameBase])),route:d}),"/"!==c.pathnameBase&&(o=$([o,c.pathnameBase]))}return i}(o[e],t,n)}return i}function T(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}}let U=/^:[\w-]+$/,j=e=>"*"===e;function M(e,t){void 0===t&&(t={});let r=e;r.endsWith("*")&&"*"!==r&&!r.endsWith("/*")&&(S(!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(/\*$/,"/*"));let n=r.startsWith("/")?"/":"",a=e=>null==e?"":"string"==typeof e?e:String(e);return n+r.split(/\/+/).map((e,r,n)=>{if(r===n.length-1&&"*"===e)return a(t["*"]);let o=e.match(/^:([\w-]+)(\??)$/);if(o){let[,e,r]=o,n=t[e];return E("?"===r||null!=n,'Missing ":'+e+'" param'),a(n)}return e.replace(/\?$/g,"")}).filter(e=>!!e).join("/")}function O(e,t){var r,n,a;let o,i;"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[l,s]=(r=e.path,n=e.caseSensitive,a=e.end,void 0===n&&(n=!1),void 0===a&&(a=!0),S("*"===r||!r.endsWith("*")||r.endsWith("/*"),'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(/\*$/,"/*")+'".'),o=[],i="^"+r.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,r)=>(o.push({paramName:t,isOptional:null!=r}),r?"/?([^\\/]+)?":"/([^\\/]+)")),r.endsWith("*")?(o.push({paramName:"*"}),i+="*"===r||"/*"===r?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?i+="\\/*$":""!==r&&"/"!==r&&(i+="(?:(?=\\/|$))"),[new RegExp(i,n?void 0:"i"),o]),u=t.match(l);if(!u)return null;let c=u[0],d=c.replace(/(.)\/+$/,"$1"),h=u.slice(1);return{params:s.reduce((e,t,r)=>{let{paramName:n,isOptional:a}=t;if("*"===n){let e=h[r]||"";d=c.slice(0,c.length-e.length).replace(/(.)\/+$/,"$1")}let o=h[r];return a&&!o?e[n]=void 0:e[n]=(o||"").replace(/%2F/g,"/"),e},{}),pathname:c,pathnameBase:d,pattern:e}}function F(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return S(!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 N(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)||"/"}function B(e,t){var r;let n;void 0===t&&(t="/");let{pathname:a,search:o="",hash:i=""}="string"==typeof e?P(e):e;return{pathname:a?a.startsWith("/")?a:(r=a,n=t.replace(/\/+$/,"").split("/"),r.split("/").forEach(e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)}),n.length>1?n.join("/"):"/"):t,search:J(o),hash:K(i)}}function I(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 z(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function H(e,t){let r=z(e);return t?r.map((e,t)=>t===r.length-1?e.pathname:e.pathnameBase):r.map(e=>e.pathnameBase)}function W(e,t,r,n){let a,o;void 0===n&&(n=!1),"string"==typeof e?a=P(e):(E(!(a=v({},e)).pathname||!a.pathname.includes("?"),I("?","pathname","search",a)),E(!a.pathname||!a.pathname.includes("#"),I("#","pathname","hash",a)),E(!a.search||!a.search.includes("#"),I("#","search","hash",a)));let i=""===e||""===a.pathname,l=i?"/":a.pathname;if(null==l)o=r;else{let e=t.length-1;if(!n&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let s=B(a,o),u=l&&"/"!==l&&l.endsWith("/"),c=(i||"."===l)&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||c)&&(s.pathname+="/"),s}let $=e=>e.join("/").replace(/\/\/+/g,"/"),V=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),J=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",K=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",Y=function(e,t){void 0===t&&(t={});let r="number"==typeof t?{status:t}:t,n=new Headers(r.headers);return n.has("Content-Type")||n.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(e),v({},r,{headers:n}))};class q extends Error{}class X{constructor(e,t){let r;this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],E(e&&"object"==typeof e&&!Array.isArray(e),"defer() only accepts plain objects"),this.abortPromise=new Promise((e,t)=>r=t),this.controller=new AbortController;let n=()=>r(new q("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",n),this.controller.signal.addEventListener("abort",n),this.data=Object.entries(e).reduce((e,t)=>{let[r,n]=t;return Object.assign(e,{[r]:this.trackPromise(r,n)})},{}),this.done&&this.unlistenAbortSignal(),this.init=t}trackPromise(e,t){if(!(t instanceof Promise))return t;this.deferredKeys.push(e),this.pendingKeysSet.add(e);let r=Promise.race([t,this.abortPromise]).then(t=>this.onSettle(r,e,void 0,t),t=>this.onSettle(r,e,t));return r.catch(()=>{}),Object.defineProperty(r,"_tracked",{get:()=>!0}),r}onSettle(e,t,r,n){if(this.controller.signal.aborted&&r instanceof q)return this.unlistenAbortSignal(),Object.defineProperty(e,"_error",{get:()=>r}),Promise.reject(r);if(this.pendingKeysSet.delete(t),this.done&&this.unlistenAbortSignal(),void 0===r&&void 0===n){let r=Error('Deferred data for key "'+t+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(e,"_error",{get:()=>r}),this.emit(!1,t),Promise.reject(r)}return void 0===n?(Object.defineProperty(e,"_error",{get:()=>r}),this.emit(!1,t),Promise.reject(r)):(Object.defineProperty(e,"_data",{get:()=>n}),this.emit(!1,t),n)}emit(e,t){this.subscribers.forEach(r=>r(e,t))}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach((e,t)=>this.pendingKeysSet.delete(t)),this.emit(!0)}async resolveData(e){let t=!1;if(!this.done){let r=()=>this.cancel();e.addEventListener("abort",r),t=await new Promise(t=>{this.subscribe(n=>{e.removeEventListener("abort",r),(n||this.done)&&t(n)})})}return t}get done(){return 0===this.pendingKeysSet.size}get unwrappedData(){return E(null!==this.data&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce((e,t)=>{let[r,n]=t;return Object.assign(e,{[r]:function(e){if(!(e instanceof Promise&&!0===e._tracked))return e;if(e._error)throw e._error;return e._data}(n)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}let G=function(e,t){return void 0===t&&(t={}),new X(e,"number"==typeof t?{status:t}:t)},Q=function(e,t){void 0===t&&(t=302);let r=t;"number"==typeof r?r={status:r}:void 0===r.status&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,v({},r,{headers:n}))},Z=(e,t)=>{let r=Q(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},ee=(e,t)=>{let r=Q(e,t);return r.headers.set("X-Remix-Replace","true"),r};class et{constructor(e,t,r,n){void 0===n&&(n=!1),this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function er(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}let en=["post","put","patch","delete"],ea=new Set(en),eo=new Set(["get",...en]),ei=new Set([301,302,303,307,308]),el=new Set([307,308]),es={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},eu={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ec={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ed=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,eh=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),ef="remix-router-transitions";function ep(e){let t,r,n,a,o,i;let l=e.window?e.window:"undefined"!=typeof window?window:void 0,s=void 0!==l&&void 0!==l.document&&void 0!==l.document.createElement,u=!s;if(E(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)t=e.mapRouteProperties;else if(e.detectErrorBoundary){let r=e.detectErrorBoundary;t=e=>({hasErrorBoundary:r(e)})}else t=eh;let h={},f=k(e.routes,t,void 0,h),p=e.basename||"/",m=e.dataStrategy||ex,y=e.patchRoutesOnNavigation,g=v({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),w=null,b=new Set,R=null,C=null,P=null,D=null!=e.hydrationData,L=_(f,e.history.location,p),U=!1,j=null;if(null==L&&!y){let t=eF(404,{pathname:e.history.location.pathname}),{matches:r,route:n}=eO(f);L=r,j={[n.id]:t}}if(L&&!e.hydrationData&&to(L,f,e.history.location.pathname).active&&(L=null),L){if(L.some(e=>e.route.lazy))n=!1;else if(L.some(e=>e.route.loader)){if(g.v7_partialHydration){let t=e.hydrationData?e.hydrationData.loaderData:null,r=e.hydrationData?e.hydrationData.errors:null;if(r){let e=L.findIndex(e=>void 0!==r[e.route.id]);n=L.slice(0,e+1).every(e=>!ew(e.route,t,r))}else n=L.every(e=>!ew(e.route,t,r))}else n=null!=e.hydrationData}else n=!0}else if(n=!1,L=[],g.v7_partialHydration){let t=to(null,f,e.history.location.pathname);t.active&&t.matches&&(U=!0,L=t.matches)}let M={historyAction:e.history.action,location:e.history.location,matches:L,initialized:n,navigation:es,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||j,fetchers:new Map,blockers:new Map},O=c.Pop,F=!1,B=!1,I=new Map,z=null,H=!1,W=!1,$=[],V=new Set,J=new Map,K=0,Y=-1,q=new Map,X=new Set,G=new Map,Q=new Map,Z=new Set,ee=new Map,et=new Map;function en(e,t){void 0===t&&(t={}),M=v({},M,e);let r=[],n=[];g.v7_fetcherPersist&&M.fetchers.forEach((e,t)=>{"idle"===e.state&&(Z.has(t)?n.push(t):r.push(t))}),Z.forEach(e=>{M.fetchers.has(e)||J.has(e)||n.push(e)}),[...b].forEach(e=>e(M,{deletedFetchers:n,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),g.v7_fetcherPersist?(r.forEach(e=>M.fetchers.delete(e)),n.forEach(e=>e4(e))):n.forEach(e=>Z.delete(e))}function ea(t,n,a){var o,i;let l,s;let{flushSync:u}=void 0===a?{}:a,d=null!=M.actionData&&null!=M.navigation.formMethod&&eV(M.navigation.formMethod)&&"loading"===M.navigation.state&&(null==(o=t.state)?void 0:o._isRedirect)!==!0;l=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:d?M.actionData:null;let h=n.loaderData?eU(M.loaderData,n.loaderData,n.matches||[],n.errors):M.loaderData,p=M.blockers;p.size>0&&(p=new Map(p)).forEach((e,t)=>p.set(t,ec));let m=!0===F||null!=M.navigation.formMethod&&eV(M.navigation.formMethod)&&(null==(i=t.state)?void 0:i._isRedirect)!==!0;if(r&&(f=r,r=void 0),H||O===c.Pop||(O===c.Push?e.history.push(t,t.state):O===c.Replace&&e.history.replace(t,t.state)),O===c.Pop){let e=I.get(M.location.pathname);e&&e.has(t.pathname)?s={currentLocation:M.location,nextLocation:t}:I.has(t.pathname)&&(s={currentLocation:t,nextLocation:M.location})}else if(B){let e=I.get(M.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),I.set(M.location.pathname,e)),s={currentLocation:M.location,nextLocation:t}}en(v({},n,{actionData:l,loaderData:h,historyAction:O,location:t,initialized:!0,navigation:es,revalidation:"idle",restoreScrollPosition:ta(t,n.matches||M.matches),preventScrollReset:m,blockers:p}),{viewTransitionOpts:s,flushSync:!0===u}),O=c.Pop,F=!1,B=!1,H=!1,W=!1,$=[]}async function eo(t,r){if("number"==typeof t){e.history.go(t);return}let n=em(M.location,M.matches,p,g.v7_prependBasename,t,g.v7_relativeSplatPath,null==r?void 0:r.fromRouteId,null==r?void 0:r.relative),{path:a,submission:o,error:i}=ev(g.v7_normalizeFormMethod,!1,n,r),l=M.location,s=x(M.location,a,r&&r.state);s=v({},s,e.history.encodeLocation(s));let u=r&&null!=r.replace?r.replace:void 0,d=c.Push;!0===u?d=c.Replace:!1===u||null!=o&&eV(o.formMethod)&&o.formAction===M.location.pathname+M.location.search&&(d=c.Replace);let h=r&&"preventScrollReset"in r?!0===r.preventScrollReset:void 0,f=!0===(r&&r.flushSync),m=te({currentLocation:l,nextLocation:s,historyAction:d});if(m){e9(m,{state:"blocked",location:s,proceed(){e9(m,{state:"proceeding",proceed:void 0,reset:void 0,location:s}),eo(t,r)},reset(){let e=new Map(M.blockers);e.set(m,ec),en({blockers:e})}});return}return await ep(d,s,{submission:o,pendingError:i,preventScrollReset:h,replace:r&&r.replace,enableViewTransition:r&&r.viewTransition,flushSync:f})}async function ep(t,n,a){var i,l,s,u;let c;o&&o.abort(),o=null,O=t,H=!0===(a&&a.startUninterruptedRevalidation),i=M.location,l=M.matches,R&&P&&(R[tn(i,l)]=P()),F=!0===(a&&a.preventScrollReset),B=!0===(a&&a.enableViewTransition);let h=r||f,m=a&&a.overrideNavigation,y=null!=a&&a.initialHydration&&M.matches&&M.matches.length>0&&!U?M.matches:_(h,n,p),g=!0===(a&&a.flushSync);if(y&&M.initialized&&!W&&(s=M.location,u=n,s.pathname===u.pathname&&s.search===u.search&&(""===s.hash?""!==u.hash:s.hash===u.hash||""!==u.hash))&&!(a&&a.submission&&eV(a.submission.formMethod))){ea(n,{matches:y},{flushSync:g});return}let w=to(y,h,n.pathname);if(w.active&&w.matches&&(y=w.matches),!y){let{error:e,notFoundMatches:t,route:r}=tt(n.pathname);ea(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:g});return}o=new AbortController;let b=ek(e.history,n,o.signal,a&&a.submission);if(a&&a.pendingError)c=[eM(y).route.id,{type:d.error,error:a.pendingError}];else if(a&&a.submission&&eV(a.submission.formMethod)){let t=await ey(b,n,a.submission,y,w.active,{replace:a.replace,flushSync:g});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,r]=t.pendingActionResult;if(ez(r)&&er(r.error)&&404===r.error.status){o=null,ea(n,{matches:t.matches,loaderData:{},errors:{[e]:r.error}});return}}y=t.matches||y,c=t.pendingActionResult,m=eQ(n,a.submission),g=!1,w.active=!1,b=ek(e.history,b.url,b.signal)}let{shortCircuited:E,matches:S,loaderData:x,errors:C}=await eb(b,n,y,w.active,m,a&&a.submission,a&&a.fetcherSubmission,a&&a.replace,a&&!0===a.initialHydration,g,c);!E&&(o=null,ea(n,v({matches:S||y},ej(c),{loaderData:x,errors:C})))}async function ey(e,t,r,n,a,o){var i;let l;if(void 0===o&&(o={}),eW(),en({navigation:{state:"submitting",location:t,formMethod:(i=r).formMethod,formAction:i.formAction,formEncType:i.formEncType,formData:i.formData,json:i.json,text:i.text}},{flushSync:!0===o.flushSync}),a){let r=await ti(n,t.pathname,e.signal);if("aborted"===r.type)return{shortCircuited:!0};if("error"===r.type){let e=eM(r.partialMatches).route.id;return{matches:r.partialMatches,pendingActionResult:[e,{type:d.error,error:r.error}]}}if(r.matches)n=r.matches;else{let{notFoundMatches:e,error:r,route:n}=tt(t.pathname);return{matches:e,pendingActionResult:[n.id,{type:d.error,error:r}]}}}let s=eX(n,t);if(s.route.action||s.route.lazy){if(l=(await eA("action",M,e,[s],n,null))[s.route.id],e.signal.aborted)return{shortCircuited:!0}}else l={type:d.error,error:eF(405,{method:e.method,pathname:t.pathname,routeId:s.route.id})};if(eH(l)){let t;return t=o&&null!=o.replace?o.replace:eL(l.response.headers.get("Location"),new URL(e.url),p)===M.location.pathname+M.location.search,await e_(e,l,!0,{submission:r,replace:t}),{shortCircuited:!0}}if(eI(l))throw eF(400,{type:"defer-action"});if(ez(l)){let e=eM(n,s.route.id);return!0!==(o&&o.replace)&&(O=c.Push),{matches:n,pendingActionResult:[e.route.id,l]}}return{matches:n,pendingActionResult:[s.route.id,l]}}async function eb(t,n,a,i,l,s,u,c,d,h,m){let y=l||eQ(n,s),w=s||u||eG(y),b=!H&&(!g.v7_partialHydration||!d);if(i){if(b){let e=eE(m);en(v({navigation:y},void 0!==e?{actionData:e}:{}),{flushSync:h})}let e=await ti(a,n.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=eM(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(e.matches)a=e.matches;else{let{error:e,notFoundMatches:t,route:r}=tt(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let E=r||f,[S,R]=eg(e.history,M,a,w,n,g.v7_partialHydration&&!0===d,g.v7_skipActionErrorRevalidation,W,$,V,Z,G,X,E,p,m);if(tr(e=>!(a&&a.some(t=>t.route.id===e))||S&&S.some(t=>t.route.id===e)),Y=++K,0===S.length&&0===R.length){let e=e3();return ea(n,v({matches:a,loaderData:{},errors:m&&ez(m[1])?{[m[0]]:m[1].error}:null},ej(m),e?{fetchers:new Map(M.fetchers)}:{}),{flushSync:h}),{shortCircuited:!0}}if(b){let e={};if(!i){e.navigation=y;let t=eE(m);void 0!==t&&(e.actionData=t)}R.length>0&&(e.fetchers=(R.forEach(e=>{let t=M.fetchers.get(e.key),r=eZ(void 0,t?t.data:void 0);M.fetchers.set(e.key,r)}),new Map(M.fetchers))),en(e,{flushSync:h})}R.forEach(e=>{e5(e.key),e.controller&&J.set(e.key,e.controller)});let x=()=>R.forEach(e=>e5(e.key));o&&o.signal.addEventListener("abort",x);let{loaderResults:C,fetcherResults:P}=await eB(M,a,S,R,t);if(t.signal.aborted)return{shortCircuited:!0};o&&o.signal.removeEventListener("abort",x),R.forEach(e=>J.delete(e.key));let D=eN(C);if(D)return await e_(t,D.result,!0,{replace:c}),{shortCircuited:!0};if(D=eN(P))return X.add(D.key),await e_(t,D.result,!0,{replace:c}),{shortCircuited:!0};let{loaderData:L,errors:k}=eT(M,a,C,m,R,P,ee);ee.forEach((e,t)=>{e.subscribe(r=>{(r||e.done)&&ee.delete(t)})}),g.v7_partialHydration&&d&&M.errors&&(k=v({},M.errors,k));let _=e3(),A=e6(Y),T=_||A||R.length>0;return v({matches:a,loaderData:L,errors:k},T?{fetchers:new Map(M.fetchers)}:{})}function eE(e){return e&&!ez(e[1])?{[e[0]]:e[1].data}:M.actionData?0===Object.keys(M.actionData).length?null:M.actionData:void 0}async function eR(t,n,a,i,l,s,u,c,d){var h,m;function v(e){if(!e.route.action&&!e.route.lazy){let e=eF(405,{method:d.formMethod,pathname:a,routeId:n});return e1(t,n,e,{flushSync:u}),!0}return!1}if(eW(),G.delete(t),!s&&v(i))return;let y=M.fetchers.get(t);eq(t,(h=d,m=y,{state:"submitting",formMethod:h.formMethod,formAction:h.formAction,formEncType:h.formEncType,formData:h.formData,json:h.json,text:h.text,data:m?m.data:void 0}),{flushSync:u});let w=new AbortController,b=ek(e.history,a,w.signal,d);if(s){let e=await ti(l,new URL(b.url).pathname,b.signal,t);if("aborted"===e.type)return;if("error"===e.type){e1(t,n,e.error,{flushSync:u});return}if(e.matches){if(v(i=eX(l=e.matches,a)))return}else{e1(t,n,eF(404,{pathname:a}),{flushSync:u});return}}J.set(t,w);let S=K,R=(await eA("action",M,b,[i],l,t))[i.route.id];if(b.signal.aborted){J.get(t)===w&&J.delete(t);return}if(g.v7_fetcherPersist&&Z.has(t)){if(eH(R)||ez(R)){eq(t,e0(void 0));return}}else{if(eH(R))return(J.delete(t),Y>S)?(eq(t,e0(void 0)),void 0):(X.add(t),eq(t,eZ(d)),e_(b,R,!1,{fetcherSubmission:d,preventScrollReset:c}));if(ez(R)){e1(t,n,R.error);return}}if(eI(R))throw eF(400,{type:"defer-action"});let x=M.navigation.location||M.location,C=ek(e.history,x,w.signal),P=r||f,D="idle"!==M.navigation.state?_(P,M.navigation.location,p):M.matches;E(D,"Didn't find any matches after fetcher action");let L=++K;q.set(t,L);let k=eZ(d,R.data);M.fetchers.set(t,k);let[A,T]=eg(e.history,M,D,d,x,!1,g.v7_skipActionErrorRevalidation,W,$,V,Z,G,X,P,p,[i.route.id,R]);T.filter(e=>e.key!==t).forEach(e=>{let t=e.key,r=M.fetchers.get(t),n=eZ(void 0,r?r.data:void 0);M.fetchers.set(t,n),e5(t),e.controller&&J.set(t,e.controller)}),en({fetchers:new Map(M.fetchers)});let U=()=>T.forEach(e=>e5(e.key));w.signal.addEventListener("abort",U);let{loaderResults:j,fetcherResults:F}=await eB(M,D,A,T,C);if(w.signal.aborted)return;w.signal.removeEventListener("abort",U),q.delete(t),J.delete(t),T.forEach(e=>J.delete(e.key));let N=eN(j);if(N)return e_(C,N.result,!1,{preventScrollReset:c});if(N=eN(F))return X.add(N.key),e_(C,N.result,!1,{preventScrollReset:c});let{loaderData:B,errors:I}=eT(M,D,j,void 0,T,F,ee);if(M.fetchers.has(t)){let e=e0(R.data);M.fetchers.set(t,e)}e6(L),"loading"===M.navigation.state&&L>Y?(E(O,"Expected pending action"),o&&o.abort(),ea(M.navigation.location,{matches:D,loaderData:B,errors:I,fetchers:new Map(M.fetchers)})):(en({errors:I,loaderData:eU(M.loaderData,B,D,I),fetchers:new Map(M.fetchers)}),W=!1)}async function eP(t,r,n,a,o,i,l,s,u){let c=M.fetchers.get(t);eq(t,eZ(u,c?c.data:void 0),{flushSync:l});let d=new AbortController,h=ek(e.history,n,d.signal);if(i){let e=await ti(o,new URL(h.url).pathname,h.signal,t);if("aborted"===e.type)return;if("error"===e.type){e1(t,r,e.error,{flushSync:l});return}if(e.matches)a=eX(o=e.matches,n);else{e1(t,r,eF(404,{pathname:n}),{flushSync:l});return}}J.set(t,d);let f=K,p=(await eA("loader",M,h,[a],o,t))[a.route.id];if(eI(p)&&(p=await eY(p,h.signal,!0)||p),J.get(t)===d&&J.delete(t),!h.signal.aborted){if(Z.has(t)){eq(t,e0(void 0));return}if(eH(p)){if(Y>f){eq(t,e0(void 0));return}X.add(t),await e_(h,p,!1,{preventScrollReset:s});return}if(ez(p)){e1(t,r,p.error);return}E(!eI(p),"Unhandled fetcher deferred data"),eq(t,e0(p.data))}}async function e_(t,r,n,a){let{submission:i,fetcherSubmission:u,preventScrollReset:d,replace:h}=void 0===a?{}:a;r.response.headers.has("X-Remix-Revalidate")&&(W=!0);let f=r.response.headers.get("Location");E(f,"Expected a Location header on the redirect Response"),f=eL(f,new URL(t.url),p);let m=x(M.location,f,{_isRedirect:!0});if(s){let t=!1;if(r.response.headers.has("X-Remix-Reload-Document"))t=!0;else if(ed.test(f)){let r=e.history.createURL(f);t=r.origin!==l.location.origin||null==N(r.pathname,p)}if(t){h?l.location.replace(f):l.location.assign(f);return}}o=null;let y=!0===h||r.response.headers.has("X-Remix-Replace")?c.Replace:c.Push,{formMethod:g,formAction:w,formEncType:b}=M.navigation;!i&&!u&&g&&w&&b&&(i=eG(M.navigation));let S=i||u;if(el.has(r.response.status)&&S&&eV(S.formMethod))await ep(y,m,{submission:v({},S,{formAction:f}),preventScrollReset:d||F,enableViewTransition:n?B:void 0});else{let e=eQ(m,i);await ep(y,m,{overrideNavigation:e,fetcherSubmission:u,preventScrollReset:d||F,enableViewTransition:n?B:void 0})}}async function eA(e,r,n,a,o,i){let l;let s={};try{l=await eC(m,e,r,n,a,o,i,h,t)}catch(e){return a.forEach(t=>{s[t.route.id]={type:d.error,error:e}}),s}for(let[e,t]of Object.entries(l)){var u;if(e$((u=t).result)&&ei.has(u.result.status)){let r=t.result;s[e]={type:d.redirect,response:function(e,t,r,n,a,o){let i=e.headers.get("Location");if(E(i,"Redirects returned/thrown from loaders/actions must have a Location header"),!ed.test(i)){let l=n.slice(0,n.findIndex(e=>e.route.id===r)+1);i=em(new URL(t.url),l,a,!0,i,o),e.headers.set("Location",i)}return e}(r,n,e,o,p,g.v7_relativeSplatPath)}}else s[e]=await eD(t)}return s}async function eB(t,r,n,a,o){let i=t.matches,l=eA("loader",t,o,n,r,null),s=Promise.all(a.map(async r=>{if(!r.matches||!r.match||!r.controller)return Promise.resolve({[r.key]:{type:d.error,error:eF(404,{pathname:r.path})}});{let n=(await eA("loader",t,ek(e.history,r.path,r.controller.signal),[r.match],r.matches,r.key))[r.match.route.id];return{[r.key]:n}}})),u=await l,c=(await s).reduce((e,t)=>Object.assign(e,t),{});return await Promise.all([eJ(r,u,o.signal,i,t.loaderData),eK(r,c,a)]),{loaderResults:u,fetcherResults:c}}function eW(){W=!0,$.push(...tr()),G.forEach((e,t)=>{J.has(t)&&V.add(t),e5(t)})}function eq(e,t,r){void 0===r&&(r={}),M.fetchers.set(e,t),en({fetchers:new Map(M.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function e1(e,t,r,n){void 0===n&&(n={});let a=eM(M.matches,t);e4(e),en({errors:{[a.route.id]:r},fetchers:new Map(M.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function e7(e){return Q.set(e,(Q.get(e)||0)+1),Z.has(e)&&Z.delete(e),M.fetchers.get(e)||eu}function e4(e){let t=M.fetchers.get(e);J.has(e)&&!(t&&"loading"===t.state&&q.has(e))&&e5(e),G.delete(e),q.delete(e),X.delete(e),g.v7_fetcherPersist&&Z.delete(e),V.delete(e),M.fetchers.delete(e)}function e5(e){let t=J.get(e);t&&(t.abort(),J.delete(e))}function e2(e){for(let t of e){let e=e0(e7(t).data);M.fetchers.set(t,e)}}function e3(){let e=[],t=!1;for(let r of X){let n=M.fetchers.get(r);E(n,"Expected fetcher: "+r),"loading"===n.state&&(X.delete(r),e.push(r),t=!0)}return e2(e),t}function e6(e){let t=[];for(let[r,n]of q)if(n<e){let e=M.fetchers.get(r);E(e,"Expected fetcher: "+r),"loading"===e.state&&(e5(r),q.delete(r),t.push(r))}return e2(t),t.length>0}function e8(e){M.blockers.delete(e),et.delete(e)}function e9(e,t){let r=M.blockers.get(e)||ec;E("unblocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"proceeding"===t.state||"blocked"===r.state&&"unblocked"===t.state||"proceeding"===r.state&&"unblocked"===t.state,"Invalid blocker state transition: "+r.state+" -> "+t.state);let n=new Map(M.blockers);n.set(e,t),en({blockers:n})}function te(e){let{currentLocation:t,nextLocation:r,historyAction:n}=e;if(0===et.size)return;et.size>1&&S(!1,"A router only supports one blocker at a time");let a=Array.from(et.entries()),[o,i]=a[a.length-1],l=M.blockers.get(o);if((!l||"proceeding"!==l.state)&&i({currentLocation:t,nextLocation:r,historyAction:n}))return o}function tt(e){let t=eF(404,{pathname:e}),{matches:n,route:a}=eO(r||f);return tr(),{notFoundMatches:n,route:a,error:t}}function tr(e){let t=[];return ee.forEach((r,n)=>{(!e||e(n))&&(r.cancel(),t.push(n),ee.delete(n))}),t}function tn(e,t){return C&&C(e,t.map(e=>T(e,M.loaderData)))||e.key}function ta(e,t){if(R){let r=R[tn(e,t)];if("number"==typeof r)return r}return null}function to(e,t,r){if(y){if(!e)return{active:!0,matches:A(t,r,p,!0)||[]};if(Object.keys(e[0].params).length>0)return{active:!0,matches:A(t,r,p,!0)}}return{active:!1,matches:null}}async function ti(e,n,a,o){if(!y)return{type:"success",matches:e};let i=e;for(;;){let e=null==r,l=r||f,s=h;try{await y({signal:a,path:n,matches:i,fetcherKey:o,patch:(e,r)=>{a.aborted||eS(e,r,l,s,t)}})}catch(e){return{type:"error",error:e,partialMatches:i}}finally{e&&!a.aborted&&(f=[...f])}if(a.aborted)return{type:"aborted"};let u=_(l,n,p);if(u)return{type:"success",matches:u};let c=A(l,n,p,!0);if(!c||i.length===c.length&&i.every((e,t)=>e.route.id===c[t].route.id))return{type:"success",matches:null};i=c}}return a={get basename(){return p},get future(){return g},get state(){return M},get routes(){return f},get window(){return l},initialize:function(){if(w=e.history.listen(t=>{let{action:r,location:n,delta:a}=t;if(i){i(),i=void 0;return}S(0===et.size||null!=a,"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 o=te({currentLocation:M.location,nextLocation:n,historyAction:r});if(o&&null!=a){let t=new Promise(e=>{i=e});e.history.go(-1*a),e9(o,{state:"blocked",location:n,proceed(){e9(o,{state:"proceeding",proceed:void 0,reset:void 0,location:n}),t.then(()=>e.history.go(a))},reset(){let e=new Map(M.blockers);e.set(o,ec),en({blockers:e})}});return}return ep(r,n)}),s){!function(e,t){try{let r=e.sessionStorage.getItem(ef);if(r){let e=JSON.parse(r);for(let[r,n]of Object.entries(e||{}))n&&Array.isArray(n)&&t.set(r,new Set(n||[]))}}catch(e){}}(l,I);let e=()=>(function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(ef,JSON.stringify(r))}catch(e){S(!1,"Failed to save applied view transitions in sessionStorage ("+e+").")}}})(l,I);l.addEventListener("pagehide",e),z=()=>l.removeEventListener("pagehide",e)}return M.initialized||ep(c.Pop,M.location,{initialHydration:!0}),a},subscribe:function(e){return b.add(e),()=>b.delete(e)},enableScrollRestoration:function(e,t,r){if(R=e,P=t,C=r||null,!D&&M.navigation===es){D=!0;let e=ta(M.location,M.matches);null!=e&&en({restoreScrollPosition:e})}return()=>{R=null,P=null,C=null}},navigate:eo,fetch:function(e,t,n,a){if(u)throw 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.");e5(e);let o=!0===(a&&a.flushSync),i=r||f,l=em(M.location,M.matches,p,g.v7_prependBasename,n,g.v7_relativeSplatPath,t,null==a?void 0:a.relative),s=_(i,l,p),c=to(s,i,l);if(c.active&&c.matches&&(s=c.matches),!s){e1(e,t,eF(404,{pathname:l}),{flushSync:o});return}let{path:d,submission:h,error:m}=ev(g.v7_normalizeFormMethod,!0,l,a);if(m){e1(e,t,m,{flushSync:o});return}let v=eX(s,d),y=!0===(a&&a.preventScrollReset);if(h&&eV(h.formMethod)){eR(e,t,d,v,s,c.active,o,y,h);return}G.set(e,{routeId:t,path:d}),eP(e,t,d,v,s,c.active,o,y,h)},revalidate:function(){if(eW(),en({revalidation:"loading"}),"submitting"!==M.navigation.state){if("idle"===M.navigation.state){ep(M.historyAction,M.location,{startUninterruptedRevalidation:!0});return}ep(O||M.historyAction,M.navigation.location,{overrideNavigation:M.navigation,enableViewTransition:!0===B})}},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:e7,deleteFetcher:function(e){let t=(Q.get(e)||0)-1;t<=0?(Q.delete(e),Z.add(e),g.v7_fetcherPersist||e4(e)):Q.set(e,t),en({fetchers:new Map(M.fetchers)})},dispose:function(){w&&w(),z&&z(),b.clear(),o&&o.abort(),M.fetchers.forEach((e,t)=>e4(t)),M.blockers.forEach((e,t)=>e8(t))},getBlocker:function(e,t){let r=M.blockers.get(e)||ec;return et.get(e)!==t&&et.set(e,t),r},deleteBlocker:e8,patchRoutes:function(e,n){let a=null==r;eS(e,n,r||f,h,t),a&&(f=[...f],en({}))},_internalFetchControllers:J,_internalActiveDeferreds:ee,_internalSetRoutes:function(e){r=k(e,t,void 0,h={})}}}function em(e,t,r,n,a,o,i,l){let s,u;if(i){for(let e of(s=[],t))if(s.push(e),e.route.id===i){u=e;break}}else s=t,u=t[t.length-1];let c=W(a||".",H(s,o),N(e.pathname,r)||e.pathname,"path"===l);if(null==a&&(c.search=e.search,c.hash=e.hash),(null==a||""===a||"."===a)&&u){let e=eq(c.search);if(u.route.index&&!e)c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index";else if(!u.route.index&&e){let e=new URLSearchParams(c.search),t=e.getAll("index");e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();c.search=r?"?"+r:""}}return n&&"/"!==r&&(c.pathname="/"===c.pathname?r:$([r,c.pathname])),C(c)}function ev(e,t,r,n){var a;let o,i;if(!n||!(null!=n&&("formData"in n&&null!=n.formData||"body"in n&&void 0!==n.body)))return{path:r};if(n.formMethod&&(a=n.formMethod,!eo.has(a.toLowerCase())))return{path:r,error:eF(405,{method:n.formMethod})};let l=()=>({path:r,error:eF(400,{type:"invalid-body"})}),s=n.formMethod||"get",u=e?s.toUpperCase():s.toLowerCase(),c=eB(r);if(void 0!==n.body){if("text/plain"===n.formEncType){if(!eV(u))return l();let e="string"==typeof n.body?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((e,t)=>{let[r,n]=t;return""+e+r+"="+n+"\n"},""):String(n.body);return{path:r,submission:{formMethod:u,formAction:c,formEncType:n.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===n.formEncType){if(!eV(u))return l();try{let e="string"==typeof n.body?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:u,formAction:c,formEncType:n.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return l()}}}if(E("function"==typeof FormData,"FormData is not available in this environment"),n.formData)o=e_(n.formData),i=n.formData;else if(n.body instanceof FormData)o=e_(n.body),i=n.body;else if(n.body instanceof URLSearchParams)i=eA(o=n.body);else if(null==n.body)o=new URLSearchParams,i=new FormData;else try{o=new URLSearchParams(n.body),i=eA(o)}catch(e){return l()}let d={formMethod:u,formAction:c,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:i,json:void 0,text:void 0};if(eV(d.formMethod))return{path:r,submission:d};let h=P(r);return t&&h.search&&eq(h.search)&&o.append("index",""),h.search="?"+o,{path:C(h),submission:d}}function ey(e,t,r){void 0===r&&(r=!1);let n=e.findIndex(e=>e.route.id===t);return n>=0?e.slice(0,r?n+1:n):e}function eg(e,t,r,n,a,o,i,l,s,u,c,d,h,f,p,m){let y=m?ez(m[1])?m[1].error:m[1].data:void 0,g=e.createURL(t.location),w=e.createURL(a),b=r;o&&t.errors?b=ey(r,Object.keys(t.errors)[0],!0):m&&ez(m[1])&&(b=ey(r,m[0]));let E=m?m[1].statusCode:void 0,S=i&&E&&E>=400,R=b.filter((e,r)=>{var a,i,u;let c,d,{route:h}=e;if(h.lazy)return!0;if(null==h.loader)return!1;if(o)return ew(h,t.loaderData,t.errors);if(a=t.loaderData,i=t.matches[r],u=e,c=!i||u.route.id!==i.route.id,d=void 0===a[u.route.id],c||d||s.some(t=>t===e.route.id))return!0;let f=t.matches[r];return eE(e,v({currentUrl:g,currentParams:f.params,nextUrl:w,nextParams:e.params},n,{actionResult:y,actionStatus:E,defaultShouldRevalidate:!S&&(l||g.pathname+g.search===w.pathname+w.search||g.search!==w.search||eb(f,e))}))}),x=[];return d.forEach((e,a)=>{if(o||!r.some(t=>t.route.id===e.routeId)||c.has(a))return;let i=_(f,e.path,p);if(!i){x.push({key:a,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});return}let s=t.fetchers.get(a),d=eX(i,e.path),m=!1;h.has(a)?m=!1:u.has(a)?(u.delete(a),m=!0):m=s&&"idle"!==s.state&&void 0===s.data?l:eE(d,v({currentUrl:g,currentParams:t.matches[t.matches.length-1].params,nextUrl:w,nextParams:r[r.length-1].params},n,{actionResult:y,actionStatus:E,defaultShouldRevalidate:!S&&l})),m&&x.push({key:a,routeId:e.routeId,path:e.path,matches:i,match:d,controller:new AbortController})}),[R,x]}function ew(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=null!=t&&void 0!==t[e.id],a=null!=r&&void 0!==r[e.id];return(!!n||!a)&&("function"==typeof e.loader&&!0===e.loader.hydrate||!n&&!a)}function eb(e,t){let r=e.route.path;return e.pathname!==t.pathname||null!=r&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function eE(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if("boolean"==typeof r)return r}return t.defaultShouldRevalidate}function eS(e,t,r,n,a){var o;let i;if(e){let t=n[e];E(t,"No route found to patch children into: routeId = "+e),t.children||(t.children=[]),i=t.children}else i=r;let l=k(t.filter(e=>!i.some(t=>(function e(t,r){return"id"in t&&"id"in r&&t.id===r.id||t.index===r.index&&t.path===r.path&&t.caseSensitive===r.caseSensitive&&((!t.children||0===t.children.length)&&(!r.children||0===r.children.length)||t.children.every((t,n)=>{var a;return null==(a=r.children)?void 0:a.some(r=>e(t,r))}))})(e,t))),a,[e||"_","patch",String((null==(o=i)?void 0:o.length)||"0")],n);i.push(...l)}async function eR(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];E(a,"No route found in manifest");let o={};for(let e in n){let t=void 0!==a[e]&&"hasErrorBoundary"!==e;S(!t,'Route "'+a.id+'" has a static property "'+e+'" defined but its lazy function is also returning a value for this property. The lazy route property "'+e+'" will be ignored.'),t||L.has(e)||(o[e]=n[e])}Object.assign(a,o),Object.assign(a,v({},t(a),{lazy:void 0}))}async function ex(e){let{matches:t}=e,r=t.filter(e=>e.shouldLoad);return(await Promise.all(r.map(e=>e.resolve()))).reduce((e,t,n)=>Object.assign(e,{[r[n].route.id]:t}),{})}async function eC(e,t,r,n,a,o,i,l,s,u){let c=o.map(e=>e.route.lazy?eR(e.route,s,l):void 0),h=o.map((e,r)=>{let o=c[r],i=a.some(t=>t.route.id===e.route.id),l=async r=>(r&&"GET"===n.method&&(e.route.lazy||e.route.loader)&&(i=!0),i?eP(t,n,e,o,r,u):Promise.resolve({type:d.data,result:void 0}));return v({},e,{shouldLoad:i,resolve:l})}),f=await e({matches:h,request:n,params:o[0].params,fetcherKey:i,context:u});try{await Promise.all(c)}catch(e){}return f}async function eP(e,t,r,n,a,o){let i,l;let s=n=>{let i;let s=new Promise((e,t)=>i=t);l=()=>i(),t.signal.addEventListener("abort",l);let u=a=>"function"!=typeof n?Promise.reject(Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: ')+r.route.id+"]")):n({request:t,params:r.params,context:o},...void 0!==a?[a]:[]);return Promise.race([(async()=>{try{let e=await (a?a(e=>u(e)):u());return{type:"data",result:e}}catch(e){return{type:"error",result:e}}})(),s])};try{let a=r.route[e];if(n){if(a){let e;let[t]=await Promise.all([s(a).catch(t=>{e=t}),n]);if(void 0!==e)throw e;i=t}else if(await n,a=r.route[e])i=await s(a);else{if("action"!==e)return{type:d.data,result:void 0};let n=new URL(t.url),a=n.pathname+n.search;throw eF(405,{method:t.method,pathname:a,routeId:r.route.id})}}else if(a)i=await s(a);else{let e=new URL(t.url),r=e.pathname+e.search;throw eF(404,{pathname:r})}E(void 0!==i.result,"You defined "+("action"===e?"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(e){return{type:d.error,result:e}}finally{l&&t.signal.removeEventListener("abort",l)}return i}async function eD(e){var t,r,n,a,o,i,l,s,u;let{result:c,type:h}=e;if(e$(c)){let e;try{let t=c.headers.get("Content-Type");e=t&&/\bapplication\/json\b/.test(t)?null==c.body?null:await c.json():await c.text()}catch(e){return{type:d.error,error:e}}return h===d.error?{type:d.error,error:new et(c.status,c.statusText,e),statusCode:c.status,headers:c.headers}:{type:d.data,data:e,statusCode:c.status,headers:c.headers}}if(h===d.error)return eW(c)?c.data instanceof Error?{type:d.error,error:c.data,statusCode:null==(n=c.init)?void 0:n.status,headers:null!=(a=c.init)&&a.headers?new Headers(c.init.headers):void 0}:{type:d.error,error:new et((null==(t=c.init)?void 0:t.status)||500,void 0,c.data),statusCode:er(c)?c.status:void 0,headers:null!=(r=c.init)&&r.headers?new Headers(c.init.headers):void 0}:{type:d.error,error:c,statusCode:er(c)?c.status:void 0};return(u=c)&&"object"==typeof u&&"object"==typeof u.data&&"function"==typeof u.subscribe&&"function"==typeof u.cancel&&"function"==typeof u.resolveData?{type:d.deferred,deferredData:c,statusCode:null==(o=c.init)?void 0:o.status,headers:(null==(i=c.init)?void 0:i.headers)&&new Headers(c.init.headers)}:eW(c)?{type:d.data,data:c.data,statusCode:null==(l=c.init)?void 0:l.status,headers:null!=(s=c.init)&&s.headers?new Headers(c.init.headers):void 0}:{type:d.data,data:c}}function eL(e,t,r){if(ed.test(e)){let n=new URL(e.startsWith("//")?t.protocol+e:e),a=null!=N(n.pathname,r);if(n.origin===t.origin&&a)return n.pathname+n.search+n.hash}return e}function ek(e,t,r,n){let a=e.createURL(eB(t)).toString(),o={signal:r};if(n&&eV(n.formMethod)){let{formMethod:e,formEncType:t}=n;o.method=e.toUpperCase(),"application/json"===t?(o.headers=new Headers({"Content-Type":t}),o.body=JSON.stringify(n.json)):"text/plain"===t?o.body=n.text:"application/x-www-form-urlencoded"===t&&n.formData?o.body=e_(n.formData):o.body=n.formData}return new Request(a,o)}function e_(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,"string"==typeof n?n:n.name);return t}function eA(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function eT(e,t,r,n,a,o,i){let l,s,u,c,d,h;let{loaderData:f,errors:p}=(s={},u=null,c=!1,d={},h=n&&ez(n[1])?n[1].error:void 0,t.forEach(e=>{if(!(e.route.id in r))return;let n=e.route.id,a=r[n];if(E(!eH(a),"Cannot handle redirect results in processLoaderData"),ez(a)){let e=a.error;void 0!==h&&(e=h,h=void 0),u=u||{};{let r=eM(t,n);null==u[r.route.id]&&(u[r.route.id]=e)}s[n]=void 0,c||(c=!0,l=er(a.error)?a.error.status:500),a.headers&&(d[n]=a.headers)}else eI(a)?(i.set(n,a.deferredData),s[n]=a.deferredData.data,null==a.statusCode||200===a.statusCode||c||(l=a.statusCode)):(s[n]=a.data,a.statusCode&&200!==a.statusCode&&!c&&(l=a.statusCode)),a.headers&&(d[n]=a.headers)}),void 0!==h&&n&&(u={[n[0]]:h},s[n[0]]=void 0),{loaderData:s,errors:u,statusCode:l||200,loaderHeaders:d});return a.forEach(t=>{let{key:r,match:n,controller:a}=t,i=o[r];if(E(i,"Did not find corresponding fetcher result"),!a||!a.signal.aborted){if(ez(i)){let t=eM(e.matches,null==n?void 0:n.route.id);p&&p[t.route.id]||(p=v({},p,{[t.route.id]:i.error})),e.fetchers.delete(r)}else if(eH(i))E(!1,"Unhandled fetcher revalidation redirect");else if(eI(i))E(!1,"Unhandled fetcher deferred data");else{let t=e0(i.data);e.fetchers.set(r,t)}}}),{loaderData:f,errors:p}}function eU(e,t,r,n){let a=v({},t);for(let o of r){let r=o.route.id;if(t.hasOwnProperty(r)?void 0!==t[r]&&(a[r]=t[r]):void 0!==e[r]&&o.route.loader&&(a[r]=e[r]),n&&n.hasOwnProperty(r))break}return a}function ej(e){return e?ez(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function eM(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>!0===e.route.hasErrorBoundary)||e[0]}function eO(e){let t=1===e.length?e[0]:e.find(e=>e.index||!e.path||"/"===e.path)||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function eF(e,t){let{pathname:r,routeId:n,method:a,type:o,message:i}=void 0===t?{}:t,l="Unknown Server Error",s="Unknown @remix-run/router error";return 400===e?(l="Bad Request",a&&r&&n?s="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.':"defer-action"===o?s="defer() is not supported in actions":"invalid-body"===o&&(s="Unable to encode submission body")):403===e?(l="Forbidden",s='Route "'+n+'" does not match URL "'+r+'"'):404===e?(l="Not Found",s='No route matches URL "'+r+'"'):405===e&&(l="Method Not Allowed",a&&r&&n?s="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&&(s='Invalid request method "'+a.toUpperCase()+'"')),new et(e||500,l,Error(s),!0)}function eN(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[r,n]=t[e];if(eH(n))return{key:r,result:n}}}function eB(e){let t="string"==typeof e?P(e):e;return C(v({},t,{hash:""}))}function eI(e){return e.type===d.deferred}function ez(e){return e.type===d.error}function eH(e){return(e&&e.type)===d.redirect}function eW(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function e$(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function eV(e){return ea.has(e.toLowerCase())}async function eJ(e,t,r,n,a){let o=Object.entries(t);for(let i=0;i<o.length;i++){let[l,s]=o[i],u=e.find(e=>(null==e?void 0:e.route.id)===l);if(!u)continue;let c=n.find(e=>e.route.id===u.route.id),d=null!=c&&!eb(c,u)&&(a&&a[u.route.id])!==void 0;eI(s)&&d&&await eY(s,r,!1).then(e=>{e&&(t[l]=e)})}}async function eK(e,t,r){for(let n=0;n<r.length;n++){let{key:a,routeId:o,controller:i}=r[n],l=t[a];e.find(e=>(null==e?void 0:e.route.id)===o)&&eI(l)&&(E(i,"Expected an AbortController for revalidating fetcher deferred result"),await eY(l,i.signal,!0).then(e=>{e&&(t[a]=e)}))}}async function eY(e,t,r){if(void 0===r&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:d.data,data:e.deferredData.unwrappedData}}catch(e){return{type:d.error,error:e}}return{type:d.data,data:e.deferredData.data}}}function eq(e){return new URLSearchParams(e).getAll("index").some(e=>""===e)}function eX(e,t){let r="string"==typeof t?P(t).search:t.search;if(e[e.length-1].route.index&&eq(r||""))return e[e.length-1];let n=z(e);return n[n.length-1]}function eG(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(t&&r&&n){if(null!=a)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(null!=o)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};if(void 0!==i)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function eQ(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 eZ(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 e0(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 e1(){return(e1=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}).apply(this,arguments)}Symbol("deferred");let e7=p.createContext(null),e4=p.createContext(null),e5=p.createContext(null),e2=p.createContext(null),e3=p.createContext(null),e6=p.createContext({outlet:null,matches:[],isDataRoute:!1}),e8=p.createContext(null);function e9(e,t){let{relative:r}=void 0===t?{}:t;te()||E(!1);let{basename:n,navigator:a}=p.useContext(e2),{hash:o,pathname:i,search:l}=tc(e,{relative:r}),s=i;return"/"!==n&&(s="/"===i?n:$([n,i])),a.createHref({pathname:s,search:l,hash:o})}function te(){return null!=p.useContext(e3)}function tt(){return te()||E(!1),p.useContext(e3).location}function tr(){return p.useContext(e3).navigationType}function tn(e){te()||E(!1);let{pathname:t}=tt();return p.useMemo(()=>O(e,F(t)),[t,e])}function ta(e){p.useContext(e2).static||p.useLayoutEffect(e)}function to(){let{isDataRoute:e}=p.useContext(e6);return e?function(){let{router:e}=tw(ty.UseNavigateStable),t=tE(tg.UseNavigateStable),r=p.useRef(!1);return ta(()=>{r.current=!0}),p.useCallback(function(n,a){void 0===a&&(a={}),r.current&&("number"==typeof n?e.navigate(n):e.navigate(n,e1({fromRouteId:t},a)))},[e,t])}():function(){te()||E(!1);let e=p.useContext(e7),{basename:t,future:r,navigator:n}=p.useContext(e2),{matches:a}=p.useContext(e6),{pathname:o}=tt(),i=JSON.stringify(H(a,r.v7_relativeSplatPath)),l=p.useRef(!1);return ta(()=>{l.current=!0}),p.useCallback(function(r,a){if(void 0===a&&(a={}),!l.current)return;if("number"==typeof r){n.go(r);return}let s=W(r,JSON.parse(i),o,"path"===a.relative);null==e&&"/"!==t&&(s.pathname="/"===s.pathname?t:$([t,s.pathname])),(a.replace?n.replace:n.push)(s,a.state,a)},[t,n,i,o,e])}()}let ti=p.createContext(null);function tl(){return p.useContext(ti)}function ts(e){let t=p.useContext(e6).outlet;return t?p.createElement(ti.Provider,{value:e},t):t}function tu(){let{matches:e}=p.useContext(e6),t=e[e.length-1];return t?t.params:{}}function tc(e,t){let{relative:r}=void 0===t?{}:t,{future:n}=p.useContext(e2),{matches:a}=p.useContext(e6),{pathname:o}=tt(),i=JSON.stringify(H(a,n.v7_relativeSplatPath));return p.useMemo(()=>W(e,JSON.parse(i),o,"path"===r),[e,i,o,r])}function td(e,t){return th(e,t)}function th(e,t,r,n){let a;te()||E(!1);let{navigator:o,static:i}=p.useContext(e2),{matches:l}=p.useContext(e6),s=l[l.length-1],u=s?s.params:{};s&&s.pathname;let d=s?s.pathnameBase:"/";s&&s.route;let h=tt();if(t){var f;let e="string"==typeof t?P(t):t;"/"===d||(null==(f=e.pathname)?void 0:f.startsWith(d))||E(!1),a=e}else a=h;let m=a.pathname||"/",v=m;if("/"!==d){let e=d.replace(/^\//,"").split("/");v="/"+m.replace(/^\//,"").split("/").slice(e.length).join("/")}let y=!i&&r&&r.matches&&r.matches.length>0?r.matches:_(e,{pathname:v}),g=tv(y&&y.map(e=>Object.assign({},e,{params:Object.assign({},u,e.params),pathname:$([d,o.encodeLocation?o.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?d:$([d,o.encodeLocation?o.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])})),l,r,n);return t&&g?p.createElement(e3.Provider,{value:{location:e1({pathname:"/",search:"",hash:"",state:null,key:"default"},a),navigationType:c.Pop}},g):g}let tf=p.createElement(function(){let e=tk(),t=er(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null;return p.createElement(p.Fragment,null,p.createElement("h2",null,"Unexpected Application Error!"),p.createElement("h3",{style:{fontStyle:"italic"}},t),r?p.createElement("pre",{style:{padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"}},r):null,null)},null);class tp extends p.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?p.createElement(e6.Provider,{value:this.props.routeContext},p.createElement(e8.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function tm(e){let{routeContext:t,match:r,children:n}=e,a=p.useContext(e7);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),p.createElement(e6.Provider,{value:t},n)}function tv(e,t,r,n){var a,o;if(void 0===t&&(t=[]),void 0===r&&(r=null),void 0===n&&(n=null),null==e){if(!r)return null;if(r.errors)e=r.matches;else{if(null==(o=n)||!o.v7_partialHydration||0!==t.length||r.initialized||!(r.matches.length>0))return null;e=r.matches}}let i=e,l=null==(a=r)?void 0:a.errors;if(null!=l){let e=i.findIndex(e=>e.route.id&&(null==l?void 0:l[e.route.id])!==void 0);e>=0||E(!1),i=i.slice(0,Math.min(i.length,e+1))}let s=!1,u=-1;if(r&&n&&n.v7_partialHydration)for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(u=e),t.route.id){let{loaderData:e,errors:n}=r,a=t.route.loader&&void 0===e[t.route.id]&&(!n||void 0===n[t.route.id]);if(t.route.lazy||a){s=!0,i=u>=0?i.slice(0,u+1):[i[0]];break}}}return i.reduceRight((e,n,a)=>{var o,c;let d;let h=!1,f=null,m=null;r&&(d=l&&n.route.id?l[n.route.id]:void 0,f=n.route.errorElement||tf,s&&(u<0&&0===a?(o="route-fallback",c=0,tj[o]||(tj[o]=!0),h=!0,m=null):u===a&&(h=!0,m=n.route.hydrateFallbackElement||null)));let v=t.concat(i.slice(0,a+1)),y=()=>{let t;return t=d?f:h?m:n.route.Component?p.createElement(n.route.Component,null):n.route.element?n.route.element:e,p.createElement(tm,{match:n,routeContext:{outlet:e,matches:v,isDataRoute:null!=r},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||0===a)?p.createElement(tp,{location:r.location,revalidation:r.revalidation,component:f,error:d,children:y(),routeContext:{outlet:null,matches:v,isDataRoute:!0}}):y()},null)}var ty=((o=ty||{}).UseBlocker="useBlocker",o.UseRevalidator="useRevalidator",o.UseNavigateStable="useNavigate",o),tg=((i=tg||{}).UseBlocker="useBlocker",i.UseLoaderData="useLoaderData",i.UseActionData="useActionData",i.UseRouteError="useRouteError",i.UseNavigation="useNavigation",i.UseRouteLoaderData="useRouteLoaderData",i.UseMatches="useMatches",i.UseRevalidator="useRevalidator",i.UseNavigateStable="useNavigate",i.UseRouteId="useRouteId",i);function tw(e){let t=p.useContext(e7);return t||E(!1),t}function tb(e){let t=p.useContext(e4);return t||E(!1),t}function tE(e){let t;let r=((t=p.useContext(e6))||E(!1),t),n=r.matches[r.matches.length-1];return n.route.id||E(!1),n.route.id}function tS(){return tE(tg.UseRouteId)}function tR(){return tb(tg.UseNavigation).navigation}function tx(){let e=tw(ty.UseRevalidator),t=tb(tg.UseRevalidator);return p.useMemo(()=>({revalidate:e.router.revalidate,state:t.revalidation}),[e.router.revalidate,t.revalidation])}function tC(){let{matches:e,loaderData:t}=tb(tg.UseMatches);return p.useMemo(()=>e.map(e=>T(e,t)),[e,t])}function tP(){let e=tb(tg.UseLoaderData),t=tE(tg.UseLoaderData);if(e.errors&&null!=e.errors[t]){console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")");return}return e.loaderData[t]}function tD(e){return tb(tg.UseRouteLoaderData).loaderData[e]}function tL(){let e=tb(tg.UseActionData),t=tE(tg.UseLoaderData);return e.actionData?e.actionData[t]:void 0}function tk(){var e;let t=p.useContext(e8),r=tb(tg.UseRouteError),n=tE(tg.UseRouteError);return void 0!==t?t:null==(e=r.errors)?void 0:e[n]}function t_(){let e=p.useContext(e5);return null==e?void 0:e._data}function tA(){let e=p.useContext(e5);return null==e?void 0:e._error}let tT=0;function tU(e){let{router:t,basename:r}=tw(ty.UseBlocker),n=tb(tg.UseBlocker),[a,o]=p.useState(""),i=p.useCallback(t=>{if("function"!=typeof e)return!!e;if("/"===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:e1({},n,{pathname:N(n.pathname,r)||n.pathname}),nextLocation:e1({},a,{pathname:N(a.pathname,r)||a.pathname}),historyAction:o})},[r,e]);return p.useEffect(()=>{let e=String(++tT);return o(e),()=>t.deleteBlocker(e)},[t]),p.useEffect(()=>{""!==a&&t.getBlocker(a,i)},[t,a,i]),a&&n.blockers.has(a)?n.blockers.get(a):ec}let tj={},tM=(e,t,r)=>{};function tO(e,t){(null==e?void 0:e.v7_startTransition)===void 0&&tM("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),(null==e?void 0:e.v7_relativeSplatPath)!==void 0||t&&t.v7_relativeSplatPath||tM("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath"),t&&(void 0===t.v7_fetcherPersist&&tM("v7_fetcherPersist","The persistence behavior of fetchers is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist"),void 0===t.v7_normalizeFormMethod&&tM("v7_normalizeFormMethod","Casing of `formMethod` fields is being normalized to uppercase in v7","https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod"),void 0===t.v7_partialHydration&&tM("v7_partialHydration","`RouterProvider` hydration behavior is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_partialhydration"),void 0===t.v7_skipActionErrorRevalidation&&tM("v7_skipActionErrorRevalidation","The revalidation behavior after 4xx/5xx `action` responses is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation"))}let tF=p.startTransition;function tN(e){let{basename:t,children:r,initialEntries:n,initialIndex:a,future:o}=e,i=p.useRef();null==i.current&&(i.current=g({initialEntries:n,initialIndex:a,v5Compat:!0}));let l=i.current,[s,u]=p.useState({action:l.action,location:l.location}),{v7_startTransition:c}=o||{},d=p.useCallback(e=>{c&&tF?tF(()=>u(e)):u(e)},[u,c]);return p.useLayoutEffect(()=>l.listen(d),[l,d]),p.useEffect(()=>tO(o),[o]),p.createElement(tH,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:l,future:o})}function tB(e){let{to:t,replace:r,state:n,relative:a}=e;te()||E(!1);let{future:o,static:i}=p.useContext(e2),{matches:l}=p.useContext(e6),{pathname:s}=tt(),u=to(),c=JSON.stringify(W(t,H(l,o.v7_relativeSplatPath),s,"path"===a));return p.useEffect(()=>u(JSON.parse(c),{replace:r,state:n,relative:a}),[u,c,a,r,n]),null}function tI(e){return ts(e.context)}function tz(e){E(!1)}function tH(e){let{basename:t="/",children:r=null,location:n,navigationType:a=c.Pop,navigator:o,static:i=!1,future:l}=e;te()&&E(!1);let s=t.replace(/^\/*/,"/"),u=p.useMemo(()=>({basename:s,navigator:o,static:i,future:e1({v7_relativeSplatPath:!1},l)}),[s,l,o,i]);"string"==typeof n&&(n=P(n));let{pathname:d="/",search:h="",hash:f="",state:m=null,key:v="default"}=n,y=p.useMemo(()=>{let e=N(d,s);return null==e?null:{location:{pathname:e,search:h,hash:f,state:m,key:v},navigationType:a}},[s,d,h,f,m,v,a]);return null==y?null:p.createElement(e2.Provider,{value:u},p.createElement(e3.Provider,{children:r,value:y}))}function tW(e){let{children:t,location:r}=e;return th(tq(t),r)}function t$(e){let{children:t,errorElement:r,resolve:n}=e;return p.createElement(tK,{resolve:n,errorElement:r},p.createElement(tY,null,t))}var tV=((l=tV||{})[l.pending=0]="pending",l[l.success=1]="success",l[l.error=2]="error",l);let tJ=new Promise(()=>{});class tK extends p.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,n=null,a=tV.pending;if(r instanceof Promise){if(this.state.error){a=tV.error;let e=this.state.error;Object.defineProperty(n=Promise.reject().catch(()=>{}),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_error",{get:()=>e})}else r._tracked?a="_error"in(n=r)?tV.error:"_data"in n?tV.success:tV.pending:(a=tV.pending,Object.defineProperty(r,"_tracked",{get:()=>!0}),n=r.then(e=>Object.defineProperty(r,"_data",{get:()=>e}),e=>Object.defineProperty(r,"_error",{get:()=>e})))}else a=tV.success,Object.defineProperty(n=Promise.resolve(),"_tracked",{get:()=>!0}),Object.defineProperty(n,"_data",{get:()=>r});if(a===tV.error&&n._error instanceof q)throw tJ;if(a===tV.error&&!t)throw n._error;if(a===tV.error)return p.createElement(e5.Provider,{value:n,children:t});if(a===tV.success)return p.createElement(e5.Provider,{value:n,children:e});throw n}}function tY(e){let{children:t}=e,r=t_(),n="function"==typeof t?t(r):t;return p.createElement(p.Fragment,null,n)}function tq(e,t){void 0===t&&(t=[]);let r=[];return p.Children.forEach(e,(e,n)=>{if(!p.isValidElement(e))return;let a=[...t,n];if(e.type===p.Fragment){r.push.apply(r,tq(e.props.children,a));return}e.type!==tz&&E(!1),e.props.index&&e.props.children&&E(!1);let o={id:e.props.id||a.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(o.children=tq(e.props.children,a)),r.push(o)}),r}function tX(e){return tv(e)}function tG(e){let t={hasErrorBoundary:null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&Object.assign(t,{element:p.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:p.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:p.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}function tQ(e,t){return ep({basename:null==t?void 0:t.basename,future:e1({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:g({initialEntries:null==t?void 0:t.initialEntries,initialIndex:null==t?void 0:t.initialIndex}),hydrationData:null==t?void 0:t.hydrationData,routes:e,mapRouteProperties:tG,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation}).initialize()}function tZ(){return(tZ=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}).apply(this,arguments)}function t0(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}let t1="application/x-www-form-urlencoded";function t7(e){return null!=e&&"string"==typeof e.tagName}function t4(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(e=>[r,e]):[[r,n]])},[]))}let t5=null,t2=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function t3(e){return null==e||t2.has(e)?e:null}let t6=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],t8=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],t9=["fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","viewTransition"];try{window.__reactRouterVersion="6"}catch(e){}function re(e,t){return ep({basename:null==t?void 0:t.basename,future:tZ({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:w({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||rr(),routes:e,mapRouteProperties:tG,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()}function rt(e,t){return ep({basename:null==t?void 0:t.basename,future:tZ({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:b({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||rr(),routes:e,mapRouteProperties:tG,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()}function rr(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=tZ({},t,{errors:function(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new et(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack="",r[e]=a}catch(e){}}if(null==r[e]){let t=Error(n.message);t.stack="",r[e]=t}}else r[e]=n;return r}(t.errors)})),t}let rn=p.createContext({isTransitioning:!1}),ra=p.createContext(new Map),ro=p.startTransition,ri=m.flushSync,rl=p.useId;function rs(e){ri?ri(e):e()}class ru{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}})}}function rc(e){let{fallbackElement:t,router:r,future:n}=e,[a,o]=p.useState(r.state),[i,l]=p.useState(),[s,u]=p.useState({isTransitioning:!1}),[c,d]=p.useState(),[h,f]=p.useState(),[m,v]=p.useState(),y=p.useRef(new Map),{v7_startTransition:g}=n||{},w=p.useCallback(e=>{if(g)ro?ro(e):e();else e()},[g]),b=p.useCallback((e,t)=>{let{deletedFetchers:n,flushSync:a,viewTransitionOpts:i}=t;e.fetchers.forEach((e,t)=>{void 0!==e.data&&y.current.set(t,e.data)}),n.forEach(e=>y.current.delete(e));let s=null==r.window||null==r.window.document||"function"!=typeof r.window.document.startViewTransition;if(!i||s){a?rs(()=>o(e)):w(()=>o(e));return}if(a){rs(()=>{h&&(c&&c.resolve(),h.skipTransition()),u({isTransitioning:!0,flushSync:!0,currentLocation:i.currentLocation,nextLocation:i.nextLocation})});let t=r.window.document.startViewTransition(()=>{rs(()=>o(e))});t.finished.finally(()=>{rs(()=>{d(void 0),f(void 0),l(void 0),u({isTransitioning:!1})})}),rs(()=>f(t));return}h?(c&&c.resolve(),h.skipTransition(),v({state:e,currentLocation:i.currentLocation,nextLocation:i.nextLocation})):(l(e),u({isTransitioning:!0,flushSync:!1,currentLocation:i.currentLocation,nextLocation:i.nextLocation}))},[r.window,h,c,y,w]);p.useLayoutEffect(()=>r.subscribe(b),[r,b]),p.useEffect(()=>{s.isTransitioning&&!s.flushSync&&d(new ru)},[s]),p.useEffect(()=>{if(c&&i&&r.window){let e=c.promise,t=r.window.document.startViewTransition(async()=>{w(()=>o(i)),await e});t.finished.finally(()=>{d(void 0),f(void 0),l(void 0),u({isTransitioning:!1})}),f(t)}},[w,i,c,r.window]),p.useEffect(()=>{c&&i&&a.location.key===i.location.key&&c.resolve()},[c,h,a.location,i]),p.useEffect(()=>{!s.isTransitioning&&m&&(l(m.state),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),v(void 0))},[s.isTransitioning,m]),p.useEffect(()=>{},[]);let E=p.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:e=>r.navigate(e),push:(e,t,n)=>r.navigate(e,{state:t,preventScrollReset:null==n?void 0:n.preventScrollReset}),replace:(e,t,n)=>r.navigate(e,{replace:!0,state:t,preventScrollReset:null==n?void 0:n.preventScrollReset})}),[r]),S=r.basename||"/",R=p.useMemo(()=>({router:r,navigator:E,static:!1,basename:S}),[r,E,S]),x=p.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return p.useEffect(()=>tO(n,r.future),[n,r.future]),p.createElement(p.Fragment,null,p.createElement(e7.Provider,{value:R},p.createElement(e4.Provider,{value:a},p.createElement(ra.Provider,{value:y.current},p.createElement(rn.Provider,{value:s},p.createElement(tH,{basename:S,location:a.location,navigationType:a.historyAction,navigator:E,future:x},a.initialized||r.future.v7_partialHydration?p.createElement(rd,{routes:r.routes,future:r.future,state:a}):t))))),null)}let rd=p.memo(function(e){let{routes:t,future:r,state:n}=e;return th(t,void 0,n,r)});function rh(e){let{basename:t,children:r,future:n,window:a}=e,o=p.useRef();null==o.current&&(o.current=w({window:a,v5Compat:!0}));let i=o.current,[l,s]=p.useState({action:i.action,location:i.location}),{v7_startTransition:u}=n||{},c=p.useCallback(e=>{u&&ro?ro(()=>s(e)):s(e)},[s,u]);return p.useLayoutEffect(()=>i.listen(c),[i,c]),p.useEffect(()=>tO(n),[n]),p.createElement(tH,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:i,future:n})}function rf(e){let{basename:t,children:r,future:n,window:a}=e,o=p.useRef();null==o.current&&(o.current=b({window:a,v5Compat:!0}));let i=o.current,[l,s]=p.useState({action:i.action,location:i.location}),{v7_startTransition:u}=n||{},c=p.useCallback(e=>{u&&ro?ro(()=>s(e)):s(e)},[s,u]);return p.useLayoutEffect(()=>i.listen(c),[i,c]),p.useEffect(()=>tO(n),[n]),p.createElement(tH,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:i,future:n})}function rp(e){let{basename:t,children:r,future:n,history:a}=e,[o,i]=p.useState({action:a.action,location:a.location}),{v7_startTransition:l}=n||{},s=p.useCallback(e=>{l&&ro?ro(()=>i(e)):i(e)},[i,l]);return p.useLayoutEffect(()=>a.listen(s),[a,s]),p.useEffect(()=>tO(n),[n]),p.createElement(tH,{basename:t,children:r,location:o.location,navigationType:o.action,navigator:a,future:n})}let rm="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,rv=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ry=p.forwardRef(function(e,t){let r,{onClick:n,relative:a,reloadDocument:o,replace:i,state:l,target:s,to:u,preventScrollReset:c,viewTransition:d}=e,h=t0(e,t6),{basename:f}=p.useContext(e2),m=!1;if("string"==typeof u&&rv.test(u)&&(r=u,rm))try{let e=new URL(window.location.href),t=new URL(u.startsWith("//")?e.protocol+u:u),r=N(t.pathname,f);t.origin===e.origin&&null!=r?u=r+t.search+t.hash:m=!0}catch(e){}let v=e9(u,{relative:a}),y=rR(u,{replace:i,state:l,target:s,preventScrollReset:c,relative:a,viewTransition:d});return p.createElement("a",tZ({},h,{href:r||v,onClick:m||o?n:function(e){n&&n(e),e.defaultPrevented||y(e)},ref:t,target:s}))}),rg=p.forwardRef(function(e,t){let r,{"aria-current":n="page",caseSensitive:a=!1,className:o="",end:i=!1,style:l,to:s,viewTransition:u,children:c}=e,d=t0(e,t8),h=tc(s,{relative:d.relative}),f=tt(),m=p.useContext(e4),{navigator:v,basename:y}=p.useContext(e2),g=null!=m&&rO(h)&&!0===u,w=v.encodeLocation?v.encodeLocation(h).pathname:h.pathname,b=f.pathname,E=m&&m.navigation&&m.navigation.location?m.navigation.location.pathname:null;a||(b=b.toLowerCase(),E=E?E.toLowerCase():null,w=w.toLowerCase()),E&&y&&(E=N(E,y)||E);let S="/"!==w&&w.endsWith("/")?w.length-1:w.length,R=b===w||!i&&b.startsWith(w)&&"/"===b.charAt(S),x=null!=E&&(E===w||!i&&E.startsWith(w)&&"/"===E.charAt(w.length)),C={isActive:R,isPending:x,isTransitioning:g},P=R?n:void 0;r="function"==typeof o?o(C):[o,R?"active":null,x?"pending":null,g?"transitioning":null].filter(Boolean).join(" ");let D="function"==typeof l?l(C):l;return p.createElement(ry,tZ({},d,{"aria-current":P,className:r,ref:t,style:D,to:s,viewTransition:u}),"function"==typeof c?c(C):c)}),rw=p.forwardRef((e,t)=>{let{fetcherKey:r,navigate:n,reloadDocument:a,replace:o,state:i,method:l="get",action:s,onSubmit:u,relative:c,preventScrollReset:d,viewTransition:h}=e,f=t0(e,t9),m=rD(),v=rL(s,{relative:c}),y="get"===l.toLowerCase()?"get":"post";return p.createElement("form",tZ({ref:t,method:y,action:v,onSubmit:a?u:e=>{if(u&&u(e),e.defaultPrevented)return;e.preventDefault();let t=e.nativeEvent.submitter,a=(null==t?void 0:t.getAttribute("formmethod"))||l;m(t||e.currentTarget,{fetcherKey:r,method:a,navigate:n,replace:o,state:i,relative:c,preventScrollReset:d,viewTransition:h})}},f))});function rb(e){let{getKey:t,storageKey:r}=e;return rU({getKey:t,storageKey:r}),null}function rE(e){let t=p.useContext(e7);return t||E(!1),t}function rS(e){let t=p.useContext(e4);return t||E(!1),t}function rR(e,t){let{target:r,replace:n,state:a,preventScrollReset:o,relative:i,viewTransition:l}=void 0===t?{}:t,s=to(),u=tt(),c=tc(e,{relative:i});return p.useCallback(t=>{0===t.button&&(!r||"_self"===r)&&!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&(t.preventDefault(),s(e,{replace:void 0!==n?n:C(u)===C(c),state:a,preventScrollReset:o,relative:i,viewTransition:l}))},[u,s,c,n,a,r,e,o,i,l])}function rx(e){let t=p.useRef(t4(e)),r=p.useRef(!1),n=tt(),a=p.useMemo(()=>{var e,a;let o;return e=n.search,a=r.current?null:t.current,o=t4(e),a&&a.forEach((e,t)=>{o.has(t)||a.getAll(t).forEach(e=>{o.append(t,e)})}),o},[n.search]),o=to(),i=p.useCallback((e,t)=>{let n=t4("function"==typeof e?e(a):e);r.current=!0,o("?"+n,t)},[o,a]);return[a,i]}(s=h||(h={})).UseScrollRestoration="useScrollRestoration",s.UseSubmit="useSubmit",s.UseSubmitFetcher="useSubmitFetcher",s.UseFetcher="useFetcher",s.useViewTransitionState="useViewTransitionState",(u=f||(f={})).UseFetcher="useFetcher",u.UseFetchers="useFetchers",u.UseScrollRestoration="useScrollRestoration";let rC=0,rP=()=>"__"+String(++rC)+"__";function rD(){let{router:e}=rE(h.UseSubmit),{basename:t}=p.useContext(e2),r=tS();return p.useCallback(function(n,a){void 0===a&&(a={}),function(){if("undefined"==typeof document)throw Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.")}();let{action:o,method:i,encType:l,formData:s,body:u}=function(e,t){let r,n,a,o,i;if(t7(e)&&"form"===e.tagName.toLowerCase()){let i=e.getAttribute("action");n=i?N(i,t):null,r=e.getAttribute("method")||"get",a=t3(e.getAttribute("enctype"))||t1,o=new FormData(e)}else if(t7(e)&&"button"===e.tagName.toLowerCase()||t7(e)&&"input"===e.tagName.toLowerCase()&&("submit"===e.type||"image"===e.type)){let i=e.form;if(null==i)throw Error('Cannot submit a <button> or <input type="submit"> without a <form>');let l=e.getAttribute("formaction")||i.getAttribute("action");if(n=l?N(l,t):null,r=e.getAttribute("formmethod")||i.getAttribute("method")||"get",a=t3(e.getAttribute("formenctype"))||t3(i.getAttribute("enctype"))||t1,o=new FormData(i,e),!function(){if(null===t5)try{new FormData(document.createElement("form"),0),t5=!1}catch(e){t5=!0}return t5}()){let{name:t,type:r,value:n}=e;if("image"===r){let e=t?t+".":"";o.append(e+"x","0"),o.append(e+"y","0")}else t&&o.append(t,n)}}else if(t7(e))throw Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');else r="get",n=null,a=t1,i=e;return o&&"text/plain"===a&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}(n,t);if(!1===a.navigate){let t=a.fetcherKey||rP();e.fetch(t,r,a.action||o,{preventScrollReset:a.preventScrollReset,formData:s,body:u,formMethod:a.method||i,formEncType:a.encType||l,flushSync:a.flushSync})}else e.navigate(a.action||o,{preventScrollReset:a.preventScrollReset,formData:s,body:u,formMethod:a.method||i,formEncType:a.encType||l,replace:a.replace,state:a.state,fromRouteId:r,flushSync:a.flushSync,viewTransition:a.viewTransition})},[e,t,r])}function rL(e,t){let{relative:r}=void 0===t?{}:t,{basename:n}=p.useContext(e2),a=p.useContext(e6);a||E(!1);let[o]=a.matches.slice(-1),i=tZ({},tc(e||".",{relative:r})),l=tt();if(null==e){i.search=l.search;let e=new URLSearchParams(i.search),t=e.getAll("index");if(t.some(e=>""===e)){e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let r=e.toString();i.search=r?"?"+r:""}}return(!e||"."===e)&&o.route.index&&(i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index"),"/"!==n&&(i.pathname="/"===i.pathname?n:$([n,i.pathname])),C(i)}function rk(e){var t;let{key:r}=void 0===e?{}:e,{router:n}=rE(h.UseFetcher),a=rS(f.UseFetcher),o=p.useContext(ra),i=p.useContext(e6),l=null==(t=i.matches[i.matches.length-1])?void 0:t.route.id;o||E(!1),i||E(!1),null==l&&E(!1);let s=rl?rl():"",[u,c]=p.useState(r||s);r&&r!==u?c(r):u||c(rP()),p.useEffect(()=>(n.getFetcher(u),()=>{n.deleteFetcher(u)}),[n,u]);let d=p.useCallback((e,t)=>{l||E(!1),n.fetch(u,l,e,t)},[u,l,n]),m=rD(),v=p.useCallback((e,t)=>{m(e,tZ({},t,{navigate:!1,fetcherKey:u}))},[u,m]),y=p.useMemo(()=>p.forwardRef((e,t)=>p.createElement(rw,tZ({},e,{navigate:!1,fetcherKey:u,ref:t}))),[u]),g=a.fetchers.get(u)||eu,w=o.get(u);return p.useMemo(()=>tZ({Form:y,submit:v,load:d},g,{data:w}),[y,v,d,g,w])}function r_(){return Array.from(rS(f.UseFetchers).fetchers.entries()).map(e=>{let[t,r]=e;return tZ({},r,{key:t})})}let rA="react-router-scroll-positions",rT={};function rU(e){let{getKey:t,storageKey:r}=void 0===e?{}:e,{router:n}=rE(h.UseScrollRestoration),{restoreScrollPosition:a,preventScrollReset:o}=rS(f.UseScrollRestoration),{basename:i}=p.useContext(e2),l=tt(),s=tC(),u=tR();p.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),function(e,t){let{capture:r}={};p.useEffect(()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("pagehide",e,t),()=>{window.removeEventListener("pagehide",e,t)}},[e,r])}(p.useCallback(()=>{"idle"===u.state&&(rT[(t?t(l,s):null)||l.key]=window.scrollY);try{sessionStorage.setItem(r||rA,JSON.stringify(rT))}catch(e){}window.history.scrollRestoration="auto"},[r,t,u.state,l,s])),"undefined"!=typeof document&&(p.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(r||rA);e&&(rT=JSON.parse(e))}catch(e){}},[r]),p.useLayoutEffect(()=>{let e=t&&"/"!==i?(e,r)=>t(tZ({},e,{pathname:N(e.pathname,i)||e.pathname}),r):t,r=null==n?void 0:n.enableScrollRestoration(rT,()=>window.scrollY,e);return()=>r&&r()},[n,i,t]),p.useLayoutEffect(()=>{if(!1!==a){if("number"==typeof a){window.scrollTo(0,a);return}if(l.hash){let e=document.getElementById(decodeURIComponent(l.hash.slice(1)));if(e){e.scrollIntoView();return}}!0!==o&&window.scrollTo(0,0)}},[l,a,o]))}function rj(e,t){let{capture:r}=t||{};p.useEffect(()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}},[e,r])}function rM(e){let{when:t,message:r}=e,n=tU(t);p.useEffect(()=>{"blocked"===n.state&&(window.confirm(r)?setTimeout(n.proceed,0):n.reset())},[n,r]),p.useEffect(()=>{"blocked"!==n.state||t||n.reset()},[n,t])}function rO(e,t){void 0===t&&(t={});let r=p.useContext(rn);null==r&&E(!1);let{basename:n}=rE(h.useViewTransitionState),a=tc(e,{relative:t.relative});if(!r.isTransitioning)return!1;let o=N(r.currentLocation.pathname,n)||r.currentLocation.pathname,i=N(r.nextLocation.pathname,n)||r.nextLocation.pathname;return null!=O(a.pathname,i)||null!=O(a.pathname,o)}}}]);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @remix-run/router v1.23.0
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Remix Software Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* React Router DOM v6.30.0
|
|
14
|
+
*
|
|
15
|
+
* Copyright (c) Remix Software Inc.
|
|
16
|
+
*
|
|
17
|
+
* This source code is licensed under the MIT license found in the
|
|
18
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
19
|
+
*
|
|
20
|
+
* @license MIT
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* React Router v6.30.0
|
|
25
|
+
*
|
|
26
|
+
* Copyright (c) Remix Software Inc.
|
|
27
|
+
*
|
|
28
|
+
* This source code is licensed under the MIT license found in the
|
|
29
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
30
|
+
*
|
|
31
|
+
* @license MIT
|
|
32
|
+
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(()=>{var e={5311:function(e,r,t){Promise.all([t.e("677"),t.e("179"),t.e("620")]).then(t.bind(t,29161))}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={id:n,loaded:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}t.m=e,t.c=r,t.federation||(t.federation={chunkMatcher:function(e){return!/^(1(57|61|79)|263|37|494|544|677|759|809|946)$/.test(e)}}),t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce((r,n)=>(t.f[n](e,r),r),[])),t.u=e=>"__mf/js/async/"+("118"===e?"lib-router":e)+"."+({118:"c90fcaed",13:"714dc818",173:"23a9af58",214:"bd903be0",22:"b2b97531",224:"d1554d4a",232:"cccd71f6",238:"e1063a95",292:"6a606f52",333:"a82fc8bd",539:"e7706a03",610:"37fe76b5",62:"b55b7073",620:"9ead3302",651:"f99d8a40",694:"f0fc36da",738:"a0be8511",740:"6b036ded",75:"2cda0740",770:"ddaea8f9",822:"c6b015c5",960:"587af91a",964:"03c8778c",977:"1462b2d4",981:"caaa6409",996:"06dcce9b"})[e]+".js",t.miniCssF=e=>"__mf/css/async/"+e+"."+({263:"17332bd7",759:"17332bd7"})[e]+".css",t.h=()=>"268106c2f1fc7aa5",(()=>{t.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})()})(),t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={},r="StatusHistoryChart:";t.l=function(n,o,a,s){if(e[n]){e[n].push(o);return}if(void 0!==a)for(var i,l,c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var f=c[u];if(f.getAttribute("src")==n||f.getAttribute("data-webpack")==r+a){i=f;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,t.nc&&i.setAttribute("nonce",t.nc),i.setAttribute("data-webpack",r+a),i.src=n),e[n]=[o];var d=function(r,t){i.onerror=i.onload=null,clearTimeout(h);var o=e[n];if(delete e[n],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(function(e){return e(t)}),r)return r(t)},h=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),l&&document.head.appendChild(i)}})(),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),t.nc=void 0,(()=>{var e=[];t.O=(r,n,o,a)=>{if(n){a=a||0;for(var s=e.length;s>0&&e[s-1][2]>a;s--)e[s]=e[s-1];e[s]=[n,o,a];return}for(var i=1/0,s=0;s<e.length;s++){for(var[n,o,a]=e[s],l=!0,c=0;c<n.length;c++)(!1&a||i>=a)&&Object.keys(t.O).every(e=>t.O[e](n[c]))?n.splice(c--,1):(l=!1,a<i&&(i=a));if(l){e.splice(s--,1);var u=o();void 0!==u&&(r=u)}}return r}})(),t.p="/plugins/StatusHistoryChart/",t.rv=()=>"1.2.8",t.S={},t.initializeSharingData={scopeToSharingDataMapping:{default:[{name:"@emotion/react",version:"11.14.0",factory:()=>Promise.all([t.e("960"),t.e("677"),t.e("651")]).then(()=>()=>t(96434)),eager:0,singleton:1,requiredVersion:"^11.11.3"},{name:"@emotion/styled",version:"11.14.0",factory:()=>Promise.all([t.e("677"),t.e("157"),t.e("694")]).then(()=>()=>t(51958)),eager:0,singleton:1},{name:"@hookform/resolvers",version:"3.10.0",factory:()=>Promise.all([t.e("809"),t.e("214")]).then(()=>()=>t(81228)),eager:0,singleton:1},{name:"@perses-dev/components",version:"0.51.0-beta.1",factory:()=>Promise.all([t.e("238"),t.e("224"),t.e("996"),t.e("22"),t.e("822"),t.e("539"),t.e("977"),t.e("677"),t.e("179"),t.e("161"),t.e("157"),t.e("37"),t.e("946"),t.e("759")]).then(()=>()=>t(76743)),eager:0,singleton:1},{name:"@perses-dev/plugin-system",version:"0.51.0-beta.1",factory:()=>Promise.all([t.e("118"),t.e("22"),t.e("977"),t.e("13"),t.e("677"),t.e("179"),t.e("161"),t.e("157"),t.e("809"),t.e("946"),t.e("544"),t.e("62")]).then(()=>()=>t(23985)),eager:0,singleton:1},{name:"@tanstack/react-query",version:"5.69.0",factory:()=>Promise.all([t.e("232"),t.e("677"),t.e("333")]).then(()=>()=>t(40150)),eager:0,singleton:1},{name:"date-fns",version:"4.1.0",factory:()=>Promise.all([t.e("238"),t.e("224"),t.e("75")]).then(()=>()=>t(99657)),eager:0,singleton:1},{name:"echarts",version:"5.5.0",factory:()=>Promise.all([t.e("996"),t.e("610")]).then(()=>()=>t(2138)),eager:0,singleton:1},{name:"lodash",version:"4.17.21",factory:()=>t.e("981").then(()=>()=>t(98784)),eager:0,singleton:1},{name:"react-dom",version:"18.3.1",factory:()=>Promise.all([t.e("173"),t.e("677")]).then(()=>()=>t(31542)),eager:0,singleton:1,requiredVersion:"18.2.0"},{name:"react-hook-form",version:"7.54.2",factory:()=>Promise.all([t.e("292"),t.e("677")]).then(()=>()=>t(36679)),eager:0,singleton:1},{name:"react",version:"18.3.1",factory:()=>t.e("964").then(()=>()=>t(27378)),eager:0,singleton:1,requiredVersion:"18.2.0"}]},uniqueName:"StatusHistoryChart"},t.I=t.I||function(){throw Error("should have __webpack_require__.I")},t.consumesLoadingData={chunkMapping:{161:["4665","20461"],37:["48137"],809:["57576"],544:["57751","53034","84275","74614","68393","30156","3553","55922","64293"],494:["57871"],946:["45913"],179:["6085"],157:["72116"],677:["54538"]},moduleIdToConsumeDataMapping:{57751:{shareScope:"default",shareKey:"@perses-dev/plugin-system",import:"@perses-dev/plugin-system",requiredVersion:"*",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>()=>t(23985)},30156:{shareScope:"default",shareKey:"echarts",import:"echarts",requiredVersion:"*",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([t.e("996"),t.e("610")]).then(()=>()=>t(2138))},53034:{shareScope:"default",shareKey:"@tanstack/react-query",import:"@tanstack/react-query",requiredVersion:"^5.64.2",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("232").then(()=>()=>t(40150))},72116:{shareScope:"default",shareKey:"@emotion/react",import:"@emotion/react",requiredVersion:"^11.11.3",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("960").then(()=>()=>t(96434))},84275:{shareScope:"default",shareKey:"@hookform/resolvers",import:"@hookform/resolvers",requiredVersion:"^2.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("738").then(()=>()=>t(81228))},74614:{shareScope:"default",shareKey:"lodash",import:"lodash",requiredVersion:"*",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("981").then(()=>()=>t(98784))},68393:{shareScope:"default",shareKey:"@perses-dev/components",import:"@perses-dev/components",requiredVersion:"0.51.0-beta.1",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([t.e("238"),t.e("224"),t.e("996"),t.e("822"),t.e("539"),t.e("37"),t.e("263")]).then(()=>()=>t(76743))},4665:{shareScope:"default",shareKey:"date-fns-tz",import:"date-fns-tz",requiredVersion:"^3.2.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([t.e("224"),t.e("740"),t.e("494")]).then(()=>()=>t(48872))},54538:{shareScope:"default",shareKey:"react",import:"react",requiredVersion:"18.2.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("964").then(()=>()=>t(27378))},3553:{shareScope:"default",shareKey:"@perses-dev/plugin-system",import:"@perses-dev/plugin-system",requiredVersion:"0.51.0-beta.1",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>()=>t(23985)},55922:{shareScope:"default",shareKey:"@emotion/styled",import:"@emotion/styled",requiredVersion:"*",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("770").then(()=>()=>t(51958))},20461:{shareScope:"default",shareKey:"date-fns",import:"date-fns",requiredVersion:"^4.1.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([t.e("238"),t.e("224"),t.e("75")]).then(()=>()=>t(99657))},48137:{shareScope:"default",shareKey:"react-hook-form",import:"react-hook-form",requiredVersion:"^7.51.3",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("292").then(()=>()=>t(36679))},64293:{shareScope:"default",shareKey:"react-hook-form",import:"react-hook-form",requiredVersion:"^7.46.1",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("292").then(()=>()=>t(36679))},6085:{shareScope:"default",shareKey:"react-dom",import:"react-dom",requiredVersion:"18.2.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("173").then(()=>()=>t(31542))},57871:{shareScope:"default",shareKey:"date-fns",import:"date-fns",requiredVersion:"^3.0.0 || ^4.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([t.e("238"),t.e("75")]).then(()=>()=>t(99657))},57576:{shareScope:"default",shareKey:"react-hook-form",import:"react-hook-form",requiredVersion:"^7.0.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>Promise.all([t.e("292"),t.e("677")]).then(()=>()=>t(36679))},45913:{shareScope:"default",shareKey:"@emotion/styled",import:"@emotion/styled",requiredVersion:"^11.3.0",strictVersion:!1,singleton:!0,eager:!1,fallback:()=>t.e("770").then(()=>()=>t(51958))}},initialConsumes:[]},t.f.consumes=t.f.consumes||function(){throw Error("should have __webpack_require__.f.consumes")},(()=>{if("undefined"!=typeof document){var e=function(e,r,n,o,a){var s=document.createElement("link");return s.rel="stylesheet",s.type="text/css",t.nc&&(s.nonce=t.nc),s.onerror=s.onload=function(t){if(s.onerror=s.onload=null,"load"===t.type)o();else{var n=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.href||r,l=Error("Loading CSS chunk "+e+" failed.\\n("+i+")");l.code="CSS_CHUNK_LOAD_FAILED",l.type=n,l.request=i,s.parentNode&&s.parentNode.removeChild(s),a(l)}},s.href=r,n?n.parentNode.insertBefore(s,n.nextSibling):document.head.appendChild(s),s},r=function(e,r){for(var t=document.getElementsByTagName("link"),n=0;n<t.length;n++){var o=t[n],a=o.getAttribute("data-href")||o.getAttribute("href");if("stylesheet"===o.rel&&(a===e||a===r))return o}for(var s=document.getElementsByTagName("style"),n=0;n<s.length;n++){var o=s[n],a=o.getAttribute("data-href");if(a===e||a===r)return o}},n={909:0};t.f.miniCss=function(o,a){if(n[o])a.push(n[o]);else if(0!==n[o]&&({263:1,759:1})[o])a.push(n[o]=new Promise(function(n,a){var s=t.miniCssF(o),i=t.p+s;if(r(s,i))return n();e(o,i,null,n,a)}).then(function(){n[o]=0},function(e){throw delete n[o],e}))}}})(),(()=>{var e={909:0};t.f.j=function(r,n){var o=t.o(e,r)?e[r]:void 0;if(0!==o){if(o)n.push(o[2]);else if(/^(1(57|61|79)|263|37|494|544|677|759|809|946)$/.test(r))e[r]=0;else{var a=new Promise((t,n)=>o=e[r]=[t,n]);n.push(o[2]=a);var s=t.p+t.u(r),i=Error();t.l(s,function(n){if(t.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var a=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;i.message="Loading chunk "+r+" failed.\n("+a+": "+s+")",i.name="ChunkLoadError",i.type=a,i.request=s,o[1](i)}},"chunk-"+r,r)}}},t.O.j=r=>0===e[r];var r=(r,n)=>{var o,a,[s,i,l]=n,c=0;if(s.some(r=>0!==e[r])){for(o in i)t.o(i,o)&&(t.m[o]=i[o]);if(l)var u=l(t)}for(r&&r(n);c<s.length;c++)a=s[c],t.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return t.O(u)},n=self.webpackChunkStatusHistoryChart=self.webpackChunkStatusHistoryChart||[];n.forEach(r.bind(null,0)),n.push=r.bind(null,n.push.bind(n))})(),t.ruid="bundler=rspack@1.2.8",t.O(void 0,["456"],function(){return t(68176)});var n=t.O(void 0,["456"],function(){return t(5311)});n=t.O(n)})();
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PanelPlugin } from '@perses-dev/plugin-system';
|
|
2
|
+
import { StatusHistoryChartOptions } from './status-history-model';
|
|
3
|
+
import { StatusHistoryChartPanelProps } from './StatusHistoryPanel';
|
|
4
|
+
export declare const StatusHistoryChart: PanelPlugin<StatusHistoryChartOptions, StatusHistoryChartPanelProps>;
|
|
5
|
+
//# sourceMappingURL=StatusHistoryChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusHistoryChart.d.ts","sourceRoot":"","sources":["../../src/StatusHistoryChart.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAA0C,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAE3G,OAAO,EAAE,4BAA4B,EAAsB,MAAM,sBAAsB,CAAC;AAGxF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,yBAAyB,EAAE,4BAA4B,CAQnG,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Copyright 2024 The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
import { createInitialStatusHistoryChartOptions } from './status-history-model';
|
|
14
|
+
import { StatusHistoryChartOptionsEditorSettings } from './StatusHistoryChartOptionsEditorSettings';
|
|
15
|
+
import { StatusHistoryPanel } from './StatusHistoryPanel';
|
|
16
|
+
import { StatusHistoryValueMappingEditor } from './StatusHistoryValueMappingEditor';
|
|
17
|
+
export const StatusHistoryChart = {
|
|
18
|
+
PanelComponent: StatusHistoryPanel,
|
|
19
|
+
supportedQueryTypes: [
|
|
20
|
+
'TimeSeriesQuery'
|
|
21
|
+
],
|
|
22
|
+
panelOptionsEditorComponents: [
|
|
23
|
+
{
|
|
24
|
+
label: 'Settings',
|
|
25
|
+
content: StatusHistoryChartOptionsEditorSettings
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
label: 'Value mapping',
|
|
29
|
+
content: StatusHistoryValueMappingEditor
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
createInitialOptions: createInitialStatusHistoryChartOptions
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=StatusHistoryChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/StatusHistoryChart.ts"],"sourcesContent":["// Copyright 2024 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { PanelPlugin } from '@perses-dev/plugin-system';\n\nimport { createInitialStatusHistoryChartOptions, StatusHistoryChartOptions } from './status-history-model';\nimport { StatusHistoryChartOptionsEditorSettings } from './StatusHistoryChartOptionsEditorSettings';\nimport { StatusHistoryChartPanelProps, StatusHistoryPanel } from './StatusHistoryPanel';\nimport { StatusHistoryValueMappingEditor } from './StatusHistoryValueMappingEditor';\n\nexport const StatusHistoryChart: PanelPlugin<StatusHistoryChartOptions, StatusHistoryChartPanelProps> = {\n PanelComponent: StatusHistoryPanel,\n supportedQueryTypes: ['TimeSeriesQuery'],\n panelOptionsEditorComponents: [\n { label: 'Settings', content: StatusHistoryChartOptionsEditorSettings },\n { label: 'Value mapping', content: StatusHistoryValueMappingEditor },\n ],\n createInitialOptions: createInitialStatusHistoryChartOptions,\n};\n"],"names":["createInitialStatusHistoryChartOptions","StatusHistoryChartOptionsEditorSettings","StatusHistoryPanel","StatusHistoryValueMappingEditor","StatusHistoryChart","PanelComponent","supportedQueryTypes","panelOptionsEditorComponents","label","content","createInitialOptions"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAIjC,SAASA,sCAAsC,QAAmC,yBAAyB;AAC3G,SAASC,uCAAuC,QAAQ,4CAA4C;AACpG,SAAuCC,kBAAkB,QAAQ,uBAAuB;AACxF,SAASC,+BAA+B,QAAQ,oCAAoC;AAEpF,OAAO,MAAMC,qBAA2F;IACtGC,gBAAgBH;IAChBI,qBAAqB;QAAC;KAAkB;IACxCC,8BAA8B;QAC5B;YAAEC,OAAO;YAAYC,SAASR;QAAwC;QACtE;YAAEO,OAAO;YAAiBC,SAASN;QAAgC;KACpE;IACDO,sBAAsBV;AACxB,EAAE"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { StatusHistroyChartEditorProps } from './status-history-model.js';
|
|
3
|
+
export declare function StatusHistoryChartOptionsEditorSettings(props: StatusHistroyChartEditorProps): ReactElement;
|
|
4
|
+
//# sourceMappingURL=StatusHistoryChartOptionsEditorSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusHistoryChartOptionsEditorSettings.d.ts","sourceRoot":"","sources":["../../src/StatusHistoryChartOptionsEditorSettings.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAA6B,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAErG,wBAAgB,uCAAuC,CAAC,KAAK,EAAE,6BAA6B,GAAG,YAAY,CAqC1G"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Copyright 2024 The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
+
import { LegendOptionsEditor } from '@perses-dev/plugin-system';
|
|
15
|
+
import { produce } from 'immer';
|
|
16
|
+
import { OptionsEditorGroup, OptionsEditorGrid, OptionsEditorColumn } from '@perses-dev/components';
|
|
17
|
+
import { Button } from '@mui/material';
|
|
18
|
+
export function StatusHistoryChartOptionsEditorSettings(props) {
|
|
19
|
+
const { onChange, value } = props;
|
|
20
|
+
const handleLegendChange = (newLegend)=>{
|
|
21
|
+
// TODO (sjcobb): fix type, add position, fix glitch
|
|
22
|
+
onChange(produce(value, (draft)=>{
|
|
23
|
+
draft.legend = newLegend;
|
|
24
|
+
}));
|
|
25
|
+
};
|
|
26
|
+
return /*#__PURE__*/ _jsxs(OptionsEditorGrid, {
|
|
27
|
+
children: [
|
|
28
|
+
/*#__PURE__*/ _jsx(OptionsEditorColumn, {
|
|
29
|
+
children: /*#__PURE__*/ _jsx(LegendOptionsEditor, {
|
|
30
|
+
showValuesEditor: false,
|
|
31
|
+
value: value.legend,
|
|
32
|
+
onChange: handleLegendChange
|
|
33
|
+
})
|
|
34
|
+
}),
|
|
35
|
+
/*#__PURE__*/ _jsx(OptionsEditorColumn, {
|
|
36
|
+
children: /*#__PURE__*/ _jsx(OptionsEditorGroup, {
|
|
37
|
+
title: "Reset Settings",
|
|
38
|
+
children: /*#__PURE__*/ _jsx(Button, {
|
|
39
|
+
variant: "outlined",
|
|
40
|
+
color: "secondary",
|
|
41
|
+
onClick: ()=>{
|
|
42
|
+
onChange(produce(value, (draft)=>{
|
|
43
|
+
// reset button removes all optional panel options
|
|
44
|
+
draft.legend = undefined;
|
|
45
|
+
}));
|
|
46
|
+
},
|
|
47
|
+
children: "Reset To Defaults"
|
|
48
|
+
})
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=StatusHistoryChartOptionsEditorSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/StatusHistoryChartOptionsEditorSettings.tsx"],"sourcesContent":["// Copyright 2024 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { LegendOptionsEditor, LegendOptionsEditorProps } from '@perses-dev/plugin-system';\nimport { produce } from 'immer';\nimport { OptionsEditorGroup, OptionsEditorGrid, OptionsEditorColumn } from '@perses-dev/components';\nimport { Button } from '@mui/material';\nimport { ReactElement } from 'react';\nimport { StatusHistoryChartOptions, StatusHistroyChartEditorProps } from './status-history-model.js';\n\nexport function StatusHistoryChartOptionsEditorSettings(props: StatusHistroyChartEditorProps): ReactElement {\n const { onChange, value } = props;\n\n const handleLegendChange: LegendOptionsEditorProps['onChange'] = (newLegend) => {\n // TODO (sjcobb): fix type, add position, fix glitch\n onChange(\n produce(value, (draft: StatusHistoryChartOptions) => {\n draft.legend = newLegend;\n })\n );\n };\n\n return (\n <OptionsEditorGrid>\n <OptionsEditorColumn>\n <LegendOptionsEditor showValuesEditor={false} value={value.legend} onChange={handleLegendChange} />\n </OptionsEditorColumn>\n <OptionsEditorColumn>\n <OptionsEditorGroup title=\"Reset Settings\">\n <Button\n variant=\"outlined\"\n color=\"secondary\"\n onClick={() => {\n onChange(\n produce(value, (draft: StatusHistoryChartOptions) => {\n // reset button removes all optional panel options\n draft.legend = undefined;\n })\n );\n }}\n >\n Reset To Defaults\n </Button>\n </OptionsEditorGroup>\n </OptionsEditorColumn>\n </OptionsEditorGrid>\n );\n}\n"],"names":["LegendOptionsEditor","produce","OptionsEditorGroup","OptionsEditorGrid","OptionsEditorColumn","Button","StatusHistoryChartOptionsEditorSettings","props","onChange","value","handleLegendChange","newLegend","draft","legend","showValuesEditor","title","variant","color","onClick","undefined"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAEjC,SAASA,mBAAmB,QAAkC,4BAA4B;AAC1F,SAASC,OAAO,QAAQ,QAAQ;AAChC,SAASC,kBAAkB,EAAEC,iBAAiB,EAAEC,mBAAmB,QAAQ,yBAAyB;AACpG,SAASC,MAAM,QAAQ,gBAAgB;AAIvC,OAAO,SAASC,wCAAwCC,KAAoC;IAC1F,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGF;IAE5B,MAAMG,qBAA2D,CAACC;QAChE,oDAAoD;QACpDH,SACEP,QAAQQ,OAAO,CAACG;YACdA,MAAMC,MAAM,GAAGF;QACjB;IAEJ;IAEA,qBACE,MAACR;;0BACC,KAACC;0BACC,cAAA,KAACJ;oBAAoBc,kBAAkB;oBAAOL,OAAOA,MAAMI,MAAM;oBAAEL,UAAUE;;;0BAE/E,KAACN;0BACC,cAAA,KAACF;oBAAmBa,OAAM;8BACxB,cAAA,KAACV;wBACCW,SAAQ;wBACRC,OAAM;wBACNC,SAAS;4BACPV,SACEP,QAAQQ,OAAO,CAACG;gCACd,kDAAkD;gCAClDA,MAAMC,MAAM,GAAGM;4BACjB;wBAEJ;kCACD;;;;;;AAOX"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PanelProps } from '@perses-dev/plugin-system';
|
|
2
|
+
import { ReactElement } from 'react';
|
|
3
|
+
import { TimeSeriesData } from '@perses-dev/core';
|
|
4
|
+
import { StatusHistoryChartOptions } from './status-history-model.js';
|
|
5
|
+
export type StatusHistoryChartPanelProps = PanelProps<StatusHistoryChartOptions, TimeSeriesData>;
|
|
6
|
+
export declare function StatusHistoryPanel(props: StatusHistoryChartPanelProps): ReactElement | null;
|
|
7
|
+
//# sourceMappingURL=StatusHistoryPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusHistoryPanel.d.ts","sourceRoot":"","sources":["../../src/StatusHistoryPanel.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAsB,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,MAAM,4BAA4B,GAAG,UAAU,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC;AAEjG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,4BAA4B,GAAG,YAAY,GAAG,IAAI,CAwD3F"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Copyright 2024 The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
import { Box } from '@mui/material';
|
|
15
|
+
import { ContentWithLegend, StatusHistoryChart, useChartsTheme } from '@perses-dev/components';
|
|
16
|
+
import { validateLegendSpec } from '@perses-dev/plugin-system';
|
|
17
|
+
import { merge } from 'lodash';
|
|
18
|
+
import { useMemo } from 'react';
|
|
19
|
+
import { useStatusHistoryDataModel } from './utils/data-transform';
|
|
20
|
+
export function StatusHistoryPanel(props) {
|
|
21
|
+
const { spec, contentDimensions, queryResults } = props;
|
|
22
|
+
const legend = useMemo(()=>{
|
|
23
|
+
return spec.legend && validateLegendSpec(spec.legend) ? merge({}, spec.legend) : undefined;
|
|
24
|
+
}, [
|
|
25
|
+
spec.legend
|
|
26
|
+
]);
|
|
27
|
+
const chartsTheme = useChartsTheme();
|
|
28
|
+
const PADDING = chartsTheme.container.padding.default;
|
|
29
|
+
const { statusHistoryData, yAxisCategories, xAxisCategories, legendItems, timeScale, colors } = useStatusHistoryDataModel(queryResults, chartsTheme.echartsTheme.color, spec);
|
|
30
|
+
const adjustedContentDimensions = contentDimensions ? {
|
|
31
|
+
width: contentDimensions.width - PADDING * 2,
|
|
32
|
+
height: contentDimensions.height - PADDING * 2
|
|
33
|
+
} : undefined;
|
|
34
|
+
if (!statusHistoryData || statusHistoryData.length === 0) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return /*#__PURE__*/ _jsx(Box, {
|
|
38
|
+
sx: {
|
|
39
|
+
padding: `${PADDING}px`
|
|
40
|
+
},
|
|
41
|
+
children: /*#__PURE__*/ _jsx(ContentWithLegend, {
|
|
42
|
+
width: adjustedContentDimensions?.width ?? 400,
|
|
43
|
+
height: adjustedContentDimensions?.height ?? 1000,
|
|
44
|
+
legendSize: legend?.size,
|
|
45
|
+
legendProps: legend && {
|
|
46
|
+
options: legend,
|
|
47
|
+
data: legendItems || [],
|
|
48
|
+
selectedItems: 'ALL',
|
|
49
|
+
onSelectedItemsChange: ()=>null
|
|
50
|
+
},
|
|
51
|
+
children: ({ height, width })=>{
|
|
52
|
+
return /*#__PURE__*/ _jsx(Box, {
|
|
53
|
+
sx: {
|
|
54
|
+
height,
|
|
55
|
+
width
|
|
56
|
+
},
|
|
57
|
+
children: /*#__PURE__*/ _jsx(StatusHistoryChart, {
|
|
58
|
+
xAxisCategories: xAxisCategories,
|
|
59
|
+
yAxisCategories: yAxisCategories,
|
|
60
|
+
data: statusHistoryData,
|
|
61
|
+
timeScale: timeScale,
|
|
62
|
+
height: height,
|
|
63
|
+
colors: colors
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=StatusHistoryPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/StatusHistoryPanel.tsx"],"sourcesContent":["// Copyright 2024 The Perses Authors\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport { Box } from '@mui/material';\nimport { ContentWithLegend, StatusHistoryChart, useChartsTheme } from '@perses-dev/components';\nimport { PanelProps, validateLegendSpec } from '@perses-dev/plugin-system';\nimport { merge } from 'lodash';\nimport { ReactElement, useMemo } from 'react';\nimport { TimeSeriesData } from '@perses-dev/core';\nimport { useStatusHistoryDataModel } from './utils/data-transform';\nimport { StatusHistoryChartOptions } from './status-history-model.js';\n\nexport type StatusHistoryChartPanelProps = PanelProps<StatusHistoryChartOptions, TimeSeriesData>;\n\nexport function StatusHistoryPanel(props: StatusHistoryChartPanelProps): ReactElement | null {\n const { spec, contentDimensions, queryResults } = props;\n\n const legend = useMemo(() => {\n return spec.legend && validateLegendSpec(spec.legend) ? merge({}, spec.legend) : undefined;\n }, [spec.legend]);\n\n const chartsTheme = useChartsTheme();\n const PADDING = chartsTheme.container.padding.default;\n\n const { statusHistoryData, yAxisCategories, xAxisCategories, legendItems, timeScale, colors } =\n useStatusHistoryDataModel(queryResults, chartsTheme.echartsTheme.color as string[], spec);\n\n const adjustedContentDimensions: typeof contentDimensions = contentDimensions\n ? {\n width: contentDimensions.width - PADDING * 2,\n height: contentDimensions.height - PADDING * 2,\n }\n : undefined;\n\n if (!statusHistoryData || statusHistoryData.length === 0) {\n return null;\n }\n\n return (\n <Box sx={{ padding: `${PADDING}px` }}>\n <ContentWithLegend\n width={adjustedContentDimensions?.width ?? 400}\n height={adjustedContentDimensions?.height ?? 1000}\n legendSize={legend?.size}\n legendProps={\n legend && {\n options: legend,\n data: legendItems || [],\n selectedItems: 'ALL',\n onSelectedItemsChange: () => null,\n }\n }\n >\n {({ height, width }) => {\n return (\n <Box sx={{ height, width }}>\n <StatusHistoryChart\n xAxisCategories={xAxisCategories}\n yAxisCategories={yAxisCategories}\n data={statusHistoryData}\n timeScale={timeScale}\n height={height}\n colors={colors}\n />\n </Box>\n );\n }}\n </ContentWithLegend>\n </Box>\n );\n}\n"],"names":["Box","ContentWithLegend","StatusHistoryChart","useChartsTheme","validateLegendSpec","merge","useMemo","useStatusHistoryDataModel","StatusHistoryPanel","props","spec","contentDimensions","queryResults","legend","undefined","chartsTheme","PADDING","container","padding","default","statusHistoryData","yAxisCategories","xAxisCategories","legendItems","timeScale","colors","echartsTheme","color","adjustedContentDimensions","width","height","length","sx","legendSize","size","legendProps","options","data","selectedItems","onSelectedItemsChange"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;AAEjC,SAASA,GAAG,QAAQ,gBAAgB;AACpC,SAASC,iBAAiB,EAAEC,kBAAkB,EAAEC,cAAc,QAAQ,yBAAyB;AAC/F,SAAqBC,kBAAkB,QAAQ,4BAA4B;AAC3E,SAASC,KAAK,QAAQ,SAAS;AAC/B,SAAuBC,OAAO,QAAQ,QAAQ;AAE9C,SAASC,yBAAyB,QAAQ,yBAAyB;AAKnE,OAAO,SAASC,mBAAmBC,KAAmC;IACpE,MAAM,EAAEC,IAAI,EAAEC,iBAAiB,EAAEC,YAAY,EAAE,GAAGH;IAElD,MAAMI,SAASP,QAAQ;QACrB,OAAOI,KAAKG,MAAM,IAAIT,mBAAmBM,KAAKG,MAAM,IAAIR,MAAM,CAAC,GAAGK,KAAKG,MAAM,IAAIC;IACnF,GAAG;QAACJ,KAAKG,MAAM;KAAC;IAEhB,MAAME,cAAcZ;IACpB,MAAMa,UAAUD,YAAYE,SAAS,CAACC,OAAO,CAACC,OAAO;IAErD,MAAM,EAAEC,iBAAiB,EAAEC,eAAe,EAAEC,eAAe,EAAEC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAE,GAC3FlB,0BAA0BK,cAAcG,YAAYW,YAAY,CAACC,KAAK,EAAcjB;IAEtF,MAAMkB,4BAAsDjB,oBACxD;QACEkB,OAAOlB,kBAAkBkB,KAAK,GAAGb,UAAU;QAC3Cc,QAAQnB,kBAAkBmB,MAAM,GAAGd,UAAU;IAC/C,IACAF;IAEJ,IAAI,CAACM,qBAAqBA,kBAAkBW,MAAM,KAAK,GAAG;QACxD,OAAO;IACT;IAEA,qBACE,KAAC/B;QAAIgC,IAAI;YAAEd,SAAS,GAAGF,QAAQ,EAAE,CAAC;QAAC;kBACjC,cAAA,KAACf;YACC4B,OAAOD,2BAA2BC,SAAS;YAC3CC,QAAQF,2BAA2BE,UAAU;YAC7CG,YAAYpB,QAAQqB;YACpBC,aACEtB,UAAU;gBACRuB,SAASvB;gBACTwB,MAAMd,eAAe,EAAE;gBACvBe,eAAe;gBACfC,uBAAuB,IAAM;YAC/B;sBAGD,CAAC,EAAET,MAAM,EAAED,KAAK,EAAE;gBACjB,qBACE,KAAC7B;oBAAIgC,IAAI;wBAAEF;wBAAQD;oBAAM;8BACvB,cAAA,KAAC3B;wBACCoB,iBAAiBA;wBACjBD,iBAAiBA;wBACjBgB,MAAMjB;wBACNI,WAAWA;wBACXM,QAAQA;wBACRL,QAAQA;;;YAIhB;;;AAIR"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OptionsEditorProps } from '@perses-dev/plugin-system';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
import { StatusHistoryChartOptions } from './status-history-model';
|
|
4
|
+
export type StatusHistoryValueMappingEditorProps = OptionsEditorProps<StatusHistoryChartOptions>;
|
|
5
|
+
export declare const StatusHistoryValueMappingEditor: FC<StatusHistoryValueMappingEditorProps>;
|
|
6
|
+
//# sourceMappingURL=StatusHistoryValueMappingEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusHistoryValueMappingEditor.d.ts","sourceRoot":"","sources":["../../src/StatusHistoryValueMappingEditor.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,MAAM,oCAAoC,GAAG,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;AAEjG,eAAO,MAAM,+BAA+B,EAAE,EAAE,CAAC,oCAAoC,CAMpF,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Copyright 2024 The Perses Authors
|
|
2
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
// you may not use this file except in compliance with the License.
|
|
4
|
+
// You may obtain a copy of the License at
|
|
5
|
+
//
|
|
6
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
//
|
|
8
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
// See the License for the specific language governing permissions and
|
|
12
|
+
// limitations under the License.
|
|
13
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
|
+
import { ValueMappingsEditor } from '@perses-dev/components';
|
|
15
|
+
export const StatusHistoryValueMappingEditor = ({ onChange, value })=>{
|
|
16
|
+
function handleValueMappingChange(mappings) {
|
|
17
|
+
onChange({
|
|
18
|
+
...value,
|
|
19
|
+
mappings
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return /*#__PURE__*/ _jsx(ValueMappingsEditor, {
|
|
23
|
+
mappings: value.mappings ?? [],
|
|
24
|
+
onChange: handleValueMappingChange
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=StatusHistoryValueMappingEditor.js.map
|