!e.skipOnParamError&&e.caseSensitive===u&&e.prefix===d&&e.suffix===f));if(p)i=p;else{const e=ie(1,n.fullPath??n.from,u,d,f);i=e,e.depth=a,e.parent=o,o.dynamic??(o.dynamic=[]),o.dynamic.push(e)}break}case 3:{const t=r.substring(s,e[1]),c=r.substring(e[4],l),u=w&&!(!t&&!c),d=t?u?t:t.toLowerCase():void 0,f=c?u?c:c.toLowerCase():void 0,p=!S&&(null==(m=o.optional)?void 0:m.find(e=>!e.skipOnParamError&&e.caseSensitive===u&&e.prefix===d&&e.suffix===f));if(p)i=p;else{const e=ie(3,n.fullPath??n.from,u,d,f);i=e,e.parent=o,e.depth=a,o.optional??(o.optional=[]),o.optional.push(e)}break}case 2:{const t=r.substring(s,e[1]),c=r.substring(e[4],l),u=w&&!(!t&&!c),d=t?u?t:t.toLowerCase():void 0,f=c?u?c:c.toLowerCase():void 0,p=ie(2,n.fullPath??n.from,u,d,f);i=p,p.parent=o,p.depth=a,o.wildcard??(o.wildcard=[]),o.wildcard.push(p)}}o=i}if(S&&n.children&&!n.isRoot&&n.id&&95===n.id.charCodeAt(n.id.lastIndexOf("/")+1)){const e=ae(n.fullPath??n.from);e.kind=5,e.parent=o,a++,e.depth=a,o.pathless??(o.pathless=[]),o.pathless.push(e),o=e}const k=(n.path||!n.children)&&!n.isRoot;if(k&&r.endsWith("/")){const e=ae(n.fullPath??n.from);e.kind=4,e.parent=o,a++,e.depth=a,o.index=e,o=e}o.parse=(null==(v=null==(g=n.options)?void 0:g.params)?void 0:v.parse)??null,o.skipOnParamError=S,o.parsingPriority=(null==(x=null==(y=n.options)?void 0:y.skipRouteOnParseError)?void 0:x.priority)??0,k&&!o.route&&(o.route=n,o.fullPath=n.fullPath??n.from)}if(n.children)for(const w of n.children)ne(e,t,w,b,o,a,i)}function re(e,t){if(e.skipOnParamError&&!t.skipOnParamError)return-1;if(!e.skipOnParamError&&t.skipOnParamError)return 1;if(e.skipOnParamError&&t.skipOnParamError&&(e.parsingPriority||t.parsingPriority))return t.parsingPriority-e.parsingPriority;if(e.prefix&&t.prefix&&e.prefix!==t.prefix){if(e.prefix.startsWith(t.prefix))return-1;if(t.prefix.startsWith(e.prefix))return 1}if(e.suffix&&t.suffix&&e.suffix!==t.suffix){if(e.suffix.endsWith(t.suffix))return-1;if(t.suffix.endsWith(e.suffix))return 1}return e.prefix&&!t.prefix?-1:!e.prefix&&t.prefix?1:e.suffix&&!t.suffix?-1:!e.suffix&&t.suffix?1:e.caseSensitive&&!t.caseSensitive?-1:!e.caseSensitive&&t.caseSensitive?1:0}function oe(e){var t,n,r;if(e.pathless)for(const o of e.pathless)oe(o);if(e.static)for(const o of e.static.values())oe(o);if(e.staticInsensitive)for(const o of e.staticInsensitive.values())oe(o);if(null==(t=e.dynamic)?void 0:t.length){e.dynamic.sort(re);for(const t of e.dynamic)oe(t)}if(null==(n=e.optional)?void 0:n.length){e.optional.sort(re);for(const t of e.optional)oe(t)}if(null==(r=e.wildcard)?void 0:r.length){e.wildcard.sort(re);for(const t of e.wildcard)oe(t)}}function ae(e){return{kind:0,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:e,parent:null,parse:null,skipOnParamError:!1,parsingPriority:0}}function ie(e,t,n,r,o){return{kind:e,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:t,parent:null,parse:null,skipOnParamError:!1,parsingPriority:0,caseSensitive:n,prefix:r,suffix:o}}function se(e,t,n=!1){const r=e.split("/"),o=function(e,t,n,r){if("/"===e&&n.index)return{node:n.index,skipped:0};const o=!T(t),a=o&&"/"!==e,i=t.length-(o?1:0),s=[{node:n,index:1,skipped:0,depth:1,statics:1,dynamics:0,optionals:0}];let l=null,c=null,u=null;for(;s.length;){const n=s.pop(),{node:o,index:d,skipped:f,depth:p,statics:h,dynamics:m,optionals:g}=n;let{extract:v,rawParams:y,parsedParams:x}=n;if(o.skipOnParamError){if(!ce(e,t,n))continue;y=n.rawParams,v=n.extract,x=n.parsedParams}r&&o.route&&4!==o.kind&&ue(c,n)&&(c=n);const b=d===i;if(b&&(o.route&&!a&&ue(u,n)&&(u=n),!(o.optional||o.wildcard||o.index||o.pathless)))continue;const w=b?void 0:t[d];let S;if(b&&o.index){const n={node:o.index,index:d,skipped:f,depth:p+1,statics:h,dynamics:m,optionals:g,extract:v,rawParams:y,parsedParams:x};let r=!0;if(o.index.skipOnParamError&&(ce(e,t,n)||(r=!1)),r){if(h===i&&!m&&!g&&!f)return n;ue(u,n)&&(u=n)}}if(o.wildcard&&ue(l,n))for(const r of o.wildcard){const{prefix:n,suffix:o}=r;if(n){if(b)continue;if(!(r.caseSensitive?w:S??(S=w.toLowerCase())).startsWith(n))continue}if(o){if(b)continue;const e=t.slice(d).join("/").slice(-o.length);if((r.caseSensitive?e:e.toLowerCase())!==o)continue}const a={node:r,index:i,skipped:f,depth:p,statics:h,dynamics:m,optionals:g,extract:v,rawParams:y,parsedParams:x};if(!r.skipOnParamError||ce(e,t,a)){l=a;break}}if(o.optional){const e=f|1<=0;n--){const r=o.optional[n];s.push({node:r,index:d,skipped:e,depth:t,statics:h,dynamics:m,optionals:g,extract:v,rawParams:y,parsedParams:x})}if(!b)for(let n=o.optional.length-1;n>=0;n--){const e=o.optional[n],{prefix:r,suffix:a}=e;if(r||a){const t=e.caseSensitive?w:S??(S=w.toLowerCase());if(r&&!t.startsWith(r))continue;if(a&&!t.endsWith(a))continue}s.push({node:e,index:d+1,skipped:f,depth:t,statics:h,dynamics:m,optionals:g+1,extract:v,rawParams:y,parsedParams:x})}}if(!b&&o.dynamic&&w)for(let e=o.dynamic.length-1;e>=0;e--){const t=o.dynamic[e],{prefix:n,suffix:r}=t;if(n||r){const e=t.caseSensitive?w:S??(S=w.toLowerCase());if(n&&!e.startsWith(n))continue;if(r&&!e.endsWith(r))continue}s.push({node:t,index:d+1,skipped:f,depth:p+1,statics:h,dynamics:m+1,optionals:g,extract:v,rawParams:y,parsedParams:x})}if(!b&&o.staticInsensitive){const e=o.staticInsensitive.get(S??(S=w.toLowerCase()));e&&s.push({node:e,index:d+1,skipped:f,depth:p+1,statics:h+1,dynamics:m,optionals:g,extract:v,rawParams:y,parsedParams:x})}if(!b&&o.static){const e=o.static.get(w);e&&s.push({node:e,index:d+1,skipped:f,depth:p+1,statics:h+1,dynamics:m,optionals:g,extract:v,rawParams:y,parsedParams:x})}if(o.pathless){const e=p+1;for(let t=o.pathless.length-1;t>=0;t--){const n=o.pathless[t];s.push({node:n,index:d,skipped:f,depth:e,statics:h,dynamics:m,optionals:g,extract:v,rawParams:y,parsedParams:x})}}}if(u&&l)return ue(l,u)?u:l;if(u)return u;if(l)return l;if(r&&c){let n=c.index;for(let e=0;ee.statics||t.statics===e.statics&&(t.dynamics>e.dynamics||t.dynamics===e.dynamics&&(t.optionals>e.optionals||t.optionals===e.optionals&&((4===t.node.kind)>(4===e.node.kind)||4===t.node.kind==(4===e.node.kind)&&t.depth>e.depth))))}function de(e){return fe(e.filter(e=>void 0!==e).join("/"))}function fe(e){return e.replace(/\/{2,}/g,"/")}function pe(e){return"/"===e?e:e.replace(/^\/{1,}/,"")}function he(e){const t=e.length;return t>1&&"/"===e[t-1]?e.replace(/\/{1,}$/,""):e}function me(e){return he(pe(e))}function ge(e,t){return(null==e?void 0:e.endsWith("/"))&&"/"!==e&&e!==`${t}/`?e.slice(0,-1):e}function ve(e,t,n){const r=t[e];return"string"!=typeof r?r:"_splat"===e?/^[a-zA-Z0-9\-._~!/]*$/.test(r)?r:r.split("/").map(e=>xe(e,n)).join("/"):xe(r,n)}function ye({path:e,params:t,decoder:n,...r}){let o=!1;const a=Object.create(null);if(!e||"/"===e)return{interpolatedPath:"/",usedParams:a,isMissingParams:o};if(!e.includes("$"))return{interpolatedPath:e,usedParams:a,isMissingParams:o};const i=e.length;let s,l=0,c="";for(;l{t=D(e,t)||t},persist:()=>{try{e.setItem("tsr-scroll-restoration-v1_3",JSON.stringify(t))}catch{}}}}(),Se=e=>e.state.__TSR_key||e.href;function ke(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}var Ce=!1,Ne="window",je="data-scroll-restoration-id";function _e(e){return e?"false"!==e&&("true"===e||(0*+e==0&&+e+""===e?+e:e)):""}var Ee,Pe=(Ee=JSON.parse,e=>{"?"===e[0]&&(e=e.substring(1));const t=function(e){const t=new URLSearchParams(e),n=Object.create(null);for(const[r,o]of t.entries()){const e=n[r];null==e?n[r]=_e(o):Array.isArray(e)?e.push(_e(o)):n[r]=[e,_e(o)]}return n}(e);for(const r in t){const e=t[r];if("string"==typeof e)try{t[r]=Ee(e)}catch(n){}}return t}),Re=function(e,t){const n="function"==typeof t;function r(r){if("object"==typeof r&&null!==r)try{return e(r)}catch(o){}else if(n&&"string"==typeof r)try{return t(r),e(r)}catch(o){}return r}return e=>{const t=function(e,t=String){const n=new URLSearchParams;for(const r in e){const o=e[r];void 0!==o&&n.set(r,t(o))}return n.toString()}(e,r);return t?`?${t}`:""}}(JSON.stringify,JSON.parse);var Le="__root__";function Fe(e){return e instanceof Response&&!!e.options}function Ae(e,t){var n;const r=null==(n=null==e?void 0:e.input)?void 0:n.call(e,{url:t});if(r){if("string"==typeof r)return new URL(r);if(r instanceof URL)return r}return t}function Me(e,t){var n;const r=null==(n=null==e?void 0:e.output)?void 0:n.call(e,{url:t});if(r){if("string"==typeof r)return new URL(r);if(r instanceof URL)return r}return t}function Te(e,t){const n=[];for(const r of t){const t=e.get(r);t&&n.push(t.get())}return n}function De(e,t,n,r,o){const a=e.map(e=>e.id),i=new Set(a);o(()=>{for(const e of t.keys())i.has(e)||t.delete(e);for(const n of e){const e=t.get(n.id);if(!e){const e=r(n);e.routeId=n.routeId,t.set(n.id,e);continue}e.routeId=n.routeId,e.get()!==n&&e.set(n)}(function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{var t;if(!e.rendered)return e.rendered=!0,null==(t=e.onReady)?void 0:t.call(e)},Ie=(e,t)=>!(!e.preload||e.router.stores.matchStores.has(t)),ze=(e,t,n=!0)=>{const r={...e.router.options.context??{}},o=n?t:t-1;for(let a=0;a<=o;a++){const t=e.matches[a];if(!t)continue;const n=e.router.getMatch(t.id);n&&Object.assign(r,n.__routeContext,n.__beforeLoadContext)}return r},Be=(e,t)=>{if(!e.matches.length)return;const n=t.routeId,r=e.matches.findIndex(t=>t.routeId===e.router.routeTree.id),o=r>=0?r:0;let a=n?e.matches.findIndex(e=>e.routeId===n):e.firstBadMatchIndex??e.matches.length-1;a<0&&(a=o);for(let i=a;i>=0;i--){const t=e.matches[i];if(e.router.looseRoutesById[t.routeId].options.notFoundComponent)return i}return n?a:o},$e=(e,t,n)=>{var r,o,a;if(Fe(n)||be(n)){if(Fe(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;throw t&&(null==(r=t._nonReactive.beforeLoadPromise)||r.resolve(),null==(o=t._nonReactive.loaderPromise)||o.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0,t._nonReactive.error=n,e.updateMatch(t.id,r=>({...r,status:Fe(n)?"redirected":be(n)?"notFound":"pending"===r.status?"success":r.status,context:ze(e,t.index),isFetching:!1,error:n})),be(n)&&!n.routeId&&(n.routeId=t.routeId),null==(a=t._nonReactive.loadPromise)||a.resolve()),Fe(n)&&(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n)),n}},We=(e,t)=>{const n=e.router.getMatch(t);return!n||!!n._nonReactive.dehydrated},Ue=(e,t,n)=>{const r=ze(e,n);e.updateMatch(t,e=>({...e,context:r}))},Ve=(e,t,n,r)=>{var o,a;const{id:i,routeId:s}=e.matches[t],l=e.router.looseRoutesById[s];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??(e.firstBadMatchIndex=t),$e(e,e.router.getMatch(i),n);try{null==(a=(o=l.options).onError)||a.call(o,n)}catch(c){n=c,$e(e,e.router.getMatch(i),n)}e.updateMatch(i,e=>{var t,r;return null==(t=e._nonReactive.beforeLoadPromise)||t.resolve(),e._nonReactive.beforeLoadPromise=void 0,null==(r=e._nonReactive.loadPromise)||r.resolve(),{...e,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}}),e.preload||Fe(n)||be(n)||(e.serialError??(e.serialError=n))},He=(e,t,n,r)=>{var o;if(void 0!==r._nonReactive.pendingTimeout)return;const a=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!Ie(e,t)&&(n.options.loader||n.options.beforeLoad||et(n))&&"number"==typeof a&&a!==1/0&&(n.options.pendingComponent??(null==(o=e.router.options)?void 0:o.defaultPendingComponent))){const t=setTimeout(()=>{Oe(e)},a);r._nonReactive.pendingTimeout=t}},Ke=(e,t)=>{const{id:n,routeId:r}=e.matches[t],o=e.router.looseRoutesById[r],a=()=>((e,t,n,r)=>{const o=e.router.getMatch(t);let a=o._nonReactive.loadPromise;o._nonReactive.loadPromise=q(()=>{null==a||a.resolve(),a=void 0});const{paramsError:i,searchError:s}=o;i&&Ve(e,n,i,"PARSE_PARAMS"),s&&Ve(e,n,s,"VALIDATE_SEARCH"),He(e,t,r,o);const l=new AbortController;let c=!1;const u=()=>{c||(c=!0,e.updateMatch(t,e=>({...e,isFetching:"beforeLoad",fetchCount:e.fetchCount+1,abortController:l})))},d=()=>{var n;null==(n=o._nonReactive.beforeLoadPromise)||n.resolve(),o._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,e=>({...e,isFetching:!1}))};if(!r.options.beforeLoad)return void e.router.batch(()=>{u(),d()});o._nonReactive.beforeLoadPromise=q();const f={...ze(e,n,!1),...o.__routeContext},{search:p,params:h,cause:m}=o,g=Ie(e,t),v={search:p,abortController:l,params:h,preload:g,context:f,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:g?"preload":m,matches:e.matches,routeId:r.id,...e.router.options.additionalContext},y=r=>{void 0!==r?((Fe(r)||be(r))&&(u(),Ve(e,n,r,"BEFORE_LOAD")),e.router.batch(()=>{u(),e.updateMatch(t,e=>({...e,__beforeLoadContext:r})),d()})):e.router.batch(()=>{u(),d()})};let x;try{if(x=r.options.beforeLoad(v),G(x))return u(),x.catch(t=>{Ve(e,n,t,"BEFORE_LOAD")}).then(y)}catch(b){u(),Ve(e,n,b,"BEFORE_LOAD")}y(x)})(e,n,t,o),i=()=>{if(We(e,n))return;const t=((e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;He(e,t,n,r);const o=()=>{const n=e.router.getMatch(t);!n.preload||"redirected"!==n.status&&"notFound"!==n.status||$e(e,n,n.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(o):o()})(e,n,o);return G(t)?t.then(a):a()};return i()},qe=(e,t,n)=>{var r,o,a,i,s,l;const c=e.router.getMatch(t);if(!c)return;if(!n.options.head&&!n.options.scripts&&!n.options.headers)return;const u={ssr:e.router.options.ssr,matches:e.matches,match:c,params:c.params,loaderData:c.loaderData};return Promise.all([null==(o=(r=n.options).head)?void 0:o.call(r,u),null==(i=(a=n.options).scripts)?void 0:i.call(a,u),null==(l=(s=n.options).headers)?void 0:l.call(s,u)]).then(([e,t,n])=>({meta:null==e?void 0:e.meta,links:null==e?void 0:e.links,headScripts:null==e?void 0:e.scripts,headers:n,scripts:t,styles:null==e?void 0:e.styles}))},Ge=(e,t,n,r,o)=>{const a=t[r-1],{params:i,loaderDeps:s,abortController:l,cause:c}=e.router.getMatch(n),u=ze(e,r),d=Ie(e,n);return{params:i,deps:s,preload:!!d,parentMatchPromise:a,abortController:l,context:u,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),cause:d?"preload":c,route:o,...e.router.options.additionalContext}},Qe=async(e,t,n,r,o)=>{var a,i,s,l,c;try{const f=e.router.getMatch(n);try{Ze(o);const a=o.options.loader,i="function"==typeof a?a:null==a?void 0:a.handler,s=null==i?void 0:i(Ge(e,t,n,r,o)),l=!!i&&G(s);if((l||o._lazyPromise||o._componentsPromise||o.options.head||o.options.scripts||o.options.headers||f._nonReactive.minPendingPromise)&&e.updateMatch(n,e=>({...e,isFetching:"loader"})),i){const t=l?await s:s;$e(e,e.router.getMatch(n),t),void 0!==t&&e.updateMatch(n,e=>({...e,loaderData:t}))}o._lazyPromise&&await o._lazyPromise;const c=f._nonReactive.minPendingPromise;c&&await c,o._componentsPromise&&await o._componentsPromise,e.updateMatch(n,t=>({...t,error:void 0,context:ze(e,r),status:"success",isFetching:!1,updatedAt:Date.now()}))}catch(u){let t=u;if("AbortError"===(null==t?void 0:t.name))return f.abortController.signal.aborted?(null==(a=f._nonReactive.loaderPromise)||a.resolve(),void(f._nonReactive.loaderPromise=void 0)):void e.updateMatch(n,t=>({...t,status:"pending"===t.status?"success":t.status,isFetching:!1,context:ze(e,r)}));const p=f._nonReactive.minPendingPromise;p&&await p,be(u)&&await(null==(s=null==(i=o.options.notFoundComponent)?void 0:i.preload)?void 0:s.call(i)),$e(e,e.router.getMatch(n),u);try{null==(c=(l=o.options).onError)||c.call(l,u)}catch(d){t=d,$e(e,e.router.getMatch(n),d)}Fe(t)||be(t)||await Ze(o,["errorComponent"]),e.updateMatch(n,n=>({...n,error:t,context:ze(e,r),status:"error",isFetching:!1}))}}catch(f){const t=e.router.getMatch(n);t&&(t._nonReactive.loaderPromise=void 0),$e(e,t,f)}},Ye=async(e,t,n)=>{var r,o,a,i;async function s(r,o,a,i,s){const c=Date.now()-o.updatedAt,f=r?s.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:s.options.staleTime??e.router.options.defaultStaleTime??0,p=s.options.shouldReload,m="function"==typeof p?p(Ge(e,t,l,n,s)):p,{status:g,invalid:v}=i,y=c>=f&&(!!e.forceStaleReload||"enter"===i.cause||void 0!==a&&a!==i.id);u="success"===g&&(v||(m??y)),r&&!1===s.options.preload||(u&&!e.sync&&h?(d=!0,(async()=>{var r,o;try{await Qe(e,t,l,n,s);const a=e.router.getMatch(l);null==(r=a._nonReactive.loaderPromise)||r.resolve(),null==(o=a._nonReactive.loadPromise)||o.resolve(),a._nonReactive.loaderPromise=void 0,a._nonReactive.loadPromise=void 0}catch(a){Fe(a)&&await e.router.navigate(a.options)}})()):"success"!==g||u?await Qe(e,t,l,n,s):Ue(e,l,n))}const{id:l,routeId:c}=e.matches[n];let u=!1,d=!1;const f=e.router.looseRoutesById[c],p=f.options.loader,h="blocking"!==(("function"==typeof p||null==p?void 0:p.staleReloadMode)??e.router.options.defaultStaleReloadMode);if(We(e,l)){if(!e.router.getMatch(l))return e.matches[n];Ue(e,l,n)}else{const t=e.router.getMatch(l),a=e.router.stores.matchesId.get()[n],i=(null==(r=a&&e.router.stores.matchStores.get(a)||null)?void 0:r.routeId)===c?a:null==(o=e.router.stores.matches.get().find(e=>e.routeId===c))?void 0:o.id,u=Ie(e,l);if(t._nonReactive.loaderPromise){if("success"===t.status&&!e.sync&&!t.preload&&h)return t;await t._nonReactive.loaderPromise;const n=e.router.getMatch(l),r=n._nonReactive.error||n.error;r&&$e(e,n,r),"pending"===n.status&&await s(u,t,i,n,f)}else{const n=u&&!e.router.stores.matchStores.has(l),r=e.router.getMatch(l);r._nonReactive.loaderPromise=q(),n!==r.preload&&e.updateMatch(l,e=>({...e,preload:n})),await s(u,t,i,r,f)}}const m=e.router.getMatch(l);d||(null==(a=m._nonReactive.loaderPromise)||a.resolve(),null==(i=m._nonReactive.loadPromise)||i.resolve(),m._nonReactive.loadPromise=void 0),clearTimeout(m._nonReactive.pendingTimeout),m._nonReactive.pendingTimeout=void 0,d||(m._nonReactive.loaderPromise=void 0),m._nonReactive.dehydrated=void 0;const g=!!d&&m.isFetching;return g!==m.isFetching||!1!==m.invalid?(e.updateMatch(l,e=>({...e,isFetching:g,invalid:!1})),e.router.getMatch(l)):m};async function Xe(e){var t,n;const r=e,o=[];var a;let i;(a=r.router).stores.matchesId.get().some(e=>{var t;return null==(t=a.stores.matchStores.get(e))?void 0:t.get()._forcePending})&&Oe(r);for(let g=0;g({...e,...i?{status:"success",globalNotFound:!0,error:void 0}:{status:"notFound",error:f},isFetching:!1})),p=e,await Ze(o,["notFoundComponent"])}else if(!r.preload){const e=r.matches[0];e.globalNotFound||(null==(n=r.router.getMatch(e.id))?void 0:n.globalNotFound)&&r.updateMatch(e.id,e=>({...e,globalNotFound:!1,error:void 0}))}if(r.serialError&&void 0!==r.firstBadMatchIndex){const e=r.router.looseRoutesById[r.matches[r.firstBadMatchIndex].routeId];await Ze(e,["errorComponent"])}for(let g=0;g<=p;g++){const{id:e,routeId:t}=r.matches[g],n=r.router.looseRoutesById[t];try{const t=qe(r,e,n);if(t){const n=await t;r.updateMatch(e,e=>({...e,...n}))}}catch(m){console.error(`Error executing head for route ${t}:`,m)}}const h=Oe(r);if(G(h)&&await h,f)throw f;if(r.serialError&&!r.preload&&!r.onReady)throw r.serialError;return r.matches}function Je(e,t){const n=t.map(t=>{var n,r;return null==(r=null==(n=e.options[t])?void 0:n.preload)?void 0:r.call(n)}).filter(Boolean);if(0!==n.length)return Promise.all(n)}function Ze(e,t=tt){e._lazyLoaded||void 0!==e._lazyPromise||(e.lazyFn?e._lazyPromise=e.lazyFn().then(t=>{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0);const n=()=>e._componentsLoaded?void 0:t===tt?(()=>{if(void 0===e._componentsPromise){const t=Je(e,tt);t?e._componentsPromise=t.then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0}):e._componentsLoaded=!0}return e._componentsPromise})():Je(e,t);return e._lazyPromise?e._lazyPromise.then(n):n()}function et(e){var t;for(const n of tt)if(null==(t=e.options[n])?void 0:t.preload)return!0;return!1}var tt=["component","errorComponent","pendingComponent","notFoundComponent"],nt="__TSR_index",rt="popstate",ot="beforeunload";function at(e,t){t||(t={});const n=lt();return{...t,key:n,__TSR_key:n,[nt]:e}}function it(e){var t,n;const r=(null==e?void 0:e.window)??("undefined"!=typeof document?window:void 0),o=r.history.pushState,a=r.history.replaceState;let i=[];const s=()=>i,l=(null==e?void 0:e.createHref)??(e=>e),c=(null==e?void 0:e.parseLocation)??(()=>st(`${r.location.pathname}${r.location.search}${r.location.hash}`,r.history.state));if(!(null==(t=r.history.state)?void 0:t.__TSR_key)&&!(null==(n=r.history.state)?void 0:n.key)){const e=lt();r.history.replaceState({[nt]:0,key:e,__TSR_key:e},"")}let u,d=c(),f=!1,p=!1,h=!1,m=!1;let g,v;const y=()=>{g&&(k._ignoreSubscribers=!0,(g.isPush?r.history.pushState:r.history.replaceState)(g.state,"",g.href),k._ignoreSubscribers=!1,g=void 0,v=void 0,u=void 0)},x=(e,t,n)=>{const r=l(t);v||(u=d),d=st(t,n),g={href:r,state:n,isPush:(null==g?void 0:g.isPush)||"push"===e},v||(v=Promise.resolve().then(()=>y()))},b=e=>{d=c(),k.notify({type:e})},w=async()=>{if(p)return void(p=!1);const e=c(),t=e.state[nt]-d.state[nt],n=-1===t,o=!(1===t)&&!n||f;f=!1;const a=o?"GO":n?"BACK":"FORWARD",i=o?{type:"GO",index:t}:{type:n?"BACK":"FORWARD"};if(h)h=!1;else{const t=s();if("undefined"!=typeof document&&t.length)for(const n of t)if(await n.blockerFn({currentLocation:d,nextLocation:e,action:a}))return p=!0,r.history.go(1),void k.notify(i)}d=c(),k.notify(i)},S=e=>{if(m)return void(m=!1);let t=!1;const n=s();if("undefined"!=typeof document&&n.length)for(const r of n){const e=r.enableBeforeUnload??!0;if(!0===e){t=!0;break}if("function"==typeof e&&!0===e()){t=!0;break}}return t?(e.preventDefault(),e.returnValue=""):void 0},k=function(e){let t=e.getLocation();const n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},o=n=>{e.notifyOnIndexChange??1?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...o})=>{var a,i;if(null==r?void 0:r.ignoreBlocker)return void n();const s=(null==(a=e.getBlockers)?void 0:a.call(e))??[],l="PUSH"===o.type||"REPLACE"===o.type;if("undefined"!=typeof document&&s.length&&l)for(const c of s){const n=st(o.path,o.state);if(await c.blockerFn({currentLocation:t,nextLocation:n,action:o.type}))return void(null==(i=e.onBlocked)||i.call(e))}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,o,i)=>{const s=t.state[nt];o=at(s+1,o),a({task:()=>{e.pushState(n,o),r({type:"PUSH"})},navigateOpts:i,type:"PUSH",path:n,state:o})},replace:(n,o,i)=>{const s=t.state[nt];o=at(s,o),a({task:()=>{e.replaceState(n,o),r({type:"REPLACE"})},navigateOpts:i,type:"REPLACE",path:n,state:o})},go:(t,n)=>{a({task:()=>{e.go(t),o({type:"GO",index:t})},navigateOpts:n,type:"GO"})},back:t=>{a({task:()=>{e.back((null==t?void 0:t.ignoreBlocker)??!1),o({type:"BACK"})},navigateOpts:t,type:"BACK"})},forward:t=>{a({task:()=>{e.forward((null==t?void 0:t.ignoreBlocker)??!1),o({type:"FORWARD"})},navigateOpts:t,type:"FORWARD"})},canGoBack:()=>0!==t.state[nt],createHref:t=>e.createHref(t),block:t=>{var n;if(!e.setBlockers)return()=>{};const r=(null==(n=e.getBlockers)?void 0:n.call(e))??[];return e.setBlockers([...r,t]),()=>{var n,r;const o=(null==(n=e.getBlockers)?void 0:n.call(e))??[];null==(r=e.setBlockers)||r.call(e,o.filter(e=>e!==t))}},flush:()=>{var t;return null==(t=e.flush)?void 0:t.call(e)},destroy:()=>{var t;return null==(t=e.destroy)?void 0:t.call(e)},notify:r}}({getLocation:()=>d,getLength:()=>r.history.length,pushState:(e,t)=>x("push",e,t),replaceState:(e,t)=>x("replace",e,t),back:e=>(e&&(h=!0),m=!0,r.history.back()),forward:e=>{e&&(h=!0),m=!0,r.history.forward()},go:e=>{f=!0,r.history.go(e)},createHref:e=>l(e),flush:y,destroy:()=>{r.history.pushState=o,r.history.replaceState=a,r.removeEventListener(ot,S,{capture:!0}),r.removeEventListener(rt,w)},onBlocked:()=>{u&&d!==u&&(d=u)},getBlockers:s,setBlockers:e=>i=e,notifyOnIndexChange:!1});return r.addEventListener(ot,S,{capture:!0}),r.addEventListener(rt,w),r.history.pushState=function(...e){const t=o.apply(r.history,e);return k._ignoreSubscribers||b("PUSH"),t},r.history.replaceState=function(...e){const t=a.apply(r.history,e);return k._ignoreSubscribers||b("REPLACE"),t},k}function st(e,t){const n=function(e){let t=e.replace(/[\x00-\x1f\x7f]/g,"");return t.startsWith("//")&&(t="/"+t.replace(/^\/+/,"")),t}(e),r=n.indexOf("#"),o=n.indexOf("?"),a=lt();return{href:n,pathname:n.substring(0,r>0?o>0?Math.min(r,o):r:o>0?o:n.length),hash:r>-1?n.substring(r):"",search:o>-1?n.slice(o,-1===r?void 0:r):"",state:t||{[nt]:0,key:a,__TSR_key:a}}}function lt(){return(Math.random()+1).toString(36).substring(7)}function ct(e,t){const n=t,r=e;return{fromLocation:n,toLocation:r,pathChanged:(null==n?void 0:n.pathname)!==r.pathname,hrefChanged:(null==n?void 0:n.href)!==r.href,hashChanged:(null==n?void 0:n.hash)!==r.hash}}var ut=class{constructor(e,t){this.tempLocationKey=`${Math.round(1e7*Math.random())}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=e=>e(),this.update=e=>{var t;const n=this.options,r=this.basepath??(null==n?void 0:n.basepath)??"/",o=void 0===this.basepath,a=null==n?void 0:n.rewrite;if(this.options={...n,...e},this.isServer=this.options.isServer??"undefined"==typeof document,this.protocolAllowlist=new Set(this.options.protocolAllowlist),this.options.pathParamsAllowedCharacters&&(this.pathParamsDecoder=function(e){const t=new Map(e.map(e=>[encodeURIComponent(e),e])),n=Array.from(t.keys()).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),r=new RegExp(n,"g");return e=>e.replace(r,e=>t.get(e)??e)}(this.options.pathParamsAllowedCharacters)),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.history=it()),this.origin=this.options.origin,this.origin||((null==window?void 0:window.origin)&&"null"!==window.origin?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){let e;this.routeTree=this.options.routeTree,this.resolvePathCache=ee(1e3),e=this.buildRouteTree(),this.setRoutes(e)}if(!this.stores&&this.latestLocation){const e=this.getStoreConfig(this);this.batch=e.batch,this.stores=function(e,t){const{createMutableStore:n,createReadonlyStore:r,batch:o,init:a}=t,i=new Map,s=new Map,l=new Map,c=n(e.status),u=n(e.loadedAt),d=n(e.isLoading),f=n(e.isTransitioning),p=n(e.location),h=n(e.resolvedLocation),m=n(e.statusCode),g=n(e.redirect),v=n([]),y=n([]),x=n([]),b=r(()=>Te(i,v.get())),w=r(()=>Te(s,y.get())),S=r(()=>Te(l,x.get())),k=r(()=>v.get()[0]),C=r(()=>v.get().some(e=>{var t;return"pending"===(null==(t=i.get(e))?void 0:t.get().status)})),N=r(()=>{var e;return{locationHref:p.get().href,resolvedLocationHref:null==(e=h.get())?void 0:e.href,status:c.get()}}),j=r(()=>({status:c.get(),loadedAt:u.get(),isLoading:d.get(),isTransitioning:f.get(),matches:b.get(),location:p.get(),resolvedLocation:h.get(),statusCode:m.get(),redirect:g.get()})),_=ee(64),E={status:c,loadedAt:u,isLoading:d,isTransitioning:f,location:p,resolvedLocation:h,statusCode:m,redirect:g,matchesId:v,pendingIds:y,cachedIds:x,matches:b,pendingMatches:w,cachedMatches:S,firstId:k,hasPending:C,matchRouteDeps:N,matchStores:i,pendingMatchStores:s,cachedMatchStores:l,__store:j,getRouteMatchStore:function(e){let t=_.get(e);return t||(t=r(()=>{const t=v.get();for(const n of t){const t=i.get(n);if(t&&t.routeId===e)return t.get()}}),_.set(e,t)),t},setMatches:P,setPending:function(e){De(e,s,y,n,o)},setCached:function(e){De(e,l,x,n,o)}};function P(e){De(e,i,v,n,o)}return P(e.matches),null==a||a(E),E}({loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:this.latestLocation,matches:[],statusCode:200},e),function(e){if(!we)return;const t=we;if(e.options.scrollRestoration&&(e.isScrollRestoring=!0),e.isScrollRestorationSetup||!t)return;e.isScrollRestorationSetup=!0,Ce=!1;const n=e.options.getScrollRestorationKey||Se,r=new Map;window.history.scrollRestoration="manual";const o=n=>{var o;if(!e.isScrollRestoring||!n||0===r.size||!t)return;const a=(o=t.state)[n]||(o[n]={});for(const[e,t]of r){let n;if(e===Ne)n=Ne;else if(e.isConnected){const t=e.getAttribute(je);n=t?`[${je}="${t}"]`:ke(e)}n&&(a[n]=t)}};document.addEventListener("scroll",t=>{if(!Ce&&e.isScrollRestoring)if(t.target===document||t.target===window)r.set(Ne,{scrollX:window.scrollX||0,scrollY:window.scrollY||0});else{const e=t.target;r.set(e,{scrollX:e.scrollLeft||0,scrollY:e.scrollTop||0})}},!0),e.subscribe("onBeforeLoad",e=>{o(e.fromLocation?n(e.fromLocation):void 0),r.clear()}),window.addEventListener("pagehide",()=>{o(n(e.stores.resolvedLocation.get()??e.stores.location.get())),t.persist()}),e.subscribe("onRendered",o=>{var a;const i=n(o.toLocation),s=e.options.scrollRestorationBehavior,l=e.options.scrollToTopSelectors;if(r.clear(),e.resetNextScroll){if("function"!=typeof e.options.scrollRestoration||e.options.scrollRestoration({location:e.latestLocation})){Ce=!0;try{const n=e.isScrollRestoring?t.state[i]:void 0;let r=!1;if(n)for(const e in n){const t=n[e];if(!U(t))continue;const{scrollX:o,scrollY:a}=t;if(Number.isFinite(o)&&Number.isFinite(a))if(e===Ne)window.scrollTo({top:a,left:o,behavior:s}),r=!0;else if(e){let t;try{t=document.querySelector(e)}catch{continue}t&&(t.scrollLeft=o,t.scrollTop=a,r=!0)}}if(!r){const t=e.history.location.hash.slice(1);if(t){const e=(null==(a=window.history.state)?void 0:a.__hashScrollIntoViewOptions)??!0;if(e){const n=document.getElementById(t);n&&n.scrollIntoView(e)}}else{const e={top:0,left:0,behavior:s};if(window.scrollTo(e),l)for(const t of l){if(t===Ne)continue;const n="function"==typeof t?t():document.querySelector(t);n&&n.scrollTo(e)}}}}finally{Ce=!1}e.isScrollRestoring&&t.set(e=>(e[i]||(e[i]={}),e))}}else e.resetNextScroll=!0})}(this)}let i=!1;const s=this.options.basepath??"/",l=this.options.rewrite;if(o||r!==s||a!==l){this.basepath=s;const e=[],t=me(s);t&&"/"!==t&&e.push(function(e){const t=me(e.basepath),n=`/${t}`,r=`${n}/`,o=e.caseSensitive?n:n.toLowerCase(),a=e.caseSensitive?r:r.toLowerCase();return{input:({url:t})=>{const r=e.caseSensitive?t.pathname:t.pathname.toLowerCase();return r===o?t.pathname="/":r.startsWith(a)&&(t.pathname=t.pathname.slice(n.length)),t},output:({url:e})=>(e.pathname=de(["/",t,e.pathname]),e)}}({basepath:s})),l&&e.push(l),this.rewrite=0===e.length?void 0:1===e.length?e[0]:function(e){return{input:({url:t})=>{for(const n of e)t=Ae(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=Me(e[n],t);return t}}}(e),this.history&&this.updateLatestLocation(),i=!0}i&&this.stores&&this.stores.location.set(this.latestLocation),"undefined"!=typeof window&&"CSS"in window&&"function"==typeof(null==(t=window.CSS)?void 0:t.supports)&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const e=function(e,t=!1,n){const r=ae(e.fullPath),o=new Uint16Array(6),a={},i={};let s=0;return ne(t,o,e,1,r,0,e=>{if(null==n||n(e,s),e.id in a&&Z(),a[e.id]=e,0!==s&&e.path){const n="/"===(t=e.fullPath)?t:t.replace(/\/{1,}$/,"");i[n]&&!e.fullPath.endsWith("/")||(i[n]=e)}var t;s++}),oe(r),{processedTree:{segmentTree:r,singleCache:ee(1e3),matchCache:ee(1e3),flatCache:null,masksTree:null},routesById:a,routesByPath:i}}(this.routeTree,this.options.caseSensitive,(e,t)=>{e.init({originalIndex:t})});return this.options.routeMasks&&function(e,t){const n=ae("/"),r=new Uint16Array(6);for(const o of e)ne(!1,r,o,1,n,0);oe(n),t.masksTree=n,t.flatCache=ee(1e3)}(this.options.routeMasks,e.processedTree),e},this.subscribe=(e,t)=>{const n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{this.subscribers.forEach(t=>{t.eventType===e.type&&t.fn(e)})},this.parseLocation=(e,t)=>{const n=({pathname:e,search:n,hash:r,href:o,state:a})=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){const o=this.options.parseSearch(n),i=this.options.stringifySearch(o);return{href:e+i+r,publicHref:e+i+r,pathname:J(e).path,external:!1,searchStr:i,search:B(null==t?void 0:t.search,o),hash:J(r.slice(1)).path,state:$(null==t?void 0:t.state,a)}}const i=new URL(o,this.origin),s=Ae(this.rewrite,i),l=this.options.parseSearch(s.search),c=this.options.stringifySearch(l);return s.search=c,{href:s.href.replace(s.origin,""),publicHref:o,pathname:J(s.pathname).path,external:!!this.rewrite&&s.origin!==this.origin,searchStr:c,search:B(null==t?void 0:t.search,l),hash:J(s.hash.slice(1)).path,state:$(null==t?void 0:t.state,a)}},r=n(e),{__tempLocation:o,__tempKey:a}=r.state;if(o&&(!a||a===this.tempLocationKey)){const e=n(o);return e.state.key=r.state.key,e.state.__TSR_key=r.state.__TSR_key,delete e.state.__tempLocation,{...e,maskedLocation:r}}return r},this.resolvePathWithBase=(e,t)=>function({base:e,to:t,trailingSlash:n="never",cache:r}){const o=t.startsWith("/"),a=!o&&"."===t;let i,s,l;if(r){i=o?t:a?e:e+"\0"+t;const n=r.get(i);if(n)return n}if(a)s=e.split("/");else if(o)s=t.split("/");else{for(s=e.split("/");s.length>1&&""===T(s);)s.pop();const n=t.split("/");for(let e=0,t=n.length;e1&&(""===T(s)?"never"===n&&s.pop():"always"===n&&s.push(""));let c="";for(let d=0;d0&&(c+="/");const e=s[d];if(!e)continue;l=te(e,0,l);const t=l[0];if(0===t){c+=e;continue}const n=l[5],r=e.substring(0,l[1]),o=e.substring(l[4],n),a=e.substring(l[2],l[3]);c+=1===t?r||o?`${r}{$${a}}${o}`:`$${a}`:2===t?r||o?`${r}{$}${o}`:"$":`${r}{-$${a}}${o}`}c=fe(c);const u=c||"/";return i&&r&&r.set(i,u),u}({base:e,to:fe(t),trailingSlash:this.options.trailingSlash,cache:this.resolvePathCache}),this.matchRoutes=(e,t,n)=>"string"==typeof e?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>function({pathname:e,routesById:t,processedTree:n}){const r=Object.create(null),o=he(e);let a,i;const s=function(e,t,n=!1){const r=n?e:`nofuzz\0${e}`,o=t.matchCache.get(r);if(void 0!==o)return o;let a;e||(e="/");try{a=se(e,t.segmentTree,n)}catch(i){if(!(i instanceof URIError))throw i;a=null}return a&&(a.branch=function(e){const t=[e];for(;e.parentRoute;)e=e.parentRoute,t.push(e);return t.reverse(),t}(a.route)),t.matchCache.set(r,a),a}(o,n,!0);s&&(a=s.route,Object.assign(r,s.rawParams),i=Object.assign(Object.create(null),s.parsedParams));return{matchedRoutes:(null==s?void 0:s.branch)||[t.__root__],routeParams:r,foundRoute:a,parsedParams:i}}({pathname:e,routesById:this.routesById,processedTree:this.processedTree}),this.cancelMatch=e=>{const t=this.getMatch(e);t&&(t.abortController.abort(),clearTimeout(t._nonReactive.pendingTimeout),t._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{this.stores.pendingIds.get().forEach(e=>{this.cancelMatch(e)}),this.stores.matchesId.get().forEach(e=>{var t;if(this.stores.pendingMatchStores.has(e))return;const n=null==(t=this.stores.matchStores.get(e))?void 0:t.get();n&&("pending"!==n.status&&"loader"!==n.isFetching||this.cancelMatch(e))})},this.buildLocation=e=>{const t=(t={})=>{var n,r;const o=t._fromLocation||this.pendingBuiltLocation||this.latestLocation,a=this.matchRoutesLightweight(o);t.from;const i="path"===t.unsafeRelative?o.pathname:t.from??a.fullPath,s=this.resolvePathWithBase(i,"."),l=a.search,c=Object.assign(Object.create(null),a.params),u=t.to?this.resolvePathWithBase(s,`${t.to}`):this.resolvePathWithBase(s,"."),d=!1===t.params||null===t.params?Object.create(null):!0===(t.params??!0)?c:Object.assign(c,D(t.params,c)),f=this.getMatchedRoutes(u);let p=f.matchedRoutes;if((!f.foundRoute||"/"!==f.foundRoute.path&&f.routeParams["**"])&&this.options.notFoundRoute&&(p=[...p,this.options.notFoundRoute]),Object.keys(d).length>0)for(const e of p){const t=(null==(n=e.options.params)?void 0:n.stringify)??e.options.stringifyParams;if(t)try{Object.assign(d,t(d))}catch{}}const h=e.leaveParams?u:J(ye({path:u,params:d,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath).path;let m=l;if(e._includeValidateSearch&&(null==(r=this.options.search)?void 0:r.strict)){const e={};p.forEach(t=>{if(t.options.validateSearch)try{Object.assign(e,pt(t.options.validateSearch,{...e,...m}))}catch{}}),m=e}m=function({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){return function(e){var t;const n={dest:null,_includeValidateSearch:!1,middlewares:[]};for(const a of e){if("search"in a.options)(null==(t=a.options.search)?void 0:t.middlewares)&&n.middlewares.push(...a.options.search.middlewares);else if(a.options.preSearchFilters||a.options.postSearchFilters){const e=({search:e,next:t})=>{let n=e;"preSearchFilters"in a.options&&a.options.preSearchFilters&&(n=a.options.preSearchFilters.reduce((e,t)=>t(e),e));const r=t(n);return"postSearchFilters"in a.options&&a.options.postSearchFilters?a.options.postSearchFilters.reduce((e,t)=>t(e),r):r};n.middlewares.push(e)}if(a.options.validateSearch){const e=({search:e,next:t})=>{const r=t(e);if(!n._includeValidateSearch)return r;try{return{...r,...pt(a.options.validateSearch,r)??void 0}}catch{return r}};n.middlewares.push(e)}}const r=({search:e})=>{const t=n.dest;return t.search?!0===t.search?e:D(t.search,e):{}};n.middlewares.push(r);const o=(e,t,n)=>{if(e>=n.length)return t;return(0,n[e])({search:t,next:t=>o(e+1,t,n)})};return function(e,t,r){return n.dest=t,n._includeValidateSearch=r,o(0,e,n.middlewares)}}(n)(e,t,r??!1)}({search:m,dest:t,destRoutes:p,_includeValidateSearch:e._includeValidateSearch}),m=B(l,m);const g=this.options.stringifySearch(m),v=!0===t.hash?o.hash:t.hash?D(t.hash,o.hash):void 0,y=v?`#${v}`:"";let x=!0===t.state?o.state:t.state?D(t.state,o.state):{};x=$(o.state,x);const b=`${h}${g}${y}`;let w,S,k=!1;if(this.rewrite){const e=new URL(b,this.origin),t=Me(this.rewrite,e);w=e.href.replace(e.origin,""),t.origin!==this.origin?(S=t.href,k=!0):S=t.pathname+t.search+t.hash}else w=/\s|[^\u0000-\u007F]/.test(C=b)?C.replace(/\s|[^\u0000-\u007F]/gu,encodeURIComponent):C,S=w;var C;return{publicHref:S,href:w,pathname:h,search:m,searchStr:g,state:x,hash:v??"",external:k,unmaskOnReload:t.unmaskOnReload}},n=(n={},r)=>{const o=t(n);let a=r?t(r):void 0;if(!a){const n=Object.create(null);if(this.options.routeMasks){const i=function(e,t){e||(e="/");const n=t.flatCache.get(e);if(n)return n;const r=se(e,t.masksTree);return t.flatCache.set(e,r),r}(o.pathname,this.processedTree);if(i){Object.assign(n,i.rawParams);const{from:o,params:s,...l}=i.route,c=!1===s||null===s?Object.create(null):!0===(s??!0)?n:Object.assign(n,D(s,n));r={from:e.from,...l,params:c},a=t(r)}}}return a&&(o.maskedLocation=a),o};return e.mask?n(e,{from:e.from,...e.mask}):n(e)},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{const r=he(this.latestLocation.href)===he(n.href);let o=this.commitLocationPromise;if(this.commitLocationPromise=q(()=>{null==o||o.resolve(),o=void 0}),r&&(()=>{const e=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];e.forEach(e=>{n.state[e]=this.latestLocation.state[e]});const t=K(n.state,this.latestLocation.state);return e.forEach(e=>{delete n.state[e]}),t})())this.load();else{let{maskedLocation:r,hashScrollIntoView:o,...a}=n;r&&(a={...r,state:{...r.state,__tempKey:void 0,__tempLocation:{...a,search:a.searchStr,state:{...a.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(a.unmaskOnReload??this.options.unmaskOnReload)&&(a.state.__tempKey=this.tempLocationKey)),a.state.__hashScrollIntoViewOptions=o??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=e,this.history[n.replace?"replace":"push"](a.publicHref,a.state,{ignoreBlocker:t})}return this.resetNextScroll=n.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:o,href:a,...i}={})=>{if(a){const t=this.history.location.state.__TSR_index,n=st(a,{__TSR_index:e?t:t+1}),r=new URL(n.pathname,this.origin);i.to=Ae(this.rewrite,r).pathname,i.search=this.options.parseSearch(n.search),i.hash=n.hash.slice(1)}const s=this.buildLocation({...i,_includeValidateSearch:!0});this.pendingBuiltLocation=s;const l=this.commitLocation({...s,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:o});return Promise.resolve().then(()=>{this.pendingBuiltLocation===s&&(this.pendingBuiltLocation=void 0)}),l},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...o})=>{var a,i;let s=!1;if(n)try{new URL(`${n}`),s=!0}catch{}if(s&&!t&&(t=!0),t){if(void 0!==e||!n){const t=this.buildLocation({to:e,...o});n=n??t.publicHref,r=r??t.publicHref}const t=!s&&r?r:n;if(X(t,this.protocolAllowlist))return Promise.resolve();if(!o.ignoreBlocker){const e=(null==(i=(a=this.history).getBlockers)?void 0:i.call(a))??[];for(const t of e)if((null==t?void 0:t.blockerFn)&&await t.blockerFn({currentLocation:this.latestLocation,nextLocation:this.latestLocation,action:"PUSH"}))return Promise.resolve()}return o.replace?window.location.replace(t):window.location.href=t,Promise.resolve()}return this.buildAndCommitLocation({...o,href:n,to:e,_isNavigate:!0})},this.beforeLoad=()=>{this.cancelMatches(),this.updateLatestLocation();const e=this.matchRoutes(this.latestLocation),t=this.stores.cachedMatches.get().filter(t=>!e.some(e=>e.id===t.id));this.batch(()=>{this.stores.status.set("pending"),this.stores.statusCode.set(200),this.stores.isLoading.set(!0),this.stores.location.set(this.latestLocation),this.stores.setPending(e),this.stores.setCached(t)})},this.load=async e=>{let t,n,r;const o=this.stores.resolvedLocation.get()??this.stores.location.get();for(r=new Promise(a=>{this.startTransition(async()=>{var i;try{this.beforeLoad();const t=this.latestLocation,n=ct(t,this.stores.resolvedLocation.get());this.stores.redirect.get()||this.emit({type:"onBeforeNavigate",...n}),this.emit({type:"onBeforeLoad",...n}),await Xe({router:this,sync:null==e?void 0:e.sync,forceStaleReload:o.href===t.href,matches:this.stores.pendingMatches.get(),location:t,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{var e,t;let n=null,r=null,o=null,a=null;this.batch(()=>{const e=this.stores.pendingMatches.get(),t=e.length,i=this.stores.matches.get();n=t?i.filter(e=>!this.stores.pendingMatchStores.has(e.id)):null;const s=new Set;for(const n of this.stores.pendingMatchStores.values())n.routeId&&s.add(n.routeId);const l=new Set;for(const n of this.stores.matchStores.values())n.routeId&&l.add(n.routeId);r=t?i.filter(e=>!s.has(e.routeId)):null,o=t?e.filter(e=>!l.has(e.routeId)):null,a=t?e.filter(e=>l.has(e.routeId)):i,this.stores.isLoading.set(!1),this.stores.loadedAt.set(Date.now()),t&&(this.stores.setMatches(e),this.stores.setPending([]),this.stores.setCached([...this.stores.cachedMatches.get(),...n.filter(e=>"error"!==e.status&&"notFound"!==e.status&&"redirected"!==e.status)]),this.clearExpiredCache())});for(const[i,s]of[[r,"onLeave"],[o,"onEnter"],[a,"onStay"]])if(i)for(const n of i)null==(t=(e=this.looseRoutesById[n.routeId].options)[s])||t.call(e,n)})})}})}catch(s){Fe(s)?(t=s,this.navigate({...t.options,replace:!0,ignoreBlocker:!0})):be(s)&&(n=s);const e=t?t.status:n?404:this.stores.matches.get().some(e=>"error"===e.status)?500:200;this.batch(()=>{this.stores.statusCode.set(e),this.stores.redirect.set(t)})}this.latestLoadPromise===r&&(null==(i=this.commitLocationPromise)||i.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),a()})}),this.latestLoadPromise=r,await r;this.latestLoadPromise&&r!==this.latestLoadPromise;)await this.latestLoadPromise;let a;this.hasNotFoundMatch()?a=404:this.stores.matches.get().some(e=>"error"===e.status)&&(a=500),void 0!==a&&this.stores.statusCode.set(a)},this.startViewTransition=e=>{const t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&"undefined"!=typeof document&&"startViewTransition"in document&&"function"==typeof document.startViewTransition){let n;if("object"==typeof t&&this.isViewTransitionTypesSupported){const r=this.latestLocation,o=this.stores.resolvedLocation.get(),a="function"==typeof t.types?t.types(ct(r,o)):t.types;if(!1===a)return void e();n={update:e,types:a}}else n=e;document.startViewTransition(n)}else e()},this.updateMatch=(e,t)=>{this.startTransition(()=>{const n=this.stores.pendingMatchStores.get(e);if(n)return void n.set(t);const r=this.stores.matchStores.get(e);if(r)return void r.set(t);const o=this.stores.cachedMatchStores.get(e);if(o){const n=t(o.get());"redirected"===n.status?this.stores.cachedMatchStores.delete(e)&&this.stores.cachedIds.set(t=>t.filter(t=>t!==e)):o.set(n)}})},this.getMatch=e=>{var t,n,r;return(null==(t=this.stores.cachedMatchStores.get(e))?void 0:t.get())??(null==(n=this.stores.pendingMatchStores.get(e))?void 0:n.get())??(null==(r=this.stores.matchStores.get(e))?void 0:r.get())},this.invalidate=e=>{const t=t=>{var n;return(null==(n=null==e?void 0:e.filter)?void 0:n.call(e,t))??1?{...t,invalid:!0,...(null==e?void 0:e.forcePending)||"error"===t.status||"notFound"===t.status?{status:"pending",error:void 0}:void 0}:t};return this.batch(()=>{this.stores.setMatches(this.stores.matches.get().map(t)),this.stores.setCached(this.stores.cachedMatches.get().map(t)),this.stores.setPending(this.stores.pendingMatches.get().map(t))}),this.shouldViewTransition=!1,this.load({sync:null==e?void 0:e.sync})},this.getParsedLocationHref=e=>e.publicHref||"/",this.resolveRedirect=e=>{const t=e.headers.get("Location");if(!e.options.href||e.options._builtLocation){const t=e.options._builtLocation??this.buildLocation(e.options),n=this.getParsedLocationHref(t);e.options.href=n,e.headers.set("Location",n)}else if(t)try{const n=new URL(t);if(this.origin&&n.origin===this.origin){const t=n.pathname+n.search+n.hash;e.options.href=t,e.headers.set("Location",t)}}catch{}if(e.options.href&&!e.options._builtLocation&&X(e.options.href,this.protocolAllowlist))throw new Error("Redirect blocked: unsafe protocol");return e.headers.get("Location")||e.headers.set("Location",e.options.href),e},this.clearCache=e=>{const t=null==e?void 0:e.filter;void 0!==t?this.stores.setCached(this.stores.cachedMatches.get().filter(e=>!t(e))):this.stores.setCached([])},this.clearExpiredCache=()=>{const e=Date.now();this.clearCache({filter:t=>{const n=this.looseRoutesById[t.routeId];if(!n.options.loader)return!0;const r=(t.preload?n.options.preloadGcTime??this.options.defaultPreloadGcTime:n.options.gcTime??this.options.defaultGcTime)??3e5;return"error"===t.status||e-t.updatedAt>=r}})},this.loadRouteChunk=Ze,this.preloadRoute=async e=>{const t=e._builtLocation??this.buildLocation(e);let n=this.matchRoutes(t,{throwOnError:!0,preload:!0,dest:e});const r=new Set([...this.stores.matchesId.get(),...this.stores.pendingIds.get()]),o=new Set([...r,...this.stores.cachedIds.get()]),a=n.filter(e=>!o.has(e.id));if(a.length){const e=this.stores.cachedMatches.get();this.stores.setCached([...e,...a])}try{return n=await Xe({router:this,matches:n,location:t,preload:!0,updateMatch:(e,t)=>{r.has(e)?n=n.map(n=>n.id===e?t(n):n):this.updateMatch(e,t)}}),n}catch(i){if(Fe(i)){if(i.options.reloadDocument)return;return await this.preloadRoute({...i.options,_fromLocation:t})}return void(be(i)||console.error(i))}},this.matchRoute=(e,t)=>{const n={...e,to:e.to?this.resolvePathWithBase(e.from||"",e.to):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n);if((null==t?void 0:t.pending)&&"pending"!==this.stores.status.get())return!1;const o=(void 0===(null==t?void 0:t.pending)?!this.stores.isLoading.get():t.pending)?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),a=function(e,t,n,r,o){e||(e="/"),r||(r="/");const a=t?`case\0${e}`:e;let i=o.singleCache.get(a);return i||(i=ae("/"),ne(t,new Uint16Array(6),{from:e},1,i,0),o.singleCache.set(a,i)),se(r,i,n)}(r.pathname,(null==t?void 0:t.caseSensitive)??!1,(null==t?void 0:t.fuzzy)??!1,o.pathname,this.processedTree);return!!a&&(!(e.params&&!K(a.rawParams,e.params,{partial:!0}))&&((null==t?void 0:t.includeSearch)??1?!!K(o.search,r.search,{partial:!0})&&a.rawParams:a.rawParams))},this.hasNotFoundMatch=()=>this.stores.matches.get().some(e=>"notFound"===e.status||e.globalNotFound),this.getStoreConfig=t,this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??"fuzzy",stringifySearch:e.stringifySearch??Re,parseSearch:e.parseSearch??Pe,protocolAllowlist:e.protocolAllowlist??Y}),"undefined"!=typeof document&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.stores.__store.get()}setRoutes({routesById:e,routesByPath:t,processedTree:n}){this.routesById=e,this.routesByPath=t,this.processedTree=n;const r=this.options.notFoundRoute;r&&(r.init({originalIndex:99999999999}),this.routesById[r.id]=r)}get looseRoutesById(){return this.routesById}getParentContext(e){return(null==e?void 0:e.id)?e.context??this.options.context??void 0:this.options.context??void 0}matchRoutesInternal(e,t){var n,r;const o=this.getMatchedRoutes(e.pathname),{foundRoute:a,routeParams:i,parsedParams:s}=o;let{matchedRoutes:l}=o,c=!1;(a?"/"!==a.path&&i["**"]:he(e.pathname))&&(this.options.notFoundRoute?l=[...l,this.options.notFoundRoute]:c=!0);const u=c?function(e,t){if("root"!==e)for(let n=t.length-1;n>=0;n--){const e=t[n];if(e.children)return e.id}return Le}(this.options.notFoundMode,l):void 0,d=new Array(l.length),f=new Map;for(const h of this.stores.matchStores.values())h.routeId&&f.set(h.routeId,h.get());for(let h=0;hthis.navigate({...t,_fromLocation:e}),buildLocation:this.buildLocation,cause:t.cause,abortController:t.abortController,preload:!!t.preload,matches:d,routeId:n.id};t.__routeContext=n.options.context(r)??void 0}t.context={...o,...t.__routeContext,...t.__beforeLoadContext}}}return d}matchRoutesLightweight(e){var t;const{matchedRoutes:n,routeParams:r,parsedParams:o}=this.getMatchedRoutes(e.pathname),a=T(n),i={...e.search};for(const u of n)try{Object.assign(i,pt(u.options.validateSearch,i))}catch{}const s=T(this.stores.matchesId.get()),l=s&&(null==(t=this.stores.matchStores.get(s))?void 0:t.get());let c;if(l&&l.routeId===a.id&&l.pathname===e.pathname)c=l.params;else{const e=Object.assign(Object.create(null),r);for(const t of n)try{ht(t,r,o??{},e)}catch{}c=e}return{matchedRoutes:n,fullPath:a.fullPath,search:i,params:c}}},dt=class extends Error{},ft=class extends Error{};function pt(e,t){if(null==e)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new dt("Async validation not supported");if(n.issues)throw new dt(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):"function"==typeof e?e(t):{}}function ht(e,t,n,r){var o;const a=(null==(o=e.options.params)?void 0:o.parse)??e.options.parseParams;if(a)if(e.options.skipRouteOnParseError)for(const i in t)i in n&&(r[i]=n[i]);else{const e=a(r);Object.assign(r,e)}}var mt=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=e=>{var t,n;this.originalIndex=e.originalIndex;const r=this.options,o=!(null==r?void 0:r.path)&&!(null==r?void 0:r.id);this.parentRoute=null==(n=(t=this.options).getParentRoute)?void 0:n.call(t),o?this._path=Le:this.parentRoute||Z();let a=o?Le:null==r?void 0:r.path;a&&"/"!==a&&(a=pe(a));const i=(null==r?void 0:r.id)||a;let s=o?Le:de(["__root__"===this.parentRoute.id?"":this.parentRoute.id,i]);"__root__"===a&&(a="/"),"__root__"!==s&&(s=de(["/",s]));const l="__root__"===s?"/":de([this.parentRoute.fullPath,a]);this._path=a,this._id=s,this._fullPath=l,this._to=he(l)},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),"object"==typeof e&&null!==e&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.redirect=e=>function(e){if(e.statusCode=e.statusCode||e.code||307,!e._builtLocation&&!e.reloadDocument&&"string"==typeof e.href)try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&null===t.get("Location")&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}({from:this.fullPath,...e}),this.options=e||{},this.isRoot=!(null==e?void 0:e.getParentRoute),(null==e?void 0:e.id)&&(null==e?void 0:e.path))throw new Error("Route cannot have both an 'id' and a 'path' option.")}},gt=class extends mt{constructor(e){super(e)}};function vt(e){const t=e.errorComponent??xt;return l.jsx(yt,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?p.createElement(t,{error:n,reset:r}):e.children})}var yt=class extends p.Component{constructor(...e){super(...e),this.state={error:null}}static getDerivedStateFromProps(e,t){const n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:null}:{resetKey:n}}static getDerivedStateFromError(e){return{error:e}}reset(){this.setState({error:null})}componentDidCatch(e,t){this.props.onCatch&&this.props.onCatch(e,t)}render(){return this.props.children({error:this.state.error,reset:()=>{this.reset()}})}};function xt({error:e}){const[t,n]=p.useState(!1);return l.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[l.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),l.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(e=>!e),children:t?"Hide Error":"Show Error"})]}),l.jsx("div",{style:{height:".25rem"}}),t?l.jsx("div",{children:l.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?l.jsx("code",{children:e.message}):null})}):null]})}function bt({children:e,fallback:t=null}){return wt()?l.jsx(h.Fragment,{children:e}):l.jsx(h.Fragment,{children:t})}function wt(){return h.useSyncExternalStore(St,()=>!0,()=>!1)}function St(){return()=>{}}var kt=p.createContext(null);function Ct(e){return p.useContext(kt)}var Nt=p.createContext(void 0),jt=p.createContext(void 0),_t=(e=>(e[e.None=0]="None",e[e.Mutable=1]="Mutable",e[e.Watching=2]="Watching",e[e.RecursedCheck=4]="RecursedCheck",e[e.Recursed=8]="Recursed",e[e.Dirty=16]="Dirty",e[e.Pending=32]="Pending",e))(_t||{});function Et({update:e,notify:t,unwatched:n}){return{link:function(e,t,n){const r=t.depsTail;if(void 0!==r&&r.dep===e)return;const o=void 0!==r?r.nextDep:t.deps;if(void 0!==o&&o.dep===e)return o.version=n,void(t.depsTail=o);const a=e.subsTail;if(void 0!==a&&a.version===n&&a.sub===t)return;const i=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:o,prevSub:a,nextSub:void 0};void 0!==o&&(o.prevDep=i);void 0!==r?r.nextDep=i:t.deps=i;void 0!==a?a.nextSub=i:e.subs=i},unlink:function(e,t=e.sub){const r=e.dep,o=e.prevDep,a=e.nextDep,i=e.nextSub,s=e.prevSub;void 0!==a?a.prevDep=o:t.depsTail=o;void 0!==o?o.nextDep=a:t.deps=a;void 0!==i?i.prevSub=s:r.subsTail=s;void 0!==s?s.nextSub=i:void 0===(r.subs=i)&&n(r);return a},propagate:function(e){let n,r=e.nextSub;e:for(;;){const a=e.sub;let i=a.flags;if(60&i?12&i?4&i?48&i||!o(e,a)?i=0:(a.flags=40|i,i&=1):a.flags=-9&i|32:i=0:a.flags=32|i,2&i&&t(a),1&i){const t=a.subs;if(void 0!==t){const o=(e=t).nextSub;void 0!==o&&(n={value:r,prev:n},r=o);continue}}if(void 0===(e=r)){for(;void 0!==n;)if(e=n.value,n=n.prev,void 0!==e){r=e.nextSub;continue e}break}r=e.nextSub}},checkDirty:function(t,n){let o,a=0,i=!1;e:for(;;){const s=t.dep,l=s.flags;if(16&n.flags)i=!0;else if(17&~l){if(!(33&~l)){void 0===t.nextSub&&void 0===t.prevSub||(o={value:t,prev:o}),t=s.deps,n=s,++a;continue}}else if(e(s)){const e=s.subs;void 0!==e.nextSub&&r(e),i=!0}if(!i){const e=t.nextDep;if(void 0!==e){t=e;continue}}for(;a--;){const a=n.subs,s=void 0!==a.nextSub;if(s?(t=o.value,o=o.prev):t=a,i){if(e(n)){s&&r(a),n=t.sub;continue}i=!1}else n.flags&=-33;n=t.sub;const l=t.nextDep;if(void 0!==l){t=l;continue e}}return i}},shallowPropagate:r};function r(e){do{const n=e.sub,r=n.flags;32==(48&r)&&(n.flags=16|r,2==(6&r)&&t(n))}while(void 0!==(e=e.nextSub))}function o(e,t){let n=t.depsTail;for(;void 0!==n;){if(n===e)return!0;n=n.prevDep}return!1}}const Pt=[];let Rt=0;const{link:Lt,unlink:Ft,propagate:At,checkDirty:Mt,shallowPropagate:Tt}=Et({update:e=>e._update(),notify(e){Pt[It++]=e,e.flags&=~_t.Watching},unwatched(e){void 0!==e.depsTail&&(e.depsTail=void 0,e.flags=_t.Mutable|_t.Dirty,$t(e))}});let Dt,Ot=0,It=0,zt=0;function Bt(e){try{++zt,e()}finally{--zt||Wt()}}function $t(e){const t=e.depsTail;let n=void 0!==t?t.nextDep:e.deps;for(;void 0!==n;)n=Ft(n,e)}function Wt(){if(!(zt>0)){for(;Ot(void 0!==Dt&&Lt(o,Dt,Rt),o._snapshot),subscribe(e){const t=function(e,t,n){var r,o,a;const i="object"==typeof e,s=i?e:void 0;return{next:null==(r=i?e.next:e)?void 0:r.bind(s),error:null==(o=i?e.error:t)?void 0:o.bind(s),complete:null==(a=i?e.complete:n)?void 0:a.bind(s)}}(e),n={current:!1},r=function(e){const t=()=>{const t=Dt;Dt=n,++Rt,n.depsTail=void 0,n.flags=_t.Watching|_t.RecursedCheck;try{return e()}finally{Dt=t,n.flags&=~_t.RecursedCheck,$t(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:_t.Watching|_t.RecursedCheck,notify(){const e=this.flags;e&_t.Dirty||e&_t.Pending&&Mt(this.deps,this)?t():this.flags=_t.Watching},stop(){this.flags=_t.None,this.depsTail=void 0,$t(this)}};return t(),n}(()=>{var e;o.get(),n.current?null==(e=t.next)||e.call(t,o._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){const a=Dt,i=(null==t?void 0:t.compare)??Object.is;if(n)Dt=o,++Rt,o.depsTail=void 0;else if(void 0===e)return!1;n&&(o.flags=_t.Mutable|_t.RecursedCheck);try{const t=o._snapshot,a="function"==typeof e?e(t):void 0===e&&n?r(t):e;return(void 0===t||!i(t,a))&&(o._snapshot=a,!0)}finally{Dt=a,n&&(o.flags&=~_t.RecursedCheck),$t(o)}}};return n?(o.flags=_t.Mutable|_t.Dirty,o.get=function(){const e=o.flags;if(e&_t.Dirty||e&_t.Pending&&Mt(o.deps,o)){if(o._update()){const e=o.subs;void 0!==e&&Tt(e)}}else e&_t.Pending&&(o.flags=e&~_t.Pending);return void 0!==Dt&&Lt(o,Dt,Rt),o._snapshot}):o.set=function(e){if(o._update(e)){const e=o.subs;void 0!==e&&(At(e),Tt(e),Wt())}},o}var Vt,Ht,Kt,qt,Gt={exports:{}},Qt={},Yt={exports:{}},Xt={};function Jt(){return Ht||(Ht=1,Yt.exports=function(){if(Vt)return Xt;Vt=1;var e=f(),t="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},n=e.useState,r=e.useEffect,o=e.useLayoutEffect,a=e.useDebugValue;function i(e){var n=e.getSnapshot;e=e.value;try{var r=n();return!t(e,r)}catch(o){return!0}}var s="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var s=t(),l=n({inst:{value:s,getSnapshot:t}}),c=l[0].inst,u=l[1];return o(function(){c.value=s,c.getSnapshot=t,i(c)&&u({inst:c})},[e,s,t]),r(function(){return i(c)&&u({inst:c}),e(function(){i(c)&&u({inst:c})})},[e]),a(s),s};return Xt.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:s,Xt}()),Yt.exports}
+/**
+ * @license React
+ * use-sync-external-store-shim/with-selector.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var Zt=(qt||(qt=1,Gt.exports=function(){if(Kt)return Qt;Kt=1;var e=f(),t=Jt(),n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},r=t.useSyncExternalStore,o=e.useRef,a=e.useEffect,i=e.useMemo,s=e.useDebugValue;return Qt.useSyncExternalStoreWithSelector=function(e,t,l,c,u){var d=o(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=i(function(){function e(e){if(!a){if(a=!0,r=e,e=c(e),void 0!==u&&f.hasValue){var t=f.value;if(u(t,e))return o=t}return o=e}if(t=o,n(r,e))return t;var i=c(e);return void 0!==u&&u(t,i)?(r=e,t):(r=e,o=i)}var r,o,a=!1,i=void 0===l?null:l;return[function(){return e(t())},null===i?void 0:function(){return e(i())}]},[t,l,c,u]);var p=r(e,d[0],d[1]);return a(function(){f.hasValue=!0,f.value=p},[p]),s(p),p},Qt}()),Gt.exports);function en(e,t){return e===t}function tn(e,t,n=en){const r=p.useCallback(t=>{if(!e)return()=>{};const{unsubscribe:n}=e.subscribe(t);return n},[e]),o=p.useCallback(()=>null==e?void 0:e.get(),[e]);return Zt.useSyncExternalStoreWithSelector(r,o,o,t,n)}var nn={get:()=>{},subscribe:()=>({unsubscribe:()=>{}})};function rn(e){const t=Ct(),n=p.useContext(e.from?jt:Nt),r=e.from??n,o=r?e.from?t.stores.getRouteMatchStore(r):t.stores.matchStores.get(r):void 0,a=p.useRef(void 0);return tn(o??nn,n=>{if((e.shouldThrow??1)&&!n&&Z(),void 0===n)return;const r=e.select?e.select(n):n;if(e.structuralSharing??t.options.defaultStructuralSharing){const e=$(a.current,r);return a.current=e,e}return r})}function on(e){return rn({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function an(e){const{select:t,...n}=e;return rn({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function sn(e){return rn({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=!1===e.strict?t.params:t._strictParams;return e.select?e.select(n):n}})}function ln(e){return rn({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function cn(e){const t=Ct();return p.useCallback(n=>t.navigate({...n,from:n.from??(null==e?void 0:e.from)}),[null==e?void 0:e.from,t])}function un(e){return rn({...e,select:t=>e.select?e.select(t.context):t.context})}var dn=R();const fn=t(dn);function pn(e,t){const n=Ct(),r=function(e){const t=p.useRef(null);return p.useImperativeHandle(e,()=>t.current,[]),t}(t),{activeProps:o,inactiveProps:a,activeOptions:i,to:s,preload:l,preloadDelay:c,preloadIntentProximity:u,hashScrollIntoView:d,replace:f,startTransition:h,resetScroll:m,viewTransition:g,children:v,target:y,disabled:x,style:b,className:w,onClick:S,onBlur:k,onFocus:C,onMouseEnter:N,onMouseLeave:j,onTouchStart:_,ignoreBlocker:E,params:P,search:R,hash:L,state:F,mask:A,reloadDocument:M,unsafeRelative:T,from:O,_fromLocation:I,...z}=e,B=wt(),$=p.useMemo(()=>e,[n,e.from,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),W=tn(n.stores.location,e=>e,(e,t)=>e.href===t.href),U=p.useMemo(()=>{const e={_fromLocation:W,...$};return n.buildLocation(e)},[n,W,$]),V=U.maskedLocation?U.maskedLocation.publicHref:U.publicHref,H=U.maskedLocation?U.maskedLocation.external:U.external,q=p.useMemo(()=>function(e,t,n,r){return r?void 0:t?{href:e,external:!0}:{href:n.createHref(e)||"/",external:!1}}(V,H,n.history,x),[x,H,V,n.history]),G=p.useMemo(()=>{if(null==q?void 0:q.external){if(X(q.href,n.protocolAllowlist))return;return q.href}if(!function(e){if("string"!=typeof e)return!1;const t=e.charCodeAt(0);return 47===t?47!==e.charCodeAt(1):46===t}(s)&&"string"==typeof s&&-1!==s.indexOf(":"))try{return new URL(s),X(s,n.protocolAllowlist)?void 0:s}catch{}},[s,q,n.protocolAllowlist]),Q=p.useMemo(()=>{if(G)return!1;if(null==i?void 0:i.exact){if(e=W.pathname,t=U.pathname,r=n.basepath,ge(e,r)!==ge(t,r))return!1}else{const e=ge(W.pathname,n.basepath),t=ge(U.pathname,n.basepath);if(!e.startsWith(t)||e.length!==t.length&&"/"!==e[t.length])return!1}var e,t,r;return!(((null==i?void 0:i.includeSearch)??1)&&!K(W.search,U.search,{partial:!(null==i?void 0:i.exact),ignoreUndefined:!(null==i?void 0:i.explicitUndefined)}))&&(!(null==i?void 0:i.includeHash)||B&&W.hash===U.hash)},[null==i?void 0:i.exact,null==i?void 0:i.explicitUndefined,null==i?void 0:i.includeHash,null==i?void 0:i.includeSearch,W,G,B,U.hash,U.pathname,U.search,n.basepath]),Y=Q?D(o,{})??mn:hn,J=Q?hn:D(a,{})??hn,Z=[w,Y.className,J.className].filter(Boolean).join(" "),ee=(b||Y.style||J.style)&&{...b,...Y.style,...J.style},[te,ne]=p.useState(!1),re=p.useRef(!1),oe=!e.reloadDocument&&!G&&(l??n.options.defaultPreload),ae=c??n.options.defaultPreloadDelay??0,ie=p.useCallback(()=>{n.preloadRoute({...$,_builtLocation:U}).catch(e=>{console.warn(e),console.warn("Error preloading route! ☝️")})},[n,$,U]);!function(e,t,n={},r={}){p.useEffect(()=>{if(!e.current||r.disabled||"function"!=typeof IntersectionObserver)return;const o=new IntersectionObserver(([e])=>{t(e)},n);return o.observe(e.current),()=>{o.disconnect()}},[t,n,r.disabled,e])}(r,p.useCallback(e=>{(null==e?void 0:e.isIntersecting)&&ie()},[ie]),bn,{disabled:!(!x&&"viewport"===oe)}),p.useEffect(()=>{re.current||x||"render"!==oe||(ie(),re.current=!0)},[x,ie,oe]);if(G)return{...z,ref:r,href:G,...v&&{children:v},...y&&{target:y},...x&&{disabled:x},...b&&{style:b},...w&&{className:w},...S&&{onClick:S},...k&&{onBlur:k},...C&&{onFocus:C},...N&&{onMouseEnter:N},...j&&{onMouseLeave:j},..._&&{onTouchStart:_}};const se=e=>{if(x||"intent"!==oe)return;if(!ae)return void ie();const t=e.currentTarget;if(xn.has(t))return;const n=setTimeout(()=>{xn.delete(t),ie()},ae);xn.set(t,n)},le=e=>{if(x||!oe||!ae)return;const t=e.currentTarget,n=xn.get(t);n&&(clearTimeout(n),xn.delete(t))};return{...z,...Y,...J,href:null==q?void 0:q.href,ref:r,onClick:wn([S,e=>{const t=e.currentTarget.getAttribute("target"),r=void 0!==y?y:t;if(!(x||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||e.defaultPrevented||r&&"_self"!==r||0!==e.button)){e.preventDefault(),dn.flushSync(()=>{ne(!0)});const t=n.subscribe("onResolved",()=>{t(),ne(!1)});n.navigate({...$,replace:f,resetScroll:m,hashScrollIntoView:d,startTransition:h,viewTransition:g,ignoreBlocker:E})}}]),onBlur:wn([k,le]),onFocus:wn([C,se]),onMouseEnter:wn([N,se]),onMouseLeave:wn([j,le]),onTouchStart:wn([_,e=>{x||"intent"!==oe||ie()}]),disabled:!!x,target:y,...ee&&{style:ee},...Z&&{className:Z},...x&&gn,...Q&&vn,...B&&te&&yn}}var hn={},mn={className:"active"},gn={role:"link","aria-disabled":!0},vn={"data-status":"active","aria-current":"page"},yn={"data-transitioning":"transitioning"},xn=new WeakMap,bn={rootMargin:"100px"},wn=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}};var Sn=p.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:o,...a}=pn(r,t),i="function"==typeof r.children?r.children({isActive:"active"===a["data-status"]}):r.children;if(!n){const{disabled:e,...t}=a;return p.createElement("a",t,i)}return p.createElement(n,a,i)});var kn=class extends mt{constructor(e){super(e),this.useMatch=e=>rn({select:null==e?void 0:e.select,from:this.id,structuralSharing:null==e?void 0:e.structuralSharing}),this.useRouteContext=e=>un({...e,from:this.id}),this.useSearch=e=>ln({select:null==e?void 0:e.select,structuralSharing:null==e?void 0:e.structuralSharing,from:this.id}),this.useParams=e=>sn({select:null==e?void 0:e.select,structuralSharing:null==e?void 0:e.structuralSharing,from:this.id}),this.useLoaderDeps=e=>an({...e,from:this.id}),this.useLoaderData=e=>on({...e,from:this.id}),this.useNavigate=()=>cn({from:this.fullPath}),this.Link=h.forwardRef((e,t)=>l.jsx(Sn,{ref:t,from:this.fullPath,...e}))}};var Cn=class extends gt{constructor(e){super(e),this.useMatch=e=>rn({select:null==e?void 0:e.select,from:this.id,structuralSharing:null==e?void 0:e.structuralSharing}),this.useRouteContext=e=>un({...e,from:this.id}),this.useSearch=e=>ln({select:null==e?void 0:e.select,structuralSharing:null==e?void 0:e.structuralSharing,from:this.id}),this.useParams=e=>sn({select:null==e?void 0:e.select,structuralSharing:null==e?void 0:e.structuralSharing,from:this.id}),this.useLoaderDeps=e=>an({...e,from:this.id}),this.useLoaderData=e=>on({...e,from:this.id}),this.useNavigate=()=>cn({from:this.fullPath}),this.Link=h.forwardRef((e,t)=>l.jsx(Sn,{ref:t,from:this.fullPath,...e}))}};function Nn(e){return new jn(e,{silent:!0}).createRoute}var jn=class{constructor(e,t){this.path=e,this.createRoute=e=>{const t=function(e){return new kn(e)}(e);return t.isRoot=!1,t},this.silent=null==t?void 0:t.silent}};function _n(e){const t=Ct(),n=`not-found-${tn(t.stores.location,e=>e.pathname)}-${tn(t.stores.status,e=>e)}`;return l.jsx(vt,{getResetKey:()=>n,onCatch:(t,n)=>{var r;if(!be(t))throw t;null==(r=e.onCatch)||r.call(e,t,n)},errorComponent:({error:t})=>{var n;if(be(t))return null==(n=e.fallback)?void 0:n.call(e,t);throw t},children:e.children})}function En(){return l.jsx("p",{children:"Not Found"})}function Pn(e){return l.jsx(l.Fragment,{children:e.children})}function Rn(e,t,n){return t.options.notFoundComponent?l.jsx(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?l.jsx(e.options.defaultNotFoundComponent,{...n}):l.jsx(En,{})}var Ln=p.memo(function({matchId:e}){const t=Ct(),n=t.stores.matchStores.get(e);n||Z();const r=tn(t.stores.loadedAt,e=>e),o=tn(n,e=>e);return l.jsx(Fn,{router:t,matchId:e,resetKey:r,matchState:p.useMemo(()=>{var e;const n=o.routeId,r=null==(e=t.routesById[n].parentRoute)?void 0:e.id;return{routeId:n,ssr:o.ssr,_displayPending:o._displayPending,parentRouteId:r}},[o._displayPending,o.routeId,o.ssr,t.routesById])})});function Fn({router:e,matchId:t,resetKey:n,matchState:r}){var o,a;const i=e.routesById[r.routeId],s=i.options.pendingComponent??e.options.defaultPendingComponent,c=s?l.jsx(s,{}):null,u=i.options.errorComponent??e.options.defaultErrorComponent,d=i.options.onCatch??e.options.defaultOnCatch,f=i.isRoot?i.options.notFoundComponent??(null==(o=e.options.notFoundRoute)?void 0:o.options.component):i.options.notFoundComponent,h=!1===r.ssr||"data-only"===r.ssr,m=(!i.isRoot||i.options.wrapInSuspense||h)&&(i.options.wrapInSuspense??s??((null==(a=i.options.errorComponent)?void 0:a.preload)||h))?p.Suspense:Pn,g=u?vt:Pn,v=f?_n:Pn;return l.jsxs(i.isRoot?i.options.shellComponent??Pn:Pn,{children:[l.jsx(Nt.Provider,{value:t,children:l.jsx(m,{fallback:c,children:l.jsx(g,{getResetKey:()=>n,errorComponent:u||xt,onCatch:(e,t)=>{if(be(e))throw e.routeId??(e.routeId=r.routeId),e;null==d||d(e,t)},children:l.jsx(v,{fallback:e=>{if(e.routeId??(e.routeId=r.routeId),!f||e.routeId&&e.routeId!==r.routeId||!e.routeId&&!i.isRoot)throw e;return p.createElement(f,e)},children:h||r._displayPending?l.jsx(bt,{fallback:c,children:l.jsx(Mn,{matchId:t})}):l.jsx(Mn,{matchId:t})})})})}),r.parentRouteId===Le?l.jsxs(l.Fragment,{children:[l.jsx(An,{resetKey:n}),(e.options.scrollRestoration,null)]}):null]})}function An({resetKey:e}){const t=Ct(),n=p.useRef(void 0);return A(()=>{const e=t.latestLocation.href;void 0!==n.current&&n.current===e||(t.emit({type:"onRendered",...ct(t.stores.location.get(),t.stores.resolvedLocation.get())}),n.current=e)},[t.latestLocation.state.__TSR_key,e,t]),null}var Mn=p.memo(function({matchId:e}){const t=Ct(),n=(e,n)=>{var r;return(null==(r=t.getMatch(e.id))?void 0:r._nonReactive[n])??e._nonReactive[n]},r=t.stores.matchStores.get(e);r||Z();const o=tn(r,e=>e),a=o.routeId,i=t.routesById[a],s=p.useMemo(()=>{var e;const n=null==(e=t.routesById[a].options.remountDeps??t.options.defaultRemountDeps)?void 0:e({routeId:a,loaderDeps:o.loaderDeps,params:o._strictParams,search:o._strictSearch});return n?JSON.stringify(n):void 0},[a,o.loaderDeps,o._strictParams,o._strictSearch,t.options.defaultRemountDeps,t.routesById]),c=p.useMemo(()=>{const e=i.options.component??t.options.defaultComponent;return e?l.jsx(e,{},s):l.jsx(Tn,{})},[s,i.options.component,t.options.defaultComponent]);if(o._displayPending)throw n(o,"displayPendingPromise");if(o._forcePending)throw n(o,"minPendingPromise");if("pending"===o.status){const e=i.options.pendingMinMs??t.options.defaultPendingMinMs;if(e){const n=t.getMatch(o.id);if(n&&!n._nonReactive.minPendingPromise){const t=q();n._nonReactive.minPendingPromise=t,setTimeout(()=>{t.resolve(),n._nonReactive.minPendingPromise=void 0},e)}}throw n(o,"loadPromise")}if("notFound"===o.status)return be(o.error)||Z(),Rn(t,i,o.error);if("redirected"===o.status)throw Fe(o.error)||Z(),n(o,"loadPromise");if("error"===o.status)throw o.error;return c}),Tn=p.memo(function(){const e=Ct(),t=p.useContext(Nt);let n,r,o=!1;{const a=t?e.stores.matchStores.get(t):void 0;[n,o]=tn(a,e=>[null==e?void 0:e.routeId,(null==e?void 0:e.globalNotFound)??!1]),r=tn(e.stores.matchesId,e=>e[e.findIndex(e=>e===t)+1])}const a=n?e.routesById[n]:void 0,i=e.options.defaultPendingComponent?l.jsx(e.options.defaultPendingComponent,{}):null;if(o)return a||Z(),Rn(e,a,void 0);if(!r)return null;const s=l.jsx(Ln,{matchId:r});return n===Le?l.jsx(p.Suspense,{fallback:i,children:s}):s});function Dn(){const e=Ct(),t=p.useRef({router:e,mounted:!1}),[n,r]=p.useState(!1),o=tn(e.stores.isLoading,e=>e),a=tn(e.stores.hasPending,e=>e),i=M(o),s=o||n||a,l=M(s),c=o||a,u=M(c);return e.startTransition=e=>{r(!0),p.startTransition(()=>{e(),r(!1)})},p.useEffect(()=>{const t=e.history.subscribe(e.load),n=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return he(e.latestLocation.publicHref)!==he(n.publicHref)&&e.commitLocation({...n,replace:!0}),()=>{t()}},[e,e.history]),A(()=>{if("undefined"!=typeof window&&e.ssr||t.current.router===e&&t.current.mounted)return;t.current={router:e,mounted:!0};(async()=>{try{await e.load()}catch(t){console.error(t)}})()},[e]),A(()=>{i&&!o&&e.emit({type:"onLoad",...ct(e.stores.location.get(),e.stores.resolvedLocation.get())})},[i,e,o]),A(()=>{u&&!c&&e.emit({type:"onBeforeRouteMount",...ct(e.stores.location.get(),e.stores.resolvedLocation.get())})},[c,u,e]),A(()=>{if(l&&!s){const t=ct(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:"onResolved",...t}),Bt(()=>{e.stores.status.set("idle"),e.stores.resolvedLocation.set(e.stores.location.get())}),t.hrefChanged&&function(e){if("undefined"!=typeof document&&document.querySelector){const t=e.stores.location.get(),n=t.state.__hashScrollIntoViewOptions??!0;if(n&&""!==t.hash){const e=document.getElementById(t.hash);e&&e.scrollIntoView(n)}}}(e)}},[s,l,e]),null}function On(){const e=Ct(),t=e.routesById[Le].options.pendingComponent??e.options.defaultPendingComponent,n=t?l.jsx(t,{}):null,r=l.jsxs("undefined"!=typeof document&&e.ssr?Pn:p.Suspense,{fallback:n,children:[l.jsx(Dn,{}),l.jsx(In,{})]});return e.options.InnerWrap?l.jsx(e.options.InnerWrap,{children:r}):r}function In(){const e=Ct(),t=tn(e.stores.firstId,e=>e),n=tn(e.stores.loadedAt,e=>e),r=t?l.jsx(Ln,{matchId:t}):null;return l.jsx(Nt.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:l.jsx(vt,{getResetKey:()=>n,errorComponent:xt,onCatch:void 0,children:r})})}var zn=e=>({createMutableStore:Ut,createReadonlyStore:Ut,batch:Bt}),Bn=class extends ut{constructor(e){super(e,zn)}};function $n({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=l.jsx(kt.Provider,{value:e,children:t});return e.options.Wrap?l.jsx(e.options.Wrap,{children:r}):r}function Wn({router:e,...t}){return l.jsx($n,{router:e,...t,children:l.jsx(On,{})})}var Un={};const Vn=e=>"string"==typeof e,Hn=()=>{let e,t;const n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},Kn=e=>null==e?"":""+e,qn=/###/g,Gn=e=>e&&e.indexOf("###")>-1?e.replace(qn,"."):e,Qn=e=>!e||Vn(e),Yn=(e,t,n)=>{const r=Vn(t)?t.split("."):t;let o=0;for(;o{const{obj:r,k:o}=Yn(e,t,Object);if(void 0!==r||1===t.length)return void(r[o]=n);let a=t[t.length-1],i=t.slice(0,t.length-1),s=Yn(e,i,Object);for(;void 0===s.obj&&i.length;)a=`${i[i.length-1]}.${a}`,i=i.slice(0,i.length-1),s=Yn(e,i,Object),(null==s?void 0:s.obj)&&void 0!==s.obj[`${s.k}.${a}`]&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=n},Jn=(e,t)=>{const{obj:n,k:r}=Yn(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},Zn=(e,t,n)=>{for(const r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?Vn(e[r])||e[r]instanceof String||Vn(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):Zn(e[r],t[r],n):e[r]=t[r]);return e},er=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var tr={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const nr=e=>Vn(e)?e.replace(/[&<>"'\/]/g,e=>tr[e]):e;const rr=[" ",",","?","!",";"],or=new class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(void 0!==t)return t;const n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}}(20),ar=(e,t,n=".")=>{if(!e)return;if(e[t]){if(!Object.prototype.hasOwnProperty.call(e,t))return;return e[t]}const r=t.split(n);let o=e;for(let a=0;a-1&&inull==e?void 0:e.replace(/_/g,"-"),sr={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){var n,r;null==(r=null==(n=null==console?void 0:console[e])?void 0:n.apply)||r.call(n,console,t)}};class lr{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||"i18next:",this.logger=e||sr,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,"log","",!0)}warn(...e){return this.forward(e,"warn","",!0)}error(...e){return this.forward(e,"error","")}deprecate(...e){return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,n,r){return r&&!this.debug?null:(Vn(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new lr(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return(e=e||this.options).prefix=e.prefix||this.prefix,new lr(this.logger,e)}}var cr=new lr;class ur{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(e=>{this.observers[e]||(this.observers[e]=new Map);const n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){this.observers[e]&&(t?this.observers[e].delete(t):delete this.observers[e])}emit(e,...t){if(this.observers[e]){Array.from(this.observers[e].entries()).forEach(([e,n])=>{for(let r=0;r{for(let o=0;o-1&&this.options.ns.splice(t,1)}getResource(e,t,n,r={}){var o,a;const i=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,s=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;e.indexOf(".")>-1?l=e.split("."):(l=[e,t],n&&(Array.isArray(n)?l.push(...n):Vn(n)&&i?l.push(...n.split(i)):l.push(n)));const c=Jn(this.data,l);return!c&&!t&&!n&&e.indexOf(".")>-1&&(e=l[0],t=l[1],n=l.slice(2).join(".")),!c&&s&&Vn(n)?ar(null==(a=null==(o=this.data)?void 0:o[e])?void 0:a[t],n,i):c}addResource(e,t,n,r,o={silent:!1}){const a=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator;let i=[e,t];n&&(i=i.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(i=e.split("."),r=t,t=i[1]),this.addNamespaces(t),Xn(this.data,i,r),o.silent||this.emit("added",e,t,n,r)}addResources(e,t,n,r={silent:!1}){for(const o in n)(Vn(n[o])||Array.isArray(n[o]))&&this.addResource(e,t,o,n[o],{silent:!0});r.silent||this.emit("added",e,t,n)}addResourceBundle(e,t,n,r,o,a={silent:!1,skipCopy:!1}){let i=[e,t];e.indexOf(".")>-1&&(i=e.split("."),r=n,n=t,t=i[1]),this.addNamespaces(t);let s=Jn(this.data,i)||{};a.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?Zn(s,n,o):s={...s,...n},Xn(this.data,i,s),a.silent||this.emit("added",e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return void 0!==this.getResource(e,t)}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}}var fr={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,o){return e.forEach(e=>{var a;t=(null==(a=this.processors[e])?void 0:a.process(t,n,r,o))??t}),t}};const pr=Symbol("i18next/PATH_KEY");function hr(e,t){const{[pr]:n}=e(function(){const e=[],t=Object.create(null);let n;return t.get=(r,o)=>{var a;return null==(a=null==n?void 0:n.revoke)||a.call(n),o===pr?e:(e.push(o),n=Proxy.revocable(r,t),n.proxy)},Proxy.revocable(Object.create(null),t).proxy}()),r=(null==t?void 0:t.keySeparator)??".",o=(null==t?void 0:t.nsSeparator)??":";if(n.length>1&&o){const e=null==t?void 0:t.ns,a=Array.isArray(e)?e:null;if(a&&a.length>1&&a.slice(1).includes(n[0]))return`${n[0]}${o}${n.slice(1).join(r)}`}return n.join(r)}const mr={},gr=e=>!Vn(e)&&"boolean"!=typeof e&&"number"!=typeof e;class vr extends ur{constructor(e,t={}){var n,r;super(),n=e,r=this,["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"].forEach(e=>{n[e]&&(r[e]=n[e])}),this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=cr.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){const n={...t};if(null==e)return!1;const r=this.resolve(e,n);if(void 0===(null==r?void 0:r.res))return!1;const o=gr(r.res);return!1!==n.returnObjects||!o}extractFromKey(e,t){let n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");const r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator;let o=t.ns||this.options.defaultNS||[];const a=n&&e.indexOf(n)>-1,i=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||((e,t,n)=>{t=t||"",n=n||"";const r=rr.filter(e=>t.indexOf(e)<0&&n.indexOf(e)<0);if(0===r.length)return!0;const o=or.getRegExp(`(${r.map(e=>"?"===e?"\\?":e).join("|")})`);let a=!o.test(e);if(!a){const t=e.indexOf(n);t>0&&!o.test(e.substring(0,t))&&(a=!0)}return a})(e,n,r));if(a&&!i){const t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:Vn(o)?[o]:o};const a=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(a[0])>-1)&&(o=a.shift()),e=a.join(r)}return{key:e,namespaces:Vn(o)?[o]:o}}translate(e,t,n){let r="object"==typeof t?{...t}:t;if("object"!=typeof r&&this.options.overloadTranslationOptionHandler&&(r=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof r&&(r={...r}),r||(r={}),null==e)return"";"function"==typeof e&&(e=hr(e,{...this.options,...r})),Array.isArray(e)||(e=[String(e)]),e=e.map(e=>"function"==typeof e?hr(e,{...this.options,...r}):String(e));const o=void 0!==r.returnDetails?r.returnDetails:this.options.returnDetails,a=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,{key:i,namespaces:s}=this.extractFromKey(e[e.length-1],r),l=s[s.length-1];let c=void 0!==r.nsSeparator?r.nsSeparator:this.options.nsSeparator;void 0===c&&(c=":");const u=r.lng||this.language,d=r.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if("cimode"===(null==u?void 0:u.toLowerCase()))return d?o?{res:`${l}${c}${i}`,usedKey:i,exactUsedKey:i,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(r)}:`${l}${c}${i}`:o?{res:i,usedKey:i,exactUsedKey:i,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(r)}:i;const f=this.resolve(e,r);let p=null==f?void 0:f.res;const h=(null==f?void 0:f.usedKey)||i,m=(null==f?void 0:f.exactUsedKey)||i,g=void 0!==r.joinArrays?r.joinArrays:this.options.joinArrays,v=!this.i18nFormat||this.i18nFormat.handleAsObject,y=void 0!==r.count&&!Vn(r.count),x=vr.hasDefaultValue(r),b=y?this.pluralResolver.getSuffix(u,r.count,r):"",w=r.ordinal&&y?this.pluralResolver.getSuffix(u,r.count,{ordinal:!1}):"",S=y&&!r.ordinal&&0===r.count,k=S&&r[`defaultValue${this.options.pluralSeparator}zero`]||r[`defaultValue${b}`]||r[`defaultValue${w}`]||r.defaultValue;let C=p;v&&!p&&x&&(C=k);const N=gr(C),j=Object.prototype.toString.apply(C);if(!(v&&C&&N&&["[object Number]","[object Function]","[object RegExp]"].indexOf(j)<0)||Vn(g)&&Array.isArray(C))if(v&&Vn(g)&&Array.isArray(p))p=p.join(g),p&&(p=this.extendTranslation(p,e,r,n));else{let t=!1,o=!1;!this.isValidLookup(p)&&x&&(t=!0,p=k),this.isValidLookup(p)||(o=!0,p=i);const s=(r.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&o?void 0:p,d=x&&k!==p&&this.options.updateMissing;if(o||t||d){if(this.logger.log(d?"updateKey":"missingKey",u,l,i,d?k:p),a){const e=this.resolve(i,{...r,keySeparator:!1});e&&e.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let e=[];const t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,r.lng||this.language);if("fallback"===this.options.saveMissingTo&&t&&t[0])for(let r=0;r{var o;const a=x&&n!==p?n:s;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,a,d,r):(null==(o=this.backendConnector)?void 0:o.saveMissing)&&this.backendConnector.saveMissing(e,l,t,a,d,r),this.emit("missingKey",e,l,t,p)};this.options.saveMissing&&(this.options.saveMissingPlurals&&y?e.forEach(e=>{const t=this.pluralResolver.getSuffixes(e,r);S&&r[`defaultValue${this.options.pluralSeparator}zero`]&&t.indexOf(`${this.options.pluralSeparator}zero`)<0&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{n([e],i+t,r[`defaultValue${t}`]||k)})}):n(e,i,k))}p=this.extendTranslation(p,e,r,f,n),o&&p===i&&this.options.appendNamespaceToMissingKey&&(p=`${l}${c}${i}`),(o||t)&&this.options.parseMissingKeyHandler&&(p=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${c}${i}`:i,t?p:void 0,r))}else{if(!r.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,C,{...r,ns:s}):`key '${i} (${this.language})' returned an object instead of string.`;return o?(f.res=e,f.usedParams=this.getUsedParamsDetails(r),f):e}if(a){const e=Array.isArray(C),t=e?[]:{},n=e?m:h;for(const o in C)if(Object.prototype.hasOwnProperty.call(C,o)){const e=`${n}${a}${o}`;t[o]=x&&!p?this.translate(e,{...r,defaultValue:gr(k)?k[o]:void 0,joinArrays:!1,ns:s}):this.translate(e,{...r,joinArrays:!1,ns:s}),t[o]===e&&(t[o]=C[o])}p=t}}return o?(f.res=p,f.usedParams=this.getUsedParamsDetails(r),f):p}extendTranslation(e,t,n,r,o){var a,i;if(null==(a=this.i18nFormat)?void 0:a.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const a=Vn(e)&&(void 0!==(null==(i=null==n?void 0:n.interpolation)?void 0:i.skipOnVariables)?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let s;if(a){const t=e.match(this.interpolator.nestingRegexp);s=t&&t.length}let l=n.replace&&!Vn(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(l={...this.options.interpolation.defaultVariables,...l}),e=this.interpolator.interpolate(e,l,n.lng||this.language||r.usedLng,n),a){const t=e.match(this.interpolator.nestingRegexp);s<(t&&t.length)&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),!1!==n.nest&&(e=this.interpolator.nest(e,(...e)=>(null==o?void 0:o[0])!==e[0]||n.context?this.translate(...e,t):(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null),n)),n.interpolation&&this.interpolator.reset()}const s=n.postProcess||this.options.postProcess,l=Vn(s)?[s]:s;return null!=e&&(null==l?void 0:l.length)&&!1!==n.applyPostProcessor&&(e=fr.handle(l,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e,t={}){let n,r,o,a,i;return Vn(e)&&(e=[e]),Array.isArray(e)&&(e=e.map(e=>"function"==typeof e?hr(e,{...this.options,...t}):e)),e.forEach(e=>{if(this.isValidLookup(n))return;const s=this.extractFromKey(e,t),l=s.key;r=l;let c=s.namespaces;this.options.fallbackNS&&(c=c.concat(this.options.fallbackNS));const u=void 0!==t.count&&!Vn(t.count),d=u&&!t.ordinal&&0===t.count,f=void 0!==t.context&&(Vn(t.context)||"number"==typeof t.context)&&""!==t.context,p=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);c.forEach(e=>{var s,c;this.isValidLookup(n)||(i=e,mr[`${p[0]}-${e}`]||!(null==(s=this.utils)?void 0:s.hasLoadedNamespace)||(null==(c=this.utils)?void 0:c.hasLoadedNamespace(i))||(mr[`${p[0]}-${e}`]=!0,this.logger.warn(`key "${r}" for languages "${p.join(", ")}" won't get resolved as namespace "${i}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),p.forEach(r=>{var i;if(this.isValidLookup(n))return;a=r;const s=[l];if(null==(i=this.i18nFormat)?void 0:i.addLookupKeys)this.i18nFormat.addLookupKeys(s,l,r,e,t);else{let e;u&&(e=this.pluralResolver.getSuffix(r,t.count,t));const n=`${this.options.pluralSeparator}zero`,o=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(u&&(t.ordinal&&0===e.indexOf(o)&&s.push(l+e.replace(o,this.options.pluralSeparator)),s.push(l+e),d&&s.push(l+n)),f){const r=`${l}${this.options.contextSeparator||"_"}${t.context}`;s.push(r),u&&(t.ordinal&&0===e.indexOf(o)&&s.push(r+e.replace(o,this.options.pluralSeparator)),s.push(r+e),d&&s.push(r+n))}}let c;for(;c=s.pop();)this.isValidLookup(n)||(o=c,n=this.getResource(r,e,c,t))}))})}),{res:n,usedKey:r,exactUsedKey:o,usedLng:a,usedNS:i}}isValidLookup(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}getResource(e,t,n,r={}){var o;return(null==(o=this.i18nFormat)?void 0:o.getResource)?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(e={}){const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],n=e.replace&&!Vn(e.replace);let r=n?e.replace:e;if(n&&void 0!==e.count&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(const e of t)delete r[e]}return r}static hasDefaultValue(e){const t="defaultValue";for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,12)&&void 0!==e[n])return!0;return!1}}class yr{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=cr.create("languageUtils")}getScriptPartFromCode(e){if(!(e=ir(e))||e.indexOf("-")<0)return null;const t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}getLanguagePartFromCode(e){if(!(e=ir(e))||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(Vn(e)&&e.indexOf("-")>-1){let n;try{n=Intl.getCanonicalLocales(e)[0]}catch(t){}return n&&this.options.lowerCaseLng&&(n=n.toLowerCase()),n||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;const n=this.formatLanguageCode(e);this.options.supportedLngs&&!this.isSupportedCode(n)||(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;const n=this.getScriptPartFromCode(e);if(this.isSupportedCode(n))return t=n;const r=this.getLanguagePartFromCode(e);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(e=>e===r?e:e.indexOf("-")<0&&r.indexOf("-")<0?void 0:e.indexOf("-")>0&&r.indexOf("-")<0&&e.substring(0,e.indexOf("-"))===r||0===e.indexOf(r)&&r.length>1?e:void 0)}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),Vn(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}toResolveHierarchy(e,t){const n=this.getFallbackCodes((!1===t?[]:t)||this.options.fallbackLng||[],e),r=[],o=e=>{e&&(this.isSupportedCode(e)?r.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return Vn(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?("languageOnly"!==this.options.load&&o(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&o(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&o(this.getLanguagePartFromCode(e))):Vn(e)&&o(this.formatLanguageCode(e)),n.forEach(e=>{r.indexOf(e)<0&&o(this.formatLanguageCode(e))}),r}}const xr={zero:0,one:1,two:2,few:3,many:4,other:5},br={select:e=>1===e?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class wr{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=cr.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){const n=ir("dev"===e?"en":e),r=t.ordinal?"ordinal":"cardinal",o=JSON.stringify({cleanedCode:n,type:r});if(o in this.pluralRulesCache)return this.pluralRulesCache[o];let a;try{a=new Intl.PluralRules(n,{type:r})}catch(i){if("undefined"==typeof Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),br;if(!e.match(/-|_/))return br;const n=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(n,t)}return this.pluralRulesCache[o]=a,a}needsPlural(e,t={}){let n=this.getRule(e,t);return n||(n=this.getRule("dev",t)),(null==n?void 0:n.resolvedOptions().pluralCategories.length)>1}getPluralFormsOfKey(e,t,n={}){return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let n=this.getRule(e,t);return n||(n=this.getRule("dev",t)),n?n.resolvedOptions().pluralCategories.sort((e,t)=>xr[e]-xr[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${e}`):[]}getSuffix(e,t,n={}){const r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",t,n))}}const Sr=(e,t,n,r=".",o=!0)=>{let a=((e,t,n)=>{const r=Jn(e,n);return void 0!==r?r:Jn(t,n)})(e,t,n);return!a&&o&&Vn(n)&&(a=ar(e,n,r),void 0===a&&(a=ar(t,n,r))),a},kr=e=>e.replace(/\$/g,"$$$$");class Cr{constructor(e={}){var t;this.logger=cr.create("interpolator"),this.options=e,this.format=(null==(t=null==e?void 0:e.interpolation)?void 0:t.format)||(e=>e),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:o,prefixEscaped:a,suffix:i,suffixEscaped:s,formatSeparator:l,unescapeSuffix:c,unescapePrefix:u,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:p,nestingSuffixEscaped:h,nestingOptionsSeparator:m,maxReplaces:g,alwaysFormat:v}=e.interpolation;this.escape=void 0!==t?t:nr,this.escapeValue=void 0===n||n,this.useRawValueToEscape=void 0!==r&&r,this.prefix=o?er(o):a||"{{",this.suffix=i?er(i):s||"}}",this.formatSeparator=l||",",this.unescapePrefix=c?"":u||"-",this.unescapeSuffix=this.unescapePrefix?"":c||"",this.nestingPrefix=d?er(d):f||er("$t("),this.nestingSuffix=p?er(p):h||er(")"),this.nestingOptionsSeparator=m||",",this.maxReplaces=g||1e3,this.alwaysFormat=void 0!==v&&v,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(e,t)=>(null==e?void 0:e.source)===t?(e.lastIndex=0,e):new RegExp(t,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,n,r){var o;let a,i,s;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=e=>{if(e.indexOf(this.formatSeparator)<0){const o=Sr(t,l,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(o,void 0,n,{...r,...t,interpolationkey:e}):o}const o=e.split(this.formatSeparator),a=o.shift().trim(),i=o.join(this.formatSeparator).trim();return this.format(Sr(t,l,a,this.options.keySeparator,this.options.ignoreJSONStructure),i,n,{...r,...t,interpolationkey:a})};this.resetRegExp();const u=(null==r?void 0:r.missingInterpolationHandler)||this.options.missingInterpolationHandler,d=void 0!==(null==(o=null==r?void 0:r.interpolation)?void 0:o.skipOnVariables)?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>kr(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?kr(this.escape(e)):kr(e)}].forEach(t=>{for(s=0;a=t.regex.exec(e);){const n=a[1].trim();if(i=c(n),void 0===i)if("function"==typeof u){const t=u(e,a,r);i=Vn(t)?t:""}else if(r&&Object.prototype.hasOwnProperty.call(r,n))i="";else{if(d){i=a[0];continue}this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),i=""}else Vn(i)||this.useRawValueToEscape||(i=Kn(i));const o=t.safeValue(i);if(e=e.replace(a[0],o),d?(t.regex.lastIndex+=i.length,t.regex.lastIndex-=a[0].length):t.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),e}nest(e,t,n={}){let r,o,a;const i=(e,t)=>{const n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;const r=e.split(new RegExp(`${er(n)}[ ]*{`));let o=`{${r[1]}`;e=r[0],o=this.interpolate(o,a);const i=o.match(/'/g),s=o.match(/"/g);(((null==i?void 0:i.length)??0)%2==0&&!s||((null==s?void 0:s.length)??0)%2!=0)&&(o=o.replace(/'/g,'"'));try{a=JSON.parse(o),t&&(a={...t,...a})}catch(l){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,l),`${e}${n}${o}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,e};for(;r=this.nestingRegexp.exec(e);){let s=[];a={...n},a=a.replace&&!Vn(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;const l=/{.*}/.test(r[1])?r[1].lastIndexOf("}")+1:r[1].indexOf(this.formatSeparator);if(-1!==l&&(s=r[1].slice(l).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),r[1]=r[1].slice(0,l)),o=t(i.call(this,r[1].trim(),a),a),o&&r[0]===e&&!Vn(o))return o;Vn(o)||(o=Kn(o)),o||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),o=""),s.length&&(o=s.reduce((e,t)=>this.format(e,t,n.lng,{...n,interpolationkey:r[1].trim()}),o.trim())),e=e.replace(r[0],o),this.regexp.lastIndex=0}return e}}const Nr=e=>{const t={};return(n,r,o)=>{let a=o;o&&o.interpolationkey&&o.formatParams&&o.formatParams[o.interpolationkey]&&o[o.interpolationkey]&&(a={...a,[o.interpolationkey]:void 0});const i=r+JSON.stringify(a);let s=t[i];return s||(s=e(ir(r),o),t[i]=s),s(n)}},jr=e=>(t,n,r)=>e(ir(n),r)(t);class _r{constructor(e={}){this.logger=cr.create("formatter"),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||",";const n=t.cacheInBuiltFormats?Nr:jr;this.formats={number:n((e,t)=>{const n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:n((e,t)=>{const n=new Intl.NumberFormat(e,{...t,style:"currency"});return e=>n.format(e)}),datetime:n((e,t)=>{const n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:n((e,t)=>{const n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||"day")}),list:n((e,t)=>{const n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Nr(t)}format(e,t,n,r={}){const o=t.split(this.formatSeparator);if(o.length>1&&o[0].indexOf("(")>1&&o[0].indexOf(")")<0&&o.find(e=>e.indexOf(")")>-1)){const e=o.findIndex(e=>e.indexOf(")")>-1);o[0]=[o[0],...o.splice(1,e)].join(this.formatSeparator)}return o.reduce((e,t)=>{var o;const{formatName:a,formatOptions:i}=(e=>{let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const r=e.split("(");t=r[0].toLowerCase().trim();const o=r[1].substring(0,r[1].length-1);"currency"===t&&o.indexOf(":")<0?n.currency||(n.currency=o.trim()):"relativetime"===t&&o.indexOf(":")<0?n.range||(n.range=o.trim()):o.split(";").forEach(e=>{if(e){const[t,...r]=e.split(":"),o=r.join(":").trim().replace(/^'+|'+$/g,""),a=t.trim();n[a]||(n[a]=o),"false"===o&&(n[a]=!1),"true"===o&&(n[a]=!0),isNaN(o)||(n[a]=parseInt(o,10))}})}return{formatName:t,formatOptions:n}})(t);if(this.formats[a]){let t=e;try{const s=(null==(o=null==r?void 0:r.formatParams)?void 0:o[r.interpolationkey])||{},l=s.locale||s.lng||r.locale||r.lng||n;t=this.formats[a](e,l,{...i,...r,...s})}catch(s){this.logger.warn(s)}return t}return this.logger.warn(`there was no format function for ${a}`),e},e)}}class Er extends ur{constructor(e,t,n,r={}){var o,a;super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=cr.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],null==(a=null==(o=this.backend)?void 0:o.init)||a.call(o,n,r.backend,r)}queueLoad(e,t,n,r){const o={},a={},i={},s={};return e.forEach(e=>{let r=!0;t.forEach(t=>{const i=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[i]=2:this.state[i]<0||(1===this.state[i]?void 0===a[i]&&(a[i]=!0):(this.state[i]=1,r=!1,void 0===a[i]&&(a[i]=!0),void 0===o[i]&&(o[i]=!0),void 0===s[t]&&(s[t]=!0)))}),r||(i[e]=!0)}),(Object.keys(o).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(o),pending:Object.keys(a),toLoadLanguages:Object.keys(i),toLoadNamespaces:Object.keys(s)}}loaded(e,t,n){const r=e.split("|"),o=r[0],a=r[1];t&&this.emit("failedLoading",o,a,t),!t&&n&&this.store.addResourceBundle(o,a,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);const i={};this.queue.forEach(n=>{((e,t,n)=>{const{obj:r,k:o}=Yn(e,t,Object);r[o]=r[o]||[],r[o].push(n)})(n.loaded,[o],a),((e,t)=>{void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)})(n,e),t&&n.errors.push(t),0!==n.pendingCount||n.done||(Object.keys(n.loaded).forEach(e=>{i[e]||(i[e]={});const t=n.loaded[e];t.length&&t.forEach(t=>{void 0===i[e][t]&&(i[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit("loaded",i),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n,r=0,o=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:o,callback:a});this.readingCalls++;const i=(i,s)=>{if(this.readingCalls--,this.waitingReads.length>0){const e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}i&&s&&r{this.read.call(this,e,t,n,r+1,2*o,a)},o):a(i,s)},s=this.backend[n].bind(this.backend);if(2!==s.length)return s(e,t,i);try{const n=s(e,t);n&&"function"==typeof n.then?n.then(e=>i(null,e)).catch(i):i(null,n)}catch(l){i(l)}}prepareLoading(e,t,n={},r){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();Vn(e)&&(e=this.languageUtils.toResolveHierarchy(e)),Vn(t)&&(t=[t]);const o=this.queueLoad(e,t,n,r);if(!o.toLoad.length)return o.pending.length||r(),null;o.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e,t=""){const n=e.split("|"),r=n[0],o=n[1];this.read(r,o,"read",void 0,void 0,(n,a)=>{n&&this.logger.warn(`${t}loading namespace ${o} for language ${r} failed`,n),!n&&a&&this.logger.log(`${t}loaded namespace ${o} for language ${r}`,a),this.loaded(e,n,a)})}saveMissing(e,t,n,r,o,a={},i=()=>{}){var s,l,c,u,d;if(!(null==(l=null==(s=this.services)?void 0:s.utils)?void 0:l.hasLoadedNamespace)||(null==(u=null==(c=this.services)?void 0:c.utils)?void 0:u.hasLoadedNamespace(t))){if(null!=n&&""!==n){if(null==(d=this.backend)?void 0:d.create){const s={...a,isUpdate:o},l=this.backend.create.bind(this.backend);if(l.length<6)try{let o;o=5===l.length?l(e,t,n,r,s):l(e,t,n,r),o&&"function"==typeof o.then?o.then(e=>i(null,e)).catch(i):i(null,o)}catch(f){i(f)}else l(e,t,n,r,i,s)}e&&e[0]&&this.store.addResource(e[0],t,n,r)}}else this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")}}const Pr=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if("object"==typeof e[1]&&(t=e[1]),Vn(e[1])&&(t.defaultValue=e[1]),Vn(e[2])&&(t.tDescription=e[2]),"object"==typeof e[2]||"object"==typeof e[3]){const n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Rr=e=>{var t,n;return Vn(e.ns)&&(e.ns=[e.ns]),Vn(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),Vn(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),(null==(n=null==(t=e.supportedLngs)?void 0:t.indexOf)?void 0:n.call(t,"cimode"))<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),"boolean"==typeof e.initImmediate&&(e.initAsync=e.initImmediate),e},Lr=()=>{},Fr="__i18next_supportNoticeShown";class Ar extends ur{constructor(e={},t){var n;if(super(),this.options=Rr(e),this.services={},this.logger=cr,this.modules={external:[]},n=this,Object.getOwnPropertyNames(Object.getPrototypeOf(n)).forEach(e=>{"function"==typeof n[e]&&(n[e]=n[e].bind(n))}),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,"function"==typeof e&&(t=e,e={}),null==e.defaultNS&&e.ns&&(Vn(e.ns)?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));const n=Pr();var r,o,a,i,s,l,c,u,d,f,p,h,m,g;this.options={...n,...this.options,...Rr(e)},this.options.interpolation={...n.interpolation,...this.options.interpolation},void 0!==e.keySeparator&&(this.options.userDefinedKeySeparator=e.keySeparator),void 0!==e.nsSeparator&&(this.options.userDefinedNsSeparator=e.nsSeparator),"function"!=typeof this.options.overloadTranslationOptionHandler&&(this.options.overloadTranslationOptionHandler=n.overloadTranslationOptionHandler),!1===this.options.showSupportNotice||((null==(i=null==(a=null==(o=null==(r=this)?void 0:r.modules)?void 0:o.backend)?void 0:a.name)?void 0:i.indexOf("Locize"))>0||(null==(u=null==(c=null==(l=null==(s=null==r?void 0:r.modules)?void 0:s.backend)?void 0:l.constructor)?void 0:c.name)?void 0:u.indexOf("Locize"))>0||(null==(f=null==(d=null==r?void 0:r.options)?void 0:d.backend)?void 0:f.backends)&&r.options.backend.backends.some(e=>{var t,n,r;return(null==(t=null==e?void 0:e.name)?void 0:t.indexOf("Locize"))>0||(null==(r=null==(n=null==e?void 0:e.constructor)?void 0:n.name)?void 0:r.indexOf("Locize"))>0})||(null==(h=null==(p=null==r?void 0:r.options)?void 0:p.backend)?void 0:h.projectId)||(null==(g=null==(m=null==r?void 0:r.options)?void 0:m.backend)?void 0:g.backendOptions)&&r.options.backend.backendOptions.some(e=>null==e?void 0:e.projectId))||"undefined"!=typeof globalThis&&globalThis[Fr]||"undefined"!=typeof process&&Un&&Un.I18NEXT_NO_SUPPORT_NOTICE||"undefined"!=typeof process&&Un||("undefined"!=typeof console&&void 0!==console.info&&console.info("🌐 i18next is made possible by our own product, Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙"),"undefined"!=typeof globalThis&&(globalThis[Fr]=!0));const v=e=>e?"function"==typeof e?new e:e:null;if(!this.options.isClone){let e;this.modules.logger?cr.init(v(this.modules.logger),this.options):cr.init(null,this.options),e=this.modules.formatter?this.modules.formatter:_r;const t=new yr(this.options);this.store=new dr(this.options.resources,this.options);const r=this.services;r.logger=cr,r.resourceStore=this.store,r.languageUtils=t,r.pluralResolver=new wr(t,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix});this.options.interpolation.format&&this.options.interpolation.format!==n.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),!e||this.options.interpolation.format&&this.options.interpolation.format!==n.interpolation.format||(r.formatter=v(e),r.formatter.init&&r.formatter.init(r,this.options),this.options.interpolation.format=r.formatter.format.bind(r.formatter)),r.interpolator=new Cr(this.options),r.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},r.backendConnector=new Er(v(this.modules.backend),r.resourceStore,r,this.options),r.backendConnector.on("*",(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(r.languageDetector=v(this.modules.languageDetector),r.languageDetector.init&&r.languageDetector.init(r,this.options.detection,this.options)),this.modules.i18nFormat&&(r.i18nFormat=v(this.modules.i18nFormat),r.i18nFormat.init&&r.i18nFormat.init(this)),this.translator=new vr(this.services,this.options),this.translator.on("*",(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||(t=Lr),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&"dev"!==e[0]&&(this.options.lng=e[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(e=>{this[e]=(...t)=>this.store[e](...t)});["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});const y=Hn(),x=()=>{const e=(e,n)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),y.resolve(n),t(e,n)};if(this.languages&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?x():setTimeout(x,0),y}loadResources(e,t=Lr){var n,r;let o=t;const a=Vn(e)?e:this.language;if("function"==typeof e&&(o=e),!this.options.resources||this.options.partialBundledLanguages){if("cimode"===(null==a?void 0:a.toLowerCase())&&(!this.options.preload||0===this.options.preload.length))return o();const e=[],t=t=>{if(!t)return;if("cimode"===t)return;this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{"cimode"!==t&&e.indexOf(t)<0&&e.push(t)})};if(a)t(a);else{this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e))}null==(r=null==(n=this.options.preload)?void 0:n.forEach)||r.call(n,e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{e||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),o(e)})}else o(null)}reloadResources(e,t,n){const r=Hn();return"function"==typeof e&&(n=e,e=void 0),"function"==typeof t&&(n=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),n||(n=Lr),this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&fr.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1)){for(let e=0;e-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;const n=Hn();this.emit("languageChanging",e);const r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},o=(o,a)=>{a?this.isLanguageChangingTo===e&&(r(a),this.translator.changeLanguage(a),this.isLanguageChangingTo=void 0,this.emit("languageChanged",a),this.logger.log("languageChanged",a)):this.isLanguageChangingTo=void 0,n.resolve((...e)=>this.t(...e)),t&&t(o,(...e)=>this.t(...e))},a=t=>{var n,a;e||t||!this.services.languageDetector||(t=[]);const i=Vn(t)?t:t&&t[0],s=this.store.hasLanguageSomeTranslations(i)?i:this.services.languageUtils.getBestMatchFromCodes(Vn(t)?[t]:t);s&&(this.language||r(s),this.translator.language||this.translator.changeLanguage(s),null==(a=null==(n=this.services.languageDetector)?void 0:n.cacheUserLanguage)||a.call(n,s)),this.loadResources(s,e=>{o(e,s)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e):a(this.services.languageDetector.detect()),n}getFixedT(e,t,n){const r=(e,t,...o)=>{let a;a="object"!=typeof t?this.options.overloadTranslationOptionHandler([e,t].concat(o)):{...t},a.lng=a.lng||r.lng,a.lngs=a.lngs||r.lngs,a.ns=a.ns||r.ns,""!==a.keyPrefix&&(a.keyPrefix=a.keyPrefix||n||r.keyPrefix);const i={...this.options,...a};"function"==typeof a.keyPrefix&&(a.keyPrefix=hr(a.keyPrefix,i));const s=this.options.keySeparator||".";let l;return a.keyPrefix&&Array.isArray(e)?l=e.map(e=>("function"==typeof e&&(e=hr(e,i)),`${a.keyPrefix}${s}${e}`)):("function"==typeof e&&(e=hr(e,i)),l=a.keyPrefix?`${a.keyPrefix}${s}${e}`:e),this.t(l,a)};return Vn(e)?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}t(...e){var t;return null==(t=this.translator)?void 0:t.translate(...e)}exists(...e){var t;return null==(t=this.translator)?void 0:t.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const n=t.lng||this.resolvedLanguage||this.languages[0],r=!!this.options&&this.options.fallbackLng,o=this.languages[this.languages.length-1];if("cimode"===n.toLowerCase())return!0;const a=(e,t)=>{const n=this.services.backendConnector.state[`${e}|${t}`];return-1===n||0===n||2===n};if(t.precheck){const e=t.precheck(this,a);if(void 0!==e)return e}return!!this.hasResourceBundle(n,e)||(!(this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages))||!(!a(n,e)||r&&!a(o,e)))}loadNamespaces(e,t){const n=Hn();return this.options.ns?(Vn(e)&&(e=[e]),e.forEach(e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){const n=Hn();Vn(e)&&(e=[e]);const r=this.options.preload||[],o=e.filter(e=>r.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e));return o.length?(this.options.preload=r.concat(o),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){var t,n;if(e||(e=this.resolvedLanguage||((null==(t=this.languages)?void 0:t.length)>0?this.languages[0]:this.language)),!e)return"rtl";try{const t=new Intl.Locale(e);if(t&&t.getTextInfo){const e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch(o){}const r=(null==(n=this.services)?void 0:n.languageUtils)||new yr(Pr());return e.toLowerCase().indexOf("-latn")>1?"ltr":["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(r.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(e={},t){const n=new Ar(e,t);return n.createInstance=Ar.createInstance,n}cloneInstance(e={},t=Lr){const n=e.forkResourceStore;n&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},o=new Ar(r);void 0===e.debug&&void 0===e.prefix||(o.logger=o.logger.clone(e));if(["store","services","language"].forEach(e=>{o[e]=this[e]}),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},n){const e=Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),e[t]),e),{});o.store=new dr(e,r),o.services.resourceStore=o.store}if(e.interpolation){const t={...Pr().interpolation,...this.options.interpolation,...e.interpolation},n={...r,interpolation:t};o.services.interpolator=new Cr(n)}return o.translator=new vr(o.services,r),o.translator.on("*",(e,...t)=>{o.emit(e,...t)}),o.init(r,t),o.translator.options=r,o.translator.backendConnector.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},o}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Mr=Ar.createInstance();Mr.createInstance,Mr.dir,Mr.init,Mr.loadResources,Mr.reloadResources,Mr.use,Mr.changeLanguage,Mr.getFixedT,Mr.t,Mr.exists,Mr.setDefaultNamespace,Mr.hasLoadedNamespace,Mr.loadNamespaces,Mr.loadLanguages;const Tr={},Dr=(e,t,n,r)=>{Br(n)&&Tr[n]||(Br(n)&&(Tr[n]=new Date),((e,t,n,r)=>{var o,a,i,s;const l=[n,{code:t,...r||{}}];if(null==(a=null==(o=null==e?void 0:e.services)?void 0:o.logger)?void 0:a.forward)return e.services.logger.forward(l,"warn","react-i18next::",!0);Br(l[0])&&(l[0]=`react-i18next:: ${l[0]}`),(null==(s=null==(i=null==e?void 0:e.services)?void 0:i.logger)?void 0:s.warn)?e.services.logger.warn(...l):(null==console?void 0:console.warn)&&console.warn(...l)})(e,t,n,r))},Or=(e,t)=>()=>{if(e.isInitialized)t();else{const n=()=>{setTimeout(()=>{e.off("initialized",n)},0),t()};e.on("initialized",n)}},Ir=(e,t,n)=>{e.loadNamespaces(t,Or(e,n))},zr=(e,t,n,r)=>{if(Br(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return Ir(e,n,r);n.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,Or(e,r))},Br=e=>"string"==typeof e,$r=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Wr={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},Ur=e=>Wr[e];let Vr={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:e=>e.replace($r,Ur)};let Hr;const Kr={type:"3rdParty",init(e){((e={})=>{Vr={...Vr,...e}})(e.options.react),(e=>{Hr=e})(e)}},qr=p.createContext();class Gr{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}const Qr=(e,t,n,r)=>e.getFixedT(t,n,r),Yr=(e,t={})=>{var n,r,o,a;const{i18n:i}=t,{i18n:s,defaultNS:l}=p.useContext(qr)||{},c=i||s||Hr;if(c&&!c.reportNamespaces&&(c.reportNamespaces=new Gr),!c){Dr(c,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const e=(e,t)=>{return Br(t)?t:"object"==typeof(n=t)&&null!==n&&Br(t.defaultValue)?t.defaultValue:Array.isArray(e)?e[e.length-1]:e;var n},t=[e,{},!1];return t.t=e,t.i18n={},t.ready=!1,t}(null==(n=c.options.react)?void 0:n.wait)&&Dr(c,"DEPRECATED_OPTION","useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const u={...Vr,...c.options.react,...t},{useSuspense:d,keyPrefix:f}=u;let h=l||(null==(r=c.options)?void 0:r.defaultNS);h=Br(h)?[h]:h||["translation"],null==(a=(o=c.reportNamespaces).addUsedNamespaces)||a.call(o,h);const m=(c.isInitialized||c.initializedStoreOnce)&&h.every(e=>((e,t,n={})=>t.languages&&t.languages.length?t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,r)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}):(Dr(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0))(e,c,u)),g=((e,t,n,r)=>p.useCallback(Qr(e,t,n,r),[e,t,n,r]))(c,t.lng||null,"fallback"===u.nsMode?h:h[0],f),v=()=>g,y=()=>Qr(c,t.lng||null,"fallback"===u.nsMode?h:h[0],f),[x,b]=p.useState(v);let w=h.join();t.lng&&(w=`${t.lng}${w}`);const S=((e,t)=>{const n=p.useRef();return p.useEffect(()=>{n.current=e},[e,t]),n.current})(w),k=p.useRef(!0);p.useEffect(()=>{const{bindI18n:e,bindI18nStore:n}=u;k.current=!0,m||d||(t.lng?zr(c,t.lng,h,()=>{k.current&&b(y)}):Ir(c,h,()=>{k.current&&b(y)})),m&&S&&S!==w&&k.current&&b(y);const r=()=>{k.current&&b(y)};return e&&(null==c||c.on(e,r)),n&&(null==c||c.store.on(n,r)),()=>{k.current=!1,c&&e&&(null==e||e.split(" ").forEach(e=>c.off(e,r))),n&&c&&n.split(" ").forEach(e=>c.store.off(e,r))}},[c,w]),p.useEffect(()=>{k.current&&m&&b(v)},[c,f,m]);const C=[x,c,m];if(C.t=x,C.i18n=c,C.ready=m,m)return C;if(!m&&!d)return C;throw new Promise(e=>{t.lng?zr(c,t.lng,h,()=>e()):Ir(c,h,()=>e())})},Xr={Add:"Add","Add Filament":"+ Add Filament",Archive:"Archive",Archived:"Archived","Are you sure to permanently delete the selected filaments? This action cannot be undone.":"Are you sure to permanently delete the selected filaments? This action cannot be undone.","Are you sure to permanently delete this filament? This action cannot be undone.":"Are you sure to permanently delete this filament? This action cannot be undone.","Basic Info":"Basic Info","Batch Delete":"Batch Delete",Brand:"Brand","Clear Selection":"Clear Selection","Color Varieties":"Color Varieties","By Color":"By Color","By Type":"By Type",Calibration:"Calibration",Cancel:"Cancel",Color:"Color","Copy All":"Copy All","Current Net Weight":"Current Net Weight","Current Net Weight cannot exceed Total Net Weight":"Current Net Weight cannot exceed Total Net Weight","Custom Color":"Custom Color","C++↔Web":"C++↔Web",Data:"Data","Debug Log":"Debug Log",Delete:"Delete","Delete Filament":"Delete Filament","Delete {{count}} Filaments":"Delete {{count}} Filaments",Dismiss:"Dismiss",Distribution:"Distribution","Drag to move":"Drag to move","Drying: {{date}}":"Drying: {{date}}","Edit Filament":"Edit Filament","Edit Filament Info":"Edit Filament Info",Empty:"Empty",Exhausted:"Exhausted","Fetching device info...":"Fetching device info...",Filament:"Filament","Filament Info":"Filament Info","Filament List":"Filament List","Filament Manager":"Filament Manager","Filament Type":"Filament Type","Getting AMS data failed":"Getting AMS data failed","Getting device list failed, please retry":"Getting device list failed, please retry",HTTP:"HTTP","Input Note":"Input Note","Input Current Net Weight":"Input Current Net Weight","Input Spool Weight":"Input Spool Weight","Input Total Net Weight":"Input Total Net Weight","Input Total Weight":"Input Total Weight","Manual Add":"Manual Add","Material Type":"Material Type","My Filaments":"My Filaments","Needs Drying":"Needs Drying","Net Weight":"Net Weight",Next:"Next","No AMS detected on this device":"No AMS detected on this device","No Data":"No Data","No printer found, please ensure logged in and device bound":"No printer found, please ensure logged in and device bound","No Records":"No Records","No Usage Records":"No Usage Records",Note:"Note",Online:"Online",Operation:"Operation","per page":"/page","Preset Color":"Preset Color",Previous:"Previous","Read from AMS":"Read from AMS",Ready:"Ready","Refresh printer status":"Refresh printer status",Remain:"Remain","Remain {{percent}}%":"Remain {{percent}}%",Reminders:"Reminders",roll:"roll",Save:"Save","Select Brand":"Select Brand","Select Brand First":"Select Brand First","Select Device":"Select Device","Select Series":"Select Series","Select Type":"Select Type","Selected {{count}} items":"Selected {{count}} items",Series:"Series","Spool Detail":"Spool Detail","Spool Weight":"Spool Weight","Total Net Weight":"Total Net Weight","Total Quantity":"Total Quantity","Total Value":"Total Value","Total Weight":"Total Weight","Usage Records":"Usage Records",Weight:"Weight","Weight cannot exceed {{max}}g":"Weight cannot exceed {{max}}g","Cloud sync: +{{added}} added, {{updated}} up-to-date":"Cloud sync: +{{added}} added, {{updated}} up-to-date","Cloud push failed: {{op}} — {{message}}":"Cloud push failed: {{op}} — {{message}}","Filament operation failed. This feature currently requires a network connection.":"Filament operation failed. This feature currently requires a network connection.","unknown error":"unknown error","Saved locally only — sign in to sync to cloud.":"Saved locally only — sign in to sync to cloud.","Syncing new filament to cloud…":"Syncing new filament to cloud…","Syncing {{count}} new filaments to cloud…":"Syncing {{count}} new filaments to cloud…","Syncing filament change to cloud…":"Syncing filament change to cloud…","Syncing filament deletion to cloud…":"Syncing filament deletion to cloud…","Syncing deletion of {{count}} filaments to cloud…":"Syncing deletion of {{count}} filaments to cloud…","Filament synced to cloud.":"Filament synced to cloud.","Filament change synced to cloud.":"Filament change synced to cloud.","Filament deletion synced to cloud.":"Filament deletion synced to cloud.","Synced {{count}} new filaments to cloud.":"Synced {{count}} new filaments to cloud.","Synced {{count}} filament changes to cloud.":"Synced {{count}} filament changes to cloud.","Synced {{count}} filament deletions to cloud.":"Synced {{count}} filament deletions to cloud.","Push Local to Cloud":"Push Local to Cloud","Last AMS Auto-Sync":"Last AMS Auto-Sync","Pushed {{n}}, Skipped {{n2}}":"Pushed {{n}}, Skipped {{n2}}","Device state: {{state}}":"Device state: {{state}}","Pushed {{n}} spools to cloud":"Pushed {{n}} spools to cloud","No spools to push (need RFID + total weight).":"No spools to push (need RFID + total weight).","Push to cloud failed: {{reason}}":"Push to cloud failed: {{reason}}","Manual push: enqueued {{n}} spools":"Manual push: enqueued {{n}} spools","AMS auto-push: pushed {{p}}, skipped {{s}}":"AMS auto-push: pushed {{p}}, skipped {{s}}","Sync History":"Sync History","No sync history yet.":"No sync history yet.",Pull:"Pull",Push:"Push",Failed:"Failed",Close:"Close",Clear:"Clear","Pulled from cloud: +{{added}} added, {{updated}} up-to-date":"Pulled from cloud: +{{added}} added, {{updated}} up-to-date","Pushed to cloud: added a filament":"Pushed to cloud: added a filament","Pushed to cloud: updated a filament":"Pushed to cloud: updated a filament","Pushed to cloud: deleted a filament":"Pushed to cloud: deleted a filament","Pushed to cloud.":"Pushed to cloud.","Cloud · offline":"Cloud · not signed in","Cloud · pulling…":"Cloud · pulling…","Cloud · syncing…":"Cloud · syncing…","Cloud · error":"Cloud · error","Cloud · synced":"Cloud · synced","Cloud · idle":"Cloud · idle","Not logged in — cloud sync disabled":"Not signed in — cloud sync disabled","Last synced: {{time}}":"Last synced: {{time}}","No sync yet":"No sync yet","Sync filament info":"Sync filament info","Syncing filament info...":"Syncing filament info...",Printer:"Printer","No printers — sign in and bind a device":"No printers — sign in and bind a device","Please sign in to view your filament library.":"Please sign in to view your filament library.","Filament data is hidden until you sign in.":"Filament data is hidden until you sign in.","Manual Entry":"Manual Entry","AMS Sync":"AMS Sync",RFID:"RFID","Not signed in":"Not signed in","Not signed in — no data available":"Not signed in — no data available",All:"All",General:"General",Group:"Group","Loading...":"Loading...",OK:"OK",Parameter:"Parameter","Pick Custom Color":"Pick Custom Color","Search Filament":"Search Filament","Usage Heatmap":"Usage Heatmap","Low Remain":"Low Remain",day_Sun:"Sun",day_Mon:"Mon",day_Tue:"Tue",day_Wed:"Wed",day_Thu:"Thu",day_Fri:"Fri",day_Sat:"Sat","No predefined colors for this filament":"No predefined colors for this filament","Bambu Color Code":"Bambu Color Code"},Jr={Add:"添加","Add Filament":"+ 添加耗材",Archive:"存档",Archived:"归档","Are you sure to permanently delete the selected filaments? This action cannot be undone.":"确认要永久删除所选耗材吗?此操作无法撤销。","Are you sure to permanently delete this filament? This action cannot be undone.":"确认要永久删除该耗材吗?此操作无法撤销。","Basic Info":"基本信息","Batch Delete":"批量删除",Brand:"品牌","Clear Selection":"取消选择","Custom Color":"自定义颜色","By Color":"按颜色","By Type":"按类型",Calibration:"校准",Cancel:"取消",Color:"颜色","Color Varieties":"颜色种类","Copy All":"复制全部","Current Net Weight":"当前净重","Current Net Weight cannot exceed Total Net Weight":"当前净重不能大于总净重","C++↔Web":"C++↔Web",Data:"数据","Debug Log":"调试日志",Delete:"删除","Delete Filament":"删除耗材","Delete {{count}} Filaments":"删除 {{count}} 个耗材",Dismiss:"关闭提示",Distribution:"分布","Drag to move":"拖动以移动窗口","Drying: {{date}}":"干燥:{{date}}","Edit Filament":"编辑耗材","Edit Filament Info":"编辑耗材信息",Empty:"空",Exhausted:"已耗尽","Fetching device info...":"正在获取设备信息…",Filament:"耗材","Filament Info":"耗材信息","Filament List":"耗材列表","Filament Manager":"耗材管理","Filament Type":"耗材类型","Getting AMS data failed":"获取 AMS 数据失败","Getting device list failed, please retry":"获取设备列表失败,请重试",HTTP:"HTTP","Input Current Net Weight":"输入当前净重","Input Note":"输入备注","Input Spool Weight":"输入料盘重量","Input Total Net Weight":"输入总净重","Input Total Weight":"输入总重量","Manual Add":"手动添加","Material Type":"类型","My Filaments":"我的耗材","Needs Drying":"需要干燥","Net Weight":"净重",Next:"下一条","No AMS detected on this device":"该设备未识别到 AMS","No Data":"暂无数据","No printer found, please ensure logged in and device bound":"未发现可用打印机,请确保已登录并绑定设备","No Records":"无","No Usage Records":"暂无使用记录",Note:"备注",Online:"在线",Operation:"操作","per page":"/页","Please select filaments to delete first.":"请先勾选要删除的耗材。","Preset Color":"预设颜色",Previous:"上一条","Read from AMS":"从 AMS 上读取",Ready:"就绪","Refresh printer status":"刷新打印机状态",Remain:"剩余","Remain {{percent}}%":"剩余 {{percent}}%",Reminders:"提醒",roll:"卷",Save:"保存","Select Brand":"选择品牌","Select Brand First":"请先选择品牌","Select Device":"选择设备","Select Series":"选择系列","Select Type":"选择类型","Selected {{count}} items":"已选中 {{count}} 项",Series:"系列","Spool Detail":"耗材详情","Spool Weight":"料盘重量","Total Net Weight":"总净重","Total Quantity":"总数量","Total Value":"总价值","Total Weight":"总重量","Usage Records":"使用记录",Weight:"重量","Weight cannot exceed {{max}}g":"重量不能超过 {{max}}克","Cloud sync: +{{added}} added, {{updated}} up-to-date":"云端同步:新增 {{added}} 条,{{updated}} 条已最新","Cloud push failed: {{op}} — {{message}}":"云端同步失败:{{op}} — {{message}}","Filament operation failed. This feature currently requires a network connection.":"耗材操作失败。当前功能需要联网使用,请检查网络后重试。","unknown error":"未知错误","Saved locally only — sign in to sync to cloud.":"仅保存到本地,登录账号后将自动同步到云端。","Syncing new filament to cloud…":"正在同步新增耗材到云端…","Syncing {{count}} new filaments to cloud…":"正在同步 {{count}} 条新增耗材到云端…","Syncing filament change to cloud…":"正在同步耗材修改到云端…","Syncing filament deletion to cloud…":"正在同步耗材删除到云端…","Syncing deletion of {{count}} filaments to cloud…":"正在同步 {{count}} 条耗材删除到云端…","Filament synced to cloud.":"耗材已同步到云端。","Filament change synced to cloud.":"耗材修改已同步到云端。","Filament deletion synced to cloud.":"耗材删除已同步到云端。","Synced {{count}} new filaments to cloud.":"已同步 {{count}} 条新增耗材到云端。","Synced {{count}} filament changes to cloud.":"已同步 {{count}} 条耗材变更到云端。","Synced {{count}} filament deletions to cloud.":"已同步 {{count}} 条耗材删除到云端。","Push Local to Cloud":"推送本地到云端","Last AMS Auto-Sync":"最近一次 AMS 自动同步","Pushed {{n}}, Skipped {{n2}}":"推送 {{n}} 卷,跳过 {{n2}} 卷","Device state: {{state}}":"设备状态:{{state}}","Pushed {{n}} spools to cloud":"已推送 {{n}} 卷到云端","No spools to push (need RFID + total weight).":"无可推送的耗材(需要 RFID 且填写整卷净重)","Push to cloud failed: {{reason}}":"推送到云端失败:{{reason}}","Manual push: enqueued {{n}} spools":"手动推送:已入队 {{n}} 卷","AMS auto-push: pushed {{p}}, skipped {{s}}":"AMS 自动推送:推送 {{p}} 卷,跳过 {{s}} 卷","Sync History":"同步历史","No sync history yet.":"暂无同步记录。",Pull:"拉取",Push:"推送",Failed:"失败",Close:"关闭",Clear:"清空","Pulled from cloud: +{{added}} added, {{updated}} up-to-date":"从云端拉取:新增 {{added}} 条,{{updated}} 条已最新","Pushed to cloud: added a filament":"已推送到云端:新增一条耗材","Pushed to cloud: updated a filament":"已推送到云端:修改一条耗材","Pushed to cloud: deleted a filament":"已推送到云端:删除一条耗材","Pushed to cloud.":"已推送到云端。","Cloud · offline":"云端 · 未登录","Cloud · pulling…":"云端 · 拉取中…","Cloud · syncing…":"云端 · 同步中…","Cloud · error":"云端 · 异常","Cloud · synced":"云端 · 已同步","Cloud · idle":"云端 · 空闲","Not logged in — cloud sync disabled":"未登录 — 云端同步不可用","Last synced: {{time}}":"上次同步:{{time}}","No sync yet":"尚未同步过","Sync filament info":"同步耗材信息","Syncing filament info...":"正在同步耗材信息...",Printer:"打印机","No printers — sign in and bind a device":"暂无打印机 — 请登录并绑定设备","Please sign in to view your filament library.":"请先登录,再查看耗材管理器数据。","Filament data is hidden until you sign in.":"未登录或退出登录后,耗材数据将被隐藏。","Manual Entry":"手动录入","AMS Sync":"AMS 同步",RFID:"RFID","Not signed in":"账号未登录","Not signed in — no data available":"账号未登录,暂无数据",All:"全部",General:"通用",Group:"分组","Loading...":"加载中…",OK:"确定",Parameter:"参数","Pick Custom Color":"选择自定义颜色","Search Filament":"搜索耗材","Usage Heatmap":"使用热力图","Low Remain":"剩余量低",day_Sun:"日",day_Mon:"一",day_Tue:"二",day_Wed:"三",day_Thu:"四",day_Fri:"五",day_Sat:"六","No predefined colors for this filament":"该耗材暂无预设颜色","Bambu Color Code":"Bambu 色号"},Zr={Add:"追加","Add Filament":"+ フィラメントを追加","Advanced Settings":"",Archive:"アーカイブ",Archived:"アーカイブ済み","Basic Info":"基本情報","Basic Parameters":"",Brand:"ブランド","By Color":"色別","By Type":"タイプ別",Calibration:"キャリブレーション",Cancel:"取消し",Color:"色","Color Varieties":"色のバリエーション",day_Fri:"金曜日",day_Mon:"月曜日",day_Sat:"土曜日",day_Sun:"日曜日",day_Thu:"木曜日",day_Tue:"火曜日",day_Wed:"水曜日",Delete:"削除",Distribution:"分布","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"乾燥:{{date}}","Edit Filament":"フィラメントを編集","Edit Filament Info":"フィラメント情報を編集",Empty:"空","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"使用済み",Favorite:"","Fetching device info...":"デバイス情報を取得しています...",Filament:"フィラメント","Filament Info":"フィラメント情報","Filament List":"フィラメント一覧","Filament Manager":"フィラメントマネージャー","Getting AMS data failed":"AMSデータの取得に失敗しました","Getting device list failed, please retry":"デバイスリストの取得に失敗しました。もう一度お試しください","Input Note":"インプットメモ","Input Spool Weight":"インプットスプール重量","Input Total Weight":"インプット総重量","Input Unit Price":"","Last Dry Date":"","Low Remain":"残量低下","Manual Add":"手動追加","Material Type":"素材タイプ","Needs Drying":"乾燥が必要","Net Weight":"正味重量",Next:"次へ","No AMS detected on this device":"このデバイスではAMSは検出されませんでした","No Data":"データ無し","No printer found, please ensure logged in and device bound":"プリンターが見つかりません。ログインしてデバイスがバインドされていることを確認してください","No Records":"記録なし","No Usage Records":"使用記録なし",Note:"メモ",Off:"",Online:"オンライン",Operation:"操作",Others:"","per page":"/ページ",Previous:"前へ",Price:"","Read from AMS":"AMSから読む",Ready:"準備完了",Remain:"残量","Remain {{percent}}%":"残量{{percent}}%","Remain Alert":"",Reminders:"リマインダー",roll:"ロール",Save:"保存","Select Brand":"ブランドを選択","Select Currency":"","Select Device":"デバイスを選択","Select Series":"シリーズを選択","Select Type":"タイプを選択",Series:"シリーズ","Spool Detail":"スプールの詳細","Spool Weight":"スプールの重量",Stats:"",Status:"","Status Reminders":"","Total Quantity":"合計数量","Total Value":"合計金額","Total Weight":"総重量","Unit Price(/kg)":"","Usage Heatmap":"使用状況ヒートマップ","Usage Records":"利用記録",Weight:"重量"},eo={"{{count}} item_many":"",Add:"Aggiungi","Add Filament":"+ Aggiungi filamento","Advanced Settings":"",Archive:"Archivio",Archived:"Archiviato","Basic Info":"Informazioni di Base","Basic Parameters":"",Brand:"Marca","By Color":"Per colore","By Type":"Per tipologia",Calibration:"Calibrazione",Cancel:"Annulla",Color:"Colore","Color Varieties":"Varietà di colore",day_Fri:"Ven",day_Mon:"Lun",day_Sat:"Sab",day_Sun:"Dom",day_Thu:"Gio",day_Tue:"Mar",day_Wed:"Mer",Delete:"Elimina",Distribution:"Distribuzione","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"Asciugatura: {{date}}","Edit Filament":"Modifica Filamento","Edit Filament Info":"Modifica le informazioni sul filamento",Empty:"Vuoto","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"Scarico",Favorite:"","Fetching device info...":"Recupero delle informazioni del dispositivo in corso...",Filament:"Filamento","Filament Info":"Informazioni filamento","Filament List":"Elenco filamenti","Filament Manager":"Gestore filamento","Getting AMS data failed":"Impossibile ottenere i dati AMS","Getting device list failed, please retry":"Impossibile ottenere l'elenco dispositivi, riprova","Input Note":"Nota di input","Input Spool Weight":"Peso bobina in entrata","Input Total Weight":"Peso totale in entrata","Input Unit Price":"","Last Dry Date":"","Low Remain":"Livello basso","Manual Add":"Aggiunta manuale","Material Type":"Tipo di Materiale","Needs Drying":"Necessita asciugatura","Net Weight":"Peso Netto",Next:"Avanti","No AMS detected on this device":"Nessun AMS rilevato su questo dispositivo","No Data":"Nessun dato","No printer found, please ensure logged in and device bound":"Nessuna stampante trovata. Controllare di aver effettuato l'accesso e che il dispositivo sia associato","No Records":"Nessun record","No Usage Records":"Nessun record di utilizzo",Note:"Nota",Off:"",Online:"Online",Operation:"Operazione",Others:"","per page":"/pagina",Previous:"Precedente",Price:"","Read from AMS":"Lettura da AMS",Ready:"Pronto",Remain:"Rimane","Remain {{percent}}%":"Rimane il {{percent}}%","Remain Alert":"",Reminders:"Promemoria",roll:"rullo",Save:"Salva","Select Brand":"Seleziona marca","Select Currency":"","Select Device":"Seleziona il dispositivo","Select Series":"Seleziona le serie","Select Type":"Seleziona tipo",Series:"Serie","Spool Detail":"Dettaglio bobina","Spool Weight":"Peso bobina",Stats:"",Status:"","Status Reminders":"","Total Quantity":"Quantità totale","Total Value":"Valore totale","Total Weight":"Peso totale","Unit Price(/kg)":"","Usage Heatmap":"Utilizzo mappa di calore","Usage Records":"Record di utilizzo",Weight:"Peso"},to={"{{count}} item_many":"",Add:"Ajouter","Add Filament":"+ Ajouter du filament","Advanced Settings":"",Archive:"Archiver",Archived:"Archivé","Basic Info":"Informations de base","Basic Parameters":"",Brand:"Marque","By Color":"Par couleur","By Type":"Par type",Calibration:"Calibration",Cancel:"Annuler",Color:"Couleur","Color Varieties":"Variétés de couleurs",day_Fri:"Ven",day_Mon:"Lun",day_Sat:"Sam",day_Sun:"Dim",day_Thu:"Jeu",day_Tue:"Mar",day_Wed:"Mer",Delete:"Supprimer",Distribution:"Distribution","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"Séchage : {{date}}","Edit Filament":"Modifier Filament","Edit Filament Info":"Modifier les informations du filament",Empty:"Vide","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"Épuisé",Favorite:"","Fetching device info...":"Récupération des informations de l'appareil…",Filament:"Filament","Filament Info":"Informations sur le filament","Filament List":"Liste des filaments","Filament Manager":"Gestionnaire de filaments","Getting AMS data failed":"Échec de la récupération des données AMS","Getting device list failed, please retry":"Échec de la récupération de la liste des appareils, veuillez réessayer","Input Note":"Note d'entrée","Input Spool Weight":"Poids de la bobine d'entrée","Input Total Weight":"Poids total d'entrée","Input Unit Price":"","Last Dry Date":"","Low Remain":"Quantité restante faible","Manual Add":"Ajout manuel","Material Type":"Type de matériau.","Needs Drying":"Séchage nécessaire","Net Weight":"Poids Net",Next:"Suivant","No AMS detected on this device":"Aucun AMS détecté sur cet appareil","No Data":"Aucune donnée","No printer found, please ensure logged in and device bound":"Imprimante introuvable. Veuillez vérifier que vous êtes connecté et que votre appareil est bien associé","No Records":"Aucun enregistrement","No Usage Records":"Aucun enregistrement d'utilisation",Note:"Note",Off:"",Online:"En ligne",Operation:"Opération",Others:"","per page":"/page",Previous:"Précédent",Price:"","Read from AMS":"Lecture depuis l'AMS",Ready:"Prêt",Remain:"Restant","Remain {{percent}}%":"{{percent}} % restant(s)","Remain Alert":"",Reminders:"Rappels",roll:"rouleau",Save:"Enregistrer","Select Brand":"Sélectionner la marque","Select Currency":"","Select Device":"Sélectionner l'appareil","Select Series":"Sélectionner la série","Select Type":"Sélectionnez le Type",Series:"Série","Spool Detail":"Détails de la bobine","Spool Weight":"Poids de la bobine",Stats:"",Status:"","Status Reminders":"","Total Quantity":"Quantité totale","Total Value":"Valeur totale","Total Weight":"Poids total","Unit Price(/kg)":"","Usage Heatmap":"Carte thermique d'utilisation","Usage Records":"Enregistrements d'utilisation",Weight:"Poids"},no={Add:"Hinzufügen","Add Filament":"+ Filament hinzufügen","Advanced Settings":"",Archive:"Archivieren",Archived:"Archiviert","Basic Info":"Basis-Info","Basic Parameters":"",Brand:"Marke","By Color":"Nach Farbe","By Type":"Nach Typ",Calibration:"Kalibrierung",Cancel:"Abbrechen",Color:"Farbe","Color Varieties":"Farbvarianten",day_Fri:"Fr",day_Mon:"Mo",day_Sat:"Sa",day_Sun:"So",day_Thu:"Do",day_Tue:"Di",day_Wed:"Mi",Delete:"Löschen",Distribution:"Verteilung","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"Trocknung: {{date}}","Edit Filament":"Filament bearbeiten","Edit Filament Info":"Filamentinformationen bearbeiten",Empty:"Leer","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"Verbraucht",Favorite:"","Fetching device info...":"Geräteinformationen abrufen ...",Filament:"Filament","Filament Info":"Filamentinformationen","Filament List":"Filamentliste","Filament Manager":"Filament Manager","Getting AMS data failed":"Abrufen der AMS-Daten fehlgeschlagen","Getting device list failed, please retry":"Abrufen der Geräteliste fehlgeschlagen. Bitte versuchen Sie es erneut.","Input Note":"Eingabehinweis","Input Spool Weight":"Gewicht Spule Eingangsmaterial","Input Total Weight":"Gesamtgewicht Eingangsmaterial","Input Unit Price":"","Last Dry Date":"","Low Remain":"Geringe Rückstände","Manual Add":"Manuell hinzufügen","Material Type":"Materialtyp","Needs Drying":"Trocknung erforderlich","Net Weight":"Nettogewicht",Next:"Weiter","No AMS detected on this device":"Kein AMS auf diesem Gerät erkannt","No Data":"Keine Daten","No printer found, please ensure logged in and device bound":"Kein Drucker gefunden. Bitte stellen Sie sicher, dass Sie angemeldet sind und das Gerät verknüpft ist.","No Records":"Keine Datensätze","No Usage Records":"Keine Nutzungsdatensätze",Note:"Anmerkung",Off:"",Online:"Online",Operation:"Operation",Others:"","per page":"/Seite",Previous:"Zurück",Price:"","Read from AMS":"Von AMS lesen",Ready:"Bereit",Remain:"Verbleibend","Remain {{percent}}%":"{{percent}}% verbleiben","Remain Alert":"",Reminders:"Erinnerungen",roll:"Rolle",Save:"Speichern","Select Brand":"Marke auswählen","Select Currency":"","Select Device":"Gerät auswählen","Select Series":"Serie auswählen","Select Type":"Typ wählen",Series:"Serie","Spool Detail":"Spulendetail","Spool Weight":"Spulengewicht",Stats:"",Status:"","Status Reminders":"","Total Quantity":"Gesamtmenge","Total Value":"Gesamtwert","Total Weight":"Gesamtgewicht","Unit Price(/kg)":"","Usage Heatmap":"Nutzungs-Heatmap","Usage Records":"Nutzungsdatensätze",Weight:"Gewicht"},ro={Add:"Hozzáadás","Add Filament":"+ Filament hozzáadása","Advanced Settings":"",Archive:"Archiválás",Archived:"Archivált","Basic Info":"Alapinformáció","Basic Parameters":"",Brand:"Márka","By Color":"Szín szerint","By Type":"Típus szerint",Calibration:"Kalibrálás",Cancel:"Mégse",Color:"Szín","Color Varieties":"Színváltozatok",day_Fri:"Péntek",day_Mon:"Hétfő",day_Sat:"Szombat",day_Sun:"Vasárnap",day_Thu:"Csütörtök",day_Tue:"Kedd",day_Wed:"Szerda",Delete:"Törlés",Distribution:"Elosztás","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"Szárítás: {{date}}","Edit Filament":"Filament szerkesztése","Edit Filament Info":"Filamentinformációk szerkesztése",Empty:"Üres","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"Kimerült",Favorite:"","Fetching device info...":"Eszközadatok lekérése…",Filament:"Filament","Filament Info":"Filamentinformációk","Filament List":"Filamentlista","Filament Manager":"Filamentkezelő","Getting AMS data failed":"Az AMS-adatok lekérése sikertelen volt","Getting device list failed, please retry":"Az eszközlista lekérése sikertelen, próbálja újra","Input Note":"Megjegyzés megadása","Input Spool Weight":"Tekercs tömegének megadása","Input Total Weight":"Teljes tömeg megadása","Input Unit Price":"","Last Dry Date":"","Low Remain":"Alacsony marad","Manual Add":"Manuális hozzáadás","Material Type":"Anyagtípus","Needs Drying":"Szárítást igényel","Net Weight":"Nettó tömeg",Next:"Következő","No AMS detected on this device":"Nem észlelhető AMS ezen az eszközön","No Data":"Nincs adat","No printer found, please ensure logged in and device bound":"Nem található nyomtató, győződjön meg arról, hogy be van jelentkezve és az eszközhöz van kötve","No Records":"Nincsenek rekordok","No Usage Records":"Nincsenek használati feljegyzések",Note:"Megjegyzés",Off:"",Online:"Online",Operation:"Művelet",Others:"","per page":"/oldal",Previous:"Előző",Price:"","Read from AMS":"Olvasás az AMS-ből",Ready:"Kész",Remain:"Hátralevő","Remain {{percent}}%":"Hátralevő: {{percent}}%","Remain Alert":"",Reminders:"Emlékeztetők",roll:"tekercs",Save:"Mentés","Select Brand":"Márka kiválasztása","Select Currency":"","Select Device":"Eszköz kiválasztása","Select Series":"Sorozat kiválasztása","Select Type":"Válassz típust",Series:"Sorozat","Spool Detail":"Tekercs részletei","Spool Weight":"Tekercs súlya",Stats:"",Status:"","Status Reminders":"","Total Quantity":"Teljes mennyiség","Total Value":"Teljes érték","Total Weight":"Teljes súly","Unit Price(/kg)":"","Usage Heatmap":"Használati hőtérkép","Usage Records":"Használati feljegyzések",Weight:"Súly"},oo={"{{count}} item_many":"",Add:"Añadir","Add Filament":"+ Añadir filamento","Advanced Settings":"",Archive:"Archivo",Archived:"Archivado","Basic Info":"Información Básica","Basic Parameters":"",Brand:"Marca","By Color":"Por color","By Type":"Por tipo",Calibration:"Calibración",Cancel:"Cancelar",Color:"Color","Color Varieties":"Variedades de color",day_Fri:"Vie",day_Mon:"Lun",day_Sat:"Sáb",day_Sun:"Dom",day_Thu:"Jue",day_Tue:"Mar",day_Wed:"Mié",Delete:"Borra",Distribution:"Distribución","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"Secando: {{date}}","Edit Filament":"Edit Filament","Edit Filament Info":"Editar información de filamento",Empty:"Vacío","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"Agotado",Favorite:"","Fetching device info...":"Obteniendo información de dispositivo...",Filament:"Filamento","Filament Info":"Información de filamento","Filament List":"Lista de filamentos","Filament Manager":"Gestor de filamentos","Getting AMS data failed":"Error al obtener datos de AMS","Getting device list failed, please retry":"Error al obtener la lista de dispositivos, inténtelo de nuevo","Input Note":"Introduzca una nota","Input Spool Weight":"Introduzca el peso de la bobina","Input Total Weight":"Peso total de entrada","Input Unit Price":"","Last Dry Date":"","Low Remain":"Queda poco","Manual Add":"Añadir manualmente","Material Type":"Tipo de material","Needs Drying":"Necesita secado","Net Weight":"Peso neto",Next:"Siguiente","No AMS detected on this device":"No se detectó AMS en este dispositivo","No Data":"Sin datos","No printer found, please ensure logged in and device bound":"No se encontró ninguna impresora; asegúrese de haber iniciado sesión y de que el dispositivo esté vinculado","No Records":"No hay registros","No Usage Records":"Sin registros de uso",Note:"Nota",Off:"",Online:"En línea",Operation:"Operación",Others:"","per page":"/página",Previous:"Anterior",Price:"","Read from AMS":"Leer desde AMS",Ready:"Listo",Remain:"Restante","Remain {{percent}}%":"Restante {{percent}}%","Remain Alert":"",Reminders:"Recordatorios",roll:"rollo",Save:"Guardar","Select Brand":"Seleccionar marca","Select Currency":"","Select Device":"Seleccionar dispositivo","Select Series":"Seleccionar serie","Select Type":"Seleccione el tipo",Series:"Serie","Spool Detail":"Detalle de bobina","Spool Weight":"Peso de bobina",Stats:"",Status:"","Status Reminders":"","Total Quantity":"Cantidad total","Total Value":"Valor total","Total Weight":"Peso total","Unit Price(/kg)":"","Usage Heatmap":"Mapa de uso","Usage Records":"Registros de uso",Weight:"Peso"},ao={Add:"Lägg till","Add Filament":"+ Lägg till filament","Advanced Settings":"",Archive:"Arkivera",Archived:"Arkiverad","Basic Info":"Grundläggande information","Basic Parameters":"",Brand:"Stämpel","By Color":"Efter färg","By Type":"Efter typ",Calibration:"Kalibrering",Cancel:"Avbryt",Color:"Färg","Color Varieties":"Färgvarianter",day_Fri:"fre",day_Mon:"mån",day_Sat:"lör",day_Sun:"sön",day_Thu:"tors",day_Tue:"tis",day_Wed:"ons",Delete:"Radera",Distribution:"Utdelning","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"Torkning: {{datum}}","Edit Filament":"Redigera filament","Edit Filament Info":"Redigera filamentinformation",Empty:"Tom","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"Utmattad",Favorite:"","Fetching device info...":"Hämtar enhetsinformation...",Filament:"Filament","Filament Info":"Filamentinformation","Filament List":"Filamentlista","Filament Manager":"Filamenthanterare","Getting AMS data failed":"Det gick inte att hämta AMS-data","Getting device list failed, please retry":"Det gick inte att hämta enhetslistan; försök igen","Input Note":"Inmatningsanteckning","Input Spool Weight":"Ingångsspolens vikt","Input Total Weight":"Inmatad totalvikt","Input Unit Price":"","Last Dry Date":"","Low Remain":"Låg restmängd","Manual Add":"Manuell tillägg","Material Type":"Materialtyp","Needs Drying":"Behöver torkning","Net Weight":"Netto vikt",Next:"Nästa","No AMS detected on this device":"Inget AMS upptäckt på den här enheten","No Data":"Ingen data","No printer found, please ensure logged in and device bound":"Ingen skrivare hittades. Tillförsäkra inloggning och att enheten är kopplad","No Records":"Inga poster","No Usage Records":"Inga användningsposter",Note:"Notera",Off:"",Online:"Online",Operation:"Funktion",Others:"","per page":"/sida",Previous:"Föregående",Price:"","Read from AMS":"Läs från AMS",Ready:"Redo",Remain:"Förbli","Remain {{percent}}%":"Kvar: {{percent}}%","Remain Alert":"",Reminders:"Påminnelser",roll:"rulle",Save:"Spara","Select Brand":"Välj varumärke","Select Currency":"","Select Device":"Välj enhet","Select Series":"Välj serie","Select Type":"Välj typ",Series:"Serie","Spool Detail":"Spoledetalj","Spool Weight":"Spolevikt",Stats:"",Status:"","Status Reminders":"","Total Quantity":"Total kvantitet","Total Value":"Totalvärde","Total Weight":"Totalvikt","Unit Price(/kg)":"","Usage Heatmap":"Användning av värmemapp","Usage Records":"Användningsposter",Weight:"Vikt"},io={"{{count}} item_few":"","{{count}} item_many":"",Add:"","Add Filament":"","Advanced Settings":"",Archive:"",Archived:"","Basic Info":"","Basic Parameters":"",Brand:"","By Color":"","By Type":"",Calibration:"",Cancel:"",Color:"","Color Varieties":"",day_Fri:"",day_Mon:"",day_Sat:"",day_Sun:"",day_Thu:"",day_Tue:"",day_Wed:"",Delete:"",Distribution:"","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"","Edit Filament":"","Edit Filament Info":"",Empty:"","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"",Favorite:"","Fetching device info...":"",Filament:"","Filament Info":"","Filament List":"","Filament Manager":"","Getting AMS data failed":"","Getting device list failed, please retry":"","Input Note":"","Input Spool Weight":"","Input Total Weight":"","Input Unit Price":"","Last Dry Date":"","Low Remain":"","Manual Add":"","Material Type":"","Needs Drying":"","Net Weight":"",Next:"","No AMS detected on this device":"","No Data":"","No printer found, please ensure logged in and device bound":"","No Records":"","No Usage Records":"",Note:"",Off:"",Online:"",Operation:"",Others:"","per page":"",Previous:"",Price:"","Read from AMS":"",Ready:"",Remain:"","Remain {{percent}}%":"","Remain Alert":"",Reminders:"",roll:"",Save:"","Select Brand":"","Select Currency":"","Select Device":"","Select Series":"","Select Type":"",Series:"","Spool Detail":"","Spool Weight":"",Stats:"",Status:"","Status Reminders":"","Total Quantity":"","Total Value":"","Total Weight":"","Unit Price(/kg)":"","Usage Heatmap":"","Usage Records":"",Weight:""},so={Add:"Toevoegen","Add Filament":"+ Voeg filament toe","Advanced Settings":"",Archive:"Archiveren",Archived:"Gearchiveerd","Basic Info":"Basisinfo","Basic Parameters":"",Brand:"Merk","By Color":"Op kleur","By Type":"Op type",Calibration:"Kalibratie",Cancel:"Annuleren",Color:"Kleur","Color Varieties":"Kleurvariëteiten",day_Fri:"Vr",day_Mon:"Ma",day_Sat:"Za",day_Sun:"Zo",day_Thu:"Do",day_Tue:"Di",day_Wed:"Wo",Delete:"Verwijderen",Distribution:"Verdeling","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"Drogen: {{date}}","Edit Filament":"Bewerk filament","Edit Filament Info":"Filamentinformatie bewerken",Empty:"Leeg","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"Verbruikt",Favorite:"","Fetching device info...":"Apparaatinformatie ophalen...",Filament:"Filament","Filament Info":"Filamentinformatie","Filament List":"Filamentlijst","Filament Manager":"Filamentbeheer","Getting AMS data failed":"Het ophalen van AMS-gegevens is mislukt","Getting device list failed, please retry":"Het ophalen van de apparatenlijst is mislukt, probeer het opnieuw","Input Note":"Invoernotitie","Input Spool Weight":"Invoer spoelgewicht","Input Total Weight":"Invoer totaal gewicht","Input Unit Price":"","Last Dry Date":"","Low Remain":"Weinig resterend","Manual Add":"Handmatig toevoegen","Material Type":"Materiaaltype","Needs Drying":"Moet gedroogd worden","Net Weight":"Nettogewicht",Next:"Volgende","No AMS detected on this device":"Geen AMS gedetecteerd op dit apparaat","No Data":"Geen gegevens","No printer found, please ensure logged in and device bound":"Geen printer gevonden. Zorg ervoor dat u bent ingelogd en dat het apparaat correct is gekoppeld","No Records":"Geen gegevens","No Usage Records":"Geen gebruiksgegevens",Note:"Notitie",Off:"",Online:"Online",Operation:"Operatie",Others:"","per page":"/pagina",Previous:"Vorig",Price:"","Read from AMS":"Lees van AMS",Ready:"Klaar",Remain:"Resterend","Remain {{percent}}%":"Resterend {{percent}}%","Remain Alert":"",Reminders:"Herinneringen",roll:"rollen",Save:"Bewaar","Select Brand":"Selecteer merk","Select Currency":"","Select Device":"Selecteer apparaat","Select Series":"Selecteer serie","Select Type":"Selecteer type",Series:"Serie","Spool Detail":"Spoeldetails","Spool Weight":"Spoelgewicht",Stats:"",Status:"","Status Reminders":"","Total Quantity":"Totale hoeveelheid","Total Value":"Totale waarde","Total Weight":"Totaalgewicht","Unit Price(/kg)":"","Usage Heatmap":"Gebruiksheatmap","Usage Records":"Gebruiksgegevens",Weight:"Gewicht"},lo={"{{count}} item_few":"","{{count}} item_many":"",Add:"","Add Filament":"","Advanced Settings":"",Archive:"",Archived:"","Basic Info":"","Basic Parameters":"",Brand:"","By Color":"","By Type":"",Calibration:"",Cancel:"",Color:"","Color Varieties":"",day_Fri:"",day_Mon:"",day_Sat:"",day_Sun:"",day_Thu:"",day_Tue:"",day_Wed:"",Delete:"",Distribution:"","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"","Edit Filament":"","Edit Filament Info":"",Empty:"","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"",Favorite:"","Fetching device info...":"",Filament:"","Filament Info":"","Filament List":"","Filament Manager":"","Getting AMS data failed":"","Getting device list failed, please retry":"","Input Note":"","Input Spool Weight":"","Input Total Weight":"","Input Unit Price":"","Last Dry Date":"","Low Remain":"","Manual Add":"","Material Type":"","Needs Drying":"","Net Weight":"",Next:"","No AMS detected on this device":"","No Data":"","No printer found, please ensure logged in and device bound":"","No Records":"","No Usage Records":"",Note:"",Off:"",Online:"",Operation:"",Others:"","per page":"",Previous:"",Price:"","Read from AMS":"",Ready:"",Remain:"","Remain {{percent}}%":"","Remain Alert":"",Reminders:"",roll:"",Save:"","Select Brand":"","Select Currency":"","Select Device":"","Select Series":"","Select Type":"",Series:"","Spool Detail":"","Spool Weight":"",Stats:"",Status:"","Status Reminders":"","Total Quantity":"","Total Value":"","Total Weight":"","Unit Price(/kg)":"","Usage Heatmap":"","Usage Records":"",Weight:""},co={"{{count}} item_few":"","{{count}} item_many":"",Add:"","Add Filament":"","Advanced Settings":"",Archive:"",Archived:"","Basic Info":"","Basic Parameters":"",Brand:"","By Color":"","By Type":"",Calibration:"",Cancel:"",Color:"","Color Varieties":"",day_Fri:"",day_Mon:"",day_Sat:"",day_Sun:"",day_Thu:"",day_Tue:"",day_Wed:"",Delete:"",Distribution:"","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"","Edit Filament":"","Edit Filament Info":"",Empty:"","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"",Favorite:"","Fetching device info...":"",Filament:"","Filament Info":"","Filament List":"","Filament Manager":"","Getting AMS data failed":"","Getting device list failed, please retry":"","Input Note":"","Input Spool Weight":"","Input Total Weight":"","Input Unit Price":"","Last Dry Date":"","Low Remain":"","Manual Add":"","Material Type":"","Needs Drying":"","Net Weight":"",Next:"","No AMS detected on this device":"","No Data":"","No printer found, please ensure logged in and device bound":"","No Records":"","No Usage Records":"",Note:"",Off:"",Online:"",Operation:"",Others:"","per page":"",Previous:"",Price:"","Read from AMS":"",Ready:"",Remain:"","Remain {{percent}}%":"","Remain Alert":"",Reminders:"",roll:"",Save:"","Select Brand":"","Select Currency":"","Select Device":"","Select Series":"","Select Type":"",Series:"","Spool Detail":"","Spool Weight":"",Stats:"",Status:"","Status Reminders":"","Total Quantity":"","Total Value":"","Total Weight":"","Unit Price(/kg)":"","Usage Heatmap":"","Usage Records":"",Weight:""},uo={Add:"","Add Filament":"","Advanced Settings":"",Archive:"",Archived:"","Basic Info":"","Basic Parameters":"",Brand:"","By Color":"","By Type":"",Calibration:"",Cancel:"",Color:"","Color Varieties":"",day_Fri:"",day_Mon:"",day_Sat:"",day_Sun:"",day_Thu:"",day_Tue:"",day_Wed:"",Delete:"",Distribution:"","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"","Edit Filament":"","Edit Filament Info":"",Empty:"","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"",Favorite:"","Fetching device info...":"",Filament:"","Filament Info":"","Filament List":"","Filament Manager":"","Getting AMS data failed":"","Getting device list failed, please retry":"","Input Note":"","Input Spool Weight":"","Input Total Weight":"","Input Unit Price":"","Last Dry Date":"","Low Remain":"","Manual Add":"","Material Type":"","Needs Drying":"","Net Weight":"",Next:"","No AMS detected on this device":"","No Data":"","No printer found, please ensure logged in and device bound":"","No Records":"","No Usage Records":"",Note:"",Off:"",Online:"",Operation:"",Others:"","per page":"",Previous:"",Price:"","Read from AMS":"",Ready:"",Remain:"","Remain {{percent}}%":"","Remain Alert":"",Reminders:"",roll:"",Save:"","Select Brand":"","Select Currency":"","Select Device":"","Select Series":"","Select Type":"",Series:"","Spool Detail":"","Spool Weight":"",Stats:"",Status:"","Status Reminders":"","Total Quantity":"","Total Value":"","Total Weight":"","Unit Price(/kg)":"","Usage Heatmap":"","Usage Records":"",Weight:""},fo={"{{count}} item_many":"",Add:"Adicionar","Add Filament":"+ Adicionar filamento","Advanced Settings":"",Archive:"Arquivar",Archived:"Arquivado","Basic Info":"Inform. básicas","Basic Parameters":"",Brand:"Marca","By Color":"Por cor","By Type":"Por tipo",Calibration:"Calibração",Cancel:"Cancelar",Color:"Cor","Color Varieties":"Variações de cor",day_Fri:"Sex",day_Mon:"Seg",day_Sat:"Sáb",day_Sun:"Dom",day_Thu:"Qui",day_Tue:"Ter",day_Wed:"Qua",Delete:"Excluir",Distribution:"Distribuição","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"Secagem: {{date}}","Edit Filament":"Editar filamento","Edit Filament Info":"Editar informações do filamento",Empty:"Vazio","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"Esgotado",Favorite:"","Fetching device info...":"Buscando informações do dispositivo…",Filament:"Filamento","Filament Info":"Informações do filamento","Filament List":"Lista de filamentos","Filament Manager":"Gerenciador de filamentos","Getting AMS data failed":"Falha ao obter dados do AMS","Getting device list failed, please retry":"Falha ao obter a lista de dispositivos. Tente novamente","Input Note":"Observação de entrada","Input Spool Weight":"Peso do carretel de entrada","Input Total Weight":"Peso total de entrada","Input Unit Price":"","Last Dry Date":"","Low Remain":"Pouco restante","Manual Add":"Adicionar manualmente","Material Type":"Tipo de material","Needs Drying":"Precisa de secagem","Net Weight":"Peso Líquido",Next:"Próximo","No AMS detected on this device":"Nenhum AMS detectado neste dispositivo","No Data":"Sem dados","No printer found, please ensure logged in and device bound":"Nenhuma impressora encontrada. Verifique se você fez login e vinculou o dispositivo","No Records":"Sem registros","No Usage Records":"Sem registros de uso",Note:"Nota",Off:"",Online:"On-line",Operation:"Operação",Others:"","per page":"/página",Previous:"Anterior",Price:"","Read from AMS":"Ler do AMS",Ready:"Pronto",Remain:"Restante","Remain {{percent}}%":"Restante: {{percent}}%","Remain Alert":"",Reminders:"Lembretes",roll:"bobina",Save:"Salvar","Select Brand":"Selecionar marca","Select Currency":"","Select Device":"Selecionar dispositivo","Select Series":"Selecionar série","Select Type":"Selecione o tipo",Series:"Série","Spool Detail":"Detalhes do carretel","Spool Weight":"Peso do carretel",Stats:"",Status:"","Status Reminders":"","Total Quantity":"Quantidade total","Total Value":"Valor total","Total Weight":"Peso total","Unit Price(/kg)":"","Usage Heatmap":"Mapa de calor de uso","Usage Records":"Registros de uso",Weight:"Peso"},po={Add:"추가","Add Filament":"+ 필라멘트 추가","Advanced Settings":"",Archive:"아카이브",Archived:"보관됨","Basic Info":"기본 정보","Basic Parameters":"",Brand:"브랜드","By Color":"색상 기준","By Type":"유형 기준",Calibration:"캘리브레이션",Cancel:"취소",Color:"색상","Color Varieties":"색상 종류",day_Fri:"금요일",day_Mon:"월요일",day_Sat:"토요일",day_Sun:"일요일",day_Thu:"목요일",day_Tue:"화요일",day_Wed:"수요일",Delete:"삭제",Distribution:"분포","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"건조 기간: {{date}}","Edit Filament":"필라멘트 수정","Edit Filament Info":"필라멘트 정보 편집",Empty:"비어 있음","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"소진됨",Favorite:"","Fetching device info...":"기기 정보를 가져오는 중...",Filament:"필라멘트","Filament Info":"필라멘트 정보","Filament List":"필라멘트 목록","Filament Manager":"필라멘트 관리자","Getting AMS data failed":"AMS 데이터 가져오기에 실패.","Getting device list failed, please retry":"장치 목록을 가져오는 데 실패했습니다. 다시 시도하세요.","Input Note":"입력 참고","Input Spool Weight":"스풀 무게 입력","Input Total Weight":"총 무게 입력","Input Unit Price":"","Last Dry Date":"","Low Remain":"잔여량 부족","Manual Add":"수동 추가","Material Type":"재료 유형","Needs Drying":"건조 필요","Net Weight":"순중량",Next:"다음","No AMS detected on this device":"이 기기에서 AMS가 감지되지 않았습니다.","No Data":"데이터 없음","No printer found, please ensure logged in and device bound":"프린터를 찾을 수 없습니다. 로그인된 상태이고 기기가 연동되어 있는지 확인하세요.","No Records":"기록 없음","No Usage Records":"사용 기록 없음",Note:"메모",Off:"",Online:"온라인",Operation:"동작",Others:"","per page":"/페이지",Previous:"이전",Price:"","Read from AMS":"AMS에서 읽기",Ready:"준비 완료",Remain:"잔여량","Remain {{percent}}%":"잔여량 {{percent}}%","Remain Alert":"",Reminders:"알림",roll:"롤",Save:"저장","Select Brand":"브랜드 선택","Select Currency":"","Select Device":"기기 선택","Select Series":"시리즈 선택","Select Type":"타입 선택",Series:"시리즈","Spool Detail":"스풀 세부 사항","Spool Weight":"스풀 무게",Stats:"",Status:"","Status Reminders":"","Total Quantity":"총 수량","Total Value":"총 가치","Total Weight":"총 중량","Unit Price(/kg)":"","Usage Heatmap":"사용량 히트맵","Usage Records":"사용 기록",Weight:"무게"},ho={"{{count}} item_few":"","{{count}} item_many":"",Add:"Dodaj","Add Filament":"+ Dodaj filament","Advanced Settings":"",Archive:"Archiwum",Archived:"Zarchiwizowane","Basic Info":"Podstawowe informacje","Basic Parameters":"",Brand:"Marka","By Color":"Według koloru","By Type":"Według typu",Calibration:"Kalibracja",Cancel:"Anuluj",Color:"Kolor","Color Varieties":"Odmiany kolorów",day_Fri:"Pt",day_Mon:"Pon",day_Sat:"Sob",day_Sun:"Nie",day_Thu:"Czw",day_Tue:"Wt",day_Wed:"Śr",Delete:"Usuń",Distribution:"Dystrybucja","Dry Date":"","Dry Reminder":"","Drying: {{date}}":"Suszenie: {{date}}","Edit Filament":"Edytuj Filament","Edit Filament Info":"Edytuj informacje o filamencie",Empty:"Pusty","Every 2 Months":"","Every 2 Weeks":"","Every Month":"","Every Week":"",Exhausted:"Wyczerpane",Favorite:"","Fetching device info...":"Pobieranie informacji o urządzeniu...",Filament:"Filament","Filament Info":"Informacje o filamencie","Filament List":"Lista filamentów","Filament Manager":"Zarządzanie filamentem","Getting AMS data failed":"Nie udało się pobrać danych AMS","Getting device list failed, please retry":"Nie udało się pobrać listy urządzeń. Spróbuj ponownie","Input Note":"Wprowadź uwagę","Input Spool Weight":"Wprowadź masę szpuli","Input Total Weight":"Wprowadź całkowitą masę","Input Unit Price":"","Last Dry Date":"","Low Remain":"Pozostała niewielka ilość","Manual Add":"Dodawanie ręczne","Material Type":"Typ materiału","Needs Drying":"Wymaga wysuszenia","Net Weight":"Masa netto",Next:"Dalej","No AMS detected on this device":"Nie wykryto AMS na tym urządzeniu","No Data":"Brak danych","No printer found, please ensure logged in and device bound":"Nie znaleziono drukarki. Upewnij się, że użytkownik jest zalogowany i urządzenie jest powiązane","No Records":"Brak rekordów","No Usage Records":"Brak zapisów użytkowania",Note:"Uwaga",Off:"",Online:"Online",Operation:"Operacja",Others:"","per page":"/strona",Previous:"Poprzednie",Price:"","Read from AMS":"Odczytaj z AMS",Ready:"Gotowe",Remain:"Pozostało","Remain {{percent}}%":"Pozostało {{percent}}%","Remain Alert":"",Reminders:"Przypomnienia",roll:"rolka",Save:"Zapisz","Select Brand":"Wybierz markę","Select Currency":"","Select Device":"Wybierz urządzenie","Select Series":"Wybierz serię","Select Type":"Wybierz Typ",Series:"Seria","Spool Detail":"Szczegóły szpuli","Spool Weight":"Masa szpuli",Stats:"",Status:"","Status Reminders":"","Total Quantity":"Całkowita ilość","Total Value":"Całkowita wartość","Total Weight":"Całkowita masa","Unit Price(/kg)":"","Usage Heatmap":"Mapa cieplna użycia","Usage Records":"Rekordy użytkowania",Weight:"Masa"};Mr.use(Kr).init({lng:function(){const e=new URLSearchParams(window.location.search).get("lang");return e?(localStorage.setItem("BambuWebLang",e),e):localStorage.getItem("BambuWebLang")||"en"}(),fallbackLng:"en",returnEmptyString:!1,debug:!1,interpolation:{escapeValue:!1},resources:{en:{translation:Xr},zh_CN:{translation:Jr},ja_JP:{translation:Zr},it_IT:{translation:eo},fr_FR:{translation:to},de_DE:{translation:no},hu_HU:{translation:ro},es_ES:{translation:oo},sv_SE:{translation:ao},cs_CZ:{translation:io},nl_NL:{translation:so},uk_UA:{translation:lo},ru_RU:{translation:co},tr_TR:{translation:uo},pt_BR:{translation:fo},ko_KR:{translation:po},pl_PL:{translation:ho}},parseMissingKeyHandler:e=>e});const mo=function(e){return new Cn(e)}({component:function(){const e="/filament"===function(e){const t=Ct(null==e||e.router),n=(null==e?void 0:e.router)||t,r=p.useRef(void 0);return tn(n.stores.__store,t=>{if(null==e?void 0:e.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const n=$(r.current,e.select(t));return r.current=n,n}return e.select(t)}return t})}({select:e=>e.location.pathname});return l.jsxs(l.Fragment,{children:[!e&&l.jsxs("div",{className:"flex gap-4 p-2 border-b border-neutral-200 dark:border-neutral-700 text-sm",children:[l.jsx(Sn,{to:"/",className:"font-bold hover:text-green-500 [&.active]:text-green-500",children:"Home"}),l.jsx(Sn,{to:"/about",className:"font-bold hover:text-green-500 [&.active]:text-green-500",children:"About"}),l.jsx(Sn,{to:"/app",className:"font-bold hover:text-green-500 [&.active]:text-green-500",children:"App"})]}),l.jsx(Tn,{})]})}}),go=e=>{let t;const n=new Set,r=(e,r)=>{const o="function"==typeof e?e(t):e;if(!Object.is(o,t)){const e=t;t=(null!=r?r:"object"!=typeof o||null===o)?o:Object.assign({},t,o),n.forEach(n=>n(t,e))}},o=()=>t,a={setState:r,getState:o,getInitialState:()=>i,subscribe:e=>(n.add(e),()=>n.delete(e))},i=t=e(r,o,a);return a},vo=e=>e;const yo=e=>{const t=(e=>e?go(e):go)(e),n=e=>function(e,t=vo){const n=h.useSyncExternalStore(e.subscribe,h.useCallback(()=>t(e.getState()),[e,t]),h.useCallback(()=>t(e.getInitialState()),[e,t]));return h.useDebugValue(n),n}(t,e);return Object.assign(n,t),n};var xo=Symbol.for("immer-nothing"),bo=Symbol.for("immer-draftable"),wo=Symbol.for("immer-state");function So(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var ko=Object.getPrototypeOf;function Co(e){return!!e&&!!e[wo]}function No(e){var t;return!!e&&(Eo(e)||Array.isArray(e)||!!e[bo]||!!(null==(t=e.constructor)?void 0:t[bo])||Ao(e)||Mo(e))}var jo=Object.prototype.constructor.toString(),_o=new WeakMap;function Eo(e){if(!e||"object"!=typeof e)return!1;const t=Object.getPrototypeOf(e);if(null===t||t===Object.prototype)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(n===Object)return!0;if("function"!=typeof n)return!1;let r=_o.get(n);return void 0===r&&(r=Function.toString.call(n),_o.set(n,r)),r===jo}function Po(e,t,n=!0){if(0===Ro(e)){(n?Reflect.ownKeys(e):Object.keys(e)).forEach(n=>{t(n,e[n],e)})}else e.forEach((n,r)=>t(r,n,e))}function Ro(e){const t=e[wo];return t?t.type_:Array.isArray(e)?1:Ao(e)?2:Mo(e)?3:0}function Lo(e,t){return 2===Ro(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Fo(e,t,n){const r=Ro(e);2===r?e.set(t,n):3===r?e.add(n):e[t]=n}function Ao(e){return e instanceof Map}function Mo(e){return e instanceof Set}function To(e){return e.copy_||e.base_}function Do(e,t){if(Ao(e))return new Map(e);if(Mo(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=Eo(e);if(!0===t||"class_only"===t&&!n){const t=Object.getOwnPropertyDescriptors(e);delete t[wo];let n=Reflect.ownKeys(t);for(let r=0;r1&&Object.defineProperties(e,{set:Io,add:Io,clear:Io,delete:Io}),Object.freeze(e),t&&Object.values(e).forEach(e=>Oo(e,!0))),e}var Io={value:function(){So(2)}};function zo(e){return null===e||"object"!=typeof e||Object.isFrozen(e)}var Bo,$o={};function Wo(e){const t=$o[e];return t||So(0),t}function Uo(){return Bo}function Vo(e,t){t&&(Wo("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Ho(e){Ko(e),e.drafts_.forEach(Go),e.drafts_=null}function Ko(e){e===Bo&&(Bo=e.parent_)}function qo(e){return Bo={drafts_:[],parent_:Bo,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function Go(e){const t=e[wo];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function Qo(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return void 0!==e&&e!==n?(n[wo].modified_&&(Ho(t),So(4)),No(e)&&(e=Yo(t,e),t.parent_||Jo(t,e)),t.patches_&&Wo("Patches").generateReplacementPatches_(n[wo].base_,e,t.patches_,t.inversePatches_)):e=Yo(t,n,[]),Ho(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==xo?e:void 0}function Yo(e,t,n){if(zo(t))return t;const r=e.immer_.shouldUseStrictIteration(),o=t[wo];if(!o)return Po(t,(r,a)=>Xo(e,o,t,r,a,n),r),t;if(o.scope_!==e)return t;if(!o.modified_)return Jo(e,o.base_,!0),o.base_;if(!o.finalized_){o.finalized_=!0,o.scope_.unfinalizedDrafts_--;const t=o.copy_;let a=t,i=!1;3===o.type_&&(a=new Set(t),t.clear(),i=!0),Po(a,(r,a)=>Xo(e,o,t,r,a,n,i),r),Jo(e,t,!1),n&&e.patches_&&Wo("Patches").generatePatches_(o,n,e.patches_,e.inversePatches_)}return o.copy_}function Xo(e,t,n,r,o,a,i){if(null==o)return;if("object"!=typeof o&&!i)return;const s=zo(o);if(!s||i){if(Co(o)){const i=Yo(e,o,a&&t&&3!==t.type_&&!Lo(t.assigned_,r)?a.concat(r):void 0);if(Fo(n,r,i),!Co(i))return;e.canAutoFreeze_=!1}else i&&n.add(o);if(No(o)&&!s){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;if(t&&t.base_&&t.base_[r]===o&&s)return;Yo(e,o),t&&t.scope_.parent_||"symbol"==typeof r||!(Ao(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))||Jo(e,o)}}}function Jo(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Oo(t,n)}var Zo={get(e,t){if(t===wo)return e;const n=To(e);if(!Lo(n,t))return function(e,t,n){var r;const o=na(t,n);return o?"value"in o?o.value:null==(r=o.get)?void 0:r.call(e.draft_):void 0}(e,n,t);const r=n[t];return e.finalized_||!No(r)?r:r===ta(e.base_,t)?(oa(e),e.copy_[t]=aa(r,e)):r},has:(e,t)=>t in To(e),ownKeys:e=>Reflect.ownKeys(To(e)),set(e,t,n){const r=na(To(e),t);if(null==r?void 0:r.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const r=ta(To(e),t),i=null==r?void 0:r[wo];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(((o=n)===(a=r)?0!==o||1/o==1/a:o!=o&&a!=a)&&(void 0!==n||Lo(e.base_,t)))return!0;oa(e),ra(e)}var o,a;return e.copy_[t]===n&&(void 0!==n||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty:(e,t)=>(void 0!==ta(e.base_,t)||t in e.base_?(e.assigned_[t]=!1,oa(e),ra(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const n=To(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r?{writable:!0,configurable:1!==e.type_||"length"!==t,enumerable:r.enumerable,value:n[t]}:r},defineProperty(){So(11)},getPrototypeOf:e=>ko(e.base_),setPrototypeOf(){So(12)}},ea={};function ta(e,t){const n=e[wo];return(n?To(n):e)[t]}function na(e,t){if(!(t in e))return;let n=ko(e);for(;n;){const e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=ko(n)}}function ra(e){e.modified_||(e.modified_=!0,e.parent_&&ra(e.parent_))}function oa(e){e.copy_||(e.copy_=Do(e.base_,e.scope_.immer_.useStrictShallowCopy_))}Po(Zo,(e,t)=>{ea[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),ea.deleteProperty=function(e,t){return ea.set.call(this,e,t,void 0)},ea.set=function(e,t,n){return Zo.set.call(this,e[0],t,n,e[0])};function aa(e,t){const n=Ao(e)?Wo("MapSet").proxyMap_(e,t):Mo(e)?Wo("MapSet").proxySet_(e,t):function(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:Uo(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let o=r,a=Zo;n&&(o=[r],a=ea);const{revoke:i,proxy:s}=Proxy.revocable(o,a);return r.draft_=s,r.revoke_=i,s}(e,t);return(t?t.scope_:Uo()).drafts_.push(n),n}function ia(e){if(!No(e)||zo(e))return e;const t=e[wo];let n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Do(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Do(e,!0);return Po(n,(e,t)=>{Fo(n,e,ia(t))},r),t&&(t.finalized_=!1),n}var sa=(new class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(e,t,n)=>{if("function"==typeof e&&"function"!=typeof t){const n=t;t=e;const r=this;return function(e=n,...o){return r.produce(e,e=>t.call(this,e,...o))}}let r;if("function"!=typeof t&&So(6),void 0!==n&&"function"!=typeof n&&So(7),No(e)){const o=qo(this),a=aa(e,void 0);let i=!0;try{r=t(a),i=!1}finally{i?Ho(o):Ko(o)}return Vo(o,n),Qo(r,o)}if(!e||"object"!=typeof e){if(r=t(e),void 0===r&&(r=e),r===xo&&(r=void 0),this.autoFreeze_&&Oo(r,!0),n){const t=[],o=[];Wo("Patches").generateReplacementPatches_(e,r,t,o),n(t,o)}return r}So(1)},this.produceWithPatches=(e,t)=>{if("function"==typeof e)return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),"boolean"==typeof(null==e?void 0:e.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),"boolean"==typeof(null==e?void 0:e.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){No(e)||So(8),Co(e)&&(e=function(e){Co(e)||So(10);return ia(e)}(e));const t=qo(this),n=aa(e,void 0);return n[wo].isManual_=!0,Ko(t),n}finishDraft(e,t){const n=e&&e[wo];n&&n.isManual_||So(9);const{scope_:r}=n;return Vo(r,t),Qo(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}n>-1&&(t=t.slice(n+1));const r=Wo("Patches").applyPatches_;return Co(e)?r(e,t):this.produce(e,e=>r(e,t))}}).produce;const la=e=>(t,n,r)=>(r.setState=(e,n,...r)=>{const o="function"==typeof e?sa(e):e;return t(o,n,...r)},e(r.setState,n,r)),ca={BASE_URL:"./",DEV:!1,MODE:"production",PROD:!0,SSR:!1},ua=e=>!!e.dispatchFromDevtools&&"function"==typeof e.dispatch,da=new Map,fa=e=>{const t=da.get(e);return t?Object.fromEntries(Object.entries(t.stores).map(([e,t])=>[e,t.getState()])):{}},pa=e=>{var t,n;if(!e)return;const r=e.split("\n"),o=r.findIndex(e=>e.includes("api.setState"));if(o<0)return;const a=(null==(t=r[o+1])?void 0:t.trim())||"";return null==(n=/.+ (.+) .+/.exec(a))?void 0:n[1]},ha=(e,t={})=>(n,r,o)=>{const{enabled:a,anonymousActionType:i,store:s,...l}=t;let c;try{c=(null!=a?a:"production"!==(ca?"production":void 0))&&window.__REDUX_DEVTOOLS_EXTENSION__}catch(m){}if(!c)return e(n,r,o);const{connection:u,...d}=((e,t,n)=>{if(void 0===e)return{type:"untracked",connection:t.connect(n)};const r=da.get(n.name);if(r)return{type:"tracked",store:e,...r};const o={connection:t.connect(n),stores:{}};return da.set(n.name,o),{type:"tracked",store:e,...o}})(s,c,l);let f=!0;o.setState=(e,t,a)=>{const c=n(e,t);if(!f)return c;const d=void 0===a?{type:i||pa((new Error).stack)||"anonymous"}:"string"==typeof a?{type:a}:a;return void 0===s?(null==u||u.send(d,r()),c):(null==u||u.send({...d,type:`${s}/${d.type}`},{...fa(l.name),[s]:o.getState()}),c)},o.devtools={cleanup:()=>{u&&"function"==typeof u.unsubscribe&&u.unsubscribe(),((e,t)=>{if(void 0===t)return;const n=da.get(e);n&&(delete n.stores[t],0===Object.keys(n.stores).length&&da.delete(e))})(l.name,s)}};const p=(...e)=>{const t=f;f=!1,n(...e),f=t},h=e(o.setState,r,o);if("untracked"===d.type?null==u||u.init(h):(d.stores[d.store]=o,null==u||u.init(Object.fromEntries(Object.entries(d.stores).map(([e,t])=>[e,e===d.store?h:t.getState()])))),ua(o)){let e=!1;const t=o.dispatch;o.dispatch=(...n)=>{"production"===(ca?"production":void 0)||"__setState"!==n[0].type||e||(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),e=!0),t(...n)}}return u.subscribe(e=>{var t;switch(e.type){case"ACTION":return"string"!=typeof e.payload?void console.error("[zustand devtools middleware] Unsupported action format"):ma(e.payload,e=>{if("__setState"===e.type){if(void 0===s)return void p(e.state);1!==Object.keys(e.state).length&&console.error('\n [zustand devtools middleware] Unsupported __setState action format.\n When using \'store\' option in devtools(), the \'state\' should have only one key, which is a value of \'store\' that was passed in devtools(),\n and value of this only key should be a state object. Example: { "type": "__setState", "state": { "abc123Store": { "foo": "bar" } } }\n ');const t=e.state[s];if(null==t)return;return void(JSON.stringify(o.getState())!==JSON.stringify(t)&&p(t))}ua(o)&&o.dispatch(e)});case"DISPATCH":switch(e.payload.type){case"RESET":return p(h),void 0===s?null==u?void 0:u.init(o.getState()):null==u?void 0:u.init(fa(l.name));case"COMMIT":return void 0===s?void(null==u||u.init(o.getState())):null==u?void 0:u.init(fa(l.name));case"ROLLBACK":return ma(e.state,e=>{if(void 0===s)return p(e),void(null==u||u.init(o.getState()));p(e[s]),null==u||u.init(fa(l.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return ma(e.state,e=>{void 0!==s?JSON.stringify(o.getState())!==JSON.stringify(e[s])&&p(e[s]):p(e)});case"IMPORT_STATE":{const{nextLiftedState:n}=e.payload,r=null==(t=n.computedStates.slice(-1)[0])?void 0:t.state;if(!r)return;return p(void 0===s?r:r[s]),void(null==u||u.send(null,n))}case"PAUSE_RECORDING":return f=!f}return}}),h},ma=(e,t)=>{let n;try{n=JSON.parse(e)}catch(r){console.error("[zustand devtools middleware] Could not parse the received json",r)}void 0!==n&&t(n)},ga=e=>({devices:[],addDevice:t=>e(e=>{e.devices.push({id:t,value:0,AmsList:[]})}),removeDevice:t=>e(e=>{e.devices=e.devices.filter(e=>e.id!==t)})}),va=e=>({device:{id:"",value:0,AmsList:[],addAms:t=>e(e=>{e.device.AmsList.push({id:t,value:0,SlotList:[]})}),removeAms:t=>e(e=>{e.device.AmsList=e.device.AmsList.filter(e=>e.id!==t)})}}),ya=e=>({ams:{id:"",value:0,SlotList:[],setValue:(t,n)=>e(e=>{e.ams.id=t,e.ams.value=n}),addSlot:t=>e(e=>{e.ams.SlotList.push({id:t,value:0})}),removeSlot:t=>e(e=>{e.ams.SlotList=e.ams.SlotList.filter(e=>e.id!==t)})}}),xa=e=>({slot:{id:"",value:0,status:"",setValue:(t,n)=>e(e=>{e.slot.id=t,e.slot.value=n}),setStatus:(t,n)=>e(e=>{e.slot.id=t,e.slot.status=n})}}),ba={logged_in:!1,is_syncing:!1,is_pulling:!1,last_synced_at:"",last_error:{code:0,message:""}};const wa=e=>({filament:{spools:[],presets:{vendors:[]},machines:[],amsData:null,selectedMachineDevId:"",theme:/\(\s*light\s*\)/i.test(navigator.userAgent)?"light":"dark",isLoading:!1,error:null,cloudSync:{...ba},cloudConfig:null,cloudSyncHistory:[],cloudAutoPushSummary:null,toasts:[],debugEnabled:!1,debugLogs:[],debugFilter:"all",candidatesByFilaId:{},items:[],setSpools:t=>e(e=>{e.filament.spools=t,e.filament.items=t,e.filament.error=null}),setPresets:t=>e(e=>{e.filament.presets=t}),setMachines:t=>e(e=>{e.filament.machines=t}),setAmsData:t=>e(e=>{e.filament.amsData=t}),setSelectedMachineDevId:t=>e(e=>{e.filament.selectedMachineDevId=t||""}),setTheme:t=>e(e=>{e.filament.theme=t}),setLoading:t=>e(e=>{e.filament.isLoading=t}),setError:t=>e(e=>{e.filament.error=t,e.filament.isLoading=!1}),setCloudSync:t=>e(e=>{e.filament.cloudSync=t}),setCloudConfig:t=>e(e=>{e.filament.cloudConfig=t}),appendCloudSyncHistory:t=>e(e=>{var n;const r=e.filament.cloudSyncHistory,o=((null==(n=r[r.length-1])?void 0:n.id)??0)+1;r.push({id:o,...t}),r.length>100&&r.splice(0,r.length-100)}),clearCloudSyncHistory:()=>e(e=>{e.filament.cloudSyncHistory=[]}),setCloudAutoPushSummary:t=>e(e=>{e.filament.cloudAutoPushSummary=t}),pushToast:t=>e(e=>{var n;const r=((null==(n=e.filament.toasts[e.filament.toasts.length-1])?void 0:n.id)??0)+1;e.filament.toasts.push({id:r,...t}),e.filament.toasts.length>5&&e.filament.toasts.splice(0,e.filament.toasts.length-5)}),dismissToast:t=>e(e=>{e.filament.toasts=e.filament.toasts.filter(e=>e.id!==t)}),setDebugEnabled:t=>e(e=>{e.filament.debugEnabled=t,t||(e.filament.debugLogs=[],e.filament.debugFilter="all")}),appendDebugLog:t=>e(e=>{var n;if(!e.filament.debugEnabled)return;const r=((null==(n=e.filament.debugLogs[e.filament.debugLogs.length-1])?void 0:n.id)??0)+1;e.filament.debugLogs.push({id:r,...t}),e.filament.debugLogs.length>300&&e.filament.debugLogs.splice(0,e.filament.debugLogs.length-300)}),clearDebugLogs:()=>e(e=>{e.filament.debugLogs=[]}),setDebugFilter:t=>e(e=>{e.filament.debugFilter=t}),setColorCandidates:(t,n)=>e(e=>{if(!t)return;const r=Array.isArray(n)?n:[],o=e.filament.candidatesByFilaId[t];0===r.length&&Array.isArray(o)&&o.length>0||(e.filament.candidatesByFilaId[t]=r)}),setItems:t=>e(e=>{e.filament.items=t,e.filament.spools=t,e.filament.error=null})}}),Sa=yo(ha(la((e,t,n)=>({...ga(e),...va(e),...ya(e),...xa(e),...wa(e)})),{name:"app-store"}));function ka(e,t){!function(e){var t,n,r,o,a;const i="string"==typeof e?e:JSON.stringify(e);if("function"==typeof(null==(n=null==(t=window.chrome)?void 0:t.webview)?void 0:n.postMessage))return void window.chrome.webview.postMessage(i);if("function"==typeof(null==(a=null==(o=null==(r=window.webkit)?void 0:r.messageHandlers)?void 0:o.wx)?void 0:a.postMessage))return void window.webkit.messageHandlers.wx.postMessage(i);const s=document.createElement("iframe");s.style.display="none",s.src="app://"+encodeURIComponent(i),document.body.appendChild(s),setTimeout(()=>{try{document.body.removeChild(s)}catch{}},200)}({head:e,body:t})}function Ca(){const e=p.useRef(0),t=p.useRef(new Map),n=p.useCallback(ka,[]),r=p.useCallback((r,o=5e3)=>{const a=e.current++,i=Sa.getState().filament,s={version:"1.0",type:"request",seq:a,ts:Date.now()},l=r??{};return i.debugEnabled&&"filament"===l.module&&i.appendDebugLog({ts:Date.now(),category:"bridge",level:"info",title:"Web request sent",summary:`${String(l.submod??"unknown")}/${String(l.action??"unknown")}`,detail:l}),n(s,r??{}),new Promise(e=>{const n=setTimeout(()=>{t.current.delete(a),e({ok:!1,error:"Request Timeout"})},o);t.current.set(a,{resolve:e,timer:n})})},[n]);return p.useEffect(()=>{const e=e=>{const n=e.detail;if(function(e){return"1.0"===e.head.version}(n)&&"response"===n.head.type){const e=t.current.get(n.head.seq);if(!e)return;clearTimeout(e.timer),t.current.delete(n.head.seq);const r=n.body,o=Sa.getState().filament;o.debugEnabled&&"filament"===(null==r?void 0:r.module)&&o.appendDebugLog({ts:Date.now(),category:"bridge",level:0===Number(r.error_code??0)?"info":"error",title:"C++ response received",summary:`${String(r.submod??"unknown")}/${String(r.action??"unknown")}`,detail:r}),e.resolve({ok:!0,value:n.body})}};return document.addEventListener("cpp:device",e),()=>{document.removeEventListener("cpp:device",e),t.current.forEach(e=>clearTimeout(e.timer)),t.current.clear()}},[]),r}function Na(e,t,n){return{module:"filament",submod:e,action:t,payload:n??{}}}function ja(e){const t=e&&"object"==typeof e?e:{},n=Array.isArray(t.filamentSettings)?t.filamentSettings:[],r=new Set,o=new Map;return n.forEach(e=>{const t="string"==typeof e.filamentVendor?e.filamentVendor:"",n="string"==typeof e.filamentType?e.filamentType:"",a="string"==typeof e.filamentName?e.filamentName:"";if(t&&r.add(t),!t||!n)return;const i=`${t}\0${n}`,s=o.get(i)??new Set,l=a.trim(),c=`${n} `;l&&l!==n&&l.startsWith(c)&&s.add(l.slice(c.length).trim()),o.set(i,s)}),{...t,vendors:t.vendors instanceof Array?t.vendors.filter(e=>"string"==typeof e&&e.length>0):[...r].sort(),types:t.types instanceof Array?t.types:[...o.entries()].map(([e,t])=>{const[n,r]=e.split("\0");return{vendor:n,type:r,series:[...t].filter(Boolean).sort()}}).sort((e,t)=>e.vendor.localeCompare(t.vendor)||e.type.localeCompare(t.type))}}function _a(e){const t=(e??"").trim();if(!t)return"";const n=(t.startsWith("#")?t:`#${t}`).slice(0,7).toUpperCase();return/^#[0-9A-F]{6}$/.test(n)?n:""}function Ea(e,t){const n=_a(e),r=_a(t);return!(!n||!r)&&n===r}function Pa(e){return Array.isArray(e)?e.map(_a).filter(e=>7===e.length):[]}function Ra(e){return Pa(e).slice().sort().join(",")}function La(e){return{hexes:Pa(e.hexes),primary:_a(e.primaryHex),colorType:e.colorType}}function Fa(e){const{hexes:t,primary:n,colorType:r}=La(e);if(t.length>1){if(1===r){const e=100/t.length;return`linear-gradient(90deg, ${t.map((t,n)=>`${t} ${n*e}%, ${t} ${(n+1)*e}%`).join(", ")})`}return`linear-gradient(90deg, ${t.join(", ")})`}return 1===t.length?t[0]:n||"#888"}function Aa(e){const{hexes:t,primary:n}=La(e);return t.length>1?t.join(" / "):1===t.length?t[0]:n}function Ma(e){const t=(e.color_code??"").trim();return!!t&&(!t.startsWith("#")&&!/^[0-9A-F]{6,8}$/i.test(t))}function Ta(e,t,n={}){if(!Array.isArray(e)||0===e.length)return null;const r=Pa(t);if(0===r.length)return null;const o=Ra(r);for(const a of e){if(n.officialOnly&&!Ma(a))continue;const e=Pa(a.colors);if((!n.singleHexOnly||1===e.length)&&(e.length===r.length&&Ra(e)===o))return a}return null}function Da(e,t){const n=(e.setting_id||"").trim(),r=n?t[n]:void 0,o=Pa(e.colors),a=_a(e.color_code);if(r){const e=Ta(r,o,{officialOnly:!0});if(e)return e}if(r&&a){const e=Ta(r,[a],{officialOnly:!0});if(e)return e}if(r&&a){const e=function(e,t){if(!Array.isArray(e)||0===e.length)return null;const n=_a(t);if(!n)return null;for(const r of e)if(Ma(r)&&Pa(r.colors).some(e=>Ea(e,n)))return r;return null}(r,a);if(e)return e}if(a)for(const[i,s]of Object.entries(t)){if(i===n)continue;const e=Ta(s,[a],{officialOnly:!0,singleHexOnly:!0});if(e)return e}if(r){const e=Ta(r,o);if(e)return e}return r&&a?Ta(r,[a]):null}function Oa({colorCode:e,colors:t,colorType:n,size:r=40,border:o=!0,radius:a}){const i=Pa(t),s=_a(e)||"#888",c={width:r,height:r,borderRadius:a??Math.max(2,Math.round(r/6)),overflow:"hidden",boxShadow:o?"inset 0 0 0 1px rgba(255, 255, 255, 0.10)":void 0,boxSizing:"border-box"};if(i.length>1&&1===n){const e=i.length,t=r>=24?2:1,n=Math.max(1,r-2*t),o=Math.floor(n/e),a=i.map((t,r)=>r===e-1?n-o*(e-1):o);return l.jsx("span",{className:"inline-flex shrink-0 align-middle",style:{...c,display:"inline-flex",alignItems:"center",justifyContent:"center",lineHeight:0,fontSize:0,background:"rgba(255, 255, 255, 0.06)"},children:l.jsx("span",{style:{display:"inline-flex",width:n,height:n,lineHeight:0,fontSize:0},children:i.map((e,t)=>l.jsx("span",{style:{display:"block",flex:`0 0 ${a[t]}px`,width:a[t],height:n,background:e}},`${t}-${e}`))})})}if(i.length>1){const e=i.join(", ");return l.jsx("span",{className:"inline-block shrink-0",style:{...c,background:`linear-gradient(90deg, ${e})`}})}const u=i[0]||s;return l.jsx("span",{className:"inline-block shrink-0",style:{...c,background:u}})}const Ia=["#000000","#333333","#555555","#808080","#BBBBBB","#FFFFFF","#FF0000","#CC3333","#FF6666","#FF3300","#FF6600","#FF9900","#FFCC00","#FFFF00","#CCFF00","#66FF00","#00CC00","#009933","#006633","#00CCCC","#0099CC","#0066CC","#0033CC","#0000FF","#3300CC","#6600CC","#9900CC","#CC00CC","#FF00FF","#FF66CC","#FF99CC","#CC6666","#996633","#663300","#CCCC99","#99CC66","#66CCCC","#6699FF","#CC99FF","#FFCC99"],za={manual:"Manual Entry",ams_sync:"AMS Sync",rfid:"RFID"},Ba=[20,50,100];function $a(e,t){const n=(e||"").trim(),r=(t||"").trim();return n?r&&r!==n?n&&(r===n||r.startsWith(n+" "))?r:`${n} ${r}`.trim():n:r}function Wa(e){const t=(e.brand||"").trim(),n=(e.series||"").trim(),r=(e.material_type||"").trim();return[t,n||r].filter(Boolean).join(" ")}function Ua(e){return"number"==typeof e.net_weight&&e.net_weight>0?Math.round(e.net_weight):Math.round((e.initial_weight||0)*(e.remain_percent||0)/100)}function Va(e,t){const n=Array.isArray(null==t?void 0:t.colors)?t.colors:[],r=Array.isArray(e.colors)?e.colors:[];return r.length>1?{colorCode:e.color_code,colors:r,colorType:e.color_type}:n.length>1?{colorCode:n[0]||e.color_code,colors:n,colorType:null==t?void 0:t.color_type}:{colorCode:e.color_code,colors:r,colorType:e.color_type}}function Ha(e,t){if(t<=7)return Array.from({length:t},(e,t)=>t+1);const n=[1];e>3&&n.push("...");for(let r=Math.max(2,e-1);r<=Math.min(t-1,e+1);r++)n.push(r);return e1&&n.push(t),n}const Ka="min-w-6 h-6 flex items-center justify-center rounded-sm border text-xs cursor-pointer px-1 disabled:opacity-30 disabled:cursor-default",qa="border-transparent bg-transparent text-fm-text-secondary hover:bg-fm-hover hover:text-fm-text-strong",Ga="text-left px-6 pt-2 pb-[9px] align-middle text-sm font-normal text-fm-text-strong h-12 sticky top-0 bg-[#141414] [html[data-theme=light]_&]:bg-white z-10 select-none border-b border-fm-border",Qa="text-left px-6 pt-2 pb-[9px] border-b border-fm-border align-middle h-[60px]";function Ya({spools:e,selected:t,onToggleSelect:n,onSelectAll:r,grouped:o,onDetail:a,onAddSimilar:i,onEmptyAdd:s,onDelete:c}){const{t:u}=Yr(),[d,f]=p.useState({key:"",asc:!0}),[h,m]=p.useState(1),[g,v]=p.useState(50),[y,x]=p.useState({}),b=Sa(e=>e.filament.candidatesByFilaId),w=p.useMemo(()=>{const{key:t,asc:n}=d;return t?[...e].sort((e,r)=>{const o=e[t],a=r[t];if("number"==typeof o&&"number"==typeof a)return n?o-a:a-o;const i=String(o||""),s=String(a||"");return n?i.localeCompare(s):s.localeCompare(i)}):e},[e,d]),S=w.length,k=p.useMemo(()=>{if(!o)return w.map(e=>({type:"spool",spool:e}));const e=function(e){const t={};return e.forEach(e=>{const n=Wa(e)||"?";t[n]||(t[n]={key:n,count:0,totalWeight:0,spools:[]}),t[n].count++,t[n].totalWeight+=Ua(e),t[n].spools.push(e)}),Object.values(t)}(w),t=[];return e.forEach(e=>{t.push({type:"group",group:e}),y[e.key]||e.spools.forEach(e=>t.push({type:"spool",spool:e}))}),t},[w,o,y]),C=k.length,N=Math.max(1,Math.ceil(C/g)),j=Math.min(h,N),_=k.slice((j-1)*g,j*g),E=p.useCallback(e=>{f(t=>t.key===e?{key:e,asc:!t.asc}:{key:e,asc:!0})},[]);return 0===S?l.jsxs("div",{className:"flex-1 min-h-0 flex flex-col items-center justify-center text-fm-text-detail gap-4 bg-fm-inner2 rounded-[16px] border border-fm-border",children:[l.jsxs("button",{type:"button",className:"relative w-12 h-12 rounded-lg border border-fm-border bg-fm-inner2 text-fm-text-detail cursor-pointer transition-colors duration-150 hover:bg-fm-hover hover:text-fm-text-primary",onClick:s,title:u("Add Filament"),"aria-label":u("Add Filament"),children:[l.jsx("span",{className:"absolute inset-2 rounded border-2 border-current opacity-55"}),l.jsx("span",{className:"absolute left-1/2 top-1/2 h-[2px] w-4 -translate-x-1/2 -translate-y-1/2 rounded-sm bg-current opacity-55"}),l.jsx("span",{className:"absolute left-1/2 top-1/2 h-4 w-[2px] -translate-x-1/2 -translate-y-1/2 rounded-sm bg-current opacity-55"})]}),l.jsx("p",{children:u("No Data")})]}):l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"flex-1 min-h-0 bg-[#141414] [html[data-theme=light]_&]:bg-white rounded-[16px] border border-fm-border p-3 relative overflow-hidden",children:l.jsx("div",{className:"h-full overflow-auto px-3",children:l.jsxs("table",{className:"w-full border-separate border-spacing-0",children:[l.jsxs("colgroup",{children:[l.jsx("col",{style:{width:48}}),l.jsx("col",{style:{minWidth:200}}),l.jsx("col",{style:{width:180}}),l.jsx("col",{style:{width:140}})]}),l.jsx("thead",{children:l.jsxs("tr",{children:[l.jsx("th",{className:`${Ga} !px-4 w-12 text-center`,children:l.jsx("input",{type:"checkbox",className:"w-4 h-4 cursor-pointer accent-fm-brand",checked:t.size>0&&t.size===e.length,onChange:r})}),l.jsx(Xa,{label:u("Filament"),sortKey:"brand",current:d.key,asc:d.asc,onClick:E}),l.jsx(Xa,{label:u("Remain"),sortKey:"remain_percent",current:d.key,asc:d.asc,onClick:E}),l.jsx("th",{className:Ga,children:u("Operation")})]})}),l.jsx("tbody",{children:_.map(e=>{if("group"===e.type){const t=e.group,n=!!y[t.key];return l.jsx("tr",{"data-testid":"filament-group-row","data-group-key":t.key,"data-group-count":t.count,"data-group-weight":t.totalWeight,className:"cursor-pointer select-none",onClick:()=>{return e=t.key,void x(t=>({...t,[e]:!t[e]}));var e},children:l.jsx("td",{colSpan:4,className:"bg-fm-inner border-b border-fm-border px-6 pt-2 pb-[9px] h-8",children:l.jsxs("div",{className:"flex items-center gap-3 text-xs text-fm-text-secondary",children:[l.jsx("span",{className:"inline-block w-3 transition-transform duration-150"+(n?" -rotate-90":""),children:"▾"}),l.jsx("span",{children:t.key}),l.jsx("span",{className:"bg-fm-input rounded-[10px] px-2 py-[1px] text-[11px]",children:t.count}),l.jsxs("span",{className:"text-fm-text-detail",children:[t.totalWeight," g"]})]})})},`g-${t.key}`)}const r=e.spool,o=r.remain_percent||0,s=0===o?"empty":o<20?"low":"",d=Ua(r),f=function(e){const t=e.spool_weight||0;return Math.max(0,Math.round((e.initial_weight||0)-t))}(r),p=Wa(r),h=Da(r,b),m=Va(r,h);return l.jsxs("tr",{"data-testid":`filament-row-${r.spool_id}`,"data-color-code":r.color_code,"data-color-type":r.color_type??2,className:"transition-colors duration-100 hover:bg-fm-hover"+(t.has(r.spool_id)?" bg-fm-selected":""),children:[l.jsx("td",{className:`${Qa} !px-4 w-12 text-center`,children:l.jsx("input",{type:"checkbox",className:"w-4 h-4 cursor-pointer accent-fm-brand",checked:t.has(r.spool_id),onChange:()=>n(r.spool_id)})}),l.jsx("td",{className:Qa,children:l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("div",{"data-testid":"filament-row-color","data-color-code":m.colorCode,className:"w-10 h-10 shrink-0 relative",children:l.jsx(Oa,{colorCode:m.colorCode,colors:m.colors,colorType:m.colorType})}),l.jsxs("div",{className:"flex flex-col gap-[2px] min-w-0",children:[l.jsx("span",{"data-testid":"filament-row-name",className:"text-sm text-fm-text-primary leading-[22px]",children:p||"—"}),l.jsxs("div",{className:"flex items-center gap-1 text-xs text-fm-text-secondary opacity-70 leading-[19px] min-w-0",children:[l.jsxs("span",{className:"shrink-0",children:[r.diameter||1.75," mm"]}),(()=>{const e=function(e,t){const n=Va(e,t);return Aa({hexes:n.colors,primaryHex:n.colorCode})}(r,h),t=function(e,t){const n=Va(e,t);return Aa({hexes:n.colors,primaryHex:n.colorCode})?Fa({hexes:n.colors,primaryHex:n.colorCode,colorType:n.colorType}):""}(r,h),n=((null==h?void 0:h.name)||r.color_name||"").trim(),o=(()=>{const e=((null==h?void 0:h.color_code)||"").trim();return e?e.startsWith("#")||/^[0-9A-F]{6,8}$/i.test(e)?"":e:""})();return n||e||t||o?l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"shrink-0",children:"|"}),t&&l.jsx("span",{"data-testid":"filament-row-color-swatch","data-swatch-bg":t,className:"inline-flex shrink-0",children:l.jsx(Oa,{colorCode:m.colorCode,colors:m.colors,colorType:m.colorType,size:14,radius:3})}),n&&l.jsx("span",{"data-testid":"filament-row-color-name",className:"truncate",children:n}),o&&l.jsxs("span",{"data-testid":"filament-row-fila-code",className:"text-fm-text-detail shrink-0",title:u("Bambu Color Code"),children:["· ",o]}),(n||o)&&e&&l.jsx("span",{className:"shrink-0",children:"·"}),e&&l.jsx("span",{"data-testid":"filament-row-color-hex",className:"font-mono tracking-wider truncate",children:e})]}):null})()]}),r.note&&l.jsxs("div",{className:"flex items-center gap-1 text-xs text-fm-text-detail leading-[19px] min-w-0",children:[l.jsxs("svg",{className:"shrink-0 w-3 h-3 opacity-60",viewBox:"0 0 12 12",fill:"none",children:[l.jsx("rect",{x:"1",y:"1",width:"10",height:"10",rx:"1",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("line",{x1:"3",y1:"4",x2:"9",y2:"4",stroke:"currentColor",strokeWidth:"1"}),l.jsx("line",{x1:"3",y1:"6.5",x2:"9",y2:"6.5",stroke:"currentColor",strokeWidth:"1"}),l.jsx("line",{x1:"3",y1:"9",x2:"6.5",y2:"9",stroke:"currentColor",strokeWidth:"1"})]}),l.jsx("span",{className:"truncate",title:r.note,children:r.note})]})]})]})}),l.jsx("td",{className:Qa,children:l.jsxs("div",{className:"flex flex-col gap-1",children:[l.jsxs("div",{className:"flex items-baseline gap-[2px] whitespace-nowrap",children:[l.jsxs("span",{className:"text-sm text-fm-text-primary leading-[22px]",children:[d," g"]}),l.jsx("span",{className:"text-xs text-fm-text-secondary leading-[19px]",children:" / "}),l.jsxs("span",{className:"text-xs text-fm-text-secondary leading-[19px]",children:[f," g"]})]}),l.jsx("div",{className:"w-[164px] h-[6px] bg-fm-input rounded-sm overflow-hidden",children:l.jsx("div",{className:"h-full rounded-full transition-[width] duration-300"+("empty"===s?" bg-fm-danger":"low"===s?" bg-fm-warning":" bg-fm-brand"),style:{width:`${o}%`}})})]})}),l.jsx("td",{className:Qa,children:l.jsxs("div",{className:"flex gap-2 items-center",children:[l.jsx("button",{"data-testid":"filament-row-detail",className:"w-4 h-4 bg-transparent border-none cursor-pointer text-fm-brand p-0 flex items-center justify-center transition-colors duration-150 hover:text-fm-brand-hover [&>svg]:w-4 [&>svg]:h-4",onClick:()=>a(r.spool_id),title:u("Spool Detail"),children:l.jsxs("svg",{viewBox:"0 0 16 16",fill:"none",children:[l.jsx("path",{d:"M3 2.5h6.5L13 6v7.5H3V2.5z",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("path",{d:"M9.5 2.5V6H13",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("circle",{cx:"7.5",cy:"9.5",r:"2",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("line",{x1:"9",y1:"11",x2:"11",y2:"13",stroke:"currentColor",strokeWidth:"1.1"})]})}),l.jsx("button",{"data-testid":"filament-row-add-similar",className:"w-4 h-4 bg-transparent border-none cursor-pointer text-fm-brand p-0 flex items-center justify-center transition-colors duration-150 hover:text-fm-brand-hover [&>svg]:w-4 [&>svg]:h-4",onClick:()=>i(r.spool_id),title:u("Add"),children:l.jsxs("svg",{viewBox:"0 0 16 16",fill:"none",children:[l.jsx("path",{d:"M3 2.5h6.5L13 6v7.5H3V2.5z",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("path",{d:"M9.5 2.5V6H13",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("line",{x1:"8",y1:"7.5",x2:"8",y2:"11.5",stroke:"currentColor",strokeWidth:"1.2"}),l.jsx("line",{x1:"6",y1:"9.5",x2:"10",y2:"9.5",stroke:"currentColor",strokeWidth:"1.2"})]})}),l.jsx("button",{"data-testid":"filament-row-delete",className:"w-4 h-4 bg-transparent border-none cursor-pointer text-fm-brand p-0 flex items-center justify-center transition-colors duration-150 hover:text-fm-brand-hover [&>svg]:w-4 [&>svg]:h-4",onClick:()=>c(r.spool_id),title:u("Delete"),children:l.jsxs("svg",{viewBox:"0 0 16 16",fill:"none",children:[l.jsx("path",{d:"M4 5h8l-.6 8H4.6L4 5z",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("path",{d:"M6 3h4",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("path",{d:"M3 5h10",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("path",{d:"M6.5 7v4M9.5 7v4",stroke:"currentColor",strokeWidth:"1"})]})})]})})]},r.spool_id)})})]})})}),C>g&&l.jsxs("div",{className:"flex items-center justify-end gap-1 py-3 shrink-0",children:[l.jsx("button",{className:`${Ka} ${qa}`,disabled:j<=1,onClick:()=>m(e=>Math.max(1,Math.min(e,N)-1)),children:"‹"}),Ha(j,N).map((e,t)=>"..."===e?l.jsx("span",{className:"text-fm-text-detail text-xs px-[2px]",children:"…"},`d${t}`):l.jsx("button",{className:`${Ka} ${e===j?"border-fm-border-focus bg-fm-selected text-fm-text-strong font-medium":qa}`,onClick:()=>m(e),children:e},e)),l.jsx("button",{className:`${Ka} ${qa}`,disabled:j>=N,onClick:()=>m(e=>Math.min(N,Math.min(e,N)+1)),children:"›"}),l.jsx("select",{className:"ml-3 bg-fm-inner2 border-none rounded-sm text-fm-text-primary text-xs px-1 py-[2px] cursor-pointer outline-none",value:g,onChange:e=>{v(Number(e.target.value)),m(1)},children:Ba.map(e=>l.jsxs("option",{value:e,children:[e,u("per page")]},e))})]})]})}function Xa({label:e,sortKey:t,current:n,asc:r,onClick:o}){const a=n===t?r?"sort-asc":"sort-desc":"";return l.jsxs("th",{className:`${Ga} cursor-pointer hover:text-fm-text-strong ${a}`,onClick:()=>o(t),children:[e,l.jsx("span",{className:"fm-sort-icon"})]})}const Ja=999999999;function Za(e){return!Number.isFinite(e)||e<0?0:Math.min(Ja,Math.round(e))}const ei=_a;function ti(e){const t=parseInt(String(e.weight??"0"),10)||0,n="number"==typeof e.remain?e.remain:0;return t<=0?0:n<=0?t:Math.round(t*n/100)}function ni(e){const t=e.value;if(t.length>1&&t.startsWith("0")&&!t.startsWith("0.")){const n=t.replace(/^0+(?=\d)/,"");return n!==t&&(e.value=n),Number(n)||0}return Number(t)||0}function ri(e,t,n,r){let o=(e||"").trim().replace(/\s+@.*$/,"");const a=$a(n,r);if(!o)return a;const i=[t,t.replace(/\s+/g,"")];"Bambu Lab"===t&&i.push("Bambu");for(const s of i.filter(Boolean)){if(o===s)return a;if(o.startsWith(`${s} `)){o=o.substring(s.length+1).trim();break}}return o||a}function oi({open:e,editingSpool:t,prefilledSpool:n,presets:r,onClose:o,onSubmitAdd:a,onSubmitUpdate:i,onFetchMachines:s,onRequestPushall:c,onFetchAmsData:u}){var d;const{t:f}=Yr(),h=!!t,m=t||n,g=Sa(e=>e.filament.cloudConfig),v=Sa(e=>e.filament.spools),y=Sa(e=>e.filament.selectedMachineDevId),x=p.useMemo(()=>{const e=Array.isArray(null==g?void 0:g.vendors)?g.vendors:void 0;return function(e,t,n){const r=new Set;return e.forEach(e=>{e.name&&r.add(e.name)}),null==t||t.forEach(e=>{e&&r.add(e)}),n.forEach(e=>{e.brand&&r.add(e.brand)}),[...r].sort()}(r,e,v)},[r,g,v]),[b,w]=p.useState("manual"),[S,k]=p.useState(""),[C,N]=p.useState(""),[j,_]=p.useState(""),[E,P]=p.useState(""),[R,L]=p.useState([]),[F,A]=p.useState(""),[M,T]=p.useState([]),[D,O]=p.useState(2),[I,z]=p.useState(""),B=p.useRef(""),$=p.useRef(!1),W=p.useRef(!1),[U,V]=p.useState(1e3),[H,K]=p.useState(1e3),[q,G]=p.useState(""),[Q,Y]=p.useState(1),[X,J]=p.useState([]),[Z,ee]=p.useState(null),[te,ne]=p.useState(null),[re,oe]=p.useState(null),[ae,ie]=p.useState({brand:!1,material:!1,color:!1,weight:!1}),[se,le]=p.useState(!1),[ce,ue]=p.useState("");p.useEffect(()=>{var t;if(e)if(w("manual"),Y(1),oe(null),ne(null),ie({brand:!1,material:!1,color:!1,weight:!1}),ee(null),ue(""),B.current="",$.current=!1,W.current=!1,z(""),m){k(m.brand||""),N(m.material_type||""),_(m.series||"");const e=ei(m.color_code);P(e),L(e&&(t=e,!Ia.some(e=>e.toUpperCase()===t.toUpperCase()))?[e]:[]),A(m.color_name||""),T(Array.isArray(m.colors)?[...m.colors]:[]),O(m.color_type??2);const n=m.spool_weight||0,r=Math.max(0,(m.initial_weight||0)-n);V(r>0?r:1e3);const o=m.remain_percent||0,a="number"==typeof m.net_weight&&m.net_weight>0?Math.round(m.net_weight):Math.round(r*o/100);K(a>0?a:r>0?r:1e3),G(m.note||"")}else k(""),N(""),_(""),P(""),L([]),A(""),T([]),O(2),V(1e3),K(1e3),G("")},[e,m,n]);const de=p.useCallback(e=>{var t;const n=(e.filamentVendor||"").trim(),o=(e.filamentType||"").trim(),a=(e.filamentId||"").trim();if(!a)return null;for(const i of r)if(!n||i.name===n)for(const e of i.types){if(o&&e.name!==o)continue;const n=null==(t=e.items)?void 0:t.find(e=>e.setting_id===a||e.filament_id===a);if(n)return{vendor:i,type:e,item:n}}return null},[r]),fe=p.useCallback(e=>{const t=(e.filamentName||"").trim();if(de(e))return t;const n=(()=>{var n;for(const o of r)if(!e.filamentVendor||o.name===e.filamentVendor)for(const r of o.types){if(e.filamentType&&r.name!==e.filamentType)continue;const a=null==(n=r.items)?void 0:n.find(e=>{const n=ri(e.name,o.name,r.name,e.series||"");return!!t&&n===t});if(a)return{vendor:o,type:r,item:a}}return null})();return n?ri(n.item.name,n.vendor.name,n.type.name,n.item.series||""):t},[de,r]),pe=p.useMemo(()=>{const e=new Set,t=null==g?void 0:g.filamentSettings;if(Array.isArray(t)&&t.forEach(t=>{if(!t)return;if(S&&t.filamentVendor!==S)return;const n=fe(t);n&&e.add(n)}),0===e.size){(S?r.filter(e=>e.name===S):r).forEach(t=>{t.types.forEach(n=>{if(Array.isArray(n.items)&&n.items.length>0)return void n.items.forEach(r=>{const o=ri(r.name,t.name,n.name,r.series||"");o&&e.add(o)});const r=Array.isArray(n.series)?n.series.filter(Boolean):[];0===r.length?n.name&&e.add(n.name):r.forEach(t=>e.add($a(n.name,t)))})})}return[...e].sort()},[S,g,r,fe]),he=(j||"").trim()||(C||"").trim(),me=p.useMemo(()=>{const e=null==g?void 0:g.filamentSettings;if(!Array.isArray(e))return"";const t=(j||"").trim();if(!t||!S)return"";const n=e.find(e=>e&&e.filamentVendor===S&&fe(e)===t);return((null==n?void 0:n.filamentId)||"").trim()},[g,S,j,fe]),ge=p.useMemo(()=>{var e;for(const t of r)if(t.name===S)for(const n of t.types){if(n.name!==C)continue;const r=null==(e=n.items)?void 0:e.find(e=>{const r=e.series||"",o=ri(e.name,t.name,n.name,r);return r===(j||"")||o===(j||"")||$a(n.name,r)===(j||"")||r===$a(n.name,j)});if(r)return r}return null},[r,S,C,j]),ve=p.useMemo(()=>me||(null==ge?void 0:ge.setting_id)||(null==ge?void 0:ge.filament_id)||(null==m?void 0:m.setting_id)||"",[me,ge,null==m?void 0:m.setting_id]),ye=Sa(e=>e.filament.candidatesByFilaId),xe=Sa(e=>e.filament.setColorCandidates),be=p.useMemo(()=>ve?ye[ve]??[]:[],[ve,ye]),we=p.useMemo(()=>{if(!C)return[];const e=new Set;for(const t of r)for(const n of t.types)if(n.name===C)for(const t of n.items||[]){const n=(t.setting_id||t.filament_id||"").trim();n&&e.add(n)}return[...e]},[r,C]),Se=p.useMemo(()=>Ia.map(e=>{const t=e.toUpperCase();return{color_code:t,colors:[t],color_type:2,name:""}}),[]),ke=p.useMemo(()=>{if(be.length>0)return be;if(we.length>0){const e=[],t=new Set;for(const n of we){const r=ye[n];if(r)for(const n of r){const r=`${n.color_type}|${(n.colors||[]).join(",").toUpperCase()}`;t.has(r)||(t.add(r),e.push(n))}}if(e.length>0)return e}return C?Se:[]},[be,we,ye,C,Se]),Ce=p.useMemo(()=>Fa({hexes:M,primaryHex:E,colorType:D}),[M,D,E]),Ne=p.useMemo(()=>M.length>1?M.map(e=>(e||"").toUpperCase()).filter(Boolean).join(" / "):(E||"").toUpperCase(),[M,E]),je=Ca(),_e=p.useCallback(async e=>{if(!e)return;if(!Sa.getState().filament.candidatesByFilaId[e])try{const t=await je({module:"filament",submod:"colors",action:"query_for_id",payload:{fila_id:e}});if(t.ok&&0===t.value.error_code){const n=t.value.payload,r=Array.isArray(null==n?void 0:n.candidates)?n.candidates:[],o=Sa.getState().filament.candidatesByFilaId[e];if(0===r.length&&Array.isArray(o)&&o.length>0)return;xe(e,r)}else{const n=t.ok?t.value.message:t.error;console.warn("[fila] loadColorCandidates failed for",e,n);const r=Sa.getState().filament.candidatesByFilaId[e];if(Array.isArray(r)&&r.length>0)return;xe(e,[])}}catch(t){console.warn("[fila] loadColorCandidates threw for",e,t);const n=Sa.getState().filament.candidatesByFilaId[e];if(Array.isArray(n)&&n.length>0)return;xe(e,[])}},[je,xe]);p.useEffect(()=>{e&&ve&&_e(ve)},[e,ve,_e]),p.useEffect(()=>{var t;if(!e)return;if(!(!!ve&&((null==(t=ye[ve])?void 0:t.length)??0)>0)&&0!==we.length)for(const e of we)e!==ve&&_e(e)},[e,ve,we,ye,_e]);const Ee=p.useCallback(e=>function(e){const{candidate:t,formColorCode:n,formColors:r}=e,o=_a(n);if(!o)return!1;const a=_a((t.colors??[])[0]);if(2===t.color_type)return!(r.length>1)&&Ea(o,a);if(r.length<2)return!1;const i=Pa(t.colors);return i.length===r.length&&Ra(i)===Ra(r)}({candidate:e,formColorCode:E,formColors:M}),[E,M]);p.useEffect(()=>{if(!ve)return;if(!be||0===be.length)return;if(!B.current&&!$.current)return void(B.current=ve);if(B.current===ve)return;if(W.current)return B.current=ve,void(W.current=!1);if(!(!!E&&be.some(e=>Ee(e)))){const e=be.find(e=>2===e.color_type)||be[0];if(e){const t=e.colors&&e.colors[0]||"";t&&P(t),T(Array.isArray(e.colors)?[...e.colors]:[]),O(e.color_type??2),A(e.name||""),z(e.color_code||""),L([])}}B.current=ve},[ve,be,E,Ee]),p.useEffect(()=>{if(!E)return;if(!be||0===be.length)return;const e=be.find(e=>Ee(e));e&&(e.name&&A(t=>t===e.name?t:e.name),e.color_code&&z(t=>t===e.color_code?t:e.color_code))},[E,M,D,be,Ee]);const Pe=p.useCallback(e=>{const t=e.colors&&e.colors[0]||"";t&&P(t),T(Array.isArray(e.colors)?[...e.colors]:[]),O(e.color_type),A(e.name||"");const n=!!e.color_code&&!e.color_code.startsWith("#");z(n?e.color_code:""),$.current=!0},[]),Re=p.useCallback(e=>{P(e),T([]),O(2),A(""),z(""),$.current=!0},[]),Le=e=>{var t;const n=(e||"").trim();let o="";const a=null==g?void 0:g.filamentSettings;if(Array.isArray(a)){const e=a.find(e=>e&&e.filamentVendor===S&&fe(e)===n);e&&(o=(e.filamentType||"").trim())}if(!o)e:for(const i of r)if(!S||i.name===S)for(const e of i.types){if(null==(t=e.items)?void 0:t.find(t=>ri(t.name,i.name,e.name,t.series||"")===n)){o=e.name;break e}}if(!o){const e=(e=>{const t=(e||"").trim();if(!t)return{type:"",series:""};const n=new Set;(S?r.filter(e=>e.name===S):r).forEach(e=>e.types.forEach(e=>{e.name&&n.add(e.name)}));const o=[...n].sort((e,t)=>t.length-e.length);for(const r of o){if(t===r)return{type:r,series:""};if(t.startsWith(r+" "))return{type:r,series:t.substring(r.length+1).trim()}}const a=t.split(/\s+/)[0];return{type:a,series:t.substring(a.length).trim()}})(n);o=e.type}N(o),_(n)},Fe=U<=0?"":U>Ja||H>Ja?f("Weight cannot exceed {{max}}g",{max:Ja}):H>U?f("Current Net Weight cannot exceed Total Net Weight"):"",Ae=!!(S&&C&&E&&U>0&&H>=0&&U<=Ja&&H<=Ja&&H<=U),[Me,Te]=p.useState(!1),[De,Oe]=p.useState("#000000"),Ie=p.useRef(null),ze=p.useRef(null),Be=p.useCallback(()=>{Oe(E||"#000000"),Te(!0)},[E]),$e=p.useCallback(()=>{Te(!1)},[]),We=p.useCallback(()=>{const e=function(e,t,n){const r=function(e){const t=(e||"").trim();return t?(t.startsWith("#")?t:`#${t}`).slice(0,7).toUpperCase():""}(e);return!r||function(e,t){return t.some(t=>t.toUpperCase()===e.toUpperCase())}(r,n)||t.some(e=>e.toUpperCase()===r.toUpperCase())?{colorCode:r,customColors:t}:{colorCode:r,customColors:[...t,r]}}(De,R,Ia);P(e.colorCode),L(e.customColors),T([]),O(2),A(""),z(""),$.current=!0,Te(!1)},[De,R]);p.useEffect(()=>{if(!Me)return;const e=e=>{"Escape"===e.key&&(e.stopPropagation(),$e())};return window.addEventListener("keydown",e,!0),()=>{window.removeEventListener("keydown",e,!0)}},[Me,$e]);const Ue=p.useCallback(async(e,t=!0)=>{ne(null),oe(null),le(!0),ue("");try{const n=await u(t?e:void 0,t);ee(n),n&&n.ams_units.length>0?ne(n.ams_units[0].ams_id):ue(f("No AMS detected on this device"))}catch{ue(f("Getting AMS data failed"))}le(!1)},[u,f]),[Ve,He]=p.useState(!1),Ke=p.useCallback(async()=>{var e,t;if(Ve)return;const n=(null==Z?void 0:Z.selected_dev_id)||(null==(e=X.find(e=>e.is_online))?void 0:e.dev_id)||(null==(t=X[0])?void 0:t.dev_id)||"";if(n){He(!0);try{await c(n)}catch{}window.setTimeout(()=>He(!1),2e3)}},[Ve,null==Z?void 0:Z.selected_dev_id,X,c]);p.useEffect(()=>{if(!e||"ams"!==b||se)return;if(!y)return;const t=(null==Z?void 0:Z.selected_dev_id)||"";t&&t!==y&&X.some(e=>e.dev_id===y)&&Ue(y,!1)},[e,b,se,y,null==Z?void 0:Z.selected_dev_id,X,Ue]);const qe=p.useRef(re);qe.current=re;const Ge=p.useRef(Z);Ge.current=Z;const Qe=p.useRef(te);Qe.current=te;const Ye=p.useRef(ce);Ye.current=ce,p.useEffect(()=>{if(!e||"ams"!==b||se)return;if(!((null==Z?void 0:Z.selected_dev_id)||""))return;let t=!1;const n=window.setInterval(async()=>{try{const e=await u();if(t||!e)return;const n=Ge.current;if(n&&JSON.stringify(n)===JSON.stringify(e))return;ee(e),e.ams_units.length>0&&(Ye.current&&ue(""),null==Qe.current&&ne(e.ams_units[0].ams_id));const r=qe.current;if(r){const t=e.ams_units.find(e=>e.ams_id===r.ams_id),n=null==t?void 0:t.trays.find(e=>e.slot_id===r.slot_id);n?JSON.stringify(n)!==JSON.stringify(r.tray)&&oe({ams_id:r.ams_id,slot_id:r.slot_id,tray:n}):oe(null)}}catch{}},1500);return()=>{t=!0,window.clearInterval(n)}},[e,b,se,null==Z?void 0:Z.selected_dev_id,u]);const Xe=p.useRef(X);Xe.current=X,p.useEffect(()=>{if(!e||"ams"!==b||se)return;let t=!1;const n=window.setInterval(async()=>{try{const e=await s();if(t||!Array.isArray(e))return;const n=Xe.current;if(JSON.stringify(n)===JSON.stringify(e))return;J(e)}catch{}},3e3);return()=>{t=!0,window.clearInterval(n)}},[e,b,se,s]);const[Je,Ze]=p.useState({x:0,y:0}),et=p.useRef(null);p.useEffect(()=>{e&&Ze({x:0,y:0})},[e]);const tt=p.useCallback(e=>{const t=et.current;t&&Ze({x:t.baseX+(e.clientX-t.startX),y:t.baseY+(e.clientY-t.startY)})},[]),nt=p.useCallback(()=>{et.current=null,window.removeEventListener("mousemove",tt),window.removeEventListener("mouseup",nt),document.body.style.userSelect=""},[tt]),rt=p.useCallback(e=>{e.target.closest("button, input, select, textarea, a")||(et.current={startX:e.clientX,startY:e.clientY,baseX:Je.x,baseY:Je.y},window.addEventListener("mousemove",tt),window.addEventListener("mouseup",nt),document.body.style.userSelect="none",e.preventDefault())},[Je,tt,nt]),ot=p.useCallback(()=>Ze({x:0,y:0}),[]);if(!e)return null;const at=null==Z?void 0:Z.ams_units.find(e=>e.ams_id===te),it=["A1","A2","A3","A4"],st="ams"===b&&!!re,lt=st&&ae.brand,ct=st&&ae.material,ut=st&&ae.color,dt=st&&ae.weight;return l.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-start justify-center pt-10 z-[1000]",children:l.jsxs("div",{"data-testid":h?"edit-dialog":"add-dialog","data-mode":b,className:"w-[644px] max-h-[calc(100vh-80px)] bg-[#242424] [html[data-theme=light]_&]:bg-fm-sidebar rounded-lg shadow-[0px_8px_24px_0px_rgba(0,0,0,0.12)] flex flex-col overflow-hidden fm-native-form",style:{transform:`translate(${Je.x}px, ${Je.y}px)`},onClick:e=>e.stopPropagation(),children:[l.jsxs("div",{className:"flex items-center justify-between h-[40px] pl-[24px] pr-[8px] shrink-0 relative cursor-move select-none",onMouseDown:rt,onDoubleClick:ot,title:f("Drag to move"),children:[l.jsx("h3",{className:"text-[14px] font-bold leading-[22px] text-fm-text-strong truncate",children:f(h?"Edit Filament":"Add Filament")}),l.jsx("button",{className:"size-[24px] rounded-[6px] flex items-center justify-center bg-transparent border-none text-fm-text-detail cursor-pointer hover:text-fm-text-strong hover:bg-fm-hover",onClick:o,children:l.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:l.jsx("path",{d:"M4 4l8 8M12 4l-8 8",stroke:"currentColor",strokeWidth:"1.2"})})}),l.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px bg-fm-border"})]}),l.jsx("div",{className:"flex-1 overflow-y-auto",children:l.jsxs("div",{className:"flex flex-col gap-[24px] p-[24px]",children:[!h&&l.jsxs("div",{className:"flex gap-[16px] items-start w-full",children:[l.jsx("div",{"data-testid":"dialog-tab-manual","data-active":"manual"===b?"true":"false",className:"flex-1 flex items-center justify-center py-[4px] px-[16px] cursor-pointer rounded-[8px] border transition-all duration-150 "+("manual"===b?"border-fm-brand text-[#50e81d]":"border-fm-border-focus text-fm-text-primary hover:bg-fm-hover"),onClick:()=>w("manual"),children:l.jsx("span",{className:"py-[5px] text-[14px] leading-[22px]",children:f("Manual Add")})}),l.jsx("div",{"data-testid":"dialog-tab-ams","data-active":"ams"===b?"true":"false",className:"flex-1 flex items-center justify-center py-[4px] px-[8px] cursor-pointer rounded-[8px] border transition-all duration-150 "+("ams"===b?"border-fm-brand text-[#50e81d]":"border-fm-border-focus text-fm-text-primary hover:bg-fm-hover"),onClick:async()=>{w("ams"),oe(null),le(!0),ue("");try{const e=await s();if(J(e),0===e.length)return ee(null),ne(null),oe(null),ue(""),void le(!1);const t=e.find(e=>y&&e.dev_id===y)||e.find(e=>e.is_online)||e[0],n=!y||t.dev_id!==y,r=await u(t.dev_id,n);ee(r),r&&r.ams_units.length>0?ne(r.ams_units[0].ams_id):ue(f("No AMS detected on this device"))}catch{ue(f("Getting device list failed, please retry"))}le(!1)},children:l.jsx("span",{className:"py-[5px] text-[14px] leading-[22px]",children:f("Read from AMS")})})]}),"ams"===b&&l.jsxs("div",{className:"flex flex-col gap-[16px]",children:[l.jsxs("div",{className:"flex items-center gap-[6px]",children:[l.jsx("div",{className:"w-[2px] h-[16px] rounded-[10px] bg-[#50e81d]"}),l.jsx("span",{className:"text-[14px] leading-[22px] text-fm-text-primary",children:f("Select Device")})]}),se&&l.jsx("div",{className:"text-center text-fm-text-detail text-xs py-4",children:f("Fetching device info...")}),!se&&l.jsxs("div",{className:"flex flex-col gap-[10px] rounded-[8px] border border-fm-border-focus bg-fm-inner p-3",children:[l.jsx("label",{className:"text-[11px] leading-[16px] text-fm-text-secondary",children:f("Printer")}),l.jsxs("div",{className:"flex items-center gap-[8px]",children:[l.jsx("select",{className:"flex-1 min-h-[36px] rounded-[6px] bg-fm-inner2 px-[8px] text-fm-text-strong text-xs outline-none focus:shadow-[0_0_0_1px_var(--color-fm-brand)] fm-select-arrow cursor-pointer disabled:cursor-not-allowed disabled:opacity-60",value:X.length&&((null==Z?void 0:Z.selected_dev_id)||(null==(d=X[0])?void 0:d.dev_id))||"",disabled:0===X.length,onChange:e=>{e.target.value&&Ue(e.target.value)},children:0===X.length?l.jsx("option",{value:"",children:f("No printers — sign in and bind a device")}):X.map(e=>l.jsxs("option",{value:e.dev_id,children:[e.dev_name||e.dev_id,e.is_lan?"(LAN)":""]},e.dev_id))}),l.jsx("button",{type:"button",className:"shrink-0 w-[32px] h-[32px] rounded-[6px] border border-fm-border-focus bg-fm-inner2 text-fm-text-secondary flex items-center justify-center hover:text-fm-text-strong hover:border-fm-text-secondary disabled:cursor-not-allowed disabled:opacity-50 transition-colors",title:f("Refresh printer status"),"aria-label":f("Refresh printer status"),disabled:0===X.length||Ve,onClick:()=>{Ke()},children:l.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",className:Ve?"animate-spin":"",children:[l.jsx("path",{d:"M11.5 3.5A5 5 0 1 0 12 8",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",fill:"none"}),l.jsx("path",{d:"M12 2v3h-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})})]}),0===X.length&&l.jsx("p",{className:"text-[11px] leading-[16px] text-fm-text-detail m-0",children:f("No printer found, please ensure logged in and device bound")})]}),!!ce&&!se&&l.jsx("div",{className:"text-xs text-fm-warning leading-[19px] px-1",children:ce}),!se&&X.length>0&&l.jsxs("div",{"data-testid":"ams-grid",className:"flex flex-col gap-[4px]",children:[l.jsx("div",{className:"flex items-center gap-[12px]",children:l.jsx("div",{className:"flex flex-1 gap-[12px] items-center justify-end min-w-0",children:null==Z?void 0:Z.ams_units.map(e=>l.jsx("button",{type:"button","data-testid":`ams-unit-${e.ams_id}`,"data-active":e.ams_id===te?"true":"false",className:"rounded-[4px] border bg-transparent cursor-pointer flex items-center p-[4px] transition-colors duration-150 hover:border-fm-text-secondary "+(e.ams_id===te?"border-fm-brand":"border-fm-border-focus"),title:`AMS ${parseInt(e.ams_id,10)+1}`,onClick:()=>{ne(e.ams_id),oe(null)},children:l.jsx(ai,{unit:e,isActive:e.ams_id===te})},e.ams_id))})}),at&&l.jsx("div",{className:"flex gap-[8px] py-[8px]",children:at.trays.map((e,t)=>{const n=it[t]||`A${t+1}`,o=(null==re?void 0:re.slot_id)===e.slot_id&&(null==re?void 0:re.ams_id)===at.ams_id;return e.is_exists?l.jsxs("div",{"data-testid":`ams-slot-${at.ams_id}-${e.slot_id}`,"data-empty":"false","data-selected":o?"true":"false","data-color":e.color,"data-color-type":e.color_type,"data-colors":(e.colors||[]).join(","),className:"flex-1 flex flex-col rounded-[6px] border cursor-pointer transition-all duration-150 overflow-hidden hover:border-fm-text-secondary "+(o?"border-fm-brand":"border-fm-border-focus"),onClick:()=>((e,t)=>{var n;oe({ams_id:e.ams_id,slot_id:t.slot_id,tray:t}),W.current=!0;let o="",a="",i="",s="";const l=t.setting_id||"";if(l)e:for(const p of r)for(const e of p.types){const t=null==(n=e.items)?void 0:n.find(e=>!e.is_user&&(e.setting_id===l||e.filament_id===l));if(t){o=p.name,a=e.name,i=t.series||"",s=ri(t.name,p.name,e.name,i);break e}}if(o||(o=t.sub_brands||""),!a){const e=t.fila_type||"",n=new Set;(o?r.filter(e=>e.name===o):r).forEach(e=>e.types.forEach(e=>{e.name&&n.add(e.name)}));let s="",l="";for(const t of n){if(e===t){s=t,l="";break}e.startsWith(t+" ")&&t.length>s.length?(s=t,l=e.substring(t.length+1).trim()):e.startsWith(t)&&t.length>s.length&&(s=t,l=e.substring(t.length).trim())}a=s,i||(i=l)}k(o),N(a),_(s||$a(a,i));const c=ei(t.color);c&&P(c);const u=Array.isArray(t.colors)?t.colors.map(e=>"string"==typeof e?e:"").filter(e=>!!e).map(e=>ei(e)).filter(e=>!!e):[];u.length>1?(T(u),O(1===t.color_type?1:0)):(T([]),O(2)),A(t.color_name||""),z(t.fila_color_code||""),$.current=!0;const d=parseInt(String(t.weight??"0"),10)||0,f=ti(t);V(d>0?d:1e3),K(f>0?f:d>0?d:1e3),ie({brand:!!o,material:!!a||!!s,color:!!c,weight:d>0||f>0})})(at,e),children:[l.jsx("div",{className:"fm-slot-header-bg text-center py-[2px] text-[11px] leading-[16px] text-fm-text-strong bg-[#424242] rounded-t-[6px] "+(o?"!bg-fm-brand !text-white":""),children:n}),l.jsxs("div",{className:"flex gap-[4px] items-center p-[4px]",children:[l.jsx("div",{className:"size-[40px] shrink-0 flex items-center justify-center",children:l.jsx(Oa,{colorCode:e.color,colors:e.colors,colorType:e.color_type,size:32})}),l.jsxs("div",{className:"flex-1 flex flex-col gap-[4px] min-w-0",children:[l.jsxs("div",{className:"text-[12px] leading-[19px] text-fm-text-primary flex items-center gap-[4px] truncate",children:[l.jsx(Oa,{colorCode:e.color,colors:e.colors,colorType:e.color_type,size:14,radius:3}),e.fila_type||"—"]}),l.jsx("div",{className:"text-[12px] leading-[19px] text-fm-text-secondary",children:(()=>{const t=ti(e);return t>0?`${t}g`:"—"})()})]})]})]},n):l.jsxs("div",{"data-testid":`ams-slot-${at.ams_id}-${e.slot_id}`,"data-empty":"true",className:"flex-1 flex flex-col rounded-[6px] border border-fm-border-focus cursor-default opacity-30 transition-all duration-150 overflow-hidden",children:[l.jsx("div",{className:"fm-slot-header-bg text-center py-[2px] text-[11px] leading-[16px] text-fm-text-strong bg-[#424242] rounded-t-[6px]",children:n}),l.jsxs("div",{className:"flex gap-[4px] items-center p-[4px]",children:[l.jsx("div",{className:"size-[40px] shrink-0 flex items-center justify-center",children:l.jsx(Oa,{colorCode:"#555",size:32})}),l.jsx("div",{className:"flex-1 flex flex-col gap-[4px] min-w-0",children:l.jsx("span",{className:"text-[12px] leading-[19px] text-fm-text-primary truncate",children:f("Empty")})})]})]},n)})})]})]}),"ams"===b&&re&&l.jsx("div",{className:"h-0 w-full border-t border-fm-border"}),("manual"===b||re)&&l.jsxs("div",{className:"flex flex-col gap-[12px]",children:[l.jsxs("div",{className:"flex flex-col gap-[16px]",children:[l.jsxs("div",{className:"flex items-center gap-[6px]",children:[l.jsx("div",{className:"w-[2px] h-[16px] rounded-[10px] bg-[#50e81d]"}),l.jsx("span",{className:"text-[14px] leading-[22px] text-fm-text-strong",children:f("Filament Info")})]}),l.jsxs("div",{className:"flex gap-[12px]",children:[l.jsxs("div",{className:"flex flex-col gap-[4px] flex-1 pb-[24px]",children:[l.jsxs("label",{className:"text-[12px] leading-[19px] text-fm-text-secondary",children:[l.jsx("span",{className:"text-[#ff2b00]",children:"*"})," ",f("Brand")]}),l.jsxs("select",{"data-testid":"filament-brand",className:"bg-fm-inner2 border-none rounded-[6px] h-[32px] pl-[8px] pr-[4px] text-fm-text-strong text-[12px] leading-[19px] outline-none w-full focus:shadow-[0_0_0_1px_var(--color-fm-brand)] fm-select-arrow cursor-pointer disabled:cursor-not-allowed disabled:opacity-60",value:S,disabled:lt,onChange:e=>{k(e.target.value),ct||(N(""),_(""))},children:[l.jsx("option",{value:"",children:f("Select Brand")}),x.map(e=>l.jsx("option",{value:e,children:e},e))]})]}),l.jsxs("div",{className:"flex flex-col gap-[4px] flex-1 pb-[24px]",children:[l.jsxs("label",{className:"text-[12px] leading-[19px] text-fm-text-secondary",children:[l.jsx("span",{className:"text-[#ff2b00]",children:"*"})," ",f("Material Type")]}),l.jsxs("select",{"data-testid":"filament-material",className:"bg-fm-inner2 border-none rounded-[6px] h-[32px] pl-[8px] pr-[4px] text-fm-text-strong text-[12px] leading-[19px] outline-none w-full focus:shadow-[0_0_0_1px_var(--color-fm-brand)] fm-select-arrow cursor-pointer disabled:cursor-not-allowed disabled:opacity-60",value:he,onChange:e=>Le(e.target.value),disabled:!S||ct,children:[l.jsx("option",{value:"",children:f(S?"Select Type":"Select Brand First")}),he&&!pe.includes(he)&&l.jsx("option",{value:he,children:he}),pe.map(e=>l.jsx("option",{value:e,children:e},e))]})]})]}),l.jsxs("div",{className:"flex flex-col gap-[8px]",children:[l.jsxs("label",{className:"text-[12px] leading-[19px] text-fm-text-secondary",children:[l.jsx("span",{className:"text-[#ff2b00]",children:"*"})," ",f("Color")]}),l.jsxs("div",{"data-testid":"color-candidate-panel",className:"flex flex-wrap gap-[6px] items-center "+(ut?"pointer-events-none opacity-60":""),children:[l.jsxs("div",{ref:Ie,className:"relative",children:[l.jsx("button",{type:"button","data-testid":"pick-custom-color-button",className:"size-[24px] rounded-[4px] cursor-pointer border border-dashed border-fm-border-focus bg-fm-inner overflow-hidden flex items-center justify-center text-fm-text-detail text-sm hover:border-fm-text-secondary disabled:cursor-not-allowed disabled:opacity-60 p-0",title:f("Pick Custom Color"),"aria-label":f("Pick Custom Color"),"aria-haspopup":"dialog","aria-expanded":Me,disabled:ut,onClick:Be,children:l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:l.jsx("path",{d:"M7 2v10M2 7h10",stroke:"currentColor",strokeWidth:"1.2"})})}),Me&&l.jsxs("div",{role:"dialog","aria-label":f("Pick Custom Color"),className:"absolute left-0 top-[calc(100%+8px)] z-[1100] w-[224px] flex flex-col gap-[12px] rounded-[10px] border border-fm-border bg-fm-base p-[14px] shadow-[0_12px_32px_rgba(0,0,0,0.5)]",children:[l.jsxs("div",{className:"flex items-center gap-[12px]",children:[l.jsx("button",{type:"button",autoFocus:!0,className:"size-[56px] shrink-0 rounded-[8px] border border-fm-border-focus cursor-pointer focus:outline-none focus:ring-2 focus:ring-fm-brand transition-shadow",style:{background:De},"aria-label":f("Pick Custom Color"),title:f("Pick Custom Color"),onClick:()=>{var e;return null==(e=ze.current)?void 0:e.click()}}),l.jsxs("div",{className:"flex flex-col gap-[4px] min-w-0 flex-1",children:[l.jsx("span",{className:"text-[10px] leading-[12px] text-fm-text-detail uppercase tracking-wider",children:f("Custom Color")}),l.jsx("span",{className:"text-[13px] leading-[18px] text-fm-text-strong font-mono tracking-wider",children:(De||"#000000").toUpperCase()})]})]}),l.jsx("input",{ref:ze,type:"color",value:De||"#000000",onChange:e=>Oe(e.target.value),className:"sr-only",tabIndex:-1,"aria-hidden":"true"}),l.jsxs("div",{className:"flex justify-end gap-[8px]",children:[l.jsx("button",{type:"button",className:"h-[28px] px-[14px] rounded-[6px] cursor-pointer text-[12px] leading-[19px] bg-fm-input text-fm-text-primary border-none hover:bg-fm-hover",onClick:$e,children:f("Cancel")}),l.jsx("button",{type:"button",className:"h-[28px] px-[14px] rounded-[6px] border-none cursor-pointer text-[12px] leading-[19px] font-medium bg-fm-brand text-white hover:bg-fm-brand-hover",onClick:We,children:f("OK")})]})]})]}),0===ke.length&&0===R.length&&l.jsx("div",{className:"text-[11px] leading-[16px] text-fm-text-detail",children:f("No predefined colors for this filament")}),ke.map(e=>{const t=Ee(e),n=(e.colors||[]).map(e=>ei(e)).filter(e=>e.length>0);return l.jsx("button",{type:"button","data-testid":`color-candidate-${e.color_code}`,"data-color-code":e.color_code,"data-color-name":e.name,"data-color-type":e.color_type,"data-colors":(e.colors||[]).join(","),"data-selected":t?"true":"false",title:e.name,"aria-label":e.name,onClick:()=>Pe(e),className:"size-[24px] rounded-[4px] p-0 cursor-pointer transition-colors duration-150 border hover:border-fm-text-secondary bg-transparent inline-flex items-center justify-center "+(t?"border-fm-brand border-2":"border-fm-border-focus"),children:l.jsx(Oa,{colorCode:n[0]||"",colors:e.colors,colorType:e.color_type,size:22,radius:3,border:!1})},`${e.color_code}|${(e.colors||[]).join(",")}`)}),R.map(e=>{const t=0===M.length&&e.toUpperCase()===E.toUpperCase();return l.jsx("div",{className:"size-[24px] rounded-[4px] cursor-pointer border transition-colors duration-150 hover:border-fm-text-secondary inline-flex items-center justify-center bg-transparent "+(t?"border-fm-brand border-2":"border-fm-border-focus"),title:f("Custom Color"),onClick:()=>Re(e),children:l.jsx(Oa,{colorCode:e,size:22,radius:3,border:!1})},`custom-${e}`)})]}),E&&l.jsxs("div",{"data-testid":"color-preview-bar",className:"flex items-center gap-[8px] bg-fm-inner rounded-[6px] px-[8px] py-[6px] flex-wrap",children:[l.jsx("span",{"data-testid":"preview-swatch","data-swatch-bg":Ce,className:"inline-flex shrink-0",children:l.jsx(Oa,{colorCode:E,colors:M,colorType:D,size:16,radius:3})}),F&&l.jsx("span",{"data-testid":"preview-color-name",className:"text-[11px] leading-[16px] text-fm-text-secondary shrink-0",children:F}),I&&l.jsxs("span",{"data-testid":"preview-fila-code",className:"text-[11px] leading-[16px] text-fm-text-detail shrink-0",title:f("Bambu Color Code"),children:["· ",I]}),l.jsx("span",{"data-testid":"preview-hex-list",className:"text-[11px] leading-[16px] text-fm-text-primary font-mono tracking-wider break-all",children:Ne})]})]}),l.jsxs("div",{className:"flex flex-col gap-[4px]",children:[l.jsxs("label",{className:"text-[12px] leading-[19px] text-fm-text-secondary",children:[l.jsx("span",{className:"text-[#ff2b00]",children:"*"})," ",f("Weight")]}),l.jsxs("div",{className:"bg-fm-inner rounded-[6px] p-[8px]",children:[l.jsxs("div",{className:"flex gap-[8px] items-center",children:[l.jsxs("div",{className:"flex flex-col gap-[4px] flex-1",children:[l.jsx("span",{className:"text-[11px] leading-[16px] text-fm-text-secondary",children:f("Current Net Weight")}),l.jsxs("div",{className:"flex items-center gap-[6px]",children:[l.jsx("input",{className:"bg-fm-inner2 border-none rounded-[6px] h-[32px] pl-[8px] pr-[4px] text-fm-text-strong text-[12px] leading-[19px] outline-none flex-1 min-w-0 focus:shadow-[0_0_0_1px_var(--color-fm-brand)] disabled:cursor-not-allowed disabled:opacity-60",type:"number",min:0,max:Ja,step:1,placeholder:f("Input Current Net Weight"),value:H,disabled:dt,onFocus:e=>e.target.select(),onChange:e=>K(Za(ni(e.target)))}),l.jsx("span",{className:"text-[12px] leading-[19px] text-fm-text-secondary shrink-0",children:"g"})]})]}),l.jsxs("div",{className:"flex flex-col gap-[4px] flex-1",children:[l.jsx("span",{className:"text-[11px] leading-[16px] text-fm-text-secondary",children:f("Total Net Weight")}),l.jsxs("div",{className:"flex items-center gap-[6px]",children:[l.jsx("input",{className:"bg-fm-inner2 border-none rounded-[6px] h-[32px] pl-[8px] pr-[4px] text-fm-text-strong text-[12px] leading-[19px] outline-none flex-1 min-w-0 focus:shadow-[0_0_0_1px_var(--color-fm-brand)] "+(h||dt?"opacity-60 cursor-not-allowed":""),type:"number",min:0,max:Ja,step:1,placeholder:f("Input Total Net Weight"),value:U,readOnly:h||dt,disabled:h||dt,onFocus:e=>e.target.select(),onChange:e=>V(Za(ni(e.target)))}),l.jsx("span",{className:"text-[12px] leading-[19px] text-fm-text-secondary shrink-0",children:"g"})]})]})]}),Fe&&l.jsx("div",{className:"mt-[6px] text-[11px] leading-[16px] text-fm-warning",children:Fe})]})]})]}),l.jsxs("div",{className:"flex flex-col gap-[4px]",children:[l.jsx("label",{className:"text-[12px] leading-[19px] text-fm-text-secondary",children:f("Note")}),l.jsxs("div",{className:"relative",children:[l.jsx("textarea",{className:"bg-fm-inner2 border-none rounded-[6px] h-[110px] px-[12px] pt-[8px] pb-[4px] text-fm-text-strong text-[12px] leading-[19px] outline-none w-full focus:shadow-[0_0_0_1px_var(--color-fm-brand)] resize-none",maxLength:50,placeholder:f("Input Note"),value:q,onChange:e=>G(e.target.value)}),l.jsxs("span",{className:"absolute right-[12px] bottom-[4px] text-[12px] leading-[19px] text-fm-text-gray",children:[q.length,"/50"]})]})]})]})]})}),l.jsxs("div",{className:"flex items-center justify-between h-[60px] px-[16px] shrink-0",children:[!h&&"manual"===b&&l.jsxs("div",{className:"flex items-center gap-[4px] w-[106px]",children:[l.jsxs("div",{className:"flex-1 flex items-center gap-[4px] bg-fm-inner2 rounded-[6px] h-[24px] pl-[8px] pr-[4px]",children:[l.jsx("span",{className:"text-[12px] leading-[19px] text-fm-text-strong flex-1",children:Q}),l.jsx("span",{className:"text-[11px] leading-[16px] text-fm-text-detail",children:f("roll")})]}),l.jsxs("div",{className:"flex flex-col shrink-0 w-[18px] h-[24px]",children:[l.jsx("button",{className:"flex-1 rounded-t-[6px] bg-fm-inner2 border-none cursor-pointer flex items-center justify-center text-fm-text-primary hover:bg-fm-hover",onClick:()=>Y(Math.min(99,Q+1)),children:l.jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:l.jsx("path",{d:"M2.5 6.5l2.5-3 2.5 3",stroke:"currentColor",strokeWidth:"1"})})}),l.jsx("button",{className:"flex-1 rounded-b-[6px] bg-fm-inner2 border-none cursor-pointer flex items-center justify-center text-fm-text-primary hover:bg-fm-hover",onClick:()=>Y(Math.max(1,Q-1)),children:l.jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:l.jsx("path",{d:"M2.5 3.5l2.5 3 2.5-3",stroke:"currentColor",strokeWidth:"1"})})})]})]}),(h||"manual"!==b)&&l.jsx("div",{}),l.jsxs("div",{className:"flex gap-[12px] items-center",children:[l.jsx("button",{"data-testid":"dialog-cancel",className:"h-[30px] px-[32px] rounded-[8px] cursor-pointer text-[12px] leading-[19px] whitespace-nowrap transition-colors duration-150 bg-fm-input text-fm-text-primary border-none hover:bg-fm-hover",onClick:o,children:f("Cancel")}),l.jsx("button",{"data-testid":"dialog-confirm",className:"h-[30px] px-[32px] rounded-[8px] border-none cursor-pointer text-[12px] leading-[19px] font-medium whitespace-nowrap transition-colors duration-150 bg-fm-brand text-white hover:bg-fm-brand-hover disabled:opacity-40 disabled:cursor-default",disabled:!Ae,onClick:async()=>{const e=U>0?Math.min(100,Math.max(0,Math.round(100*H/U))):0,n={brand:S,material_type:C,series:j,color_code:E,color_name:F,initial_weight:U,spool_weight:0,net_weight:H,remain_percent:e,note:q,setting_id:me||(null==ge?void 0:ge.setting_id)||(null==ge?void 0:ge.filament_id)||(null==m?void 0:m.setting_id)||""};if(Array.isArray(M)&&M.length>1?(n.colors=[...M],n.color_type=D):(n.colors=[],n.color_type=2),h){const e=t,r=e=>null==e?"":String(e),o={spool_id:e.spool_id},a=o;Object.keys(n).forEach(t=>{const o=n[t],i=e[t];let s;if(Array.isArray(o)||Array.isArray(i)){const e=Array.isArray(o)?o:[],t=Array.isArray(i)?i:[];s=e.length!==t.length||e.some((e,n)=>e!==t[n])}else s="string"==typeof o||"string"==typeof i?r(o)!==r(i):!Object.is(o,i);s&&(a[t]=o)});if(!(await i(o)))return}else{let e="";if("ams"===b&&re){const t=re.tray,o=t.tag_uid||"",a=(r=o).length>0&&/[^0]/.test(r)?v.find(e=>(e.tag_uid||"")===o):void 0,i=parseInt(String(t.weight??"0"),10)||0,s="number"==typeof t.remain?t.remain:0;(null==a?void 0:a.spool_id)&&(e=a.spool_id,n.spool_id=a.spool_id),n.entry_method="ams_sync",n.tag_uid=o,n.setting_id=n.setting_id||t.setting_id||"",n.bound_ams_id=re.ams_id,n.bound_dev_id=(null==Z?void 0:Z.selected_dev_id)||"",n.remain_percent=s;const l=Array.isArray(t.colors)?t.colors.map(e=>ei(e)).filter(e=>e.length>0):[];l.length>0&&(n.colors=l),n.color_type="number"==typeof t.color_type?t.color_type:l.length>1?0:2,i>0&&(n.initial_weight=i);const c=t.diameter,u="number"==typeof c?c:parseFloat(String(c??"0"));u>0&&(n.diameter=u)}else n.entry_method="manual";if(!(e?await i(n):await a(n,"ams"===b?1:Q)))return}var r;o()},children:f(h?"Save":"Add")})]})]})]})})}function ai({unit:e,isActive:t}){const n=e.trays||[],r=[0,1,2,3].map(e=>{const t=n[e];return t&&t.is_exists&&t.color?t.color:"rgba(255,255,255,0.1)"});return l.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[l.jsx("rect",{x:"1",y:"1",width:"18",height:"18",rx:"3",stroke:t?"var(--color-fm-brand)":"currentColor",strokeWidth:"1.2",fill:"none"}),l.jsx("rect",{x:"3",y:"3",width:"6",height:"6",rx:"1",fill:r[0]}),l.jsx("rect",{x:"11",y:"3",width:"6",height:"6",rx:"1",fill:r[1]}),l.jsx("rect",{x:"3",y:"11",width:"6",height:"6",rx:"1",fill:r[2]}),l.jsx("rect",{x:"11",y:"11",width:"6",height:"6",rx:"1",fill:r[3]})]})}function ii({open:e,spool:t,filteredSpools:n,onClose:r,onEdit:o,onNavigate:a}){const{t:i}=Yr(),[s,c]=p.useState({x:0,y:0}),u=p.useRef(null);p.useEffect(()=>{e&&c({x:0,y:0})},[e]);const d=p.useCallback(e=>{const t=u.current;t&&c({x:t.baseX+(e.clientX-t.startX),y:t.baseY+(e.clientY-t.startY)})},[]),f=p.useCallback(()=>{u.current=null,window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",f),document.body.style.userSelect=""},[d]),h=p.useCallback(e=>{e.target.closest("button, input, select, textarea, a")||(u.current={startX:e.clientX,startY:e.clientY,baseX:s.x,baseY:s.y},window.addEventListener("mousemove",d),window.addEventListener("mouseup",f),document.body.style.userSelect="none",e.preventDefault())},[s,d,f]),m=p.useCallback(()=>c({x:0,y:0}),[]);if(!e||!t)return null;const g=n.findIndex(e=>e.spool_id===t.spool_id),v=g>0,y=g>=0&&g0?Math.round(t.net_weight):Math.round(S*(t.remain_percent||0)/100),C=Fa({hexes:t.colors,primaryHex:t.color_code,colorType:t.color_type}),N=function(e){const t=Aa(e),n=(e.name??"").trim();return n&&t?`${n} · ${t}`:n||t}({hexes:t.colors,primaryHex:t.color_code,colorType:t.color_type,name:t.color_name})||"—";return l.jsx("div",{"data-testid":"detail-dialog","data-spool-id":t.spool_id,className:"fixed inset-0 bg-black/50 flex items-start justify-center pt-5 z-[1000]",children:l.jsxs("div",{className:"w-[480px] max-h-[calc(100vh-40px)] bg-fm-sidebar rounded-xl flex flex-col overflow-hidden",style:{transform:`translate(${s.x}px, ${s.y}px)`},onClick:e=>e.stopPropagation(),children:[l.jsxs("div",{className:"flex items-center px-6 py-4 border-b border-[#424242] gap-3 cursor-move select-none",onMouseDown:h,onDoubleClick:m,title:i("Drag to move"),children:[l.jsx("h3",{className:"flex-1 text-base font-medium text-fm-text-strong whitespace-nowrap overflow-hidden text-ellipsis",children:i("Spool Detail")}),l.jsxs("div",{className:"flex items-center gap-[13px] shrink-0",children:[l.jsxs("button",{className:"flex items-center gap-1 bg-transparent border-none cursor-pointer text-fm-text-secondary text-xs px-2 pl-[6px] py-[2px] h-6 rounded-md transition-colors duration-150 hover:text-fm-text-strong hover:bg-fm-hover disabled:text-fm-text-gray disabled:cursor-default disabled:hover:bg-transparent [&>svg]:shrink-0",disabled:!v,onClick:()=>v&&a(n[g-1].spool_id),children:[l.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:l.jsx("path",{d:"M7 2L3 6l4 4",stroke:"currentColor",strokeWidth:"1.2"})}),i("Previous")]}),l.jsxs("button",{className:"flex items-center gap-1 bg-transparent border-none cursor-pointer text-fm-text-secondary text-xs px-2 pl-[6px] py-[2px] h-6 rounded-md transition-colors duration-150 hover:text-fm-text-strong hover:bg-fm-hover disabled:text-fm-text-gray disabled:cursor-default disabled:hover:bg-transparent [&>svg]:shrink-0",disabled:!y,onClick:()=>y&&a(n[g+1].spool_id),children:[i("Next"),l.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:l.jsx("path",{d:"M5 2l4 4-4 4",stroke:"currentColor",strokeWidth:"1.2"})})]})]}),l.jsx("button",{"data-testid":"detail-dialog-close",className:"bg-transparent border-none text-fm-text-detail text-xl cursor-pointer leading-none hover:text-fm-text-strong",onClick:r,children:"×"})]}),l.jsxs("div",{className:"flex items-center gap-3 px-6",children:[l.jsx("div",{className:"w-10 h-10 shrink-0 relative",children:l.jsx(Oa,{colorCode:t.color_code,colors:t.colors,colorType:t.color_type})}),l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("div",{className:"flex items-center gap-1 text-sm font-medium text-fm-text-strong leading-[22px] [&>svg]:text-fm-text-secondary [&>svg]:shrink-0",children:[x||"—",l.jsx("span",{className:"inline-flex items-center justify-center px-1 h-4 rounded-sm bg-fm-input text-[11px] text-fm-text-secondary leading-4 empty:hidden",children:za[t.entry_method]?i(za[t.entry_method]):""})]}),l.jsxs("div",{className:"text-xs text-fm-text-secondary opacity-70 leading-[19px]",children:[t.diameter||1.75," mm|",t.color_name||"—"]})]})]}),l.jsxs("div",{className:"flex-1 overflow-y-auto px-6 py-5",children:[l.jsx("div",{className:"fm-section-bar flex items-center gap-[6px] text-sm font-normal text-fm-text-primary mt-4 mb-2 leading-[22px] first:mt-0",children:i("Filament Info")}),l.jsxs("div",{className:"flex gap-3",children:[l.jsx(si,{label:i("Brand"),value:t.brand||"—"}),l.jsx(si,{label:i("Material Type"),value:b||"—"})]}),l.jsxs("div",{className:"flex gap-3",children:[l.jsxs("div",{className:"flex flex-col gap-1 mb-4 flex-1",children:[l.jsx("label",{className:"text-xs text-fm-text-secondary leading-[19px]",children:i("Color")}),l.jsxs("div",{"data-testid":"detail-color-field","data-color-type":t.color_type??"",className:"text-xs text-fm-text-primary leading-[19px] min-h-8 flex items-center gap-2 bg-fm-inner2 rounded-md px-2 py-[6px]",children:[l.jsx("span",{"data-testid":"detail-color-swatch","data-swatch-bg":C,className:"inline-flex shrink-0",children:l.jsx(Oa,{colorCode:t.color_code,colors:t.colors,colorType:t.color_type,size:16,radius:3})}),l.jsx("span",{"data-testid":"detail-color-label",className:"truncate",children:N})]})]}),l.jsx("div",{className:"flex-1"})]}),l.jsx("div",{className:"fm-section-bar flex items-center gap-[6px] text-sm font-normal text-fm-text-primary mt-4 mb-2 leading-[22px]",children:i("Weight")}),l.jsxs("div",{className:"flex items-end gap-2 bg-fm-inner rounded-md p-2 opacity-30",children:[l.jsxs("div",{className:"flex flex-col gap-1 flex-1",children:[l.jsx("span",{className:"text-[11px] text-fm-text-secondary leading-4",children:i("Current Net Weight")}),l.jsxs("span",{className:"text-sm text-fm-text-strong leading-[22px] font-medium",children:[k," g"]})]}),l.jsxs("div",{className:"flex flex-col gap-1 flex-1",children:[l.jsx("span",{className:"text-[11px] text-fm-text-secondary leading-4",children:i("Total Net Weight")}),l.jsxs("span",{className:"text-sm text-fm-text-strong leading-[22px] font-medium",children:[S," g"]})]})]}),l.jsx("div",{className:"fm-section-bar flex items-center gap-[6px] text-sm font-normal text-fm-text-primary mt-4 mb-2 leading-[22px]",children:i("Basic Info")}),l.jsx(si,{label:i("Parameter")+" 1",value:Wa(t)||"—"}),l.jsx("div",{className:"fm-section-bar flex items-center gap-[6px] text-sm font-normal text-fm-text-primary mt-4 mb-2 leading-[22px]",children:i("Note")}),l.jsx(si,{label:i("Note"),value:t.note||"—"})]}),l.jsx("div",{className:"flex items-center justify-end px-6 py-3 border-t border-fm-border",children:l.jsx("button",{"data-testid":"detail-dialog-edit",className:"inline-flex items-center gap-1 h-[30px] px-8 rounded-lg border-none cursor-pointer text-xs whitespace-nowrap transition-colors duration-150 bg-fm-brand text-white font-medium hover:bg-fm-brand-hover",onClick:()=>o(t),children:i("Edit Filament Info")})})]})})}function si({label:e,value:t}){return l.jsxs("div",{className:"flex flex-col gap-1 mb-4 flex-1",children:[l.jsx("label",{className:"text-xs text-fm-text-secondary leading-[19px]",children:e}),l.jsx("div",{className:"text-xs text-fm-text-primary leading-[19px] min-h-8 flex items-center bg-fm-inner2 rounded-md px-2 py-[6px]",children:t})]})}function li({open:e,title:t,message:n,confirmText:r,cancelText:o,danger:a=!1,onConfirm:i,onCancel:s}){const{t:c}=Yr();return p.useEffect(()=>{if(!e)return;const t=e=>{"Escape"===e.key?s():"Enter"===e.key&&i()};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[e,s,i]),e?l.jsx("div",{"data-testid":"confirm-dialog","data-danger":a?"true":"false",className:"fixed inset-0 bg-black/50 flex items-center justify-center z-[1100]",children:l.jsxs("div",{className:"w-[360px] bg-fm-sidebar rounded-xl shadow-[0_8px_24px_rgba(0,0,0,0.4)] overflow-hidden",onClick:e=>e.stopPropagation(),role:"dialog","aria-modal":"true",children:[l.jsx("div",{className:"px-6 pt-5 pb-2",children:l.jsx("h3",{"data-testid":"confirm-dialog-title",className:"text-sm font-medium text-fm-text-strong leading-5 m-0",children:t})}),n?l.jsx("div",{className:"px-6 pb-5 text-xs text-fm-text-secondary leading-5 whitespace-pre-line",children:n}):l.jsx("div",{className:"h-2"}),l.jsxs("div",{className:"flex gap-2 justify-end px-6 pb-5",children:[l.jsx("button",{type:"button","data-testid":"confirm-dialog-cancel",onClick:s,className:"inline-flex items-center justify-center h-[30px] px-4 rounded-lg border border-fm-border-focus/50 bg-fm-inner text-fm-text-primary text-xs cursor-pointer transition-colors duration-150 hover:bg-fm-hover",children:o??c("Cancel")}),l.jsx("button",{type:"button","data-testid":"confirm-dialog-confirm",onClick:()=>{i()},className:"inline-flex items-center justify-center h-[30px] px-4 rounded-lg border-none text-xs font-medium cursor-pointer transition-colors duration-150 "+(a?"bg-[#d9373b] text-white hover:bg-[#bf2f33]":"bg-fm-brand text-white hover:bg-fm-brand-hover"),children:r??c("OK")})]})]})}):null}function ci({state:e,onPullClick:t,tooltipExtra:n}){const{t:r}=Yr(),{logged_in:o,is_syncing:a,is_pulling:i,last_synced_at:s,last_error:c}=e,u=!!c.code,d=a||i,f=o&&!d&&u,p=(()=>{if(!o)return r("Not logged in — cloud sync disabled");if(u)return r("Filament operation failed. This feature currently requires a network connection.");if(d)return r("Syncing filament info...");if(s)try{const e=new Date(s);return r("Last synced: {{time}}",{time:e.toLocaleString()})}catch{return s}return r("Sync filament info")})(),h=o&&n?`${p}\n\n${n}`:p,m=o&&!d,g=o?f?"text-[#ff6b6b]":"text-fm-text-secondary":"text-fm-text-detail",v=o?f?"bg-fm-hover":"bg-fm-inner":"bg-transparent",y=o?"border-fm-border-focus/50":"border-dashed border-fm-border/70";return l.jsx("button",{className:`inline-flex items-center justify-center h-[30px] w-[30px] rounded-lg border transition-colors duration-150 ${v} ${g} ${y} ${m?"cursor-pointer hover:bg-fm-hover":"cursor-default"} ${o?"":"opacity-55"}`,title:h,"aria-label":h,onClick:()=>{m&&t()},"data-offline":o?void 0:"true",children:d?l.jsxs("svg",{className:"animate-spin",width:"18",height:"18",viewBox:"0 0 18 18",fill:"none","aria-hidden":"true",children:[l.jsx("circle",{cx:"9",cy:"9",r:"6.5",stroke:"currentColor",strokeWidth:"1.2",opacity:"0.28"}),l.jsx("path",{d:"M15.5 9A6.5 6.5 0 0 0 9 2.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}):o?l.jsxs("span",{className:"relative inline-flex items-center justify-center size-[18px]","aria-hidden":"true",children:[l.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",children:[l.jsx("path",{d:"M4.25 9.25A4.75 4.75 0 0 1 12.6 6.12",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M12.6 4.25v1.87h-1.87",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M13.75 8.75A4.75 4.75 0 0 1 5.4 11.88",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M5.4 13.75v-1.87h1.87",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})]}),f&&l.jsx("span",{className:"absolute -top-[1px] -right-[1px] size-[5px] rounded-full bg-[#ff6b6b]"})]}):l.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none","aria-hidden":"true",children:[l.jsx("path",{d:"M5 12.5h7.5a2.75 2.75 0 0 0 .4-5.47A4 4 0 0 0 5.2 7.2a2.65 2.65 0 0 0-.2 5.3Z",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round",opacity:"0.9"}),l.jsx("path",{d:"M3.25 3.25l11.5 11.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})]})})}function ui(e){try{return new Date(e).toLocaleString()}catch{return String(e)}}function di(e){return"error"===e.status?"text-[#ff6b6b]":"pull"===e.kind?"text-fm-brand":"text-fm-text-primary"}function fi({open:e,onClose:t}){const{t:n}=Yr(),r=Sa(e=>e.filament.cloudSyncHistory),o=Sa(e=>e.filament.clearCloudSyncHistory);if(p.useEffect(()=>{if(!e)return;const n=e=>{"Escape"===e.key&&t()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e,t]),!e)return null;const a=[...r].reverse();return l.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-[1100]",onClick:t,children:l.jsxs("div",{className:"w-[520px] max-w-[90vw] max-h-[80vh] bg-fm-sidebar rounded-xl shadow-[0_8px_24px_rgba(0,0,0,0.4)] overflow-hidden flex flex-col",onClick:e=>e.stopPropagation(),role:"dialog","aria-modal":"true",children:[l.jsxs("div",{className:"flex items-center justify-between px-5 pt-4 pb-3 border-b border-fm-border-focus/30",children:[l.jsx("h3",{className:"text-sm font-medium text-fm-text-strong leading-5 m-0",children:n("Sync History")}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("button",{type:"button",onClick:o,disabled:0===a.length,className:"inline-flex items-center justify-center h-[26px] px-3 rounded-lg border border-fm-border-focus/50 bg-fm-inner text-fm-text-secondary text-xs cursor-pointer transition-colors duration-150 hover:bg-fm-hover disabled:opacity-40 disabled:cursor-default",children:n("Clear")}),l.jsx("button",{type:"button",onClick:t,className:"inline-flex items-center justify-center h-[26px] px-3 rounded-lg border border-fm-border-focus/50 bg-fm-inner text-fm-text-primary text-xs cursor-pointer transition-colors duration-150 hover:bg-fm-hover",children:n("Close")})]})]}),l.jsx("div",{className:"flex-1 overflow-y-auto",children:0===a.length?l.jsx("div",{className:"flex items-center justify-center h-[200px] text-xs text-fm-text-secondary",children:n("No sync history yet.")}):l.jsx("ul",{className:"m-0 p-0 list-none",children:a.map(e=>l.jsxs("li",{className:"flex items-start gap-3 px-5 py-2.5 border-b border-fm-border-focus/15 last:border-b-0",children:[l.jsx("span",{className:"shrink-0 mt-[1px] text-[11px] font-mono text-fm-text-secondary tabular-nums",children:ui(e.ts)}),l.jsx("span",{className:"shrink-0 mt-[1px] inline-flex items-center justify-center h-[18px] px-2 rounded-full text-[11px] "+("error"===e.status?"bg-[#ff6b6b]/15 text-[#ff6b6b]":"pull"===e.kind?"bg-fm-brand/15 text-fm-brand":"bg-fm-inner text-fm-text-secondary"),children:"error"===e.status?n("Failed"):"pull"===e.kind?n("Pull"):n("Push")}),l.jsx("span",{className:`flex-1 text-xs leading-5 break-words ${di(e)}`,children:e.summary})]},e.id))})})]})})}function pi({toasts:e,onDismiss:t,autoDismissMs:n=5e3}){const{t:r}=Yr();return p.useEffect(()=>{if(!n)return;if(0===e.length)return;const r=e.map(e=>window.setTimeout(()=>t(e.id),n));return()=>r.forEach(e=>window.clearTimeout(e))},[e,n,t]),0===e.length?null:l.jsx("div",{className:"fixed bottom-6 right-6 flex flex-col gap-2 z-[2000] pointer-events-none",children:e.map(e=>{const n="error"===e.level?"#ff6b6b":"warn"===e.level?"#ffb84d":"#50e81d";return l.jsxs("div",{className:"pointer-events-auto flex items-start gap-3 max-w-[360px] bg-fm-sidebar border border-fm-border rounded-lg px-4 py-3 shadow-[0_4px_20px_rgba(0,0,0,0.25)] text-fm-text-primary text-xs leading-[19px]",children:[l.jsx("span",{className:"mt-[4px] inline-block size-[8px] rounded-full shrink-0",style:{background:n}}),l.jsx("span",{className:"flex-1 break-words",children:e.text}),l.jsx("button",{className:"shrink-0 size-[18px] rounded-[6px] bg-transparent border-none text-fm-text-detail cursor-pointer hover:text-fm-text-strong",onClick:()=>t(e.id),"aria-label":r("Dismiss"),children:l.jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:l.jsx("path",{d:"M2 2l6 6M8 2l-6 6",stroke:"currentColor",strokeWidth:"1.2"})})})]},e.id)})})}const hi=[{id:"all",label:"All"},{id:"data",label:"Data"},{id:"bridge",label:"C++↔Web"},{id:"http",label:"HTTP"}];function mi(e){try{return new Date(e).toLocaleTimeString()}catch{return String(e)}}function gi({logs:e,filter:t,onFilterChange:n,onClear:r}){const{t:o}=Yr(),[a,i]=p.useState(new Set),s=p.useMemo(()=>{if("undefined"==typeof window)return null;const{href:e,origin:t,pathname:n,search:r,hash:o}=window.location,a=o.startsWith("#")?o.slice(1):"";return{href:e,origin:t,pathname:n,search:r,hash:o,currentPathname:a?a.split("?")[0]||"/":n,filamentUrl:`${t}${n}${r}#/filament`}},[]),c=p.useMemo(()=>{const n="all"===t?e:e.filter(e=>e.category===t);if(!(null==s?void 0:s.href)&&!(null==s?void 0:s.filamentUrl)||"all"!==t&&"bridge"!==t)return n;const r=[];if((null==s?void 0:s.filamentUrl)&&r.push({id:-2,ts:Date.now(),category:"bridge",level:"/filament"===s.currentPathname?"info":"warn",title:"Filament Page URL",summary:s.filamentUrl,detail:{href:s.filamentUrl,targetRoute:"/filament",currentPathname:s.currentPathname,currentHash:s.hash}}),null==s?void 0:s.href){const e={id:-1,ts:Date.now(),category:"bridge",level:"info",title:"Current Page URL",summary:s.href,detail:{href:s.href,origin:s.origin,pathname:s.pathname,search:s.search,hash:s.hash}};r.push(e)}return[...r,...n]},[e,t,s]);return l.jsxs("div",{className:"shrink-0 rounded-xl border border-fm-border bg-fm-sidebar overflow-hidden",children:[l.jsxs("div",{className:"flex items-center justify-between gap-4 px-4 py-3 border-b border-fm-border",children:[l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("div",{className:"text-sm font-medium text-fm-text-primary",children:o("Debug Log")}),l.jsx("div",{className:"flex gap-2",children:hi.map(e=>l.jsx("button",{className:"h-7 px-3 rounded-md border cursor-pointer text-xs transition-colors duration-150 "+(t===e.id?"bg-fm-brand/15 border-fm-brand text-fm-brand":"bg-fm-inner2 border-fm-border text-fm-text-secondary hover:bg-fm-hover"),onClick:()=>n(e.id),children:o(e.label)},e.id))})]}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("button",{className:"h-7 px-3 rounded-md border border-fm-border bg-fm-inner2 cursor-pointer text-xs text-fm-text-secondary hover:bg-fm-hover",onClick:async()=>{const e=c.map(e=>{const t=void 0===e.detail?"":`\n${JSON.stringify(e.detail,null,2)}`;return`[${mi(e.ts)}] [${e.category}] [${e.level}] ${e.title}\n${e.summary}${t}`}).join("\n\n");try{await navigator.clipboard.writeText(e)}catch{}},children:o("Copy All")}),l.jsx("button",{className:"h-7 px-3 rounded-md border border-fm-border bg-fm-inner2 cursor-pointer text-xs text-fm-text-secondary hover:bg-fm-hover",onClick:r,children:o("Clear")})]})]}),l.jsx("div",{className:"h-[220px] overflow-auto px-3 py-2 flex flex-col gap-2",children:0===c.length?l.jsx("div",{className:"h-full flex items-center justify-center text-xs text-fm-text-detail",children:"No debug logs yet."}):c.map(e=>{const t=a.has(e.id);return l.jsxs("div",{className:"rounded-lg border border-fm-border bg-fm-base/70 px-3 py-2",children:[l.jsxs("div",{className:"flex items-start justify-between gap-3",children:[l.jsxs("div",{className:"min-w-0 flex-1",children:[l.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[l.jsx("span",{className:"text-[11px] text-fm-text-detail",children:mi(e.ts)}),l.jsxs("span",{className:"inline-flex items-center h-5 px-2 rounded-full border text-[11px] "+(n=e.level,"error"===n?"text-[#ff6b6b] border-[#ff6b6b]/40 bg-[#ff6b6b]/10":"warn"===n?"text-[#f5b84b] border-[#f5b84b]/40 bg-[#f5b84b]/10":"text-fm-text-secondary border-fm-border bg-fm-hover"),children:[e.category," / ",e.level]}),l.jsx("span",{className:"text-xs text-fm-text-primary font-medium",children:e.title})]}),l.jsx("div",{className:"mt-1 text-xs text-fm-text-secondary break-words",children:e.summary})]}),void 0!==e.detail&&l.jsx("button",{className:"shrink-0 h-6 px-2 rounded-md border border-fm-border bg-fm-inner2 cursor-pointer text-[11px] text-fm-text-secondary hover:bg-fm-hover",onClick:()=>{return t=e.id,void i(e=>{const n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n});var t},children:t?"Hide":"Detail"})]}),t&&void 0!==e.detail&&l.jsx("pre",{className:"mt-2 rounded-md bg-[#121212] border border-fm-border p-3 text-[11px] leading-4 text-[#d6d6d6] overflow-auto whitespace-pre-wrap break-all",children:"string"==typeof e.detail?e.detail:JSON.stringify(e.detail,null,2)})]},e.id);var n})})]})}const vi={brand:"Brand",material_type:"Filament Type",series:"Material Type"};function yi({options:e,current:t,onSelect:n,onClose:r}){const{t:o}=Yr();return p.useEffect(()=>{const e=()=>r();return document.addEventListener("click",e),()=>document.removeEventListener("click",e)},[r]),l.jsxs("div",{className:"absolute z-[100] bg-fm-sidebar border border-fm-border rounded-lg p-1 min-w-[120px] max-h-60 overflow-y-auto shadow-[0_4px_12px_rgba(0,0,0,0.4)]",onClick:e=>e.stopPropagation(),children:[l.jsx("div",{className:"px-3 py-[6px] rounded-sm cursor-pointer text-xs text-fm-text-primary hover:bg-fm-hover "+(t?"":"bg-fm-brand/15 text-fm-brand font-medium"),onClick:()=>n(""),children:o("All")}),e.map(e=>l.jsx("div",{className:"px-3 py-[6px] rounded-sm cursor-pointer text-xs text-fm-text-primary hover:bg-fm-hover "+(t===e?"bg-fm-brand/15 text-fm-brand font-medium":""),onClick:()=>n(e),children:e},e))]})}const xi=Nn("/filament")({component:function(){const{t:e}=Yr(),{init:t,addSpool:n,batchAddSpool:r,updateSpool:o,removeSpool:a,batchRemoveSpool:i,fetchMachines:s,requestMachinePushall:c,fetchAmsData:u,fetchPresets:d,fetchCloudSyncStatus:f,triggerCloudPull:h,pushAllNow:m,fetchCloudFilamentConfig:g}=function(){const{t:e}=Yr(),t=Ca(),n=Sa(e=>e.filament.setSpools),r=Sa(e=>e.filament.setPresets),o=Sa(e=>e.filament.setMachines),a=Sa(e=>e.filament.setAmsData),i=Sa(e=>e.filament.setSelectedMachineDevId),s=Sa(e=>e.filament.setTheme),l=Sa(e=>e.filament.setLoading),c=Sa(e=>e.filament.setError),u=Sa(e=>e.filament.setCloudSync),d=Sa(e=>e.filament.setCloudConfig),f=Sa(e=>e.filament.pushToast),h=Sa(e=>e.filament.appendCloudSyncHistory),m=Sa(e=>e.filament.setCloudAutoPushSummary),g=Sa(e=>e.filament.setDebugEnabled),v=Sa(e=>e.filament.appendDebugLog),y=Sa(e=>e.filament.spools),x=Sa(e=>e.filament.candidatesByFilaId),b=Sa(e=>e.filament.setColorCandidates),w=p.useRef(new Set),S=p.useRef({timer:null,counts:{create:0,update:0,delete:0,other:0}}),k=p.useCallback(()=>{const t=S.current;t.timer&&(clearTimeout(t.timer),t.timer=null);const{create:n,update:r,delete:o,other:a}=t.counts,i=n+r+o+a;if(0===i)return;let s;t.counts={create:0,update:0,delete:0,other:0};let l="";1===i?n?(s=e("Filament synced to cloud."),l="create"):r?(s=e("Filament change synced to cloud."),l="update"):o?(s=e("Filament deletion synced to cloud."),l="delete"):s=e("Filament synced to cloud."):n>0&&0===r&&0===o&&0===a?(s=e("Synced {{count}} new filaments to cloud.",{count:n}),l="create"):r>0&&0===n&&0===o&&0===a?(s=e("Synced {{count}} filament changes to cloud.",{count:r}),l="update"):o>0&&0===n&&0===r&&0===a?(s=e("Synced {{count}} filament deletions to cloud.",{count:o}),l="delete"):s=e("Synced {{count}} filament changes to cloud.",{count:i}),f({level:"info",text:s,op:l})},[e,f]);p.useEffect(()=>{const t=t=>{var r;const s=t.detail;if(!(null==s?void 0:s.body))return;const l=s.body;if("filament"===l.module&&"report"===(null==(r=s.head)?void 0:r.type)){if("spool"===l.submod){const e=l.payload;return void(e&&n(e))}if("debug"===l.submod&&"log"===l.action){const e=l.payload;return void(e&&v(e))}if("sync"===l.submod){const t=l.payload;if("state"===l.action)u(t);else if("pull_done"===l.action){const r=t.spools;r&&n(r);const o=t.state;o&&u(o),k();const a=t.added||0,i=t.updated||0;f({level:"info",text:e("Cloud sync: +{{added}} added, {{updated}} up-to-date",{added:a,updated:i}),op:"pull"}),h({ts:Date.now(),kind:"pull",op:"",status:"ok",summary:e("Pulled from cloud: +{{added}} added, {{updated}} up-to-date",{added:a,updated:i}),detail:{added:a,updated:i}})}else if("push_done"===l.action){const n=t.state;n&&u(n);const r=t.op||"",o=S.current,a="create"===r||"update"===r||"delete"===r?r:"other";o.counts[a]+=1,o.timer&&clearTimeout(o.timer),o.timer=setTimeout(()=>k(),1e3);const i=e("create"===r?"Pushed to cloud: added a filament":"update"===r?"Pushed to cloud: updated a filament":"delete"===r?"Pushed to cloud: deleted a filament":"Pushed to cloud.");h({ts:Date.now(),kind:"push",op:"create"===r||"update"===r||"delete"===r?r:"",status:"ok",summary:i,detail:{op:r,spool_id:t.spool_id}})}else if("push_failed"===l.action){const n=t.op||"",r=t.message||e("unknown error");f({level:"error",text:e("Filament operation failed. This feature currently requires a network connection."),op:n,spool_id:t.spool_id}),h({ts:Date.now(),kind:"push",op:"create"===n||"update"===n||"delete"===n?n:"",status:"error",summary:e("Cloud push failed: {{op}} — {{message}}",{op:n,message:r}),detail:{op:n,message:r,spool_id:t.spool_id}})}else if("auto_push_summary"===l.action){const n={trigger:t.trigger??"auto",device_state:t.device_state??"idle",pushed:Number(t.pushed??0),skipped_cooldown:Number(t.skipped_cooldown??0),skipped_no_diff:Number(t.skipped_no_diff??0),skipped_no_rfid:Number(t.skipped_no_rfid??0),skipped_no_total_nw:null!=t.skipped_no_total_nw?Number(t.skipped_no_total_nw):void 0,observed_at:Date.now()};if(m(n),"manual"===n.trigger){const t=n.pushed>0?e("Pushed {{n}} spools to cloud",{n:n.pushed}):e("No spools to push (need RFID + total weight).");f({level:n.pushed>0?"info":"warn",text:t,op:"update"})}h({ts:Date.now(),kind:"push",op:"update",status:"ok",summary:"manual"===n.trigger?e("Manual push: enqueued {{n}} spools",{n:n.pushed}):e("AMS auto-push: pushed {{p}}, skipped {{s}}",{p:n.pushed,s:n.skipped_cooldown+n.skipped_no_diff+n.skipped_no_rfid}),detail:n})}return}if("config"!==l.submod||"fetched"!==l.action){if("machine"===l.submod&&"selected_changed"===l.action){const e=l.payload,t="string"==typeof e.selected_dev_id?e.selected_dev_id:"",n=e.machines;n&&Array.isArray(n.machines)&&o(n.machines);const r=e.ams;return r&&a(r),void i(t)}}else d(ja(l.payload))}};return document.addEventListener("cpp:device",t),()=>{document.removeEventListener("cpp:device",t);const e=S.current;e.timer&&(clearTimeout(e.timer),e.timer=null)}},[n,u,d,f,h,v,o,a,i,m,e,k]),p.useEffect(()=>{if(!Array.isArray(y)||0===y.length)return;const e=new Set;for(const t of y){const n=(t.setting_id||"").trim();n&&(n in x||w.current.has(n)||e.add(n))}if(0===e.size)return;let n=!1;return(async()=>{var r;for(const o of e){if(n)return;w.current.add(o);const e=await t(Na("colors","query_for_id",{fila_id:o}));if(w.current.delete(o),n)return;const a=e.ok&&0===e.value.error_code?(null==(r=e.value.payload)?void 0:r.candidates)??[]:[],i=Sa.getState().filament.candidatesByFilaId[o];Array.isArray(a)&&0===a.length&&Array.isArray(i)&&i.length>0||b(o,Array.isArray(a)?a:[])}})(),()=>{n=!0}},[y,x,b,t]);const C=p.useCallback(async()=>{l(!0),c(null);const e=await t(Na("init","init"));if(l(!1),e.ok&&0===e.value.error_code){const t=e.value.payload;n(t.spools??[]),r(t.presets??{vendors:[]}),t.theme&&s(t.theme),t.cloud_sync&&u(t.cloud_sync),g(Boolean(t.debug_enabled))}else c(e.ok?e.value.message:e.error)},[t,n,r,s,l,c,u,g]),N=p.useCallback(async()=>{l(!0);const e=await t(Na("spool","list"));l(!1),e.ok&&0===e.value.error_code&&n(e.value.payload)},[t,n,l]),j=p.useCallback((t,n)=>{const r=Sa.getState().filament.cloudSync;if(null==r?void 0:r.logged_in){const r="create"===t?n>1?e("Syncing {{count}} new filaments to cloud…",{count:n}):e("Syncing new filament to cloud…"):"update"===t?e("Syncing filament change to cloud…"):n>1?e("Syncing deletion of {{count}} filaments to cloud…",{count:n}):e("Syncing filament deletion to cloud…");f({level:"info",text:r,op:t})}else f({level:"warn",text:e("Saved locally only — sign in to sync to cloud."),op:t})},[f,e]),_=p.useCallback(t=>{f({level:"error",text:e("Filament operation failed. This feature currently requires a network connection."),op:t})},[f,e]),E=p.useCallback(async e=>{const r=await t(Na("spool","add",e));return r.ok&&0===r.value.error_code&&(n(r.value.payload),j("create",1)),r.ok&&0===r.value.error_code||_("create"),r.ok&&0===r.value.error_code},[t,n,j,_]),P=p.useCallback(async(e,r)=>{const o=await t(Na("spool","batch_add",{spool:e,quantity:r}));return o.ok&&0===o.value.error_code&&(n(o.value.payload),j("create",r)),o.ok&&0===o.value.error_code||_("create"),o.ok&&0===o.value.error_code},[t,n,j,_]),R=p.useCallback(async e=>{const r=await t(Na("spool","update",e));return r.ok&&0===r.value.error_code&&(n(r.value.payload),j("update",1)),r.ok&&0===r.value.error_code||_("update"),r.ok&&0===r.value.error_code},[t,n,j,_]),L=p.useCallback(async e=>{const r=await t(Na("spool","remove",{spool_id:e}));return r.ok&&0===r.value.error_code&&(n(r.value.payload),j("delete",1)),r.ok&&0===r.value.error_code||_("delete"),r.ok&&0===r.value.error_code},[t,n,j,_]),F=p.useCallback(async e=>{const r=await t(Na("spool","batch_remove",{spool_ids:e}));return r.ok&&0===r.value.error_code&&(n(r.value.payload),j("delete",e.length)),r.ok&&0===r.value.error_code||_("delete"),r.ok&&0===r.value.error_code},[t,n,j,_]),A=p.useCallback(async e=>{const r=await t(Na("spool","mark_empty",{spool_id:e}));return r.ok&&0===r.value.error_code&&n(r.value.payload),r.ok&&0===r.value.error_code},[t,n]),M=p.useCallback(async e=>{const r=await t(Na("spool","toggle_favorite",{spool_id:e}));return r.ok&&0===r.value.error_code&&n(r.value.payload),r.ok&&0===r.value.error_code},[t,n]),T=p.useCallback(async e=>{const r=await t(Na("spool","archive",{spool_id:e}));return r.ok&&0===r.value.error_code&&n(r.value.payload),r.ok&&0===r.value.error_code},[t,n]),D=p.useCallback(async()=>{const e=await t(Na("preset","list"));e.ok&&0===e.value.error_code&&r(e.value.payload)},[t,r]),O=p.useCallback(async()=>{const e=await t(Na("machine","list"));if(e.ok&&0===e.value.error_code){const t=e.value.payload;return o(t.machines??[]),"string"==typeof t.selected_dev_id&&i(t.selected_dev_id),t.machines??[]}return[]},[t,o,i]),I=p.useCallback(async e=>{const n={};e&&(n.dev_id=e);const r=await t(Na("machine","request_pushall",n));return r.ok&&0===r.value.error_code},[t]),z=p.useCallback(async(e,n=!1)=>{const r={};e&&(r.dev_id=e),n&&(r.switch_selected=!0);const o=await t(Na("ams","list",r));if(o.ok&&0===o.value.error_code){const e=o.value.payload;return a(e),n&&e&&"string"==typeof e.selected_dev_id&&e.selected_dev_id&&i(e.selected_dev_id),e}return null},[t,a,i]),B=p.useCallback(async()=>{const e=await t(Na("sync","status"));e.ok&&0===e.value.error_code&&u(e.value.payload)},[t,u]),$=p.useCallback(async()=>{const e=await t(Na("sync","pull"));return e.ok&&0===e.value.error_code&&u(e.value.payload),e.ok&&0===e.value.error_code},[t,u]),W=p.useCallback(async()=>{const n=await t(Na("sync","push_all_now"));return n.ok&&0===n.value.error_code?(u(n.value.payload),!0):(f({level:"error",text:e("Push to cloud failed: {{reason}}",{reason:n.ok?n.value.message:n.error}),op:"update"}),!1)},[t,u,f,e]),U=p.useCallback(async e=>{const n=await t(Na("config","fetch",(null==e?void 0:e.force)?{force:!0}:void 0));n.ok&&0===n.value.error_code&&"cached"===n.value.message&&n.value.payload&&d(ja(n.value.payload))},[t,d]);return{init:C,fetchSpools:N,addSpool:E,batchAddSpool:P,updateSpool:R,removeSpool:L,batchRemoveSpool:F,markEmpty:A,toggleFavorite:M,archiveSpool:T,fetchPresets:D,fetchMachines:O,requestMachinePushall:I,fetchAmsData:z,fetchCloudSyncStatus:B,triggerCloudPull:$,pushAllNow:W,fetchCloudFilamentConfig:U}}(),v=p.useCallback(async()=>{await Promise.all([d(),g({force:!0})])},[d,g]),y=Sa(e=>e.filament.spools),x=Sa(e=>e.filament.presets),b=Sa(e=>e.filament.theme),w=Sa(e=>e.filament.isLoading),S=Sa(e=>e.filament.cloudSync),k=Sa(e=>e.filament.cloudAutoPushSummary),C=Sa(e=>e.filament.toasts),N=Sa(e=>e.filament.dismissToast),j=Sa(e=>e.filament.debugEnabled),_=Sa(e=>e.filament.debugLogs),E=Sa(e=>e.filament.debugFilter),P=Sa(e=>e.filament.setDebugFilter),R=Sa(e=>e.filament.clearDebugLogs),[L,F]=p.useState("all"),[A,M]=p.useState(""),[T,D]=p.useState({}),[O,I]=p.useState(!0),[z,B]=p.useState(new Set),$=z.size>0,W=S.logged_in,[U,V]=p.useState(null),[H,K]=p.useState(!1),[q,G]=p.useState(!1),[Q,Y]=p.useState(null),[X,J]=p.useState(null),[Z,ee]=p.useState(null),[te,ne]=p.useState(!1),[re,oe]=p.useState(null),ae=Sa(e=>e.filament.setDebugEnabled);p.useEffect(()=>{window.__internalBuild&&ae(!0)},[ae]),p.useEffect(()=>{t()},[t]),p.useEffect(()=>{let e=!1;return(async()=>{if(await f(),e)return;v();const{cloudSync:t}=Sa.getState().filament;t.logged_in&&await h()})(),()=>{e=!0}},[f,v,h]),p.useEffect(()=>{W||(B(new Set),ne(!1),ee(null),G(!1),Y(null),J(null))},[W]),p.useEffect(()=>{document.documentElement.dataset.theme=b},[b]);const ie=p.useMemo(()=>{let e=y.filter(e=>"archived"!==e.status);if("ams"===L&&(e=e.filter(e=>"ams_sync"===e.entry_method)),A.trim()){const t=A.toLowerCase();e=e.filter(e=>`${e.brand} ${e.material_type} ${e.series} ${e.color_name}`.toLowerCase().includes(t))}for(const[t,n]of Object.entries(T))n&&(e=e.filter(e=>e[t]===n));return e},[y,L,A,T]);p.useEffect(()=>{B(e=>{if(0===e.size)return e;const t=new Set(ie.map(e=>e.spool_id)),n=new Set([...e].filter(e=>t.has(e)));return n.size===e.size?e:n})},[ie]);const se=e=>{const t=new Set;return y.forEach(n=>{const r=n[e];r&&t.add(r)}),[...t].sort()},le=p.useCallback(e=>{B(t=>{const n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ce=p.useCallback(()=>{B(e=>e.size===ie.length?new Set:new Set(ie.map(e=>e.spool_id)))},[ie]),ue=p.useCallback(t=>{oe({title:e("Delete Filament"),message:e("Are you sure to permanently delete this filament? This action cannot be undone."),confirmText:e("Delete"),onConfirm:()=>a(t)})},[a,e]),de=p.useCallback(()=>{const t=[...z];t.length&&oe({title:e("Delete {{count}} Filaments",{count:t.length}),message:e("Are you sure to permanently delete the selected filaments? This action cannot be undone."),confirmText:e("Delete"),onConfirm:async()=>{await i(t),B(new Set)}})},[z,i,e]),fe=p.useCallback(e=>{const t=y.find(t=>t.spool_id===e);t&&(ee(t),ne(!0))},[y]),pe=p.useCallback(e=>{const t=y.find(t=>t.spool_id===e);t&&(Y(null),J({brand:t.brand,material_type:t.material_type,series:t.series,color_code:t.color_code,color_name:t.color_name,initial_weight:t.initial_weight,spool_weight:t.spool_weight}),G(!0))},[y]),he=p.useCallback(e=>{ne(!1),Y(e),J(null),G(!0)},[]),me=p.useCallback(()=>{W&&(Y(null),J(null),G(!0))},[W]),ge=p.useCallback(async(e,t)=>t>1?r(e,t):n(e),[n,r]),ve=p.useCallback(async e=>o(e),[o]),ye=p.useCallback(async()=>(await s(),Sa.getState().filament.machines),[s]),xe=p.useCallback(async(e,t=!1)=>(await u(e,t),Sa.getState().filament.amsData),[u]),be=p.useCallback(async()=>{W&&await Promise.all([h(),g({force:!0})])},[W,h,g]),[we,Se]=p.useState(!1),ke=p.useCallback(async()=>{if(W&&!we){Se(!0);try{await m()}finally{Se(!1)}}},[W,we,m]),Ce=p.useMemo(()=>{if(!k)return;const t=k,n=t.skipped_cooldown+t.skipped_no_diff+t.skipped_no_rfid;return[e("Last AMS Auto-Sync"),e("Pushed {{n}}, Skipped {{n2}}",{n:t.pushed,n2:n}),e("Device state: {{state}}",{state:t.device_state})].join("\n")},[k,e]);return l.jsxs("div",{"data-testid":"filament-page-root","data-logged-in":W?"true":"false",className:"flex h-screen overflow-hidden bg-fm-base text-fm-text-primary text-xs leading-[19px] font-['HarmonyOS_Sans_SC',-apple-system,'Segoe_UI',sans-serif] fm-native-form",children:[l.jsxs("div",{className:"flex-1 min-h-0 flex flex-col overflow-hidden p-6",children:[l.jsx("div",{className:"flex-1 min-h-0 flex flex-col overflow-hidden gap-4",children:l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:"flex items-center justify-between gap-4 shrink-0",children:[l.jsxs("div",{className:"flex items-center gap-4",children:[l.jsx("div",{className:"flex gap-2 "+(W?"":"opacity-40 pointer-events-none"),children:["all","ams"].map(t=>l.jsx("div",{"data-testid":`filament-tab-${t}`,"data-active":L===t?"true":"false",className:"px-[10px] py-1 h-7 rounded-md cursor-pointer text-xs text-fm-text-secondary flex items-center transition-colors duration-150 hover:bg-fm-hover "+(L===t?"bg-fm-input text-fm-text-strong":""),onClick:()=>F(t),children:"all"===t?e("All"):"AMS"},t))}),l.jsx("div",{className:"w-px h-[11px] bg-fm-border"}),l.jsx("div",{className:"flex gap-2 "+(W?"":"opacity-40 pointer-events-none"),children:["brand","material_type","series"].map(t=>l.jsxs("div",{style:{position:"relative"},children:[l.jsxs("div",{className:"flex items-center gap-1 px-2 pl-[6px] py-[2px] h-6 rounded-md cursor-pointer text-sm text-fm-text-primary transition-colors duration-150 hover:bg-fm-hover "+(T[t]?"bg-fm-brand/15 text-fm-brand font-medium":""),onClick:e=>{e.stopPropagation(),V(U===t?null:t)},children:[e(vi[t]),l.jsx("svg",{width:"8",height:"5",viewBox:"0 0 8 5",fill:"none",children:l.jsx("path",{d:"M1 1l3 3 3-3",stroke:"currentColor",strokeWidth:"1"})})]}),U===t&&l.jsx(yi,{options:se(t),current:T[t]||"",onSelect:e=>{D(n=>{const r={...n};return e?r[t]=e:delete r[t],r}),V(null)},onClose:()=>V(null)})]},t))})]}),l.jsxs("div",{className:"flex items-center gap-4",children:[l.jsxs("div",{className:"flex items-center gap-1 bg-fm-inner2 rounded-md px-2 h-[30px] w-[200px] "+(W?"":"opacity-40"),children:[l.jsxs("svg",{className:"text-fm-text-detail shrink-0",width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:[l.jsx("circle",{cx:"6",cy:"6",r:"4.5",stroke:"currentColor",strokeWidth:"1.2"}),l.jsx("path",{d:"M9.5 9.5L13 13",stroke:"currentColor",strokeWidth:"1.2"})]}),l.jsx("input",{"data-testid":"filament-search",className:"bg-transparent border-none outline-none text-fm-text-primary text-xs w-full placeholder:text-fm-text-detail disabled:cursor-not-allowed",type:"text",placeholder:e("Search Filament"),value:A,onChange:e=>M(e.target.value),disabled:!W})]}),l.jsx("button",{"data-testid":"filament-group-toggle","data-grouped":O?"true":"false",className:`inline-flex items-center gap-1 h-[30px] px-3 rounded-lg border-none text-xs whitespace-nowrap transition-colors duration-150 bg-fm-inner text-fm-text-primary border border-fm-border-focus/50 hover:bg-fm-hover ${O?"!bg-[rgba(44,173,0,0.08)] !border-fm-brand !text-[#50e81d]":""} ${W?"cursor-pointer":"opacity-40 cursor-not-allowed hover:bg-fm-inner"}`,onClick:()=>I(!O),disabled:!W,children:e("Group")}),l.jsx(ci,{state:S,onPullClick:be,tooltipExtra:Ce}),l.jsx("button",{type:"button","data-testid":"filament-push-all","data-pushing":we?"true":"false",className:"inline-flex items-center justify-center h-[30px] w-[30px] rounded-lg border border-fm-border-focus/50 bg-fm-inner text-fm-text-secondary transition-colors duration-150 "+(!W||we?"opacity-40 cursor-not-allowed":"cursor-pointer hover:bg-fm-hover"),title:e("Push Local to Cloud"),"aria-label":e("Push Local to Cloud"),onClick:ke,disabled:!W||we,children:we?l.jsxs("svg",{className:"animate-spin",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[l.jsx("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeOpacity:"0.3",strokeWidth:"2"}),l.jsx("path",{d:"M21 12a9 9 0 0 1-9 9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):l.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none","aria-hidden":"true",children:[l.jsx("path",{d:"M4.5 13.5h9",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"}),l.jsx("path",{d:"M9 4v7",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"}),l.jsx("path",{d:"M5.5 7.5L9 4l3.5 3.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})]})}),l.jsx("button",{type:"button",className:"inline-flex items-center justify-center h-[30px] w-[30px] rounded-lg border border-fm-border-focus/50 bg-fm-inner text-fm-text-secondary transition-colors duration-150 "+(W?"cursor-pointer hover:bg-fm-hover":"opacity-40 cursor-not-allowed"),title:e("Sync History"),"aria-label":e("Sync History"),onClick:()=>K(!0),disabled:!W,children:l.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none","aria-hidden":"true",children:[l.jsx("path",{d:"M3.5 9a5.5 5.5 0 1 0 1.6-3.9",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M3.5 4v3h3",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M9 6v3.25L11 10.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})]})}),l.jsx("button",{"data-testid":"filament-add",className:"inline-flex items-center gap-1 h-[30px] px-3 rounded-lg border-none text-xs whitespace-nowrap transition-colors duration-150 font-medium "+(W?"cursor-pointer bg-fm-brand text-white hover:bg-fm-brand-hover":"cursor-not-allowed bg-fm-brand/40 text-white/70"),disabled:!W,onClick:me,children:e("Add Filament")})]})]}),$&&l.jsxs("div",{className:"flex items-center justify-between shrink-0 bg-[rgba(224,64,64,0.08)] border border-fm-danger/60 rounded-lg px-4 py-2",children:[l.jsxs("div",{className:"flex items-center gap-2 text-fm-danger text-sm",children:[l.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",className:"shrink-0",children:[l.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),l.jsx("path",{d:"M8 4v5M8 11v.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})]}),l.jsx("span",{children:e("Selected {{count}} items",{count:z.size})})]}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsxs("button",{className:"inline-flex items-center gap-[6px] h-[28px] px-3 rounded-md border border-fm-danger bg-fm-danger text-white text-xs cursor-pointer hover:brightness-110",onClick:de,children:[l.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",className:"shrink-0",children:[l.jsx("path",{d:"M4 5h8l-.6 8H4.6L4 5z",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("path",{d:"M6 3h4",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("path",{d:"M3 5h10",stroke:"currentColor",strokeWidth:"1.1"}),l.jsx("path",{d:"M6.5 7v4M9.5 7v4",stroke:"currentColor",strokeWidth:"1"})]}),e("Batch Delete")]}),l.jsx("button",{className:"h-[28px] px-3 rounded-md border border-fm-border-focus/50 bg-transparent text-fm-text-primary text-xs cursor-pointer hover:bg-fm-hover",onClick:()=>B(new Set),children:e("Clear Selection")})]})]}),w?l.jsx("div",{className:"flex flex-col items-center justify-center py-20 text-fm-text-detail gap-4",children:l.jsx("p",{children:e("Loading...")})}):W?l.jsx(Ya,{spools:ie,selected:z,onToggleSelect:le,onSelectAll:ce,grouped:O,onDetail:fe,onAddSimilar:pe,onEmptyAdd:me,onDelete:ue}):l.jsxs("div",{"data-testid":"auth-signed-out",className:"flex flex-col items-center justify-center py-20 text-center gap-3 rounded-lg border border-fm-border bg-fm-inner",children:[l.jsx("p",{className:"m-0 text-[15px] leading-[22px] text-fm-text-strong",children:e("Not signed in — no data available")}),l.jsx("p",{className:"m-0 text-xs leading-[19px] text-fm-text-detail",children:e("Please sign in to view your filament library.")})]})]})}),j&&l.jsx("div",{className:"pt-4 mt-auto shrink-0",children:l.jsx(gi,{logs:_,filter:E,onFilterChange:P,onClear:R})})]}),l.jsx(oi,{open:q,editingSpool:Q,prefilledSpool:X,presets:x.vendors,onClose:()=>{G(!1),Y(null),J(null)},onSubmitAdd:ge,onSubmitUpdate:ve,onFetchMachines:ye,onRequestPushall:c,onFetchAmsData:xe}),l.jsx(ii,{open:te,spool:Z,filteredSpools:ie,onClose:()=>ne(!1),onEdit:he,onNavigate:e=>{const t=y.find(t=>t.spool_id===e);t&&ee(t)}}),l.jsx(pi,{toasts:C,onDismiss:N}),l.jsx(fi,{open:H,onClose:()=>K(!1)}),l.jsx(li,{open:null!==re,title:(null==re?void 0:re.title)??"",message:null==re?void 0:re.message,confirmText:null==re?void 0:re.confirmText,danger:!0,onCancel:()=>oe(null),onConfirm:async()=>{const e=null==re?void 0:re.onConfirm;oe(null),e&&await e()}})]})}});function bi({src:e,...t}){const n="/img/"+e;return l.jsx("img",{src:n,...t})}function wi(e){const[t,n]=h.useState(!1),[r,o]=h.useState(!1);let a=e.icon;return r&&e.active?a=e.active:t&&e.hover&&(a=e.hover),l.jsx("button",{className:e.className,onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),onClick:()=>o(!r),children:l.jsx(bi,{src:a})})}const Si=({children:e,direction:t="vertical",height:n="100%",width:r="100%",className:o="",style:a={},smooth:i=!1})=>{const s={height:n,width:r,overflowY:"vertical"===t?"auto":"hidden",overflowX:"horizontal"===t?"auto":"hidden",scrollBehavior:i?"smooth":"auto",...a},c=`\n ${"vertical"===t?"overflow-y-auto":"overflow-x-auto whitespace-nowrap"}\n ${i?"scroll-smooth":""}\n ${o}\n `;return l.jsx("div",{style:s,className:c,children:e})};function ki(){return l.jsx("div",{className:"flex-col",children:l.jsxs(Si,{children:[l.jsxs("div",{className:"flex flex-row items-center",children:[l.jsx(wi,{icon:"device_add.svg",className:"mr-auto"}),l.jsx(wi,{icon:"device_layout.svg"}),l.jsx(wi,{icon:"device_query.svg"})]}),l.jsx("div",{className:"flex flex-col"})]})})}function Ci(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(null==e||e(r),!1===n||!r.defaultPrevented)return null==t?void 0:t(r)}}function Ni(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function ji(...e){return t=>{let n=!1;const r=e.map(e=>{const r=Ni(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t{const t=n.map(e=>p.createContext(e));return function(n){const r=(null==n?void 0:n[e])||t;return p.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return r.scopeName=e,[function(t,r){const o=p.createContext(r),a=n.length;n=[...n,r];const i=t=>{var n;const{scope:r,children:i,...s}=t,c=(null==(n=null==r?void 0:r[e])?void 0:n[a])||o,u=p.useMemo(()=>s,Object.values(s));return l.jsx(c.Provider,{value:u,children:i})};return i.displayName=t+"Provider",[i,function(n,i){var s;const l=(null==(s=null==i?void 0:i[e])?void 0:s[a])||o,c=p.useContext(l);if(c)return c;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},Pi(r,...t)]}function Pi(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){const r=n.reduce((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]}),{});return p.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}var Ri=(null==globalThis?void 0:globalThis.document)?p.useLayoutEffect:()=>{},Li=m[" useId ".trim().toString()]||(()=>{}),Fi=0;function Ai(e){const[t,n]=p.useState(Li());return Ri(()=>{n(e=>e??String(Fi++))},[e]),e||(t?`radix-${t}`:"")}var Mi=m[" useInsertionEffect ".trim().toString()]||Ri;function Ti({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,a,i]=function({defaultProp:e,onChange:t}){const[n,r]=p.useState(e),o=p.useRef(n),a=p.useRef(t);return Mi(()=>{a.current=t},[t]),p.useEffect(()=>{var e;o.current!==n&&(null==(e=a.current)||e.call(a,n),o.current=n)},[n,o]),[n,r,a]}({defaultProp:t,onChange:n}),s=void 0!==e,l=s?e:o;{const t=p.useRef(void 0!==e);p.useEffect(()=>{const e=t.current;if(e!==s){const t=e?"controlled":"uncontrolled",n=s?"controlled":"uncontrolled";console.warn(`${r} is changing from ${t} to ${n}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=s},[s,r])}const c=p.useCallback(t=>{var n;if(s){const r=function(e){return"function"==typeof e}(t)?t(e):t;r!==e&&(null==(n=i.current)||n.call(i,r))}else a(t)},[s,e,a,i]);return[l,c]}function Di(e){const t=Oi(e),n=p.forwardRef((e,n)=>{const{children:r,...o}=e,a=p.Children.toArray(r),i=a.find(zi);if(i){const e=i.props.children,r=a.map(t=>t===i?p.Children.count(e)>1?p.Children.only(null):p.isValidElement(e)?e.props.children:null:t);return l.jsx(t,{...o,ref:n,children:p.isValidElement(e)?p.cloneElement(e,void 0,r):null})}return l.jsx(t,{...o,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function Oi(e){const t=p.forwardRef((e,t)=>{const{children:n,...r}=e;if(p.isValidElement(n)){const e=function(e){var t,n;let r=null==(t=Object.getOwnPropertyDescriptor(e.props,"ref"))?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;if(o)return e.ref;if(r=null==(n=Object.getOwnPropertyDescriptor(e,"ref"))?void 0:n.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o)return e.props.ref;return e.props.ref||e.ref}(n),o=function(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...e)=>{const t=a(...e);return o(...e),t}:o&&(n[r]=o):"style"===r?n[r]={...o,...a}:"className"===r&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props);return n.type!==p.Fragment&&(o.ref=t?ji(t,e):e),p.cloneElement(n,o)}return p.Children.count(n)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ii=Symbol("radix.slottable");function zi(e){return p.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===Ii}var Bi=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{const n=Di(`Primitive.${t}`),r=p.forwardRef((e,r)=>{const{asChild:o,...a}=e,i=o?n:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),l.jsx(i,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function $i(e){const t=p.useRef(e);return p.useEffect(()=>{t.current=e}),p.useMemo(()=>(...e)=>{var n;return null==(n=t.current)?void 0:n.call(t,...e)},[])}var Wi,Ui="dismissableLayer.update",Vi="dismissableLayer.pointerDownOutside",Hi="dismissableLayer.focusOutside",Ki=p.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),qi=p.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:i,onDismiss:s,...c}=e,u=p.useContext(Ki),[d,f]=p.useState(null),h=(null==d?void 0:d.ownerDocument)??(null==globalThis?void 0:globalThis.document),[,m]=p.useState({}),g=_i(t,e=>f(e)),v=Array.from(u.layers),[y]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),x=v.indexOf(y),b=d?v.indexOf(d):-1,w=u.layersWithOutsidePointerEventsDisabled.size>0,S=b>=x,k=function(e,t=(null==globalThis?void 0:globalThis.document)){const n=$i(e),r=p.useRef(!1),o=p.useRef(()=>{});return p.useEffect(()=>{const e=e=>{if(e.target&&!r.current){let r=function(){Qi(Vi,n,a,{discrete:!0})};const a={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",o.current),o.current=r,t.addEventListener("click",o.current,{once:!0})):r()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",e),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}(e=>{const t=e.target,n=[...u.branches].some(e=>e.contains(t));S&&!n&&(null==o||o(e),null==i||i(e),e.defaultPrevented||null==s||s())},h),C=function(e,t=(null==globalThis?void 0:globalThis.document)){const n=$i(e),r=p.useRef(!1);return p.useEffect(()=>{const e=e=>{if(e.target&&!r.current){Qi(Hi,n,{originalEvent:e},{discrete:!1})}};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}(e=>{const t=e.target;[...u.branches].some(e=>e.contains(t))||(null==a||a(e),null==i||i(e),e.defaultPrevented||null==s||s())},h);return function(e,t=(null==globalThis?void 0:globalThis.document)){const n=$i(e);p.useEffect(()=>{const e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[n,t])}(e=>{b===u.layers.size-1&&(null==r||r(e),!e.defaultPrevented&&s&&(e.preventDefault(),s()))},h),p.useEffect(()=>{if(d)return n&&(0===u.layersWithOutsidePointerEventsDisabled.size&&(Wi=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),Gi(),()=>{n&&1===u.layersWithOutsidePointerEventsDisabled.size&&(h.body.style.pointerEvents=Wi)}},[d,h,n,u]),p.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),Gi())},[d,u]),p.useEffect(()=>{const e=()=>m({});return document.addEventListener(Ui,e),()=>document.removeEventListener(Ui,e)},[]),l.jsx(Bi.div,{...c,ref:g,style:{pointerEvents:w?S?"auto":"none":void 0,...e.style},onFocusCapture:Ci(e.onFocusCapture,C.onFocusCapture),onBlurCapture:Ci(e.onBlurCapture,C.onBlurCapture),onPointerDownCapture:Ci(e.onPointerDownCapture,k.onPointerDownCapture)})});qi.displayName="DismissableLayer";function Gi(){const e=new CustomEvent(Ui);document.dispatchEvent(e)}function Qi(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?function(e,t){e&&dn.flushSync(()=>e.dispatchEvent(t))}(o,a):o.dispatchEvent(a)}p.forwardRef((e,t)=>{const n=p.useContext(Ki),r=p.useRef(null),o=_i(t,r);return p.useEffect(()=>{const e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),l.jsx(Bi.div,{...e,ref:o})}).displayName="DismissableLayerBranch";var Yi="focusScope.autoFocusOnMount",Xi="focusScope.autoFocusOnUnmount",Ji={bubbles:!1,cancelable:!0},Zi=p.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[s,c]=p.useState(null),u=$i(o),d=$i(a),f=p.useRef(null),h=_i(t,e=>c(e)),m=p.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;p.useEffect(()=>{if(r){let e=function(e){if(m.paused||!s)return;const t=e.target;s.contains(t)?f.current=t:rs(f.current,{select:!0})},t=function(e){if(m.paused||!s)return;const t=e.relatedTarget;null!==t&&(s.contains(t)||rs(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(const t of e)t.removedNodes.length>0&&rs(s)};document.addEventListener("focusin",e),document.addEventListener("focusout",t);const r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}},[r,s,m.paused]),p.useEffect(()=>{if(s){os.add(m);const t=document.activeElement;if(!s.contains(t)){const n=new CustomEvent(Yi,Ji);s.addEventListener(Yi,u),s.dispatchEvent(n),n.defaultPrevented||(!function(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(rs(r,{select:t}),document.activeElement!==n)return}((e=es(s),e.filter(e=>"A"!==e.tagName)),{select:!0}),document.activeElement===t&&rs(s))}return()=>{s.removeEventListener(Yi,u),setTimeout(()=>{const e=new CustomEvent(Xi,Ji);s.addEventListener(Xi,d),s.dispatchEvent(e),e.defaultPrevented||rs(t??document.body,{select:!0}),s.removeEventListener(Xi,d),os.remove(m)},0)}}var e},[s,u,d,m]);const g=p.useCallback(e=>{if(!n&&!r)return;if(m.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){const t=e.currentTarget,[r,a]=function(e){const t=es(e),n=ts(t,e),r=ts(t.reverse(),e);return[n,r]}(t);r&&a?e.shiftKey||o!==a?e.shiftKey&&o===r&&(e.preventDefault(),n&&rs(a,{select:!0})):(e.preventDefault(),n&&rs(r,{select:!0})):o===t&&e.preventDefault()}},[n,r,m.paused]);return l.jsx(Bi.div,{tabIndex:-1,...i,ref:h,onKeyDown:g})});function es(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function ts(e,t){for(const n of e)if(!ns(n,{upTo:t}))return n}function ns(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(void 0!==t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function rs(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&function(e){return e instanceof HTMLInputElement&&"select"in e}(e)&&t&&e.select()}}Zi.displayName="FocusScope";var os=function(){let e=[];return{add(t){const n=e[0];t!==n&&(null==n||n.pause()),e=as(e,t),e.unshift(t)},remove(t){var n;e=as(e,t),null==(n=e[0])||n.resume()}}}();function as(e,t){const n=[...e],r=n.indexOf(t);return-1!==r&&n.splice(r,1),n}var is=p.forwardRef((e,t)=>{var n;const{container:r,...o}=e,[a,i]=p.useState(!1);Ri(()=>i(!0),[]);const s=r||a&&(null==(n=null==globalThis?void 0:globalThis.document)?void 0:n.body);return s?fn.createPortal(l.jsx(Bi.div,{...o,ref:t}),s):null});is.displayName="Portal";var ss=e=>{const{present:t,children:n}=e,r=function(e){const[t,n]=p.useState(),r=p.useRef(null),o=p.useRef(e),a=p.useRef("none"),i=e?"mounted":"unmounted",[s,l]=function(e,t){return p.useReducer((e,n)=>t[e][n]??e,e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return p.useEffect(()=>{const e=ls(r.current);a.current="mounted"===s?e:"none"},[s]),Ri(()=>{const t=r.current,n=o.current;if(n!==e){const r=a.current,i=ls(t);if(e)l("MOUNT");else if("none"===i||"none"===(null==t?void 0:t.display))l("UNMOUNT");else{l(n&&r!==i?"ANIMATION_OUT":"UNMOUNT")}o.current=e}},[e,l]),Ri(()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,i=a=>{const i=ls(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&i&&(l("ANIMATION_END"),!o.current)){const r=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout(()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=r)})}},s=e=>{e.target===t&&(a.current=ls(r.current))};return t.addEventListener("animationstart",s),t.addEventListener("animationcancel",i),t.addEventListener("animationend",i),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",s),t.removeEventListener("animationcancel",i),t.removeEventListener("animationend",i)}}l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:p.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}(t),o="function"==typeof n?n({present:r.isPresent}):p.Children.only(n),a=_i(r.ref,function(e){var t,n;let r=null==(t=Object.getOwnPropertyDescriptor(e.props,"ref"))?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;if(o)return e.ref;if(r=null==(n=Object.getOwnPropertyDescriptor(e,"ref"))?void 0:n.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o)return e.props.ref;return e.props.ref||e.ref}(o));return"function"==typeof n||r.isPresent?p.cloneElement(o,{ref:a}):null};function ls(e){return(null==e?void 0:e.animationName)||"none"}ss.displayName="Presence";var cs=0;function us(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ds=function(){return ds=Object.assign||function(e){for(var t,n=1,r=arguments.length;no[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Bs=function(e,t){return"v"===e?function(e){return Is(e,"overflowY")}(t):function(e){return Is(e,"overflowX")}(t)},$s=function(e,t){return"v"===e?[(n=t).scrollTop,n.scrollHeight,n.clientHeight]:function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]}(t);var n},Ws=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Us=function(e){return[e.deltaX,e.deltaY]},Vs=function(e){return e&&"current"in e?e.current:e},Hs=function(e){return"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")},Ks=0,qs=[];function Gs(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Qs=(Ys=function(e){var t=p.useRef([]),n=p.useRef([0,0]),r=p.useRef(),o=p.useState(Ks++)[0],a=p.useState(js)[0],i=p.useRef(e);p.useEffect(function(){i.current=e},[e]),p.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;oMath.abs(c)?"h":"v";if("touches"in e&&"h"===d&&"range"===u.type)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var h=zs(d,u);if(!h)return!0;if(h?o=d:(o="v"===d?"h":"v",h=zs(d,u)),!h)return!1;if(!r.current&&"changedTouches"in e&&(l||c)&&(r.current=o),!o)return!0;var m=r.current||o;return function(e,t,n,r){var o=function(e,t){return"h"===e&&"rtl"===t?-1:1}(e,window.getComputedStyle(t).direction),a=o*r,i=n.target,s=t.contains(i),l=!1,c=a>0,u=0,d=0;do{if(!i)break;var f=$s(e,i),p=f[0],h=f[1]-f[2]-o*p;(p||h)&&Bs(e,i)&&(u+=h,d+=p);var m=i.parentNode;i=m&&m.nodeType===Node.DOCUMENT_FRAGMENT_NODE?m.host:m}while(!s&&i!==document.body||s&&(t.contains(i)||t===i));return(c&&Math.abs(u)<1||!c&&Math.abs(d)<1)&&(l=!0),l}(m,t,e,"h"===m?l:c)},[]),l=p.useCallback(function(e){var n=e;if(qs.length&&qs[qs.length-1]===a){var r="deltaY"in n?Us(n):Ws(n),o=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&(t=e.delta,o=r,t[0]===o[0]&&t[1]===o[1]);var t,o})[0];if(o&&o.should)n.cancelable&&n.preventDefault();else if(!o){var l=(i.current.shards||[]).map(Vs).filter(Boolean).filter(function(e){return e.contains(n.target)});(l.length>0?s(n,l[0]):!i.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),c=p.useCallback(function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:Gs(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=p.useCallback(function(e){n.current=Ws(e),r.current=void 0},[]),d=p.useCallback(function(t){c(t.type,Us(t),t.target,s(t,e.lockRef.current))},[]),f=p.useCallback(function(t){c(t.type,Ws(t),t.target,s(t,e.lockRef.current))},[]);p.useEffect(function(){return qs.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",l,Os),document.addEventListener("touchmove",l,Os),document.addEventListener("touchstart",u,Os),function(){qs=qs.filter(function(e){return e!==a}),document.removeEventListener("wheel",l,Os),document.removeEventListener("touchmove",l,Os),document.removeEventListener("touchstart",u,Os)}},[]);var h=e.removeScrollBar,m=e.inert;return p.createElement(p.Fragment,null,m?p.createElement(a,{styles:Hs(o)}):null,h?p.createElement(Ms,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},ws.useMedium(Ys),bs);var Ys,Xs=p.forwardRef(function(e,t){return p.createElement(ks,ds({},e,{ref:t,sideCar:Qs}))});Xs.classNames=ks.classNames;var Js=new WeakMap,Zs=new WeakMap,el={},tl=0,nl=function(e){return e&&(e.host||nl(e.parentNode))},rl=function(e,t,n,r){var o=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=nl(t);return n&&e.contains(n)?n:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)}).filter(function(e){return Boolean(e)})}(t,Array.isArray(e)?e:[e]);el[n]||(el[n]=new WeakMap);var a=el[n],i=[],s=new Set,l=new Set(o),c=function(e){e&&!s.has(e)&&(s.add(e),c(e.parentNode))};o.forEach(c);var u=function(e){e&&!l.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),o=null!==t&&"false"!==t,l=(Js.get(e)||0)+1,c=(a.get(e)||0)+1;Js.set(e,l),a.set(e,c),i.push(e),1===l&&o&&Zs.set(e,!0),1===c&&e.setAttribute(n,"true"),o||e.setAttribute(r,"true")}catch(d){console.error("aria-hidden: cannot operate on ",e,d)}})};return u(t),s.clear(),tl++,function(){i.forEach(function(e){var t=Js.get(e)-1,o=a.get(e)-1;Js.set(e,t),a.set(e,o),t||(Zs.has(e)||e.removeAttribute(r),Zs.delete(e)),o||e.removeAttribute(n)}),--tl||(Js=new WeakMap,Js=new WeakMap,Zs=new WeakMap,el={})}},ol=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body}(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),rl(r,o,n,"aria-hidden")):function(){return null}},al="Dialog",[il]=Ei(al),[sl,ll]=il(al),cl=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:a,modal:i=!0}=e,s=p.useRef(null),c=p.useRef(null),[u,d]=Ti({prop:r,defaultProp:o??!1,onChange:a,caller:al});return l.jsx(sl,{scope:t,triggerRef:s,contentRef:c,contentId:Ai(),titleId:Ai(),descriptionId:Ai(),open:u,onOpenChange:d,onOpenToggle:p.useCallback(()=>d(e=>!e),[d]),modal:i,children:n})};cl.displayName=al;var ul="DialogTrigger",dl=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ll(ul,n),a=_i(t,o.triggerRef);return l.jsx(Bi.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":Rl(o.open),...r,ref:a,onClick:Ci(e.onClick,o.onOpenToggle)})});dl.displayName=ul;var fl="DialogPortal",[pl,hl]=il(fl,{forceMount:void 0}),ml=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,a=ll(fl,t);return l.jsx(pl,{scope:t,forceMount:n,children:p.Children.map(r,e=>l.jsx(ss,{present:n||a.open,children:l.jsx(is,{asChild:!0,container:o,children:e})}))})};ml.displayName=fl;var gl="DialogOverlay",vl=p.forwardRef((e,t)=>{const n=hl(gl,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=ll(gl,e.__scopeDialog);return a.modal?l.jsx(ss,{present:r||a.open,children:l.jsx(xl,{...o,ref:t})}):null});vl.displayName=gl;var yl=Di("DialogOverlay.RemoveScroll"),xl=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ll(gl,n);return l.jsx(Xs,{as:yl,allowPinchZoom:!0,shards:[o.contentRef],children:l.jsx(Bi.div,{"data-state":Rl(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),bl="DialogContent",wl=p.forwardRef((e,t)=>{const n=hl(bl,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=ll(bl,e.__scopeDialog);return l.jsx(ss,{present:r||a.open,children:a.modal?l.jsx(Sl,{...o,ref:t}):l.jsx(kl,{...o,ref:t})})});wl.displayName=bl;var Sl=p.forwardRef((e,t)=>{const n=ll(bl,e.__scopeDialog),r=p.useRef(null),o=_i(t,n.contentRef,r);return p.useEffect(()=>{const e=r.current;if(e)return ol(e)},[]),l.jsx(Cl,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ci(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),null==(t=n.triggerRef.current)||t.focus()}),onPointerDownOutside:Ci(e.onPointerDownOutside,e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:Ci(e.onFocusOutside,e=>e.preventDefault())})}),kl=p.forwardRef((e,t)=>{const n=ll(bl,e.__scopeDialog),r=p.useRef(!1),o=p.useRef(!1);return l.jsx(Cl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var a,i;null==(a=e.onCloseAutoFocus)||a.call(e,t),t.defaultPrevented||(r.current||null==(i=n.triggerRef.current)||i.focus(),t.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:t=>{var a,i;null==(a=e.onInteractOutside)||a.call(e,t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));const s=t.target;(null==(i=n.triggerRef.current)?void 0:i.contains(s))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})}),Cl=p.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,...i}=e,s=ll(bl,n),c=p.useRef(null),u=_i(t,c);return p.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??us()),document.body.insertAdjacentElement("beforeend",e[1]??us()),cs++,()=>{1===cs&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),cs--}},[]),l.jsxs(l.Fragment,{children:[l.jsx(Zi,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a,children:l.jsx(qi,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":Rl(s.open),...i,ref:u,onDismiss:()=>s.onOpenChange(!1)})}),l.jsxs(l.Fragment,{children:[l.jsx(Ml,{titleId:s.titleId}),l.jsx(Tl,{contentRef:c,descriptionId:s.descriptionId})]})]})}),Nl="DialogTitle",jl=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ll(Nl,n);return l.jsx(Bi.h2,{id:o.titleId,...r,ref:t})});jl.displayName=Nl;var _l="DialogDescription";p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ll(_l,n);return l.jsx(Bi.p,{id:o.descriptionId,...r,ref:t})}).displayName=_l;var El="DialogClose",Pl=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ll(El,n);return l.jsx(Bi.button,{type:"button",...r,ref:t,onClick:Ci(e.onClick,()=>o.onOpenChange(!1))})});function Rl(e){return e?"open":"closed"}Pl.displayName=El;var Ll="DialogTitleWarning",[Fl,Al]=function(e,t){const n=p.createContext(t),r=e=>{const{children:t,...r}=e,o=p.useMemo(()=>r,Object.values(r));return l.jsx(n.Provider,{value:o,children:t})};return r.displayName=e+"Provider",[r,function(r){const o=p.useContext(n);if(o)return o;if(void 0!==t)return t;throw new Error(`\`${r}\` must be used within \`${e}\``)}]}(Ll,{contentName:bl,titleName:Nl,docsSlug:"dialog"}),Ml=({titleId:e})=>{const t=Al(Ll),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return p.useEffect(()=>{if(e){document.getElementById(e)||console.error(n)}},[n,e]),null},Tl=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Al("DialogDescriptionWarning").contentName}}.`;return p.useEffect(()=>{var r;const o=null==(r=e.current)?void 0:r.getAttribute("aria-describedby");if(t&&o){document.getElementById(t)||console.warn(n)}},[n,e,t]),null},Dl=cl,Ol=dl,Il=ml,zl=vl,Bl=wl,$l=jl,Wl=Pl;function Ul(e,t){return(e.getUint8(t)<<24|e.getUint8(t+1)<<16|e.getUint8(t+2)<<8|e.getUint8(t+3))>>>0}function Vl(e){return l.jsx("div",{className:"text-[0.875rem] leading-[1.25rem] text-black/80",children:e.children})}function Hl(e){const{className:t="",variant:n="solid",...r}=e,o=`inline-flex items-center justify-center rounded-[0.5rem] px-[0.875rem] py-[0.5rem] text-[0.875rem] leading-[1rem] ${"solid"===n?"bg-black text-white hover:opacity-90 disabled:opacity-50":"border border-black/20 text-black hover:bg-black/5 disabled:opacity-50"} ${t}`;return l.jsx("button",{className:o,...r})}function Kl(){const[e,t]=p.useState(!1),[n,r]=p.useState("ws://127.0.0.1:9000/live"),[o,a]=p.useState("未连接"),[i,s]=p.useState(!0),[c,u]=p.useState(!1),[d,f]=p.useState(""),[h,m]=p.useState([]),[g,v]=p.useState({leftRem:0,topRem:0}),y=p.useRef(null),x=p.useRef(null),b=p.useRef(null),w=p.useRef(null),S=p.useRef(null),k=p.useRef(null),C=p.useRef(!0),N=p.useRef("avc1.42E01E"),j=p.useRef(0),_=p.useRef([]),E=p.useRef([]),P=p.useRef(0),R=p.useRef(0),L=p.useRef(0),F=p.useRef(0),A=p.useRef(0),M=p.useRef(0),T=p.useRef(0),D=p.useRef(null),O=p.useRef(null),I=p.useCallback((...e)=>{const t=`[${(new Date).toLocaleTimeString()}] `+e.map(String).join(" ");f(e=>(e?e+"":"")+t)},[]);p.useEffect(()=>{const e=b.current;e&&(e.scrollTop=e.scrollHeight)},[d]);const z=p.useCallback(()=>{const e=y.current;if(!e)return;const t=e.getBoundingClientRect(),n=parseFloat(getComputedStyle(document.documentElement).fontSize)||16;v({leftRem:t.left/n,topRem:t.top/n})},[]);p.useLayoutEffect(()=>{if(!e)return;z();let t=0;const n=()=>{cancelAnimationFrame(t),t=requestAnimationFrame(z)};return window.addEventListener("scroll",n,!0),window.addEventListener("resize",n),()=>{window.removeEventListener("scroll",n,!0),window.removeEventListener("resize",n),cancelAnimationFrame(t)}},[e,z]),p.useEffect(()=>{const e=window.setInterval(()=>{const e=performance.now();_.current=_.current.filter(t=>e-t.t<=2e3);const t=8*_.current.reduce((e,t)=>e+t.bytes,0)/2e3;let n=null;E.current.length&&(n=E.current.reduce((e,t)=>e+t,0)/E.current.length,E.current.length=0);const r=null==D.current?"—":Math.max(0,e-D.current).toFixed(0)+" ms",o=O.current?`${O.current.key?"K":"P"} ts=${O.current.tsUs} len=${O.current.bytes}B nal=${O.current.nalCount??"?"}`:"—",a=["状态: "+(w.current?1===w.current.readyState?"已连接":"连接中":"未连接"),`Decoder: ${S.current?S.current.state??"—":"—"}`,`FPS: ${j.current.toFixed(0)}`,`码率: ${t.toFixed(0)} kbps`,"延迟: "+(null==n?"—":n.toFixed(1)+" ms"),`文本消息: ${R.current}`,`二进制消息: ${L.current}`,`已入解码: ${F.current}`,`丢(未配置): ${A.current}`,`丢(格式错): ${M.current}`,`解码错误: ${T.current}`,`待解码: ${P.current}`,`最近关键帧: ${r}`,`最近帧: ${o}`,`avcC: ${k.current?k.current.byteLength:0} B`,"需配置: "+(C.current?"是":"否"),`codec: ${N.current}`];m(a),j.current=0},1e3);return()=>window.clearInterval(e)},[]);const B=p.useCallback(async()=>{if(S.current)return;if(!("VideoDecoder"in window))return I("ERR: 当前浏览器不支持 WebCodecs"),void a("浏览器不支持 WebCodecs");const e=x.current;if(!e)return;const t=e.getContext("2d");t?(S.current=new VideoDecoder({output:n=>{e.width===n.codedWidth&&e.height===n.codedHeight||(e.width=n.codedWidth,e.height=n.codedHeight,I("resize canvas",`${n.codedWidth}x${n.codedHeight}`)),t.drawImage(n,0,0),n.close(),j.current++,P.current=Math.max(0,P.current-1)},error:e=>{T.current++,I("DECODER ERROR:",e)}}),I("decoder created")):I("ERR: Canvas 2D not available")},[I]),$=p.useCallback(async()=>{if(S.current||await B(),S.current)if(k.current)try{S.current.configure({codec:N.current,description:k.current.buffer.slice(k.current.byteOffset,k.current.byteOffset+k.current.byteLength)}),C.current=!1,I("decoder configured",`codec=${N.current}`,`avcc=${k.current.byteLength}B`)}catch(e){throw I("ERR: configure failed",e),e}else I("ERR: No avcC config yet")},[B,I]),W=p.useCallback(e=>{if("string"==typeof e.data){R.current++;try{const t=JSON.parse(e.data);if("config"===t.type){if(t.codec&&(N.current=t.codec,I("cfg codec=",t.codec)),!t.avccBase64)return void I("ERR: config missing avccBase64");k.current=Uint8Array.from(atob(t.avccBase64),e=>e.charCodeAt(0)),C.current=!0,I("cfg avcC bytes=",k.current.byteLength),$()}else I("text msg:",e.data.slice(0,120))}catch{I("text msg (non-JSON):",e.data.slice(0,120))}return}L.current++;const t=e.data,n=new DataView(t);let r=!1,o=0,a=null;if(n.byteLength>=14&&2===n.getUint8(0)){const e=Ul(n,10);if(14+e>n.byteLength)return M.current++,void I("drop: malformed, declared len=",e," actual=",n.byteLength-14);r=0!==n.getUint8(1),o=function(e,t){return 4294967296*Ul(e,t)+Ul(e,t+4)}(n,2),a=new Uint8Array(t,14,e);const i=(1e3*performance.timeOrigin+1e3*performance.now()-o)/1e3;i>=0&&i<6e4&&(E.current.push(i),E.current.length>120&&E.current.shift()),_.current.push({t:performance.now(),bytes:e+14})}else{if(a=new Uint8Array(t),a.byteLength>=5){r=5===(31&a[4])}o=Math.floor(1e3*performance.timeOrigin+1e3*performance.now()),_.current.push({t:performance.now(),bytes:a.byteLength})}if(!k.current&&a){const{sps:e,pps:t,nals:n}=function(e){let t=0,n=null,r=null,o=0;for(;t+4<=e.length;){const a=e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3];if(a<=0||t+4+a>e.length)break;const i=31&e[t+4],s=e.subarray(t+4,t+4+a);if(7!==i||n||(n=s),8!==i||r||(r=s),t+=4+a,o++,n&&r)break}return{sps:n,pps:r,nals:o}}(a);I("bootstrap: probe nals=",n," sps=",!!e," pps=",!!t),e&&t&&(N.current=(e=>`avc1.${[e[1],e[2],e[3]].map(e=>e.toString(16).toUpperCase().padStart(2,"0")).join("")}`)(e),k.current=function(e,t){const n=9+e.length+1+2+t.length,r=new Uint8Array(n);let o=0;return r[o++]=1,r[o++]=e[1],r[o++]=e[2],r[o++]=e[3],r[o++]=255,r[o++]=225,r[o++]=e.length>>8&255,r[o++]=255&e.length,r.set(e,o),o+=e.length,r[o++]=1,r[o++]=t.length>>8&255,r[o++]=255&t.length,r.set(t,o),r}(e,t),C.current=!0,I("bootstrap: codec=",N.current," avcC=",k.current.byteLength,"B"),$())}if(a){const e=function(e){let t=0,n=0;for(;t+4<=e.length;){const r=e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3];if(r<=0||t+4+r>e.length)return{ok:!1,n:n,badAt:t,len:r};t+=4+r,n++}return{ok:t===e.length,n:n}}(a);O.current={tsUs:o,key:r,bytes:a.byteLength,nalCount:e.n},e.ok||I("warn: avcC NAL parse fail at",e.badAt," len=",e.len," payload=",a.byteLength),r&&(D.current=performance.now())}if(C.current)return A.current++,void I("drop: need avcC config before frames");try{P.current++;const e=new EncodedVideoChunk({type:r?"key":"delta",timestamp:o,data:a});S.current.decode(e),F.current++}catch(i){T.current++,P.current=Math.max(0,P.current-1),I("ERR: decode()",i)}},[$,I]),U=p.useCallback(async()=>{if(w.current&&1===w.current.readyState)return;I("connecting",n),a("连接中…"),await B();const e=new WebSocket(n);e.binaryType="arraybuffer",e.onopen=()=>{a("已连接"),s(!1),u(!0),I("ws open")},e.onclose=()=>{a("未连接"),s(!0),u(!1),I("ws close");try{S.current&&S.current.close()}catch{}S.current=null,k.current=null,C.current=!0},e.onerror=e=>{I("ws error",(null==e?void 0:e.message)||e)},e.onmessage=W,w.current=e},[B,I,W,n]),V=p.useCallback(()=>{w.current&&(I("ws close (manual)"),w.current.close(),w.current=null)},[I]),H=p.useCallback(()=>f(""),[]),K=p.useCallback(()=>{navigator.clipboard.writeText(d).catch(()=>{})},[d]);return p.useEffect(()=>()=>{var e,t;try{null==(e=w.current)||e.close()}catch{}try{null==(t=S.current)||t.close()}catch{}},[]),l.jsx("div",{className:"p-[1rem] font-sans text-[1rem] leading-[1.5rem] text-[#111]",children:l.jsxs(Dl,{open:e,onOpenChange:t,modal:!1,children:[l.jsx(Ol,{asChild:!0,children:l.jsx("button",{ref:y,className:"inline-flex items-center justify-center rounded-[0.5rem] bg-black px-[1rem] py-[0.625rem] text-white hover:opacity-90",children:"打开 WS AvcC 播放器(非模态/左上角对齐)"})}),l.jsxs(Bl,{onInteractOutside:e=>e.preventDefault(),onEscapeKeyDown:e=>e.preventDefault(),className:"fixed z-[100] w-[56rem] max-w-[90vw] rounded-[0.75rem] bg-white shadow-[0_0.5rem_1.5rem_rgba(0,0,0,0.12)] focus:outline-none",style:{left:`${g.leftRem}rem`,top:`${g.topRem}rem`},children:[l.jsxs("div",{className:"flex items-center justify-between rounded-t-[0.75rem] bg-[#F8F8F8] px-[1rem] py-[0.75rem]",children:[l.jsx("div",{className:"text-[1rem] font-medium",children:"WebSocket AvcC Player"}),l.jsx(Wl,{asChild:!0,children:l.jsx("button",{"aria-label":"Close",className:"inline-flex h-[2rem] w-[2rem] items-center justify-center rounded-[0.5rem] hover:bg-black/5",children:l.jsx("svg",{viewBox:"0 0 24 24",className:"h-[1.25rem] w-[1.25rem]","aria-hidden":!0,children:l.jsx("path",{d:"M6 6l12 12M18 6 6 18",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})})})]}),l.jsxs("div",{className:"p-[1rem]",children:[l.jsxs("div",{className:"flex flex-wrap items-center gap-[0.5rem]",children:[l.jsxs("label",{className:"flex items-center gap-[0.5rem]",children:[l.jsx(Vl,{children:"URL:"}),l.jsx("input",{value:n,onChange:e=>r(e.target.value),className:"min-w-[24rem] rounded-[0.5rem] border border-black/20 px-[0.75rem] py-[0.5rem] text-[0.875rem] leading-[1.25rem] outline-none focus:border-black/40",type:"text"})]}),l.jsx(Hl,{onClick:U,disabled:!i,className:"px-[0.875rem] py-[0.5rem]",children:"开始"}),l.jsx(Hl,{onClick:V,disabled:!c,variant:"outline",className:"px-[0.875rem] py-[0.5rem]",children:"停止"}),l.jsx("span",{className:"text-[0.875rem] leading-[1.25rem] text-black/60",children:o})]}),l.jsxs("div",{className:"mt-[0.75rem] grid grid-cols-[2fr_1fr] gap-[0.75rem]",children:[l.jsx("div",{className:"rounded-[0.5rem] border border-black/10 bg-white p-[0.5rem]",children:l.jsx("canvas",{ref:x,className:"max-w-full bg-white"})}),l.jsxs("div",{className:"rounded-[0.5rem] border border-black/10 bg-white p-[0.75rem]",children:[l.jsx("div",{className:"text-[1rem] font-semibold leading-[1.5rem]",children:"实时统计"}),l.jsx("ul",{className:"mt-[0.5rem] divide-y divide-black/5 rounded-[0.5rem] border border-black/10",children:h.map((e,t)=>{const n=e.indexOf(":"),r=n>=0?e.slice(0,n):e,o=n>=0?e.slice(n+1).trim():"";return l.jsxs("li",{className:"grid grid-cols-[7rem_1fr] items-start gap-[0.5rem] px-[0.5rem] py-[0.375rem] text-[0.8125rem] leading-[1.25rem]",children:[l.jsx("span",{className:"text-black/70",children:r}),l.jsx("span",{className:"font-mono",children:o})]},t)})}),l.jsxs("div",{className:"mt-[0.5rem] text-[0.75rem] leading-[1.125rem] text-black/60",children:["* 若后端不发 config,前端会从首包 AvcC 自动提取 SPS/PPS 构造 avcC。",l.jsx("br",{}),"* 文本 config(可选):","{",'"type":"config","codec":"avc1.640028","avccBase64":"..."',"}",l.jsx("br",{}),"* 二进制:支持 ①14 字节头 (0x02+key+ts+len+payload) ②裸 AvcC(4 字节大端长度 + NAL…)"]})]})]}),l.jsxs("div",{className:"mt-[0.75rem] rounded-[0.5rem] border border-black/10 bg-white p-[0.75rem]",children:[l.jsxs("div",{className:"mb-[0.5rem] flex items-center justify-between",children:[l.jsx("div",{className:"text-[1rem] font-semibold leading-[1.5rem]",children:"日志"}),l.jsxs("div",{className:"flex items-center gap-[0.5rem]",children:[l.jsx(Hl,{variant:"outline",onClick:H,className:"px-[0.875rem] py-[0.5rem]",children:"清空"}),l.jsx(Hl,{variant:"outline",onClick:K,className:"px-[0.875rem] py-[0.5rem]",children:"复制"})]})]}),l.jsx("textarea",{ref:b,readOnly:!0,value:d,className:"h-[16rem] w-full resize-none rounded-[0.5rem] border border-black/10 p-[0.5rem] text-[0.75rem] leading-[1.125rem] outline-none font-mono"})]})]})]})]})})}function ql({percent:e,fg_color:t,bg_color:n="bg-gray-200",rounded:r=!0,className:o}){return l.jsx("div",{className:`relative ${o} rounded-full ${n}`,children:l.jsx("div",{className:`absolute h-full ${r?"rounded-full":"rounded-l-full"} ${t}`,style:{width:`${e}%`}})})}function Gl(){return l.jsxs("div",{className:"flex flex-row w-full h-full",children:[l.jsx(bi,{className:"h-full aspect-square",src:"",alt:"progress icon"}),l.jsxs("div",{className:"flex-1 flex flex-col ",children:[l.jsx("p",{children:" task name "}),l.jsxs("div",{className:"mt-auto flex flex-row",children:[l.jsxs("div",{className:"flex-1 flex flex-col",children:[l.jsxs("div",{className:"flex flex-row",children:[l.jsx("p",{children:"percent"}),l.jsx("p",{children:"task status"}),l.jsx("p",{className:"ml-auto",children:"time remaining"})]}),l.jsx(ql,{percent:50,fg_color:"bg-green-500",className:"h-[0.5rem] w-full"}),l.jsxs("div",{className:"flex flex-row",children:[l.jsx("p",{children:"remain layers"}),l.jsx("p",{className:"ml-auto",children:"left time"})]})]}),l.jsxs("div",{className:"ml-auto flex flex-row",children:[l.jsxs("button",{children:["t","pause"]}),l.jsx("button",{children:"cancel"})]})]})]})]})}function Ql({icon:e,text:t}){return l.jsx("button",{className:"left-[1.75rem] top-[6rem] flex h-[3.5rem] w-[10.6875rem] items-center justify-center rounded-[0.625rem] bg-[#F7F7F7]",children:l.jsxs("div",{className:"flex flex-row items-center",children:[l.jsx(bi,{src:e,alt:t,className:"h-[1.75rem] w-[1.75rem]"}),l.jsx("p",{className:"text-[0.875rem] leading-[1.375rem] font-normal text-[#262E30]",children:t})]})})}function Yl({cx:e,cy:t,r:n,start:r,end:o,stroke:a="currentColor",strokeWidth:i=3,rounded:s=!0,clockwise:c=!0,className:u}){const d=function(e,t,n,r,o,a=!0){const i=e=>Math.PI/180*e,s=r=>[e+n*Math.cos(i(r)),t+n*Math.sin(i(r))],[l,c]=s(r),[u,d]=s(o);let f=((o-r)%360+360)%360;return a||(f=360-f),`M ${l} ${c} A ${n} ${n} 0 ${f>180?1:0} ${a?1:0} ${u} ${d}`}(e,t,n,r,o,c);return l.jsx("path",{d:d,fill:"none",stroke:a,strokeWidth:i,strokeLinecap:s?"round":"butt",className:u})}function Xl({level:e=3,activeColor:t="currentColor",inactiveColor:n="#DBDBDB",hideInactive:r=!1,innerWidth:o=4,outerWidth:a=4,dotRadius:i=4,width:s=25,...c}){const u=Math.max(0,Math.min(3,e)),d=e=>u>=e,f=e=>d(e)?t:n;return l.jsxs("svg",{viewBox:"0 0 60 40",width:s,"aria-label":`Wi-Fi level ${u} of 3`,...c,children:[(d(3)||!r)&&l.jsx(Yl,{cx:30,cy:30,r:22,start:225,end:315,stroke:f(3),strokeWidth:a}),(d(2)||!r)&&l.jsx(Yl,{cx:30,cy:30,r:12,start:225,end:315,stroke:f(2),strokeWidth:o}),(d(1)||!r)&&l.jsx("circle",{cx:30,cy:30,r:i,fill:d(1)?t:n})]})}function Jl(){return l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("div",{className:"flex flex-row",children:[l.jsx(bi,{src:"machine_icon.svg",alt:"machine icon"}),l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("div",{className:"flex flex-row",children:[l.jsx("div",{className:"",children:"Machine Name "}),l.jsx(Xl,{level:2,className:"h-5 w-5 text-black"})]}),l.jsx("div",{className:"flexflex-row",children:l.jsx("p",{children:" machine type | nozzle info"})})]}),l.jsx("div",{className:"ml-auto flex flex-col",children:l.jsx("p",{className:"md-auto",children:" setting icon"})})]}),l.jsxs("div",{className:"flex flex-row w-full items-center justify-between ",children:[l.jsx(Ql,{icon:"assistant.svg",text:"Assistant"}),l.jsx(Ql,{icon:"assistant.svg",text:"Timelapse"}),l.jsx(Ql,{icon:"assistant.svg",text:"File"})]})]})}const Zl=(...e)=>e.filter(Boolean).join(" ");function ec({ariaLabel:e,className:t,children:n,onClick:r}){return l.jsx("button",{type:"button","aria-label":e,onClick:r,className:Zl("inline-flex items-center justify-center rounded-full focus:outline-none","focus:ring-2 focus:ring-black/10 hover:bg-black/[0.05] active:bg-black/[0.10]",t),children:n})}function tc(e){const{className:t,...n}=e;return l.jsx("button",{...n,className:Zl("h-[2rem] rounded-[0.375rem] border border-[#C2C2C2]","px-[0.75rem] text-[0.875rem] leading-[1.375rem] text-[#1F1F1F]","hover:bg-black/[0.02] focus:outline-none focus:ring-2 focus:ring-gray-200",t)})}function nc({label:e,active:t,onClick:n}){return l.jsxs("button",{onClick:n,className:Zl("flex flex-1 items-center justify-center gap-[0.25rem] rounded-[0.5rem]","h-[2rem] px-[1rem] border transition-colors",t?"border-[#1F1F1F]":"border-[#DBDBDB]"),children:[l.jsx("span",{className:"text-[#1F1F1F] text-[0.875rem] leading-[1.375rem]",children:e}),t?l.jsxs("span",{className:"relative inline-block h-[1rem] w-[1rem]",children:[l.jsx("span",{className:"absolute inset-0 rounded-full bg-[#B6F34F]"}),l.jsx("svg",{className:"absolute left-[0.25rem] top-[0.3125rem]",width:"0.5rem",height:"0.4375rem",viewBox:"0 0 8 7",fill:"none",children:l.jsx("path",{d:"M2.83 6.37L0 3.54L1.41 2.13L2.82 3.54L6.36 0L7.77 1.41L2.83 6.37Z",fill:"black"})})]}):l.jsx("svg",{width:"1rem",height:"1rem",viewBox:"0 0 17 16",fill:"none",children:l.jsx("circle",{cx:"8.5",cy:"8",r:"7.5",stroke:"#C2C2C2"})})]})}function rc({className:e="h-[1rem] w-[1rem]"}){return l.jsx("svg",{viewBox:"0 0 24 24",className:e,"aria-hidden":!0,children:l.jsx("path",{d:"M6 6l12 12M18 6 6 18",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}function oc(){return l.jsx("svg",{width:"1.5rem",height:"0.9375rem",viewBox:"0 0 26 16",fill:"none",children:l.jsx("path",{d:"M11.3659 2.31579C12.1627 1.18658 13.8373 1.18658 14.6341 2.31579L20.3013 10.3469C21.2362 11.6717 20.2887 13.5 18.6672 13.5H7.33276C5.71129 13.5 4.76376 11.6717 5.69871 10.3469L11.3659 2.31579Z",fill:"#5C5C5C"})})}function ac(){return l.jsx("svg",{width:"1.5rem",height:"0.9375rem",viewBox:"0 0 26 16",fill:"none",children:l.jsx("path",{d:"M14.6341 13.6842C13.8373 14.8134 12.1627 14.8134 11.3659 13.6842L5.69871 5.65309C4.76376 4.32833 5.71129 2.5 7.33276 2.5L18.6672 2.5C20.2887 2.5 21.2362 4.32833 20.3013 5.65309L14.6341 13.6842Z",fill:"#5C5C5C"})})}function ic({title:e,onClose:t}){return l.jsxs("div",{className:"flex h-[2.875rem] items-center gap-[0.5rem] rounded-t-[0.5rem] bg-[#F8F8F8] px-[0.75rem]",children:[l.jsx("div",{className:"flex h-[1.375rem] w-[1.375rem] items-center justify-center text-black/80",children:l.jsx("svg",{viewBox:"0 0 22 22",className:"h-[1.375rem] w-[1.375rem]",children:l.jsx("path",{d:"M15.2462 10.4205C15.5654 10.7396 15.5654 11.2557 15.2462 11.5715L8.72713 18.094C8.40796 18.4131 7.89187 18.4131 7.5761 18.094C7.26033 17.7748 7.25694 17.2587 7.5761 16.9429L13.518 11.0011L7.57271 5.05579C7.25354 4.73663 7.25354 4.22054 7.57271 3.90477C7.89187 3.589 8.40796 3.5856 8.72373 3.90477L15.2462 10.4205Z",fill:"black"})})}),l.jsx($l,{asChild:!0,children:l.jsx("div",{className:"pl-[0.25rem]",children:l.jsx("span",{className:"font-bold text-[0.875rem] leading-[1.375rem] tracking-tight text-[#1F1F1F]",children:e})})}),l.jsx("div",{className:"ml-auto",children:l.jsx(Wl,{asChild:!0,children:l.jsx(ec,{ariaLabel:"Close",onClick:t,className:"h-[1.5rem] w-[1.5rem]",children:l.jsx(rc,{})})})})]})}function sc({align:e="left"}){const t="right"===e;return l.jsxs("div",{className:Zl("flex flex-col",t&&"items-end text-right"),children:[l.jsx("div",{className:"text-[#6B6B6B] text-[0.75rem] leading-[0.875rem]",children:"Nozzle"}),l.jsxs("div",{className:"mt-[0.25rem] flex items-end",children:[l.jsx("span",{className:"text-[#1F1F1F] text-[1.125rem] leading-[1.5rem] font-bold",children:t?"45":"210"}),l.jsx("span",{className:"text-[#1F1F1F] text-[0.875rem] leading-[1.375rem]",children:"℃"}),l.jsxs("span",{className:"ml-[0.25rem] text-[#262E30] text-[0.875rem] leading-[1.375rem]",children:["/",t?"45":"210","℃"]})]}),l.jsxs("div",{className:"mt-[0.5rem] text-[#262E30] text-[0.75rem] leading-[1rem]",children:["0.4 mm",l.jsx("br",{}),"Hardened",l.jsx("br",{}),"High Flow"]})]})}function lc(){return l.jsxs("div",{className:"relative h-[6.5rem] w-[4.5rem]",children:[l.jsx("div",{className:"absolute left-0 top-0 h-[6.5rem] w-[2.25rem] rounded bg-black/10"}),l.jsx("div",{className:"absolute left-[2.25rem] top-0 h-[6.5rem] w-[2.25rem] rounded bg-black/40",children:l.jsx("span",{className:"absolute left-1/2 top-1/2 block h-[0.75rem] w-[0.75rem] -translate-x-1/2 -translate-y-1/2 rounded-full bg-[#B6F34F]"})})]})}function cc({open:e,onClose:t,title:n="Nozzle & Extruder",portalContainer:r}){const o=p.useRef(null),[a,i]=p.useState("right");return p.useEffect(()=>{if(!e)return;const t=setTimeout(()=>{var e;return null==(e=o.current)?void 0:e.focus()},0);return()=>clearTimeout(t)},[e]),l.jsx(Dl,{open:e,onOpenChange:e=>{e||t()},modal:!1,children:l.jsx(Il,{container:r||void 0,children:l.jsxs(Bl,{onEscapeKeyDown:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),onPointerDownOutside:e=>e.preventDefault(),onFocusOutside:e=>e.preventDefault(),onOpenAutoFocus:e=>{var t;e.preventDefault(),null==(t=o.current)||t.focus()},ref:o,className:Zl("absolute left-0 top-0 z-[1000]","w-[34.125rem] min-h-[20.8125rem]","rounded-[0.5rem] bg-white border border-[#EBEBEB]","shadow-[0_0.5rem_1.5rem_rgba(0,0,0,0.12)] outline-none","flex flex-col overflow-hidden"),children:[l.jsx(ic,{title:n,onClose:t}),l.jsx("div",{className:"h-[0.0625rem] w-full bg-[#EBEBEB]"}),l.jsxs("div",{className:"flex gap-[1rem] px-[1rem] pt-[0.5rem]",children:[l.jsx(nc,{label:"Left",active:"left"===a,onClick:()=>i("left")}),l.jsx(nc,{label:"Right",active:"right"===a,onClick:()=>i("right")})]}),l.jsxs("div",{className:"grid grid-cols-[1fr_auto_1fr] gap-[1.25rem] px-[1rem] pt-[0.75rem]",children:[l.jsx(sc,{align:"left"}),l.jsxs("div",{className:"flex flex-col items-center",children:[l.jsx("div",{className:"mb-[0.25rem] text-[0.75rem] leading-[0.875rem] text-[#6B6B6B]",children:"Extruder"}),l.jsx("button",{type:"button",className:"grid h-[2.25rem] w-[2.25rem] place-items-center rounded-[0.625rem] bg-[#DBDBDB] active:translate-y-[0.0625rem]","aria-label":"Extruder up",children:l.jsx(oc,{})}),l.jsx("div",{className:"mt-[0.375rem]",children:l.jsx(lc,{})}),l.jsx("button",{type:"button",className:"mt-[0.375rem] grid h-[2.25rem] w-[2.25rem] place-items-center rounded-[0.625rem] bg-[#DBDBDB] active:translate-y-[0.0625rem]","aria-label":"Extruder down",children:l.jsx(ac,{})})]}),l.jsx(sc,{align:"right"})]}),l.jsx("div",{className:"px-[1rem] pt-[0.5rem]",children:l.jsx("p",{className:"text-center text-[0.875rem] leading-[1.375rem] text-[#1F1F1F]",children:"Switching Extruder…"})}),l.jsxs("div",{className:"mt-auto grid grid-cols-[1fr_auto_1fr] items-center px-[1rem] pb-[1rem] pt-[0.5rem]",children:[l.jsx("div",{className:"justify-self-start",children:l.jsx(tc,{onClick:()=>console.log("Read Nozzle Info"),children:"Read Nozzle Info"})}),l.jsxs("div",{className:"flex items-center gap-[0.75rem] justify-self-center",children:[l.jsx(tc,{onClick:()=>console.log("Stop"),children:"Stop"}),l.jsx(tc,{onClick:()=>console.log("Retry"),children:"Retry"})]}),l.jsx("div",{className:"justify-self-end"})]})]})})})}function uc(){const[e,t]=p.useState(!1),n=p.useRef(null);return l.jsx("div",{className:"p-[1.5rem]",children:l.jsxs("div",{ref:n,className:"relative inline-block",children:[l.jsx("button",{type:"button",onClick:()=>t(!0),className:"inline-flex items-center gap-[0.5rem] rounded-[0.5rem] bg-black px-[1rem] py-[0.5rem] text-white hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-black/20",children:"打开 Nozzle & Extruder"}),l.jsx(cc,{open:e,onClose:()=>t(!1),portalContainer:n.current})]})})}function dc(e,t,n,r,o,a,i){const s=Math.asin(i/n),l=Math.asin(i/r),c=e=>e*Math.PI/180,u=(n,r,o)=>[e+n*Math.cos(c(r)+o),t+n*Math.sin(c(r)+o)],[d,f]=u(r,o,l),[p,h]=u(r,o+a,-l),[m,g]=u(n,o+a,-s),[v,y]=u(n,o,s);return`M ${d} ${f} A ${r} ${r} 0 0 1 ${p} ${h}\n L ${m} ${g} A ${n} ${n} 0 0 0 ${v} ${y} Z`}function fc(){const e=65,t=110,n="7/220",r="hover:stroke-green-500 hover:stroke-2";return l.jsxs("div",{className:"relative aspect-square w-[13.75rem] ",children:[l.jsxs("svg",{viewBox:"0 0 220 220",className:"absolute w-full h-full",children:[l.jsx("path",{d:dc(110,110,e,t,-45,90,4),fill:"#EEEEEE",className:`${r}`,onClick:()=>console.log("clicked")}),l.jsx("text",{x:"197.5",y:"110",textAnchor:"middle",dominantBaseline:"middle",fontSize:"18",fill:"#111",children:" +X "}),l.jsx("path",{d:dc(110,110,e,t,45,90,4),fill:"#EEEEEE",className:`${r}`,onClick:()=>console.log("clicked")}),l.jsx("text",{x:"110",y:"197.5",textAnchor:"middle",dominantBaseline:"middle",fontSize:"18",fill:"#111",children:" -Y "}),l.jsx("path",{d:dc(110,110,e,t,135,90,4),fill:"#EEEEEE",className:`${r}`,onClick:()=>console.log("clicked")}),l.jsx("text",{x:"22.5",y:"110",textAnchor:"middle",dominantBaseline:"middle",fontSize:"18",fill:"#111",children:" -X "}),l.jsx("path",{d:dc(110,110,e,t,225,90,4),fill:"#EEEEEE",className:`${r}`,onClick:()=>console.log("clicked")}),l.jsx("text",{x:"110",y:"22.5",textAnchor:"middle",dominantBaseline:"middle",fontSize:"18",fill:"#111",children:" +Y "}),l.jsx("path",{d:dc(110,110,20,e,-45,90,4),fill:"#CECECE",className:`${r}`,onClick:()=>console.log("clicked")}),l.jsx("path",{d:dc(110,110,20,e,45,90,4),fill:"#CECECE",className:`${r}`,onClick:()=>console.log("clicked")}),l.jsx("path",{d:dc(110,110,20,e,135,90,4),fill:"#CECECE",className:`${r}`,onClick:()=>console.log("clicked")}),l.jsx("path",{d:dc(110,110,20,e,225,90,4),fill:"#CECECE",className:`${r}`,onClick:()=>console.log("clicked")})]}),l.jsxs("div",{className:`flex flex-col h-full transform translate-x-${n} translate-y-${n} rotate-45 origin-center pointer-events-none`,children:[l.jsx("div",{className:"absolute left-1/2 top-0 h-9/44 flex items-center",children:l.jsx("p",{children:"+10"})}),l.jsx("div",{className:"absolute left-1/2 top-9/44 h-9/44 flex items-center",children:l.jsx("p",{children:"+1"})}),l.jsx("div",{className:"absolute left-1/2 bottom-9/44 h-9/44 flex items-center",children:l.jsx("p",{children:"-1"})}),l.jsx("div",{className:"absolute left-1/2 bottom-0 h-9/44 flex items-center",children:l.jsx("p",{children:"-10"})})]})]})}function pc({title:e,onClose:t}){return l.jsxs("div",{className:"absolute left-0 top-0 flex h-[2.875rem] w-full items-center gap-2 rounded-t-lg bg-[#F8F8F8] px-3",children:[l.jsx("div",{className:"flex h-[1.375rem] w-[1.375rem] items-center justify-center text-black/80",children:l.jsx("svg",{viewBox:"0 0 24 24",className:"h-[1.125rem] w-[1.125rem]",children:l.jsx("path",{d:"M9 6l6 6-6 6",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),l.jsx($l,{asChild:!0,children:l.jsx("div",{className:"relative pl-1",children:l.jsx("span",{className:"font-bold text-[0.875rem] leading-[1.375rem] tracking-tight text-[#1F1F1F]",children:e})})}),l.jsx("div",{className:"ml-auto flex items-center",children:l.jsx(Wl,{asChild:!0,children:l.jsx("button",{type:"button","aria-label":"Close",onClick:t,className:"inline-flex h-6 w-6 items-center justify-center rounded-full hover:bg-black/5 active:bg-black/10 focus:outline-none focus:ring-2 focus:ring-black/10"})})})]})}function hc(){return l.jsxs("div",{className:"flex flex-col w-[9.75rem] gap-[0.75rem]",children:[l.jsx("div",{className:"text-center text-[0.875rem] leading-[1.375rem] text-[#6B6B6B]",children:"Bed"}),l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("div",{className:"flex flex-row h-[3.25rem] rounded-t-md bg-gray-400 items-center justify-center",children:[l.jsx("p",{children:"Up"}),l.jsx("p",{children:"+10"})]}),l.jsxs("div",{className:" flex flex-row h-[3.25rem] bg-gray-200 items-center justify-center",children:[l.jsx("p",{children:"Up"}),l.jsx("p",{children:"+1"})]})]}),l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("div",{className:"flex flex-row h-[3.25rem] bg-gray-200 items-center justify-center",children:[l.jsx("p",{children:"Down"}),l.jsx("p",{children:"-1"})]}),l.jsxs("div",{className:"flex flex-row h-[3.25rem] rounded-b-md bg-gray-400 items-center justify-center",children:[l.jsx("p",{children:"Down"}),l.jsx("p",{children:"-10"})]})]})]})}function mc({open:e,onClose:t,onHome:n,onJog:r,title:o="Motion:XYZ",portalContainer:a}){const i=p.useRef(null);p.useEffect(()=>{if(!e)return;const t=setTimeout(()=>{var e;return null==(e=i.current)?void 0:e.focus()},0);return()=>clearTimeout(t)},[e]);return l.jsx(Dl,{open:e,onOpenChange:e=>{e||t()},modal:!1,children:l.jsx(Il,{container:a||void 0,children:l.jsxs(Bl,{onEscapeKeyDown:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),onPointerDownOutside:e=>e.preventDefault(),onFocusOutside:e=>e.preventDefault(),onOpenAutoFocus:e=>{var t;e.preventDefault(),null==(t=i.current)||t.focus()},className:["absolute left-0 top-0 z-[1000]","w-[34.125rem] h-[20.8125rem]","rounded-lg bg-white shadow-[0_0.375rem_1rem_rgba(0,0,0,0.12)] outline-none","focus-visible:ring-2 focus-visible:ring-black/10"].join(" "),ref:i,onKeyDown:e=>{const t=e.shiftKey?10:1;"ArrowUp"===e.key?null==r||r("y",+t):"ArrowDown"===e.key?null==r||r("y",-t):"ArrowLeft"===e.key?null==r||r("x",-t):"ArrowRight"===e.key?null==r||r("x",+t):"h"===e.key.toLowerCase()&&(null==n||n())},children:[l.jsx(pc,{title:o,onClose:t}),l.jsxs("div",{className:"flex flex-row",children:[l.jsx(fc,{}),l.jsx(hc,{})]}),l.jsx("div",{className:"absolute left-0 top-[2.875rem] h-px w-full border-t border-[#EBEBEB]"}),l.jsx("div",{className:"absolute left-[9.625rem] top-[3.8125rem] h-[1.375rem] w-[3.6875rem] text-center text-[0.875rem] leading-[1.375rem] text-[#6B6B6B]",children:"Toolhead"}),l.jsx("div",{className:"absolute left-[4.625rem] top-[5.5rem]"})]})})})}function gc(){const[e,t]=p.useState(!1),n=p.useRef(null);return l.jsx("div",{className:"p-6",children:l.jsxs("div",{ref:n,className:"relative inline-block",children:[l.jsx("button",{type:"button",onClick:()=>t(!0),className:"inline-flex items-center gap-2 rounded-lg px-4 py-2 bg-black text-white hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-black/20",children:"打开 Motion: XYZ"}),l.jsx(mc,{open:e,onClose:()=>t(!1),onHome:()=>console.log("home"),onJog:(e,t)=>console.log("jog",e,t),portalContainer:n.current})]})})}const vc=Nn("/app")({component:function(){return l.jsxs("div",{className:"flex flex-row h-full",children:[l.jsxs("div",{className:"flex-col w-[6.25rem] h-full",children:[l.jsx(ki,{}),l.jsx("p",{className:"text-body",children:" hello world "})]}),l.jsx("div",{className:"flex flex-col w-[18.75rem] h-[25rem] min-w-[18.75rem] min-h-[25rem]",children:l.jsxs(Si,{children:[l.jsx(Jl,{}),l.jsx(uc,{}),l.jsx(gc,{})]})}),l.jsxs("div",{className:"flex flex-col flex-1",children:[l.jsx("div",{className:"flex-1",children:l.jsx(Kl,{})}),l.jsx("div",{className:"h-[3.125rem]",children:l.jsx(Gl,{})})]})]})}});const yc=Nn("/about")({component:function(){return l.jsx("div",{children:'Hello "/about"!'})}});function xc({className:e="h-4 w-4"}){return l.jsx("svg",{viewBox:"0 0 24 24",className:e,"aria-hidden":!0,children:l.jsx("path",{d:"M6 6l12 12M18 6 6 18",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})}function bc({className:e="h-4 w-4"}){return l.jsx("svg",{viewBox:"0 0 24 24",className:e,"aria-hidden":!0,children:l.jsx("path",{d:"M9 6l6 6-6 6",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}function wc({className:e="h-3 w-3"}){return l.jsx("svg",{viewBox:"0 0 24 24",className:e,"aria-hidden":!0,children:l.jsx("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",fill:"none"})})}function Sc({className:e="h-3 w-3"}){return l.jsxs("svg",{viewBox:"0 0 24 24",className:e,"aria-hidden":!0,children:[l.jsx("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",fill:"none"}),l.jsx("circle",{cx:"12",cy:"12",r:"5",fill:"#8BC34A"})]})}function kc({className:e="h-3 w-3"}){return l.jsxs("svg",{viewBox:"0 0 24 24",className:e,"aria-hidden":!0,children:[l.jsx("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25z",fill:"currentColor"}),l.jsx("path",{d:"M20.71 7.04a1 1 0 0 0 0-1.41L18.37 3.29a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z",fill:"currentColor"})]})}function Cc({className:e="h-4 w-4"}){return l.jsx("svg",{viewBox:"0 0 24 24",className:e,"aria-hidden":!0,children:l.jsx("path",{d:"M12 6l8 12H4z",fill:"currentColor"})})}function Nc({className:e="h-4 w-4"}){return l.jsx("svg",{viewBox:"0 0 24 24",className:e,"aria-hidden":!0,children:l.jsx("path",{d:"M12 18L4 6h16z",fill:"currentColor"})})}function jc({title:e,onClose:t}){return l.jsxs("div",{className:"absolute left-0 top-0 flex h-[2.875rem] w-full items-center gap-2 rounded-t-lg bg-[#F8F8F8] px-3",children:[l.jsx("div",{className:"flex h-[1.375rem] w-[1.375rem] items-center justify-center text-black/80",children:l.jsx(bc,{className:"h-[1.125rem] w-[1.125rem]"})}),l.jsx($l,{asChild:!0,children:l.jsx("div",{className:"relative pl-1",children:l.jsx("span",{className:"font-semibold text-[0.875rem] leading-[1.375rem] tracking-tight text-[#1F1F1F]",children:e})})}),l.jsx("div",{className:"ml-auto flex items-center",children:l.jsx(Wl,{asChild:!0,children:l.jsx("button",{type:"button","aria-label":"Close",onClick:t,className:"inline-flex h-6 w-6 items-center justify-center rounded-full hover:bg-black/5 active:bg-black/10 focus:outline-none focus:ring-2 focus:ring-black/10",children:l.jsx(xc,{className:"h-4 w-4 text-black"})})})})]})}function _c({open:e,onClose:t,portalContainer:n,title:r="Nozzle & Extruder"}){const o=p.useRef(null),[a,i]=p.useState("right");p.useEffect(()=>{if(!e)return;const t=setTimeout(()=>{var e;return null==(e=o.current)?void 0:e.focus()},0);return()=>clearTimeout(t)},[e]);const s=({which:e})=>{const t=a===e,n=t?"border border-[#2E2E2E] text-[#111] shadow-[0_0_0_1px_#2E2E2E_inset] bg-white":"border border-[#E4E4E4] text-[#444] bg-white shadow-[inset_0_0_0_1px_rgba(0,0,0,0.02)]";return l.jsxs("button",{type:"button","aria-pressed":t,onClick:()=>i(e),className:["flex-1 h-[2rem] rounded-[0.5rem] text-[0.875rem] flex items-center justify-center gap-2 transition-colors",n].join(" "),children:[l.jsx("span",{className:"capitalize",children:e}),t?l.jsx(Sc,{className:"h-3.5 w-3.5"}):l.jsx(wc,{className:"h-3.5 w-3.5 opacity-70"})]})},c="h-[1.875rem] rounded-[0.375rem] border text-[0.875rem] bg-white transition active:scale-95 active:bg-gray-100 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-300";return l.jsx(Dl,{open:e,onOpenChange:e=>{e||t()},modal:!1,children:l.jsx(Il,{container:n||void 0,children:l.jsxs(Bl,{ref:o,onEscapeKeyDown:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),onPointerDownOutside:e=>e.preventDefault(),onFocusOutside:e=>e.preventDefault(),onOpenAutoFocus:e=>{var t;e.preventDefault(),null==(t=o.current)||t.focus()},className:"absolute left-0 top-0 z-[1000] w-[34.125rem] h-[20.8125rem] rounded-lg bg-white shadow-[0_0.5rem_1.5rem_rgba(0,0,0,0.12)] outline-none",children:[l.jsx(jc,{title:r,onClose:t}),l.jsx("div",{className:"absolute left-0 top-[2rem] h-px w-full border-t border-[#EBEBEB]"}),l.jsxs("div",{className:"absolute left-[1.25rem] right-[1.25rem] top-[3.5rem] flex items-center justify-between gap-[1.5rem]",children:[l.jsx(s,{which:"left"}),l.jsx(s,{which:"right"})]}),l.jsxs("div",{className:"absolute left-[1.25rem] right-[1.25rem] top-[6rem] bottom-[4.25rem] grid grid-cols-3 gap-[1.25rem] text-[0.875rem] text-[#333]",children:[l.jsxs("section",{className:"self-center",children:[l.jsx("div",{className:"text-[#6B7280] mb-1",children:"Nozzle"}),l.jsxs("div",{className:"flex items-baseline gap-1 mb-2",children:[l.jsx("span",{className:"text-[2rem] leading-none font-extrabold tracking-tight",children:"210"}),l.jsx("span",{className:"text-[1rem]",children:"℃"}),l.jsx("span",{className:"text-[#6B7280]",children:"/210℃"})]}),l.jsxs("ul",{className:"space-y-[0.125rem] text-[#4B5563]",children:[l.jsx("li",{children:"0.4 mm"}),l.jsx("li",{children:"Hardened"}),l.jsxs("li",{className:"inline-flex items-center gap-1",children:["High Flow ",l.jsx(kc,{className:"h-3 w-3 opacity-80"})]})]})]}),l.jsxs("section",{className:"relative flex flex-col items-center justify-center",children:[l.jsxs("div",{className:"relative w-[8.75rem] h-[7rem] opacity-95",children:[l.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 top-0 w-10 h-2 rounded bg-[#BDBDBD]"}),l.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 top-3 w-24 h-4 rounded bg-[#AFAFAF]"}),l.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 top-7 w-28 h-16 rounded bg-[#D3D3D3]"}),l.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 top-[3.9rem] w-3 h-9 rounded bg-[#555]"}),l.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 top-[2.6rem] w-6 h-6 rounded-full bg-[#1F1F1F]"}),l.jsx("div",{className:"absolute left-[55%] top-[3.1rem] w-3 h-3 rounded-full",style:{backgroundColor:"#9ED36A"}})]}),l.jsxs("div",{className:"absolute right-[-2rem] top-1/2 -translate-y-1/2 flex flex-col items-center gap-2",children:[l.jsx("div",{className:"text-[0.75rem] text-[#6B7280] mb-1",children:"Extruder"}),l.jsx("button",{className:"h-8 w-8 rounded-[0.5rem] bg-[#EDEDED] text-[#333] grid place-items-center shadow active:scale-95",children:l.jsx(Cc,{className:"h-4 w-4"})}),l.jsx("button",{className:"h-8 w-8 rounded-[0.5rem] bg-[#EDEDED] text-[#333] grid place-items-center shadow active:scale-95",children:l.jsx(Nc,{className:"h-4 w-4"})})]})]}),l.jsxs("section",{className:"self-center text-right",children:[l.jsx("div",{className:"text-[#6B7280] mb-1",children:"Nozzle"}),l.jsxs("div",{className:"flex items-baseline justify-end gap-1 mb-2",children:[l.jsx("span",{className:"text-[2rem] leading-none font-extrabold tracking-tight",children:"45"}),l.jsx("span",{className:"text-[1rem]",children:"℃"}),l.jsx("span",{className:"text-[#6B7280]",children:"/45℃"})]}),l.jsxs("ul",{className:"space-y-[0.125rem] text-[#4B5563]",children:[l.jsx("li",{children:"0.4 mm"}),l.jsx("li",{children:"Hardened"}),l.jsxs("li",{className:"inline-flex items-center gap-1 justify-end",children:["High Flow ",l.jsx(kc,{className:"h-3 w-3 opacity-80"})]})]})]})]}),l.jsx("div",{className:"absolute left-1/2 -translate-x-1/2 bottom-[3.75rem] text-[0.875rem] text-[#2B2B2B]",children:"Switching Extruder..."}),l.jsxs("div",{className:"absolute left-[1.25rem] right-[1.25rem] bottom-[1.25rem] grid grid-cols-3 items-center",children:[l.jsx("div",{className:"justify-self-start",children:l.jsx("button",{onClick:()=>{console.log("Read Nozzle Info clicked")},className:`${c} px-[0.75rem] border-[#D5D5D5] shadow-sm`,children:"Read Nozzle Info"})}),l.jsxs("div",{className:"justify-self-center flex items-center gap-2",children:[l.jsx("button",{onClick:()=>{console.log("Stop clicked")},className:`${c} w-[4.25rem] border-[#C2C2C2]`,children:"Stop"}),l.jsx("button",{onClick:()=>{console.log("Retry clicked")},className:`${c} w-[4.25rem] border-[#C2C2C2]`,children:"Retry"})]}),l.jsx("div",{})]})]})})})}function Ec(){const[e,t]=p.useState(!1),n=p.useRef(null);return l.jsx("div",{className:"p-6",children:l.jsxs("div",{ref:n,className:"relative inline-block",children:[l.jsx("button",{type:"button",onClick:()=>t(!0),className:"inline-flex items-center gap-2 rounded-lg px-4 py-2 bg-black text-white hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-black/20",children:"打开设计稿弹窗"}),l.jsx(_c,{open:e,onClose:()=>t(!1),portalContainer:n.current})]})})}function Pc(e,t){if(!e.current||!t.current)return[0,0];const n=e.current.getBoundingClientRect(),r=t.current.getBoundingClientRect();return[r.left+r.width/2-n.left,r.top+r.height/2-n.top]}function Rc(e,t){if(!e.current||!t.current)return[0,0];const n=e.current.getBoundingClientRect(),r=t.current.getBoundingClientRect();return[r.left+r.width/2-n.left,r.top+r.height-n.top]}function Lc({percent:e,slotRef:t,className:n}){return l.jsxs("div",{ref:t,className:`flex flex-col ${n}`,children:[l.jsx("div",{className:"flex items-center justify-center w-[3.25rem] h-[0.5rem]",children:l.jsx(ql,{percent:e,fg_color:"bg-[#FF8181]",className:"h-[0.25rem] w-[1.75rem]"})}),l.jsxs("div",{className:"relative w-[3.25rem] h-[5rem]",children:[l.jsx("div",{className:"absolute left-0 top-0 w-[0.3125rem] h-[5rem] bg-gray-200 rounded-[2.5rem]"}),l.jsx("div",{className:"absolute right-0 top-0 w-[0.3125rem] h-[5rem] bg-gray-200 rounded-[2.5rem]"}),l.jsx("div",{className:"absolute left-[0.3125rem] right-[0.3125rem] top-[0.5rem] bottom-[0.5rem] bg-gray-200 border-gray-200 z-0"}),l.jsx("div",{className:"absolute left-[0.3125rem] right-[0.3125rem] top-[0.625rem] bottom-[0.625rem] bg-red-300 border border-gray-200"}),l.jsxs("div",{className:"absolute left-[0.3125rem] right-[0.3125rem] top-[0.625rem] bottom-[0.625rem] flex flex-col justify-center items-center",children:[l.jsx("p",{className:"slot-id-text",children:" hello"}),l.jsx("p",{className:"slot-filament-text",children:" world"}),l.jsx(bi,{src:"slot_icon.svg",alt:"slot_icon"})]})]})]})}function Fc(){const e=p.useRef(null),t=p.useRef(null),n=p.useRef(null),r=p.useRef(null),o=p.useRef(null),a=p.useRef(null),[i,s]=p.useState(""),[c,u]=p.useState(""),[d,f]=p.useState("0 0 262 168"),h=function(e){const t=p.useRef(e);t.current=e;const n=p.useRef(null);return p.useEffect(()=>()=>{null!=n.current&&(cancelAnimationFrame(n.current),n.current=null)},[]),function(...e){null==n.current&&(n.current=requestAnimationFrame(()=>{n.current=null,t.current.apply(this,e)}))}}(()=>{const[i,l]=Pc(e,t),[c,d]=Pc(e,n),[p,h]=Pc(e,r),[m,g]=Pc(e,o),[v,y]=function(e,t){if(!e.current||!t.current)return[0,0];const n=e.current.getBoundingClientRect(),r=t.current.getBoundingClientRect();return[r.left-n.left,r.top+r.height/2-n.top]}(e,a),[x,b]=function(e,t){if(!e.current||!t.current)return[0,0];const n=e.current.getBoundingClientRect(),r=t.current.getBoundingClientRect();return[r.left+r.width-n.left,r.top+r.height/2-n.top]}(e,a),[w,S]=Rc(e,a),[k,C]=Rc(e,e);s(`M ${i} ${l} V ${y} H ${v}M ${c} ${d} V ${y} H ${v}M ${p} ${h} V ${b} H ${x}M ${m} ${g} V ${b} H ${x}M ${w} ${S} V ${C} H ${k}`);if(u(`M ${i} ${l} V ${y} H ${v} M ${w} ${S} V ${C} H ${k} `),e.current){const t=e.current.getBoundingClientRect();f(`0 0 ${t.width} ${t.height}`)}});return p.useLayoutEffect(()=>{h(),window.addEventListener("resize",h,{passive:!0}),window.addEventListener("scroll",h,{passive:!0});const i=new ResizeObserver(h);return[e.current,t.current,n.current,r.current,o.current,a.current].filter(Boolean).forEach(e=>i.observe(e)),()=>{window.removeEventListener("resize",h),window.removeEventListener("scroll",h),i.disconnect()}},[]),l.jsxs("div",{ref:e,className:"relative w-[16.375rem] h-[10.5rem]",children:[l.jsx("div",{className:"absolute inset-x-0 top-[1rem] bottom-0 bg-[rgb(248,248,248)] rounded-md"}),l.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[9.3125rem] h-[2rem] bg-white rounded-full flex flex-row",children:l.jsx("p",{children:"AMS-A"})}),l.jsx("div",{className:"absolute inset-x-0 bottom-0 w-full h-[1.75rem] bg-[rgb(235,235,235)] rounded-b-md/"}),l.jsx("svg",{viewBox:d,className:"absolute w-full h-full",children:l.jsx("path",{d:i,fill:"none",stroke:"#111",strokeWidth:"2"})}),c.length>0&&l.jsx("svg",{viewBox:d,className:"absolute w-full h-full",children:l.jsx("path",{d:c,fill:"none",stroke:"#ABAB00",strokeWidth:"6"})}),l.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[9.3125rem] h-[2rem] bg-white rounded-full flex flex-row",children:l.jsx("p",{children:"dry"})}),l.jsx("div",{ref:a,className:"absolute bottom-[0.5rem] left-1/2 -translate-x-1/2 w-[1.75rem] h-[0.75rem] bg-[rgb(194,194,194)]"}),l.jsxs("div",{className:"absolute top-[2.75rem] left-[1rem] right-[1rem] flex flex-row justify-evenly items-center",children:[l.jsx(Lc,{slotRef:t,percent:10}),l.jsx(Lc,{slotRef:n,percent:20}),l.jsx(Lc,{slotRef:r,percent:50}),l.jsx(Lc,{slotRef:o,percent:70})]})]})}function Ac(){return l.jsxs("div",{className:"relative w-[10.25rem] h-[13rem]",children:[l.jsxs("svg",{viewBox:"0 0 56 158",fill:"none",className:"absolute top-[1.375rem] left-1/2 -translate-x-1/2 w-[3.5rem] h-[9.875rem]",children:[l.jsx("rect",{x:"18",width:"20",height:"158",rx:"10",fill:"#DBDBDB"}),l.jsx("path",{d:"M38 17L56 19V32L38 34V17Z",fill:"#C2C2C2"}),l.jsx("path",{d:"M18 17L0 19V32L18 34V17Z",fill:"#C2C2C2"}),l.jsx("path",{d:"M38 123L56 125V138L38 140V123Z",fill:"#C2C2C2"}),l.jsx("path",{d:"M18 123L0 125V138L18 140V123Z",fill:"#C2C2C2"})]}),l.jsx(Lc,{percent:10,className:"absolute top-0 left-[0.2rem]"}),l.jsx(Lc,{percent:10,className:"absolute top-0 right-[0.2rem]"}),l.jsx(Lc,{percent:10,className:"absolute top-[6.875rem] left-[0.2rem]"}),l.jsx(Lc,{percent:10,className:"absolute top-[6.875rem] right-[0.2rem]"})]})}var Mc=p.createContext(void 0);function Tc(e){const t=p.useContext(Mc);return e||t||"ltr"}var Dc="rovingFocusGroup.onEntryFocus",Oc={bubbles:!1,cancelable:!0},Ic="RovingFocusGroup",[zc,Bc,$c]=function(e){const t=e+"CollectionProvider",[n,r]=Ei(t),[o,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{const{scope:t,children:n}=e,r=h.useRef(null),a=h.useRef(new Map).current;return l.jsx(o,{scope:t,itemMap:a,collectionRef:r,children:n})};i.displayName=t;const s=e+"CollectionSlot",c=Di(s),u=h.forwardRef((e,t)=>{const{scope:n,children:r}=e,o=_i(t,a(s,n).collectionRef);return l.jsx(c,{ref:o,children:r})});u.displayName=s;const d=e+"CollectionItemSlot",f="data-radix-collection-item",p=Di(d),m=h.forwardRef((e,t)=>{const{scope:n,children:r,...o}=e,i=h.useRef(null),s=_i(t,i),c=a(d,n);return h.useEffect(()=>(c.itemMap.set(i,{ref:i,...o}),()=>{c.itemMap.delete(i)})),l.jsx(p,{[f]:"",ref:s,children:r})});return m.displayName=d,[{Provider:i,Slot:u,ItemSlot:m},function(t){const n=a(e+"CollectionConsumer",t);return h.useCallback(()=>{const e=n.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${f}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])},r]}(Ic),[Wc,Uc]=Ei(Ic,[$c]),[Vc,Hc]=Wc(Ic),Kc=p.forwardRef((e,t)=>l.jsx(zc.Provider,{scope:e.__scopeRovingFocusGroup,children:l.jsx(zc.Slot,{scope:e.__scopeRovingFocusGroup,children:l.jsx(qc,{...e,ref:t})})}));Kc.displayName=Ic;var qc=p.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:a,currentTabStopId:i,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:u,preventScrollOnEntryFocus:d=!1,...f}=e,h=p.useRef(null),m=_i(t,h),g=Tc(a),[v,y]=Ti({prop:i,defaultProp:s??null,onChange:c,caller:Ic}),[x,b]=p.useState(!1),w=$i(u),S=Bc(n),k=p.useRef(!1),[C,N]=p.useState(0);return p.useEffect(()=>{const e=h.current;if(e)return e.addEventListener(Dc,w),()=>e.removeEventListener(Dc,w)},[w]),l.jsx(Vc,{scope:n,orientation:r,dir:g,loop:o,currentTabStopId:v,onItemFocus:p.useCallback(e=>y(e),[y]),onItemShiftTab:p.useCallback(()=>b(!0),[]),onFocusableItemAdd:p.useCallback(()=>N(e=>e+1),[]),onFocusableItemRemove:p.useCallback(()=>N(e=>e-1),[]),children:l.jsx(Bi.div,{tabIndex:x||0===C?-1:0,"data-orientation":r,...f,ref:m,style:{outline:"none",...e.style},onMouseDown:Ci(e.onMouseDown,()=>{k.current=!0}),onFocus:Ci(e.onFocus,e=>{const t=!k.current;if(e.target===e.currentTarget&&t&&!x){const t=new CustomEvent(Dc,Oc);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){const e=S().filter(e=>e.focusable);Xc([e.find(e=>e.active),e.find(e=>e.id===v),...e].filter(Boolean).map(e=>e.ref.current),d)}}k.current=!1}),onBlur:Ci(e.onBlur,()=>b(!1))})})}),Gc="RovingFocusGroupItem",Qc=p.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:a,children:i,...s}=e,c=Ai(),u=a||c,d=Hc(Gc,n),f=d.currentTabStopId===u,h=Bc(n),{onFocusableItemAdd:m,onFocusableItemRemove:g,currentTabStopId:v}=d;return p.useEffect(()=>{if(r)return m(),()=>g()},[r,m,g]),l.jsx(zc.ItemSlot,{scope:n,id:u,focusable:r,active:o,children:l.jsx(Bi.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...s,ref:t,onMouseDown:Ci(e.onMouseDown,e=>{r?d.onItemFocus(u):e.preventDefault()}),onFocus:Ci(e.onFocus,()=>d.onItemFocus(u)),onKeyDown:Ci(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void d.onItemShiftTab();if(e.target!==e.currentTarget)return;const t=function(e,t,n){const r=function(e,t){return"rtl"!==t?e:"ArrowLeft"===e?"ArrowRight":"ArrowRight"===e?"ArrowLeft":e}(e.key,n);return"vertical"===t&&["ArrowLeft","ArrowRight"].includes(r)||"horizontal"===t&&["ArrowUp","ArrowDown"].includes(r)?void 0:Yc[r]}(e,d.orientation,d.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){"prev"===t&&o.reverse();const a=o.indexOf(e.currentTarget);o=d.loop?(r=a+1,(n=o).map((e,t)=>n[(r+t)%n.length])):o.slice(a+1)}setTimeout(()=>Xc(o))}var n,r}),children:"function"==typeof i?i({isCurrentTabStop:f,hasTabStop:null!=v}):i})})});Qc.displayName=Gc;var Yc={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Xc(e,t=!1){const n=document.activeElement;for(const r of e){if(r===n)return;if(r.focus({preventScroll:t}),document.activeElement!==n)return}}var Jc=Kc,Zc=Qc,eu="Radio",[tu,nu]=Ei(eu),[ru,ou]=tu(eu),au=p.forwardRef((e,t)=>{const{__scopeRadio:n,name:r,checked:o=!1,required:a,disabled:i,value:s="on",onCheck:c,form:u,...d}=e,[f,h]=p.useState(null),m=_i(t,e=>h(e)),g=p.useRef(!1),v=!f||(u||!!f.closest("form"));return l.jsxs(ru,{scope:n,checked:o,disabled:i,children:[l.jsx(Bi.button,{type:"button",role:"radio","aria-checked":o,"data-state":cu(o),"data-disabled":i?"":void 0,disabled:i,value:s,...d,ref:m,onClick:Ci(e.onClick,e=>{o||null==c||c(),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})}),v&&l.jsx(lu,{control:f,bubbles:!g.current,name:r,value:s,checked:o,required:a,disabled:i,form:u,style:{transform:"translateX(-100%)"}})]})});au.displayName=eu;var iu="RadioIndicator",su=p.forwardRef((e,t)=>{const{__scopeRadio:n,forceMount:r,...o}=e,a=ou(iu,n);return l.jsx(ss,{present:r||a.checked,children:l.jsx(Bi.span,{"data-state":cu(a.checked),"data-disabled":a.disabled?"":void 0,...o,ref:t})})});su.displayName=iu;var lu=p.forwardRef(({__scopeRadio:e,control:t,checked:n,bubbles:r=!0,...o},a)=>{const i=p.useRef(null),s=_i(i,a),c=function(e){const t=p.useRef({value:e,previous:e});return p.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}(n),u=function(e){const[t,n]=p.useState(void 0);return Ri(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const t=new ResizeObserver(t=>{if(!Array.isArray(t))return;if(!t.length)return;const r=t[0];let o,a;if("borderBoxSize"in r){const e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;o=t.inlineSize,a=t.blockSize}else o=e.offsetWidth,a=e.offsetHeight;n({width:o,height:a})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)},[e]),t}(t);return p.useEffect(()=>{const e=i.current;if(!e)return;const t=window.HTMLInputElement.prototype,o=Object.getOwnPropertyDescriptor(t,"checked").set;if(c!==n&&o){const t=new Event("click",{bubbles:r});o.call(e,n),e.dispatchEvent(t)}},[c,n,r]),l.jsx(Bi.input,{type:"radio","aria-hidden":!0,defaultChecked:n,...o,tabIndex:-1,ref:s,style:{...o.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function cu(e){return e?"checked":"unchecked"}lu.displayName="RadioBubbleInput";var uu=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],du="RadioGroup",[fu]=Ei(du,[Uc,nu]),pu=Uc(),hu=nu(),[mu,gu]=fu(du),vu=p.forwardRef((e,t)=>{const{__scopeRadioGroup:n,name:r,defaultValue:o,value:a,required:i=!1,disabled:s=!1,orientation:c,dir:u,loop:d=!0,onValueChange:f,...p}=e,h=pu(n),m=Tc(u),[g,v]=Ti({prop:a,defaultProp:o??null,onChange:f,caller:du});return l.jsx(mu,{scope:n,name:r,required:i,disabled:s,value:g,onValueChange:v,children:l.jsx(Jc,{asChild:!0,...h,orientation:c,dir:m,loop:d,children:l.jsx(Bi.div,{role:"radiogroup","aria-required":i,"aria-orientation":c,"data-disabled":s?"":void 0,dir:m,...p,ref:t})})})});vu.displayName=du;var yu="RadioGroupItem",xu=p.forwardRef((e,t)=>{const{__scopeRadioGroup:n,disabled:r,...o}=e,a=gu(yu,n),i=a.disabled||r,s=pu(n),c=hu(n),u=p.useRef(null),d=_i(t,u),f=a.value===o.value,h=p.useRef(!1);return p.useEffect(()=>{const e=e=>{uu.includes(e.key)&&(h.current=!0)},t=()=>h.current=!1;return document.addEventListener("keydown",e),document.addEventListener("keyup",t),()=>{document.removeEventListener("keydown",e),document.removeEventListener("keyup",t)}},[]),l.jsx(Zc,{asChild:!0,...s,focusable:!i,active:f,children:l.jsx(au,{disabled:i,required:a.required,checked:f,...c,...o,name:a.name,ref:d,onCheck:()=>a.onValueChange(o.value),onKeyDown:Ci(e=>{"Enter"===e.key&&e.preventDefault()}),onFocus:Ci(o.onFocus,()=>{var e;h.current&&(null==(e=u.current)||e.click())})})})});xu.displayName=yu;var bu=p.forwardRef((e,t)=>{const{__scopeRadioGroup:n,...r}=e,o=hu(n);return l.jsx(su,{...o,...r,ref:t})});bu.displayName="RadioGroupIndicator";var wu=vu,Su=xu,ku=bu;function Cu(){return l.jsxs("div",{className:"flex flex-row w-[8rem]",children:[l.jsx("p",{children:"123"}),l.jsx("p",{children:"℃"}),l.jsx("p",{children:"/"}),l.jsx("input",{type:"number",placeholder:"temp",className:"w-[3rem]"}),l.jsx("p",{children:"℃"})]})}function Nu(){return l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("div",{className:"flex flex-row justify-between items-center",children:[l.jsx("h1",{children:"Extuder & Nozzle"}),l.jsx("p",{children:"Nozzle Settings"})]}),l.jsxs("div",{className:"flex flex-row items-center justify-between",children:[l.jsxs("div",{className:"flex flex-col",children:[l.jsx("p",{children:"Left Nozzle"}),l.jsx(Cu,{}),l.jsx("p",{children:"Nozzle Diameter & Flow"})]}),l.jsxs("div",{className:"flex flex-col items-center justify-between",children:[l.jsx(wi,{icon:"up",hover:"up",active:"up"}),l.jsx(wi,{icon:"down",hover:"down",active:"down"})]}),l.jsx(bi,{src:"extuder.svg",alt:"Nozzle"}),l.jsx(bi,{src:"extuder.svg",alt:"Nozzle"}),l.jsxs("div",{className:"flex flex-col items-center justify-between",children:[l.jsx(wi,{icon:"up",hover:"up",active:"up"}),l.jsx(wi,{icon:"down",hover:"down",active:"down"})]}),l.jsxs("div",{className:"flex flex-col",children:[l.jsx("p",{children:"Right Nozzle"}),l.jsx(Cu,{}),l.jsx("p",{children:"Nozzle Diameter & Flow"})]})]}),l.jsx("div",{className:"flex flex-row items-center justify-evenly",children:l.jsxs(wu,{className:"flex flex-row gap-2.5",defaultValue:"default",children:[l.jsxs("div",{className:"flex items-center",children:[l.jsx(Su,{className:"",value:"default",id:"r1",children:l.jsx(ku,{className:"relative flex size-full items-center justify-center after:block after:size-[11px] after:rounded-full after:bg-violet11"})}),l.jsx("label",{htmlFor:"r1",children:"Default"})]}),l.jsxs("div",{className:"flex items-center",children:[l.jsx(Su,{className:"",value:"comfortable",id:"r2",children:l.jsx(ku,{className:"relative flex size-full items-center justify-center after:block after:size-[11px] after:rounded-full after:bg-violet11"})}),l.jsx("label",{htmlFor:"r2",children:"Comfortable"})]})]})})]})}function ju(){return l.jsx("button",{type:"button",children:l.jsxs("div",{className:"flex flex-row items-center",children:[l.jsx(bi,{src:"air.svg"}),l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("p",{children:["Air Condition ",">"]}),l.jsx("p",{children:"Cooling"})]})]})})}function _u(){return l.jsx("button",{type:"button",children:l.jsxs("div",{className:"flex flex-row items-center",children:[l.jsx(bi,{src:"motion.svg"}),l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("p",{children:["Motion ",">"]}),l.jsx("p",{children:"XYZ"})]})]})})}function Eu(){return l.jsx("button",{type:"button",children:l.jsxs("div",{className:"flex flex-row items-center",children:[l.jsx(bi,{src:"speed.svg"}),l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("p",{children:["Speed ",">"]}),l.jsx("p",{children:"Standard"})]})]})})}function Pu(){return l.jsx("button",{type:"button",children:l.jsxs("div",{className:"flex flex-row items-center",children:[l.jsx(bi,{src:"chamber.svg"}),l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("p",{children:["Chamber ",">"]}),l.jsx(Cu,{})]})]})})}function Ru(){return l.jsx("button",{type:"button",children:l.jsxs("div",{className:"flex flex-row items-center",children:[l.jsx(bi,{src:"heatbed.svg"}),l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("p",{children:["Heatbed ",">"]}),l.jsx(Cu,{})]})]})})}function Lu(){return l.jsxs("div",{className:"flex flex-col",children:[l.jsx("div",{className:"flex flex-row"}),l.jsxs("div",{className:"flex flex-row",children:[l.jsxs("div",{className:"flex flex-col",children:[l.jsx("p",{children:"current temp"}),l.jsx("p",{children:"/target temp"})]}),l.jsx(bi,{src:"nozzle_extuder_right_active.svg"}),l.jsxs("div",{className:"flex flex-col",children:[l.jsx("p",{children:"current temp"}),l.jsx("p",{children:"/target temp"})]})]})]})}function Fu(){return l.jsxs("div",{className:"flex flex-col",children:[l.jsxs("div",{className:"flex flex-row items-center justify-between",children:[l.jsx(ju,{}),l.jsx(Eu,{}),l.jsx(_u,{})]}),l.jsxs("div",{className:"flex flex-row",children:[l.jsxs("div",{className:"flex flex-col",children:[l.jsx(Lu,{}),l.jsx(Pu,{}),l.jsx(Ru,{})]}),l.jsx(bi,{src:"machine.svg"})]})]})}function Au(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var Mu=["color"],Tu=p.forwardRef(function(e,t){var n=e.color,r=void 0===n?"currentColor":n,o=Au(e,Mu);return p.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),p.createElement("path",{d:"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),Du=["color"],Ou=p.forwardRef(function(e,t){var n=e.color,r=void 0===n?"currentColor":n,o=Au(e,Du);return p.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),p.createElement("path",{d:"M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),Iu=["color"],zu=p.forwardRef(function(e,t){var n=e.color,r=void 0===n?"currentColor":n,o=Au(e,Iu);return p.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),p.createElement("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});const Bu=({variant:e,children:t})=>l.jsx("div",{className:`w-[22px] h-[22px] rounded-full flex items-center justify-center text-sm font-semibold ${{done:"bg-[#D9EFE1] text-[#1F1F1F]",active:"bg-[#B6F34F] text-[#1F1F1F]",pending:"bg-[#DBDBDB] text-[#1F1F1F]"}[e]}`,children:t}),$u=({state:e,text:t,stepNumber:n})=>{const r="active"===e?"text-[#1F1F1F] font-semibold":"text-[#1F1F1F] font-normal";return l.jsxs("div",{className:"flex items-center gap-4 h-12",children:[l.jsx(Bu,{variant:e,children:"done"===e?l.jsx(Tu,{className:"w-3 h-3"}):n}),l.jsx("span",{className:`text-base leading-6 ${r}`,children:t})]})},Wu=({open:e,onOpenChange:t,onRetry:n,onStop:r,onClose:o})=>l.jsx(Dl,{open:e,onOpenChange:t,children:l.jsxs(Il,{children:[l.jsx(zl,{className:"fixed inset-0 bg-black/50 backdrop-blur-sm z-50"}),l.jsx(Bl,{className:"fixed top-4 left-1/2 transform -translate-x-1/2 z-50 w-[1140px] max-w-[95vw]",children:l.jsxs("div",{className:"bg-white rounded-2xl shadow-[0_10px_24px_rgba(0,0,0,0.24),0_2px_6px_rgba(0,0,0,0.12)]",children:[l.jsxs("div",{className:"bg-[#F8F8F8] rounded-t-2xl px-6 py-3 flex items-center gap-4",children:[l.jsx(Ou,{className:"w-4 h-4 text-[#1F1F1F]"}),l.jsx($l,{className:"text-lg font-semibold leading-6 text-[#1F1F1F] flex-1",children:"Loading Filament"}),l.jsx(Wl,{asChild:!0,children:l.jsx("button",{onClick:()=>{null==o||o(),t(!1)},className:"w-6 h-6 flex items-center justify-center text-[#1F1F1F] hover:bg-gray-200 rounded transition-colors","aria-label":"Close",children:l.jsx(zu,{className:"w-4 h-4"})})})]}),l.jsx("div",{className:"h-px bg-[#EBEBEB]"}),l.jsxs("div",{className:"px-6 py-6 flex gap-8 items-start",children:[l.jsxs("div",{className:"flex-1 space-y-4",children:[l.jsx($u,{state:"done",text:"Heat the nozzle"}),l.jsx($u,{state:"active",text:"Cut filament",stepNumber:2}),l.jsx($u,{state:"pending",text:"Pull back current filament",stepNumber:3}),l.jsx($u,{state:"pending",text:"Push new filament into the extruder",stepNumber:4})]}),l.jsx("div",{className:"w-[260px] flex-shrink-0",children:l.jsx("div",{className:"w-full aspect-square bg-[#F8F8F8] rounded-lg border border-[#EBEBEB] flex items-center justify-center",children:l.jsx("div",{className:"text-[#1F1F1F] text-sm opacity-60",children:"Device Extruder"})})})]}),l.jsx("div",{className:"h-px bg-[#EBEBEB]"}),l.jsxs("div",{className:"px-6 py-4 flex gap-4 border-t border-[#EBEBEB] rounded-b-2xl",children:[l.jsx("button",{onClick:()=>{null==n||n()},className:"h-11 px-[18px] bg-white text-[#1F1F1F] border border-[#EBEBEB] rounded-lg font-semibold text-base leading-5 hover:bg-gray-50 transition-colors",children:"Retry"}),l.jsx("button",{onClick:()=>{null==r||r()},className:"h-11 px-[18px] bg-white text-[#1F1F1F] border border-[#EBEBEB] rounded-lg font-semibold text-base leading-5 hover:bg-gray-50 transition-colors",children:"Stop"})]})]})})]})});function Uu(){const[e,t]=h.useState(!1),n=h.useRef(null);return l.jsx("div",{className:"p-6",children:l.jsxs("div",{ref:n,className:"relative inline-block",children:[l.jsx("button",{type:"button",onClick:()=>t(!0),className:"inline-flex items-center gap-2 rounded-lg px-4 py-2 bg-black text-white hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-black/20",children:"打开 Filament Dialog"}),l.jsx(Wu,{open:e,onClose:()=>t(!1),onOpenChange:e=>t(e)})]})})}const Vu=({src:e,alt:t,size:n=18,className:r=""})=>l.jsx("img",{src:e,alt:t,width:n,height:n,className:`w-[${n}px] h-[${n}px] ${r}`}),Hu=({selected:e,children:t,onClick:n})=>l.jsxs("button",{onClick:n,className:`\n h-9 px-3.5 rounded-lg flex items-center gap-2 font-semibold text-base leading-6\n ${e?"bg-[#EAF8F0] border-2 border-[#16A34A] text-[#15803D]":"bg-white border border-[#EBEBEB] text-[#6B6B6B]"}\n `,children:[t,e&&l.jsx(Vu,{src:"/icons/check-circle.svg",alt:"Check",size:16,className:"text-[#15803D]"})]}),Ku=({onClick:e,iconSrc:t,alt:n})=>l.jsx("button",{onClick:e,className:"w-7 h-7 rounded-lg bg-white flex items-center justify-center hover:bg-gray-50 transition-colors",children:l.jsx(Vu,{src:t,alt:n,size:18})}),qu=({onClick:e,children:t})=>l.jsx("button",{onClick:e,className:"h-9 px-2.5 text-base leading-6 font-normal text-[#6B6B6B] hover:text-[#1F1F1F] transition-colors",children:t}),Gu=({value:e,onChange:t,min:n=0,max:r=100,step:o=1})=>l.jsxs("div",{className:"relative",children:[l.jsx("input",{type:"number",value:e,onChange:e=>t(Number(e.target.value)),min:n,max:r,step:o,className:"h-10 w-20 rounded-md border-2 border-[#E5E7EB] px-3 text-base leading-6 font-bold text-center focus:outline-none focus:border-[#16A34A]"}),l.jsx("span",{className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-base leading-6 text-[#6B6B6B]",children:"%"})]}),Qu=({icon:e,label:t,children:n})=>l.jsxs("div",{className:"flex items-center gap-4",children:[l.jsx(Vu,{src:e,alt:t,size:18,className:"text-[#6B6B6B]"}),l.jsx("span",{className:"text-base leading-6 text-[#6B6B6B]",children:t}),l.jsx("div",{className:"flex items-center gap-2",children:n})]}),Yu=({icon:e,label:t,value:n,onClick:r})=>l.jsxs("div",{className:"flex items-center gap-3 "+(r?"cursor-pointer hover:bg-gray-50 p-2 rounded-md transition-colors":""),onClick:r,children:[l.jsx(Vu,{src:e,alt:t,size:18,className:"text-[#6B6B6B]"}),l.jsx("span",{className:"text-base leading-6 text-[#6B6B6B]",children:t}),l.jsx(Vu,{src:"/icons/chevron-right.svg",alt:"Expand",size:16,className:"text-[#6B6B6B]"}),l.jsx("span",{className:"text-2xl leading-7 font-extrabold text-[#1F1F1F]",children:n})]}),Xu=({open:e,onOpenChange:t,onReset:n,onClose:r,onPartPercentChange:o})=>{const[a,i]=p.useState("cooling"),[s,c]=p.useState(10);return l.jsx(Dl,{open:e,onOpenChange:t,children:l.jsxs(Il,{children:[l.jsx(zl,{className:"fixed inset-0 bg-black/20 backdrop-blur-sm z-50"}),l.jsx(Bl,{className:"fixed top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 z-50",children:l.jsxs("div",{className:"w-[1106px] bg-white rounded-2xl shadow-[0_12px_28px_rgba(0,0,0,0.2),0_2px_8px_rgba(0,0,0,0.12)]",children:[l.jsxs("div",{className:"h-16 bg-[#F8F8F8] rounded-t-2xl flex items-center gap-4 px-6 py-3",children:[l.jsx($l,{className:"text-lg leading-6 font-semibold text-[#1F1F1F]",children:"Air Condition"}),l.jsx("div",{className:"w-3"}),l.jsx(Hu,{selected:"cooling"===a,onClick:()=>i("cooling"),children:"Cooling"}),l.jsx(Hu,{selected:"heating"===a,onClick:()=>i("heating"),children:"Heating"}),l.jsx(Vu,{src:"/icons/help-circle.svg",alt:"Help",size:24,className:"text-[#6B6B6B]"}),l.jsx("div",{className:"flex-1"}),l.jsx(qu,{onClick:()=>{i("cooling"),c(10),null==n||n()},children:"Reset"}),l.jsx(Ku,{onClick:()=>{t(!1),null==r||r()},iconSrc:"/icons/close.svg",alt:"Close"})]}),l.jsx("div",{className:"h-px bg-[#EBEBEB]"}),l.jsx("div",{className:"p-6",children:l.jsxs("div",{className:"flex gap-8 items-start",children:[l.jsxs("div",{className:"flex-1 flex flex-col gap-6",children:[l.jsxs(Qu,{icon:"/icons/fan.svg",label:"Part",children:[l.jsx(Gu,{value:s,onChange:e=>{c(e),null==o||o(e)},min:0,max:100,step:1}),l.jsx("span",{className:"text-base leading-6 text-[#6B6B6B]",children:"%"})]}),l.jsxs(Qu,{icon:"/icons/fan.svg",label:"Aux",children:[l.jsx("span",{className:"text-2xl leading-7 font-extrabold text-[#1F1F1F]",children:"100"}),l.jsx("span",{className:"text-base leading-6 text-[#6B6B6B]",children:"%"})]})]}),l.jsxs("div",{className:"w-[420px] relative",children:[l.jsx("div",{className:"w-full h-64 bg-gray-100 rounded-lg flex items-center justify-center",children:l.jsx("span",{className:"text-gray-400",children:"机器空调占位图"})}),l.jsxs("div",{className:"absolute inset-0 pointer-events-none",children:[l.jsx("div",{className:"absolute left-0 top-8 w-16 h-px border-t-2 border-dashed border-gray-200 transform -translate-x-full"}),l.jsx("div",{className:"absolute left-0 top-32 w-16 h-px border-t-2 border-dashed border-gray-200 transform -translate-x-full"}),l.jsx("div",{className:"absolute right-0 top-8 w-16 h-px border-t-2 border-dashed border-gray-200 transform translate-x-full"}),l.jsx("div",{className:"absolute right-0 top-32 w-16 h-px border-t-2 border-dashed border-gray-200 transform translate-x-full"}),l.jsx("div",{className:"absolute right-0 top-56 w-16 h-px border-t-2 border-dashed border-gray-200 transform translate-x-full"})]})]}),l.jsxs("div",{className:"flex-1 flex flex-col gap-6",children:[l.jsxs(Qu,{icon:"/icons/fan.svg",label:"Exhauxt",children:[l.jsx("span",{className:"text-2xl leading-7 font-extrabold text-[#1F1F1F]",children:"100"}),l.jsx("span",{className:"text-base leading-6 text-[#6B6B6B]",children:"%"})]}),l.jsx(Qu,{icon:"/icons/flame.svg",label:"Heat",children:l.jsx("span",{className:"text-2xl leading-7 font-extrabold text-[#1F1F1F]",children:"OFF"})}),l.jsx(Yu,{icon:"/icons/thermometer.svg",label:"Chamber",value:"45°C/65°C",onClick:()=>console.log("Chamber clicked")})]})]})})]})})]})})};function Ju(){const[e,t]=h.useState(!1),n=h.useRef(null);return l.jsx("div",{className:"p-6",children:l.jsxs("div",{ref:n,className:"relative inline-block",children:[l.jsx("button",{type:"button",onClick:()=>t(!0),className:"inline-flex items-center gap-2 rounded-lg px-4 py-2 bg-black text-white hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-black/20",children:"打开 Fans Dialog"}),l.jsx(Xu,{open:e,onClose:()=>t(!1),onOpenChange:e=>t(e)})]})})}function Zu(){return l.jsx("button",{className:" border-2 rounded-md border-transparent hover:border-green-500 transition-colors",children:l.jsxs("div",{className:"relative h-[1.5rem] m-[0.25rem]",style:{width:"2.8125rem"},children:[l.jsx("div",{className:"absolute top-0 bottom-0 left-[0.125rem] right-[0.125rem] rounded-md bg-[#EEEEEE]"}),l.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-[0.75rem] bg-[#CECECE]"}),l.jsxs("div",{className:"absolute top-[0.375rem] left-[0.375rem] right-[0.375rem] h-[0.75rem] flex flex-row justify-between items-center ",children:[l.jsx("div",{className:"w-[0.375rem] aspect-[1/2] rounded-full bg-green-200"}),l.jsx("div",{className:"w-[0.375rem] aspect-[1/2] rounded-full bg-red-200"}),l.jsx("div",{className:"w-[0.375rem] aspect-[1/2] rounded-full bg-blue-200"}),l.jsx("div",{className:"w-[0.375rem] aspect-[1/2] rounded-full bg-gray-200"})]})]})})}const ed=Nn("/")({component:function(){return l.jsxs("div",{className:"flex flex-row h-full",children:[l.jsxs("div",{className:"flex-col w-[6.25rem] h-full",children:[l.jsx(ki,{}),l.jsx("p",{className:"text-body",children:" hello world "})]}),l.jsx("div",{className:"flex flex-col w-[37.5rem] h-full",children:l.jsxs(Si,{children:[l.jsx(Jl,{}),l.jsx(uc,{}),l.jsx(gc,{}),l.jsx(Ec,{}),l.jsx(Uu,{}),l.jsx(Ju,{}),l.jsx(Zu,{}),l.jsx(fc,{}),l.jsx(Fc,{}),l.jsx(Ac,{}),l.jsx(Nu,{}),l.jsx(Fu,{})]})}),l.jsxs("div",{className:"flex flex-col flex-1",children:[l.jsx("div",{className:"flex-1",children:l.jsx(Kl,{})}),l.jsx("div",{className:"w-full h-[9.5rem]",children:l.jsx(Gl,{})})]})]})}});const td=xi.update({id:"/filament",path:"/filament",getParentRoute:()=>mo}),nd=vc.update({id:"/app",path:"/app",getParentRoute:()=>mo}),rd=yc.update({id:"/about",path:"/about",getParentRoute:()=>mo}),od={IndexRoute:ed.update({id:"/",path:"/",getParentRoute:()=>mo}),AboutRoute:rd,AppRoute:nd,FilamentRoute:td};function ad(){document.documentElement.style.fontSize=16*window.devicePixelRatio+"px"}function id(){return window.addEventListener("resize",ad),document.addEventListener("DOMContentLoaded",ad),null}const sd=(e=>new Bn(e))({routeTree:mo._addFileChildren(od)._addFileTypes(),history:function(){const e="undefined"!=typeof document?window:void 0;return it({window:e,parseLocation:()=>{const t=e.location.hash.split("#").slice(1),n=t[0]??"/",r=e.location.search,o=t.slice(1);return st(`${n}${r}${0===o.length?"":`#${o.join("#")}`}`,e.history.state)},createHref:t=>`${e.location.pathname}${e.location.search}#${t}`})}()}),ld=document.getElementById("root");if(!ld.innerHTML){F.createRoot(ld).render(l.jsxs(p.StrictMode,{children:[l.jsx(id,{}),l.jsx(Wn,{router:sd})]}))}
+//# sourceMappingURL=index.js.map
diff --git a/resources/web/device_page/assets/index.js.map b/resources/web/device_page/assets/index.js.map
new file mode 100644
index 0000000000..c1ca3e24b4
--- /dev/null
+++ b/resources/web/device_page/assets/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sources":["../../node_modules/react/jsx-runtime.js","../../node_modules/react/cjs/react-jsx-runtime.production.js","../../node_modules/react/cjs/react.production.js","../../node_modules/react/index.js","../../node_modules/scheduler/index.js","../../node_modules/scheduler/cjs/scheduler.production.js","../../node_modules/react-dom/cjs/react-dom.production.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/cjs/react-dom-client.production.js","../../node_modules/react-dom/client.js","../../node_modules/@tanstack/react-router/dist/esm/utils.js","../../node_modules/@tanstack/router-core/dist/esm/utils.js","../../node_modules/@tanstack/router-core/dist/esm/invariant.js","../../node_modules/@tanstack/router-core/dist/esm/lru-cache.js","../../node_modules/@tanstack/router-core/dist/esm/new-process-route-tree.js","../../node_modules/@tanstack/router-core/dist/esm/path.js","../../node_modules/@tanstack/router-core/dist/esm/not-found.js","../../node_modules/@tanstack/router-core/dist/esm/scroll-restoration.js","../../node_modules/@tanstack/router-core/dist/esm/qss.js","../../node_modules/@tanstack/router-core/dist/esm/searchParams.js","../../node_modules/@tanstack/router-core/dist/esm/root.js","../../node_modules/@tanstack/router-core/dist/esm/redirect.js","../../node_modules/@tanstack/router-core/dist/esm/rewrite.js","../../node_modules/@tanstack/router-core/dist/esm/stores.js","../../node_modules/@tanstack/router-core/dist/esm/load-matches.js","../../node_modules/@tanstack/history/dist/esm/index.js","../../node_modules/@tanstack/router-core/dist/esm/router.js","../../node_modules/@tanstack/router-core/dist/esm/link.js","../../node_modules/@tanstack/router-core/dist/esm/route.js","../../node_modules/@tanstack/react-router/dist/esm/CatchBoundary.js","../../node_modules/@tanstack/react-router/dist/esm/ClientOnly.js","../../node_modules/@tanstack/react-router/dist/esm/routerContext.js","../../node_modules/@tanstack/react-router/dist/esm/useRouter.js","../../node_modules/@tanstack/react-router/dist/esm/matchContext.js","../../node_modules/@tanstack/store/dist/esm/alien.js","../../node_modules/@tanstack/store/dist/esm/atom.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../node_modules/use-sync-external-store/shim/with-selector.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","../../node_modules/@tanstack/react-store/dist/esm/useStore.js","../../node_modules/@tanstack/react-router/dist/esm/useMatch.js","../../node_modules/@tanstack/react-router/dist/esm/useLoaderData.js","../../node_modules/@tanstack/react-router/dist/esm/useLoaderDeps.js","../../node_modules/@tanstack/react-router/dist/esm/useParams.js","../../node_modules/@tanstack/react-router/dist/esm/useSearch.js","../../node_modules/@tanstack/react-router/dist/esm/useNavigate.js","../../node_modules/@tanstack/react-router/dist/esm/useRouteContext.js","../../node_modules/@tanstack/react-router/dist/esm/link.js","../../node_modules/@tanstack/react-router/dist/esm/route.js","../../node_modules/@tanstack/react-router/dist/esm/fileRoute.js","../../node_modules/@tanstack/react-router/dist/esm/not-found.js","../../node_modules/@tanstack/react-router/dist/esm/SafeFragment.js","../../node_modules/@tanstack/react-router/dist/esm/renderRouteNotFound.js","../../node_modules/@tanstack/react-router/dist/esm/Match.js","../../node_modules/@tanstack/react-router/dist/esm/Transitioner.js","../../node_modules/@tanstack/router-core/dist/esm/hash-scroll.js","../../node_modules/@tanstack/react-router/dist/esm/Matches.js","../../node_modules/@tanstack/react-router/dist/esm/routerStores.js","../../node_modules/@tanstack/react-router/dist/esm/router.js","../../node_modules/@tanstack/react-router/dist/esm/RouterProvider.js","../../node_modules/i18next/dist/esm/i18next.js","../../node_modules/react-i18next/dist/es/utils.js","../../node_modules/react-i18next/dist/es/unescape.js","../../node_modules/react-i18next/dist/es/defaults.js","../../node_modules/react-i18next/dist/es/i18nInstance.js","../../node_modules/react-i18next/dist/es/initReactI18next.js","../../node_modules/react-i18next/dist/es/context.js","../../node_modules/react-i18next/dist/es/useTranslation.js","../../src/i18n.tsx","../../src/routes/__root.tsx","../../node_modules/@tanstack/react-router/dist/esm/useRouterState.js","../../node_modules/zustand/esm/vanilla.mjs","../../node_modules/zustand/esm/react.mjs","../../node_modules/immer/dist/immer.mjs","../../node_modules/zustand/esm/middleware/immer.mjs","../../node_modules/zustand/esm/middleware.mjs","../../src/store/AppSlice.tsx","../../src/store/DeviceSlice.tsx","../../src/store/AmsSlice.tsx","../../src/store/SlotSlice.tsx","../../src/store/FilamentSlice.tsx","../../src/store/AppStore.tsx","../../src/hooks/Bridge.tsx","../../src/features/filament/useFilamentBridge.ts","../../src/features/filament/colors/hex.ts","../../src/features/filament/colors/render.ts","../../src/features/filament/colors/candidate.ts","../../src/features/filament/SpoolColorChip.tsx","../../src/features/filament/constants.ts","../../src/features/filament/SpoolTable.tsx","../../src/features/filament/AddEditDialog.tsx","../../src/features/filament/vendorOptions.ts","../../src/features/filament/customColorSelection.ts","../../src/features/filament/DetailDialog.tsx","../../src/features/filament/ConfirmDialog.tsx","../../src/features/filament/CloudBadge.tsx","../../src/features/filament/CloudHistoryPopover.tsx","../../src/features/filament/ToastStack.tsx","../../src/features/filament/DebugLogPanel.tsx","../../src/features/filament/FilamentPage.tsx","../../src/routes/filament.tsx","../../src/components/Image.tsx","../../src/components/ImageButton.tsx","../../src/components/ScrollView.tsx","../../src/features/printer/device/PrinterSelector.tsx","../../node_modules/@radix-ui/primitive/dist/index.mjs","../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../node_modules/@radix-ui/react-context/dist/index.mjs","../../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../node_modules/@radix-ui/react-id/dist/index.mjs","../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../node_modules/@radix-ui/react-slot/dist/index.mjs","../../node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../../node_modules/@radix-ui/react-focus-scope/dist/index.mjs","../../node_modules/@radix-ui/react-portal/dist/index.mjs","../../node_modules/@radix-ui/react-presence/dist/index.mjs","../../node_modules/@radix-ui/react-focus-guards/dist/index.mjs","../../node_modules/tslib/tslib.es6.mjs","../../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../../node_modules/use-callback-ref/dist/es2015/assignRef.js","../../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../../node_modules/use-callback-ref/dist/es2015/useRef.js","../../node_modules/use-sidecar/dist/es2015/medium.js","../../node_modules/use-sidecar/dist/es2015/exports.js","../../node_modules/react-remove-scroll/dist/es2015/medium.js","../../node_modules/react-remove-scroll/dist/es2015/UI.js","../../node_modules/react-style-singleton/dist/es2015/singleton.js","../../node_modules/get-nonce/dist/es2015/index.js","../../node_modules/react-style-singleton/dist/es2015/component.js","../../node_modules/react-style-singleton/dist/es2015/hook.js","../../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../../node_modules/react-remove-scroll/dist/es2015/Combination.js","../../node_modules/aria-hidden/dist/es2015/index.js","../../node_modules/@radix-ui/react-dialog/dist/index.mjs","../../src/features/printer/liveview/LiveView.tsx","../../src/components/ProgressBar.tsx","../../src/features/printer/task/PrintProgress.tsx","../../src/features/printer/machine/LinkButton.tsx","../../src/components/WifiIcon.tsx","../../src/features/printer/machine/MachineSetting.tsx","../../src/features/printer/ams/AMSControl.tsx","../../src/features/printer/motion/Motion.tsx","../../src/routes/app.tsx","../../src/routes/about.tsx","../../src/features/printer/extruder/ExtuderDialog.tsx","../../src/utils/Position.tsx","../../src/features/printer/ams/BambuSlot.tsx","../../src/features/printer/ams/AMSItem.tsx","../../src/hooks/Raf.tsx","../../src/features/printer/ams/AMSLite.tsx","../../node_modules/@radix-ui/react-direction/dist/index.mjs","../../node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../node_modules/@radix-ui/react-collection/dist/index.mjs","../../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../../node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../node_modules/@radix-ui/react-use-size/dist/index.mjs","../../src/components/TempInput.tsx","../../src/features/printer/extruder/Extuder.tsx","../../src/features/printer/control/Air.tsx","../../src/features/printer/control/Motion.tsx","../../src/features/printer/control/Speed.tsx","../../src/features/printer/control/Chamber.tsx","../../src/features/printer/control/Heatbed.tsx","../../src/features/printer/control/NozzleExtruder.tsx","../../src/features/printer/control/MachineControl.tsx","../../node_modules/@radix-ui/react-icons/dist/react-icons.esm.js","../../src/features/printer/ams/FilamentDialog.tsx","../../src/features/printer/control/AirControl.tsx","../../src/features/printer/ams/AMSPreview.tsx","../../src/routes/index.tsx","../../src/routeTree.gen.ts","../../src/utils/WindowResizeListener.tsx","../../src/main.tsx"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.5\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.5\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" ()\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"\") &&\n (frame = frame.replace(\"\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"
+
+
+