Profile Image edit

This commit is contained in:
Kilian committed 2024-07-27 21:00:31 +02:00
1 parent 15ca7e8879
commit 627654e0a7
18 files changed
+368 -38

No files matched your search

+1
View File
@@ -0,0 +1 @@
import{j as e,M as le,a as q,T as f,B as w,b as P,c as C,A as Ce,d as re,L as T,C as L,I as O,e as be,f as D,P as $,g as we,u as Se,h as ce,i as X,k as Z,D as Q,l as W,m as F,n as K,o as ue,p as Pe,q as de,r as he,s as Fe,S as M,t as Ae,G as v,v as J,w as Ee,x as ke,y as De,z as $e,F as Ie,E as Te,H as Ue}from"./mui-CxHUbSMi.js";import{u as Y,a as R,b as H,c as Oe,d as qe,L as E,e as Me,O as Le,f as Re,r as N,g as B,h as z,q as ee,i as te,j as ne,Q as Be,k as ze,l as Ne,R as Qe,m as We}from"./tanstack-xmxrKlZO.js";import{c as Ke,r as y}from"./react-DXd9vB-a.js";import{i as U,B as He,a as Ve,b as _e,u as A,t as m}from"./i18n-DJgSTqOl.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const s of i.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&o(s)}).observe(document,{childList:!0,subtree:!0});function a(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function o(r){if(r.ep)return;r.ep=!0;const i=a(r);fetch(r.href,i)}})();var G={},ae=Ke;G.createRoot=ae.createRoot,G.hydrateRoot=ae.hydrateRoot;const _=15,S="https://khofmann.userpage.fu-berlin.de/phpCourse/exam/api/";let oe;class Ge{constructor(){if(this.hasAuth=()=>this.token!==void 0,this.isAdmin=()=>{var n;return this.hasAuth()&&((n=this.self)==null?void 0:n.isAdmin)},this.getAuthenticatedUser=()=>this.self,this.getCurrentSession=()=>[this.token,this.refreshToken],this.logIn=async(n,a)=>{const{user:o,token:r}=await(await this.post("login",{email:n,password:a})).json();this.self=o,this.token=r},this.logOut=async()=>{try{return await(await this.postAuth("logout")).json()}catch{return!1}finally{this.self=void 0,this.token=void 0}},this.posts=async n=>{const a=`posts?p=${n??0}&l=${_}`;return this.token?await(await this.getAuth(a)).json():await(await this.get(a)).json()},this.deletePost=async n=>await(await this.delete(`posts/${n}?l=${_}`)).json(),this.user=async n=>{var a;return await(await this.getAuth(`users/${n??((a=this.self)==null?void 0:a.id)}`)).json()},this.updateUser=async(n,a)=>await(await this.patch(`users/${a??"self"}`,n)).json(),this.updateUserImage=async(n,a)=>{const o=new FormData;return n.image&&o.append("image",n.image),!n.image&&n.predefined&&o.append("predefined",n.predefined),await(await this.postAuthRaw(`users/${a??"self"}/image`,o)).json()},this.newPost=async n=>await(await this.postAuth(`posts?l=${_}`,{...n})).json(),this.updatePost=async(n,a)=>await(await this.patch(`posts/${a}`,n)).json(),this.post=async(n,a,o)=>{const r=await fetch(`${S}${n}`,{mode:"cors",method:"post",headers:o,body:JSON.stringify(a)});if(r.ok)return r;throw await r.json()},this.postAuth=async(n,a,o)=>{const r=await fetch(`${S}${n}`,{mode:"cors",method:"post",headers:{token:this.token??"",...o},body:JSON.stringify(a)});if(r.ok)return r;throw await r.json()},this.postAuthRaw=async(n,a,o)=>{const r=await fetch(`${S}${n}`,{mode:"cors",method:"post",headers:{token:this.token??"",...o},body:a});if(r.ok)return r;throw await r.json()},this.get=async(n,a)=>{const o=await fetch(`${S}${n}`,{mode:"cors",method:"get",headers:a});if(o.ok)return o;throw await o.json()},this.getAuth=async(n,a)=>{const o=await fetch(`${S}${n}`,{mode:"cors",method:"get",headers:{token:this.token??"",...a}});if(o.ok)return o;throw await o.json()},this.delete=async(n,a)=>{const o=await fetch(`${S}${n}`,{mode:"cors",method:"delete",headers:{token:this.token??"",...a}});if(o.ok)return o;throw await o.json()},this.patch=async(n,a,o)=>{const r=await fetch(`${S}${n}`,{mode:"cors",method:"patch",headers:{token:this.token??"",...o},body:JSON.stringify(a)});if(r.ok)return r;throw await r.json()},oe)throw new Error("New instance cannot be created!!");oe=this}}const g=new Ge;var k=(t=>(t.NOT_FOUND="NotFound",t.UNAUTHORIZED="Unauthorized",t.FAILED_UPDATE="FailedUpdate",t.MISSING_FIELD="MissingField",t))(k||{});U.use(He).use(Ve).use(_e).init({fallbackLng:"en",debug:!1,interpolation:{escapeValue:!1},backend:{loadPath:"/phpCourse/exam/dist/locales/{{lng}}/{{ns}}.json"}});const Xe=({anchorEl:t,handleClose:n})=>e.jsxs(le,{anchorEl:t,anchorOrigin:{vertical:"bottom",horizontal:"right"},keepMounted:!0,transformOrigin:{vertical:"top",horizontal:"right"},open:!!t,onClose:n,sx:{"& .MuiMenu-paper":{minWidth:"240px"}},children:[e.jsx(q,{selected:U.language==="en",onClick:()=>{U.changeLanguage("en"),n()},children:"English"},"de"),e.jsx(q,{selected:U.language==="de",onClick:()=>{U.changeLanguage("de"),n()},children:"Deutsch"},"en")]});var b=(t=>(t.INDEX="/",t.PROFILE="/profile",t))(b||{});const I=({error:t,context:n,color:a="error.main"})=>{const{t:o}=A();if(console.log(t,n),!t)return null;if(t.code)switch(t.code){caLine truncated
-1
View File
@@ -1 +0,0 @@
import{j as e,M as ne,a as O,T as p,B as E,b as F,c as f,A as ye,d as J,L as k,C as L,I as Q,e as fe,f as T,P as I,g as Ce,u as ve,h as se,i as re,k as ae,D as K,l as _,m as $,n as H,o as oe,p as be,q as ie,r as le,s as we,S as q,t as Pe,G as y,v as ce,w as Se,x as Ae}from"./mui-v3E5hT34.js";import{u as G,a as R,b as Ee,c as Fe,d as ke,L as S,e as De,O as Te,f as Ie,r as U,g as B,h as N,q as V,i as X,j as Z,Q as $e,k as qe,l as Me,R as Oe,m as Ue}from"./tanstack-yMrSYl0u.js";import{c as Le,r as j}from"./react-DXd9vB-a.js";import{i as D,B as Re,a as Be,b as Ne,u as w,t as m}from"./i18n-DJgSTqOl.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))o(s);new MutationObserver(s=>{for(const c of s)if(c.type==="childList")for(const r of c.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&o(r)}).observe(document,{childList:!0,subtree:!0});function a(s){const c={};return s.integrity&&(c.integrity=s.integrity),s.referrerPolicy&&(c.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?c.credentials="include":s.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function o(s){if(s.ep)return;s.ep=!0;const c=a(s);fetch(s.href,c)}})();var W={},Y=Le;W.createRoot=Y.createRoot,W.hydrateRoot=Y.hydrateRoot;const ze=15,P="https://khofmann.userpage.fu-berlin.de/phpCourse/exam/api/";let ee;class Qe{constructor(){if(this.hasAuth=()=>this.token!==void 0,this.isAdmin=()=>{var n;return this.hasAuth()&&((n=this.self)==null?void 0:n.isAdmin)},this.getAuthenticatedUser=()=>this.self,this.getCurrentSession=()=>[this.token,this.refreshToken],this.logIn=async(n,a)=>{const{user:o,token:s}=await(await this.post("login",{email:n,password:a})).json();this.self=o,this.token=s},this.logOut=async()=>{try{return await(await this.postAuth("logout")).json()}catch{return!1}finally{this.self=void 0,this.token=void 0}},this.posts=async n=>{const a=`posts?p=${n??0}&l=${ze}`;return this.token?await(await this.getAuth(a)).json():await(await this.get(a)).json()},this.deletePost=async n=>await(await this.delete(`posts/${n}`)).json(),this.user=async n=>{var a;return await(await this.getAuth(`users/${n??((a=this.self)==null?void 0:a.id)}`)).json()},this.updateUser=async(n,a)=>await(await this.patch(`users/${a??"self"}`,n)).json(),this.newPost=async n=>await(await this.postAuth("posts",n)).json(),this.updatePost=async(n,a)=>await(await this.patch(`posts/${a}`,n)).json(),this.post=async(n,a,o)=>{const s=await fetch(`${P}${n}`,{mode:"cors",method:"post",headers:o,body:JSON.stringify(a)});if(s.ok)return s;throw await s.json()},this.postAuth=async(n,a,o)=>{const s=await fetch(`${P}${n}`,{mode:"cors",method:"post",headers:{token:this.token??"",...o},body:JSON.stringify(a)});if(s.ok)return s;throw await s.json()},this.get=async(n,a)=>{const o=await fetch(`${P}${n}`,{mode:"cors",method:"get",headers:a});if(o.ok)return o;throw await o.json()},this.getAuth=async(n,a)=>{const o=await fetch(`${P}${n}`,{mode:"cors",method:"get",headers:{token:this.token??"",...a}});if(o.ok)return o;throw await o.json()},this.delete=async(n,a)=>{const o=await fetch(`${P}${n}`,{mode:"cors",method:"delete",headers:{token:this.token??"",...a}});if(o.ok)return o;throw await o.json()},this.patch=async(n,a,o)=>{const s=await fetch(`${P}${n}`,{mode:"cors",method:"patch",headers:{token:this.token??"",...o},body:JSON.stringify(a)});if(s.ok)return s;throw await s.json()},ee)throw new Error("New instance cannot be created!!");ee=this}}const d=new Qe;var A=(t=>(t.NOT_FOUND="NotFound",t.UNAUTHORIZED="Unauthorized",t.FAILED_UPDATE="FailedUpdate",t.MISSING_FIELD="MissingField",t))(A||{});D.use(Re).use(Be).use(Ne).init({fallbackLng:"en",debug:!1,interpolation:{escapeValue:!1},backend:{loadPath:"/phpCourse/exam/dist/locales/{{lng}}/{{ns}}.json"}});const We=({anchorEl:t,handleClose:n})=>e.jsxs(ne,{anchorEl:t,anchorOrigin:{vertical:"bottom",horizontal:"right"},keepMounted:!0,transformOrigin:{vertical:"top",horizontal:"right"},open:!!t,onClose:n,sx:{"& .MuiMenu-paper":{minWidth:"240px"}},children:[e.jsx(O,{selected:D.language==="en",onClick:()=>{D.changeLanguage("en"),n()},children:"English"},"de"),e.jsx(O,{selected:D.language==="de",onClick:()=>{D.changeLanguage("de"),n()},children:"Deutsch"},"en")]});var v=(t=>(t.INDEX="/",t.PROFILE="/profile",t))(v||{});const M=({error:t,context:n,color:a="error.main"})=>{const{t:o}=w();if(console.log(t,n),!t)return null;if(t.code)switch(t.code){case A.NOT_FOUND:return e.jsx(p,{color:a,children:o(t.code,{context:`${t.entity}:${n}`})});case A.UNAUTHORIZED:return e.jsx(p,{color:a,children:o(t.code,{context:n})});case A.FAILED_UPDATE:return t.fields.map((s,c)=>e.jsx(p,{color:a,children:o(t.code,{context:`${t.reasons[c]}:${s}:${n}`})},`error_${s}`));case A.MISSING_FIELD:return t.fields.map(s=>e.jsx(p,{color:a,children:o(t.code,{context:`${s}:${n}`})},`error_${s}`))}return e.jsx(p,{color:a,children:o((tLine truncated
@@ -6,7 +6,7 @@ import{r as p,R as jo,g as gt,a as st,b as yn,c as ga}from"./react-DXd9vB-a.js";
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var ha=p,ba=Symbol.for("react.element"),va=Symbol.for("react.fragment"),ya=Object.prototype.hasOwnProperty,xa=ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Ca={key:!0,ref:!0,__self:!0,__source:!0};function ts(e,t,n){var o,r={},i=null,s=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(s=t.ref);for(o in t)ya.call(t,o)&&!Ca.hasOwnProperty(o)&&(r[o]=t[o]);if(e&&e.defaultProps)for(o in t=e.defaultProps,t)r[o]===void 0&&(r[o]=t[o]);return{$$typeof:ba,type:e,key:i,ref:s,props:r,_owner:xa.current}}jn.Fragment=va;jn.jsx=ts;jn.jsxs=ts;es.exports=jn;var C=es.exports;const sn={black:"#000",white:"#fff"},Et={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},Mt={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},wt={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},Tt={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},It={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},qt={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},$a={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"};function Ct(e){let t="https://mui.com/production-error/?code="+e;for(let n=1;n<arguments.length;n+=1)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified MUI error #"+e+"; visit "+t+" for the full message."}const Ra=Object.freeze(Object.defineProperty({__proto__:null,default:Ct},Symbol.toStringTag,{value:"Module"})),Dn="$$material";function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},u.apply(null,arguments)}function O(e,t){if(e==null)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}function ns(e){var t=Object.create(null);return function(n){return t[n]===void 0&&(t[n]=e(n)),t[n]}}var Sa=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|fLine truncated
*/var ha=p,ba=Symbol.for("react.element"),va=Symbol.for("react.fragment"),ya=Object.prototype.hasOwnProperty,xa=ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Ca={key:!0,ref:!0,__self:!0,__source:!0};function ts(e,t,n){var o,r={},i=null,s=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(s=t.ref);for(o in t)ya.call(t,o)&&!Ca.hasOwnProperty(o)&&(r[o]=t[o]);if(e&&e.defaultProps)for(o in t=e.defaultProps,t)r[o]===void 0&&(r[o]=t[o]);return{$$typeof:ba,type:e,key:i,ref:s,props:r,_owner:xa.current}}jn.Fragment=va;jn.jsx=ts;jn.jsxs=ts;es.exports=jn;var C=es.exports;const sn={black:"#000",white:"#fff"},Et={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},Mt={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},wt={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},Tt={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},It={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},qt={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},$a={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"};function Ct(e){let t="https://mui.com/production-error/?code="+e;for(let n=1;n<arguments.length;n+=1)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified MUI error #"+e+"; visit "+t+" for the full message."}const Ra=Object.freeze(Object.defineProperty({__proto__:null,default:Ct},Symbol.toStringTag,{value:"Module"})),Dn="$$material";function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},u.apply(null,arguments)}function O(e,t){if(e==null)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;n[o]=e[o]}return n}function ns(e){var t=Object.create(null);return function(n){return t[n]===void 0&&(t[n]=e(n)),t[n]}}var Sa=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|fLine truncated
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
@@ -21,7 +21,7 @@ import{r as p,R as jo,g as gt,a as st,b as yn,c as ga}from"./react-DXd9vB-a.js";
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var hr=Symbol.for("react.element"),br=Symbol.for("react.portal"),co=Symbol.for("react.fragment"),uo=Symbol.for("react.strict_mode"),po=Symbol.for("react.profiler"),fo=Symbol.for("react.provider"),mo=Symbol.for("react.context"),Lc=Symbol.for("react.server_context"),go=Symbol.for("react.forward_ref"),ho=Symbol.for("react.suspense"),bo=Symbol.for("react.suspense_list"),vo=Symbol.for("react.memo"),yo=Symbol.for("react.lazy"),zc=Symbol.for("react.offscreen"),As;As=Symbol.for("react.module.reference");function Ye(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case hr:switch(e=e.type,e){case co:case po:case uo:case ho:case bo:return e;default:switch(e=e&&e.$$typeof,e){case Lc:case mo:case go:case yo:case vo:case fo:return e;default:return t}}case br:return t}}}te.ContextConsumer=mo;te.ContextProvider=fo;te.Element=hr;te.ForwardRef=go;te.Fragment=co;te.Lazy=yo;te.Memo=vo;te.Portal=br;te.Profiler=po;te.StrictMode=uo;te.Suspense=ho;te.SuspenseList=bo;te.isAsyncMode=function(){return!1};te.isConcurrentMode=function(){return!1};te.isContextConsumer=function(e){return Ye(e)===mo};te.isContextProvider=function(e){return Ye(e)===fo};te.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===hr};te.isForwardRef=function(e){return Ye(e)===go};te.isFragment=function(e){return Ye(e)===co};te.isLazy=function(e){return Ye(e)===yo};te.isMemo=function(e){return Ye(e)===vo};te.isPortal=function(e){return Ye(e)===br};te.isProfiler=function(e){return Ye(e)===po};te.isStrictMode=function(e){return Ye(e)===uo};te.isSuspense=function(e){return Ye(e)===ho};te.isSuspenseList=function(e){return Ye(e)===bo};te.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===co||e===po||e===uo||e===ho||e===bo||e===zc||typeof e=="object"&&e!==null&&(e.$$typeof===yo||e.$$typeof===vo||e.$$typeof===fo||e.$$typeof===mo||e.$$typeof===go||e.$$typeof===As||e.getModuleId!==void 0)};te.typeOf=Ye;Os.exports=te;var Xr=Os.exports;const Fc=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;function Ns(e){const t=`${e}`.match(Fc);return t&&t[1]||""}function _s(e,t=""){return e.displayName||e.name||Ns(e)||t}function Yr(e,t,n){const o=_s(t);return e.displayName||(o!==""?`${n}(${o})`:n)}function jc(e){if(e!=null){if(typeof e=="string")return e;if(typeof e=="function")return _s(e,"Component");if(typeof e=="object")switch(e.$$typeof){case Xr.ForwardRef:return Yr(e,e.render,"ForwardRef");case Xr.Memo:return Yr(e,e.type,"memo");default:return}}}const Dc=Object.freeze(Object.defineProperty({__proto__:null,default:jc,getFunctionName:Ns},Symbol.toStringTag,{value:"Module"}));function un(e,t){const n=u({},t);return Object.keys(e).forEach(o=>{if(o.toString().match(/^(components|slots)$/))n[o]=u({},e[o],n[o]);else if(o.toString().match(/^(componentsProps|slotProps)$/)){const r=e[o]||{},i=t[o];n[o]={},!i||!Object.keys(i)?n[o]=r:!r||!Object.keys(r)?n[o]=i:(n[o]=u({},i),Object.keys(r).forEach(s=>{n[o][s]=un(r[s],i[s])}))}else n[o]===void 0&&(n[o]=e[o])}),n}function Wc(e){const{theme:t,name:n,props:o}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?o:un(t.components[n].defaultProps,o)}const lt=typeof window<"u"?p.useLayoutEffect:p.useEffect;function Uc(e,t,n,o,r){const[i,s]=p.useState(()=>r&&n?n(e).matches:o?o(e).matches:t);return lt(()=>{let a=!0;if(!n)return;const l=n(e),c=()=>{a&&s(l.matches)};return c(),l.addListener(c),()=>{a=!1,l.removeListener(c)}},[e,n]),i}const Bs=p.useSyncExternalStore;function Hc(e,t,n,o,r){const i=p.useCallback(()=>t,[t]),s=p.useMemo(()=>{if(r&&n)return()=>n(e).matches;if(o!==null){const{matches:d}=o(e);return()=>d}return i},[i,e,o,r,n]),[a,l]=p.useMemo(()=>{if(n===null)return[i,()=>()=>{}];const d=n(e);return[()=>d.matches,f=>(d.addListener(f),()=>{d.removeListener(f)})]},[i,n,e]);return Bs(l,a,s)}function Tb(e,t={}){const n=ws(),o=typeof window<"u"&&typeof window.matchMedia<"u",{defaultMatches:r=!1,matchMedia:i=o?window.matchMedia:null,ssrMatchMedia:s=null,noSsr:a=!1}=Wc({name:"MuiUseMediaQuery",props:t,theme:n});let l=typeof e=="function"?e(n):e;return l=l.replace(/^@media( ?)/m,""),(Bs!==void 0?Hc:Uc)(l,r,i,s,a)}function Vc(e,t=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,n))}const Kc=Object.freeze(Object.defineProperty({__proto__:null,default:Vc},Symbol.toStringTag,{value:"Module"}));function Zr(...e){return e.reduce((t,n)=>n==null?t:function(...r){t.apply(this,r),n.apply(this,r)},()=>{})}function Ls(e,t=166){let n;function o(...r){const i=()=>{e.apply(this,r)};clearTimeout(n),n=setTimeout(i,t)}return o.clear=()=>{clearTimeout(n)},o}function To(e,t){var n,o;return p.isValidElement(e)&&t.indexOf((n=e.type.muiName)!=null?n:(o=e.type)==null||(o=o._payload)==null||(o=o.value)==null?void 0:o.muiName)!==-1}function Ee(e){return e&&e.ownerDocument||document}function $t(e){return Ee(e).defaultView||window}function Vo(e,t){typeof e=="function"?e(t):e&&(e.current=t)}let Qr=0;function Gc(e){const[t,n]=p.useState(e),o=e||t;return p.usLine truncated
*/var hr=Symbol.for("react.element"),br=Symbol.for("react.portal"),co=Symbol.for("react.fragment"),uo=Symbol.for("react.strict_mode"),po=Symbol.for("react.profiler"),fo=Symbol.for("react.provider"),mo=Symbol.for("react.context"),Lc=Symbol.for("react.server_context"),go=Symbol.for("react.forward_ref"),ho=Symbol.for("react.suspense"),bo=Symbol.for("react.suspense_list"),vo=Symbol.for("react.memo"),yo=Symbol.for("react.lazy"),zc=Symbol.for("react.offscreen"),As;As=Symbol.for("react.module.reference");function Ye(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case hr:switch(e=e.type,e){case co:case po:case uo:case ho:case bo:return e;default:switch(e=e&&e.$$typeof,e){case Lc:case mo:case go:case yo:case vo:case fo:return e;default:return t}}case br:return t}}}te.ContextConsumer=mo;te.ContextProvider=fo;te.Element=hr;te.ForwardRef=go;te.Fragment=co;te.Lazy=yo;te.Memo=vo;te.Portal=br;te.Profiler=po;te.StrictMode=uo;te.Suspense=ho;te.SuspenseList=bo;te.isAsyncMode=function(){return!1};te.isConcurrentMode=function(){return!1};te.isContextConsumer=function(e){return Ye(e)===mo};te.isContextProvider=function(e){return Ye(e)===fo};te.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===hr};te.isForwardRef=function(e){return Ye(e)===go};te.isFragment=function(e){return Ye(e)===co};te.isLazy=function(e){return Ye(e)===yo};te.isMemo=function(e){return Ye(e)===vo};te.isPortal=function(e){return Ye(e)===br};te.isProfiler=function(e){return Ye(e)===po};te.isStrictMode=function(e){return Ye(e)===uo};te.isSuspense=function(e){return Ye(e)===ho};te.isSuspenseList=function(e){return Ye(e)===bo};te.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===co||e===po||e===uo||e===ho||e===bo||e===zc||typeof e=="object"&&e!==null&&(e.$$typeof===yo||e.$$typeof===vo||e.$$typeof===fo||e.$$typeof===mo||e.$$typeof===go||e.$$typeof===As||e.getModuleId!==void 0)};te.typeOf=Ye;Os.exports=te;var Xr=Os.exports;const Fc=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;function Ns(e){const t=`${e}`.match(Fc);return t&&t[1]||""}function _s(e,t=""){return e.displayName||e.name||Ns(e)||t}function Yr(e,t,n){const o=_s(t);return e.displayName||(o!==""?`${n}(${o})`:n)}function jc(e){if(e!=null){if(typeof e=="string")return e;if(typeof e=="function")return _s(e,"Component");if(typeof e=="object")switch(e.$$typeof){case Xr.ForwardRef:return Yr(e,e.render,"ForwardRef");case Xr.Memo:return Yr(e,e.type,"memo");default:return}}}const Dc=Object.freeze(Object.defineProperty({__proto__:null,default:jc,getFunctionName:Ns},Symbol.toStringTag,{value:"Module"}));function un(e,t){const n=u({},t);return Object.keys(e).forEach(o=>{if(o.toString().match(/^(components|slots)$/))n[o]=u({},e[o],n[o]);else if(o.toString().match(/^(componentsProps|slotProps)$/)){const r=e[o]||{},i=t[o];n[o]={},!i||!Object.keys(i)?n[o]=r:!r||!Object.keys(r)?n[o]=i:(n[o]=u({},i),Object.keys(r).forEach(s=>{n[o][s]=un(r[s],i[s])}))}else n[o]===void 0&&(n[o]=e[o])}),n}function Wc(e){const{theme:t,name:n,props:o}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?o:un(t.components[n].defaultProps,o)}const lt=typeof window<"u"?p.useLayoutEffect:p.useEffect;function Uc(e,t,n,o,r){const[i,s]=p.useState(()=>r&&n?n(e).matches:o?o(e).matches:t);return lt(()=>{let a=!0;if(!n)return;const l=n(e),c=()=>{a&&s(l.matches)};return c(),l.addListener(c),()=>{a=!1,l.removeListener(c)}},[e,n]),i}const Bs=p.useSyncExternalStore;function Hc(e,t,n,o,r){const i=p.useCallback(()=>t,[t]),s=p.useMemo(()=>{if(r&&n)return()=>n(e).matches;if(o!==null){const{matches:d}=o(e);return()=>d}return i},[i,e,o,r,n]),[a,l]=p.useMemo(()=>{if(n===null)return[i,()=>()=>{}];const d=n(e);return[()=>d.matches,f=>(d.addListener(f),()=>{d.removeListener(f)})]},[i,n,e]);return Bs(l,a,s)}function Tb(e,t={}){const n=ws(),o=typeof window<"u"&&typeof window.matchMedia<"u",{defaultMatches:r=!1,matchMedia:i=o?window.matchMedia:null,ssrMatchMedia:s=null,noSsr:a=!1}=Wc({name:"MuiUseMediaQuery",props:t,theme:n});let l=typeof e=="function"?e(n):e;return l=l.replace(/^@media( ?)/m,""),(Bs!==void 0?Hc:Uc)(l,r,i,s,a)}function Vc(e,t=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,n))}const Kc=Object.freeze(Object.defineProperty({__proto__:null,default:Vc},Symbol.toStringTag,{value:"Module"}));function Zr(...e){return e.reduce((t,n)=>n==null?t:function(...r){t.apply(this,r),n.apply(this,r)},()=>{})}function Ls(e,t=166){let n;function o(...r){const i=()=>{e.apply(this,r)};clearTimeout(n),n=setTimeout(i,t)}return o.clear=()=>{clearTimeout(n)},o}function To(e,t){var n,o;return p.isValidElement(e)&&t.indexOf((n=e.type.muiName)!=null?n:(o=e.type)==null||(o=o._payload)==null||(o=o.value)==null?void 0:o.muiName)!==-1}function Ee(e){return e&&e.ownerDocument||document}function $t(e){return Ee(e).defaultView||window}function Vo(e,t){typeof e=="function"?e(t):e&&(e.current=t)}let Qr=0;function Gc(e){const[t,n]=p.useState(e),o=e||t;return p.usLine truncated
0% {
transform: scale(0);
opacity: 0.1;
@@ -94,8 +94,8 @@ import{r as p,R as jo,g as gt,a as st,b as yn,c as ga}from"./react-DXd9vB-a.js";
animation-iteration-count: infinite;
animation-delay: 200ms;
}
`),Ve.rippleVisible,_d,Jo,({theme:e})=>e.transitions.easing.easeInOut,Ve.ripplePulsate,({theme:e})=>e.transitions.duration.shorter,Ve.child,Ve.childLeaving,Bd,Jo,({theme:e})=>e.transitions.easing.easeInOut,Ve.childPulsate,Ld,({theme:e})=>e.transitions.easing.easeInOut),jd=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiTouchRipple"}),{center:r=!1,classes:i={},className:s}=o,a=O(o,Ad),[l,c]=p.useState([]),d=p.useRef(0),f=p.useRef(null);p.useEffect(()=>{f.current&&(f.current(),f.current=null)},[l]);const h=p.useRef(!1),b=yr(),m=p.useRef(null),g=p.useRef(null),$=p.useCallback(x=>{const{pulsate:S,rippleX:P,rippleY:k,rippleSize:w,cb:E}=x;c(T=>[...T,C.jsx(Fd,{classes:{ripple:F(i.ripple,Ve.ripple),rippleVisible:F(i.rippleVisible,Ve.rippleVisible),ripplePulsate:F(i.ripplePulsate,Ve.ripplePulsate),child:F(i.child,Ve.child),childLeaving:F(i.childLeaving,Ve.childLeaving),childPulsate:F(i.childPulsate,Ve.childPulsate)},timeout:Jo,pulsate:S,rippleX:P,rippleY:k,rippleSize:w},d.current)]),d.current+=1,f.current=E},[i]),v=p.useCallback((x={},S={},P=()=>{})=>{const{pulsate:k=!1,center:w=r||S.pulsate,fakeElement:E=!1}=S;if((x==null?void 0:x.type)==="mousedown"&&h.current){h.current=!1;return}(x==null?void 0:x.type)==="touchstart"&&(h.current=!0);const T=E?null:g.current,D=T?T.getBoundingClientRect():{width:0,height:0,left:0,top:0};let z,L,_;if(w||x===void 0||x.clientX===0&&x.clientY===0||!x.clientX&&!x.touches)z=Math.round(D.width/2),L=Math.round(D.height/2);else{const{clientX:B,clientY:N}=x.touches&&x.touches.length>0?x.touches[0]:x;z=Math.round(B-D.left),L=Math.round(N-D.top)}if(w)_=Math.sqrt((2*D.width**2+D.height**2)/3),_%2===0&&(_+=1);else{const B=Math.max(Math.abs((T?T.clientWidth:0)-z),z)*2+2,N=Math.max(Math.abs((T?T.clientHeight:0)-L),L)*2+2;_=Math.sqrt(B**2+N**2)}x!=null&&x.touches?m.current===null&&(m.current=()=>{$({pulsate:k,rippleX:z,rippleY:L,rippleSize:_,cb:P})},b.start(Nd,()=>{m.current&&(m.current(),m.current=null)})):$({pulsate:k,rippleX:z,rippleY:L,rippleSize:_,cb:P})},[r,$,b]),R=p.useCallback(()=>{v({},{pulsate:!0})},[v]),y=p.useCallback((x,S)=>{if(b.clear(),(x==null?void 0:x.type)==="touchend"&&m.current){m.current(),m.current=null,b.start(0,()=>{y(x,S)});return}m.current=null,c(P=>P.length>0?P.slice(1):P),f.current=S},[b]);return p.useImperativeHandle(n,()=>({pulsate:R,start:v,stop:y}),[R,v,y]),C.jsx(zd,u({className:F(Ve.root,i.root,s),ref:g},a,{children:C.jsx(Pr,{component:null,exit:!0,children:l})}))});function Dd(e){return V("MuiButtonBase",e)}const Wd=U("MuiButtonBase",["root","disabled","focusVisible"]),Ud=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],Hd=e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:o,classes:r}=e,s=K({root:["root",t&&"disabled",n&&"focusVisible"]},Dd,r);return n&&o&&(s.root+=` ${o}`),s},Vd=M("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Wd.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),Ro=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiButtonBase"}),{action:r,centerRipple:i=!1,children:s,className:a,component:l="button",disabled:c=!1,disableRipple:d=!1,disableTouchRipple:f=!1,focusRipple:h=!1,LinkComponent:b="a",onBlur:m,onClick:g,onContextMenu:$,onDragLeave:v,onFocus:R,onFocusVisible:y,onKeyDown:x,onKeyUp:S,onMouseDown:P,onMouseLeave:k,onMouseUp:w,onTouchEnd:E,onTouchMove:T,onTouchStart:D,tabIndex:z=0,TouchRippleProps:L,touchRippleRef:_,type:B}=o,N=O(o,Ud),j=p.useRef(null),A=p.useRef(null),Y=$e(A,_),{isFocusVisibleRef:ie,onFocus:we,onBlur:he,ref:fe}=zs(),[X,se]=p.useState(!1);c&&X&&se(!1),p.useImperativeHandle(r,()=>({focusVisible:()=>{se(!0),j.current.focus()}}),[]);const[ae,Te]=p.useState(!1);p.useEffect(()=>{Te(!0)},[]);const Me=ae&&!d&&!c;p.useEffect(()=>{X&&h&&!d&&ae&&A.current.pulsate()},[d,h,X,ae]);function be(H,it,Kt=f){return at(Gt=>(it&&it(Gt),!Kt&&A.current&&A.current[H](Gt),!0))}const Ie=be("start",P),J=be("stop",$),de=be("stop",v),q=be("stop",w),ne=be("stop",H=>{X&&H.preventDefault(),k&&k(H)}),le=be("start",D),ut=be("stop",E),je=be("stop",T),De=be("stop",H=>{he(H),ie.current===!1&&se(!1),m&&m(H)},!1),Ze=at(H=>{j.current||(j.current=H.currentTarget),we(H),ie.current===!0&&(se(!0),y&&y(H)),R&&R(H)}),We=()=>{con Line truncated
`&&(x.value+=" ");const S=y.boxSizing,P=Rn(y.paddingBottom)+Rn(y.paddingTop),k=Rn(y.borderBottomWidth)+Rn(y.borderTopWidth),w=x.scrollHeight;x.value="x";const E=x.scrollHeight;let T=w;i&&(T=Math.max(Number(i)*E,T)),r&&(T=Math.min(Number(r)*E,T)),T=Math.max(T,E);const D=T+(S==="border-box"?P+k:0),z=Math.abs(T-w)<=1;return{outerHeightStyle:D,overflowing:z}},[r,i,t.placeholder]),g=p.useCallback(()=>{const v=m();if(Rp(v))return;const R=v.outerHeightStyle,y=d.current;h.current!==R&&(h.current=R,y.style.height=`${R}px`),y.style.overflow=v.overflowing?"hidden":""},[m]);lt(()=>{const v=()=>{g()};let R;const y=Ls(v),x=d.current,S=$t(x);S.addEventListener("resize",y);let P;return typeof ResizeObserver<"u"&&(P=new ResizeObserver(v),P.observe(x)),()=>{y.clear(),cancelAnimationFrame(R),S.removeEventListener("resize",y),P&&P.disconnect()}},[m,g]),lt(()=>{g()});const $=v=>{c||g(),o&&o(v)};return C.jsxs(p.Fragment,{children:[C.jsx("textarea",u({value:a,onChange:$,ref:f,rows:i,style:s},l)),C.jsx("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:b,tabIndex:-1,style:u({},$p.shadow,s,{paddingTop:0,paddingBottom:0})})]})});function Ut({props:e,states:t,muiFormControl:n}){return t.reduce((o,r)=>(o[r]=e[r],n&&typeof e[r]>"u"&&(o[r]=n[r]),o),{})}const Er=p.createContext(void 0);function Ht(){return p.useContext(Er)}function kp(e){return C.jsx(wc,u({},e,{defaultTheme:Sr,themeId:Dn}))}function Ci(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Fn(e,t=!1){return e&&(Ci(e.value)&&e.value!==""||t&&Ci(e.defaultValue)&&e.defaultValue!=="")}function Pp(e){return e.startAdornment}function Ep(e){return V("MuiInputBase",e)}const Ft=U("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),Mp=["aria-describedby","autoComplete","autoFocus","className","color","components","componentsProps","defaultValue","disabled","disableInjectingGlobalStyles","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","size","slotProps","slots","startAdornment","type","value"],So=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size==="small"&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${I(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},ko=(e,t)=>{const{ownerState:n}=e;return[t.input,n.size==="small"&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type==="search"&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},wp=e=>{const{classes:t,color:n,disabled:o,error:r,endAdornment:i,focused:s,formControl:a,fullWidth:l,hiddenLabel:c,multiline:d,readOnly:f,size:h,startAdornment:b,type:m}=e,g={root:["root",`color${I(n)}`,o&&"disabled",r&&"error",l&&"fullWidth",s&&"focused",a&&"formControl",h&&h!=="medium"&&`size${I(h)}`,d&&"multiline",b&&"adornedStart",i&&"adornedEnd",c&&"hiddenLabel",f&&"readOnly"],input:["input",o&&"disabled",m==="search"&&"inputTypeSearch",d&&"inputMultiline",h==="small"&&"inputSizeSmall",c&&"inputHiddenLabel",b&&"inputAdornedStart",i&&"inputAdornedEnd",f&&"readOnly"]};return K(g,Ep,t)},Po=M("div",{name:"MuiInputBase",slot:"Root",overridesResolver:So})(({theme:e,ownerState:t})=>u({},e.typography.body1,{color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${Ft.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"}},t.multiline&&u({padding:"4px 0 5px"},t.size==="small"&&{paddingTop:1}),t.fullWidth&&{width:"100%"})),Eo=M("input",{name:"MuiInputBase",slot:"Input",overridesResolver:ko})(({theme:e,ownerState:t})=>{const n=e.palette.mode==="light",o=u({color:"currentColor"},e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5},{transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})}),r={opacity:"0 !important"},i=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5};return u({font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&:-ms-input-placeholder":o,"&::-ms-input-placeholder":o,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${Ft.formLine truncated
`),Ve.rippleVisible,_d,Jo,({theme:e})=>e.transitions.easing.easeInOut,Ve.ripplePulsate,({theme:e})=>e.transitions.duration.shorter,Ve.child,Ve.childLeaving,Bd,Jo,({theme:e})=>e.transitions.easing.easeInOut,Ve.childPulsate,Ld,({theme:e})=>e.transitions.easing.easeInOut),jd=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiTouchRipple"}),{center:r=!1,classes:i={},className:s}=o,a=O(o,Ad),[l,c]=p.useState([]),d=p.useRef(0),f=p.useRef(null);p.useEffect(()=>{f.current&&(f.current(),f.current=null)},[l]);const h=p.useRef(!1),b=yr(),m=p.useRef(null),g=p.useRef(null),$=p.useCallback(x=>{const{pulsate:S,rippleX:P,rippleY:k,rippleSize:w,cb:E}=x;c(T=>[...T,C.jsx(Fd,{classes:{ripple:F(i.ripple,Ve.ripple),rippleVisible:F(i.rippleVisible,Ve.rippleVisible),ripplePulsate:F(i.ripplePulsate,Ve.ripplePulsate),child:F(i.child,Ve.child),childLeaving:F(i.childLeaving,Ve.childLeaving),childPulsate:F(i.childPulsate,Ve.childPulsate)},timeout:Jo,pulsate:S,rippleX:P,rippleY:k,rippleSize:w},d.current)]),d.current+=1,f.current=E},[i]),v=p.useCallback((x={},S={},P=()=>{})=>{const{pulsate:k=!1,center:w=r||S.pulsate,fakeElement:E=!1}=S;if((x==null?void 0:x.type)==="mousedown"&&h.current){h.current=!1;return}(x==null?void 0:x.type)==="touchstart"&&(h.current=!0);const T=E?null:g.current,D=T?T.getBoundingClientRect():{width:0,height:0,left:0,top:0};let z,L,_;if(w||x===void 0||x.clientX===0&&x.clientY===0||!x.clientX&&!x.touches)z=Math.round(D.width/2),L=Math.round(D.height/2);else{const{clientX:B,clientY:N}=x.touches&&x.touches.length>0?x.touches[0]:x;z=Math.round(B-D.left),L=Math.round(N-D.top)}if(w)_=Math.sqrt((2*D.width**2+D.height**2)/3),_%2===0&&(_+=1);else{const B=Math.max(Math.abs((T?T.clientWidth:0)-z),z)*2+2,N=Math.max(Math.abs((T?T.clientHeight:0)-L),L)*2+2;_=Math.sqrt(B**2+N**2)}x!=null&&x.touches?m.current===null&&(m.current=()=>{$({pulsate:k,rippleX:z,rippleY:L,rippleSize:_,cb:P})},b.start(Nd,()=>{m.current&&(m.current(),m.current=null)})):$({pulsate:k,rippleX:z,rippleY:L,rippleSize:_,cb:P})},[r,$,b]),R=p.useCallback(()=>{v({},{pulsate:!0})},[v]),y=p.useCallback((x,S)=>{if(b.clear(),(x==null?void 0:x.type)==="touchend"&&m.current){m.current(),m.current=null,b.start(0,()=>{y(x,S)});return}m.current=null,c(P=>P.length>0?P.slice(1):P),f.current=S},[b]);return p.useImperativeHandle(n,()=>({pulsate:R,start:v,stop:y}),[R,v,y]),C.jsx(zd,u({className:F(Ve.root,i.root,s),ref:g},a,{children:C.jsx(Pr,{component:null,exit:!0,children:l})}))});function Dd(e){return V("MuiButtonBase",e)}const Wd=U("MuiButtonBase",["root","disabled","focusVisible"]),Ud=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],Hd=e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:o,classes:r}=e,s=K({root:["root",t&&"disabled",n&&"focusVisible"]},Dd,r);return n&&o&&(s.root+=` ${o}`),s},Vd=M("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Wd.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),Ro=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiButtonBase"}),{action:r,centerRipple:i=!1,children:s,className:a,component:l="button",disabled:c=!1,disableRipple:d=!1,disableTouchRipple:f=!1,focusRipple:h=!1,LinkComponent:b="a",onBlur:m,onClick:g,onContextMenu:$,onDragLeave:v,onFocus:R,onFocusVisible:y,onKeyDown:x,onKeyUp:S,onMouseDown:P,onMouseLeave:k,onMouseUp:w,onTouchEnd:E,onTouchMove:T,onTouchStart:D,tabIndex:z=0,TouchRippleProps:L,touchRippleRef:_,type:B}=o,N=O(o,Ud),j=p.useRef(null),A=p.useRef(null),Y=$e(A,_),{isFocusVisibleRef:ie,onFocus:Te,onBlur:he,ref:fe}=zs(),[X,se]=p.useState(!1);c&&X&&se(!1),p.useImperativeHandle(r,()=>({focusVisible:()=>{se(!0),j.current.focus()}}),[]);const[ae,Ie]=p.useState(!1);p.useEffect(()=>{Ie(!0)},[]);const we=ae&&!d&&!c;p.useEffect(()=>{X&&h&&!d&&ae&&A.current.pulsate()},[d,h,X,ae]);function be(H,it,Kt=f){return at(Gt=>(it&&it(Gt),!Kt&&A.current&&A.current[H](Gt),!0))}const Oe=be("start",P),J=be("stop",$),de=be("stop",v),q=be("stop",w),ne=be("stop",H=>{X&&H.preventDefault(),k&&k(H)}),le=be("start",D),ut=be("stop",E),je=be("stop",T),De=be("stop",H=>{he(H),ie.current===!1&&se(!1),m&&m(H)},!1),Ze=at(H=>{j.current||(j.current=H.currentTarget),Te(H),ie.current===!0&&(se(!0),y&&y(H)),R&&R(H)}),We=()=>{con Line truncated
`&&(x.value+=" ");const S=y.boxSizing,P=Rn(y.paddingBottom)+Rn(y.paddingTop),k=Rn(y.borderBottomWidth)+Rn(y.borderTopWidth),w=x.scrollHeight;x.value="x";const E=x.scrollHeight;let T=w;i&&(T=Math.max(Number(i)*E,T)),r&&(T=Math.min(Number(r)*E,T)),T=Math.max(T,E);const D=T+(S==="border-box"?P+k:0),z=Math.abs(T-w)<=1;return{outerHeightStyle:D,overflowing:z}},[r,i,t.placeholder]),g=p.useCallback(()=>{const v=m();if(Rp(v))return;const R=v.outerHeightStyle,y=d.current;h.current!==R&&(h.current=R,y.style.height=`${R}px`),y.style.overflow=v.overflowing?"hidden":""},[m]);lt(()=>{const v=()=>{g()};let R;const y=Ls(v),x=d.current,S=$t(x);S.addEventListener("resize",y);let P;return typeof ResizeObserver<"u"&&(P=new ResizeObserver(v),P.observe(x)),()=>{y.clear(),cancelAnimationFrame(R),S.removeEventListener("resize",y),P&&P.disconnect()}},[m,g]),lt(()=>{g()});const $=v=>{c||g(),o&&o(v)};return C.jsxs(p.Fragment,{children:[C.jsx("textarea",u({value:a,onChange:$,ref:f,rows:i,style:s},l)),C.jsx("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:b,tabIndex:-1,style:u({},$p.shadow,s,{paddingTop:0,paddingBottom:0})})]})});function Ut({props:e,states:t,muiFormControl:n}){return t.reduce((o,r)=>(o[r]=e[r],n&&typeof e[r]>"u"&&(o[r]=n[r]),o),{})}const Er=p.createContext(void 0);function Ht(){return p.useContext(Er)}function kp(e){return C.jsx(wc,u({},e,{defaultTheme:Sr,themeId:Dn}))}function Ci(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Fn(e,t=!1){return e&&(Ci(e.value)&&e.value!==""||t&&Ci(e.defaultValue)&&e.defaultValue!=="")}function Pp(e){return e.startAdornment}function Ep(e){return V("MuiInputBase",e)}const Ft=U("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),Mp=["aria-describedby","autoComplete","autoFocus","className","color","components","componentsProps","defaultValue","disabled","disableInjectingGlobalStyles","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","size","slotProps","slots","startAdornment","type","value"],So=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,n.size==="small"&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${I(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},ko=(e,t)=>{const{ownerState:n}=e;return[t.input,n.size==="small"&&t.inputSizeSmall,n.multiline&&t.inputMultiline,n.type==="search"&&t.inputTypeSearch,n.startAdornment&&t.inputAdornedStart,n.endAdornment&&t.inputAdornedEnd,n.hiddenLabel&&t.inputHiddenLabel]},wp=e=>{const{classes:t,color:n,disabled:o,error:r,endAdornment:i,focused:s,formControl:a,fullWidth:l,hiddenLabel:c,multiline:d,readOnly:f,size:h,startAdornment:b,type:m}=e,g={root:["root",`color${I(n)}`,o&&"disabled",r&&"error",l&&"fullWidth",s&&"focused",a&&"formControl",h&&h!=="medium"&&`size${I(h)}`,d&&"multiline",b&&"adornedStart",i&&"adornedEnd",c&&"hiddenLabel",f&&"readOnly"],input:["input",o&&"disabled",m==="search"&&"inputTypeSearch",d&&"inputMultiline",h==="small"&&"inputSizeSmall",c&&"inputHiddenLabel",b&&"inputAdornedStart",i&&"inputAdornedEnd",f&&"readOnly"]};return K(g,Ep,t)},Po=M("div",{name:"MuiInputBase",slot:"Root",overridesResolver:So})(({theme:e,ownerState:t})=>u({},e.typography.body1,{color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${Ft.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"}},t.multiline&&u({padding:"4px 0 5px"},t.size==="small"&&{paddingTop:1}),t.fullWidth&&{width:"100%"})),Eo=M("input",{name:"MuiInputBase",slot:"Input",overridesResolver:ko})(({theme:e,ownerState:t})=>{const n=e.palette.mode==="light",o=u({color:"currentColor"},e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5},{transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})}),r={opacity:"0 !important"},i=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:n?.42:.5};return u({font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&:-ms-input-placeholder":o,"&::-ms-input-placeholder":o,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${Ft.formLine truncated
0% {
transform: rotate(0deg);
}
@@ -122,7 +122,7 @@ import{r as p,R as jo,g as gt,a as st,b as yn,c as ga}from"./react-DXd9vB-a.js";
animation: ${0} 1.4s linear infinite;
`),Mf)),Of=M("svg",{name:"MuiCircularProgress",slot:"Svg",overridesResolver:(e,t)=>t.svg})({display:"block"}),Af=M("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.circle,t[`circle${I(n.variant)}`],n.disableShrink&&t.circleDisableShrink]}})(({ownerState:e,theme:t})=>u({stroke:"currentColor"},e.variant==="determinate"&&{transition:t.transitions.create("stroke-dashoffset")},e.variant==="indeterminate"&&{strokeDasharray:"80px, 200px",strokeDashoffset:0}),({ownerState:e})=>e.variant==="indeterminate"&&!e.disableShrink&&St(Pi||(Pi=Mo`
animation: ${0} 1.4s ease-in-out infinite;
`),wf)),jb=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiCircularProgress"}),{className:r,color:i="primary",disableShrink:s=!1,size:a=40,style:l,thickness:c=3.6,value:d=0,variant:f="indeterminate"}=o,h=O(o,Ef),b=u({},o,{color:i,disableShrink:s,size:a,thickness:c,value:d,variant:f}),m=Tf(b),g={},$={},v={};if(f==="determinate"){const R=2*Math.PI*((ft-c)/2);g.strokeDasharray=R.toFixed(3),v["aria-valuenow"]=Math.round(d),g.strokeDashoffset=`${((100-d)/100*R).toFixed(3)}px`,$.transform="rotate(-90deg)"}return C.jsx(If,u({className:F(m.root,r),style:u({width:a,height:a},$,l),ownerState:b,ref:n,role:"progressbar"},v,h,{children:C.jsx(Of,{className:m.svg,ownerState:b,viewBox:`${ft/2} ${ft/2} ${ft} ${ft}`,children:C.jsx(Af,{className:m.circle,style:g,ownerState:b,cx:ft,cy:ft,r:(ft-c)/2,fill:"none",strokeWidth:c})})}))});function Ei(e){return e.substring(2).toLowerCase()}function Nf(e,t){return t.documentElement.clientWidth<e.clientX||t.documentElement.clientHeight<e.clientY}function _f(e){const{children:t,disableReactTree:n=!1,mouseEvent:o="onClick",onClickAway:r,touchEvent:i="onTouchEnd"}=e,s=p.useRef(!1),a=p.useRef(null),l=p.useRef(!1),c=p.useRef(!1);p.useEffect(()=>(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const d=$e(t.ref,a),f=at(m=>{const g=c.current;c.current=!1;const $=Ee(a.current);if(!l.current||!a.current||"clientX"in m&&Nf(m,$))return;if(s.current){s.current=!1;return}let v;m.composedPath?v=m.composedPath().indexOf(a.current)>-1:v=!$.documentElement.contains(m.target)||a.current.contains(m.target),!v&&(n||!g)&&r(m)}),h=m=>g=>{c.current=!0;const $=t.props[m];$&&$(g)},b={ref:d};return i!==!1&&(b[i]=h(i)),p.useEffect(()=>{if(i!==!1){const m=Ei(i),g=Ee(a.current),$=()=>{s.current=!0};return g.addEventListener(m,f),g.addEventListener("touchmove",$),()=>{g.removeEventListener(m,f),g.removeEventListener("touchmove",$)}}},[f,i]),o!==!1&&(b[o]=h(o)),p.useEffect(()=>{if(o!==!1){const m=Ei(o),g=Ee(a.current);return g.addEventListener(m,f),()=>{g.removeEventListener(m,f)}}},[f,o]),C.jsx(p.Fragment,{children:p.cloneElement(t,b)})}function Bf(e){const t=Ee(e);return t.body===e?$t(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function on(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function Mi(e){return parseInt($t(e).getComputedStyle(e).paddingRight,10)||0}function Lf(e){const n=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(e.tagName)!==-1,o=e.tagName==="INPUT"&&e.getAttribute("type")==="hidden";return n||o}function wi(e,t,n,o,r){const i=[t,n,...o];[].forEach.call(e.children,s=>{const a=i.indexOf(s)===-1,l=!Lf(s);a&&l&&on(s,r)})}function _o(e,t){let n=-1;return e.some((o,r)=>t(o)?(n=r,!0):!1),n}function zf(e,t){const n=[],o=e.container;if(!t.disableScrollLock){if(Bf(o)){const s=Fs(Ee(o));n.push({value:o.style.paddingRight,property:"padding-right",el:o}),o.style.paddingRight=`${Mi(o)+s}px`;const a=Ee(o).querySelectorAll(".mui-fixed");[].forEach.call(a,l=>{n.push({value:l.style.paddingRight,property:"padding-right",el:l}),l.style.paddingRight=`${Mi(l)+s}px`})}let i;if(o.parentNode instanceof DocumentFragment)i=Ee(o).body;else{const s=o.parentElement,a=$t(o);i=(s==null?void 0:s.nodeName)==="HTML"&&a.getComputedStyle(s).overflowY==="scroll"?s:o}n.push({value:i.style.overflow,property:"overflow",el:i},{value:i.style.overflowX,property:"overflow-x",el:i},{value:i.style.overflowY,property:"overflow-y",el:i}),i.style.overflow="hidden"}return()=>{n.forEach(({value:i,el:s,property:a})=>{i?s.style.setProperty(a,i):s.style.removeProperty(a)})}}function Ff(e){const t=[];return[].forEach.call(e.children,n=>{n.getAttribute("aria-hidden")==="true"&&t.push(n)}),t}class jf{constructor(){this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}add(t,n){let o=this.modals.indexOf(t);if(o!==-1)return o;o=this.modals.length,this.modals.push(t),t.modalRef&&on(t.modalRef,!1);const r=Ff(n);wi(n,t.mount,t.modalRef,r,!0);const i=_o(this.containers,s=>s.container===n);return i!==-1?(this.containers[i].modals.push(t),o):(this.containers.push({modals:[t],container:n,restore:null,hiddenSiblings:r}),o)}mount(t,n){const o=_o(this.containers,i=>i.modals.indexOf(t)!==-1),r=this.containers[o];r.restore||(r.restore=zf(r,n))}remove(t,n=!0){const o=this.modals.indexOf(t);if(o===-1)return o;const r=_o(this.containers,s=>s.modals.indexOf(t)!==-1),i=this.containers[r];if(i.modals.splice(i.modals.indexOf(t),1),this.modals.splice(o,1),i.modals.length===0)i.restore&&i.restore(),t.modalRef&&on(t.modalRef,n),wi(i.container,t.mount,t.modalRef,i.hiddenSiblings,!1),this.containers.splice(r,1);else{const s=i.modals[i.modals.length-1];s.modalRef&&on(s.modalRef,!1)}return o}isTopModal(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}const Df=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([co Line truncated
`),wf)),jb=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiCircularProgress"}),{className:r,color:i="primary",disableShrink:s=!1,size:a=40,style:l,thickness:c=3.6,value:d=0,variant:f="indeterminate"}=o,h=O(o,Ef),b=u({},o,{color:i,disableShrink:s,size:a,thickness:c,value:d,variant:f}),m=Tf(b),g={},$={},v={};if(f==="determinate"){const R=2*Math.PI*((ft-c)/2);g.strokeDasharray=R.toFixed(3),v["aria-valuenow"]=Math.round(d),g.strokeDashoffset=`${((100-d)/100*R).toFixed(3)}px`,$.transform="rotate(-90deg)"}return C.jsx(If,u({className:F(m.root,r),style:u({width:a,height:a},$,l),ownerState:b,ref:n,role:"progressbar"},v,h,{children:C.jsx(Of,{className:m.svg,ownerState:b,viewBox:`${ft/2} ${ft/2} ${ft} ${ft}`,children:C.jsx(Af,{className:m.circle,style:g,ownerState:b,cx:ft,cy:ft,r:(ft-c)/2,fill:"none",strokeWidth:c})})}))});function Ei(e){return e.substring(2).toLowerCase()}function Nf(e,t){return t.documentElement.clientWidth<e.clientX||t.documentElement.clientHeight<e.clientY}function _f(e){const{children:t,disableReactTree:n=!1,mouseEvent:o="onClick",onClickAway:r,touchEvent:i="onTouchEnd"}=e,s=p.useRef(!1),a=p.useRef(null),l=p.useRef(!1),c=p.useRef(!1);p.useEffect(()=>(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const d=$e(t.ref,a),f=at(m=>{const g=c.current;c.current=!1;const $=Ee(a.current);if(!l.current||!a.current||"clientX"in m&&Nf(m,$))return;if(s.current){s.current=!1;return}let v;m.composedPath?v=m.composedPath().indexOf(a.current)>-1:v=!$.documentElement.contains(m.target)||a.current.contains(m.target),!v&&(n||!g)&&r(m)}),h=m=>g=>{c.current=!0;const $=t.props[m];$&&$(g)},b={ref:d};return i!==!1&&(b[i]=h(i)),p.useEffect(()=>{if(i!==!1){const m=Ei(i),g=Ee(a.current),$=()=>{s.current=!0};return g.addEventListener(m,f),g.addEventListener("touchmove",$),()=>{g.removeEventListener(m,f),g.removeEventListener("touchmove",$)}}},[f,i]),o!==!1&&(b[o]=h(o)),p.useEffect(()=>{if(o!==!1){const m=Ei(o),g=Ee(a.current);return g.addEventListener(m,f),()=>{g.removeEventListener(m,f)}}},[f,o]),C.jsx(p.Fragment,{children:p.cloneElement(t,b)})}function Bf(e){const t=Ee(e);return t.body===e?$t(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function on(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function Mi(e){return parseInt($t(e).getComputedStyle(e).paddingRight,10)||0}function Lf(e){const n=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(e.tagName)!==-1,o=e.tagName==="INPUT"&&e.getAttribute("type")==="hidden";return n||o}function wi(e,t,n,o,r){const i=[t,n,...o];[].forEach.call(e.children,s=>{const a=i.indexOf(s)===-1,l=!Lf(s);a&&l&&on(s,r)})}function _o(e,t){let n=-1;return e.some((o,r)=>t(o)?(n=r,!0):!1),n}function zf(e,t){const n=[],o=e.container;if(!t.disableScrollLock){if(Bf(o)){const s=Fs(Ee(o));n.push({value:o.style.paddingRight,property:"padding-right",el:o}),o.style.paddingRight=`${Mi(o)+s}px`;const a=Ee(o).querySelectorAll(".mui-fixed");[].forEach.call(a,l=>{n.push({value:l.style.paddingRight,property:"padding-right",el:l}),l.style.paddingRight=`${Mi(l)+s}px`})}let i;if(o.parentNode instanceof DocumentFragment)i=Ee(o).body;else{const s=o.parentElement,a=$t(o);i=(s==null?void 0:s.nodeName)==="HTML"&&a.getComputedStyle(s).overflowY==="scroll"?s:o}n.push({value:i.style.overflow,property:"overflow",el:i},{value:i.style.overflowX,property:"overflow-x",el:i},{value:i.style.overflowY,property:"overflow-y",el:i}),i.style.overflow="hidden"}return()=>{n.forEach(({value:i,el:s,property:a})=>{i?s.style.setProperty(a,i):s.style.removeProperty(a)})}}function Ff(e){const t=[];return[].forEach.call(e.children,n=>{n.getAttribute("aria-hidden")==="true"&&t.push(n)}),t}class jf{constructor(){this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}add(t,n){let o=this.modals.indexOf(t);if(o!==-1)return o;o=this.modals.length,this.modals.push(t),t.modalRef&&on(t.modalRef,!1);const r=Ff(n);wi(n,t.mount,t.modalRef,r,!0);const i=_o(this.containers,s=>s.container===n);return i!==-1?(this.containers[i].modals.push(t),o):(this.containers.push({modals:[t],container:n,restore:null,hiddenSiblings:r}),o)}mount(t,n){const o=_o(this.containers,i=>i.modals.indexOf(t)!==-1),r=this.containers[o];r.restore||(r.restore=zf(r,n))}remove(t,n=!0){const o=this.modals.indexOf(t);if(o===-1)return o;const r=_o(this.containers,s=>s.modals.indexOf(t)!==-1),i=this.containers[r];if(i.modals.splice(i.modals.indexOf(t),1),this.modals.splice(o,1),i.modals.length===0)i.restore&&i.restore(),t.modalRef&&on(t.modalRef,n),wi(i.container,t.mount,t.modalRef,i.hiddenSiblings,!1),this.containers.splice(r,1);else{const s=i.modals[i.modals.length-1];s.modalRef&&on(s.modalRef,!1)}return o}isTopModal(t){return this.modals.length>0&&this.modals[this.modals.length-1]===t}}const Df=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([co Line truncated
0% {
left: -35%;
right: 100%;
@@ -175,4 +175,4 @@ import{r as p,R as jo,g as gt,a as st,b as yn,c as ga}from"./react-DXd9vB-a.js";
`),kg)),Og=M("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.bar,t[`barColor${I(n.color)}`],(n.variant==="indeterminate"||n.variant==="query")&&t.bar2Indeterminate,n.variant==="buffer"&&t.bar2Buffer]}})(({ownerState:e,theme:t})=>u({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left"},e.variant!=="buffer"&&{backgroundColor:e.color==="inherit"?"currentColor":(t.vars||t).palette[e.color].main},e.color==="inherit"&&{opacity:.3},e.variant==="buffer"&&{backgroundColor:Or(t,e.color),transition:`transform .${tr}s linear`}),({ownerState:e})=>(e.variant==="indeterminate"||e.variant==="query")&&St(Fi||(Fi=Vt`
width: auto;
animation: ${0} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;
`),Pg)),Gb=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiLinearProgress"}),{className:r,color:i="primary",value:s,valueBuffer:a,variant:l="indeterminate"}=o,c=O(o,Sg),d=u({},o,{color:i,variant:l}),f=Mg(d),h=xr(),b={},m={bar1:{},bar2:{}};if((l==="determinate"||l==="buffer")&&s!==void 0){b["aria-valuenow"]=Math.round(s),b["aria-valuemin"]=0,b["aria-valuemax"]=100;let g=s-100;h&&(g=-g),m.bar1.transform=`translateX(${g}%)`}if(l==="buffer"&&a!==void 0){let g=(a||0)-100;h&&(g=-g),m.bar2.transform=`translateX(${g}%)`}return C.jsxs(wg,u({className:F(f.root,r),ownerState:d,role:"progressbar"},b,{ref:n},c,{children:[l==="buffer"?C.jsx(Tg,{className:f.dashed,ownerState:d}):null,C.jsx(Ig,{className:f.bar1,ownerState:d,style:m.bar1}),l==="determinate"?null:C.jsx(Og,{className:f.bar2,ownerState:d,style:m.bar2})]}))});function Ag(e){return V("MuiLink",e)}const Ng=U("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),la={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},_g=e=>la[e]||e,Bg=({theme:e,ownerState:t})=>{const n=_g(t.color),o=zt(e,`palette.${n}`,!1)||t.color,r=zt(e,`palette.${n}Channel`);return"vars"in e&&r?`rgba(${r} / 0.4)`:Ce(o,.4)},Lg=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant","sx"],zg=e=>{const{classes:t,component:n,focusVisible:o,underline:r}=e,i={root:["root",`underline${I(r)}`,n==="button"&&"button",o&&"focusVisible"]};return K(i,Ag,t)},Fg=M(xt,{name:"MuiLink",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`underline${I(n.underline)}`],n.component==="button"&&t.button]}})(({theme:e,ownerState:t})=>u({},t.underline==="none"&&{textDecoration:"none"},t.underline==="hover"&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},t.underline==="always"&&u({textDecoration:"underline"},t.color!=="inherit"&&{textDecorationColor:Bg({theme:e,ownerState:t})},{"&:hover":{textDecorationColor:"inherit"}}),t.component==="button"&&{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Ng.focusVisible}`]:{outline:"auto"}})),qb=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiLink"}),{className:r,color:i="primary",component:s="a",onBlur:a,onFocus:l,TypographyClasses:c,underline:d="always",variant:f="inherit",sx:h}=o,b=O(o,Lg),{isFocusVisibleRef:m,onBlur:g,onFocus:$,ref:v}=zs(),[R,y]=p.useState(!1),x=$e(n,v),S=E=>{g(E),m.current===!1&&y(!1),a&&a(E)},P=E=>{$(E),m.current===!0&&y(!0),l&&l(E)},k=u({},o,{color:i,component:s,focusVisible:R,underline:d,variant:f}),w=zg(k);return C.jsx(Fg,u({color:i,className:F(w.root,r),classes:c,component:s,onBlur:S,onFocus:P,ref:x,ownerState:k,variant:f,sx:[...Object.keys(la).includes(i)?[]:[{color:i}],...Array.isArray(h)?h:[h]]},b))}),nr=p.createContext({});function jg(e){return V("MuiList",e)}U("MuiList",["root","padding","dense","subheader"]);const Dg=["children","className","component","dense","disablePadding","subheader"],Wg=e=>{const{classes:t,disablePadding:n,dense:o,subheader:r}=e;return K({root:["root",!n&&"padding",o&&"dense",r&&"subheader"]},jg,t)},Ug=M("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})(({ownerState:e})=>u({listStyle:"none",margin:0,padding:0,position:"relative"},!e.disablePadding&&{paddingTop:8,paddingBottom:8},e.subheader&&{paddingTop:0})),Hg=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiList"}),{children:r,className:i,component:s="ul",dense:a=!1,disablePadding:l=!1,subheader:c}=o,d=O(o,Dg),f=p.useMemo(()=>({dense:a}),[a]),h=u({},o,{component:s,dense:a,disablePadding:l}),b=Wg(h);return C.jsx(nr.Provider,{value:f,children:C.jsxs(Ug,u({as:s,className:F(b.root,i),ref:n,ownerState:h},d,{children:[c,r]}))})}),ji=U("MuiListItemIcon",["root","alignItemsFlexStart"]),Di=U("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),Vg=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function zo(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function Wi(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function ca(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.indexOf(t.keys.join(""))===0}function Qt(e,t,n,o,r,i){let s=!1,a=r(e,t,t?n:!1);for(;a;){if(a===e.firstChild){if(s)return!1;s=!0}const l=o?!1:a.disabled||a.getAttribute("aria-disabled")==="true";if(!a.hasAttribute("tab Line truncated
`),Pg)),Gb=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiLinearProgress"}),{className:r,color:i="primary",value:s,valueBuffer:a,variant:l="indeterminate"}=o,c=O(o,Sg),d=u({},o,{color:i,variant:l}),f=Mg(d),h=xr(),b={},m={bar1:{},bar2:{}};if((l==="determinate"||l==="buffer")&&s!==void 0){b["aria-valuenow"]=Math.round(s),b["aria-valuemin"]=0,b["aria-valuemax"]=100;let g=s-100;h&&(g=-g),m.bar1.transform=`translateX(${g}%)`}if(l==="buffer"&&a!==void 0){let g=(a||0)-100;h&&(g=-g),m.bar2.transform=`translateX(${g}%)`}return C.jsxs(wg,u({className:F(f.root,r),ownerState:d,role:"progressbar"},b,{ref:n},c,{children:[l==="buffer"?C.jsx(Tg,{className:f.dashed,ownerState:d}):null,C.jsx(Ig,{className:f.bar1,ownerState:d,style:m.bar1}),l==="determinate"?null:C.jsx(Og,{className:f.bar2,ownerState:d,style:m.bar2})]}))});function Ag(e){return V("MuiLink",e)}const Ng=U("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),la={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},_g=e=>la[e]||e,Bg=({theme:e,ownerState:t})=>{const n=_g(t.color),o=zt(e,`palette.${n}`,!1)||t.color,r=zt(e,`palette.${n}Channel`);return"vars"in e&&r?`rgba(${r} / 0.4)`:Ce(o,.4)},Lg=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant","sx"],zg=e=>{const{classes:t,component:n,focusVisible:o,underline:r}=e,i={root:["root",`underline${I(r)}`,n==="button"&&"button",o&&"focusVisible"]};return K(i,Ag,t)},Fg=M(xt,{name:"MuiLink",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`underline${I(n.underline)}`],n.component==="button"&&t.button]}})(({theme:e,ownerState:t})=>u({},t.underline==="none"&&{textDecoration:"none"},t.underline==="hover"&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},t.underline==="always"&&u({textDecoration:"underline"},t.color!=="inherit"&&{textDecorationColor:Bg({theme:e,ownerState:t})},{"&:hover":{textDecorationColor:"inherit"}}),t.component==="button"&&{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Ng.focusVisible}`]:{outline:"auto"}})),qb=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiLink"}),{className:r,color:i="primary",component:s="a",onBlur:a,onFocus:l,TypographyClasses:c,underline:d="always",variant:f="inherit",sx:h}=o,b=O(o,Lg),{isFocusVisibleRef:m,onBlur:g,onFocus:$,ref:v}=zs(),[R,y]=p.useState(!1),x=$e(n,v),S=E=>{g(E),m.current===!1&&y(!1),a&&a(E)},P=E=>{$(E),m.current===!0&&y(!0),l&&l(E)},k=u({},o,{color:i,component:s,focusVisible:R,underline:d,variant:f}),w=zg(k);return C.jsx(Fg,u({color:i,className:F(w.root,r),classes:c,component:s,onBlur:S,onFocus:P,ref:x,ownerState:k,variant:f,sx:[...Object.keys(la).includes(i)?[]:[{color:i}],...Array.isArray(h)?h:[h]]},b))}),nr=p.createContext({});function jg(e){return V("MuiList",e)}U("MuiList",["root","padding","dense","subheader"]);const Dg=["children","className","component","dense","disablePadding","subheader"],Wg=e=>{const{classes:t,disablePadding:n,dense:o,subheader:r}=e;return K({root:["root",!n&&"padding",o&&"dense",r&&"subheader"]},jg,t)},Ug=M("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})(({ownerState:e})=>u({listStyle:"none",margin:0,padding:0,position:"relative"},!e.disablePadding&&{paddingTop:8,paddingBottom:8},e.subheader&&{paddingTop:0})),Hg=p.forwardRef(function(t,n){const o=G({props:t,name:"MuiList"}),{children:r,className:i,component:s="ul",dense:a=!1,disablePadding:l=!1,subheader:c}=o,d=O(o,Dg),f=p.useMemo(()=>({dense:a}),[a]),h=u({},o,{component:s,dense:a,disablePadding:l}),b=Wg(h);return C.jsx(nr.Provider,{value:f,children:C.jsxs(Ug,u({as:s,className:F(b.root,i),ref:n,ownerState:h},d,{children:[c,r]}))})}),ji=U("MuiListItemIcon",["root","alignItemsFlexStart"]),Di=U("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),Vg=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function zo(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function Wi(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function ca(e,t){if(t===void 0)return!0;let n=e.innerText;return n===void 0&&(n=e.textContent),n=n.trim().toLowerCase(),n.length===0?!1:t.repeating?n[0]===t.keys[0]:n.indexOf(t.keys.join(""))===0}function Qt(e,t,n,o,r,i){let s=!1,a=r(e,t,t?n:!1);for(;a;){if(a===e.firstChild){if(s)return!1;s=!0}const l=o?!1:a.disabled||a.getAttribute("aria-disabled")==="true";if(!a.hasAttribute("tab Line truncated
@@ -1,4 +1,4 @@
var ws=e=>{throw TypeError(e)};var ze=(e,t,s)=>t.has(e)||ws("Cannot "+s);var l=(e,t,s)=>(ze(e,t,"read from private field"),s?s.call(e):t.get(e)),F=(e,t,s)=>t.has(e)?ws("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),P=(e,t,s,i)=>(ze(e,t,"write to private field"),i?i.call(e,s):t.set(e,s),s),E=(e,t,s)=>(ze(e,t,"access private method"),s);var Ce=(e,t,s,i)=>({set _(r){P(e,t,r,s)},get _(){return l(e,t,i)}});import{r as C,c as Ii}from"./react-DXd9vB-a.js";import{j as _}from"./mui-v3E5hT34.js";var ve=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},de=typeof window>"u"||"Deno"in globalThis;function ct(){}function Vi(e,t){return typeof e=="function"?e(t):e}function ts(e){return typeof e=="number"&&e>=0&&e!==1/0}function Zs(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Xt(e,t){return typeof e=="function"?e(t):e}function dt(e,t){return typeof e=="function"?e(t):e}function Fs(e,t){const{type:s="all",exact:i,fetchStatus:r,predicate:n,queryKey:o,stale:a}=e;if(o){if(i){if(t.queryHash!==vs(o,t.options))return!1}else if(!Se(t.queryKey,o))return!1}if(s!=="all"){const h=t.isActive();if(s==="active"&&!h||s==="inactive"&&h)return!1}return!(typeof a=="boolean"&&t.isStale()!==a||r&&r!==t.state.fetchStatus||n&&!n(t))}function _s(e,t){const{exact:s,status:i,predicate:r,mutationKey:n}=e;if(n){if(!t.options.mutationKey)return!1;if(s){if(Ht(t.options.mutationKey)!==Ht(n))return!1}else if(!Se(t.options.mutationKey,n))return!1}return!(i&&t.state.status!==i||r&&!r(t))}function vs(e,t){return((t==null?void 0:t.queryKeyHashFn)||Ht)(e)}function Ht(e){return JSON.stringify(e,(t,s)=>es(s)?Object.keys(s).sort().reduce((i,r)=>(i[r]=s[r],i),{}):s)}function Se(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(s=>!Se(e[s],t[s])):!1}function ti(e,t){if(e===t)return e;const s=Cs(e)&&Cs(t);if(s||es(e)&&es(t)){const i=s?e:Object.keys(e),r=i.length,n=s?t:Object.keys(t),o=n.length,a=s?[]:{};let h=0;for(let u=0;u<o;u++){const c=s?u:n[u];(!s&&i.includes(c)||s)&&e[c]===void 0&&t[c]===void 0?(a[c]=void 0,h++):(a[c]=ti(e[c],t[c]),a[c]===e[c]&&e[c]!==void 0&&h++)}return r===o&&h===r?e:a}return t}function Te(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const s in e)if(e[s]!==t[s])return!1;return!0}function Cs(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function es(e){if(!Rs(e))return!1;const t=e.constructor;if(t===void 0)return!0;const s=t.prototype;return!(!Rs(s)||!s.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function Rs(e){return Object.prototype.toString.call(e)==="[object Object]"}function ji(e){return new Promise(t=>{setTimeout(t,e)})}function ss(e,t,s){return typeof s.structuralSharing=="function"?s.structuralSharing(e,t):s.structuralSharing!==!1?ti(e,t):t}function Di(e,t,s=0){const i=[...e,t];return s&&i.length>s?i.slice(1):i}function ki(e,t,s=0){const i=[t,...e];return s&&i.length>s?i.slice(0,-1):i}var ei=Symbol();function si(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===ei?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var $t,Rt,Zt,Ks,Bi=(Ks=class extends ve{constructor(){super();F(this,$t);F(this,Rt);F(this,Zt);P(this,Zt,t=>{if(!de&&window.addEventListener){const s=()=>t();return window.addEventListener("visibilitychange",s,!1),()=>{window.removeEventListener("visibilitychange",s)}}})}onSubscribe(){l(this,Rt)||this.setEventListener(l(this,Zt))}onUnsubscribe(){var t;this.hasListeners()||((t=l(this,Rt))==null||t.call(this),P(this,Rt,void 0))}setEventListener(t){var s;P(this,Zt,t),(s=l(this,Rt))==null||s.call(this),P(this,Rt,t(i=>{typeof i=="boolean"?this.setFocused(i):this.onFocus()}))}setFocused(t){l(this,$t)!==t&&(P(this,$t,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(s=>{s(t)})}isFocused(){var t;return typeof l(this,$t)=="boolean"?l(this,$t):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},$t=new WeakMap,Rt=new WeakMap,Zt=new WeakMap,Ks),ys=new Bi,te,Et,ee,Ns,$i=(Ns=class extends ve{constructor(){super();F(this,te,!0);F(this,Et);F(this,ee);P(this,ee,t=>{if(!de&&window.addEventListener){const s=()=>t(!0),i=()=>t(!1);return window.addEventListener("online",s,!1),window.addEventListener("offline",i,!1),()=>{window.removeEventListener("online",s),window.removeEventListener("offline",i)}}})}onSubscribe(){l(this,Et)||this.setEventListener(l(this,ee))}onUnsubscribe(){var t;this.hasListeners()||((t=l(this,Et))==null||t.call(this),P(this,Et,void 0))}setEventListener(t){var s;P(this,ee,t),(s=l(this,Et))==null||s.call(this),P(this,Et,t(this.setOnline.bind(this)))}setOnline(t){l(this,te)!==t&&(P(this,te,t),this.listenersLine truncated
var ws=e=>{throw TypeError(e)};var ze=(e,t,s)=>t.has(e)||ws("Cannot "+s);var l=(e,t,s)=>(ze(e,t,"read from private field"),s?s.call(e):t.get(e)),F=(e,t,s)=>t.has(e)?ws("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),P=(e,t,s,i)=>(ze(e,t,"write to private field"),i?i.call(e,s):t.set(e,s),s),E=(e,t,s)=>(ze(e,t,"access private method"),s);var Ce=(e,t,s,i)=>({set _(r){P(e,t,r,s)},get _(){return l(e,t,i)}});import{r as C,c as Ii}from"./react-DXd9vB-a.js";import{j as _}from"./mui-CxHUbSMi.js";var ve=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},de=typeof window>"u"||"Deno"in globalThis;function ct(){}function Vi(e,t){return typeof e=="function"?e(t):e}function ts(e){return typeof e=="number"&&e>=0&&e!==1/0}function Zs(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Xt(e,t){return typeof e=="function"?e(t):e}function dt(e,t){return typeof e=="function"?e(t):e}function Fs(e,t){const{type:s="all",exact:i,fetchStatus:r,predicate:n,queryKey:o,stale:a}=e;if(o){if(i){if(t.queryHash!==vs(o,t.options))return!1}else if(!Se(t.queryKey,o))return!1}if(s!=="all"){const h=t.isActive();if(s==="active"&&!h||s==="inactive"&&h)return!1}return!(typeof a=="boolean"&&t.isStale()!==a||r&&r!==t.state.fetchStatus||n&&!n(t))}function _s(e,t){const{exact:s,status:i,predicate:r,mutationKey:n}=e;if(n){if(!t.options.mutationKey)return!1;if(s){if(Ht(t.options.mutationKey)!==Ht(n))return!1}else if(!Se(t.options.mutationKey,n))return!1}return!(i&&t.state.status!==i||r&&!r(t))}function vs(e,t){return((t==null?void 0:t.queryKeyHashFn)||Ht)(e)}function Ht(e){return JSON.stringify(e,(t,s)=>es(s)?Object.keys(s).sort().reduce((i,r)=>(i[r]=s[r],i),{}):s)}function Se(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(s=>!Se(e[s],t[s])):!1}function ti(e,t){if(e===t)return e;const s=Cs(e)&&Cs(t);if(s||es(e)&&es(t)){const i=s?e:Object.keys(e),r=i.length,n=s?t:Object.keys(t),o=n.length,a=s?[]:{};let h=0;for(let u=0;u<o;u++){const c=s?u:n[u];(!s&&i.includes(c)||s)&&e[c]===void 0&&t[c]===void 0?(a[c]=void 0,h++):(a[c]=ti(e[c],t[c]),a[c]===e[c]&&e[c]!==void 0&&h++)}return r===o&&h===r?e:a}return t}function Te(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const s in e)if(e[s]!==t[s])return!1;return!0}function Cs(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function es(e){if(!Rs(e))return!1;const t=e.constructor;if(t===void 0)return!0;const s=t.prototype;return!(!Rs(s)||!s.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function Rs(e){return Object.prototype.toString.call(e)==="[object Object]"}function ji(e){return new Promise(t=>{setTimeout(t,e)})}function ss(e,t,s){return typeof s.structuralSharing=="function"?s.structuralSharing(e,t):s.structuralSharing!==!1?ti(e,t):t}function Di(e,t,s=0){const i=[...e,t];return s&&i.length>s?i.slice(1):i}function ki(e,t,s=0){const i=[t,...e];return s&&i.length>s?i.slice(0,-1):i}var ei=Symbol();function si(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===ei?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var $t,Rt,Zt,Ks,Bi=(Ks=class extends ve{constructor(){super();F(this,$t);F(this,Rt);F(this,Zt);P(this,Zt,t=>{if(!de&&window.addEventListener){const s=()=>t();return window.addEventListener("visibilitychange",s,!1),()=>{window.removeEventListener("visibilitychange",s)}}})}onSubscribe(){l(this,Rt)||this.setEventListener(l(this,Zt))}onUnsubscribe(){var t;this.hasListeners()||((t=l(this,Rt))==null||t.call(this),P(this,Rt,void 0))}setEventListener(t){var s;P(this,Zt,t),(s=l(this,Rt))==null||s.call(this),P(this,Rt,t(i=>{typeof i=="boolean"?this.setFocused(i):this.onFocus()}))}setFocused(t){l(this,$t)!==t&&(P(this,$t,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(s=>{s(t)})}isFocused(){var t;return typeof l(this,$t)=="boolean"?l(this,$t):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},$t=new WeakMap,Rt=new WeakMap,Zt=new WeakMap,Ks),ys=new Bi,te,Et,ee,Ns,$i=(Ns=class extends ve{constructor(){super();F(this,te,!0);F(this,Et);F(this,ee);P(this,ee,t=>{if(!de&&window.addEventListener){const s=()=>t(!0),i=()=>t(!1);return window.addEventListener("online",s,!1),window.addEventListener("offline",i,!1),()=>{window.removeEventListener("online",s),window.removeEventListener("offline",i)}}})}onSubscribe(){l(this,Et)||this.setEventListener(l(this,ee))}onUnsubscribe(){var t;this.hasListeners()||((t=l(this,Et))==null||t.call(this),P(this,Et,void 0))}setEventListener(t){var s;P(this,ee,t),(s=l(this,Et))==null||s.call(this),P(this,Et,t(this.setOnline.bind(this)))}setOnline(t){l(this,te)!==t&&(P(this,te,t),this.listenersLine truncated
* @license React
* use-sync-external-store-shim.production.min.js
*
+3 -3
View File
@@ -5,10 +5,10 @@
<link rel="icon" type="image/svg+xml" href="/phpCourse/exam/dist/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React + TS</title>
<script type="module" crossorigin src="/phpCourse/exam/dist/assets/index-CG0WySTu.js"></script>
<script type="module" crossorigin src="/phpCourse/exam/dist/assets/index-B5V9Za9P.js"></script>
<link rel="modulepreload" crossorigin href="/phpCourse/exam/dist/assets/react-DXd9vB-a.js">
<link rel="modulepreload" crossorigin href="/phpCourse/exam/dist/assets/mui-v3E5hT34.js">
<link rel="modulepreload" crossorigin href="/phpCourse/exam/dist/assets/tanstack-yMrSYl0u.js">
<link rel="modulepreload" crossorigin href="/phpCourse/exam/dist/assets/mui-CxHUbSMi.js">
<link rel="modulepreload" crossorigin href="/phpCourse/exam/dist/assets/tanstack-xmxrKlZO.js">
<link rel="modulepreload" crossorigin href="/phpCourse/exam/dist/assets/i18n-DJgSTqOl.js">
<link rel="stylesheet" crossorigin href="/phpCourse/exam/dist/assets/mui-CKDNpdid.css">
<link rel="stylesheet" crossorigin href="/phpCourse/exam/dist/assets/index-D83Ey19k.css">
+12 -1
View File
@@ -60,5 +60,16 @@
"Recent posts": "Letzte Posts",
"Post comment": "Beitrag posten"
"Comment": "Beitrag",
"Content required": "Beitrag darf nicht leer sein",
"Post comment": "Beitrag posten",
"Edit Post": "Post editieren",
"Edit image": "Profilbild bearbeiten",
"Predefined": "Vorgefertigt",
"Upload image": "Bild hochladen",
"Upload named": "{{name}} gewählt",
"Avatar": "Avatar {{name}}",
"Remove": "Entfernen",
"or": "oder"
}
+12 -1
View File
@@ -61,5 +61,16 @@
"Recent posts": "Last posts",
"Post omment": "Post comment"
"Comment": "Comment",
"Content required": "Content required",
"Post comment": "Post comment",
"Edit post": "Edit post",
"Edit image": "Edit image",
"Predefined": "Predefined",
"Upload image": "Upload image",
"Upload named": "{{name}} chosen",
"Avatar": "Avatar {{name}}",
"Remove": "Remove",
"or": "or"
}
+1 -1
View File
@@ -4822,7 +4822,7 @@ var drawChart = (function (exports) {
</script>
<script>
/*<!--*/
const data = {"version":2,"tree":{"name":"root","children":[{"name":"assets/zustand-Cc7ZFYQr.js","children":[{"name":"\u0000/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store","children":[{"name":"cjs","children":[{"uid":"90e1d5f6-1","name":"use-sync-external-store-shim.production.min.js?commonjs-exports"},{"uid":"90e1d5f6-5","name":"use-sync-external-store-shim.production.min.js?commonjs-proxy"},{"name":"use-sync-external-store-shim","children":[{"uid":"90e1d5f6-13","name":"with-selector.production.min.js?commonjs-exports"},{"uid":"90e1d5f6-17","name":"with-selector.production.min.js?commonjs-proxy"}]}]},{"name":"shim","children":[{"uid":"90e1d5f6-7","name":"index.js?commonjs-module"},{"uid":"90e1d5f6-11","name":"index.js?commonjs-proxy"},{"uid":"90e1d5f6-19","name":"with-selector.js?commonjs-module"}]}]},{"name":"node_modules/.pnpm","children":[{"name":"use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store","children":[{"name":"cjs","children":[{"uid":"90e1d5f6-3","name":"use-sync-external-store-shim.production.min.js"},{"name":"use-sync-external-store-shim/with-selector.production.min.js","uid":"90e1d5f6-15"}]},{"name":"shim","children":[{"uid":"90e1d5f6-9","name":"index.js"},{"uid":"90e1d5f6-21","name":"with-selector.js"}]}]},{"name":"zustand@4.5.4_@types+react@18.3.3_react@18.3.1/node_modules/zustand/esm","children":[{"uid":"90e1d5f6-23","name":"vanilla.mjs"},{"uid":"90e1d5f6-25","name":"index.mjs"}]}]}]},{"name":"assets/index-CG0WySTu.js","children":[{"name":"\u0000vite/modulepreload-polyfill.js","uid":"90e1d5f6-27"},{"name":"\u0000/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/client.js?commonjs-exports","uid":"90e1d5f6-29"},{"name":"node_modules/.pnpm","children":[{"name":"react-dom@18.3.1_react@18.3.1/node_modules/react-dom/client.js","uid":"90e1d5f6-31"},{"name":"@fontsource+roboto@5.0.13/node_modules/@fontsource/roboto","children":[{"uid":"90e1d5f6-79","name":"300.css"},{"uid":"90e1d5f6-81","name":"400.css"},{"uid":"90e1d5f6-83","name":"500.css"},{"uid":"90e1d5f6-85","name":"700.css"}]}]},{"name":"src","children":[{"uid":"90e1d5f6-33","name":"constanst.ts"},{"name":"api/Api.ts","uid":"90e1d5f6-35"},{"name":"components","children":[{"name":"Error","children":[{"uid":"90e1d5f6-37","name":"Errors.ts"},{"uid":"90e1d5f6-45","name":"ErrorComponent.tsx"}]},{"name":"Menus","children":[{"name":"Language/LanguageMenu.tsx","uid":"90e1d5f6-41"},{"name":"User/UserMenu.tsx","uid":"90e1d5f6-49"}]},{"name":"Forms","children":[{"name":"Login/LoginForm.tsx","uid":"90e1d5f6-47"},{"name":"Post/PostForm.tsx","uid":"90e1d5f6-55"}]},{"name":"Header/Header.tsx","uid":"90e1d5f6-51"},{"name":"Dialogs","children":[{"name":"PostEdit/PostEditDialog.tsx","uid":"90e1d5f6-59"},{"name":"UserEdit/UserEditDialog.tsx","uid":"90e1d5f6-67"}]},{"name":"Post/Post.tsx","uid":"90e1d5f6-61"},{"name":"Profile/Profile.tsx","uid":"90e1d5f6-69"}]},{"uid":"90e1d5f6-39","name":"i18n.ts"},{"name":"types/Routes.ts","uid":"90e1d5f6-43"},{"name":"routes","children":[{"uid":"90e1d5f6-53","name":"__root.tsx"},{"uid":"90e1d5f6-65","name":"index.tsx"},{"name":"profile","children":[{"uid":"90e1d5f6-73","name":"index.tsx"},{"uid":"90e1d5f6-75","name":"$id.tsx"}]}]},{"name":"utils/date.ts","uid":"90e1d5f6-57"},{"name":"queries","children":[{"uid":"90e1d5f6-63","name":"postsQuery.ts"},{"uid":"90e1d5f6-71","name":"profileQuery.ts"}]},{"uid":"90e1d5f6-77","name":"routeTree.gen.ts"},{"uid":"90e1d5f6-87","name":"main.tsx"}]},{"uid":"90e1d5f6-89","name":"index.html"}]},{"name":"assets/i18n-DJgSTqOl.js","children":[{"name":"node_modules/.pnpm","children":[{"name":"void-elements@3.1.0/node_modules/void-elements/index.js","uid":"90e1d5f6-91"},{"name":"html-parse-stringify@3.0.1/node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","uid":"90e1d5f6-93"},{"name":"react-i18next@15.0.0_i18next@23.12.2_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es","children":[{"uid":"90e1d5f6-95","name":"utils.js"},{"uid":"90e1d5f6-97","name":"unescape.js"},{"uid":"90e1d5f6-99","name":"defaults.js"},{"uid":"90e1d5f6-101","name":"i18nInstance.js"},{"uid":"90e1d5f6-103","name":"TransWithoutContext.js"},{"uid":"90e1d5f6-105","name":"initReactI18next.js"},{"uid":"90e1d5f6-107","name":"context.js"},{"uid":"90e1d5f6-109","name":"Trans.js"},{"uid":"90e1d5f6-111","name":"useTranslation.js"},{"uid":"90e1d5f6-113","name":"withTranslation.js"},{"uid":"90e1d5f6-115","name":"Translation.js"},{"uid":"90e1d5f6-117","name":"I18nextProvider.js"},{"uid":"90e1d5f6-119","name":"useSSR.js"},{"uid":"90e1d5f6-121","name":"withSSR.js"},{"uid":"90e1d5f6-123","name":"index.js"}]},{"name":"i18next@23.12.2/node_modules/i18next/dist/esm/i18next.js","uid":"90e1d5f6-125"},{"name":"i18next-browser-languagedetector@8.0.0/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","uid":"90e1d5f6-127"},{"name":"i18next-http-backend@2.5.Line truncated
const data = {"version":2,"tree":{"name":"root","children":[{"name":"assets/zustand-Cc7ZFYQr.js","children":[{"name":"\u0000/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store","children":[{"name":"cjs","children":[{"uid":"aa8703b4-1","name":"use-sync-external-store-shim.production.min.js?commonjs-exports"},{"uid":"aa8703b4-5","name":"use-sync-external-store-shim.production.min.js?commonjs-proxy"},{"name":"use-sync-external-store-shim","children":[{"uid":"aa8703b4-13","name":"with-selector.production.min.js?commonjs-exports"},{"uid":"aa8703b4-17","name":"with-selector.production.min.js?commonjs-proxy"}]}]},{"name":"shim","children":[{"uid":"aa8703b4-7","name":"index.js?commonjs-module"},{"uid":"aa8703b4-11","name":"index.js?commonjs-proxy"},{"uid":"aa8703b4-19","name":"with-selector.js?commonjs-module"}]}]},{"name":"node_modules/.pnpm","children":[{"name":"use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store","children":[{"name":"cjs","children":[{"uid":"aa8703b4-3","name":"use-sync-external-store-shim.production.min.js"},{"name":"use-sync-external-store-shim/with-selector.production.min.js","uid":"aa8703b4-15"}]},{"name":"shim","children":[{"uid":"aa8703b4-9","name":"index.js"},{"uid":"aa8703b4-21","name":"with-selector.js"}]}]},{"name":"zustand@4.5.4_@types+react@18.3.3_react@18.3.1/node_modules/zustand/esm","children":[{"uid":"aa8703b4-23","name":"vanilla.mjs"},{"uid":"aa8703b4-25","name":"index.mjs"}]}]}]},{"name":"assets/index-B5V9Za9P.js","children":[{"name":"\u0000vite/modulepreload-polyfill.js","uid":"aa8703b4-27"},{"name":"\u0000/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/client.js?commonjs-exports","uid":"aa8703b4-29"},{"name":"node_modules/.pnpm","children":[{"name":"react-dom@18.3.1_react@18.3.1/node_modules/react-dom/client.js","uid":"aa8703b4-31"},{"name":"@fontsource+roboto@5.0.13/node_modules/@fontsource/roboto","children":[{"uid":"aa8703b4-81","name":"300.css"},{"uid":"aa8703b4-83","name":"400.css"},{"uid":"aa8703b4-85","name":"500.css"},{"uid":"aa8703b4-87","name":"700.css"}]}]},{"name":"src","children":[{"uid":"aa8703b4-33","name":"constanst.ts"},{"name":"api/Api.ts","uid":"aa8703b4-35"},{"name":"components","children":[{"name":"Error","children":[{"uid":"aa8703b4-37","name":"Errors.ts"},{"uid":"aa8703b4-45","name":"ErrorComponent.tsx"}]},{"name":"Menus","children":[{"name":"Language/LanguageMenu.tsx","uid":"aa8703b4-41"},{"name":"User/UserMenu.tsx","uid":"aa8703b4-49"}]},{"name":"Forms","children":[{"name":"Login/LoginForm.tsx","uid":"aa8703b4-47"},{"name":"Post/PostForm.tsx","uid":"aa8703b4-55"}]},{"name":"Header/Header.tsx","uid":"aa8703b4-51"},{"name":"Dialogs","children":[{"name":"PostEdit/PostEditDialog.tsx","uid":"aa8703b4-59"},{"name":"UserEdit/UserEditDialog.tsx","uid":"aa8703b4-67"},{"name":"UserImage/UserImageDialog.tsx","uid":"aa8703b4-69"}]},{"name":"Post/Post.tsx","uid":"aa8703b4-61"},{"name":"Profile/Profile.tsx","uid":"aa8703b4-71"}]},{"uid":"aa8703b4-39","name":"i18n.ts"},{"name":"types/Routes.ts","uid":"aa8703b4-43"},{"name":"routes","children":[{"uid":"aa8703b4-53","name":"__root.tsx"},{"uid":"aa8703b4-65","name":"index.tsx"},{"name":"profile","children":[{"uid":"aa8703b4-75","name":"index.tsx"},{"uid":"aa8703b4-77","name":"$id.tsx"}]}]},{"name":"utils/date.ts","uid":"aa8703b4-57"},{"name":"queries","children":[{"uid":"aa8703b4-63","name":"postsQuery.ts"},{"uid":"aa8703b4-73","name":"profileQuery.ts"}]},{"uid":"aa8703b4-79","name":"routeTree.gen.ts"},{"uid":"aa8703b4-89","name":"main.tsx"}]},{"uid":"aa8703b4-91","name":"index.html"}]},{"name":"assets/i18n-DJgSTqOl.js","children":[{"name":"node_modules/.pnpm","children":[{"name":"void-elements@3.1.0/node_modules/void-elements/index.js","uid":"aa8703b4-93"},{"name":"html-parse-stringify@3.0.1/node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","uid":"aa8703b4-95"},{"name":"react-i18next@15.0.0_i18next@23.12.2_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es","children":[{"uid":"aa8703b4-97","name":"utils.js"},{"uid":"aa8703b4-99","name":"unescape.js"},{"uid":"aa8703b4-101","name":"defaults.js"},{"uid":"aa8703b4-103","name":"i18nInstance.js"},{"uid":"aa8703b4-105","name":"TransWithoutContext.js"},{"uid":"aa8703b4-107","name":"initReactI18next.js"},{"uid":"aa8703b4-109","name":"context.js"},{"uid":"aa8703b4-111","name":"Trans.js"},{"uid":"aa8703b4-113","name":"useTranslation.js"},{"uid":"aa8703b4-115","name":"withTranslation.js"},{"uid":"aa8703b4-117","name":"Translation.js"},{"uid":"aa8703b4-119","name":"I18nextProvider.js"},{"uid":"aa8703b4-121","name":"useSSR.js"},{"uid":"aa8703b4-123","name":"withSSR.js"},{"uid":"aa8703b4-125","name":"index.js"}]},{"name":"i18next@23.12.2/node_modules/i18next/dist/esm/i18next.js","uid":"aa8703b4-127"},{"name":"i18next-browser-languagedetector@8.0.0/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetectoLine truncated
const run = () => {
const width = window.innerWidth;
+12 -1
View File
@@ -60,5 +60,16 @@
"Recent posts": "Letzte Posts",
"Post comment": "Beitrag posten"
"Comment": "Beitrag",
"Content required": "Beitrag darf nicht leer sein",
"Post comment": "Beitrag posten",
"Edit Post": "Post editieren",
"Edit image": "Profilbild bearbeiten",
"Predefined": "Vorgefertigt",
"Upload image": "Bild hochladen",
"Upload named": "{{name}} gewählt",
"Avatar": "Avatar {{name}}",
"Remove": "Entfernen",
"or": "oder"
}
+12 -1
View File
@@ -61,5 +61,16 @@
"Recent posts": "Last posts",
"Post omment": "Post comment"
"Comment": "Comment",
"Content required": "Content required",
"Post comment": "Post comment",
"Edit post": "Edit post",
"Edit image": "Edit image",
"Predefined": "Predefined",
"Upload image": "Upload image",
"Upload named": "{{name}} chosen",
"Avatar": "Avatar {{name}}",
"Remove": "Remove",
"or": "or"
}
+24 -6
View File
@@ -1,6 +1,6 @@
import { POST_LIMIT } from '../constanst';
import { PostAuth, PostListAuth, PostListNonAuth, PostUpdate } from '../types/Post';
import { User, UserUpdate } from '../types/User';
import { PostAuth, PostDelete, PostListAuth, PostListNonAuth, PostNew, PostUpdate } from '../types/Post';
import { User, UserImageUpdate, UserUpdate } from '../types/User';
const BASE = 'https://khofmann.userpage.fu-berlin.de/phpCourse/exam/api/';
@@ -51,8 +51,8 @@ class ApiImpl {
return await (await this.get(url)).json();
};
public deletePost = async (id: number): Promise<PostAuth> => {
return await (await this.delete(`posts/${id}`)).json();
public deletePost = async (id: number): Promise<PostDelete> => {
return await (await this.delete(`posts/${id}?l=${POST_LIMIT}`)).json();
};
public user = async (id?: number): Promise<User> => {
@@ -63,8 +63,15 @@ class ApiImpl {
return await (await this.patch(`users/${id ?? 'self'}`, data as Record<string, unknown>)).json();
};
public newPost = async (data: PostUpdate): Promise<PostAuth> => {
return await (await this.postAuth(`posts`, data as Record<string, unknown>)).json();
public updateUserImage = async (data: UserImageUpdate, id?: number): Promise<User> => {
const formData = new FormData();
if (data.image) formData.append('image', data.image);
if (!data.image && data.predefined) formData.append('predefined', data.predefined);
return await (await this.postAuthRaw(`users/${id ?? 'self'}/image`, formData)).json();
};
public newPost = async (data: PostUpdate): Promise<PostNew> => {
return await (await this.postAuth(`posts?l=${POST_LIMIT}`, { ...data } as Record<string, unknown>)).json();
};
public updatePost = async (data: PostUpdate, id: number): Promise<PostAuth> => {
@@ -95,6 +102,17 @@ class ApiImpl {
throw await response.json();
};
private postAuthRaw = async (endpoint: string, body?: FormData, headers?: HeadersInit) => {
const response = await fetch(`${BASE}${endpoint}`, {
mode: 'cors',
method: 'post',
headers: { token: this.token ?? '', ...headers },
body,
});
if (response.ok) return response;
throw await response.json();
};
private get = async (endpoint: string, headers?: HeadersInit) => {
const response = await fetch(`${BASE}${endpoint}`, {
mode: 'cors',
@@ -0,0 +1,226 @@
import { CloudUpload, Delete, Person } from '@mui/icons-material';
import {
Avatar,
Box,
Button,
CircularProgress,
Dialog,
DialogActions,
DialogContent,
DialogTitle,
Divider,
FormControl,
Grid,
IconButton,
InputLabel,
MenuItem,
Select,
TextField,
Typography,
useMediaQuery,
useTheme,
} from '@mui/material';
import { useForm } from '@tanstack/react-form';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { t } from 'i18next';
import { FC, FormEvent, useState } from 'react';
import Api from '../../../api/Api';
import { User, UserImageUpdate } from '../../../types/User';
import ErrorComponent from '../../Error/ErrorComponent';
interface Props {
user: User;
open: boolean;
onClose: () => void;
}
const UserImageDialog: FC<Props> = ({ user, open, onClose }) => {
//eslint-disable-next-line @typescript-eslint/no-explicit-any
const [error, setError] = useState<any>();
const updateMutation = useMutation({
mutationFn: ({ data, id }: { data: UserImageUpdate; id?: number }) => {
return Api.updateUserImage(data, id);
},
});
const form = useForm<UserImageUpdate>({
onSubmit: async ({ value }) => {
try {
updateMutation.mutate(
{ data: value, id: Api.getAuthenticatedUser()?.id === user.id ? undefined : user.id },
{
onSuccess: () => {
handleClose();
const queryKey = Api.getAuthenticatedUser()?.id === user.id ? ['profile'] : ['profile', { id: user.id }];
queryClient.invalidateQueries({ queryKey });
},
onError: setError,
}
);
//eslint-disable-next-line @typescript-eslint/no-explicit-any
} catch (error: any) {
setError(error);
}
},
});
const theme = useTheme();
const fullScreen = useMediaQuery(theme.breakpoints.only('xs'), { noSsr: true });
const queryClient = useQueryClient();
const formState = form.useStore((state) => ({ image: state.values.image, predefined: state.values.predefined }));
const handleClose = () => {
form.reset();
setError(undefined);
onClose();
};
return (
<Dialog
open={open}
onClose={handleClose}
fullWidth
fullScreen={fullScreen}
PaperProps={{
component: 'form',
encType: 'multipart/form-data',
onSubmit: (e: FormEvent<HTMLFormElement>) => {
e.preventDefault();
e.stopPropagation();
form.handleSubmit();
},
onKeyDown: (event: React.KeyboardEvent<HTMLFormElement>) => {
if (event.key === 'Tab') {
event.stopPropagation();
}
},
noValidate: true,
}}
>
<DialogTitle>{t('Edit image')}</DialogTitle>
<DialogContent sx={{ gap: 2 }}>
<Grid container spacing={2}>
<Grid item xs={12} sx={{ display: 'flex', justifyContent: 'center' }}>
<Avatar
alt={user.username}
src={
formState.image
? URL.createObjectURL(formState.image)
: formState.predefined
? `storage/profilbilder/default/${formState.predefined}.svg`
: `storage/${user.image}`
}
sx={{ width: '100px', height: '100px' }}
>
<Person sx={{ width: '60px', height: '60px' }} />
</Avatar>
</Grid>
<Grid item xs={12}>
<Box sx={{ display: 'flex', gap: 2 }}>
<Button
component="label"
role={undefined}
variant="contained"
tabIndex={-1}
startIcon={<CloudUpload />}
fullWidth
>
<form.Field
name="image"
children={(field) => (
<>
<Box sx={{ textOverflow: 'ellipsis', textWrap: 'nowrap', overflow: 'hidden' }}>
{!field.state.value ? t('Upload image') : t('Upload named', { name: field.state.value?.name })}
</Box>
<TextField
name={field.name}
onBlur={field.handleBlur}
value={!field.state.value ? '' : undefined}
//eslint-disable-next-line @typescript-eslint/no-explicit-any
onChange={(e) => field.handleChange((e.target as any).files[0])}
size="small"
type="file"
required
sx={{ display: 'none' }}
autoComplete="off"
/>
</>
)}
/>
</Button>
<IconButton color="error" onClick={() => form.setFieldValue('image', undefined)}>
<Delete />
</IconButton>
</Box>
</Grid>
<Grid item xs={12}>
<Divider variant="middle">
<Typography sx={{ opacity: 0.36 }}>{t('or')}</Typography>
</Divider>
</Grid>
<Grid item xs={12}>
<form.Field
name="predefined"
children={(field) => (
<FormControl fullWidth>
<InputLabel size="small">{t('Predefined')}</InputLabel>
<Select
name={field.name}
value={field.state.value}
onBlur={field.handleBlur}
onChange={(e) => field.handleChange(e.target.value)}
size="small"
label={t('Predefined')}
autoComplete="off"
fullWidth
>
{[...Array(10).keys()].map((i) => (
<MenuItem key={`avatar-${i + 1}`} value={`avatar-${i + 1}`}>
{t('Avatar', { name: i + 1 })}
</MenuItem>
))}
</Select>
</FormControl>
)}
/>
</Grid>
</Grid>
</DialogContent>
<DialogActions>
<form.Subscribe
selector={(state) => [state.canSubmit, state.isSubmitting]}
children={([canSubmit]) => (
<>
<Button
variant="outlined"
onClick={() => {
handleClose();
}}
>
{t('Cancel')}
</Button>
<Button
type="submit"
disabled={!canSubmit || updateMutation.isPending}
autoFocus
variant="contained"
endIcon={updateMutation.isPending && <CircularProgress color="inherit" size="20px" />}
>
{t('Save')}
</Button>
</>
)}
/>
</DialogActions>
{error && (
<DialogContent>
<ErrorComponent error={error} context="userUpdate" />
</DialogContent>
)}
</Dialog>
);
};
export default UserImageDialog;
@@ -1,6 +1,7 @@
import { Box, Button, CircularProgress, LinearProgress, TextField } from '@mui/material';
import { useForm } from '@tanstack/react-form';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { useNavigate } from '@tanstack/react-router';
import { FC, useState } from 'react';
import { useTranslation } from 'react-i18next';
import Api from '../../../api/Api';
@@ -14,6 +15,7 @@ const PostForm: FC = () => {
const { t } = useTranslation();
const queryClient = useQueryClient();
const navigate = useNavigate();
const newMutation = useMutation({
mutationFn: ({ data }: { data: PostUpdate }) => {
@@ -30,8 +32,10 @@ const PostForm: FC = () => {
newMutation.mutate(
{ data: value },
{
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['posts'] });
onSuccess: async (data) => {
form.reset();
await queryClient.invalidateQueries({ queryKey: ['posts'] });
navigate({ to: '/', search: { page: data.pages - 1 } });
},
onError: setError,
}
+6 -5
View File
@@ -17,7 +17,7 @@ import {
Typography,
} from '@mui/material';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { Link } from '@tanstack/react-router';
import { Link, useNavigate } from '@tanstack/react-router';
import { FC, useState } from 'react';
import { useTranslation } from 'react-i18next';
import Api from '../../api/Api';
@@ -42,9 +42,9 @@ const Post: FC<Props> = ({ post }) => {
},
});
const queryClient = useQueryClient();
const { t } = useTranslation();
const queryClient = useQueryClient();
const navigate = useNavigate();
return (
<Card>
@@ -121,10 +121,11 @@ const Post: FC<Props> = ({ post }) => {
color="error"
onClick={() => {
deleteMutation.mutate(post.id, {
onSuccess: () => {
queryClient.invalidateQueries({
onSuccess: async (data) => {
await queryClient.invalidateQueries({
queryKey: ['posts'],
});
navigate({ to: '/', search: { page: data.pages - 1 } });
},
onError: setError,
});
+26 -8
View File
@@ -1,10 +1,22 @@
import { Person } from '@mui/icons-material';
import { Avatar, Box, Button, Card, CardActions, CardContent, Divider, Grid, Typography } from '@mui/material';
import {
Avatar,
Box,
Button,
Card,
CardActions,
CardContent,
Divider,
Grid,
IconButton,
Typography,
} from '@mui/material';
import { FC, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { User } from '../../types/User';
import convertDate from '../../utils/date';
import UserEditDialog from '../Dialogs/UserEdit/UserEditDialog';
import UserImageDialog from '../Dialogs/UserImage/UserImageDialog';
interface Props {
user: User;
@@ -13,6 +25,7 @@ interface Props {
const Profile: FC<Props> = ({ user, canEdit }) => {
const [editOpen, setEditOpen] = useState(false);
const [imageOpen, setImageOpen] = useState(false);
const { t } = useTranslation();
@@ -23,9 +36,11 @@ const Profile: FC<Props> = ({ user, canEdit }) => {
<CardContent>
<Grid container spacing={2}>
<Grid item sx={{ display: 'flex', flexGrow: 1, justifyContent: 'center' }}>
<Avatar alt={user.username} src={`storage/${user.image}`} sx={{ width: '100px', height: '100px' }}>
<Person sx={{ width: '60px', height: '60px' }} />
</Avatar>
<IconButton onClick={() => setImageOpen(true)}>
<Avatar alt={user.username} src={`storage/>${user.image}`} sx={{ width: '100px', height: '100px' }}>
<Person sx={{ width: '60px', height: '60px' }} />
</Avatar>
</IconButton>
</Grid>
<Grid item sx={{ display: 'flex', alignItems: 'center' }}>
<Box sx={{ display: 'grid', gridTemplateColumns: '120px 1fr', columnGap: 1 }}>
@@ -43,12 +58,15 @@ const Profile: FC<Props> = ({ user, canEdit }) => {
</CardContent>
<CardActions>
{canEdit && (
<Button size="small" onClick={() => setEditOpen(true)}>
{t('Edit')}
</Button>
<>
<Button size="small" onClick={() => setEditOpen(true)}>
{t('Edit')}
</Button>
<UserEditDialog user={user} open={editOpen} onClose={() => setEditOpen(false)} />
<UserImageDialog user={user} open={imageOpen} onClose={() => setImageOpen(false)} />
</>
)}
</CardActions>
<UserEditDialog user={user} open={editOpen} onClose={() => setEditOpen(false)} />
</Card>
</Grid>
<Grid item xs={12}>
+9 -1
View File
@@ -1,6 +1,7 @@
import { Divider, Grid, Pagination, PaginationItem, Snackbar } from '@mui/material';
import { useSuspenseQuery } from '@tanstack/react-query';
import { createFileRoute, Link } from '@tanstack/react-router';
import { createFileRoute, Link, useNavigate } from '@tanstack/react-router';
import { useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import Api from '../api/Api';
import PostForm from '../components/Forms/Post/PostForm';
@@ -12,6 +13,13 @@ const Home = () => {
const { page } = Route.useSearch();
const { data: postsQuery, isFetching } = useSuspenseQuery(postsQueryOptions(page));
const { t } = useTranslation();
const navigate = useNavigate();
useEffect(() => {
if ((page ?? 0) >= postsQuery.pages) {
navigate({ to: '/', search: { page: postsQuery.pages - 1 } });
}
}, [page]); //eslint-disable-line react-hooks/exhaustive-deps
return (
<>
+6
View File
@@ -23,6 +23,12 @@ export interface PostAuth {
postedAt: Timestamp;
}
export interface PostNew {
pages: number;
post: PostAuth;
}
export interface PostDelete extends PostNew {}
export interface PostListAuth {
pages: number;
data: PostNonAuth[];
+5
View File
@@ -21,3 +21,8 @@ export interface Login {
email: string;
password: string;
}
export interface UserImageUpdate {
image?: File;
predefined?: string;
}