var KC=Object.defineProperty,JC=Object.defineProperties;var QC=Object.getOwnPropertyDescriptors;var rm=Object.getOwnPropertySymbols;var fw=Object.prototype.hasOwnProperty,hw=Object.prototype.propertyIsEnumerable;var k0=(e,r)=>(r=Symbol[e])?r:Symbol.for("Symbol."+e),e6=e=>{throw TypeError(e)};var yp=(e,r,a)=>r in e?KC(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,Te=(e,r)=>{for(var a in r||(r={}))fw.call(r,a)&&yp(e,a,r[a]);if(rm)for(var a of rm(r))hw.call(r,a)&&yp(e,a,r[a]);return e},Ke=(e,r)=>JC(e,QC(r));var Ji=(e,r)=>{var a={};for(var s in e)fw.call(e,s)&&r.indexOf(s)<0&&(a[s]=e[s]);if(e!=null&&rm)for(var s of rm(e))r.indexOf(s)<0&&hw.call(e,s)&&(a[s]=e[s]);return a};var Ii=(e,r,a)=>yp(e,typeof r!="symbol"?r+"":r,a);var me=(e,r,a)=>new Promise((s,n)=>{var i=h=>{try{u(a.next(h))}catch(g){n(g)}},c=h=>{try{u(a.throw(h))}catch(g){n(g)}},u=h=>h.done?s(h.value):Promise.resolve(h.value).then(i,c);u((a=a.apply(e,r)).next())}),xd=function(e,r){this[0]=e,this[1]=r},bp=(e,r,a)=>{var s=(c,u,h,g)=>{try{var y=a[c](u),w=(u=y.value)instanceof xd,E=y.done;Promise.resolve(w?u[0]:u).then(S=>w?s(c==="return"?c:"next",u[1]?{done:S.done,value:S.value}:S,h,g):h({value:S,done:E})).catch(S=>s("throw",S,h,g))}catch(S){g(S)}},n=c=>i[c]=u=>new Promise((h,g)=>s(c,u,h,g)),i={};return a=a.apply(e,r),i[k0("asyncIterator")]=()=>i,n("next"),n("throw"),n("return"),i},vp=e=>{var r=e[k0("asyncIterator")],a=!1,s,n={};return r==null?(r=e[k0("iterator")](),s=i=>n[i]=c=>r[i](c)):(r=r.call(e),s=i=>n[i]=c=>{if(a){if(a=!1,i==="throw")throw c;return c}return a=!0,{done:!1,value:new xd(new Promise(u=>{var h=r[i](c);h instanceof Object||e6("Object expected"),u(h)}),1)}}),n[k0("iterator")]=()=>n,s("next"),"throw"in r?s("throw"):n.throw=i=>{throw i},"return"in r&&s("return"),n},mw=(e,r,a)=>(r=e[k0("asyncIterator")])?r.call(e):(e=e[k0("iterator")](),r={},a=(s,n)=>(n=e[s])&&(r[s]=i=>new Promise((c,u,h)=>(i=n.call(e,i),h=i.done,Promise.resolve(i.value).then(g=>c({value:g,done:h}),u)))),a("next"),a("return"),r);function t6(e,r){for(var a=0;as[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))s(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const c of i.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&s(c)}).observe(document,{childList:!0,subtree:!0});function a(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(n){if(n.ep)return;n.ep=!0;const i=a(n);fetch(n.href,i)}})();var am=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function J1(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wp={exports:{}},Gu={};var gw;function r6(){if(gw)return Gu;gw=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function a(s,n,i){var c=null;if(i!==void 0&&(c=""+i),n.key!==void 0&&(c=""+n.key),"key"in n){i={};for(var u in n)u!=="key"&&(i[u]=n[u])}else i=n;return n=i.ref,{$$typeof:e,type:s,key:c,ref:n!==void 0?n:null,props:i}}return Gu.Fragment=r,Gu.jsx=a,Gu.jsxs=a,Gu}var xw;function a6(){return xw||(xw=1,wp.exports=r6()),wp.exports}var t=a6(),_p={exports:{}},ma={};var pw;function s6(){if(pw)return ma;pw=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),n=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),c=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),w=Symbol.for("react.activity"),E=Symbol.iterator;function S(te){return te===null||typeof te!="object"?null:(te=E&&te[E]||te["@@iterator"],typeof te=="function"?te:null)}var A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,O={};function M(te,q,J){this.props=te,this.context=q,this.refs=O,this.updater=J||A}M.prototype.isReactComponent={},M.prototype.setState=function(te,q){if(typeof te!="object"&&typeof te!="function"&&te!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,te,q,"setState")},M.prototype.forceUpdate=function(te){this.updater.enqueueForceUpdate(this,te,"forceUpdate")};function R(){}R.prototype=M.prototype;function F(te,q,J){this.props=te,this.context=q,this.refs=O,this.updater=J||A}var z=F.prototype=new R;z.constructor=F,C(z,M.prototype),z.isPureReactComponent=!0;var W=Array.isArray;function X(){}var B={H:null,A:null,T:null,S:null},Y=Object.prototype.hasOwnProperty;function G(te,q,J){var ae=J.ref;return{$$typeof:e,type:te,key:q,ref:ae!==void 0?ae:null,props:J}}function ie(te,q){return G(te.type,q,te.props)}function fe(te){return typeof te=="object"&&te!==null&&te.$$typeof===e}function K(te){var q={"=":"=0",":":"=2"};return"$"+te.replace(/[=:]/g,function(J){return q[J]})}var ke=/\/+/g;function ge(te,q){return typeof te=="object"&&te!==null&&te.key!=null?K(""+te.key):q.toString(36)}function re(te){switch(te.status){case"fulfilled":return te.value;case"rejected":throw te.reason;default:switch(typeof te.status=="string"?te.then(X,X):(te.status="pending",te.then(function(q){te.status==="pending"&&(te.status="fulfilled",te.value=q)},function(q){te.status==="pending"&&(te.status="rejected",te.reason=q)})),te.status){case"fulfilled":return te.value;case"rejected":throw te.reason}}throw te}function we(te,q,J,ae,oe){var le=typeof te;(le==="undefined"||le==="boolean")&&(te=null);var be=!1;if(te===null)be=!0;else switch(le){case"bigint":case"string":case"number":be=!0;break;case"object":switch(te.$$typeof){case e:case r:be=!0;break;case y:return be=te._init,we(be(te._payload),q,J,ae,oe)}}if(be)return oe=oe(te),be=ae===""?"."+ge(te,0):ae,W(oe)?(J="",be!=null&&(J=be.replace(ke,"$&/")+"/"),we(oe,q,J,"",function(Pe){return Pe})):oe!=null&&(fe(oe)&&(oe=ie(oe,J+(oe.key==null||te&&te.key===oe.key?"":(""+oe.key).replace(ke,"$&/")+"/")+be)),q.push(oe)),1;be=0;var Z=ae===""?".":ae+":";if(W(te))for(var Le=0;Le>>1,ye=we[ce];if(0>>1;cen(J,ve))aen(oe,J)?(we[ce]=oe,we[ae]=ve,ce=ae):(we[ce]=J,we[q]=ve,ce=q);else if(aen(oe,ve))we[ce]=oe,we[ae]=ve,ce=ae;else break e}}return ee}function n(we,ee){var ve=we.sortIndex-ee.sortIndex;return ve!==0?ve:we.id-ee.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var c=Date,u=c.now();e.unstable_now=function(){return c.now()-u}}var h=[],g=[],y=1,w=null,E=3,S=!1,A=!1,C=!1,O=!1,M=typeof setTimeout=="function"?setTimeout:null,R=typeof clearTimeout=="function"?clearTimeout:null,F=typeof setImmediate!="undefined"?setImmediate:null;function z(we){for(var ee=a(g);ee!==null;){if(ee.callback===null)s(g);else if(ee.startTime<=we)s(g),ee.sortIndex=ee.expirationTime,r(h,ee);else break;ee=a(g)}}function W(we){if(C=!1,z(we),!A)if(a(h)!==null)A=!0,X||(X=!0,K());else{var ee=a(g);ee!==null&&re(W,ee.startTime-we)}}var X=!1,B=-1,Y=5,G=-1;function ie(){return O?!0:!(e.unstable_now()-Gwe&&ie());){var ce=w.callback;if(typeof ce=="function"){w.callback=null,E=w.priorityLevel;var ye=ce(w.expirationTime<=we);if(we=e.unstable_now(),typeof ye=="function"){w.callback=ye,z(we),ee=!0;break t}w===a(h)&&s(h),z(we)}else s(h);w=a(h)}if(w!==null)ee=!0;else{var te=a(g);te!==null&&re(W,te.startTime-we),ee=!1}}break e}finally{w=null,E=ve,S=!1}ee=void 0}}finally{ee?K():X=!1}}}var K;if(typeof F=="function")K=function(){F(fe)};else if(typeof MessageChannel!="undefined"){var ke=new MessageChannel,ge=ke.port2;ke.port1.onmessage=fe,K=function(){ge.postMessage(null)}}else K=function(){M(fe,0)};function re(we,ee){B=M(function(){we(e.unstable_now())},ee)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(we){we.callback=null},e.unstable_forceFrameRate=function(we){0>we||125ce?(we.sortIndex=ve,r(g,we),a(h)===null&&we===a(g)&&(C?(R(B),B=-1):C=!0,re(W,ve-ce))):(we.sortIndex=ye,r(h,we),A||S||(A=!0,X||(X=!0,K()))),we},e.unstable_shouldYield=ie,e.unstable_wrapCallback=function(we){var ee=E;return function(){var ve=E;E=ee;try{return we.apply(this,arguments)}finally{E=ve}}}})(jp)),jp}var vw;function i6(){return vw||(vw=1,Np.exports=n6()),Np.exports}var Sp={exports:{}},vi={};var ww;function o6(){if(ww)return vi;ww=1;var e=ug();function r(h){var g="https://react.dev/errors/"+h;if(1ye||(o.current=ce[ye],ce[ye]=null,ye--)}function J(o,d){ye++,ce[ye]=o.current,o.current=d}var ae=te(null),oe=te(null),le=te(null),be=te(null);function Z(o,d){switch(J(le,d),J(oe,o),J(ae,null),d.nodeType){case 9:case 11:o=(o=d.documentElement)&&(o=o.namespaceURI)?Iv(o):0;break;default:if(o=d.tagName,d=d.namespaceURI)d=Iv(d),o=Mv(d,o);else switch(o){case"svg":o=1;break;case"math":o=2;break;default:o=0}}q(ae),J(ae,o)}function Le(){q(ae),q(oe),q(le)}function Pe(o){o.memoizedState!==null&&J(be,o);var d=ae.current,p=Mv(d,o.type);d!==p&&(J(oe,o),J(ae,p))}function Be(o){oe.current===o&&(q(ae),q(oe)),be.current===o&&(q(be),Wu._currentValue=ve)}var pe,rt;function ct(o){if(pe===void 0)try{throw Error()}catch(p){var d=p.stack.trim().match(/\n( *(at )?)/);pe=d&&d[1]||"",rt=-1)":-1I||lt[N]!==Ut[I]){var nr=` `+lt[N].replace(" at new "," at ");return o.displayName&&nr.includes("")&&(nr=nr.replace("",o.displayName)),nr}while(1<=N&&0<=I);break}}}finally{et=!1,Error.prepareStackTrace=p}return(p=o?o.displayName||o.name:"")?ct(p):""}function ft(o,d){switch(o.tag){case 26:case 27:case 5:return ct(o.type);case 16:return ct("Lazy");case 13:return o.child!==d&&d!==null?ct("Suspense Fallback"):ct("Suspense");case 19:return ct("SuspenseList");case 0:case 15:return It(o.type,!1);case 11:return It(o.type.render,!1);case 1:return It(o.type,!0);case 31:return ct("Activity");default:return""}}function Lt(o){try{var d="",p=null;do d+=ft(o,p),p=o,o=o.return;while(o);return d}catch(N){return` Error generating stack: `+N.message+` `+N.stack}}var Je=Object.prototype.hasOwnProperty,Ve=e.unstable_scheduleCallback,Xe=e.unstable_cancelCallback,Rt=e.unstable_shouldYield,qe=e.unstable_requestPaint,Dt=e.unstable_now,ar=e.unstable_getCurrentPriorityLevel,yt=e.unstable_ImmediatePriority,St=e.unstable_UserBlockingPriority,Ot=e.unstable_NormalPriority,Yt=e.unstable_LowPriority,Ye=e.unstable_IdlePriority,wt=e.log,zt=e.unstable_setDisableYieldValue,qt=null,kt=null;function ze(o){if(typeof wt=="function"&&zt(o),kt&&typeof kt.setStrictMode=="function")try{kt.setStrictMode(qt,o)}catch(d){}}var nt=Math.clz32?Math.clz32:pr,_t=Math.log,lr=Math.LN2;function pr(o){return o>>>=0,o===0?32:31-(_t(o)/lr|0)|0}var Nr=256,rr=262144,_r=4194304;function Nt(o){var d=o&42;if(d!==0)return d;switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return o&261888;case 262144:case 524288:case 1048576:case 2097152:return o&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return o&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return o}}function Cr(o,d,p){var N=o.pendingLanes;if(N===0)return 0;var I=0,U=o.suspendedLanes,xe=o.pingedLanes;o=o.warmLanes;var Ie=N&134217727;return Ie!==0?(N=Ie&~U,N!==0?I=Nt(N):(xe&=Ie,xe!==0?I=Nt(xe):p||(p=Ie&~o,p!==0&&(I=Nt(p))))):(Ie=N&~U,Ie!==0?I=Nt(Ie):xe!==0?I=Nt(xe):p||(p=N&~o,p!==0&&(I=Nt(p)))),I===0?0:d!==0&&d!==I&&(d&U)===0&&(U=I&-I,p=d&-d,U>=p||U===32&&(p&4194048)!==0)?d:I}function yr(o,d){return(o.pendingLanes&~(o.suspendedLanes&~o.pingedLanes)&d)===0}function jt(o,d){switch(o){case 1:case 2:case 4:case 8:case 64:return d+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return d+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Tt(){var o=_r;return _r<<=1,(_r&62914560)===0&&(_r=4194304),o}function He(o){for(var d=[],p=0;31>p;p++)d.push(o);return d}function Fe(o,d){o.pendingLanes|=d,d!==268435456&&(o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0)}function Ze(o,d,p,N,I,U){var xe=o.pendingLanes;o.pendingLanes=p,o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0,o.expiredLanes&=p,o.entangledLanes&=p,o.errorRecoveryDisabledLanes&=p,o.shellSuspendCounter=0;var Ie=o.entanglements,lt=o.expirationTimes,Ut=o.hiddenUpdates;for(p=xe&~p;0=lo),xi=" ",ds=!1;function Ul(o,d){switch(o){case"keyup":return On.indexOf(d.keyCode)!==-1;case"keydown":return d.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function co(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var To=!1;function Rs(o,d){switch(o){case"compositionend":return co(d);case"keypress":return d.which!==32?null:(ds=!0,xi);case"textInput":return o=d.data,o===xi&&ds?null:o;default:return null}}function Di(o,d){if(To)return o==="compositionend"||!Eo&&Ul(o,d)?(o=en(),Qa=$s=Os=null,To=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(d.ctrlKey||d.altKey||d.metaKey)||d.ctrlKey&&d.altKey){if(d.char&&1=d)return{node:p,offset:d-o};o=N}e:{for(;p;){if(p.nextSibling){p=p.nextSibling;break e}p=p.parentNode}p=void 0}p=P(p)}}function de(o,d){return o&&d?o===d?!0:o&&o.nodeType===3?!1:d&&d.nodeType===3?de(o,d.parentNode):"contains"in o?o.contains(d):o.compareDocumentPosition?!!(o.compareDocumentPosition(d)&16):!1:!1}function je(o){o=o!=null&&o.ownerDocument!=null&&o.ownerDocument.defaultView!=null?o.ownerDocument.defaultView:window;for(var d=Cn(o.document);d instanceof o.HTMLIFrameElement;){try{var p=typeof d.contentWindow.location.href=="string"}catch(N){p=!1}if(p)o=d.contentWindow;else break;d=Cn(o.document)}return d}function Ae(o){var d=o&&o.nodeName&&o.nodeName.toLowerCase();return d&&(d==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||d==="textarea"||o.contentEditable==="true")}var Ge=oa&&"documentMode"in document&&11>=document.documentMode,ot=null,ut=null,At=null,se=!1;function Ee(o,d,p){var N=p.window===p?p.document:p.nodeType===9?p:p.ownerDocument;se||ot==null||ot!==Cn(N)||(N=ot,"selectionStart"in N&&Ae(N)?N={start:N.selectionStart,end:N.selectionEnd}:(N=(N.ownerDocument&&N.ownerDocument.defaultView||window).getSelection(),N={anchorNode:N.anchorNode,anchorOffset:N.anchorOffset,focusNode:N.focusNode,focusOffset:N.focusOffset}),At&&T(At,N)||(At=N,N=zh(ut,"onSelect"),0>=xe,I-=xe,cr=1<<32-nt(d)+I|p<wa?(Ma=Hr,Hr=null):Ma=Hr.sibling;var Xa=Vt(Ct,Hr,Bt[wa],or);if(Xa===null){Hr===null&&(Hr=Ma);break}o&&Hr&&Xa.alternate===null&&d(Ct,Hr),pt=U(Xa,pt,wa),qa===null?Xr=Xa:qa.sibling=Xa,qa=Xa,Hr=Ma}if(wa===Bt.length)return p(Ct,Hr),Da&&Vr(Ct,wa),Xr;if(Hr===null){for(;wawa?(Ma=Hr,Hr=null):Ma=Hr.sibling;var Uc=Vt(Ct,Hr,Xa.value,or);if(Uc===null){Hr===null&&(Hr=Ma);break}o&&Hr&&Uc.alternate===null&&d(Ct,Hr),pt=U(Uc,pt,wa),qa===null?Xr=Uc:qa.sibling=Uc,qa=Uc,Hr=Ma}if(Xa.done)return p(Ct,Hr),Da&&Vr(Ct,wa),Xr;if(Hr===null){for(;!Xa.done;wa++,Xa=Bt.next())Xa=dr(Ct,Xa.value,or),Xa!==null&&(pt=U(Xa,pt,wa),qa===null?Xr=Xa:qa.sibling=Xa,qa=Xa);return Da&&Vr(Ct,wa),Xr}for(Hr=N(Hr);!Xa.done;wa++,Xa=Bt.next())Xa=er(Hr,Ct,wa,Xa.value,or),Xa!==null&&(o&&Xa.alternate!==null&&Hr.delete(Xa.key===null?wa:Xa.key),pt=U(Xa,pt,wa),qa===null?Xr=Xa:qa.sibling=Xa,qa=Xa);return o&&Hr.forEach(function(ZC){return d(Ct,ZC)}),Da&&Vr(Ct,wa),Xr}function hs(Ct,pt,Bt,or){if(typeof Bt=="object"&&Bt!==null&&Bt.type===C&&Bt.key===null&&(Bt=Bt.props.children),typeof Bt=="object"&&Bt!==null){switch(Bt.$$typeof){case S:e:{for(var Xr=Bt.key;pt!==null;){if(pt.key===Xr){if(Xr=Bt.type,Xr===C){if(pt.tag===7){p(Ct,pt.sibling),or=I(pt,Bt.props.children),or.return=Ct,Ct=or;break e}}else if(pt.elementType===Xr||typeof Xr=="object"&&Xr!==null&&Xr.$$typeof===Y&&cd(Xr)===pt.type){p(Ct,pt.sibling),or=I(pt,Bt.props),bu(or,Bt),or.return=Ct,Ct=or;break e}p(Ct,pt);break}else d(Ct,pt);pt=pt.sibling}Bt.type===C?(or=Hl(Bt.props.children,Ct.mode,or,Bt.key),or.return=Ct,Ct=or):(or=sd(Bt.type,Bt.key,Bt.props,null,Ct.mode,or),bu(or,Bt),or.return=Ct,Ct=or)}return xe(Ct);case A:e:{for(Xr=Bt.key;pt!==null;){if(pt.key===Xr)if(pt.tag===4&&pt.stateNode.containerInfo===Bt.containerInfo&&pt.stateNode.implementation===Bt.implementation){p(Ct,pt.sibling),or=I(pt,Bt.children||[]),or.return=Ct,Ct=or;break e}else{p(Ct,pt);break}else d(Ct,pt);pt=pt.sibling}or=hu(Bt,Ct.mode,or),or.return=Ct,Ct=or}return xe(Ct);case Y:return Bt=cd(Bt),hs(Ct,pt,Bt,or)}if(re(Bt))return Mr(Ct,pt,Bt,or);if(K(Bt)){if(Xr=K(Bt),typeof Xr!="function")throw Error(s(150));return Bt=Xr.call(Bt),ta(Ct,pt,Bt,or)}if(typeof Bt.then=="function")return hs(Ct,pt,uh(Bt),or);if(Bt.$$typeof===F)return hs(Ct,pt,oh(Ct,Bt),or);fh(Ct,Bt)}return typeof Bt=="string"&&Bt!==""||typeof Bt=="number"||typeof Bt=="bigint"?(Bt=""+Bt,pt!==null&&pt.tag===6?(p(Ct,pt.sibling),or=I(pt,Bt),or.return=Ct,Ct=or):(p(Ct,pt),or=e0(Bt,Ct.mode,or),or.return=Ct,Ct=or),xe(Ct)):p(Ct,pt)}return function(Ct,pt,Bt,or){try{yu=0;var Xr=hs(Ct,pt,Bt,or);return i0=null,Xr}catch(Hr){if(Hr===n0||Hr===ch)throw Hr;var qa=bi(29,Hr,null,Ct.mode);return qa.lanes=or,qa.return=Ct,qa}finally{}}}var ud=Sb(!0),Cb=Sb(!1),kc=!1;function qg(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Xg(o,d){o=o.updateQueue,d.updateQueue===o&&(d.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,callbacks:null})}function Nc(o){return{lane:o,tag:0,payload:null,callback:null,next:null}}function jc(o,d,p){var N=o.updateQueue;if(N===null)return null;if(N=N.shared,(Ka&2)!==0){var I=N.pending;return I===null?d.next=d:(d.next=I.next,I.next=d),N.pending=d,d=ad(o),wc(o,null,p),d}return vl(o,N,d,p),ad(o)}function vu(o,d,p){if(d=d.updateQueue,d!==null&&(d=d.shared,(p&4194048)!==0)){var N=d.lanes;N&=o.pendingLanes,p|=N,d.lanes=p,ir(o,p)}}function Zg(o,d){var p=o.updateQueue,N=o.alternate;if(N!==null&&(N=N.updateQueue,p===N)){var I=null,U=null;if(p=p.firstBaseUpdate,p!==null){do{var xe={lane:p.lane,tag:p.tag,payload:p.payload,callback:null,next:null};U===null?I=U=xe:U=U.next=xe,p=p.next}while(p!==null);U===null?I=U=d:U=U.next=d}else I=U=d;p={baseState:N.baseState,firstBaseUpdate:I,lastBaseUpdate:U,shared:N.shared,callbacks:N.callbacks},o.updateQueue=p;return}o=p.lastBaseUpdate,o===null?p.firstBaseUpdate=d:o.next=d,p.lastBaseUpdate=d}var Kg=!1;function wu(){if(Kg){var o=s0;if(o!==null)throw o}}function _u(o,d,p,N){Kg=!1;var I=o.updateQueue;kc=!1;var U=I.firstBaseUpdate,xe=I.lastBaseUpdate,Ie=I.shared.pending;if(Ie!==null){I.shared.pending=null;var lt=Ie,Ut=lt.next;lt.next=null,xe===null?U=Ut:xe.next=Ut,xe=lt;var nr=o.alternate;nr!==null&&(nr=nr.updateQueue,Ie=nr.lastBaseUpdate,Ie!==xe&&(Ie===null?nr.firstBaseUpdate=Ut:Ie.next=Ut,nr.lastBaseUpdate=lt))}if(U!==null){var dr=I.baseState;xe=0,nr=Ut=lt=null,Ie=U;do{var Vt=Ie.lane&-536870913,er=Vt!==Ie.lane;if(er?(Ia&Vt)===Vt:(N&Vt)===Vt){Vt!==0&&Vt===a0&&(Kg=!0),nr!==null&&(nr=nr.next={lane:0,tag:Ie.tag,payload:Ie.payload,callback:null,next:null});e:{var Mr=o,ta=Ie;Vt=d;var hs=p;switch(ta.tag){case 1:if(Mr=ta.payload,typeof Mr=="function"){dr=Mr.call(hs,dr,Vt);break e}dr=Mr;break e;case 3:Mr.flags=Mr.flags&-65537|128;case 0:if(Mr=ta.payload,Vt=typeof Mr=="function"?Mr.call(hs,dr,Vt):Mr,Vt==null)break e;dr=w({},dr,Vt);break e;case 2:kc=!0}}Vt=Ie.callback,Vt!==null&&(o.flags|=64,er&&(o.flags|=8192),er=I.callbacks,er===null?I.callbacks=[Vt]:er.push(Vt))}else er={lane:Vt,tag:Ie.tag,payload:Ie.payload,callback:Ie.callback,next:null},nr===null?(Ut=nr=er,lt=dr):nr=nr.next=er,xe|=Vt;if(Ie=Ie.next,Ie===null){if(Ie=I.shared.pending,Ie===null)break;er=Ie,Ie=er.next,er.next=null,I.lastBaseUpdate=er,I.shared.pending=null}}while(!0);nr===null&&(lt=dr),I.baseState=lt,I.firstBaseUpdate=Ut,I.lastBaseUpdate=nr,U===null&&(I.shared.lanes=0),Ac|=xe,o.lanes=xe,o.memoizedState=dr}}function Eb(o,d){if(typeof o!="function")throw Error(s(191,o));o.call(d)}function Tb(o,d){var p=o.callbacks;if(p!==null)for(o.callbacks=null,o=0;oU?U:8;var xe=we.T,Ie={};we.T=Ie,xx(o,!1,d,p);try{var lt=I(),Ut=we.S;if(Ut!==null&&Ut(Ie,lt),lt!==null&&typeof lt=="object"&&typeof lt.then=="function"){var nr=BS(lt,N);ju(o,d,nr,go(o))}else ju(o,d,N,go(o))}catch(dr){ju(o,d,{then:function(){},status:"rejected",reason:dr},go())}finally{ee.p=U,xe!==null&&Ie.types!==null&&(xe.types=Ie.types),we.T=xe}}function VS(){}function mx(o,d,p,N){if(o.tag!==5)throw Error(s(476));var I=o2(o).queue;i2(o,I,d,ve,p===null?VS:function(){return l2(o),p(N)})}function o2(o){var d=o.memoizedState;if(d!==null)return d;d={memoizedState:ve,baseState:ve,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Yl,lastRenderedState:ve},next:null};var p={};return d.next={memoizedState:p,baseState:p,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Yl,lastRenderedState:p},next:null},o.memoizedState=d,o=o.alternate,o!==null&&(o.memoizedState=d),d}function l2(o){var d=o2(o);d.next===null&&(d=o.alternate.memoizedState),ju(o,d.next.queue,{},go())}function gx(){return li(Wu)}function c2(){return an().memoizedState}function d2(){return an().memoizedState}function GS(o){for(var d=o.return;d!==null;){switch(d.tag){case 24:case 3:var p=go();o=Nc(p);var N=jc(d,o,p);N!==null&&(Ki(N,d,p),vu(N,d,p)),d={cache:$g()},o.payload=d;return}d=d.return}}function YS(o,d,p){var N=go();p={lane:N,revertLane:0,gesture:null,action:p,hasEagerState:!1,eagerState:null,next:null},_h(o)?f2(d,p):(p=du(o,d,p,N),p!==null&&(Ki(p,o,N),h2(p,d,N)))}function u2(o,d,p){var N=go();ju(o,d,p,N)}function ju(o,d,p,N){var I={lane:N,revertLane:0,gesture:null,action:p,hasEagerState:!1,eagerState:null,next:null};if(_h(o))f2(d,I);else{var U=o.alternate;if(o.lanes===0&&(U===null||U.lanes===0)&&(U=d.lastRenderedReducer,U!==null))try{var xe=d.lastRenderedState,Ie=U(xe,p);if(I.hasEagerState=!0,I.eagerState=Ie,j(Ie,xe))return vl(o,d,I,0),xs===null&&bl(),!1}catch(lt){}finally{}if(p=du(o,d,I,N),p!==null)return Ki(p,o,N),h2(p,d,N),!0}return!1}function xx(o,d,p,N){if(N={lane:2,revertLane:qx(),gesture:null,action:N,hasEagerState:!1,eagerState:null,next:null},_h(o)){if(d)throw Error(s(479))}else d=du(o,p,N,2),d!==null&&Ki(d,o,2)}function _h(o){var d=o.alternate;return o===pa||d!==null&&d===pa}function f2(o,d){l0=gh=!0;var p=o.pending;p===null?d.next=d:(d.next=p.next,p.next=d),o.pending=d}function h2(o,d,p){if((p&4194048)!==0){var N=d.lanes;N&=o.pendingLanes,p|=N,d.lanes=p,ir(o,p)}}var Su={readContext:li,use:yh,useCallback:Gs,useContext:Gs,useEffect:Gs,useImperativeHandle:Gs,useLayoutEffect:Gs,useInsertionEffect:Gs,useMemo:Gs,useReducer:Gs,useRef:Gs,useState:Gs,useDebugValue:Gs,useDeferredValue:Gs,useTransition:Gs,useSyncExternalStore:Gs,useId:Gs,useHostTransitionStatus:Gs,useFormState:Gs,useActionState:Gs,useOptimistic:Gs,useMemoCache:Gs,useCacheRefresh:Gs};Su.useEffectEvent=Gs;var m2={readContext:li,use:yh,useCallback:function(o,d){return Fi().memoizedState=[o,d===void 0?null:d],o},useContext:li,useEffect:Kb,useImperativeHandle:function(o,d,p){p=p!=null?p.concat([o]):null,vh(4194308,4,t2.bind(null,d,o),p)},useLayoutEffect:function(o,d){return vh(4194308,4,o,d)},useInsertionEffect:function(o,d){vh(4,2,o,d)},useMemo:function(o,d){var p=Fi();d=d===void 0?null:d;var N=o();if(fd){ze(!0);try{o()}finally{ze(!1)}}return p.memoizedState=[N,d],N},useReducer:function(o,d,p){var N=Fi();if(p!==void 0){var I=p(d);if(fd){ze(!0);try{p(d)}finally{ze(!1)}}}else I=d;return N.memoizedState=N.baseState=I,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:I},N.queue=o,o=o.dispatch=YS.bind(null,pa,o),[N.memoizedState,o]},useRef:function(o){var d=Fi();return o={current:o},d.memoizedState=o},useState:function(o){o=cx(o);var d=o.queue,p=u2.bind(null,pa,d);return d.dispatch=p,[o.memoizedState,p]},useDebugValue:fx,useDeferredValue:function(o,d){var p=Fi();return hx(p,o,d)},useTransition:function(){var o=cx(!1);return o=i2.bind(null,pa,o.queue,!0,!1),Fi().memoizedState=o,[!1,o]},useSyncExternalStore:function(o,d,p){var N=pa,I=Fi();if(Da){if(p===void 0)throw Error(s(407));p=p()}else{if(p=d(),xs===null)throw Error(s(349));(Ia&127)!==0||Ib(N,d,p)}I.memoizedState=p;var U={value:p,getSnapshot:d};return I.queue=U,Kb(Pb.bind(null,N,U,o),[o]),N.flags|=2048,d0(9,{destroy:void 0},Mb.bind(null,N,U,p,d),null),p},useId:function(){var o=Fi(),d=xs.identifierPrefix;if(Da){var p=Er,N=cr;p=(N&~(1<<32-nt(N)-1)).toString(32)+p,d="_"+d+"R_"+p,p=xh++,0<\/script>",U=U.removeChild(U.firstChild);break;case"select":U=typeof N.is=="string"?xe.createElement("select",{is:N.is}):xe.createElement("select"),N.multiple?U.multiple=!0:N.size&&(U.size=N.size);break;default:U=typeof N.is=="string"?xe.createElement(I,{is:N.is}):xe.createElement(I)}}U[ne]=d,U[_e]=N;e:for(xe=d.child;xe!==null;){if(xe.tag===5||xe.tag===6)U.appendChild(xe.stateNode);else if(xe.tag!==4&&xe.tag!==27&&xe.child!==null){xe.child.return=xe,xe=xe.child;continue}if(xe===d)break e;for(;xe.sibling===null;){if(xe.return===null||xe.return===d)break e;xe=xe.return}xe.sibling.return=xe.return,xe=xe.sibling}d.stateNode=U;e:switch(di(U,I,N),I){case"button":case"input":case"select":case"textarea":N=!!N.autoFocus;break e;case"img":N=!0;break e;default:N=!1}N&&Xl(d)}}return ks(d),Ax(d,d.type,o===null?null:o.memoizedProps,d.pendingProps,p),null;case 6:if(o&&d.stateNode!=null)o.memoizedProps!==N&&Xl(d);else{if(typeof N!="string"&&d.stateNode===null)throw Error(s(166));if(o=le.current,el(d)){if(o=d.stateNode,p=d.memoizedProps,N=null,I=Ga,I!==null)switch(I.tag){case 27:case 5:N=I.memoizedProps}o[ne]=d,o=!!(o.nodeValue===p||N!==null&&N.suppressHydrationWarning===!0||Rv(o.nodeValue,p)),o||_l(d,!0)}else o=Wh(o).createTextNode(N),o[ne]=d,d.stateNode=o}return ks(d),null;case 31:if(p=d.memoizedState,o===null||o.memoizedState!==null){if(N=el(d),p!==null){if(o===null){if(!N)throw Error(s(318));if(o=d.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(s(557));o[ne]=d}else $l(),(d.flags&128)===0&&(d.memoizedState=null),d.flags|=4;ks(d),o=!1}else p=gu(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=p),o=!0;if(!o)return d.flags&256?(fo(d),d):(fo(d),null);if((d.flags&128)!==0)throw Error(s(558))}return ks(d),null;case 13:if(N=d.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(I=el(d),N!==null&&N.dehydrated!==null){if(o===null){if(!I)throw Error(s(318));if(I=d.memoizedState,I=I!==null?I.dehydrated:null,!I)throw Error(s(317));I[ne]=d}else $l(),(d.flags&128)===0&&(d.memoizedState=null),d.flags|=4;ks(d),I=!1}else I=gu(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=I),I=!0;if(!I)return d.flags&256?(fo(d),d):(fo(d),null)}return fo(d),(d.flags&128)!==0?(d.lanes=p,d):(p=N!==null,o=o!==null&&o.memoizedState!==null,p&&(N=d.child,I=null,N.alternate!==null&&N.alternate.memoizedState!==null&&N.alternate.memoizedState.cachePool!==null&&(I=N.alternate.memoizedState.cachePool.pool),U=null,N.memoizedState!==null&&N.memoizedState.cachePool!==null&&(U=N.memoizedState.cachePool.pool),U!==I&&(N.flags|=2048)),p!==o&&p&&(d.child.flags|=8192),Ch(d,d.updateQueue),ks(d),null);case 4:return Le(),o===null&&Jx(d.stateNode.containerInfo),ks(d),null;case 10:return Vl(d.type),ks(d),null;case 19:if(q(rn),N=d.memoizedState,N===null)return ks(d),null;if(I=(d.flags&128)!==0,U=N.rendering,U===null)if(I)Eu(N,!1);else{if(Ys!==0||o!==null&&(o.flags&128)!==0)for(o=d.child;o!==null;){if(U=mh(o),U!==null){for(d.flags|=128,Eu(N,!1),o=U.updateQueue,d.updateQueue=o,Ch(d,o),d.subtreeFlags=0,o=p,p=d.child;p!==null;)uu(p,o),p=p.sibling;return J(rn,rn.current&1|2),Da&&Vr(d,N.treeForkCount),d.child}o=o.sibling}N.tail!==null&&Dt()>Dh&&(d.flags|=128,I=!0,Eu(N,!1),d.lanes=4194304)}else{if(!I)if(o=mh(U),o!==null){if(d.flags|=128,I=!0,o=o.updateQueue,d.updateQueue=o,Ch(d,o),Eu(N,!0),N.tail===null&&N.tailMode==="hidden"&&!U.alternate&&!Da)return ks(d),null}else 2*Dt()-N.renderingStartTime>Dh&&p!==536870912&&(d.flags|=128,I=!0,Eu(N,!1),d.lanes=4194304);N.isBackwards?(U.sibling=d.child,d.child=U):(o=N.last,o!==null?o.sibling=U:d.child=U,N.last=U)}return N.tail!==null?(o=N.tail,N.rendering=o,N.tail=o.sibling,N.renderingStartTime=Dt(),o.sibling=null,p=rn.current,J(rn,I?p&1|2:p&1),Da&&Vr(d,N.treeForkCount),o):(ks(d),null);case 22:case 23:return fo(d),Qg(),N=d.memoizedState!==null,o!==null?o.memoizedState!==null!==N&&(d.flags|=8192):N&&(d.flags|=8192),N?(p&536870912)!==0&&(d.flags&128)===0&&(ks(d),d.subtreeFlags&6&&(d.flags|=8192)):ks(d),p=d.updateQueue,p!==null&&Ch(d,p.retryQueue),p=null,o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(p=o.memoizedState.cachePool.pool),N=null,d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(N=d.memoizedState.cachePool.pool),N!==p&&(d.flags|=2048),o!==null&&q(ld),null;case 24:return p=null,o!==null&&(p=o.memoizedState.cache),d.memoizedState.cache!==p&&(d.flags|=2048),Vl(yn),ks(d),null;case 25:return null;case 30:return null}throw Error(s(156,d.tag))}function JS(o,d){switch(Vs(d),d.tag){case 1:return o=d.flags,o&65536?(d.flags=o&-65537|128,d):null;case 3:return Vl(yn),Le(),o=d.flags,(o&65536)!==0&&(o&128)===0?(d.flags=o&-65537|128,d):null;case 26:case 27:case 5:return Be(d),null;case 31:if(d.memoizedState!==null){if(fo(d),d.alternate===null)throw Error(s(340));$l()}return o=d.flags,o&65536?(d.flags=o&-65537|128,d):null;case 13:if(fo(d),o=d.memoizedState,o!==null&&o.dehydrated!==null){if(d.alternate===null)throw Error(s(340));$l()}return o=d.flags,o&65536?(d.flags=o&-65537|128,d):null;case 19:return q(rn),null;case 4:return Le(),null;case 10:return Vl(d.type),null;case 22:case 23:return fo(d),Qg(),o!==null&&q(ld),o=d.flags,o&65536?(d.flags=o&-65537|128,d):null;case 24:return Vl(yn),null;case 25:return null;default:return null}}function L2(o,d){switch(Vs(d),d.tag){case 3:Vl(yn),Le();break;case 26:case 27:case 5:Be(d);break;case 4:Le();break;case 31:d.memoizedState!==null&&fo(d);break;case 13:fo(d);break;case 19:q(rn);break;case 10:Vl(d.type);break;case 22:case 23:fo(d),Qg(),o!==null&&q(ld);break;case 24:Vl(yn)}}function Tu(o,d){try{var p=d.updateQueue,N=p!==null?p.lastEffect:null;if(N!==null){var I=N.next;p=I;do{if((p.tag&o)===o){N=void 0;var U=p.create,xe=p.inst;N=U(),xe.destroy=N}p=p.next}while(p!==I)}}catch(Ie){ns(d,d.return,Ie)}}function Ec(o,d,p){try{var N=d.updateQueue,I=N!==null?N.lastEffect:null;if(I!==null){var U=I.next;N=U;do{if((N.tag&o)===o){var xe=N.inst,Ie=xe.destroy;if(Ie!==void 0){xe.destroy=void 0,I=d;var lt=p,Ut=Ie;try{Ut()}catch(nr){ns(I,lt,nr)}}}N=N.next}while(N!==U)}}catch(nr){ns(d,d.return,nr)}}function B2(o){var d=o.updateQueue;if(d!==null){var p=o.stateNode;try{Tb(d,p)}catch(N){ns(o,o.return,N)}}}function U2(o,d,p){p.props=hd(o.type,o.memoizedProps),p.state=o.memoizedState;try{p.componentWillUnmount()}catch(N){ns(o,d,N)}}function Au(o,d){try{var p=o.ref;if(p!==null){switch(o.tag){case 26:case 27:case 5:var N=o.stateNode;break;case 30:N=o.stateNode;break;default:N=o.stateNode}typeof p=="function"?o.refCleanup=p(N):p.current=N}}catch(I){ns(o,d,I)}}function Nl(o,d){var p=o.ref,N=o.refCleanup;if(p!==null)if(typeof N=="function")try{N()}catch(I){ns(o,d,I)}finally{o.refCleanup=null,o=o.alternate,o!=null&&(o.refCleanup=null)}else if(typeof p=="function")try{p(null)}catch(I){ns(o,d,I)}else p.current=null}function z2(o){var d=o.type,p=o.memoizedProps,N=o.stateNode;try{e:switch(d){case"button":case"input":case"select":case"textarea":p.autoFocus&&N.focus();break e;case"img":p.src?N.src=p.src:p.srcSet&&(N.srcset=p.srcSet)}}catch(I){ns(o,o.return,I)}}function Ox(o,d,p){try{var N=o.stateNode;vC(N,o.type,p,d),N[_e]=d}catch(I){ns(o,o.return,I)}}function W2(o){return o.tag===5||o.tag===3||o.tag===26||o.tag===27&&Ic(o.type)||o.tag===4}function Dx(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||W2(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.tag===27&&Ic(o.type)||o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Rx(o,d,p){var N=o.tag;if(N===5||N===6)o=o.stateNode,d?(p.nodeType===9?p.body:p.nodeName==="HTML"?p.ownerDocument.body:p).insertBefore(o,d):(d=p.nodeType===9?p.body:p.nodeName==="HTML"?p.ownerDocument.body:p,d.appendChild(o),p=p._reactRootContainer,p!=null||d.onclick!==null||(d.onclick=Ts));else if(N!==4&&(N===27&&Ic(o.type)&&(p=o.stateNode,d=null),o=o.child,o!==null))for(Rx(o,d,p),o=o.sibling;o!==null;)Rx(o,d,p),o=o.sibling}function Eh(o,d,p){var N=o.tag;if(N===5||N===6)o=o.stateNode,d?p.insertBefore(o,d):p.appendChild(o);else if(N!==4&&(N===27&&Ic(o.type)&&(p=o.stateNode),o=o.child,o!==null))for(Eh(o,d,p),o=o.sibling;o!==null;)Eh(o,d,p),o=o.sibling}function H2(o){var d=o.stateNode,p=o.memoizedProps;try{for(var N=o.type,I=d.attributes;I.length;)d.removeAttributeNode(I[0]);di(d,N,p),d[ne]=o,d[_e]=p}catch(U){ns(o,o.return,U)}}var Zl=!1,wn=!1,Fx=!1,$2=typeof WeakSet=="function"?WeakSet:Set,Vn=null;function QS(o,d){if(o=o.containerInfo,tp=Xh,o=je(o),Ae(o)){if("selectionStart"in o)var p={start:o.selectionStart,end:o.selectionEnd};else e:{p=(p=o.ownerDocument)&&p.defaultView||window;var N=p.getSelection&&p.getSelection();if(N&&N.rangeCount!==0){p=N.anchorNode;var I=N.anchorOffset,U=N.focusNode;N=N.focusOffset;try{p.nodeType,U.nodeType}catch(ta){p=null;break e}var xe=0,Ie=-1,lt=-1,Ut=0,nr=0,dr=o,Vt=null;t:for(;;){for(var er;dr!==p||I!==0&&dr.nodeType!==3||(Ie=xe+I),dr!==U||N!==0&&dr.nodeType!==3||(lt=xe+N),dr.nodeType===3&&(xe+=dr.nodeValue.length),(er=dr.firstChild)!==null;)Vt=dr,dr=er;for(;;){if(dr===o)break t;if(Vt===p&&++Ut===I&&(Ie=xe),Vt===U&&++nr===N&&(lt=xe),(er=dr.nextSibling)!==null)break;dr=Vt,Vt=dr.parentNode}dr=er}p=Ie===-1||lt===-1?null:{start:Ie,end:lt}}else p=null}p=p||{start:0,end:0}}else p=null;for(rp={focusedElem:o,selectionRange:p},Xh=!1,Vn=d;Vn!==null;)if(d=Vn,o=d.child,(d.subtreeFlags&1028)!==0&&o!==null)o.return=d,Vn=o;else for(;Vn!==null;){switch(d=Vn,U=d.alternate,o=d.flags,d.tag){case 0:if((o&4)!==0&&(o=d.updateQueue,o=o!==null?o.events:null,o!==null))for(p=0;p title"))),di(U,N,p),U[ne]=o,br(U),N=U;break e;case"link":var xe=Zv("link","href",I).get(N+(p.href||""));if(xe){for(var Ie=0;Iehs&&(xe=hs,hs=ta,ta=xe);var Ct=H(Ie,ta),pt=H(Ie,hs);if(Ct&&pt&&(er.rangeCount!==1||er.anchorNode!==Ct.node||er.anchorOffset!==Ct.offset||er.focusNode!==pt.node||er.focusOffset!==pt.offset)){var Bt=dr.createRange();Bt.setStart(Ct.node,Ct.offset),er.removeAllRanges(),ta>hs?(er.addRange(Bt),er.extend(pt.node,pt.offset)):(Bt.setEnd(pt.node,pt.offset),er.addRange(Bt))}}}}for(dr=[],er=Ie;er=er.parentNode;)er.nodeType===1&&dr.push({element:er,left:er.scrollLeft,top:er.scrollTop});for(typeof Ie.focus=="function"&&Ie.focus(),Ie=0;Iep?32:p,we.T=null,p=zx,zx=null;var U=Dc,xe=tc;if(Rn=0,g0=Dc=null,tc=0,(Ka&6)!==0)throw Error(s(331));var Ie=Ka;if(Ka|=4,tv(U.current),J2(U,U.current,xe,p),Ka=Ie,Mu(0,!1),kt&&typeof kt.onPostCommitFiberRoot=="function")try{kt.onPostCommitFiberRoot(qt,U)}catch(lt){}return!0}finally{ee.p=I,we.T=N,bv(o,d)}}function wv(o,d,p){d=k(p,d),d=vx(o.stateNode,d,2),o=jc(o,d,2),o!==null&&(Fe(o,2),jl(o))}function ns(o,d,p){if(o.tag===3)wv(o,o,p);else for(;d!==null;){if(d.tag===3){wv(d,o,p);break}else if(d.tag===1){var N=d.stateNode;if(typeof d.type.getDerivedStateFromError=="function"||typeof N.componentDidCatch=="function"&&(Oc===null||!Oc.has(N))){o=k(p,o),p=_2(2),N=jc(d,p,2),N!==null&&(k2(p,N,d,o),Fe(N,2),jl(N));break}}d=d.return}}function Vx(o,d,p){var N=o.pingCache;if(N===null){N=o.pingCache=new rC;var I=new Set;N.set(d,I)}else I=N.get(d),I===void 0&&(I=new Set,N.set(d,I));I.has(p)||(Px=!0,I.add(p),o=oC.bind(null,o,d,p),d.then(o,o))}function oC(o,d,p){var N=o.pingCache;N!==null&&N.delete(d),o.pingedLanes|=o.suspendedLanes&p,o.warmLanes&=~p,xs===o&&(Ia&p)===p&&(Ys===4||Ys===3&&(Ia&62914560)===Ia&&300>Dt()-Oh?(Ka&2)===0&&x0(o,0):Lx|=p,m0===Ia&&(m0=0)),jl(o)}function _v(o,d){d===0&&(d=Tt()),o=Oo(o,d),o!==null&&(Fe(o,d),jl(o))}function lC(o){var d=o.memoizedState,p=0;d!==null&&(p=d.retryLane),_v(o,p)}function cC(o,d){var p=0;switch(o.tag){case 31:case 13:var N=o.stateNode,I=o.memoizedState;I!==null&&(p=I.retryLane);break;case 19:N=o.stateNode;break;case 22:N=o.stateNode._retryCache;break;default:throw Error(s(314))}N!==null&&N.delete(d),_v(o,p)}function dC(o,d){return Ve(o,d)}var Lh=null,y0=null,Gx=!1,Bh=!1,Yx=!1,Fc=0;function jl(o){o!==y0&&o.next===null&&(y0===null?Lh=y0=o:y0=y0.next=o),Bh=!0,Gx||(Gx=!0,fC())}function Mu(o,d){if(!Yx&&Bh){Yx=!0;do for(var p=!1,N=Lh;N!==null;){if(o!==0){var I=N.pendingLanes;if(I===0)var U=0;else{var xe=N.suspendedLanes,Ie=N.pingedLanes;U=(1<<31-nt(42|o)+1)-1,U&=I&~(xe&~Ie),U=U&201326741?U&201326741|1:U?U|2:0}U!==0&&(p=!0,Sv(N,U))}else U=Ia,U=Cr(N,N===xs?U:0,N.cancelPendingCommit!==null||N.timeoutHandle!==-1),(U&3)===0||yr(N,U)||(p=!0,Sv(N,U));N=N.next}while(p);Yx=!1}}function uC(){kv()}function kv(){Bh=Gx=!1;var o=0;Fc!==0&&_C()&&(o=Fc);for(var d=Dt(),p=null,N=Lh;N!==null;){var I=N.next,U=Nv(N,d);U===0?(N.next=null,p===null?Lh=I:p.next=I,I===null&&(y0=p)):(p=N,(o!==0||(U&3)!==0)&&(Bh=!0)),N=I}Rn!==0&&Rn!==5||Mu(o),Fc!==0&&(Fc=0)}function Nv(o,d){for(var p=o.suspendedLanes,N=o.pingedLanes,I=o.expirationTimes,U=o.pendingLanes&-62914561;0Ie)break;var nr=lt.transferSize,dr=lt.initiatorType;nr&&Fv(dr)&&(lt=lt.responseEnd,xe+=nr*(lt title"):null)}function BC(o,d,p){if(p===1||d.itemProp!=null)return!1;switch(o){case"meta":case"title":return!0;case"style":if(typeof d.precedence!="string"||typeof d.href!="string"||d.href==="")break;return!0;case"link":if(typeof d.rel!="string"||typeof d.href!="string"||d.href===""||d.onLoad||d.onError)break;switch(d.rel){case"stylesheet":return o=d.disabled,typeof d.precedence=="string"&&o==null;default:return!0}case"script":if(d.async&&typeof d.async!="function"&&typeof d.async!="symbol"&&!d.onLoad&&!d.onError&&d.src&&typeof d.src=="string")return!0}return!1}function Jv(o){return!(o.type==="stylesheet"&&(o.state.loading&3)===0)}function UC(o,d,p,N){if(p.type==="stylesheet"&&(typeof N.media!="string"||matchMedia(N.media).matches!==!1)&&(p.state.loading&4)===0){if(p.instance===null){var I=v0(N.href),U=d.querySelector(Uu(I));if(U){d=U._p,d!==null&&typeof d=="object"&&typeof d.then=="function"&&(o.count++,o=Gh.bind(o),d.then(o,o)),p.state.loading|=4,p.instance=U,br(U);return}U=d.ownerDocument||d,N=qv(N),(I=Io.get(I))&&cp(N,I),U=U.createElement("link"),br(U);var xe=U;xe._p=new Promise(function(Ie,lt){xe.onload=Ie,xe.onerror=lt}),di(U,"link",N),p.instance=U}o.stylesheets===null&&(o.stylesheets=new Map),o.stylesheets.set(p,d),(d=p.state.preload)&&(p.state.loading&3)===0&&(o.count++,p=Gh.bind(o),d.addEventListener("load",p),d.addEventListener("error",p))}}var up=0;function zC(o,d){return o.stylesheets&&o.count===0&&qh(o,o.stylesheets),0up?50:800)+d);return o.unsuspend=p,function(){o.unsuspend=null,clearTimeout(N),clearTimeout(I)}}:null}function Gh(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)qh(this,this.stylesheets);else if(this.unsuspend){var o=this.unsuspend;this.unsuspend=null,o()}}}var Yh=null;function qh(o,d){o.stylesheets=null,o.unsuspend!==null&&(o.count++,Yh=new Map,d.forEach(WC,o),Yh=null,Gh.call(o))}function WC(o,d){if(!(d.state.loading&4)){var p=Yh.get(o);if(p)var N=p.get(null);else{p=new Map,Yh.set(o,p);for(var I=o.querySelectorAll("link[data-precedence],style[data-precedence]"),U=0;Utypeof e=="string",qu=()=>{let e,r;const a=new Promise((s,n)=>{e=s,r=n});return a.resolve=e,a.reject=r,a},jw=e=>e==null?"":""+e,u6=(e,r,a)=>{e.forEach(s=>{r[s]&&(a[s]=r[s])})},f6=/###/g,Sw=e=>e&&e.indexOf("###")>-1?e.replace(f6,"."):e,Cw=e=>!e||ca(e),cf=(e,r,a)=>{const s=ca(r)?r.split("."):r;let n=0;for(;n{const{obj:s,k:n}=cf(e,r,Object);if(s!==void 0||r.length===1){s[n]=a;return}let i=r[r.length-1],c=r.slice(0,r.length-1),u=cf(e,c,Object);for(;u.obj===void 0&&c.length;)i=`${c[c.length-1]}.${i}`,c=c.slice(0,c.length-1),u=cf(e,c,Object),u!=null&&u.obj&&typeof u.obj[`${u.k}.${i}`]!="undefined"&&(u.obj=void 0);u.obj[`${u.k}.${i}`]=a},h6=(e,r,a,s)=>{const{obj:n,k:i}=cf(e,r,Object);n[i]=n[i]||[],n[i].push(a)},Mm=(e,r)=>{const{obj:a,k:s}=cf(e,r);if(a&&Object.prototype.hasOwnProperty.call(a,s))return a[s]},m6=(e,r,a)=>{const s=Mm(e,a);return s!==void 0?s:Mm(r,a)},k4=(e,r,a)=>{for(const s in r)s!=="__proto__"&&s!=="constructor"&&(s in e?ca(e[s])||e[s]instanceof String||ca(r[s])||r[s]instanceof String?a&&(e[s]=r[s]):k4(e[s],r[s],a):e[s]=r[s]);return e},N0=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var g6={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const x6=e=>ca(e)?e.replace(/[&<>"'\/]/g,r=>g6[r]):e;class p6{constructor(r){this.capacity=r,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(r){const a=this.regExpMap.get(r);if(a!==void 0)return a;const s=new RegExp(r);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(r,s),this.regExpQueue.push(r),s}}const y6=[" ",",","?","!",";"],b6=new p6(20),v6=(e,r,a)=>{r=r||"",a=a||"";const s=y6.filter(c=>r.indexOf(c)<0&&a.indexOf(c)<0);if(s.length===0)return!0;const n=b6.getRegExp(`(${s.map(c=>c==="?"?"\\?":c).join("|")})`);let i=!n.test(e);if(!i){const c=e.indexOf(a);c>0&&!n.test(e.substring(0,c))&&(i=!0)}return i},g1=(e,r,a=".")=>{if(!e)return;if(e[r])return Object.prototype.hasOwnProperty.call(e,r)?e[r]:void 0;const s=r.split(a);let n=e;for(let i=0;i-1&&he==null?void 0:e.replace("_","-"),w6={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,r){var a,s;(s=(a=console==null?void 0:console[e])==null?void 0:a.apply)==null||s.call(a,console,r)}};class Pm{constructor(r,a={}){this.init(r,a)}init(r,a={}){this.prefix=a.prefix||"i18next:",this.logger=r||w6,this.options=a,this.debug=a.debug}log(...r){return this.forward(r,"log","",!0)}warn(...r){return this.forward(r,"warn","",!0)}error(...r){return this.forward(r,"error","")}deprecate(...r){return this.forward(r,"warn","WARNING DEPRECATED: ",!0)}forward(r,a,s,n){return n&&!this.debug?null:(ca(r[0])&&(r[0]=`${s}${this.prefix} ${r[0]}`),this.logger[a](r))}create(r){return new Pm(this.logger,Te({prefix:`${this.prefix}:${r}:`},this.options))}clone(r){return r=r||this.options,r.prefix=r.prefix||this.prefix,new Pm(this.logger,r)}}var Dl=new Pm;class fg{constructor(){this.observers={}}on(r,a){return r.split(" ").forEach(s=>{this.observers[s]||(this.observers[s]=new Map);const n=this.observers[s].get(a)||0;this.observers[s].set(a,n+1)}),this}off(r,a){if(this.observers[r]){if(!a){delete this.observers[r];return}this.observers[r].delete(a)}}emit(r,...a){this.observers[r]&&Array.from(this.observers[r].entries()).forEach(([n,i])=>{for(let c=0;c{for(let c=0;c-1&&this.options.ns.splice(a,1)}getResource(r,a,s,n={}){var g,y;const i=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,c=n.ignoreJSONStructure!==void 0?n.ignoreJSONStructure:this.options.ignoreJSONStructure;let u;r.indexOf(".")>-1?u=r.split("."):(u=[r,a],s&&(Array.isArray(s)?u.push(...s):ca(s)&&i?u.push(...s.split(i)):u.push(s)));const h=Mm(this.data,u);return!h&&!a&&!s&&r.indexOf(".")>-1&&(r=u[0],a=u[1],s=u.slice(2).join(".")),h||!c||!ca(s)?h:g1((y=(g=this.data)==null?void 0:g[r])==null?void 0:y[a],s,i)}addResource(r,a,s,n,i={silent:!1}){const c=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator;let u=[r,a];s&&(u=u.concat(c?s.split(c):s)),r.indexOf(".")>-1&&(u=r.split("."),n=a,a=u[1]),this.addNamespaces(a),Ew(this.data,u,n),i.silent||this.emit("added",r,a,s,n)}addResources(r,a,s,n={silent:!1}){for(const i in s)(ca(s[i])||Array.isArray(s[i]))&&this.addResource(r,a,i,s[i],{silent:!0});n.silent||this.emit("added",r,a,s)}addResourceBundle(r,a,s,n,i,c={silent:!1,skipCopy:!1}){let u=[r,a];r.indexOf(".")>-1&&(u=r.split("."),n=s,s=a,a=u[1]),this.addNamespaces(a);let h=Mm(this.data,u)||{};c.skipCopy||(s=JSON.parse(JSON.stringify(s))),n?k4(h,s,i):h=Te(Te({},h),s),Ew(this.data,u,h),c.silent||this.emit("added",r,a,s)}removeResourceBundle(r,a){this.hasResourceBundle(r,a)&&delete this.data[r][a],this.removeNamespaces(a),this.emit("removed",r,a)}hasResourceBundle(r,a){return this.getResource(r,a)!==void 0}getResourceBundle(r,a){return a||(a=this.options.defaultNS),this.getResource(r,a)}getDataByLanguage(r){return this.data[r]}hasLanguageSomeTranslations(r){const a=this.getDataByLanguage(r);return!!(a&&Object.keys(a)||[]).find(n=>a[n]&&Object.keys(a[n]).length>0)}toJSON(){return this.data}}var N4={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,r,a,s,n){return e.forEach(i=>{var c,u;r=(u=(c=this.processors[i])==null?void 0:c.process(r,a,s,n))!=null?u:r}),r}};const j4=Symbol("i18next/PATH_KEY");function _6(){const e=[],r=Object.create(null);let a;return r.get=(s,n)=>{var i;return(i=a==null?void 0:a.revoke)==null||i.call(a),n===j4?e:(e.push(n),a=Proxy.revocable(s,r),a.proxy)},Proxy.revocable(Object.create(null),r).proxy}function x1(e,r){var s;const{[j4]:a}=e(_6());return a.join((s=r==null?void 0:r.keySeparator)!=null?s:".")}const Aw={},Cp=e=>!ca(e)&&typeof e!="boolean"&&typeof e!="number";class Lm extends fg{constructor(r,a={}){super(),u6(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],r,this),this.options=a,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Dl.create("translator")}changeLanguage(r){r&&(this.language=r)}exists(r,a={interpolation:{}}){const s=Te({},a);if(r==null)return!1;const n=this.resolve(r,s);if((n==null?void 0:n.res)===void 0)return!1;const i=Cp(n.res);return!(s.returnObjects===!1&&i)}extractFromKey(r,a){let s=a.nsSeparator!==void 0?a.nsSeparator:this.options.nsSeparator;s===void 0&&(s=":");const n=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator;let i=a.ns||this.options.defaultNS||[];const c=s&&r.indexOf(s)>-1,u=!this.options.userDefinedKeySeparator&&!a.keySeparator&&!this.options.userDefinedNsSeparator&&!a.nsSeparator&&!v6(r,s,n);if(c&&!u){const h=r.match(this.interpolator.nestingRegexp);if(h&&h.length>0)return{key:r,namespaces:ca(i)?[i]:i};const g=r.split(s);(s!==n||s===n&&this.options.ns.indexOf(g[0])>-1)&&(i=g.shift()),r=g.join(n)}return{key:r,namespaces:ca(i)?[i]:i}}translate(r,a,s){let n=typeof a=="object"?Te({},a):a;if(typeof n!="object"&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),typeof n=="object"&&(n=Te({},n)),n||(n={}),r==null)return"";typeof r=="function"&&(r=x1(r,Te(Te({},this.options),n))),Array.isArray(r)||(r=[String(r)]);const i=n.returnDetails!==void 0?n.returnDetails:this.options.returnDetails,c=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,{key:u,namespaces:h}=this.extractFromKey(r[r.length-1],n),g=h[h.length-1];let y=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;y===void 0&&(y=":");const w=n.lng||this.language,E=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if((w==null?void 0:w.toLowerCase())==="cimode")return E?i?{res:`${g}${y}${u}`,usedKey:u,exactUsedKey:u,usedLng:w,usedNS:g,usedParams:this.getUsedParamsDetails(n)}:`${g}${y}${u}`:i?{res:u,usedKey:u,exactUsedKey:u,usedLng:w,usedNS:g,usedParams:this.getUsedParamsDetails(n)}:u;const S=this.resolve(r,n);let A=S==null?void 0:S.res;const C=(S==null?void 0:S.usedKey)||u,O=(S==null?void 0:S.exactUsedKey)||u,M=["[object Number]","[object Function]","[object RegExp]"],R=n.joinArrays!==void 0?n.joinArrays:this.options.joinArrays,F=!this.i18nFormat||this.i18nFormat.handleAsObject,z=n.count!==void 0&&!ca(n.count),W=Lm.hasDefaultValue(n),X=z?this.pluralResolver.getSuffix(w,n.count,n):"",B=n.ordinal&&z?this.pluralResolver.getSuffix(w,n.count,{ordinal:!1}):"",Y=z&&!n.ordinal&&n.count===0,G=Y&&n[`defaultValue${this.options.pluralSeparator}zero`]||n[`defaultValue${X}`]||n[`defaultValue${B}`]||n.defaultValue;let ie=A;F&&!A&&W&&(ie=G);const fe=Cp(ie),K=Object.prototype.toString.apply(ie);if(F&&ie&&fe&&M.indexOf(K)<0&&!(ca(R)&&Array.isArray(ie))){if(!n.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const ke=this.options.returnedObjectHandler?this.options.returnedObjectHandler(C,ie,Ke(Te({},n),{ns:h})):`key '${u} (${this.language})' returned an object instead of string.`;return i?(S.res=ke,S.usedParams=this.getUsedParamsDetails(n),S):ke}if(c){const ke=Array.isArray(ie),ge=ke?[]:{},re=ke?O:C;for(const we in ie)if(Object.prototype.hasOwnProperty.call(ie,we)){const ee=`${re}${c}${we}`;W&&!A?ge[we]=this.translate(ee,Ke(Te({},n),{defaultValue:Cp(G)?G[we]:void 0,joinArrays:!1,ns:h})):ge[we]=this.translate(ee,Ke(Te({},n),{joinArrays:!1,ns:h})),ge[we]===ee&&(ge[we]=ie[we])}A=ge}}else if(F&&ca(R)&&Array.isArray(A))A=A.join(R),A&&(A=this.extendTranslation(A,r,n,s));else{let ke=!1,ge=!1;!this.isValidLookup(A)&&W&&(ke=!0,A=G),this.isValidLookup(A)||(ge=!0,A=u);const we=(n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&ge?void 0:A,ee=W&&G!==A&&this.options.updateMissing;if(ge||ke||ee){if(this.logger.log(ee?"updateKey":"missingKey",w,g,u,ee?G:A),c){const te=this.resolve(u,Ke(Te({},n),{keySeparator:!1}));te&&te.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let ve=[];const ce=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&ce&&ce[0])for(let te=0;te{var oe;const ae=W&&J!==A?J:we;this.options.missingKeyHandler?this.options.missingKeyHandler(te,g,q,ae,ee,n):(oe=this.backendConnector)!=null&&oe.saveMissing&&this.backendConnector.saveMissing(te,g,q,ae,ee,n),this.emit("missingKey",te,g,q,A)};this.options.saveMissing&&(this.options.saveMissingPlurals&&z?ve.forEach(te=>{const q=this.pluralResolver.getSuffixes(te,n);Y&&n[`defaultValue${this.options.pluralSeparator}zero`]&&q.indexOf(`${this.options.pluralSeparator}zero`)<0&&q.push(`${this.options.pluralSeparator}zero`),q.forEach(J=>{ye([te],u+J,n[`defaultValue${J}`]||G)})}):ye(ve,u,G))}A=this.extendTranslation(A,r,n,S,s),ge&&A===u&&this.options.appendNamespaceToMissingKey&&(A=`${g}${y}${u}`),(ge||ke)&&this.options.parseMissingKeyHandler&&(A=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${g}${y}${u}`:u,ke?A:void 0,n))}return i?(S.res=A,S.usedParams=this.getUsedParamsDetails(n),S):A}extendTranslation(r,a,s,n,i){var h,g;if((h=this.i18nFormat)!=null&&h.parse)r=this.i18nFormat.parse(r,Te(Te({},this.options.interpolation.defaultVariables),s),s.lng||this.language||n.usedLng,n.usedNS,n.usedKey,{resolved:n});else if(!s.skipInterpolation){s.interpolation&&this.interpolator.init(Ke(Te({},s),{interpolation:Te(Te({},this.options.interpolation),s.interpolation)}));const y=ca(r)&&(((g=s==null?void 0:s.interpolation)==null?void 0:g.skipOnVariables)!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let w;if(y){const S=r.match(this.interpolator.nestingRegexp);w=S&&S.length}let E=s.replace&&!ca(s.replace)?s.replace:s;if(this.options.interpolation.defaultVariables&&(E=Te(Te({},this.options.interpolation.defaultVariables),E)),r=this.interpolator.interpolate(r,E,s.lng||this.language||n.usedLng,s),y){const S=r.match(this.interpolator.nestingRegexp),A=S&&S.length;w(i==null?void 0:i[0])===S[0]&&!s.context?(this.logger.warn(`It seems you are nesting recursively key: ${S[0]} in key: ${a[0]}`),null):this.translate(...S,a),s)),s.interpolation&&this.interpolator.reset()}const c=s.postProcess||this.options.postProcess,u=ca(c)?[c]:c;return r!=null&&(u!=null&&u.length)&&s.applyPostProcessor!==!1&&(r=N4.handle(u,r,a,this.options&&this.options.postProcessPassResolved?Te({i18nResolved:Ke(Te({},n),{usedParams:this.getUsedParamsDetails(s)})},s):s,this)),r}resolve(r,a={}){let s,n,i,c,u;return ca(r)&&(r=[r]),r.forEach(h=>{if(this.isValidLookup(s))return;const g=this.extractFromKey(h,a),y=g.key;n=y;let w=g.namespaces;this.options.fallbackNS&&(w=w.concat(this.options.fallbackNS));const E=a.count!==void 0&&!ca(a.count),S=E&&!a.ordinal&&a.count===0,A=a.context!==void 0&&(ca(a.context)||typeof a.context=="number")&&a.context!=="",C=a.lngs?a.lngs:this.languageUtils.toResolveHierarchy(a.lng||this.language,a.fallbackLng);w.forEach(O=>{var M,R;this.isValidLookup(s)||(u=O,!Aw[`${C[0]}-${O}`]&&((M=this.utils)!=null&&M.hasLoadedNamespace)&&!((R=this.utils)!=null&&R.hasLoadedNamespace(u))&&(Aw[`${C[0]}-${O}`]=!0,this.logger.warn(`key "${n}" for languages "${C.join(", ")}" won't get resolved as namespace "${u}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),C.forEach(F=>{var X;if(this.isValidLookup(s))return;c=F;const z=[y];if((X=this.i18nFormat)!=null&&X.addLookupKeys)this.i18nFormat.addLookupKeys(z,y,F,O,a);else{let B;E&&(B=this.pluralResolver.getSuffix(F,a.count,a));const Y=`${this.options.pluralSeparator}zero`,G=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(E&&(a.ordinal&&B.indexOf(G)===0&&z.push(y+B.replace(G,this.options.pluralSeparator)),z.push(y+B),S&&z.push(y+Y)),A){const ie=`${y}${this.options.contextSeparator||"_"}${a.context}`;z.push(ie),E&&(a.ordinal&&B.indexOf(G)===0&&z.push(ie+B.replace(G,this.options.pluralSeparator)),z.push(ie+B),S&&z.push(ie+Y))}}let W;for(;W=z.pop();)this.isValidLookup(s)||(i=W,s=this.getResource(F,O,W,a))}))})}),{res:s,usedKey:n,exactUsedKey:i,usedLng:c,usedNS:u}}isValidLookup(r){return r!==void 0&&!(!this.options.returnNull&&r===null)&&!(!this.options.returnEmptyString&&r==="")}getResource(r,a,s,n={}){var i;return(i=this.i18nFormat)!=null&&i.getResource?this.i18nFormat.getResource(r,a,s,n):this.resourceStore.getResource(r,a,s,n)}getUsedParamsDetails(r={}){const a=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],s=r.replace&&!ca(r.replace);let n=s?r.replace:r;if(s&&typeof r.count!="undefined"&&(n.count=r.count),this.options.interpolation.defaultVariables&&(n=Te(Te({},this.options.interpolation.defaultVariables),n)),!s){n=Te({},n);for(const i of a)delete n[i]}return n}static hasDefaultValue(r){const a="defaultValue";for(const s in r)if(Object.prototype.hasOwnProperty.call(r,s)&&a===s.substring(0,a.length)&&r[s]!==void 0)return!0;return!1}}class Ow{constructor(r){this.options=r,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Dl.create("languageUtils")}getScriptPartFromCode(r){if(r=kf(r),!r||r.indexOf("-")<0)return null;const a=r.split("-");return a.length===2||(a.pop(),a[a.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(a.join("-"))}getLanguagePartFromCode(r){if(r=kf(r),!r||r.indexOf("-")<0)return r;const a=r.split("-");return this.formatLanguageCode(a[0])}formatLanguageCode(r){if(ca(r)&&r.indexOf("-")>-1){let a;try{a=Intl.getCanonicalLocales(r)[0]}catch(s){}return a&&this.options.lowerCaseLng&&(a=a.toLowerCase()),a||(this.options.lowerCaseLng?r.toLowerCase():r)}return this.options.cleanCode||this.options.lowerCaseLng?r.toLowerCase():r}isSupportedCode(r){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(r=this.getLanguagePartFromCode(r)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(r)>-1}getBestMatchFromCodes(r){if(!r)return null;let a;return r.forEach(s=>{if(a)return;const n=this.formatLanguageCode(s);(!this.options.supportedLngs||this.isSupportedCode(n))&&(a=n)}),!a&&this.options.supportedLngs&&r.forEach(s=>{if(a)return;const n=this.getScriptPartFromCode(s);if(this.isSupportedCode(n))return a=n;const i=this.getLanguagePartFromCode(s);if(this.isSupportedCode(i))return a=i;a=this.options.supportedLngs.find(c=>{if(c===i)return c;if(!(c.indexOf("-")<0&&i.indexOf("-")<0)&&(c.indexOf("-")>0&&i.indexOf("-")<0&&c.substring(0,c.indexOf("-"))===i||c.indexOf(i)===0&&i.length>1))return c})}),a||(a=this.getFallbackCodes(this.options.fallbackLng)[0]),a}getFallbackCodes(r,a){if(!r)return[];if(typeof r=="function"&&(r=r(a)),ca(r)&&(r=[r]),Array.isArray(r))return r;if(!a)return r.default||[];let s=r[a];return s||(s=r[this.getScriptPartFromCode(a)]),s||(s=r[this.formatLanguageCode(a)]),s||(s=r[this.getLanguagePartFromCode(a)]),s||(s=r.default),s||[]}toResolveHierarchy(r,a){const s=this.getFallbackCodes((a===!1?[]:a)||this.options.fallbackLng||[],r),n=[],i=c=>{c&&(this.isSupportedCode(c)?n.push(c):this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`))};return ca(r)&&(r.indexOf("-")>-1||r.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&i(this.formatLanguageCode(r)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&i(this.getScriptPartFromCode(r)),this.options.load!=="currentOnly"&&i(this.getLanguagePartFromCode(r))):ca(r)&&i(this.formatLanguageCode(r)),s.forEach(c=>{n.indexOf(c)<0&&i(this.formatLanguageCode(c))}),n}}const Dw={zero:0,one:1,two:2,few:3,many:4,other:5},Rw={select:e=>e===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class k6{constructor(r,a={}){this.languageUtils=r,this.options=a,this.logger=Dl.create("pluralResolver"),this.pluralRulesCache={}}addRule(r,a){this.rules[r]=a}clearCache(){this.pluralRulesCache={}}getRule(r,a={}){const s=kf(r==="dev"?"en":r),n=a.ordinal?"ordinal":"cardinal",i=JSON.stringify({cleanedCode:s,type:n});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let c;try{c=new Intl.PluralRules(s,{type:n})}catch(u){if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),Rw;if(!r.match(/-|_/))return Rw;const h=this.languageUtils.getLanguagePartFromCode(r);c=this.getRule(h,a)}return this.pluralRulesCache[i]=c,c}needsPlural(r,a={}){let s=this.getRule(r,a);return s||(s=this.getRule("dev",a)),(s==null?void 0:s.resolvedOptions().pluralCategories.length)>1}getPluralFormsOfKey(r,a,s={}){return this.getSuffixes(r,s).map(n=>`${a}${n}`)}getSuffixes(r,a={}){let s=this.getRule(r,a);return s||(s=this.getRule("dev",a)),s?s.resolvedOptions().pluralCategories.sort((n,i)=>Dw[n]-Dw[i]).map(n=>`${this.options.prepend}${a.ordinal?`ordinal${this.options.prepend}`:""}${n}`):[]}getSuffix(r,a,s={}){const n=this.getRule(r,s);return n?`${this.options.prepend}${s.ordinal?`ordinal${this.options.prepend}`:""}${n.select(a)}`:(this.logger.warn(`no plural rule found for: ${r}`),this.getSuffix("dev",a,s))}}const Fw=(e,r,a,s=".",n=!0)=>{let i=m6(e,r,a);return!i&&n&&ca(a)&&(i=g1(e,a,s),i===void 0&&(i=g1(r,a,s))),i},Ep=e=>e.replace(/\$/g,"$$$$");class Iw{constructor(r={}){var a;this.logger=Dl.create("interpolator"),this.options=r,this.format=((a=r==null?void 0:r.interpolation)==null?void 0:a.format)||(s=>s),this.init(r)}init(r={}){r.interpolation||(r.interpolation={escapeValue:!0});const{escape:a,escapeValue:s,useRawValueToEscape:n,prefix:i,prefixEscaped:c,suffix:u,suffixEscaped:h,formatSeparator:g,unescapeSuffix:y,unescapePrefix:w,nestingPrefix:E,nestingPrefixEscaped:S,nestingSuffix:A,nestingSuffixEscaped:C,nestingOptionsSeparator:O,maxReplaces:M,alwaysFormat:R}=r.interpolation;this.escape=a!==void 0?a:x6,this.escapeValue=s!==void 0?s:!0,this.useRawValueToEscape=n!==void 0?n:!1,this.prefix=i?N0(i):c||"{{",this.suffix=u?N0(u):h||"}}",this.formatSeparator=g||",",this.unescapePrefix=y?"":w||"-",this.unescapeSuffix=this.unescapePrefix?"":y||"",this.nestingPrefix=E?N0(E):S||N0("$t("),this.nestingSuffix=A?N0(A):C||N0(")"),this.nestingOptionsSeparator=O||",",this.maxReplaces=M||1e3,this.alwaysFormat=R!==void 0?R:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const r=(a,s)=>(a==null?void 0:a.source)===s?(a.lastIndex=0,a):new RegExp(s,"g");this.regexp=r(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=r(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=r(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(r,a,s,n){var S;let i,c,u;const h=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},g=A=>{if(A.indexOf(this.formatSeparator)<0){const R=Fw(a,h,A,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(R,void 0,s,Ke(Te(Te({},n),a),{interpolationkey:A})):R}const C=A.split(this.formatSeparator),O=C.shift().trim(),M=C.join(this.formatSeparator).trim();return this.format(Fw(a,h,O,this.options.keySeparator,this.options.ignoreJSONStructure),M,s,Ke(Te(Te({},n),a),{interpolationkey:O}))};this.resetRegExp();const y=(n==null?void 0:n.missingInterpolationHandler)||this.options.missingInterpolationHandler,w=((S=n==null?void 0:n.interpolation)==null?void 0:S.skipOnVariables)!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:A=>Ep(A)},{regex:this.regexp,safeValue:A=>this.escapeValue?Ep(this.escape(A)):Ep(A)}].forEach(A=>{for(u=0;i=A.regex.exec(r);){const C=i[1].trim();if(c=g(C),c===void 0)if(typeof y=="function"){const M=y(r,i,n);c=ca(M)?M:""}else if(n&&Object.prototype.hasOwnProperty.call(n,C))c="";else if(w){c=i[0];continue}else this.logger.warn(`missed to pass in variable ${C} for interpolating ${r}`),c="";else!ca(c)&&!this.useRawValueToEscape&&(c=jw(c));const O=A.safeValue(c);if(r=r.replace(i[0],O),w?(A.regex.lastIndex+=c.length,A.regex.lastIndex-=i[0].length):A.regex.lastIndex=0,u++,u>=this.maxReplaces)break}}),r}nest(r,a,s={}){let n,i,c;const u=(h,g)=>{var C;const y=this.nestingOptionsSeparator;if(h.indexOf(y)<0)return h;const w=h.split(new RegExp(`${y}[ ]*{`));let E=`{${w[1]}`;h=w[0],E=this.interpolate(E,c);const S=E.match(/'/g),A=E.match(/"/g);(((C=S==null?void 0:S.length)!=null?C:0)%2===0&&!A||A.length%2!==0)&&(E=E.replace(/'/g,'"'));try{c=JSON.parse(E),g&&(c=Te(Te({},g),c))}catch(O){return this.logger.warn(`failed parsing options string in nesting for key ${h}`,O),`${h}${y}${E}`}return c.defaultValue&&c.defaultValue.indexOf(this.prefix)>-1&&delete c.defaultValue,h};for(;n=this.nestingRegexp.exec(r);){let h=[];c=Te({},s),c=c.replace&&!ca(c.replace)?c.replace:c,c.applyPostProcessor=!1,delete c.defaultValue;const g=/{.*}/.test(n[1])?n[1].lastIndexOf("}")+1:n[1].indexOf(this.formatSeparator);if(g!==-1&&(h=n[1].slice(g).split(this.formatSeparator).map(y=>y.trim()).filter(Boolean),n[1]=n[1].slice(0,g)),i=a(u.call(this,n[1].trim(),c),c),i&&n[0]===r&&!ca(i))return i;ca(i)||(i=jw(i)),i||(this.logger.warn(`missed to resolve ${n[1]} for nesting ${r}`),i=""),h.length&&(i=h.reduce((y,w)=>this.format(y,w,s.lng,Ke(Te({},s),{interpolationkey:n[1].trim()})),i.trim())),r=r.replace(n[0],i),this.regexp.lastIndex=0}return r}}const N6=e=>{let r=e.toLowerCase().trim();const a={};if(e.indexOf("(")>-1){const s=e.split("(");r=s[0].toLowerCase().trim();const n=s[1].substring(0,s[1].length-1);r==="currency"&&n.indexOf(":")<0?a.currency||(a.currency=n.trim()):r==="relativetime"&&n.indexOf(":")<0?a.range||(a.range=n.trim()):n.split(";").forEach(c=>{if(c){const[u,...h]=c.split(":"),g=h.join(":").trim().replace(/^'+|'+$/g,""),y=u.trim();a[y]||(a[y]=g),g==="false"&&(a[y]=!1),g==="true"&&(a[y]=!0),isNaN(g)||(a[y]=parseInt(g,10))}})}return{formatName:r,formatOptions:a}},Mw=e=>{const r={};return(a,s,n)=>{let i=n;n&&n.interpolationkey&&n.formatParams&&n.formatParams[n.interpolationkey]&&n[n.interpolationkey]&&(i=Ke(Te({},i),{[n.interpolationkey]:void 0}));const c=s+JSON.stringify(i);let u=r[c];return u||(u=e(kf(s),n),r[c]=u),u(a)}},j6=e=>(r,a,s)=>e(kf(a),s)(r);class S6{constructor(r={}){this.logger=Dl.create("formatter"),this.options=r,this.init(r)}init(r,a={interpolation:{}}){this.formatSeparator=a.interpolation.formatSeparator||",";const s=a.cacheInBuiltFormats?Mw:j6;this.formats={number:s((n,i)=>{const c=new Intl.NumberFormat(n,Te({},i));return u=>c.format(u)}),currency:s((n,i)=>{const c=new Intl.NumberFormat(n,Ke(Te({},i),{style:"currency"}));return u=>c.format(u)}),datetime:s((n,i)=>{const c=new Intl.DateTimeFormat(n,Te({},i));return u=>c.format(u)}),relativetime:s((n,i)=>{const c=new Intl.RelativeTimeFormat(n,Te({},i));return u=>c.format(u,i.range||"day")}),list:s((n,i)=>{const c=new Intl.ListFormat(n,Te({},i));return u=>c.format(u)})}}add(r,a){this.formats[r.toLowerCase().trim()]=a}addCached(r,a){this.formats[r.toLowerCase().trim()]=Mw(a)}format(r,a,s,n={}){const i=a.split(this.formatSeparator);if(i.length>1&&i[0].indexOf("(")>1&&i[0].indexOf(")")<0&&i.find(u=>u.indexOf(")")>-1)){const u=i.findIndex(h=>h.indexOf(")")>-1);i[0]=[i[0],...i.splice(1,u)].join(this.formatSeparator)}return i.reduce((u,h)=>{var w;const{formatName:g,formatOptions:y}=N6(h);if(this.formats[g]){let E=u;try{const S=((w=n==null?void 0:n.formatParams)==null?void 0:w[n.interpolationkey])||{},A=S.locale||S.lng||n.locale||n.lng||s;E=this.formats[g](u,A,Te(Te(Te({},y),n),S))}catch(S){this.logger.warn(S)}return E}else this.logger.warn(`there was no format function for ${g}`);return u},r)}}const C6=(e,r)=>{e.pending[r]!==void 0&&(delete e.pending[r],e.pendingCount--)};class E6 extends fg{constructor(r,a,s,n={}){var i,c;super(),this.backend=r,this.store=a,this.services=s,this.languageUtils=s.languageUtils,this.options=n,this.logger=Dl.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=n.maxParallelReads||10,this.readingCalls=0,this.maxRetries=n.maxRetries>=0?n.maxRetries:5,this.retryTimeout=n.retryTimeout>=1?n.retryTimeout:350,this.state={},this.queue=[],(c=(i=this.backend)==null?void 0:i.init)==null||c.call(i,s,n.backend,n)}queueLoad(r,a,s,n){const i={},c={},u={},h={};return r.forEach(g=>{let y=!0;a.forEach(w=>{const E=`${g}|${w}`;!s.reload&&this.store.hasResourceBundle(g,w)?this.state[E]=2:this.state[E]<0||(this.state[E]===1?c[E]===void 0&&(c[E]=!0):(this.state[E]=1,y=!1,c[E]===void 0&&(c[E]=!0),i[E]===void 0&&(i[E]=!0),h[w]===void 0&&(h[w]=!0)))}),y||(u[g]=!0)}),(Object.keys(i).length||Object.keys(c).length)&&this.queue.push({pending:c,pendingCount:Object.keys(c).length,loaded:{},errors:[],callback:n}),{toLoad:Object.keys(i),pending:Object.keys(c),toLoadLanguages:Object.keys(u),toLoadNamespaces:Object.keys(h)}}loaded(r,a,s){const n=r.split("|"),i=n[0],c=n[1];a&&this.emit("failedLoading",i,c,a),!a&&s&&this.store.addResourceBundle(i,c,s,void 0,void 0,{skipCopy:!0}),this.state[r]=a?-1:2,a&&s&&(this.state[r]=0);const u={};this.queue.forEach(h=>{h6(h.loaded,[i],c),C6(h,r),a&&h.errors.push(a),h.pendingCount===0&&!h.done&&(Object.keys(h.loaded).forEach(g=>{u[g]||(u[g]={});const y=h.loaded[g];y.length&&y.forEach(w=>{u[g][w]===void 0&&(u[g][w]=!0)})}),h.done=!0,h.errors.length?h.callback(h.errors):h.callback())}),this.emit("loaded",u),this.queue=this.queue.filter(h=>!h.done)}read(r,a,s,n=0,i=this.retryTimeout,c){if(!r.length)return c(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:r,ns:a,fcName:s,tried:n,wait:i,callback:c});return}this.readingCalls++;const u=(g,y)=>{if(this.readingCalls--,this.waitingReads.length>0){const w=this.waitingReads.shift();this.read(w.lng,w.ns,w.fcName,w.tried,w.wait,w.callback)}if(g&&y&&n{this.read.call(this,r,a,s,n+1,i*2,c)},i);return}c(g,y)},h=this.backend[s].bind(this.backend);if(h.length===2){try{const g=h(r,a);g&&typeof g.then=="function"?g.then(y=>u(null,y)).catch(u):u(null,g)}catch(g){u(g)}return}return h(r,a,u)}prepareLoading(r,a,s={},n){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();ca(r)&&(r=this.languageUtils.toResolveHierarchy(r)),ca(a)&&(a=[a]);const i=this.queueLoad(r,a,s,n);if(!i.toLoad.length)return i.pending.length||n(),null;i.toLoad.forEach(c=>{this.loadOne(c)})}load(r,a,s){this.prepareLoading(r,a,{},s)}reload(r,a,s){this.prepareLoading(r,a,{reload:!0},s)}loadOne(r,a=""){const s=r.split("|"),n=s[0],i=s[1];this.read(n,i,"read",void 0,void 0,(c,u)=>{c&&this.logger.warn(`${a}loading namespace ${i} for language ${n} failed`,c),!c&&u&&this.logger.log(`${a}loaded namespace ${i} for language ${n}`,u),this.loaded(r,c,u)})}saveMissing(r,a,s,n,i,c={},u=()=>{}){var h,g,y,w,E;if((g=(h=this.services)==null?void 0:h.utils)!=null&&g.hasLoadedNamespace&&!((w=(y=this.services)==null?void 0:y.utils)!=null&&w.hasLoadedNamespace(a))){this.logger.warn(`did not save key "${s}" as the namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(s==null||s==="")){if((E=this.backend)!=null&&E.create){const S=Ke(Te({},c),{isUpdate:i}),A=this.backend.create.bind(this.backend);if(A.length<6)try{let C;A.length===5?C=A(r,a,s,n,S):C=A(r,a,s,n),C&&typeof C.then=="function"?C.then(O=>u(null,O)).catch(u):u(null,C)}catch(C){u(C)}else A(r,a,s,n,u,S)}!r||!r[0]||this.store.addResource(r[0],a,s,n)}}}const Pw=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let r={};if(typeof e[1]=="object"&&(r=e[1]),ca(e[1])&&(r.defaultValue=e[1]),ca(e[2])&&(r.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const a=e[3]||e[2];Object.keys(a).forEach(s=>{r[s]=a[s]})}return r},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Lw=e=>{var r,a;return ca(e.ns)&&(e.ns=[e.ns]),ca(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),ca(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),((a=(r=e.supportedLngs)==null?void 0:r.indexOf)==null?void 0:a.call(r,"cimode"))<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),typeof e.initImmediate=="boolean"&&(e.initAsync=e.initImmediate),e},sm=()=>{},T6=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(a=>{typeof e[a]=="function"&&(e[a]=e[a].bind(e))})};class df extends fg{constructor(r={},a){if(super(),this.options=Lw(r),this.services={},this.logger=Dl,this.modules={external:[]},T6(this),a&&!this.isInitialized&&!r.isClone){if(!this.options.initAsync)return this.init(r,a),this;setTimeout(()=>{this.init(r,a)},0)}}init(r={},a){this.isInitializing=!0,typeof r=="function"&&(a=r,r={}),r.defaultNS==null&&r.ns&&(ca(r.ns)?r.defaultNS=r.ns:r.ns.indexOf("translation")<0&&(r.defaultNS=r.ns[0]));const s=Pw();this.options=Te(Te(Te({},s),this.options),Lw(r)),this.options.interpolation=Te(Te({},s.interpolation),this.options.interpolation),r.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=r.keySeparator),r.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=r.nsSeparator),typeof this.options.overloadTranslationOptionHandler!="function"&&(this.options.overloadTranslationOptionHandler=s.overloadTranslationOptionHandler);const n=g=>g?typeof g=="function"?new g:g:null;if(!this.options.isClone){this.modules.logger?Dl.init(n(this.modules.logger),this.options):Dl.init(null,this.options);let g;this.modules.formatter?g=this.modules.formatter:g=S6;const y=new Ow(this.options);this.store=new Tw(this.options.resources,this.options);const w=this.services;w.logger=Dl,w.resourceStore=this.store,w.languageUtils=y,w.pluralResolver=new k6(y,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==s.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),g&&(!this.options.interpolation.format||this.options.interpolation.format===s.interpolation.format)&&(w.formatter=n(g),w.formatter.init&&w.formatter.init(w,this.options),this.options.interpolation.format=w.formatter.format.bind(w.formatter)),w.interpolator=new Iw(this.options),w.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},w.backendConnector=new E6(n(this.modules.backend),w.resourceStore,w,this.options),w.backendConnector.on("*",(S,...A)=>{this.emit(S,...A)}),this.modules.languageDetector&&(w.languageDetector=n(this.modules.languageDetector),w.languageDetector.init&&w.languageDetector.init(w,this.options.detection,this.options)),this.modules.i18nFormat&&(w.i18nFormat=n(this.modules.i18nFormat),w.i18nFormat.init&&w.i18nFormat.init(this)),this.translator=new Lm(this.services,this.options),this.translator.on("*",(S,...A)=>{this.emit(S,...A)}),this.modules.external.forEach(S=>{S.init&&S.init(this)})}if(this.format=this.options.interpolation.format,a||(a=sm),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const g=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);g.length>0&&g[0]!=="dev"&&(this.options.lng=g[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(g=>{this[g]=(...y)=>this.store[g](...y)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(g=>{this[g]=(...y)=>(this.store[g](...y),this)});const u=qu(),h=()=>{const g=(y,w)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),u.resolve(w),a(y,w)};if(this.languages&&!this.isInitialized)return g(null,this.t.bind(this));this.changeLanguage(this.options.lng,g)};return this.options.resources||!this.options.initAsync?h():setTimeout(h,0),u}loadResources(r,a=sm){var i,c;let s=a;const n=ca(r)?r:this.language;if(typeof r=="function"&&(s=r),!this.options.resources||this.options.partialBundledLanguages){if((n==null?void 0:n.toLowerCase())==="cimode"&&(!this.options.preload||this.options.preload.length===0))return s();const u=[],h=g=>{if(!g||g==="cimode")return;this.services.languageUtils.toResolveHierarchy(g).forEach(w=>{w!=="cimode"&&u.indexOf(w)<0&&u.push(w)})};n?h(n):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(y=>h(y)),(c=(i=this.options.preload)==null?void 0:i.forEach)==null||c.call(i,g=>h(g)),this.services.backendConnector.load(u,this.options.ns,g=>{!g&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),s(g)})}else s(null)}reloadResources(r,a,s){const n=qu();return typeof r=="function"&&(s=r,r=void 0),typeof a=="function"&&(s=a,a=void 0),r||(r=this.languages),a||(a=this.options.ns),s||(s=sm),this.services.backendConnector.reload(r,a,i=>{n.resolve(),s(i)}),n}use(r){if(!r)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!r.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return r.type==="backend"&&(this.modules.backend=r),(r.type==="logger"||r.log&&r.warn&&r.error)&&(this.modules.logger=r),r.type==="languageDetector"&&(this.modules.languageDetector=r),r.type==="i18nFormat"&&(this.modules.i18nFormat=r),r.type==="postProcessor"&&N4.addPostProcessor(r),r.type==="formatter"&&(this.modules.formatter=r),r.type==="3rdParty"&&this.modules.external.push(r),this}setResolvedLanguage(r){if(!(!r||!this.languages)&&!(["cimode","dev"].indexOf(r)>-1)){for(let a=0;a-1)&&this.store.hasLanguageSomeTranslations(s)){this.resolvedLanguage=s;break}}!this.resolvedLanguage&&this.languages.indexOf(r)<0&&this.store.hasLanguageSomeTranslations(r)&&(this.resolvedLanguage=r,this.languages.unshift(r))}}changeLanguage(r,a){this.isLanguageChangingTo=r;const s=qu();this.emit("languageChanging",r);const n=u=>{this.language=u,this.languages=this.services.languageUtils.toResolveHierarchy(u),this.resolvedLanguage=void 0,this.setResolvedLanguage(u)},i=(u,h)=>{h?this.isLanguageChangingTo===r&&(n(h),this.translator.changeLanguage(h),this.isLanguageChangingTo=void 0,this.emit("languageChanged",h),this.logger.log("languageChanged",h)):this.isLanguageChangingTo=void 0,s.resolve((...g)=>this.t(...g)),a&&a(u,(...g)=>this.t(...g))},c=u=>{var y,w;!r&&!u&&this.services.languageDetector&&(u=[]);const h=ca(u)?u:u&&u[0],g=this.store.hasLanguageSomeTranslations(h)?h:this.services.languageUtils.getBestMatchFromCodes(ca(u)?[u]:u);g&&(this.language||n(g),this.translator.language||this.translator.changeLanguage(g),(w=(y=this.services.languageDetector)==null?void 0:y.cacheUserLanguage)==null||w.call(y,g)),this.loadResources(g,E=>{i(E,g)})};return!r&&this.services.languageDetector&&!this.services.languageDetector.async?c(this.services.languageDetector.detect()):!r&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(c):this.services.languageDetector.detect(c):c(r),s}getFixedT(r,a,s){const n=(i,c,...u)=>{let h;typeof c!="object"?h=this.options.overloadTranslationOptionHandler([i,c].concat(u)):h=Te({},c),h.lng=h.lng||n.lng,h.lngs=h.lngs||n.lngs,h.ns=h.ns||n.ns,h.keyPrefix!==""&&(h.keyPrefix=h.keyPrefix||s||n.keyPrefix);const g=this.options.keySeparator||".";let y;return h.keyPrefix&&Array.isArray(i)?y=i.map(w=>(typeof w=="function"&&(w=x1(w,Te(Te({},this.options),c))),`${h.keyPrefix}${g}${w}`)):(typeof i=="function"&&(i=x1(i,Te(Te({},this.options),c))),y=h.keyPrefix?`${h.keyPrefix}${g}${i}`:i),this.t(y,h)};return ca(r)?n.lng=r:n.lngs=r,n.ns=a,n.keyPrefix=s,n}t(...r){var a;return(a=this.translator)==null?void 0:a.translate(...r)}exists(...r){var a;return(a=this.translator)==null?void 0:a.exists(...r)}setDefaultNamespace(r){this.options.defaultNS=r}hasLoadedNamespace(r,a={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const s=a.lng||this.resolvedLanguage||this.languages[0],n=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(s.toLowerCase()==="cimode")return!0;const c=(u,h)=>{const g=this.services.backendConnector.state[`${u}|${h}`];return g===-1||g===0||g===2};if(a.precheck){const u=a.precheck(this,c);if(u!==void 0)return u}return!!(this.hasResourceBundle(s,r)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||c(s,r)&&(!n||c(i,r)))}loadNamespaces(r,a){const s=qu();return this.options.ns?(ca(r)&&(r=[r]),r.forEach(n=>{this.options.ns.indexOf(n)<0&&this.options.ns.push(n)}),this.loadResources(n=>{s.resolve(),a&&a(n)}),s):(a&&a(),Promise.resolve())}loadLanguages(r,a){const s=qu();ca(r)&&(r=[r]);const n=this.options.preload||[],i=r.filter(c=>n.indexOf(c)<0&&this.services.languageUtils.isSupportedCode(c));return i.length?(this.options.preload=n.concat(i),this.loadResources(c=>{s.resolve(),a&&a(c)}),s):(a&&a(),Promise.resolve())}dir(r){var n,i;if(r||(r=this.resolvedLanguage||(((n=this.languages)==null?void 0:n.length)>0?this.languages[0]:this.language)),!r)return"rtl";try{const c=new Intl.Locale(r);if(c&&c.getTextInfo){const u=c.getTextInfo();if(u&&u.direction)return u.direction}}catch(c){}const a=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],s=((i=this.services)==null?void 0:i.languageUtils)||new Ow(Pw());return r.toLowerCase().indexOf("-latn")>1?"ltr":a.indexOf(s.getLanguagePartFromCode(r))>-1||r.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(r={},a){const s=new df(r,a);return s.createInstance=df.createInstance,s}cloneInstance(r={},a=sm){const s=r.forkResourceStore;s&&delete r.forkResourceStore;const n=Ke(Te(Te({},this.options),r),{isClone:!0}),i=new df(n);if((r.debug!==void 0||r.prefix!==void 0)&&(i.logger=i.logger.clone(r)),["store","services","language"].forEach(u=>{i[u]=this[u]}),i.services=Te({},this.services),i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},s){const u=Object.keys(this.store.data).reduce((h,g)=>(h[g]=Te({},this.store.data[g]),h[g]=Object.keys(h[g]).reduce((y,w)=>(y[w]=Te({},h[g][w]),y),h[g]),h),{});i.store=new Tw(u,n),i.services.resourceStore=i.store}return r.interpolation&&(i.services.interpolator=new Iw(n)),i.translator=new Lm(i.services,n),i.translator.on("*",(u,...h)=>{i.emit(u,...h)}),i.init(n,a),i.translator.options=n,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Zn=df.createInstance();Zn.createInstance;Zn.dir;Zn.init;Zn.loadResources;Zn.reloadResources;Zn.use;Zn.changeLanguage;Zn.getFixedT;Zn.t;Zn.exists;Zn.setDefaultNamespace;Zn.hasLoadedNamespace;Zn.loadNamespaces;Zn.loadLanguages;const A6=(e,r,a,s)=>{var i,c,u,h;const n=[a,Te({code:r},s||{})];if((c=(i=e==null?void 0:e.services)==null?void 0:i.logger)!=null&&c.forward)return e.services.logger.forward(n,"warn","react-i18next::",!0);Fd(n[0])&&(n[0]=`react-i18next:: ${n[0]}`),(h=(u=e==null?void 0:e.services)==null?void 0:u.logger)!=null&&h.warn?e.services.logger.warn(...n):console!=null&&console.warn&&console.warn(...n)},Bw={},S4=(e,r,a,s)=>{Fd(a)&&Bw[a]||(Fd(a)&&(Bw[a]=new Date),A6(e,r,a,s))},C4=(e,r)=>()=>{if(e.isInitialized)r();else{const a=()=>{setTimeout(()=>{e.off("initialized",a)},0),r()};e.on("initialized",a)}},p1=(e,r,a)=>{e.loadNamespaces(r,C4(e,a))},Uw=(e,r,a,s)=>{if(Fd(a)&&(a=[a]),e.options.preload&&e.options.preload.indexOf(r)>-1)return p1(e,a,s);a.forEach(n=>{e.options.ns.indexOf(n)<0&&e.options.ns.push(n)}),e.loadLanguages(r,C4(e,s))},O6=(e,r,a={})=>!r.languages||!r.languages.length?(S4(r,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:r.languages}),!0):r.hasLoadedNamespace(e,{lng:a.lng,precheck:(s,n)=>{if(a.bindI18n&&a.bindI18n.indexOf("languageChanging")>-1&&s.services.backendConnector.backend&&s.isLanguageChangingTo&&!n(s.isLanguageChangingTo,e))return!1}}),Fd=e=>typeof e=="string",D6=e=>typeof e=="object"&&e!==null,R6=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,F6={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},I6=e=>F6[e],M6=e=>e.replace(R6,I6);let y1={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:M6};const P6=(e={})=>{y1=Te(Te({},y1),e)},L6=()=>y1;let E4;const B6=e=>{E4=e},U6=()=>E4,z6={type:"3rdParty",init(e){P6(e.options.react),B6(e)}},W6=_.createContext();class H6{constructor(){this.usedNamespaces={}}addUsedNamespaces(r){r.forEach(a=>{this.usedNamespaces[a]||(this.usedNamespaces[a]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}var Tp={exports:{}},Ap={};var zw;function $6(){if(zw)return Ap;zw=1;var e=ug();function r(w,E){return w===E&&(w!==0||1/w===1/E)||w!==w&&E!==E}var a=typeof Object.is=="function"?Object.is:r,s=e.useState,n=e.useEffect,i=e.useLayoutEffect,c=e.useDebugValue;function u(w,E){var S=E(),A=s({inst:{value:S,getSnapshot:E}}),C=A[0].inst,O=A[1];return i(function(){C.value=S,C.getSnapshot=E,h(C)&&O({inst:C})},[w,S,E]),n(function(){return h(C)&&O({inst:C}),w(function(){h(C)&&O({inst:C})})},[w]),c(S),S}function h(w){var E=w.getSnapshot;w=w.value;try{var S=E();return!a(w,S)}catch(A){return!0}}function g(w,E){return E()}var y=typeof window=="undefined"||typeof window.document=="undefined"||typeof window.document.createElement=="undefined"?g:u;return Ap.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:y,Ap}var Ww;function V6(){return Ww||(Ww=1,Tp.exports=$6()),Tp.exports}var G6=V6();const Y6=(e,r)=>Fd(r)?r:D6(r)&&Fd(r.defaultValue)?r.defaultValue:Array.isArray(e)?e[e.length-1]:e,q6={t:Y6,ready:!1},X6=()=>()=>{},Rr=(e,r={})=>{var G,ie,fe;const{i18n:a}=r,{i18n:s,defaultNS:n}=_.useContext(W6)||{},i=a||s||U6();i&&!i.reportNamespaces&&(i.reportNamespaces=new H6),i||S4(i,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const c=_.useMemo(()=>{var K;return Te(Te(Te({},L6()),(K=i==null?void 0:i.options)==null?void 0:K.react),r)},[i,r]),{useSuspense:u,keyPrefix:h}=c,g=n||((G=i==null?void 0:i.options)==null?void 0:G.defaultNS),y=Fd(g)?[g]:g||["translation"],w=_.useMemo(()=>y,y);(fe=(ie=i==null?void 0:i.reportNamespaces)==null?void 0:ie.addUsedNamespaces)==null||fe.call(ie,w);const E=_.useRef(0),S=_.useCallback(K=>{if(!i)return X6;const{bindI18n:ke,bindI18nStore:ge}=c,re=()=>{E.current+=1,K()};return ke&&i.on(ke,re),ge&&i.store.on(ge,re),()=>{ke&&ke.split(" ").forEach(we=>i.off(we,re)),ge&&ge.split(" ").forEach(we=>i.store.off(we,re))}},[i,c]),A=_.useRef(),C=_.useCallback(()=>{if(!i)return q6;const K=!!(i.isInitialized||i.initializedStoreOnce)&&w.every(ve=>O6(ve,i,c)),ke=r.lng||i.language,ge=E.current,re=A.current;if(re&&re.ready===K&&re.lng===ke&&re.keyPrefix===h&&re.revision===ge)return re;const ee={t:i.getFixedT(ke,c.nsMode==="fallback"?w:w[0],h),ready:K,lng:ke,keyPrefix:h,revision:ge};return A.current=ee,ee},[i,w,h,c,r.lng]),[O,M]=_.useState(0),{t:R,ready:F}=G6.useSyncExternalStore(S,C,C);_.useEffect(()=>{if(i&&!F&&!u){const K=()=>M(ke=>ke+1);r.lng?Uw(i,r.lng,w,K):p1(i,w,K)}},[i,r.lng,w,F,u,O]);const z=i||{},W=_.useRef(null),X=_.useRef(),B=K=>{const ke=Object.getOwnPropertyDescriptors(K);ke.__original&&delete ke.__original;const ge=Object.create(Object.getPrototypeOf(K),ke);if(!Object.prototype.hasOwnProperty.call(ge,"__original"))try{Object.defineProperty(ge,"__original",{value:K,writable:!1,enumerable:!1,configurable:!1})}catch(re){}return ge},Y=_.useMemo(()=>{const K=z,ke=K==null?void 0:K.language;let ge=K;K&&(W.current&&W.current.__original===K?X.current!==ke?(ge=B(K),W.current=ge,X.current=ke):ge=W.current:(ge=B(K),W.current=ge,X.current=ke));const re=[R,ge,F];return re.t=R,re.i18n=ge,re.ready=F,re},[R,z,F,z.resolvedLanguage,z.language,z.languages]);if(i&&u&&!F)throw new Promise(K=>{const ke=()=>K();r.lng?Uw(i,r.lng,w,ke):p1(i,w,ke)});return Y},{slice:Z6,forEach:K6}=[];function J6(e){return K6.call(Z6.call(arguments,1),r=>{if(r)for(const a in r)e[a]===void 0&&(e[a]=r[a])}),e}function Q6(e){return typeof e!="string"?!1:[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(a=>a.test(e))}const Hw=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,e5=function(e,r){const s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},n=encodeURIComponent(r);let i=`${e}=${n}`;if(s.maxAge>0){const c=s.maxAge-0;if(Number.isNaN(c))throw new Error("maxAge should be a Number");i+=`; Max-Age=${Math.floor(c)}`}if(s.domain){if(!Hw.test(s.domain))throw new TypeError("option domain is invalid");i+=`; Domain=${s.domain}`}if(s.path){if(!Hw.test(s.path))throw new TypeError("option path is invalid");i+=`; Path=${s.path}`}if(s.expires){if(typeof s.expires.toUTCString!="function")throw new TypeError("option expires is invalid");i+=`; Expires=${s.expires.toUTCString()}`}if(s.httpOnly&&(i+="; HttpOnly"),s.secure&&(i+="; Secure"),s.sameSite)switch(typeof s.sameSite=="string"?s.sameSite.toLowerCase():s.sameSite){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return s.partitioned&&(i+="; Partitioned"),i},$w={create(e,r,a,s){let n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};a&&(n.expires=new Date,n.expires.setTime(n.expires.getTime()+a*60*1e3)),s&&(n.domain=s),document.cookie=e5(e,r,n)},read(e){const r=`${e}=`,a=document.cookie.split(";");for(let s=0;s-1&&(n=window.location.hash.substring(window.location.hash.indexOf("?")));const c=n.substring(1).split("&");for(let u=0;u0&&c[u].substring(0,h)===r&&(a=c[u].substring(h+1))}}return a}},a5={name:"hash",lookup(e){var n;let{lookupHash:r,lookupFromHashIndex:a}=e,s;if(typeof window!="undefined"){const{hash:i}=window.location;if(i&&i.length>2){const c=i.substring(1);if(r){const u=c.split("&");for(let h=0;h0&&u[h].substring(0,g)===r&&(s=u[h].substring(g+1))}}if(s)return s;if(!s&&a>-1){const u=i.match(/\/([a-zA-Z-]*)/g);return Array.isArray(u)?(n=u[typeof a=="number"?a:0])==null?void 0:n.replace("/",""):void 0}}}return s}};let j0=null;const Vw=()=>{if(j0!==null)return j0;try{if(j0=typeof window!="undefined"&&window.localStorage!==null,!j0)return!1;const e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch(e){j0=!1}return j0};var s5={name:"localStorage",lookup(e){let{lookupLocalStorage:r}=e;if(r&&Vw())return window.localStorage.getItem(r)||void 0},cacheUserLanguage(e,r){let{lookupLocalStorage:a}=r;a&&Vw()&&window.localStorage.setItem(a,e)}};let S0=null;const Gw=()=>{if(S0!==null)return S0;try{if(S0=typeof window!="undefined"&&window.sessionStorage!==null,!S0)return!1;const e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch(e){S0=!1}return S0};var n5={name:"sessionStorage",lookup(e){let{lookupSessionStorage:r}=e;if(r&&Gw())return window.sessionStorage.getItem(r)||void 0},cacheUserLanguage(e,r){let{lookupSessionStorage:a}=r;a&&Gw()&&window.sessionStorage.setItem(a,e)}},i5={name:"navigator",lookup(e){const r=[];if(typeof navigator!="undefined"){const{languages:a,userLanguage:s,language:n}=navigator;if(a)for(let i=0;i0?r:void 0}},o5={name:"htmlTag",lookup(e){let{htmlTag:r}=e,a;const s=r||(typeof document!="undefined"?document.documentElement:null);return s&&typeof s.getAttribute=="function"&&(a=s.getAttribute("lang")),a}},l5={name:"path",lookup(e){var n;let{lookupFromPathIndex:r}=e;if(typeof window=="undefined")return;const a=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(a)?(n=a[typeof r=="number"?r:0])==null?void 0:n.replace("/",""):void 0}},c5={name:"subdomain",lookup(e){var n,i;let{lookupFromSubdomainIndex:r}=e;const a=typeof r=="number"?r+1:1,s=typeof window!="undefined"&&((i=(n=window.location)==null?void 0:n.hostname)==null?void 0:i.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i));if(s)return s[a]}};let T4=!1;try{document.cookie,T4=!0}catch(e){}const A4=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];T4||A4.splice(1,1);const d5=()=>({order:A4,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:e=>e});class O4{constructor(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(r,a)}init(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=r,this.options=J6(a,this.options||{},d5()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=n=>n.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=s,this.addDetector(t5),this.addDetector(r5),this.addDetector(s5),this.addDetector(n5),this.addDetector(i5),this.addDetector(o5),this.addDetector(l5),this.addDetector(c5),this.addDetector(a5)}addDetector(r){return this.detectors[r.name]=r,this}detect(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,a=[];return r.forEach(s=>{if(this.detectors[s]){let n=this.detectors[s].lookup(this.options);n&&typeof n=="string"&&(n=[n]),n&&(a=a.concat(n))}}),a=a.filter(s=>s!=null&&!Q6(s)).map(s=>this.options.convertDetectedLanguage(s)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?a:a.length>0?a[0]:null}cacheUserLanguage(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;a&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(r)>-1||a.forEach(s=>{this.detectors[s]&&this.detectors[s].cacheUserLanguage(r,this.options)}))}}O4.type="languageDetector";const u5={dashboard:"Dashboard",assets:"Assets",workOrders:"Work Orders",maintenance:"Asset Maintenance",ppm:"PPM",logout:"Logout",login:"Login",email:"Email",password:"Password",submit:"Submit",cancel:"Cancel",save:"Save",saveChanges:"Save Changes",delete:"Delete",deleting:"Deleting...",edit:"Edit",create:"Create",search:"Search",filter:"Filter",export:"Export",import:"Import",loading:"Loading...",noData:"No data available",error:"Error",success:"Success",darkMode:"Dark Mode",lightMode:"Light Mode",language:"Language",english:"English",arabic:"Arabic",backToDashboard:"Back to Dashboard",back:"Back",saving:"Saving...",tryAgain:"Try Again",filters:"Filters",enterFilterName:"Enter filter name",saveFilterPreset:"Save Filter Preset",saveFilter:"Save Filter",filtering:"Filtering...",updating:"Updating...",clearFilters:"Clear filters",total:"Total",selected:"selected",rows:"rows",actions:"Actions",selectAllTitle:"Select all",deselectAllTitle:"Deselect all",typeToSearch:"Type to search...",typing:"typing...",enterFilterNameExample:"Enter filter name (e.g., 'Open High Priority')"},f5={title:"SEERA-ASM",loggedInAs:"Logged in as:",version:"Seera-ASM v2.26",inventory:"Inventory",ppmPlanner:"PPM Planner",maintenanceCalendar:"Maintenance Calendar",activeMap:"Active Map",maintenanceTeam:"Maintenance Team",procurement:"Procurement",sla:"Service Level Agreement (SLA)",support:"Support",inspection:"Inspection",deleteRequests:"Delete Requests",userProfile:"User Profile",dataImport:"Data Import"},h5={title:"Data Import",documentType:"Document Type",fileLabel:"Import file",fileHint:"Use .xlsx, .xls, or .csv. The first row must use the same field names as in the downloaded template.",toastImportSuccess:"Import completed.",toastImportPartial:"Completed with some issues — see the log below.",toastImportError:"Import finished with errors — see the log below.",toastImportStatus:"Import status: {{status}}",chooseFile:"Choose file",clearFile:"Remove file",downloadFile:"Download file",previewSaveHintPrefix:"Click on",previewSaveAction:"Save",previewSaveHintSuffix:"to add records to the system.",alignedWorkbookNotApplied:"The aligned workbook was not saved to your selection (validation did not finish successfully). Fix the issues above, then validation will replace the file with ERP-matched link values.",normalizationNotes:"Values aligned to existing masters (before import)",downloadTemplate:"Download template",startImport:"Start import",importing:"Importing…",templateDownloaded:"Template downloaded",progress:"{{done}} / {{total}} rows",importFinishedOk:"Import completed: {{count}} row(s) processed successfully.",importFinishedMixed:"Import finished: {{ok}} succeeded, {{fail}} failed — see log below.",logsTitle:"Import log",logRow:"Row",logStatus:"Status",logMessage:"Message",statusOk:"OK",statusFailed:"Failed",successImported:"Successfully imported {{name}}",importSummaryLine:"Successfully imported {{ok}} out of {{total}} rows.",importSummaryLineAllOk:"{{total}} out of {{total}} — all rows imported successfully.",importSummaryLineAllFailed:"No rows imported successfully ({{total}} row(s) failed).",importSummaryBadgeAll:"Success",importSummaryBadgePartial:"Partial success",importSummaryBadgeNone:"Failed",errors:{noFile:"Please choose a file first (.xlsx, .xls, or .csv).",noRows:"The file has no data rows.",noSchema:"Could not load Location fields. Try again or contact your administrator.",parseFailed:"Could not read the file: {{message}}",headerValidation:"Fix the column issues below before importing data rows.",previewNotReady:"Wait for file validation to finish before starting import.",fixPreviewFirst:"Resolve the issues below (or use Add actions) before starting import."},templateModal:{title:"Download template",fileType:"File type",fileTypeExcel:"Excel (.xlsx)",fileTypeCsv:"CSV",exportType:"Export type",exportTypeBlank:"Blank template",blankHint:"Only the header row is included — no data rows are exported.",selectFields:"Select columns",selectAll:"Select all",selectMandatory:"Select mandatory",unselectAll:"Unselect all",fieldsSelected:"columns selected",export:"Download",nothingSelected:"Select at least one column."},locationQuickHint:"Create or review locations before linking them in your import file.",btnAddLocation:"Add location",btnViewLocations:"View all locations",previewTitle:"Import file errors and warnings",previewHeaderIssue:"Header / column map",previewRowHeading:"Row {{row}}",previewColumnHeading:"Column {{n}} ({{label}})",previewGenericHeading:"Import",validatingFile:"Validating file…",addMaster:"Add {{doctype}}",mastersCreated:"Created {{count}} master record(s). Preview refreshed."},m5={title:"Locations",subtitle:"Browse location records in the system.",listTotal:"{{count}} location(s) total",backToDataImport:"← Data import",backToList:"Back to locations",viewRow:"View",editRow:"Edit",deleteRow:"Delete",deleteConfirm:'Delete location "{{name}}"? This cannot be undone.',deleteSuccess:"Location deleted.",saveMissingName:"Save completed but the server did not return a location ID.",add:"Add location",searchPlaceholder:"Search by name or location name…",loading:"Loading locations…",empty:"No locations match your search.",yes:"Yes",no:"No",colActions:"Actions",open:"Open",refresh:"Refresh list",paginationLabel:"locations",newTitle:"New location",roomNoPlaceholder:"Room number or name",locationMasterPlaceholder:"Location (master) name",createRoom:"Create",createLocationMaster:"Create",viewLocation:"View",viewLocationDesk:"Open Location in Desk",viewLocationDetails:"View location details",fieldRoom:"Room",formHintDataImportStyle:"Use Building and Department search above. For Room and Location, type a value or use Add room / Add location to create a master — no pick list from existing records.",roomTextPlaceholder:"Type or add a room",locationTextPlaceholder:"Type or add a location",addRoomAction:"Add room",addLocationAction:"Add location",sectionDetails:"Location details",fieldLocationId:"Location ID",fieldLocationName:"Location name",fieldLocationNamePlaceholder:"Enter location name",fieldContainsSubLocations:"This location contains sub-locations",fieldContainsSubLocationsHelp:"Enable if child locations can be added under this one.",fieldDepartment:"Department",fieldDepartmentPlaceholder:"Department (optional)",fieldParent:"Parent location",fieldParentPlaceholder:"Select parent (optional)",fieldParentPlaceholderDesk:"Select parent location (optional)",mapTitle:"Map (latitude & longitude)",mapHint:"Click the map to place the pin, or drag the pin to adjust coordinates.",fieldIsContainer:"Is container",fieldIsContainerHelp:"Check if it is a hydroponic unit.",fieldIsGroup:"Is group",fieldCustomHospital:"Is hospital",fieldCustomWoType:"Is WO type",fieldLatitude:"Latitude",fieldLatitudePlaceholder:"e.g., 24.7136",fieldLongitude:"Longitude",fieldLongitudePlaceholder:"e.g., 46.6753",save:"Save",saved:"Location saved.",validationName:"Location name is required.",validationId:"Location ID is required.",errorDuplicateEntry:'Location name "{{name}}" already exists. Choose a different name.',errorDuplicateGeneric:"This location name already exists. Use a unique location name.",fieldLabel:{building:"Building",department:"Department",room_no:"Room No",location:"Location",name:"ID",owner:"Owner",creation:"Created",modified:"Modified",modified_by:"Modified by",docstatus:"Doc status",idx:"Idx",location_name:"Location name",parent_location:"Parent",is_container:"Container",is_group:"Group",custom_is_hospital:"Hospital",custom_is_wo_type:"WO type",latitude:"Latitude",longitude:"Longitude",lft:"Lft",rgt:"Rgt"}},g5={title:"SEERA-ASM",subtitle:"Asset Management System",signIn:"Sign in to continue",emailPlaceholder:"Enter your email",passwordPlaceholder:"Enter your password",loginFailed:"Login failed. Please check your credentials.",demoLogin:"Demo Login",or:"or",forgotPassword:"Forgot password?",forgotPasswordTitle:"Forgot password?",forgotPasswordHint:"Enter the email or username you use to sign in. We will send reset instructions to your registered email address.",forgotPasswordUserRequired:"Please enter your email or username.",forgotPasswordUserPlaceholder:"Email or username",forgotPasswordSubmit:"Send reset link",forgotPasswordSent:"If that email is registered, password reset instructions have been sent.",forgotPasswordSentSuccess:"Password reset instructions have been sent to your registered email address. Please check your inbox.",forgotPasswordNotFound:"No user account was found with the provided email address.",forgotPasswordClose:"Cancel",forgotPasswordTimeout:"The request took too long (email server may be slow). Please try again in a minute.",forgotPasswordCannotReset:"Password reset is not available for this account.",forgotPasswordFailed:"Could not send the reset email. Please try again, or contact support.",finishingSignOut:"Finishing sign-out…",afterPasswordResetSignIn:"Your password was updated. Please sign in with your new password.",resetPasswordTitle:"Reset password",resetNewPassword:"New password",resetConfirmPassword:"Confirm password",resetConfirm:"Confirm",resetInvalidLink:"This reset link is invalid or missing. Request a new one from the login page.",resetEnterPassword:"Please enter a new password.",resetPasswordMismatch:"Passwords do not match.",resetFailed:"Could not reset password. The link may have expired.",backToSignIn:"Back to sign in"},x5={title:"Dashboard",loading:"Loading dashboard...",totalAssets:"TOTAL NO. OF ASSETS",assetsDown:"Assets Down",openWorkOrders:"OPEN WORK ORDERS",workOrdersInProgress:"WORK ORDERS WORK IN PROGRESS",completedWorkOrders:"COMPLETED WORK ORDERS",totalWorkOrders:"TOTAL WORK ORDERS",overdueWorkOrders:"OVERDUE WORK ORDERS",closedWorkOrders:"Closed Work Orders",upTime:"Up Time",downTime:"Down Time",workOrderStatus:"Work Order Status",workOrderByType:"Work Order by Type",maintenanceByAsset:"Maintenance - Asset wise Count",assigneesStatus:"Asset Maintenance Assignees Status Count",assigneesCount:"Assignees",totalTasksAssigned:"Tasks Assigned",maintenanceFrequency:"Asset Maintenance Frequency Chart",maintenanceLogs:"MAINTENANCE LOGS",assetUptime:"Asset Uptime",avgResponseTime:"Avg Response Time",maintenanceEfficiency:"Maintenance Efficiency",overdueMaintenance:"Overdue Maintenance",upDownTimeChart:"Up & Down Time Chart",ppmStatus:"PPM Status",completionRate:"Contractor Completion Rate",completionRateChartHint:"Completion % over last 7 months — hover a point for details",completionRateTooltip:"{{value}}% completion rate",viewFullReport:"View Full Report",noDataAvailable:"No data available",loadingTechnicianHours:"Loading technician hours...",loadingTechnicianWorkData:"Loading technician work data...",welcome:"Welcome,",user:"User",failedToLoad:"Failed to load dashboard data",recentRecords:"Recent Records",latestEntries:"Latest entries from your Frappe backend",quickActions:"Quick Actions",cardTotalAssets:"Total Assets",cardOpenWorkOrders:"Open Work Orders",cardInProgress:"In Progress",cardCompletedWorkOrders:"Completed Work Orders",viewUsers:"View Users",manageUserAccounts:"Manage user accounts",settings:"Settings",configurePreferences:"Configure your preferences",events:"Events",viewCalendarEvents:"View calendar events",reports:"Reports",viewAnalyticsReports:"View analytics and reports",ppmTemplateCounts:"PPM Template Counts",repairCost:"Repair Cost",dashboardFilter:"Dashboard Filter",allDepartments:"All Departments",workOrderStatusDistribution:"Work Order Status Distribution",workOrderInspectionSummary:"Work Order Inspection Summary",woRejectionSummary:"WO Rejection Summary",total:"Total",inProgress:"In Progress",completed:"Completed",totalSales:"Total Sales",average:"Average",noChartDataAvailable:"No chart data available",loadingInspectionData:"Loading inspection data...",noInspectionDataAvailable:"No inspection data available",totalRejections:"Total rejections",loadingRejectionData:"Loading rejection data...",noRejectionDataAvailable:"No rejection data available",department:"Department",allOperational:"All Operational",low:"Low",highPriority:"High Priority",allClear:"All Clear",fastResponse:"Fast Response",monitor:"Monitor",onTrack:"On Track",needsAttention:"Needs Attention",totalHours:"Total: {{value}} hours",technicianWorkingHours:"Technicians Working Hours",techniciansWorked:"Technicians Work Summary",pendingReviewWorkOrders:"Pending Review",clear:"Clear",clearFilter:"Clear Filter",label:"Label",open:"Open"},p5={assetId:"Asset ID",assetName:"Asset Name",serialNumber:"Serial Number",localId:"Local ID",technicalDepartment:"Technical Department",company:"Company/Hospital",building:"Building",roomNumber:"Room Number",location:"Location",department:"Department",deviceStatus:"Device Status",modality:"Modality",manufacturer:"Manufacturer",supplier:"Supplier",assetCategory:"Asset Category",purchaseDate:"Purchase Date",purchaseAmount:"Purchase Amount",availableForUseDate:"Available For Use Date",createdOn:"Created On",modifiedOn:"Modified On",createdBy:"Created By",modifiedBy:"Modified By",workOrderId:"Work Order ID",workOrderType:"Type",status:"Status",priority:"Priority",description:"Description",assignedTo:"Assigned To",scheduledDate:"Scheduled Date",completedDate:"Completed Date",hospital:"Hospital",assetType:"Asset Type",siteName:"Site Name",assignedSupervisor:"Assigned Supervisor",assignedContractor:"Assigned Contractor",serialNumberShort:"Serial",departmentShort:"Dept",manufacturerShort:"Mfr",workOrderIdShort:"WO ID",assetShort:"Asset",typeShort:"Type",nameShort:"Name",pmId:"PM ID",name:"Name"},y5={filterBy:"Filter By",createdDate:"Created Date",latestModifiedDate:"Latest Modified Date",startDate:"Start Date",endDate:"End Date",assetId:"Asset ID",hospital:"Hospital",name:"Name",serial:"Serial",status:"Status",location:"Location",dept:"Dept",modality:"Modality",mfr:"Mfr",supplier:"Supplier",workOrderId:"WO ID",asset:"Asset",type:"Type",priority:"Priority",workflowState:"Workflow State",allStatuses:"All Statuses",allStates:"All States",allTypes:"All Types",allPriorities:"All priorities",allHospitals:"All Hospitals",allModalities:"All Modalities",filterByCompany:"Filter by Company",allManufacturers:"All Manufacturers",sortBy:"Sort by",sortCreationNewest:"Creation (newest first)",sortCreationOldest:"Creation (oldest first)",sortModifiedNewest:"Modified (newest first)",sortModifiedOldest:"Modified (oldest first)",sortNameAsc:"Name (A-Z)",sortNameDesc:"Name (Z-A)",sortAssetNameAsc:"Asset Name (A-Z)",sortAssetNameDesc:"Asset Name (Z-A)",sortItemNameAsc:"Item Name (A-Z)",sortItemNameDesc:"Item Name (Z-A)",sortTeamNameAsc:"Team Name (A-Z)",sortTeamNameDesc:"Team Name (Z-A)"},b5={addNew:"Add New",searchPlaceholder:"Search...",noResults:"No results found",showing:"Showing",of:"of",results:"results",selectAll:"Select All",deselectAll:"Deselect All",selected:"selected",actions:"Actions",view:"View",edit:"Edit",delete:"Delete",duplicate:"Duplicate",export:"Export",print:"Print",filters:"Filters",clearFilters:"Clear Filters",applyFilters:"Apply Filters",columns:"Columns",exportSelected:"Export Selected",exportAllOnPage:"Export All on Page",exportAllWithFilters:"Export All with Filters",exportFormat:"Export Format",csv:"CSV",excel:"Excel",exporting:"Exporting...",exportComplete:"Export Complete",close:"Close",loading:"Loading...",refresh:"Refresh",deselectAllTitle:"Deselect all",selectAllTitle:"Select all",typeToSearch:"Type to search...",enterFilterName:"Enter filter name",enterFilterNameExample:"Enter filter name (e.g., 'Open High Priority')",allStatuses:"All Statuses",noIssuesFound:"No issues found",createFirstIssue:"Create your first issue",saveFilterPreset:"Save Filter Preset",saveFilter:"Save Filter",savedFilters:"Saved Filters",clear:"Clear",typing:"typing...",filtering:"Filtering...",noMaintenanceTeamsFound:"No maintenance teams found",createFirstTeam:"Create your first team",all:"All",tryAdjustingFilters:"Try adjusting your search or filters",getStartedCreateFirst:"Get started by creating your first PPM Planner",noMaintenanceLogsFound:"No maintenance logs found",createFirstMaintenanceLog:"Create your first maintenance log",total:"Total",noPPMSchedulesFound:"No PPM schedules found",createFirstPPMSchedule:"Create your first PPM schedule",deleteConfirmCannotUndo:"This action cannot be undone."},v5={title:"Assets",addAsset:"Add New Asset",assetDetails:"Asset Details",assetInformation:"Asset Information",newAsset:"New Asset",duplicateAsset:"Duplicate Asset",fromAsset:"From Asset",creatingFromAsset:"Creating Work Order from Asset",assetInfoPrefilled:"Asset information prefilled from",pleaseSelectWorkOrderType:"Please select a Work Order type and add any additional details",loadingAssetDetails:"Loading asset details...",pleaseEnterAssetName:"Please enter an Asset Name",pleaseSelectCategory:"Please select a Category",assetDuplicatedSuccessfully:"Asset duplicated successfully!",assetCreatedSuccessfully:"Asset created successfully!",assetUpdatedSuccessfully:"Asset updated successfully!",sourceAssetNotFound:"Source Asset Not Found",assetNotFoundMessage:"The asset you're trying to duplicate could not be found.",backToAssetsList:"Back to Assets List",backToList:"Back to assets list",createNewAsset:"Create New Asset",newAssetDetails:"New Asset Details",noAssetsFound:"No assets found",createFirstAsset:"Create your first asset",deleteConfirmTitle:"Delete Asset",deleteConfirmMessage:"Are you sure you want to delete this asset? This action cannot be undone.",noDataToExport:"No data to export",loadingPermissions:"Loading permissions...",selectAssetId:"Select Asset ID",selectHospital:"Hospital",viewDetails:"View Details",editAsset:"Edit Asset",createWorkOrder:"Create Work Order",viewLinkedWOs:"View Linked Work Orders",moreActions:"More Actions",exportAsJson:"Export as JSON",printAsset:"Print",status:{up:"Up",down:"Down"},deviceStatus:"Device Status",apiNotAvailable:"Asset API Not Available",apiNotDeployed:"The Asset API endpoint is not deployed yet.",tryCreatingNew:"Try Creating a New Asset (Demo)",listTotal:"Total: ",table:{assetName:"Asset Name",serialNo:"Serial No",company:"Company",location:"Location",status:"Status",updatedOn:"Updated on",actions:"Actions"},export:{title:"Export Assets",selectData:"Select Data to Export",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected asset ",currentPage:"Current Page",currentPageCount:"Export {{count}} asset on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} asset matching current filters",csvDesc:"Comma-separated values",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "},detail:{assetInformation:"Asset Information",technicalSpecs:"Technical Specs",financialDetails:"Financial Details",assetFinanceBooks:"Asset Finance Books",addRow:"Add Row",duplicatingFrom:"Duplicating from:",noDepartmentsMapped:"No departments mapped to this building",departmentsAvailable:"{{count}} department(s) available (filtered by building)",selectDepartmentForRoom:"Select Department to enable Room Number",depreciationMethodNote:"The depreciation method is an accounting method used to allocate the cost of a tangible asset over its useful life.",calculateDepreciation:"Calculate Depreciation",noFinanceBooksYet:'No finance books added yet. Click "Add Row" to add one.',noSparePartsYet:'No spare parts added yet. Click "Add Row" to add one.',assetName:"Asset Name",category:"Category",type:"Asset Type",modality:"Modality",class:"Class",assetId:"Asset ID",deviceStatus:"Device Status",serialCode:"Serial Code",localId:"Local ID",technicalDepartment:"Technical Department",manufacturer:"Manufacturer",model:"Model",totalHours:"Total Hours",downTimeHours:"Down Time (Hours)",upTimeHours:"Up Time (Hours)",placeholderAssetName:"e.g. Laptop Model X",placeholderSerialCode:"e.g. SN-12345",placeholderLocalId:"e.g. LOC-001",placeholderModelNumber:"Model number",placeholderZero:"0",placeholderDescription:"Brief description of the asset",placeholderPONumber:"PO number",selectClass:"Select class",classA:"Class A",classB:"Class B",classC:"Class C",autoGenerated:"Auto-generated",calculatedFromAvailableDate:"Calculated from Available For Use Date",calculatedTotalMinusDown:"Calculated: Total Hours - Down Time",hospital:"Hospital",siteName:"Site name",selectSite:"Select Site",building:"Building",department:"Department",roomNumber:"Room Number",location:"Location",selectStatus:"Select status",operational:"Operational",underMaintenance:"Under Maintenance",decommissioned:"Decommissioned",selectServiceAgreement:"Select Service Agreement",warranty:"Warranty",contract:"Contract",frameWork:"Frame Work",mainContractor:"Main Contractor",outOfWarranty:"Out of warranty",underDismantle:"Under Dismantle",underInstallation:"Under Installation",selectServiceCoverage:"Select Service Coverage",pmOnly:"PM Only",labour:"Labour",labourAndParts:"Labour & Parts",comprehensive:"Comprehensive",supplierVendor:"Supplier/Vendor",selectMethod:"Select Method",straightLine:"Straight Line",doubleDecliningBalance:"Double Declining Balance",writtenDownValue:"Written Down Value",manual:"Manual",recycling:"Recycling",donation:"Donation",sale:"Sale",assetDuplicatedSuccess:"Asset duplicated successfully!",assetCreatedSuccess:"Asset created successfully!",assetUpdatedSuccess:"Asset updated successfully!",failedToSave:"Failed to save asset",cannotSubmitNotSaved:"Cannot submit: Asset not saved yet",confirmSubmit:'Are you sure you want to submit this asset? Once submitted, only fields marked as "Allow on Submit" can be edited.',assetSubmittedSuccess:"Asset submitted successfully!",failedToSubmit:"Failed to submit asset",pleaseSaveFirstForPPM:"Please save the asset first to view PPM Plan",pleaseSaveFirstForHistory:"Please save the asset first to view Asset History",failedToLoadPPMPlan:"Failed to load PPM Plan. Please try again.",noPlannedMaintenance:"No planned maintenance found for this asset",noWorkOrdersFound:"No Work Orders Found",noSparePartsUsed:"No Spare Parts Used",noMaintenanceRecords:"No Maintenance Records Found",noMaintenanceTasks:"No Maintenance Tasks Found",selectBuildingFirst:"Select Building first to enable Department",coverage:"Coverage",siteContractor:"Site Contractor",contractNumber:"Contract Number",serviceAgreement:"Service Agreement",serviceCoverage:"Service Coverage",purchaseOrderNumber:"Purchase Order Number",grossPurchaseAmount:"Gross Purchase Amount",purchaseDate:"Purchase Date",installationDate:"Installation Date",availableForUseDate:"Available For Use Date",financeBook:"Finance Book",depreciationMethod:"Depreciation Method",totalDepreciations:"Total Depreciations",frequencyMonths:"Frequency (Months)",depreciationPostingDate:"Depreciation Posting Date",startDate:"Start Date",endDate:"End Date",totalAmount:"Total Amount",selectRoomFirst:"Select Room Number to enable Location",autoSetFromRoom:"Auto-set from room mapping",moreDetails:"More Details"}},w5=JSON.parse(`{"title":"Work Orders","addWorkOrder":"Add New Work Order","workOrderDetails":"Work Order Details","newWorkOrder":"New Work Order","duplicateWorkOrder":"Duplicate Work Order","createFromAsset":"Create Work Order from Asset","closeWorkOrders":"Close Work Orders","closeConfirmTitle":"Close Work Orders","closeConfirmMessage":"Are you sure you want to close the selected work order(s)?","deleteConfirmMessage":"Are you sure you want to delete this work order? This action cannot be undone.","cancelConfirmMessage":"Are you sure you want to cancel this work order? This will mark the work order as cancelled and you can then delete it if needed.","assignConfirmMessage":"Are you sure you want to assign this work order to the following technician(s)?","deleteWorkOrder":"Delete Work Order","cancelWorkOrder":"Cancel Work Order","loadingWorkOrders":"Loading work orders...","loadingDetails":"Loading work order details...","backToList":"Back to work orders list","status":{"open":"Open","work_in_progress":"Work In Progress","pending_review":"Pending Review","completed":"Completed","cancelled":"Cancelled","closed":"Closed"},"priorityNormal":"Normal","priorityUrgent":"Urgent","workflowState":{"draft":"Draft"},"priority":{"normal":"Normal","urgent":"Urgent"},"table":{"workOrderId":"Work Order ID","asset":"Asset","type":"Type","technicalReport":"Technical Report","department":"Department","workflowState":"Workflow State","priority":"Priority","noWorkOrdersFound":"No work orders found","createFirstWorkOrder":"Create your first work order"},"export":{"title":"Export Work Orders","selectData":"What to Export","selectedRows":"Selected Rows","selectedCount":"Export {{count}} selected work order ","currentPage":"Current Page","currentPageCount":"Export {{count}} work order on current page","allWithFilters":"All Records (with current filters)","allWithFiltersCount":"Export all {{count}} work order matching current filters","csvDesc":"Comma-separated values","excelDesc":"XLSX spreadsheet","columnsToExport":"Columns to Export","selectAll":"Select All","resetToDefault":"Reset to Default","columnsSelected":"{{count}} column selected","exporting":"Exporting...","exportButton":"Export","exportingSelected":"Exporting {{count}} selected row ","exportingPage":"Exporting {{count}} row from current page","exportingAll":"Exporting all {{count}} row "},"closeModal":{"title":"Close Work Orders","confirmBulkClose":"Confirm Bulk Close Operation","aboutToClose":"You are about to close {{count}} work order . This action will change their workflow state to Closed.","alreadyClosedNote":"Note: {{count}} work order{{count !== 1 ? 's are' : ' is'}} already closed and will be skipped.","selectedWorkOrders":"Selected Work Orders ({{count}})","workOrderId":"Work Order ID","currentStatus":"Current Status","workflowState":"Workflow State","alreadyClosed":"(already closed)","willClose":"Will close {{count}} work order ","allAlreadyClosed":"All selected work orders are already closed","cancel":"Cancel","close":"Close","closing":"Closing..."},"detail":{"workOrderInformation":"Work Order Information","assignments":"Assignments","statusSummary":"Status Summary","existingWorkOrders":"Existing Work Order(s):","created":"Created","proceedCreateNew":"Do you still want to proceed with creating a new Work Order?","loadingTechnicians":"Loading technicians...","feedbackBy":"Feedback By","overallSatisfaction":"Overall Satisfaction","overallRatingPreview":"Overall Rating Preview","uploading":"Uploading...","uploadOpeningFile":"Upload Opening File","uploadClosingFile":"Upload Closing File","noAttachment":"No attachment","noClosingAttachment":"No closing attachment","closingAttachment":"Closing Attachment","currentState":"Current State","loadingActions":"Loading actions...","actionResults":"Action Results:","checkingFeedback":"Checking feedback...","yourRating":"Your Rating","repairStatus":"Repair Status","priority":"Priority","lastModified":"Last Modified","documentStatus":"Document Status","loadingActivity":"Loading activity...","added":"Added:","removed":"Removed:","modified":"Modified:","items":"item(s)","rows":"row(s)","pleaseAllowPopupsServiceReport":"Please allow popups for this site to print the Service Report.","pleaseProvideAtLeastOneRating":"Please provide at least one rating","feedbackSubmittedSuccessfully":"Feedback submitted successfully!","failedToSubmitFeedback":"Failed to submit feedback","feedbackUpdatedSuccessfully":"Feedback updated successfully!","failedToUpdateFeedback":"Failed to update feedback","locationAutoSetTo":"Location auto-set to: {{location}}","noTechniciansSelected":"No technicians selected","techniciansAssignedSuccessfully":"{{count}} additional technician(s) assigned successfully","removedTechnician":"Removed {{name}}","itemAlreadyAdded":"Item \\"{{itemCode}}\\" is already added in row {{row}}. Please select a different item.","insufficientStock":"Insufficient stock for {{itemCode}}. Available: {{available}}, Required: {{required}}","pleaseEnterSerialNumberToSearch":"Please enter a serial number to search","assetFound":"Asset found: {{name}}","noAssetFoundWithSerialNumber":"No asset found with this serial number","fileSizeExceeds":"File size exceeds 10MB limit","fileUploadedSuccessfully":"File uploaded successfully","failedToUploadFile":"Failed to upload file","attachmentRemoved":"Attachment removed","failureDateSetToCurrentTime":"Failure Date set to current time","firstRespondedOnSetToCurrentTime":"First Responded On set to current time","completionDateSetToCurrentTime":"Completion Date set to current time","firstRespondedOnSetTo":"First Responded On set to {{datetime}}","completionDateSetTo":"Completion Date set to {{datetime}}","assignedSupervisorMandatory":"Assigned Supervisor is mandatory for Work Control role.","assignedEngineerMandatory":"Assigned Engineer is mandatory for Work Control role.","assignedTechnicianMandatory":"Assigned Technician is mandatory when workflow is \\"Sent to Engineer\\".","workOrderCancelledSuccessfully":"Work Order cancelled successfully!","failedToCancel":"Failed to cancel: {{error}}","workOrderDeletedSuccessfully":"Work Order deleted successfully!","failedToDelete":"Failed to delete: {{error}}","pleaseSelectWorkOrderType":"Please select a Work Order Type","workOrderUpdatedSuccessfully":"Work order updated successfully!","workOrderCreatedSuccessfully":"Work order created successfully!","workOrderCreatedFromAssetSuccessfully":"Work order created from asset successfully!","workOrderDuplicatedSuccessfully":"Work order duplicated successfully!","documentModifiedByAnotherUser":"Document was modified by another user. Refreshing...","pleaseReviewLatestChanges":"Please review the latest changes and try saving again.","failedToSaveWorkOrder":"Failed to save work order: {{error}}","technicalReportMandatoryForSupervisor":"Technical Report is mandatory when sending directly to Supervisor. Please fill in the Technical Report field before proceeding.","applyingAction":"Applying action \\"{{action}}\\"...","assignedTo":"Assigned to: {{name}}","actionCompletedSuccessfully":"Action \\"{{action}}\\" completed successfully!","documentModifiedRefreshing":"Document was modified. Refreshing...","tryActionAgainAfterReview":"Please try the action again after reviewing the latest changes.","failedToApplyAction":"Failed to apply action \\"{{action}}\\". {{error}}","editModeEnabled":"Edit mode enabled","editCancelledChangesDiscarded":"Edit cancelled - changes discarded","closingAttachmentRemoved":"Closing attachment removed","closingAttachmentUploadedSuccessfully":"Closing attachment uploaded successfully","failedToUploadClosingAttachment":"Failed to upload closing attachment","newStockItemRowAdded":"New stock item row added","stockItemRemoved":"Stock item {{item}} removed","activityLogRefreshed":"Activity log refreshed","errorLabel":"Error","backToList":"Back to work orders list","duplicateWorkOrder":"Duplicate Work Order","createFromAsset":"Create Work Order from Asset","newWorkOrder":"New Work Order","workOrderDetails":"Work Order Details","existingWorkOrderFound":"Existing Work Order Found","workOrderExistsForAsset":"A Work Order already exists for this Asset with workflow state not yet Approved or Closed.","workOrderExistsForTypeAndRoom":"A Work Order already exists for this Work Order Type and Room No with workflow state not yet Approved or Closed.","proceedWithNewWO":"Do you still want to proceed with creating a new Work Order?","proceedAnyway":"Proceed Anyway","noGoBack":"No, Go Back","yesCancel":"Yes, Cancel","cancelling":"Cancelling...","deleting":"Deleting...","selectAdditionalTechnicians":"Select Additional Technicians","searchTechnicians":"Search technicians...","techniciansSelected":"{{count}} technician(s) selected","clearAll":"Clear all","noTechniciansMatchSearch":"No technicians match your search","noTechniciansFound":"No technicians found","hospital":"Hospital","technicalDepartment":"Technical Department","woType":"WO Type","assetId":"Asset ID","assetName":"Asset Name","extensionNo":"Extension No","building":"Building","departmentName":"Department Name","roomNo":"Room No","location":"Location","manufacturer":"Manufacturer","supplier":"Supplier","assignedSupervisor":"Assigned Supervisor","assignedEngineer":"Assigned Engineer","assignedTechnician":"Assigned Technician","fromAsset":"From Asset","assetDetailsAutoPopulated":"Asset details auto-populated","selectBuildingFirst":"Select Building first to enable Department","printServiceReport":"Print Service Report","removeAttachment":"Remove attachment","removeClosingAttachment":"Remove closing attachment","setToCurrentDateTime":"Set to current date & time","selectItem":"Select Item","selectWarehouse":"Select Warehouse","autoPopulatedFromStock":"Auto-populated from stock","removeItem":"Remove item","noItemsAddedYet":"No items added yet","commentsDiscussion":"Comments & Discussion","refreshActivityLog":"Refresh activity log","supervisorsAvailableForType":"{{count}} Assigned Supervisor(s) available for this type","civilWorkCategory":"Civil Work Category","civilWorkCategoryMandatory":"Please select a Civil Work Category.","selectCivilWorkCategory":"Select Civil Work Category","selectPendingReason":"Select Pending Reason","pleaseSpecifyReason":"Please specify the reason...","selectServiceAgreement":"Select Service Agreement","selectServiceCoverage":"Select Service Coverage","describeComplaint":"Describe the nature of complaint...","describeWorkPerformed":"Describe the work performed...","enterSerialNumber":"Enter serial number","searchAssetBySerial":"Search asset by serial number","serialNo":"Serial No","localId":"Local ID","enterLocalId":"Enter local ID","searchAssetByLocalId":"Search asset by local ID","pleaseEnterLocalIdToSearch":"Please enter a local ID to search","noAssetFoundWithLocalId":"No asset found with this local ID","assetNotAvailable":"This asset is not available (must be submitted and not deleted)","workOrder":"Work Order:","giveFeedback":"Give Feedback","editFeedback":"Edit Feedback","feedbackDetails":"Feedback Details","confirmAssignment":"Confirm Assignment","notRated":"Not rated","serviceReport":"Service Report","assetInfoPrefilled":"Asset information has been pre-filled from","linkedFromAsset":"Linked from Asset:","loadingAssetDetails":"Loading asset details...","cancelled":"Cancelled","workOrderId":"Work Order ID","pendingReason":"Pending Reason","otherReason":"Other Reason","serviceAgreementDetails":"Service Agreement Details","siteContractor":"Site Contractor","subcontractor":"Subcontractor","model":"Model","description":"Description","natureOfComplaint":"Nature of Complaint","technicalReport":"Technical Report","selectWoTypeFirstForSupervisors":"Select Work Order Type first to filter Assigned Supervisors","noSupervisorsFound":"No Assigned Supervisors found for this Work Order Type","requiredForExistingWO":"* Required for existing Work Orders","selectWoTypeFirstForEngineers":"Select Work Order Type first to filter Engineers","noEngineersFound":"No Engineers (Contractor Engineer role) found for this Work Order Type","engineersAvailable":"{{count}} Engineer(s) available","selectWoTypeFirstForTechnicians":"Select Work Order Type first to filter Technicians","noTechniciansFoundForType":"No Technicians found for this Work Order Type","techniciansAvailable":"{{count}} Technician(s) available","requiredForSentToEngineer":"* Required for \\"Sent to Engineer\\" state","autoCalculated":"(Auto-calculated)","autoSetOnRepairStart":"(Auto-set on repair start)","autoSetOnClose":"(Auto-set on close)","totalItems":"Total Items:","confirmAction":"Confirm Action","confirmActionMessage":"Are you sure you want to {{action}} this work order?","processing":"Processing...","yesAction":"Yes, {{action}}","systemManagerNote":"System Manager: Showing all valid actions for this state (conditions evaluated).","saveToSeeActions":"Save your changes to see all available actions.","availableActions":"Available Actions","allOptionsAvailable":"All Options Available","bothFilledMessage":"Both Technician and Technical Report are filled. You can now use any available workflow action above.","technicianAssigned":"Technician Assigned","assignedTechnicianLabel":"Assigned Technician:","wantToEnableSendToSupervisor":"Want to also enable \\"Send to Supervisor\\"?","fillTechnicalReportToUnlock":"Fill the \\"Technical Report\\" field to unlock this option","technicalReportFilled":"Technical Report Filled","howWasService":"How was the service for this work order?","noFeedbackYet":"No feedback has been given yet","statusInfoAfterCreation":"Status information will appear after creation","activityLog":"Activity Log","refreshActivityLogTitle":"Refresh activity log","noChangesRecorded":"No changes recorded yet","createdThisWorkOrder":"Created this Work Order","showLess":"Show Less","showAll":"Show All","entries":"entries","changedFrom":"changed from","documentUpdated":"Document updated","addItem":"Add Item","addFirstItem":"+ Add first item","item":"Item","valuationRate":"Valuation Rate","warehouse":"Warehouse","consumedQty":"Consumed Qty","availableStock":"Available Stock","totalValue":"Total Value","action":"Action","open":"Open","autoGenerated":"Auto-generated","updating":"Updating...","submitting":"Submitting...","updateFeedback":"Update Feedback","submitFeedback":"Submit Feedback","editRating":"Edit Rating","saveSelection":"Save Selection"}}`),_5={title:"Asset Maintenance",maintenanceLogs:"Maintenance Logs",maintenanceDetails:"Maintenance Details",addMaintenance:"Add New Maintenance",listTotal:"Total: {{count}} maintenance log ",apiNotAvailable:"Maintenance API Not Available",apiNotDeployed:"The Asset Maintenance API endpoint is not deployed yet.",tryCreatingNew:"Try Creating New (Demo)",deletedSuccessfully:"Maintenance log deleted successfully!",status:{planned:"Planned",completed:"Completed",overdue:"Overdue",cancelled:"Cancelled"},maintenanceTeam:"Maintenance Team",newMaintenanceTeam:"New Maintenance Team",teamId:"Team ID",teamName:"Team Name",managerEmail:"Manager Email",managerName:"Supervisor Name",expertise:"Expertise",selectTeam:"Select Team",viewDetails:"View Details",editTeam:"Edit Team",duplicateTeam:"Duplicate Team",deleteTeam:"Delete Team",selectHospital:"Select Hospital",selectExpertise:"Select Expertise",selectManager:"Select Manager",enterTeamName:"Enter Team Name",teamInformation:"Team Information",selectUser:"Select User",selectRole:"Select Role",totalMembers:"Total Members",teamSummary:"Team Summary",addFirstMember:"Add First Member",manager:"Supervisor Email",loadingTeams:"Loading maintenance teams...",errorLoadingTeams:"Error Loading Maintenance Teams",deleteConfirmMessage:"Are you sure you want to delete this maintenance team? This action cannot be undone.",team:"Team",deleteTeamButton:"Delete Team",listTitle:"Maintenance Teams",statsTotalTeams:"Total Teams",statsManagers:"Managers",statsHospitals:"Hospitals",export:{title:"Export Maintenance Teams",selectData:"Select Data to Export",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected team ",currentPage:"Current Page",currentPageCount:"Export {{count}} team on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} team matching current filters",exportFormat:"Export Format",csv:"CSV",csvDesc:"Comma-separated values",excel:"Excel",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "}},k5={title:"PPM",ppmDetails:"PPM Details",addPPM:"Add New PPM",periodicity:"Periodicity",dueDate:"Due Date",manageSchedules:"Manage PM Schedules",bulkScheduleGenerator:"Bulk schedule generator — filter assets, then configure and generate",filterAssets:"Filter assets",selectAssets:"Select assets",scheduleConfiguration:"Schedule configuration",pmId:"PM ID",name:"Name",manufacturer:"Manufacturer",listTotal:"Total: {{count}} PPM schedule ",searchPlaceholder:"Search by ID, asset, company...",filterByCompany:"Filter by Company",company:"Company",asset:"Asset",assetType:"Asset Type",frequency:"Frequency",noOfPMs:"No. of PMs",totalAmount:"Total Amount",apiNotAvailable:"PPM API Not Available",apiNotDeployed:"The PPM API endpoint is not deployed yet.",tryCreatingNew:"Try Creating New (Demo)",deletedSuccessfully:"PPM schedule deleted successfully!",noSchedulesFound:"No PPM schedules found",createFirstSchedule:"Create your first PPM schedule",confirmDelete:"Confirm Delete",deleteConfirmMessage:"Are you sure you want to delete this PPM schedule? This action cannot be undone.",detail:{duplicateSchedule:"Duplicate PPM Schedule",newSchedule:"New PPM Schedule",scheduleDetails:"PPM Schedule Details",basicInformation:"Basic Information",financialInformation:"Financial Information",scheduleInformation:"Schedule Information",maintenanceTeam:"Maintenance Team",numberOfPMs:"Number of PMs",pricePerPM:"Price per PM",frequencyPlaceholder:"e.g., Monthly, Quarterly, Yearly",scheduleInfoAfterCreation:"Schedule information will appear after creation",assetName:"Asset Name",pleaseEnterAssetName:"Please enter Asset Name",duplicatedSuccessfully:"PPM schedule duplicated successfully!",createdSuccessfully:"PPM schedule created successfully!",updatedSuccessfully:"PPM schedule updated successfully!",failedToSave:"Failed to save",saveChanges:"Save Changes",loadingSchedule:"Loading PPM schedule...",backToSchedules:"Back to PPM schedules",errorLoading:"Error"}},N5={listTitle:"PPM Schedules",export:{title:"Export PPM Schedules",selectData:"Export Scope",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected schedule ",currentPage:"Current Page",currentPageCount:"Export {{count}} schedule on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} schedule matching current filters",csvDesc:"Comma-separated values",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "}},j5={title:"Export",whatToExport:"What to Export",selectedRows:"Selected Rows",currentPage:"Current Page",allWithFilters:"All with Filters",exportSelected:"Export {count} selected",exportPage:"Export {count} on current page",exportAll:"Export all {count}",columnsToExport:"Columns to Export",selectAll:"Select All",selectDefault:"Select Default",exporting:"Exporting...",exportingSelected:"Exporting {count} selected row(s)",exportingPage:"Exporting {count} row(s) from current page",exportingAll:"Exporting all {count} row(s)",selected:"selected",rows:"rows"},S5={title:"Items",itemDetails:"Item Details",newItem:"New Item",addItem:"Add New Item",itemId:"Item ID",itemCode:"Item Code",itemName:"Item Name",itemGroup:"Item Group",stockUOM:"Stock UOM",partDescription:"Part Description",brand:"Brand",valuationRate:"Valuation Rate",openingStock:"Opening Stock",lastCalibrationDate:"Last Calibration Date",nextCalibrationDate:"Next Calibration Date",selectItem:"Select Item",selectItemGroup:"Select Item Group",selectHospital:"Select Hospital",serialNo:"Serial No",dateIn:"Date In",watts:"Watts",volts:"Volts",type:"Type",code:"Code",viewDetails:"View Details",editItem:"Edit Item",duplicateItem:"Duplicate Item",deleteItem:"Delete Item",technicalDepartment:"Technical Department",selectTechnicalDepartment:"Select Technical Department",basicInformation:"Basic Information",inventoryDetails:"Inventory Details",stockInformation:"Stock Information",isStockItem:"Is Stock Item",isFixedAsset:"Is Fixed Asset",balanceQty:"Balance Qty",calibrationInformation:"Calibration Information",additionalInformation:"Additional Information",refreshBalanceQty:"Refresh Balance Qty",warrantyMonths:"Warranty (Months)",errorLoadingItems:"Error Loading Items",loadingItems:"Loading items...",deleteConfirmMessage:"Are you sure you want to delete this item? This action cannot be undone.",backToInventory:"Back to Inventory",loadingItem:"Loading item...",errorLoadingItem:"Error Loading Item",createNewItem:"Create a new item",itemCodeLabel:"Item Code",itemUpdatedSuccessfully:"Item updated successfully!",pleaseSaveFirst:"Please save the item first before submitting.",submittedSuccessfully:"Item submitted successfully!",failedToSave:"Failed to save",failedToSubmit:"Failed to submit",noItemsFound:"No items found",createFirstItem:"Create your first item",listTitle:"Inventory",listTotal:"Total: {{count}} item ",failedToLoadItems:"Failed to load items.",listAddItem:"Add Item",export:{title:"Export Items",selectData:"Select Data to Export",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected item ",currentPage:"Current Page",currentPageCount:"Export {{count}} item on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} item matching current filters",csvDesc:"Comma-separated values",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "}},C5={title:"Issues",issueDetails:"Issue Details",newIssue:"New Issue",addIssue:"Add New Issue",issueId:"Issue ID",subject:"Subject",raisedBy:"Raised By",contact:"Contact",issueType:"Issue Type",openingDate:"Opening Date",resolutionDate:"Resolution Date",resolvedBy:"Resolved By",firstRespondedOn:"First Responded On",resolutionDetails:"Resolution Details",selectIssue:"Select Issue",allPriorities:"All Priorities",allCompanies:"All Companies",viewDetails:"View Details",editIssue:"Edit Issue",deleteIssue:"Delete Issue",enterSubject:"Enter issue subject",selectPriority:"Select priority",selectIssueType:"Select issue type",describeIssue:"Describe the issue in detail...",contactInformation:"Contact Information",createNewIssue:"Create a new support issue",resolution:"Resolution",describeResolution:"Describe how the issue was resolved...",selectCompany:"Select company",statusInformation:"Status Information",currentStatus:"Current Status",timeline:"Timeline",loadingIssues:"Loading issues...",errorLoadingIssues:"Error Loading Issues",deleteConfirmMessage:"Are you sure you want to delete this issue? This action cannot be undone.",deletedSuccessfully:"Issue deleted successfully!",listTitle:"Support Issues",listTotal:"Total",listSelected:"selected",statsTotalIssues:"Total Issues",statsOpen:"Open",statsResolved:"Resolved",statsClosed:"Closed",export:{title:"Export Issues",selectData:"Select Data to Export",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected issue ",currentPage:"Current Page",currentPageCount:"Export {{count}} issue on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} issue matching current filters",exportFormat:"Export Format",csv:"CSV",csvDesc:"Comma-separated values",excel:"Excel",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "},status:{open:"Open",replied:"Replied",on_hold:"On Hold",resolved:"Resolved",closed:"Closed"},priority:{low:"Low",medium:"Medium",high:"High",critical:"Critical"}},E5={title:"Users",userDetails:"User Details",newUser:"New User",addUser:"Add New User",searchUsers:"Search users...",manageUsers:"Manage user accounts and permissions",noUsersFound:"No users found",tryAdjustingSearch:"Try adjusting your search terms.",noUsersAvailable:"No users available.",backToDashboard:"Back to Dashboard",refresh:"Refresh",active:"Active",inactive:"Inactive",noEmail:"No email",created:"Created"},T5={title:"Events",eventDetails:"Event Details",newEvent:"New Event",addEvent:"Add New Event",upcomingEvents:"Upcoming Events",eventsFromFrappe:"Events from your Frappe backend",noEventsFound:"No events found",noEventsScheduled:"No events are currently scheduled.",refreshEvents:"Refresh Events"},A5={previous:"Previous",next:"Next",goTo:"Go to",go:"Go",page:"Page",showingToOf:"Showing {{start}} to {{end}} of {{total}} {{label}}",showingTo:"Showing {{start}} to {{end}} {{label}}",items:"items",assets:"assets",workOrders:"work orders",issues:"issues",teams:"teams",inspections:"inspections",plans:"plans"},O5={loading:"Loading...",noResultsFound:"No results found",createNewDoctype:"Create New {{doctype}}",selectLabel:"Select {{label}}"},D5={loadingSupportPlans:"Loading support plans...",errorLoadingSupportPlans:"Error Loading Support Plans",deleteConfirmMessage:"Are you sure you want to delete this support plan? This action cannot be undone.",planId:"Plan ID",deletedSuccessfully:"Support Plan deleted successfully!",deleteSupportPlan:"Delete Support Plan",noSupportPlansFound:"No support plans found",createFirstSupportPlan:"Create your first support plan",table:{planName:"Plan Name",type:"Type",frequency:"Frequency",contractValue:"Contract Value",warrantyStatus:"Warranty Status",contractStatus:"Contract Status"},status:{active:"Active",expired:"Expired",pending:"Pending",terminated:"Terminated"},statusLabel:{warrantyPrefix:"W:",contractPrefix:"C:"},viewDetails:"View Support Plan",editSupportPlan:"Edit Support Plan",listTitle:"Support Plans",statsTotalPlans:"Total Plans",statsContracts:"Contracts",statsWarranties:"Warranties",statsActive:"Active",export:{title:"Export Support Plans",selectData:"Select Data to Export",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected plan ",currentPage:"Current Page",currentPageCount:"Export {{count}} plan on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} plan ",exportFormat:"Export Format",csv:"CSV",csvDesc:"Comma-separated values",excel:"Excel",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "}},R5={title:"Inspections",loadingInspections:"Loading inspections...",errorLoadingInspections:"Error Loading Inspections",deleteConfirmMessage:"Are you sure you want to delete this inspection? This action cannot be undone.",inspectionId:"Inspection ID",deleteInspection:"Delete Inspection",deletedSuccessfully:"Inspection deleted successfully!",noInspectionsFound:"No inspections found",createFirstInspection:"Create your first inspection",type:"Inspection Type",workflowStateHeader:"Workflow State",targetDate:"Target Date",requestedBy:"Requested By",linkedWorkOrder:"Linked Work Order",savedFilters:"Saved Filters",newInspection:"New Inspection",inspectionReport:"Inspection Report",technicalDepartment:"Technical Department",filterStatus:"Status",filterWorkflow:"Workflow",filterType:"Type",filterWorkOrder:"Work Order",filterDepartment:"Department",selectWorkOrder:"Select Work Order",selectDepartment:"Select Department",stats:{draft:"Draft",pendingApproval:"Pending Approval",closed:"Closed"},status:{open:"Open",in_progress:"In Progress",pending_review:"Pending Review",closed:"Closed"},workflowState:{draft:"Draft",sent_to_work_control:"Sent to Work Control",sent_to_technician:"Sent to technician",sent_to_supervisor:"Sent to Supervisor",closed:"Closed"},typeMap:{inspection:"Inspection",safety_inspection:"Safety Inspection"},viewDetails:"View Details",editInspection:"Edit Inspection",export:{title:"Export Inspections",selectData:"Select Data to Export",extensionNo:"Extension No",department:"Department",location:"Location",assignedTechnician:"Assigned Technician",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected inspection(s)",currentPage:"Current Page",currentPageCount:"Export {{count}} inspection(s) on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} inspection(s) matching current filters",exportFormat:"Export Format",csv:"CSV",csvDesc:"Comma-separated values",excel:"Excel",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column(s) selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row(s)",exportingPage:"Exporting {{count}} row(s) from current page",exportingAll:"Exporting all {{count}} row(s)",inspectionId:"Inspection ID",inspectionType:"Inspection Type",status:"Status",workflowState:"Workflow State",inspectionDate:"Inspection Date",targetClosureDate:"Target Closure Date",requestedBy:"Requested By",technicalDepartment:"Technical Department",linkedWorkOrder:"Linked Work Order",observationNote:"Observation Note",technicalResponse:"Technical Response",createdOn:"Created On",modifiedOn:"Modified On",createdBy:"Created By"},detail:{loadingDetails:"Loading inspection details...",errorLoading:"Error Loading Inspection",backToList:"Back to Inspections",newInspection:"New Inspection",inspectionDetails:"Inspection Details",createNewRecord:"Create a new inspection record",cancelInspection:"Cancel Inspection",cancelConfirmMessage:"Are you sure you want to cancel this inspection? This will mark the inspection as cancelled and you can then delete it if needed.",noGoBack:"No, Go Back",yesCancel:"Yes, Cancel",assignedEngineer:"Assigned Engineer",selectEngineer:"Select Engineer",cancelling:"Cancelling...",selectType:"Select Type",workOrderType:"Work Order Type",selectWorkOrderType:"Select Work Order Type",techniciansAvailable:"{{count}} Technician(s) available for this type",selectDepartment:"Select Department",selectLocation:"Select Location",extensionNo:"Extension No *",selectExtension:"Select Extension",inspectionDate:"Inspection Date",targetClosureDate:"Target Closure Date",cannotBeInPast:"Cannot be in the past",cannotBeEarlier:"Cannot be earlier than Inspection Date or in the past",openingAttachment:"Opening Attachment",closingAttachment:"Closing Attachment",uploading:"Uploading...",uploadFile:"Upload File",uploadClosingFile:"Upload Closing File",noAttachment:"No attachment",removeAttachment:"Remove attachment",assignmentInformation:"Assignment Information",requestedBy:"Requested By",selectUser:"Select User",technicalDepartment:"Technical Department",assignedTechnician:"Assigned Technician",selectTechnician:"Select Technician",selectWOTypeFirst:"Select Work Order Type first to filter Technicians",noTechniciansForType:"No Technicians found for this Work Order Type",notesAndResponse:"Notes & Response",observationNote:"Observation Note",placeholderObservation:"Enter observation notes...",technicalResponse:"Technical Response",placeholderTechnicalResponse:"Enter technical response...",linkedWorkOrder:"Linked Work Order",linkedCorrectiveWO:"Linked Corrective Work Order",readOnly:"Read-only",viewWorkOrder:"View Work Order",noLinkedWorkOrder:"No linked work order",workflowActions:"Workflow Actions",workflowProgress:"Workflow Progress",workControl:"Work Control",technicianStep:"Technician",supervisorStep:"Supervisor",draftStep:"Draft",closedStep:"Closed",statusInfo:"Status Info",documentStatus:"Document Status",woType:"WO Type",assignedTo:"Assigned To",submitted:"Submitted",cancelled:"Cancelled",added:"Added:",removed:"Removed:",modified:"Modified:",items:"item(s)",rows:"row(s)",activityLog:"Activity Log",activityLogRefreshed:"Activity log refreshed",refreshActivityLog:"Refresh activity log",noChangesRecorded:"No changes recorded yet",createdThisInspection:"Created this Inspection",changedFrom:"changed from",documentUpdated:"Document updated",showLess:"Show Less",showAll:"Show All",department:"Department",location:"Location",inspectionType:"Inspection Type",status:"Status",removeClosingAttachment:"Remove closing attachment",noClosingAttachment:"No closing attachment",cancelledSuccessfully:"Inspection cancelled successfully!",failedToCancel:"Failed to cancel: {{error}}",failedToSave:"Failed to save: {{error}}",failedToDelete:"Failed to delete: {{error}}",targetClosureMandatory:"Target Closure Date is mandatory to save.",attachmentMandatory:"Attachment is mandatory to save.",extensionMandatory:"Extension No is mandatory to save.",createdSuccessfully:"Inspection created successfully!",updatedSuccessfully:"Inspection updated successfully!",deletedSuccessfully:"Inspection deleted successfully!",inspectionDateInPast:"Inspection Date cannot be in the past.",targetClosureEarlier:"Target Closure Date cannot be earlier than Inspection Date.",targetClosureInPast:"Target Closure Date cannot be in the past.",fileSizeExceeds:"File size exceeds 10MB limit",fileUploadedSuccess:"File uploaded successfully",failedToUpload:"Failed to upload file",closingAttachmentRemoved:"Closing attachment removed",closingAttachmentUploadedSuccess:"Closing attachment uploaded successfully",failedToUploadClosing:"Failed to upload closing attachment",attachmentRemoved:"Attachment removed",systemManager:"System Manager",workflow:"Workflow"}},F5={title:"Active Map",loading:"Loading map data...",hospital:"Hospital",departmentWoType:"Department (Work Order Type)",selectHospital:"Select hospital",selectDepartment:"Select department",clearDepartmentHint:"Clear department to filter by hospital",clearHospitalHint:"Clear hospital to filter by department",clearFilters:"Clear Filters",legendHospital:"Hospital",legendDepartment:"Department (WO Type)",legendHasUrgent:"Has Urgent WOs",totalAssets:"Total Assets",workOrderStatus:"Work Order Status",status:"Status",count:"Count",normal:"Normal",urgent:"Urgent",open:"Open",workInProgress:"Work In Progress",pendingReview:"Pending Review",completed:"Completed",closed:"Closed",preventiveMaintenance:"Preventive Maintenance",planned:"Planned",overdue:"Overdue",viewAssets:"View Assets",viewWorkOrders:"View Work Orders",viewAllWorkOrders:"View All Work Orders",showingWorkOrdersByType:"Showing Work Orders by Type",deptWoType:"Department / Work Order Type",tooltipDept:"Dept",tooltipHospital:"Hospital",tooltipUrgent:"URGENT! ",normalWos:"Normal WOs:",urgentWos:"Urgent WOs:",closedWos:"Closed WOs:",plannedPms:"Planned PMs:",completedPms:"Completed PMs:",assets:"Assets"},I5={title:"Maintenance Calendar",viewType:"View Type",maintenanceLog:"Maintenance Log",ppmPlanner:"PPM Planner",filters:"Filters",yearlyMap:"Yearly Map",yearlyMapTitle:"View Yearly PPM Planner Map",mapShort:"Map",hospital:"Hospital",selectHospital:"Select Hospital",department:"Department",allDepartments:"All Departments",status:"Status",allStatuses:"All Statuses",planned:"Planned",completed:"Completed",overdue:"Overdue",cancelled:"Cancelled",assignedTo:"Assigned To",allTechnicians:"All Technicians",clearFilters:"Clear Filters",months:{january:"January",february:"February",march:"March",april:"April",may:"May",june:"June",july:"July",august:"August",september:"September",october:"October",november:"November",december:"December"},days:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},previousMonth:"Previous Month",today:"Today",nextMonth:"Next Month",loadingLogs:"Loading maintenance logs...",loadingPpm:"Loading PPM Planners...",overdueInTooltip:"(Overdue)",clickToViewDetails:"Click to view details",clickToViewPpmPlanner:"Click to view PPM Planner",ppmPlannerDefault:"PPM Planner",legendCompleted:"Completed",legendPlanned:"Planned",legendOverdue:"Overdue",legendToday:"Today",summaryPpmPlanners:"PPM Planners"},M5={plannedPms:"Planned PMs",completedPms:"Completed PMs",overduePms:"Overdue PMs"},P5={common:u5,sidebar:f5,dataImport:h5,locations:m5,login:g5,dashboard:x5,commonFields:p5,filters:y5,listPages:b5,assets:v5,workOrders:w5,maintenance:_5,ppm:k5,ppmPlanner:N5,exportModal:j5,items:S5,issues:C5,users:E5,events:T5,pagination:A5,linkField:O5,supportPlans:D5,inspections:R5,activeMap:F5,maintenanceCalendarPage:I5,assetDetail:M5},L5={dashboard:"لوحة التحكم",assets:"الأصول",workOrders:"أوامر العمل",maintenance:"صيانة الأصول",ppm:"الصيانة الوقائية",logout:"تسجيل الخروج",login:"تسجيل الدخول",email:"البريد الإلكتروني",password:"كلمة المرور",submit:"إرسال",cancel:"إلغاء",save:"حفظ",saveChanges:"حفظ التغييرات",delete:"حذف",deleting:"جاري الحذف...",edit:"تعديل",create:"إنشاء",search:"بحث",filter:"تصفية",export:"تصدير",import:"استيراد",loading:"جاري التحميل...",noData:"لا توجد بيانات",error:"خطأ",success:"نجح",darkMode:"الوضع الداكن",lightMode:"الوضع الفاتح",language:"اللغة",english:"الإنجليزية",arabic:"العربية",backToDashboard:"العودة إلى لوحة التحكم",back:"رجوع",saving:"جاري الحفظ...",tryAgain:"حاول مرة أخرى",filters:"المرشحات",enterFilterName:"أدخل اسم المرشح",saveFilterPreset:"حفظ مجموعة المرشحات",saveFilter:"حفظ المرشح",filtering:"جاري التصفية...",updating:"جاري التحديث...",clearFilters:"مسح المرشحات",total:"الإجمالي",selected:"محدد",rows:"صفوف",actions:"إجراءات",selectAllTitle:"تحديد الكل",deselectAllTitle:"إلغاء تحديد الكل",typeToSearch:"اكتب للبحث...",typing:"جاري الكتابة...",enterFilterNameExample:"أدخل اسم المرشح (مثال: 'مفتوح أولوية عالية')"},B5={title:"أصول سيرا",loggedInAs:"تم تسجيل الدخول كـ:",version:"أصول سيرا نظام إدارة الأصول الإصدار 2.26",inventory:"المخزون",ppmPlanner:"مخطط الصيانة الوقائية",maintenanceCalendar:"تقويم الصيانة",activeMap:"الخريطة النشطة",maintenanceTeam:"فريق الصيانة",procurement:"المشتريات",sla:"اتفاقية مستوى الخدمة",support:"الدعم",inspection:"التفتيش",userProfile:"الملف الشخصي",dataImport:"استيراد البيانات"},U5={title:"استيراد البيانات",documentType:"نوع المستند",fileLabel:"ملف الاستيراد",fileHint:"الصيغ: ‎.xlsx و ‎.xls و ‎.csv. الصف الأول يجب أن يستخدم نفس أسماء الحقول كما في القالب.",toastImportSuccess:"اكتمل الاستيراد.",toastImportPartial:"اكتمل مع وجود مشكلات — راجع السجل أدناه.",toastImportError:"انتهى الاستيراد بأخطاء — راجع السجل أدناه.",toastImportStatus:"حالة الاستيراد: {{status}}",chooseFile:"اختر ملفاً",clearFile:"إزالة الملف",downloadFile:"تنزيل الملف",previewSaveHintPrefix:"انقر فوق",previewSaveAction:"حفظ",previewSaveHintSuffix:"لإضافة السجلات إلى النظام.",alignedWorkbookNotApplied:"لم يُحفظ الملف المُحاذي لاختيارك (لم يكتمل التحقق بنجاح). أصلح المشكلات أعلاه، ثم سيستبدل التحقق الملف بقيم الربط المطابقة للنظام.",normalizationNotes:"تمت مطابقة القيم مع السجلات الموجودة (قبل الاستيراد)",downloadTemplate:"تنزيل القالب",startImport:"بدء الاستيراد",importing:"جاري الاستيراد…",templateDownloaded:"تم تنزيل القالب",progress:"{{done}} / {{total}} صف",importFinishedOk:"اكتمل الاستيراد: {{count}} صف بنجاح.",importFinishedMixed:"انتهى الاستيراد: {{ok}} نجح، {{fail}} فشل — راجع السجل أدناه.",logsTitle:"سجل الاستيراد",logRow:"الصف",logStatus:"الحالة",logMessage:"الرسالة",statusOk:"موافق",statusFailed:"فشل",successImported:"تم الاستيراد بنجاح: {{name}}",importSummaryLine:"تم استيراد {{ok}} من أصل {{total}} صفاً بنجاح.",importSummaryLineAllOk:"{{total}} من أصل {{total}} — تم استيراد كل الصفوف بنجاح.",importSummaryLineAllFailed:"لم يُستورد أي صف بنجاح ({{total}} صف فشل).",importSummaryBadgeAll:"نجاح كامل",importSummaryBadgePartial:"نجاح جزئي",importSummaryBadgeNone:"فشل",errors:{noFile:"يرجى اختيار ملف أولاً (‎.xlsx أو ‎.xls أو ‎.csv).",noRows:"الملف لا يحتوي على صفوف بيانات.",noSchema:"تعذر تحميل حقول الموقع. حاول مرة أخرى أو اتصل بالمسؤول.",parseFailed:"تعذر قراءة الملف: {{message}}",headerValidation:"صحح مشاكل الأعمدة أدناه قبل استيراد صفوف البيانات.",previewNotReady:"انتظر انتهاء التحقق من الملف قبل بدء الاستيراد.",fixPreviewFirst:"عالج المشكلات أدناه (أو استخدم إجراءات الإضافة) قبل بدء الاستيراد."},templateModal:{title:"تنزيل القالب",fileType:"نوع الملف",fileTypeExcel:"Excel (‎.xlsx)",fileTypeCsv:"CSV",exportType:"نوع التصدير",exportTypeBlank:"قالب فارغ",blankHint:"يُصدَر صف الرؤوس فقط — لا توجد صفوف بيانات.",selectFields:"اختر الأعمدة",selectAll:"تحديد الكل",selectMandatory:"تحديد الإلزامية",unselectAll:"إلغاء التحديد",fieldsSelected:"عمود محدد",export:"تنزيل",nothingSelected:"اختر عموداً واحداً على الأقل."},locationQuickHint:"أنشئ المواقع أو راجعها قبل ربطها في ملف الاستيراد.",btnAddLocation:"إضافة موقع",btnViewLocations:"عرض كل المواقع",previewTitle:"أخطاء وتحذيرات ملف الاستيراد",previewHeaderIssue:"رأس الجدول / تعيين الأعمدة",previewRowHeading:"الصف {{row}}",previewColumnHeading:"العمود {{n}} ({{label}})",previewGenericHeading:"الاستيراد",validatingFile:"جاري التحقق من الملف…",addMaster:"إضافة {{doctype}}",mastersCreated:"تم إنشاء {{count}} سجل رئيسي. تم تحديث المعاينة."},z5={title:"المواقع",subtitle:"استعراض سجلات المواقع في النظام.",listTotal:"إجمالي {{count}} موقعاً",backToDataImport:"← استيراد البيانات",backToList:"العودة إلى المواقع",viewRow:"عرض",editRow:"تعديل",deleteRow:"حذف",deleteConfirm:'حذف الموقع "{{name}}"؟ لا يمكن التراجع عن هذا الإجراء.',deleteSuccess:"تم حذف الموقع.",saveMissingName:"اكتمل الحفظ لكن الخادم لم يُرجِع معرّف الموقع.",add:"إضافة موقع",searchPlaceholder:"بحث بالمعرّف أو اسم الموقع…",loading:"جاري تحميل المواقع…",empty:"لا توجد مواقع مطابقة للبحث.",yes:"نعم",no:"لا",colActions:"إجراءات",open:"فتح",refresh:"تحديث القائمة",paginationLabel:"مواقع",newTitle:"موقع جديد",roomNoPlaceholder:"رقم أو اسم الغرفة",locationMasterPlaceholder:"اسم الموقع (السجل الرئيسي)",createRoom:"إنشاء",createLocationMaster:"إنشاء",viewLocation:"عرض",viewLocationDesk:"فتح الموقع في لوحة إدارة النظام",viewLocationDetails:"عرض تفاصيل الموقع",fieldRoom:"غرفة",formHintDataImportStyle:"استخدم البحث عن المبنى والقسم أعلاه. للغرفة والموقع اكتب القيمة أو استخدم «إضافة غرفة» / «إضافة موقع» لإنشاء سجل رئيسي — دون قائمة اختيار من السجلات الحالية.",roomTextPlaceholder:"اكتب أو أضف غرفة",locationTextPlaceholder:"اكتب أو أضف موقعاً",addRoomAction:"إضافة غرفة",addLocationAction:"إضافة موقع",sectionDetails:"تفاصيل الموقع",fieldLocationId:"معرّف الموقع",fieldLocationName:"اسم الموقع",fieldLocationNamePlaceholder:"أدخل اسم الموقع",fieldContainsSubLocations:"يحتوي هذا الموقع على مواقع فرعية",fieldContainsSubLocationsHelp:"فعّلها إذا كان يمكن إضافة مواقع تابعة تحت هذا الموقع.",fieldDepartment:"القسم",fieldDepartmentPlaceholder:"القسم (اختياري)",fieldParent:"الموقع الأب",fieldParentPlaceholder:"اختر الأب (اختياري)",fieldParentPlaceholderDesk:"اختر الموقع الأب (اختياري)",mapTitle:"الخريطة (خط العرض والطول)",mapHint:"انقر على الخريطة لوضع الدبوس، أو اسحب الدبوس لتعديل الإحداثيات.",fieldIsContainer:"حاوية",fieldIsContainerHelp:"حدد إذا كانت وحدة زراعة مائية (هيدروبونيك).",fieldIsGroup:"مجموعة",fieldCustomHospital:"مستشفى",fieldCustomWoType:"نوع أمر عمل",fieldLatitude:"خط العرض",fieldLatitudePlaceholder:"مثال: 24.7136",fieldLongitude:"خط الطول",fieldLongitudePlaceholder:"مثال: 46.6753",save:"حفظ",saved:"تم حفظ الموقع.",validationName:"اسم الموقع مطلوب.",validationId:"معرّف الموقع مطلوب.",errorDuplicateEntry:'اسم الموقع "{{name}}" مستخدم مسبقاً. اختر اسماً آخر.',errorDuplicateGeneric:"اسم هذا الموقع موجود مسبقاً. استخدم اسماً فريداً.",fieldLabel:{building:"المبنى",department:"القسم",room_no:"رقم الغرفة",location:"الموقع",name:"المعرّف",owner:"المالك",creation:"تاريخ الإنشاء",modified:"آخر تعديل",modified_by:"عُدّل بواسطة",docstatus:"حالة المستند",idx:"ترتيب",location_name:"اسم الموقع",parent_location:"الأب",is_container:"حاوية",is_group:"مجموعة",custom_is_hospital:"مستشفى",custom_is_wo_type:"نوع أمر عمل",latitude:"خط العرض",longitude:"خط الطول",lft:"يسار الشجرة",rgt:"يمين الشجرة"}},W5={title:"أصول سيرا",subtitle:"نظام إدارة الأصول",signIn:"قم بتسجيل الدخول للمتابعة",emailPlaceholder:"أدخل بريدك الإلكتروني",passwordPlaceholder:"أدخل كلمة المرور",loginFailed:"فشل تسجيل الدخول. يرجى التحقق من بيانات الاعتماد الخاصة بك.",demoLogin:"تسجيل دخول تجريبي",or:"أو",forgotPassword:"نسيت كلمة المرور؟",forgotPasswordTitle:"نسيت كلمة المرور؟",forgotPasswordHint:"أدخل البريد الإلكتروني أو اسم المستخدم الذي تستخدمه لتسجيل الدخول. سنرسل تعليمات إعادة التعيين إلى بريدك المسجل.",forgotPasswordUserRequired:"يرجى إدخال البريد الإلكتروني أو اسم المستخدم.",forgotPasswordUserPlaceholder:"البريد أو اسم المستخدم",forgotPasswordSubmit:"إرسال رابط إعادة التعيين",forgotPasswordSent:"إذا كان هذا البريد مسجلاً، ستصلك تعليمات إعادة تعيين كلمة المرور.",forgotPasswordSentSuccess:"تم إرسال تعليمات إعادة تعيين كلمة المرور إلى بريدك الإلكتروني المسجل. يرجى التحقق من صندوق الوارد.",forgotPasswordNotFound:"لم يتم العثور على حساب مستخدم بالبريد الإلكتروني المقدم.",forgotPasswordClose:"إلغاء",forgotPasswordTimeout:"استغرق الطلب وقتاً طويلاً (قد يكون خادم البريد بطيئاً). حاول مرة أخرى بعد دقيقة.",forgotPasswordCannotReset:"إعادة تعيين كلمة المرور غير متاحة لهذا الحساب.",forgotPasswordFailed:"تعذر إرسال رسالة إعادة التعيين. حاول مرة أخرى أو تواصل مع الدعم.",finishingSignOut:"جاري إنهاء تسجيل الخروج…",afterPasswordResetSignIn:"تم تحديث كلمة المرور. يرجى تسجيل الدخول بكلمة المرور الجديدة.",resetPasswordTitle:"إعادة تعيين كلمة المرور",resetNewPassword:"كلمة المرور الجديدة",resetConfirmPassword:"تأكيد كلمة المرور",resetConfirm:"تأكيد",resetInvalidLink:"رابط إعادة التعيين غير صالح أو مفقود. اطلب رابطاً جديداً من صفحة تسجيل الدخول.",resetEnterPassword:"يرجى إدخال كلمة مرور جديدة.",resetPasswordMismatch:"كلمتا المرور غير متطابقتين.",resetFailed:"تعذر إعادة تعيين كلمة المرور. قد يكون الرابط منتهياً.",backToSignIn:"العودة لتسجيل الدخول"},H5={title:"لوحة التحكم",loading:"جاري تحميل لوحة التحكم...",totalAssets:"إجمالي عدد الأصول",assetsDown:"الأصول إلى أسفل",openWorkOrders:"أوامر العمل المفتوحة",workOrdersInProgress:"أوامر العمل قيد التنفيذ",completedWorkOrders:"أوامر العمل المكتملة",totalWorkOrders:"إجمالي أوامر العمل",overdueWorkOrders:"أوامر العمل المتأخرة",closedWorkOrders:"أوامر العمل المغلقة",upTime:"وقت التشغيل",downTime:"وقت التوقف",workOrderStatus:"حالة أمر العمل",workOrderByType:"أمر العمل حسب النوع",maintenanceByAsset:"الصيانة حسب الأصل",assigneesStatus:"حالة المكلفين",assigneesCount:"المكلفون",totalTasksAssigned:"المهام المعينة",maintenanceFrequency:"تكرار الصيانة",maintenanceLogs:"سجلات الصيانة",assetUptime:"وقت تشغيل الأصل",avgResponseTime:"متوسط وقت الاستجابة",maintenanceEfficiency:"كفاءة الصيانة",overdueMaintenance:"صيانة متأخرة",upDownTimeChart:"مخطط وقت التشغيل والتوقف",ppmStatus:"حالة الصيانة الوقائية",completionRate:"معدل الإكمال",completionRateChartHint:"نسبة الإكمال خلال آخر 7 أشهر — مرر المؤشر على النقطة للتفاصيل",completionRateTooltip:"{{value}}% معدل الإكمال",viewFullReport:"عرض التقرير الكامل",noDataAvailable:"لا توجد بيانات",loadingTechnicianHours:"جاري تحميل ساعات الفنيين...",loadingTechnicianWorkData:"جاري تحميل بيانات عمل الفنيين...",welcome:"مرحباً،",user:"المستخدم",failedToLoad:"فشل تحميل بيانات لوحة التحكم",recentRecords:"السجلات الأخيرة",latestEntries:"أحدث الإدخالات من النظام الخلفي",quickActions:"إجراءات سريعة",cardTotalAssets:"إجمالي الأصول",cardOpenWorkOrders:"أوامر العمل المفتوحة",cardInProgress:"قيد التنفيذ",cardCompletedWorkOrders:"أوامر العمل المكتملة",viewUsers:"عرض المستخدمين",manageUserAccounts:"إدارة حسابات المستخدمين",settings:"الإعدادات",configurePreferences:"تكوين التفضيلات",events:"الأحداث",viewCalendarEvents:"عرض أحداث التقويم",reports:"التقارير",viewAnalyticsReports:"عرض التحليلات والتقارير",ppmTemplateCounts:"عدادات قوالب الصيانة الوقائية",repairCost:"تكلفة الإصلاح",dashboardFilter:"فلتر لوحة التحكم",allDepartments:"جميع الأقسام",workOrderStatusDistribution:"توزيع حالة أوامر العمل",workOrderInspectionSummary:"ملخص تفتيش أوامر العمل",woRejectionSummary:"ملخص رفض أوامر العمل",total:"الإجمالي",inProgress:"قيد التنفيذ",completed:"مكتمل",totalSales:"إجمالي المبيعات",average:"متوسط",noChartDataAvailable:"لا توجد بيانات للمخطط",loadingInspectionData:"جاري تحميل بيانات التفتيش...",noInspectionDataAvailable:"لا توجد بيانات تفتيش",totalRejections:"إجمالي الرفض",loadingRejectionData:"جاري تحميل بيانات الرفض...",noRejectionDataAvailable:"لا توجد بيانات رفض",department:"القسم",allOperational:"جميع الأنظمة تعمل",low:"منخفض",highPriority:"أولوية عالية",allClear:"الكل واضح",fastResponse:"استجابة سريعة",monitor:"مراقبة",onTrack:"وفق الخطة",needsAttention:"يحتاج اهتمام",totalHours:"الإجمالي: {{value}} ساعة",technicianWorkingHours:"ساعات عمل الفنيين",techniciansWorked:"ملخص عمل الفنيين",pendingReviewWorkOrders:"قيد المراجعة",clear:"مسح",clearFilter:"مسح الفلتر",label:"التسمية",open:"مفتوح"},$5={assetId:"معرف الأصل",assetName:"اسم الأصل",serialNumber:"الرقم التسلسلي",localId:"المعرف المحلي",technicalDepartment:"القسم الفني",company:"الشركة/المستشفى",location:"الموقع",department:"القسم",deviceStatus:"حالة الجهاز",modality:"الطريقة",manufacturer:"الشركة المصنعة",supplier:"المورد",assetCategory:"فئة الأصل",purchaseDate:"تاريخ الشراء",purchaseAmount:"مبلغ الشراء",availableForUseDate:"تاريخ التوفر للاستخدام",createdOn:"تم الإنشاء في",modifiedOn:"تم التعديل في",createdBy:"تم الإنشاء بواسطة",modifiedBy:"تم التعديل بواسطة",workOrderId:"معرف أمر العمل",workOrderType:"النوع",status:"الحالة",priority:"الأولوية",description:"الوصف",assignedTo:"مكلف إلى",scheduledDate:"التاريخ المجدول",completedDate:"تاريخ الإكمال",hospital:"المستشفى",assetType:"نوع الأصل",siteName:"اسم الموقع",assignedSupervisor:"المشرف المعين",assignedContractor:"المقاول المعين",serialNumberShort:"الرقم التسلسلي",departmentShort:"القسم",manufacturerShort:"الشركة المصنعة",workOrderIdShort:"معرف أمر العمل",assetShort:"الأصل",typeShort:"النوع",nameShort:"الاسم",pmId:"معرف الصيانة الوقائية",name:"الاسم"},V5={filterBy:"تصفية حسب",createdDate:"تاريخ الإنشاء",latestModifiedDate:"آخر تاريخ تعديل",startDate:"تاريخ البداية",endDate:"تاريخ النهاية",assetId:"معرف الأصل",hospital:"المستشفى",name:"الاسم",serial:"الرقم التسلسلي",status:"الحالة",location:"الموقع",dept:"القسم",modality:"الطريقة",mfr:"الشركة المصنعة",supplier:"المورد",workOrderId:"معرف أمر العمل",asset:"الأصل",type:"النوع",priority:"الأولوية",workflowState:"حالة سير العمل",allStatuses:"أي حالة",allStates:"جميع الحالات",allTypes:"جميع الأنواع",allPriorities:"أي أولوية",allHospitals:"جميع المستشفيات",allModalities:"جميع الطرق",filterByCompany:"تصفية حسب الشركة",allManufacturers:"جميع الشركات المصنعة",sortBy:"ترتيب حسب",sortCreationNewest:"تاريخ الإنشاء (الأحدث أولاً)",sortCreationOldest:"تاريخ الإنشاء (الأقدم أولاً)",sortModifiedNewest:"آخر تعديل (الأحدث أولاً)",sortModifiedOldest:"آخر تعديل (الأقدم أولاً)",sortNameAsc:"الاسم (أ-ي)",sortNameDesc:"الاسم (ي-أ)",sortAssetNameAsc:"اسم الأصل (أ-ي)",sortAssetNameDesc:"اسم الأصل (ي-أ)",sortItemNameAsc:"اسم العنصر (أ-ي)",sortItemNameDesc:"اسم العنصر (ي-أ)",sortTeamNameAsc:"اسم الفريق (أ-ي)",sortTeamNameDesc:"اسم الفريق (ي-أ)"},G5={addNew:"إضافة جديد",searchPlaceholder:"بحث...",noResults:"لم يتم العثور على نتائج",showing:"عرض",of:"من",results:"نتائج",selectAll:"تحديد الكل",deselectAll:"إلغاء تحديد الكل",selected:"محدد",actions:"الإجراءات",view:"عرض",edit:"تعديل",delete:"حذف",duplicate:"نسخ",export:"تصدير",print:"طباعة",filters:"المرشحات",clearFilters:"مسح المرشحات",applyFilters:"تطبيق المرشحات",columns:"الأعمدة",exportSelected:"تصدير المحدد",exportAllOnPage:"تصدير الكل في الصفحة",exportAllWithFilters:"تصدير الكل مع المرشحات",exportFormat:"تنسيق التصدير",csv:"CSV",excel:"Excel",exporting:"جاري التصدير...",exportComplete:"اكتمل التصدير",close:"إغلاق",loading:"جاري التحميل...",refresh:"تحديث",deselectAllTitle:"إلغاء تحديد الكل",selectAllTitle:"تحديد الكل",typeToSearch:"اكتب للبحث...",enterFilterName:"أدخل اسم المرشح",enterFilterNameExample:"أدخل اسم المرشح (مثال: 'مفتوح أولوية عالية')",allStatuses:"أي حالة",savedFilters:"المرشحات المحفوظة",clear:"مسح",noIssuesFound:"لم يتم العثور على تذاكر",createFirstIssue:"أنشئ تذكرتك الأولى",saveFilterPreset:"حفظ مجموعة المرشحات",saveFilter:"حفظ المرشح",filtering:"جاري التصفية...",noMaintenanceTeamsFound:"لم يتم العثور على فرق صيانة",createFirstTeam:"أنشئ فريقك الأول",all:"الكل",tryAdjustingFilters:"حاول تعديل البحث أو المرشحات",getStartedCreateFirst:"ابدأ بإنشاء مخطط الصيانة الوقائية الأول",noMaintenanceLogsFound:"لم يتم العثور على سجلات صيانة",createFirstMaintenanceLog:"أنشئ سجل الصيانة الأول",total:"الإجمالي",noPPMSchedulesFound:"لم يتم العثور على جداول صيانة وقائية",createFirstPPMSchedule:"أنشئ جدول الصيانة الوقائية الأول",deleteConfirmCannotUndo:"لا يمكن التراجع عن هذا الإجراء."},Y5={title:"الأصول",addAsset:"إضافة أصل جديد",assetDetails:"تفاصيل الأصل",assetInformation:"معلومات الأصل",newAsset:"أصل جديد",duplicateAsset:"نسخ الأصل",fromAsset:"من الأصل",creatingFromAsset:"جاري إنشاء أمر العمل من الأصل",assetInfoPrefilled:"معلومات الأصل معبأة مسبقاً من",pleaseSelectWorkOrderType:"يرجى اختيار نوع أمر العمل وإضافة أي تفاصيل",loadingAssetDetails:"جاري تحميل تفاصيل الأصل...",pleaseEnterAssetName:"يرجى إدخال اسم الأصل",pleaseSelectCategory:"يرجى اختيار الفئة",assetDuplicatedSuccessfully:"تم نسخ الأصل بنجاح!",assetCreatedSuccessfully:"تم إنشاء الأصل بنجاح!",assetUpdatedSuccessfully:"تم تحديث الأصل بنجاح!",sourceAssetNotFound:"الأصل المصدر غير موجود",assetNotFoundMessage:"لم يتم العثور على الأصل الذي تحاول نسخه.",backToAssetsList:"العودة إلى قائمة الأصول",backToList:"العودة إلى قائمة الأصول",createNewAsset:"إنشاء أصل جديد",newAssetDetails:"تفاصيل أصل جديد",noAssetsFound:"لم يتم العثور على أصول",createFirstAsset:"أنشئ أول أصل",deleteConfirmTitle:"حذف الأصل",deleteConfirmMessage:"هل أنت متأكد من حذف هذا الأصل؟ لا يمكن التراجع عن هذا الإجراء.",noDataToExport:"لا توجد بيانات للتصدير",loadingPermissions:"جاري تحميل الصلاحيات...",selectAssetId:"اختر معرف الأصل",selectHospital:"المستشفى",viewDetails:"عرض التفاصيل",editAsset:"تعديل الأصل",createWorkOrder:"إنشاء أمر عمل",viewLinkedWOs:"عرض أوامر العمل المرتبطة",moreActions:"المزيد من الإجراءات",exportAsJson:"تصدير كـ JSON",printAsset:"طباعة",deviceStatus:"حالة الجهاز",status:{up:"يعمل",down:"متوقف"},apiNotAvailable:"واجهة برمجة الأصول غير متاحة",apiNotDeployed:"نقطة نهاية واجهة برمجة الأصول غير مُنشأة بعد.",tryCreatingNew:"حاول إنشاء أصل جديد (تجريبي)",listTotal:"الإجمالي: ",table:{assetName:"اسم الأصل",serialNo:"الرقم التسلسلي",company:"الشركة",location:"الموقع",status:"الحالة",updatedOn:"آخر تحديث",actions:"إجراءات"},export:{title:"تصدير الأصول",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} أصل{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} أصل{{count !== 1 ? 'اً' : ''}} في الصفحة الحالية",allWithFilters:"جميع السجلات (مع الفلاتر الحالية)",allWithFiltersCount:"تصدير جميع {{count}} أصل{{count !== 1 ? 'اً' : ''}} المطابقة للفلاتر الحالية",csvDesc:"قيم مفصولة بفاصلة",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة التعيين للافتراضي",columnsSelected:"{{count}} عمود{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exportingPage:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} من الصفحة الحالية",exportingAll:"جاري تصدير جميع {{count}} صف{{count !== 1 ? 'اً' : ''}}"},detail:{assetInformation:"معلومات الأصل",technicalSpecs:"المواصفات الفنية",financialDetails:"التفاصيل المالية",assetFinanceBooks:"دفاتر أصول التمويل",addRow:"إضافة صف",duplicatingFrom:"النسخ من:",noDepartmentsMapped:"لا توجد أقسام معينة لهذا المبنى",departmentsAvailable:"{{count}} قسم متاح (مُصفى حسب المبنى)",selectDepartmentForRoom:"اختر القسم لتفعيل رقم الغرفة",depreciationMethodNote:"طريقة الاستهلاك هي طريقة محاسبية لتوزيع تكلفة أصل ملموس على عمره الإنتاجي.",calculateDepreciation:"حساب الاستهلاك",noFinanceBooksYet:'لم تتم إضافة دفاتر مالية بعد. انقر "إضافة صف" للإضافة.',noSparePartsYet:'لم تتم إضافة قطع غيار بعد. انقر "إضافة صف" للإضافة.',assetName:"اسم الأصل",category:"الفئة",modality:"الطريقة",class:"الفئة",assetId:"معرف الأصل",deviceStatus:"حالة الجهاز",serialCode:"الرمز التسلسلي",localId:"المعرف المحلي",technicalDepartment:"القسم الفني",manufacturer:"الشركة المصنعة",model:"الموديل",totalHours:"إجمالي الساعات",downTimeHours:"وقت التوقف (بالساعات)",upTimeHours:"وقت التشغيل (بالساعات)",placeholderAssetName:"مثال: كمبيوتر محمول موديل X",placeholderSerialCode:"مثال: SN-12345",placeholderLocalId:"مثال: LOC-001",placeholderModelNumber:"رقم الموديل",placeholderZero:"0",placeholderDescription:"وصف موجز للأصل",placeholderPONumber:"رقم أمر الشراء",selectClass:"اختر الفئة",classA:"فئة أ",classB:"فئة ب",classC:"فئة ج",autoGenerated:"يُولد تلقائياً",calculatedFromAvailableDate:"محسوب من تاريخ التوفر للاستخدام",calculatedTotalMinusDown:"محسوب: إجمالي الساعات - وقت التوقف",hospital:"المستشفى",siteName:"اسم الموقع",selectSite:"اختر الموقع",building:"المبنى",department:"القسم",roomNumber:"رقم الغرفة",location:"الموقع",selectStatus:"اختر الحالة",operational:"يعمل",underMaintenance:"قيد الصيانة",decommissioned:"مُوقف",selectServiceAgreement:"اختر اتفاقية الخدمة",warranty:"ضمان",contract:"عقد",frameWork:"إطار عمل",mainContractor:"المقاول الرئيسي",outOfWarranty:"خارج الضمان",underDismantle:"قيد التفكيك",underInstallation:"قيد التركيب",selectServiceCoverage:"اختر تغطية الخدمة",pmOnly:"صيانة وقائية فقط",labour:"عمالة",labourAndParts:"عمالة وقطع غيار",comprehensive:"شامل",supplierVendor:"المورد/البائع",selectMethod:"اختر الطريقة",straightLine:"الطريقة الخطية",doubleDecliningBalance:"الرصيد المتناقص المزدوج",writtenDownValue:"القيمة المكتوبة",manual:"يدوي",recycling:"إعادة التدوير",donation:"تبرع",sale:"بيع",assetDuplicatedSuccess:"تم نسخ الأصل بنجاح!",assetCreatedSuccess:"تم إنشاء الأصل بنجاح!",assetUpdatedSuccess:"تم تحديث الأصل بنجاح!",failedToSave:"فشل حفظ الأصل",cannotSubmitNotSaved:"لا يمكن الإرسال: الأصل غير محفوظ بعد",confirmSubmit:'هل أنت متأكد من إرسال هذا الأصل؟ بعد الإرسال، يمكن تعديل الحقول المحددة بـ "السماح عند الإرسال" فقط.',assetSubmittedSuccess:"تم إرسال الأصل بنجاح!",failedToSubmit:"فشل إرسال الأصل",pleaseSaveFirstForPPM:"يرجى حفظ الأصل أولاً لعرض خطة الصيانة الوقائية",pleaseSaveFirstForHistory:"يرجى حفظ الأصل أولاً لعرض سجل الأصل",failedToLoadPPMPlan:"فشل تحميل خطة الصيانة الوقائية. يرجى المحاولة مرة أخرى.",noPlannedMaintenance:"لم يتم العثور على صيانة مخطط لها لهذا الأصل",noWorkOrdersFound:"لم يتم العثور على أوامر عمل",noSparePartsUsed:"لم تُستخدم قطع غيار",noMaintenanceRecords:"لم يتم العثور على سجلات صيانة",noMaintenanceTasks:"لم يتم العثور على مهام صيانة",selectBuildingFirst:"اختر المبنى أولاً لتفعيل القسم",coverage:"التغطية",siteContractor:"مقاول الموقع",contractNumber:"رقم العقد",serviceAgreement:"اتفاقية الخدمة",serviceCoverage:"تغطية الخدمة",purchaseOrderNumber:"رقم أمر الشراء",grossPurchaseAmount:"مبلغ الشراء الإجمالي",purchaseDate:"تاريخ الشراء",installationDate:"تاريخ التركيب",availableForUseDate:"تاريخ التوفر للاستخدام",financeBook:"دفتر المالية",depreciationMethod:"طريقة الاستهلاك",totalDepreciations:"إجمالي الاستهلاك",frequencyMonths:"التكرار (بالأشهر)",depreciationPostingDate:"تاريخ ترحيل الاستهلاك",startDate:"تاريخ البداية",endDate:"تاريخ النهاية",totalAmount:"المبلغ الإجمالي",selectRoomFirst:"اختر رقم الغرفة لتفعيل الموقع",autoSetFromRoom:"تم التعيين تلقائياً من خريطة الغرفة",moreDetails:"تفاصيل إضافية"}},q5=JSON.parse(`{"title":"أوامر العمل","addWorkOrder":"إضافة أمر عمل جديد","workOrderDetails":"تفاصيل أمر العمل","newWorkOrder":"أمر عمل جديد","duplicateWorkOrder":"نسخ أمر العمل","createFromAsset":"إنشاء أمر عمل من الأصل","closeWorkOrders":"إغلاق أوامر العمل","closeConfirmTitle":"إغلاق أوامر العمل","closeConfirmMessage":"هل أنت متأكد من إغلاق أمر/أوامر العمل المحددة؟","deleteConfirmMessage":"هل أنت متأكد من حذف أمر العمل هذا؟ لا يمكن التراجع عن هذا الإجراء.","cancelConfirmMessage":"هل أنت متأكد من إلغاء أمر العمل هذا؟ سيتم وضع علامة ملغى ويمكنك حذفه لاحقاً إذا لزم الأمر.","assignConfirmMessage":"هل أنت متأكد من تعيين أمر العمل هذا للفني/الفنيين التاليين؟","deleteWorkOrder":"حذف أمر العمل","cancelWorkOrder":"إلغاء أمر العمل","loadingWorkOrders":"جاري تحميل أوامر العمل...","loadingDetails":"جاري تحميل تفاصيل أمر العمل...","backToList":"العودة إلى قائمة أوامر العمل","status":{"open":"مفتوح","work_in_progress":"جاري العمل","pending_review":"قيد المراجعة","completed":"مكتمل","cancelled":"ملغى","closed":"مغلق"},"priorityNormal":"عادي","priorityUrgent":"عاجل","workflowState":{"draft":"مسودة"},"priority":{"normal":"عادي","urgent":"عاجل"},"table":{"workOrderId":"معرف أمر العمل","asset":"الأصل","type":"النوع","technicalReport":"التقرير الفني","department":"القسم","workflowState":"حالة سير العمل","priority":"الأولوية","noWorkOrdersFound":"لم يتم العثور على أوامر عمل","createFirstWorkOrder":"أنشئ أول أمر عمل"},"export":{"title":"تصدير أوامر العمل","selectData":"ماذا تُصدّر","selectedRows":"الصفوف المحددة","selectedCount":"تصدير {{count}} أمر عمل{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}","currentPage":"الصفحة الحالية","currentPageCount":"تصدير {{count}} أمر عمل{{count !== 1 ? 'اً' : ''}} في الصفحة الحالية","allWithFilters":"جميع السجلات (مع الفلاتر الحالية)","allWithFiltersCount":"تصدير جميع {{count}} أمر عمل{{count !== 1 ? 'اً' : ''}} المطابقة للفلاتر الحالية","csvDesc":"قيم مفصولة بفاصلة","excelDesc":"جدول XLSX","columnsToExport":"الأعمدة للتصدير","selectAll":"تحديد الكل","resetToDefault":"إعادة التعيين للافتراضي","columnsSelected":"{{count}} عمود{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}","exporting":"جاري التصدير...","exportButton":"تصدير","exportingSelected":"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}","exportingPage":"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} من الصفحة الحالية","exportingAll":"جاري تصدير جميع {{count}} صف{{count !== 1 ? 'اً' : ''}}"},"closeModal":{"title":"إغلاق أوامر العمل","confirmBulkClose":"تأكيد عملية الإغلاق الجماعي","aboutToClose":"أنت على وشك إغلاق {{count}} أمر عمل{{count !== 1 ? 'اً' : ''}}. سيتم تغيير حالة سير العمل إلى \\"مغلق\\".","alreadyClosedNote":"ملاحظة: {{count}} أمر عمل{{count !== 1 ? ' مغلقة' : ' مغلق'}} بالفعل وسيتم تخطيها.","selectedWorkOrders":"أوامر العمل المحددة ({{count}})","workOrderId":"معرف أمر العمل","currentStatus":"الحالة الحالية","workflowState":"حالة سير العمل","alreadyClosed":"(مغلق بالفعل)","willClose":"سيتم إغلاق {{count}} أمر عمل{{count !== 1 ? 'اً' : ''}}","allAlreadyClosed":"جميع أوامر العمل المحددة مغلقة بالفعل","cancel":"إلغاء","close":"إغلاق","closing":"جاري الإغلاق..."},"detail":{"workOrderInformation":"معلومات أمر العمل","assignments":"التعيينات","statusSummary":"ملخص الحالة","existingWorkOrders":"أمر/أوامر العمل الموجودة:","created":"تاريخ الإنشاء","proceedCreateNew":"هل تريد المتابعة لإنشاء أمر عمل جديد؟","loadingTechnicians":"جاري تحميل الفنيين...","feedbackBy":"التقييم بواسطة","overallSatisfaction":"رضا إجمالي","overallRatingPreview":"معاينة التقييم الإجمالي","uploading":"جاري الرفع...","uploadOpeningFile":"رفع ملف الفتح","uploadClosingFile":"رفع ملف الإغلاق","noAttachment":"لا يوجد مرفق","noClosingAttachment":"لا يوجد مرفق إغلاق","closingAttachment":"مرفق الإغلاق","currentState":"الحالة الحالية","loadingActions":"جاري تحميل الإجراءات...","actionResults":"نتائج الإجراء:","checkingFeedback":"جاري التحقق من التقييم...","yourRating":"تقييمك","repairStatus":"حالة الإصلاح","priority":"الأولوية","lastModified":"آخر تعديل","documentStatus":"حالة المستند","loadingActivity":"جاري تحميل النشاط...","added":"تمت الإضافة:","removed":"تمت الإزالة:","modified":"تم التعديل:","items":"عنصر/عناصر","rows":"صف/صفوف","pleaseAllowPopupsServiceReport":"يرجى السماح بالنوافذ المنبثقة لهذا الموقع لطباعة تقرير الخدمة.","pleaseProvideAtLeastOneRating":"يرجى تقديم تقييم واحد على الأقل","feedbackSubmittedSuccessfully":"تم إرسال التقييم بنجاح!","failedToSubmitFeedback":"فشل إرسال التقييم","feedbackUpdatedSuccessfully":"تم تحديث التقييم بنجاح!","failedToUpdateFeedback":"فشل تحديث التقييم","locationAutoSetTo":"تم تعيين الموقع تلقائياً إلى: {{location}}","noTechniciansSelected":"لم يتم تحديد فنيين","techniciansAssignedSuccessfully":"تم تعيين {{count}} فني/فنيين إضافي بنجاح","removedTechnician":"تمت إزالة {{name}}","itemAlreadyAdded":"الصنف \\"{{itemCode}}\\" مضاف بالفعل في الصف {{row}}. يرجى اختيار صنف مختلف.","insufficientStock":"مخزون غير كافٍ لـ {{itemCode}}. المتوفر: {{available}}، المطلوب: {{required}}","pleaseEnterSerialNumberToSearch":"يرجى إدخال الرقم التسلسلي للبحث","assetFound":"تم العثور على الأصل: {{name}}","noAssetFoundWithSerialNumber":"لم يتم العثور على أصل بهذا الرقم التسلسلي","fileSizeExceeds":"حجم الملف يتجاوز حد 10 ميجابايت","fileUploadedSuccessfully":"تم رفع الملف بنجاح","failedToUploadFile":"فشل رفع الملف","attachmentRemoved":"تم إزالة المرفق","failureDateSetToCurrentTime":"تم تعيين تاريخ العطل على الوقت الحالي","firstRespondedOnSetToCurrentTime":"تم تعيين وقت أول استجابة على الوقت الحالي","completionDateSetToCurrentTime":"تم تعيين تاريخ الإكمال على الوقت الحالي","firstRespondedOnSetTo":"تم تعيين وقت أول استجابة على {{datetime}}","completionDateSetTo":"تم تعيين تاريخ الإكمال على {{datetime}}","assignedSupervisorMandatory":"المشرف المعيّن إلزامي لدور مراقبة العمل.","assignedEngineerMandatory":"المهندس المعيّن إلزامي لدور مراقبة العمل.","assignedTechnicianMandatory":"الفني المعيّن إلزامي عندما تكون الحالة \\"إرسال إلى المهندس\\".","workOrderCancelledSuccessfully":"تم إلغاء أمر العمل بنجاح!","failedToCancel":"فشل الإلغاء: {{error}}","workOrderDeletedSuccessfully":"تم حذف أمر العمل بنجاح!","failedToDelete":"فشل الحذف: {{error}}","pleaseSelectWorkOrderType":"يرجى اختيار نوع أمر العمل","workOrderUpdatedSuccessfully":"تم تحديث أمر العمل بنجاح!","workOrderCreatedSuccessfully":"تم إنشاء أمر العمل بنجاح!","workOrderCreatedFromAssetSuccessfully":"تم إنشاء أمر العمل من الأصل بنجاح!","workOrderDuplicatedSuccessfully":"تم نسخ أمر العمل بنجاح!","documentModifiedByAnotherUser":"تم تعديل المستند من قبل مستخدم آخر. جاري التحديث...","pleaseReviewLatestChanges":"يرجى مراجعة أحدث التغييرات والمحاولة مرة أخرى.","failedToSaveWorkOrder":"فشل حفظ أمر العمل: {{error}}","technicalReportMandatoryForSupervisor":"التقرير الفني إلزامي عند الإرسال مباشرة إلى المشرف. يرجى ملء حقل التقرير الفني قبل المتابعة.","applyingAction":"جاري تطبيق الإجراء \\"{{action}}\\"...","assignedTo":"معيّن إلى: {{name}}","actionCompletedSuccessfully":"تم إكمال الإجراء \\"{{action}}\\" بنجاح!","documentModifiedRefreshing":"تم تعديل المستند. جاري التحديث...","tryActionAgainAfterReview":"يرجى المحاولة مرة أخرى بعد مراجعة أحدث التغييرات.","failedToApplyAction":"فشل تطبيق الإجراء \\"{{action}}\\". {{error}}","editModeEnabled":"تم تفعيل وضع التحرير","editCancelledChangesDiscarded":"تم إلغاء التحرير - تم تجاهل التغييرات","closingAttachmentRemoved":"تم إزالة مرفق الإغلاق","closingAttachmentUploadedSuccessfully":"تم رفع مرفق الإغلاق بنجاح","failedToUploadClosingAttachment":"فشل رفع مرفق الإغلاق","newStockItemRowAdded":"تمت إضافة صف صنف جديد","stockItemRemoved":"تمت إزالة صنف المخزون {{item}}","activityLogRefreshed":"تم تحديث سجل النشاط","errorLabel":"خطأ","backToList":"العودة إلى قائمة أوامر العمل","duplicateWorkOrder":"نسخ أمر العمل","createFromAsset":"إنشاء أمر عمل من الأصل","newWorkOrder":"أمر عمل جديد","workOrderDetails":"تفاصيل أمر العمل","existingWorkOrderFound":"تم العثور على أمر عمل موجود","workOrderExistsForAsset":"يوجد أمر عمل بالفعل لهذا الأصل بحالة سير عمل غير معتمدة أو مغلقة.","workOrderExistsForTypeAndRoom":"يوجد أمر عمل بالفعل لهذا النوع ورقم الغرفة بحالة سير عمل غير معتمدة أو مغلقة.","proceedWithNewWO":"هل ما زلت تريد المتابعة بإنشاء أمر عمل جديد؟","proceedAnyway":"متابعة على أي حال","noGoBack":"لا، تراجع","yesCancel":"نعم، إلغاء","cancelling":"جاري الإلغاء...","deleting":"جاري الحذف...","selectAdditionalTechnicians":"اختر فنيين إضافيين","searchTechnicians":"البحث عن فنيين...","techniciansSelected":"{{count}} فني/فنيين محدد","clearAll":"مسح الكل","noTechniciansMatchSearch":"لا يوجد فنيون يطابقون بحثك","noTechniciansFound":"لم يتم العثور على فنيين","hospital":"المستشفى","technicalDepartment":"القسم الفني","woType":"نوع أمر العمل","assetId":"معرف الأصل","assetName":"اسم الأصل","extensionNo":"رقم الامتداد","building":"المبنى","departmentName":"اسم القسم","roomNo":"رقم الغرفة","location":"الموقع","manufacturer":"الشركة المصنعة","supplier":"المورد","assignedSupervisor":"المشرف المعيّن","assignedEngineer":"المهندس المعيّن","assignedTechnician":"الفني المعيّن","fromAsset":"من الأصل","assetDetailsAutoPopulated":"تم تعبئة تفاصيل الأصل تلقائياً","selectBuildingFirst":"اختر المبنى أولاً لتفعيل القسم","printServiceReport":"طباعة تقرير الخدمة","removeAttachment":"إزالة المرفق","removeClosingAttachment":"إزالة مرفق الإغلاق","setToCurrentDateTime":"تعيين على التاريخ والوقت الحالي","selectItem":"اختر الصنف","selectWarehouse":"اختر المستودع","autoPopulatedFromStock":"تم تعبئته تلقائياً من المخزون","removeItem":"إزالة الصنف","noItemsAddedYet":"لم تتم إضافة أصناف بعد","commentsDiscussion":"التعليقات والنقاش","refreshActivityLog":"تحديث سجل النشاط","supervisorsAvailableForType":"{{count}} مشرف/مشرفين معيّن متاح لهذا النوع","civilWorkCategory":"فئة الأعمال المدنية","civilWorkCategoryMandatory":"يرجى اختيار فئة الأعمال المدنية.","selectCivilWorkCategory":"اختر فئة الأعمال المدنية","selectPendingReason":"اختر سبب الانتظار","pleaseSpecifyReason":"يرجى تحديد السبب...","selectServiceAgreement":"اختر اتفاقية الخدمة","selectServiceCoverage":"اختر تغطية الخدمة","describeComplaint":"صف طبيعة الشكوى...","describeWorkPerformed":"صف العمل المنفذ...","enterSerialNumber":"أدخل الرقم التسلسلي","searchAssetBySerial":"البحث عن الأصل بالرقم التسلسلي","serialNo":"الرقم التسلسلي","localId":"المعرف المحلي","enterLocalId":"أدخل المعرف المحلي","searchAssetByLocalId":"البحث عن الأصل بالمعرف المحلي","pleaseEnterLocalIdToSearch":"يرجى إدخال المعرف المحلي للبحث","noAssetFoundWithLocalId":"لم يتم العثور على أصل بهذا المعرف المحلي","assetNotAvailable":"هذا الأصل غير متاح (يجب أن يكون مُعتمدًا وغير محذوف)","workOrder":"أمر العمل:","giveFeedback":"تقديم التقييم","editFeedback":"تعديل التقييم","feedbackDetails":"تفاصيل التقييم","confirmAssignment":"تأكيد التعيين","notRated":"غير مُقيّم","serviceReport":"تقرير الخدمة","assetInfoPrefilled":"تم تعبئة معلومات الأصل تلقائياً من","linkedFromAsset":"مرتبط من الأصل:","loadingAssetDetails":"جاري تحميل تفاصيل الأصل...","cancelled":"ملغى","workOrderId":"معرف أمر العمل","pendingReason":"سبب الانتظار","otherReason":"سبب آخر","serviceAgreementDetails":"تفاصيل اتفاقية الخدمة","siteContractor":"متعاقد الموقع","subcontractor":"المقاول من الباطن","model":"الموديل","description":"الوصف","natureOfComplaint":"طبيعة الشكوى","technicalReport":"التقرير الفني","selectWoTypeFirstForSupervisors":"اختر نوع أمر العمل أولاً لتصفية المشرفين المعيّنين","noSupervisorsFound":"لم يتم العثور على مشرفين معيّنين لهذا النوع من أمر العمل","requiredForExistingWO":"* مطلوب لأوامر العمل الموجودة","selectWoTypeFirstForEngineers":"اختر نوع أمر العمل أولاً لتصفية المهندسين","noEngineersFound":"لم يتم العثور على مهندسين (دور مهندس المقاول) لهذا النوع من أمر العمل","engineersAvailable":"{{count}} مهندس/مهندسين متاح","selectWoTypeFirstForTechnicians":"اختر نوع أمر العمل أولاً لتصفية الفنيين","noTechniciansFoundForType":"لم يتم العثور على فنيين لهذا النوع من أمر العمل","techniciansAvailable":"{{count}} فني/فنيين متاح","requiredForSentToEngineer":"* مطلوب لحالة \\"إرسال إلى المهندس\\"","autoCalculated":"(محسوب تلقائياً)","autoSetOnRepairStart":"(يُعيّن عند بدء الإصلاح)","autoSetOnClose":"(يُعيّن عند الإغلاق)","totalItems":"إجمالي الأصناف:","confirmAction":"تأكيد الإجراء","confirmActionMessage":"هل أنت متأكد أنك تريد {{action}} أمر العمل هذا؟","processing":"جاري المعالجة...","yesAction":"نعم، {{action}}","systemManagerNote":"مدير النظام: عرض جميع الإجراءات الصالحة لهذه الحالة.","saveToSeeActions":"احفظ التغييرات لرؤية جميع الإجراءات المتاحة.","availableActions":"الإجراءات المتاحة","allOptionsAvailable":"جميع الخيارات متاحة","bothFilledMessage":"تم ملء الفني والتقرير الفني. يمكنك الآن استخدام أي إجراء سير عمل متاح أعلاه.","technicianAssigned":"تم تعيين الفني","assignedTechnicianLabel":"الفني المعيّن:","wantToEnableSendToSupervisor":"هل تريد أيضاً تمكين \\"إرسال إلى المشرف\\"؟","fillTechnicalReportToUnlock":"املأ حقل \\"التقرير الفني\\" لفتح هذا الخيار","technicalReportFilled":"تم ملء التقرير الفني","howWasService":"كيف كانت الخدمة لأمر العمل هذا؟","noFeedbackYet":"لم يُقدّم أي تقييم بعد","statusInfoAfterCreation":"ستظهر معلومات الحالة بعد الإنشاء","activityLog":"سجل النشاط","refreshActivityLogTitle":"تحديث سجل النشاط","noChangesRecorded":"لم يُسجّل أي تغيير بعد","createdThisWorkOrder":"أنشأ أمر العمل هذا","showLess":"عرض أقل","showAll":"عرض الكل","entries":"إدخالات","changedFrom":"تغيّر من","documentUpdated":"تم تحديث المستند","addItem":"إضافة صنف","addFirstItem":"+ إضافة الصنف الأول","item":"الصنف","valuationRate":"معدل التقييم","warehouse":"المستودع","consumedQty":"الكمية المستهلكة","availableStock":"المخزون المتاح","totalValue":"إجمالي القيمة","action":"الإجراء","open":"مفتوح","autoGenerated":"يُنشأ تلقائياً","updating":"جاري التحديث...","submitting":"جاري الإرسال...","updateFeedback":"تحديث التقييم","submitFeedback":"إرسال التقييم","editRating":"تعديل التقييم","saveSelection":"حفظ التحديد"}}`),X5={title:"صيانة الأصول",maintenanceLogs:"سجلات الصيانة",maintenanceDetails:"تفاصيل الصيانة",addMaintenance:"إضافة صيانة جديدة",listTotal:"الإجمالي: {{count}} سجل صيانة{{count !== 1 ? '' : ''}}",apiNotAvailable:"واجهة صيانة الأصول غير متاحة",apiNotDeployed:"لم يتم نشر نقطة نهاية واجهة صيانة الأصول بعد.",tryCreatingNew:"جرب الإنشاء (تجريبي)",deletedSuccessfully:"تم حذف فريق الصيانة بنجاح!",status:{planned:"مخطط",completed:"مكتمل",overdue:"متأخر",cancelled:"ملغى"},maintenanceTeam:"فريق الصيانة",newMaintenanceTeam:"فريق صيانة جديد",teamId:"معرف الفريق",teamName:"اسم الفريق",managerEmail:"بريد المشرف",managerName:"اسم المشرف",expertise:"الاختصاص",selectTeam:"اختر الفريق",viewDetails:"عرض التفاصيل",editTeam:"تعديل الفريق",duplicateTeam:"نسخ الفريق",deleteTeam:"حذف الفريق",selectHospital:"اختر المستشفى",selectExpertise:"اختر الاختصاص",selectManager:"اختر المشرف",enterTeamName:"أدخل اسم الفريق",teamInformation:"معلومات الفريق",selectUser:"اختر المستخدم",selectRole:"اختر الدور",totalMembers:"إجمالي الأعضاء",teamSummary:"ملخص الفريق",addFirstMember:"أضف العضو الأول",manager:"بريد المشرف",loadingTeams:"جاري تحميل فرق الصيانة...",errorLoadingTeams:"خطأ في تحميل فرق الصيانة",deleteConfirmMessage:"هل أنت متأكد من حذف فريق الصيانة هذا؟ لا يمكن التراجع عن هذا الإجراء.",team:"الفريق",deleteTeamButton:"حذف الفريق",listTitle:"فرق الصيانة",statsTotalTeams:"إجمالي الفرق",statsManagers:"المديرون",statsHospitals:"المستشفيات",export:{title:"تصدير فرق الصيانة",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} فريق صيانة محدد",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} فريق صيانة في الصفحة الحالية",allWithFilters:"جميع السجلات (مع المرشحات الحالية)",allWithFiltersCount:"تصدير كل {{count}} فريق صيانة مطابق للمرشحات",exportFormat:"تنسيق التصدير",csv:"CSV",csvDesc:"قيم مفصولة بفواصل",excel:"Excel",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة إلى الافتراضي",columnsSelected:"{{count}} عمود محدد",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"تصدير {{count}} صف محدد",exportingPage:"تصدير {{count}} صف من الصفحة الحالية",exportingAll:"تصدير كل {{count}} صف"}},Z5={title:"الصيانة الوقائية",ppmDetails:"تفاصيل الصيانة الوقائية",addPPM:"إضافة صيانة وقائية جديدة",periodicity:"الدورية",dueDate:"تاريخ الاستحقاق",manageSchedules:"إدارة الجداول",bulkScheduleGenerator:"مولد الجداول المجمّع — صفِّ الأصول ثم اضبط الإعدادات وأنشئ",filterAssets:"تصفية الأصول",selectAssets:"اختيار الأصول",scheduleConfiguration:"إعداد الجدول",pmId:"معرف الصيانة الوقائية",name:"الاسم",manufacturer:"الشركة المصنعة",listTotal:"الإجمالي: {{count}} جدول صيانة وقائية{{count !== 1 ? '' : ''}}",searchPlaceholder:"ابحث بالمعرف أو الأصل أو الشركة...",filterByCompany:"تصفية حسب الشركة",company:"الشركة",asset:"الأصل",assetType:"نوع الأصل",frequency:"التكرار",noOfPMs:"عدد الصيانات الوقائية",totalAmount:"المبلغ الإجمالي",apiNotAvailable:"واجهة الصيانة الوقائية غير متاحة",apiNotDeployed:"لم يتم نشر نقطة نهاية واجهة الصيانة الوقائية بعد.",tryCreatingNew:"جرب الإنشاء (تجريبي)",deletedSuccessfully:"تم حذف جدول الصيانة الوقائية بنجاح!",noSchedulesFound:"لم يتم العثور على جداول صيانة وقائية",createFirstSchedule:"أنشئ أول جدول صيانة وقائية",confirmDelete:"تأكيد الحذف",deleteConfirmMessage:"هل أنت متأكد من حذف جدول الصيانة الوقائية هذا؟ لا يمكن التراجع عن هذا الإجراء.",detail:{duplicateSchedule:"نسخ جدول الصيانة الوقائية",newSchedule:"جدول صيانة وقائية جديد",scheduleDetails:"تفاصيل جدول الصيانة الوقائية",basicInformation:"المعلومات الأساسية",financialInformation:"المعلومات المالية",scheduleInformation:"معلومات الجدول",maintenanceTeam:"فريق الصيانة",numberOfPMs:"عدد الصيانات الوقائية",pricePerPM:"السعر لكل صيانة وقائية",frequencyPlaceholder:"مثال: شهري، ربع سنوي، سنوي",scheduleInfoAfterCreation:"ستظهر معلومات الجدول بعد الإنشاء",assetName:"اسم الأصل",pleaseEnterAssetName:"يرجى إدخال اسم الأصل",duplicatedSuccessfully:"تم نسخ جدول الصيانة الوقائية بنجاح!",createdSuccessfully:"تم إنشاء جدول الصيانة الوقائية بنجاح!",updatedSuccessfully:"تم تحديث جدول الصيانة الوقائية بنجاح!",failedToSave:"فشل الحفظ",saveChanges:"حفظ التغييرات",loadingSchedule:"جاري تحميل جدول الصيانة الوقائية...",backToSchedules:"العودة إلى جداول الصيانة الوقائية",errorLoading:"خطأ"}},K5={listTitle:"جداول الصيانة الوقائية",export:{title:"تصدير جداول الصيانة الوقائية",selectData:"نطاق التصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} جدول{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} جدول{{count !== 1 ? 'اً' : ''}} في الصفحة الحالية",allWithFilters:"جميع السجلات (مع الفلاتر الحالية)",allWithFiltersCount:"تصدير جميع {{count}} جدول{{count !== 1 ? 'اً' : ''}} المطابقة للفلاتر الحالية",csvDesc:"قيم مفصولة بفاصلة",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة التعيين للافتراضي",columnsSelected:"{{count}} عمود{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exportingPage:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} من الصفحة الحالية",exportingAll:"جاري تصدير جميع {{count}} صف{{count !== 1 ? 'اً' : ''}}"}},J5={title:"تصدير",whatToExport:"ما الذي سيتم تصديره",selectedRows:"الصفوف المحددة",currentPage:"الصفحة الحالية",allWithFilters:"الكل مع المرشحات",exportSelected:"تصدير {count} محدد",exportPage:"تصدير {count} في الصفحة الحالية",exportAll:"تصدير الكل {count}",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",selectDefault:"تحديد الافتراضي",exporting:"جاري التصدير...",exportingSelected:"جاري تصدير {count} صف(وف) محدد(ة)",exportingPage:"جاري تصدير {count} صف(وف) من الصفحة الحالية",exportingAll:"جاري تصدير جميع {count} صف(وف)",selected:"محدد",rows:"صفوف"},Q5={title:"الأصناف",itemDetails:"تفاصيل الصنف",newItem:"صنف جديد",addItem:"إضافة صنف جديد",itemId:"معرف الصنف",itemCode:"كود الصنف",itemName:"اسم الصنف",itemGroup:"مجموعة الأصناف",stockUOM:"وحدة المخزون",partDescription:"وصف القطعة",brand:"العلامة التجارية",valuationRate:"معدل التقييم",openingStock:"رصيد الافتتاح",lastCalibrationDate:"تاريخ المعايرة الأخير",nextCalibrationDate:"تاريخ المعايرة القادم",selectItem:"اختر الصنف",selectItemGroup:"اختر مجموعة الأصناف",selectHospital:"اختر المستشفى",serialNo:"الرقم التسلسلي",dateIn:"تاريخ الدخول",watts:"واط",volts:"فولت",type:"النوع",code:"الرمز",viewDetails:"عرض التفاصيل",editItem:"تعديل الصنف",duplicateItem:"نسخ الصنف",deleteItem:"حذف الصنف",basicInformation:"المعلومات الأساسية",inventoryDetails:"تفاصيل المخزون",stockInformation:"معلومات المخزون",isStockItem:"صنف مخزني",isFixedAsset:"أصل ثابت",balanceQty:"الرصيد",calibrationInformation:"معلومات المعايرة",additionalInformation:"معلومات إضافية",refreshBalanceQty:"تحديث الرصيد",warrantyMonths:"الضمان (بالأشهر)",errorLoadingItems:"خطأ في تحميل الأصناف",loadingItems:"جاري تحميل الأصناف...",deleteConfirmMessage:"هل أنت متأكد من حذف هذا الصنف؟ لا يمكن التراجع عن هذا الإجراء.",backToInventory:"العودة إلى المخزون",loadingItem:"جاري تحميل الصنف...",errorLoadingItem:"خطأ في تحميل الصنف",createNewItem:"إنشاء صنف جديد",itemCodeLabel:"كود الصنف",itemUpdatedSuccessfully:"تم تحديث الصنف بنجاح!",pleaseSaveFirst:"يرجى حفظ الصنف أولاً قبل الإرسال.",submittedSuccessfully:"تم إرسال الصنف بنجاح!",failedToSave:"فشل الحفظ",failedToSubmit:"فشل الإرسال",noItemsFound:"لم يتم العثور على عناصر",createFirstItem:"أنشئ عنصرك الأول",listTitle:"المخزون",listTotal:"الإجمالي: {{count}} عنصر{{count !== 1 ? 'اً' : ''}}",failedToLoadItems:"فشل تحميل العناصر.",listAddItem:"إضافة عنصر",export:{title:"تصدير العناصر",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} عنصر{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} عنصر{{count !== 1 ? 'اً' : ''}} في الصفحة الحالية",allWithFilters:"جميع السجلات (مع الفلاتر الحالية)",allWithFiltersCount:"تصدير جميع {{count}} عنصر{{count !== 1 ? 'اً' : ''}} المطابقة للفلاتر الحالية",csvDesc:"قيم مفصولة بفاصلة",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة التعيين للافتراضي",columnsSelected:"{{count}} عمود{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exportingPage:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} من الصفحة الحالية",exportingAll:"جاري تصدير جميع {{count}} صف{{count !== 1 ? 'اً' : ''}}"}},eE={title:"التذاكر",issueDetails:"تفاصيل التذكرة",newIssue:"تذكرة جديدة",addIssue:"إضافة تذكرة جديدة",issueId:"معرف التذكرة",subject:"الموضوع",raisedBy:"أُبلغ بها",contact:"جهة الاتصال",issueType:"نوع التذكرة",openingDate:"تاريخ الفتح",resolutionDate:"تاريخ الحل",resolvedBy:"تم الحل بواسطة",firstRespondedOn:"أول رد في",resolutionDetails:"تفاصيل الحل",selectIssue:"اختر التذكرة",allPriorities:"أي أولوية",allCompanies:"جميع الشركات",viewDetails:"عرض التفاصيل",editIssue:"تعديل التذكرة",deleteIssue:"حذف التذكرة",enterSubject:"أدخل موضوع التذكرة",selectPriority:"اختر الأولوية",selectIssueType:"اختر نوع التذكرة",describeIssue:"صف التذكرة بالتفصيل...",contactInformation:"معلومات الاتصال",createNewIssue:"إنشاء تذكرة دعم جديدة",resolution:"الحل",describeResolution:"صف كيف تم حل التذكرة...",selectCompany:"اختر الشركة",statusInformation:"معلومات الحالة",currentStatus:"الحالة الحالية",timeline:"الجدول الزمني",loadingIssues:"جاري تحميل التذاكر...",errorLoadingIssues:"خطأ في تحميل التذاكر",deleteConfirmMessage:"هل أنت متأكد من حذف هذه التذكرة؟ لا يمكن التراجع عن هذا الإجراء.",deletedSuccessfully:"تم حذف التذكرة بنجاح!",listTitle:"تذاكر الدعم",listTotal:"الإجمالي",listSelected:"محدد",statsTotalIssues:"إجمالي التذاكر",statsOpen:"مفتوحة",statsResolved:"محلولة",statsClosed:"مغلقة",export:{title:"تصدير التذاكر",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} تذكرة محددة",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} تذكرة في الصفحة الحالية",allWithFilters:"جميع السجلات (مع المرشحات الحالية)",allWithFiltersCount:"تصدير كل {{count}} تذكرة مطابقة للمرشحات",exportFormat:"تنسيق التصدير",csv:"CSV",csvDesc:"قيم مفصولة بفواصل",excel:"Excel",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة إلى الافتراضي",columnsSelected:"{{count}} عمود محدد",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"تصدير {{count}} صف محدد",exportingPage:"تصدير {{count}} صف من الصفحة الحالية",exportingAll:"تصدير كل {{count}} صف"},status:{open:"مفتوحة",replied:"تم الرد",on_hold:"قيد الانتظار",resolved:"محلولة",closed:"مغلقة"},priority:{low:"منخفضة",medium:"متوسطة",high:"عالية",critical:"حرجة"}},tE={title:"المستخدمون",userDetails:"تفاصيل المستخدم",newUser:"مستخدم جديد",addUser:"إضافة مستخدم جديد",searchUsers:"بحث عن مستخدمين...",manageUsers:"إدارة حسابات المستخدمين والصلاحيات",noUsersFound:"لم يتم العثور على مستخدمين",tryAdjustingSearch:"حاول تعديل مصطلحات البحث.",noUsersAvailable:"لا يوجد مستخدمون متاحون.",backToDashboard:"العودة إلى لوحة التحكم",refresh:"تحديث",active:"نشط",inactive:"غير نشط",noEmail:"لا يوجد بريد إلكتروني",created:"تاريخ الإنشاء"},rE={title:"الفعاليات",eventDetails:"تفاصيل الفعالية",newEvent:"فعالية جديدة",addEvent:"إضافة فعالية",upcomingEvents:"الفعاليات القادمة",eventsFromFrappe:"فعاليات من نظام Frappe",noEventsFound:"لم يتم العثور على فعاليات",noEventsScheduled:"لا توجد فعاليات مجدولة حالياً.",refreshEvents:"تحديث الفعاليات"},aE={previous:"السابق",next:"التالي",goTo:"انتقل إلى",go:"انتقال",page:"صفحة",showingToOf:"عرض {{start}} إلى {{end}} من {{total}} {{label}}",showingTo:"عرض {{start}} إلى {{end}} {{label}}",items:"أصناف",assets:"أصول",workOrders:"أوامر عمل",issues:"تذاكر",teams:"فرق",inspections:"عمليات تفتيش",plans:"خطط"},sE={loading:"جاري التحميل...",noResultsFound:"لم يتم العثور على نتائج",createNewDoctype:"إنشاء {{doctype}} جديد",selectLabel:"اختر {{label}}"},nE={loadingSupportPlans:"جاري تحميل خطط الدعم...",errorLoadingSupportPlans:"خطأ في تحميل خطط الدعم",deleteConfirmMessage:"هل أنت متأكد من حذف خطة الدعم هذه؟ لا يمكن التراجع عن هذا الإجراء.",planId:"معرف الخطة",deletedSuccessfully:"تم حذف خطة الدعم بنجاح!",deleteSupportPlan:"حذف خطة الدعم",noSupportPlansFound:"لم يتم العثور على خطط دعم",createFirstSupportPlan:"أنشئ أول خطة دعم",table:{planName:"اسم الخطة",type:"النوع",frequency:"التكرار",contractValue:"قيمة العقد",warrantyStatus:"حالة الضمان",contractStatus:"حالة العقد"},status:{active:"نشط",expired:"منتهي",pending:"قيد الانتظار",terminated:"منتهي مبكرًا"},statusLabel:{warrantyPrefix:"ض:",contractPrefix:"ع:"},viewDetails:"عرض خطة الدعم",editSupportPlan:"تعديل خطة الدعم",listTitle:"خطط الدعم",statsTotalPlans:"إجمالي الخطط",statsContracts:"العقود",statsWarranties:"الضمانات",statsActive:"نشطة",export:{title:"تصدير خطط الدعم",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} خطة دعم محددة",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} خطة دعم في الصفحة الحالية",allWithFilters:"جميع السجلات (مع المرشحات الحالية)",allWithFiltersCount:"تصدير كل {{count}} خطة دعم مطابقة للمرشحات",exportFormat:"تنسيق التصدير",csv:"CSV",csvDesc:"قيم مفصولة بفواصل",excel:"Excel",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة إلى الافتراضي",columnsSelected:"{{count}} عمود محدد",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"تصدير {{count}} صف محدد",exportingPage:"تصدير {{count}} صف من الصفحة الحالية",exportingAll:"تصدير كل {{count}} صف"}},iE={title:"عمليات التفتيش",loadingInspections:"جاري تحميل عمليات التفتيش...",errorLoadingInspections:"خطأ في تحميل عمليات التفتيش",deleteConfirmMessage:"هل أنت متأكد من حذف عملية التفتيش هذه؟ لا يمكن التراجع عن هذا الإجراء.",inspectionId:"معرف التفتيش",deleteInspection:"حذف التفتيش",deletedSuccessfully:"تم حذف التفتيش بنجاح!",noInspectionsFound:"لم يتم العثور على عمليات تفتيش",createFirstInspection:"أنشئ أول عملية تفتيش",type:"نوع التفتيش",workflowStateHeader:"حالة سير العمل",targetDate:"تاريخ الاستهداف",requestedBy:"طُلِبت بواسطة",linkedWorkOrder:"أمر العمل المرتبط",savedFilters:"المرشحات المحفوظة",newInspection:"تفتيش جديد",inspectionReport:"تقرير التفتيش",technicalDepartment:"القسم الفني",filterStatus:"الحالة",filterWorkflow:"سير العمل",filterType:"النوع",filterWorkOrder:"أمر العمل",filterDepartment:"القسم",selectWorkOrder:"اختر أمر العمل",selectDepartment:"اختر القسم",stats:{draft:"مسودة",pendingApproval:"بانتظار الموافقة",closed:"مغلقة"},status:{open:"مفتوحة",in_progress:"قيد التنفيذ",pending_review:"بانتظار المراجعة",closed:"مغلقة"},workflowState:{draft:"مسودة",sent_to_work_control:"مرسل إلى التحكم بالعمل",sent_to_technician:"مرسل إلى الفني",sent_to_supervisor:"مرسلة إلى المشرف",closed:"مغلقة"},typeMap:{inspection:"تفتيش",safety_inspection:"تفتيش سلامة"},viewDetails:"عرض التفاصيل",editInspection:"تعديل التفتيش",export:{title:"تصدير عمليات التفتيش",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} عملية تفتيش محددة",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} عملية تفتيش في الصفحة الحالية",allWithFilters:"جميع السجلات (مع المرشحات الحالية)",allWithFiltersCount:"تصدير كل {{count}} عملية تفتيش مطابقة للمرشحات",exportFormat:"تنسيق التصدير",csv:"CSV",csvDesc:"قيم مفصولة بفواصل",excel:"Excel",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة إلى الافتراضي",columnsSelected:"{{count}} عمود محدد",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"تصدير {{count}} صف محدد",exportingPage:"تصدير {{count}} صف من الصفحة الحالية",exportingAll:"تصدير كل {{count}} صف",inspectionId:"معرف التفتيش",inspectionType:"نوع التفتيش",status:"الحالة",workflowState:"حالة سير العمل",inspectionDate:"تاريخ التفتيش",targetClosureDate:"تاريخ الإغلاق المستهدف",requestedBy:"طُلِبت بواسطة",technicalDepartment:"القسم الفني",linkedWorkOrder:"أمر العمل المرتبط",observationNote:"ملاحظة الملاحظة",technicalResponse:"الرد الفني",createdOn:"تاريخ الإنشاء",modifiedOn:"تاريخ التعديل",createdBy:"أنشئ بواسطة"},detail:{loadingDetails:"جاري تحميل تفاصيل التفتيش...",errorLoading:"خطأ في تحميل التفتيش",backToList:"العودة إلى التفتيشات",newInspection:"تفتيش جديد",inspectionDetails:"تفاصيل التفتيش",createNewRecord:"إنشاء سجل تفتيش جديد",cancelInspection:"إلغاء التفتيش",cancelConfirmMessage:"هل أنت متأكد أنك تريد إلغاء هذا التفتيش؟ سيتم تمييز التفتيش كملغى ويمكنك حذفه بعد ذلك إذا لزم الأمر.",noGoBack:"لا، تراجع",yesCancel:"نعم، إلغاء",cancelling:"جاري الإلغاء...",selectType:"اختر النوع",workOrderType:"نوع أمر العمل",selectWorkOrderType:"اختر نوع أمر العمل",techniciansAvailable:"{{count}} فني/فنيين متاح لهذا النوع",selectDepartment:"اختر القسم",selectLocation:"اختر الموقع",extensionNo:"رقم الامتداد *",selectExtension:"اختر الامتداد",inspectionDate:"تاريخ التفتيش",targetClosureDate:"تاريخ الإغلاق المستهدف",cannotBeInPast:"لا يمكن أن يكون في الماضي",cannotBeEarlier:"لا يمكن أن يكون أقدم من تاريخ التفتيش أو في الماضي",openingAttachment:"مرفق الافتتاح",closingAttachment:"مرفق الإغلاق",uploading:"جاري الرفع...",uploadFile:"رفع ملف",uploadClosingFile:"رفع ملف الإغلاق",noAttachment:"لا يوجد مرفق",removeAttachment:"إزالة المرفق",assignmentInformation:"معلومات التعيين",requestedBy:"طُلِبت بواسطة",selectUser:"اختر المستخدم",technicalDepartment:"القسم الفني",assignedTechnician:"الفني المعيّن",selectTechnician:"اختر الفني",selectWOTypeFirst:"اختر نوع أمر العمل أولاً لتصفية الفنيين",noTechniciansForType:"لم يتم العثور على فنيين لهذا النوع من أمر العمل",notesAndResponse:"الملاحظات والرد",observationNote:"ملاحظة الملاحظة",placeholderObservation:"أدخل ملاحظات الملاحظة...",technicalResponse:"الرد الفني",placeholderTechnicalResponse:"أدخل الرد الفني...",linkedWorkOrder:"أمر العمل المرتبط",linkedCorrectiveWO:"أمر العمل التصحيحي المرتبط",readOnly:"للقراءة فقط",viewWorkOrder:"عرض أمر العمل",noLinkedWorkOrder:"لا يوجد أمر عمل مرتبط",workflowActions:"إجراءات سير العمل",workflowProgress:"تقدم سير العمل",workControl:"مراقبة العمل",technicianStep:"الفني",supervisorStep:"المشرف",draftStep:"مسودة",closedStep:"مغلق",statusInfo:"معلومات الحالة",documentStatus:"حالة المستند",woType:"نوع أمر العمل",assignedTo:"معيّن إلى",submitted:"مُرسل",cancelled:"ملغى",added:"مضاف:",removed:"مُزال:",modified:"مُعدّل:",items:"عنصر/عناصر",rows:"صف/صفوف",activityLog:"سجل النشاط",activityLogRefreshed:"تم تحديث سجل النشاط",refreshActivityLog:"تحديث سجل النشاط",noChangesRecorded:"لم يتم تسجيل أي تغييرات بعد",createdThisInspection:"أنشأ هذا التفتيش",changedFrom:"تم التغيير من",documentUpdated:"تم تحديث المستند",showLess:"عرض أقل",showAll:"عرض الكل",department:"القسم",location:"الموقع",inspectionType:"نوع التفتيش",status:"الحالة",removeClosingAttachment:"إزالة مرفق الإغلاق",noClosingAttachment:"لا يوجد مرفق إغلاق",cancelledSuccessfully:"تم إلغاء التفتيش بنجاح!",failedToCancel:"فشل الإلغاء: {{error}}",failedToSave:"فشل الحفظ: {{error}}",failedToDelete:"فشل الحذف: {{error}}",targetClosureMandatory:"تاريخ الإغلاق المستهدف إلزامي للحفظ.",attachmentMandatory:"المرفق إلزامي للحفظ.",extensionMandatory:"رقم الامتداد إلزامي للحفظ.",createdSuccessfully:"تم إنشاء التفتيش بنجاح!",updatedSuccessfully:"تم تحديث التفتيش بنجاح!",deletedSuccessfully:"تم حذف التفتيش بنجاح!",inspectionDateInPast:"لا يمكن أن يكون تاريخ التفتيش في الماضي.",targetClosureEarlier:"لا يمكن أن يكون تاريخ الإغلاق المستهدف أقدم من تاريخ التفتيش.",targetClosureInPast:"لا يمكن أن يكون تاريخ الإغلاق المستهدف في الماضي.",fileSizeExceeds:"حجم الملف يتجاوز حد 10 ميجابايت",fileUploadedSuccess:"تم رفع الملف بنجاح",failedToUpload:"فشل رفع الملف",closingAttachmentRemoved:"تم إزالة مرفق الإغلاق",closingAttachmentUploadedSuccess:"تم رفع مرفق الإغلاق بنجاح",failedToUploadClosing:"فشل رفع مرفق الإغلاق",attachmentRemoved:"تم إزالة المرفق",systemManager:"مدير النظام",workflow:"سير العمل"}},oE={title:"الخريطة النشطة",loading:"جاري تحميل بيانات الخريطة...",hospital:"المستشفى",departmentWoType:"القسم (نوع أمر العمل)",selectHospital:"اختر المستشفى",selectDepartment:"اختر القسم",clearDepartmentHint:"مسح القسم للتصفية حسب المستشفى",clearHospitalHint:"مسح المستشفى للتصفية حسب القسم",clearFilters:"مسح المرشحات",legendHospital:"المستشفى",legendDepartment:"القسم (نوع أمر العمل)",legendHasUrgent:"يوجد أوامر عمل عاجلة",totalAssets:"إجمالي الأصول",workOrderStatus:"حالة أمر العمل",status:"الحالة",count:"العدد",normal:"عادي",urgent:"عاجل",open:"مفتوح",workInProgress:"قيد التنفيذ",pendingReview:"بانتظار المراجعة",completed:"مكتمل",closed:"مغلق",preventiveMaintenance:"الصيانة الوقائية",planned:"مخطط",overdue:"متأخر",viewAssets:"عرض الأصول",viewWorkOrders:"عرض أوامر العمل",viewAllWorkOrders:"عرض جميع أوامر العمل",showingWorkOrdersByType:"عرض أوامر العمل حسب النوع",deptWoType:"القسم / نوع أمر العمل",tooltipDept:"قسم",tooltipHospital:"مستشفى",tooltipUrgent:"عاجل! ",normalWos:"أوامر عادية:",urgentWos:"أوامر عاجلة:",closedWos:"أوامر مغلقة:",plannedPms:"صيانة مخطط لها:",completedPms:"صيانة مكتملة:",assets:"الأصول"},lE={title:"تقويم الصيانة",viewType:"نوع العرض",maintenanceLog:"سجل الصيانة",ppmPlanner:"مخطط الصيانة الوقائية",filters:"المرشحات",yearlyMap:"الخريطة السنوية",yearlyMapTitle:"عرض خريطة مخطط الصيانة الوقائية السنوية",mapShort:"خريطة",hospital:"المستشفى",selectHospital:"اختر المستشفى",department:"القسم",allDepartments:"جميع الأقسام",status:"الحالة",allStatuses:"جميع الحالات",planned:"مخطط",completed:"مكتمل",overdue:"متأخر",cancelled:"ملغى",assignedTo:"مكلف إلى",allTechnicians:"جميع الفنيين",clearFilters:"مسح المرشحات",months:{january:"يناير",february:"فبراير",march:"مارس",april:"أبريل",may:"مايو",june:"يونيو",july:"يوليو",august:"أغسطس",september:"سبتمبر",october:"أكتوبر",november:"نوفمبر",december:"ديسمبر"},days:{sun:"الأحد",mon:"الإثنين",tue:"الثلاثاء",wed:"الأربعاء",thu:"الخميس",fri:"الجمعة",sat:"السبت"},previousMonth:"الشهر السابق",today:"اليوم",nextMonth:"الشهر التالي",loadingLogs:"جاري تحميل سجلات الصيانة...",loadingPpm:"جاري تحميل مخططات الصيانة الوقائية...",overdueInTooltip:"(متأخر)",clickToViewDetails:"انقر لعرض التفاصيل",clickToViewPpmPlanner:"انقر لعرض مخطط الصيانة الوقائية",ppmPlannerDefault:"مخطط الصيانة الوقائية",legendCompleted:"مكتمل",legendPlanned:"مخطط",legendOverdue:"متأخر",legendToday:"اليوم",summaryPpmPlanners:"مخططات الصيانة الوقائية"},cE={plannedPms:"صيانة مخطط لها",completedPms:"صيانة مكتملة",overduePms:"صيانة متأخرة"},dE={common:L5,sidebar:B5,dataImport:U5,locations:z5,login:W5,dashboard:H5,commonFields:$5,filters:V5,listPages:G5,assets:Y5,workOrders:q5,maintenance:X5,ppm:Z5,ppmPlanner:K5,exportModal:J5,items:Q5,issues:eE,users:tE,events:rE,pagination:aE,linkField:sE,supportPlans:nE,inspections:iE,activeMap:oE,maintenanceCalendarPage:lE,assetDetail:cE},Or={BASE_URL:"https://kfsh-dammam-asm.seeraarabia.com",ENDPOINTS:{USER_DETAILS:"/api/method/asset_lite.api.custom_api.get_user_details",DOCTYPE_RECORDS:"/api/method/asset_lite.api.custom_api.get_doctype_records",DASHBOARD_STATS:"/api/method/asset_lite.api.custom_api.get_dashboard_stats",DASHBOARD_NUMBER_CARDS:"/api/method/asset_lite.api.dashboard_api.get_number_cards",DASHBOARD_LIST_CHARTS:"/api/method/asset_lite.api.dashboard_api.list_dashboard_charts",DASHBOARD_CHART_DATA:"/api/method/asset_lite.api.dashboard_api.get_dashboard_chart_data",DASHBOARD_REPAIR_COST:"/api/method/asset_lite.api.dashboard_api.get_repair_cost_by_item",TECHNICIAN_WORKING_HOURS:"/api/method/asset_lite.api.dashboard_api.get_technician_working_hours",TECHNICIAN_WORK_SUMMARY:"/api/method/asset_lite.api.dashboard_api.get_technician_work_summary",DASHBOARD_WO_METRICS:"/api/method/asset_lite.api.dashboard_api.get_dashboard_work_order_metrics",DASHBOARD_ASSET_STATUS:"/api/method/asset_lite.api.dashboard_api.get_asset_device_status_summary",DASHBOARD_MAINTENANCE_INSIGHTS:"/api/method/asset_lite.api.dashboard_api.get_maintenance_insights",KYC_DETAILS:"/api/method/asset_lite.api.custom_api.get_kyc_details",GET_ASSETS:"/api/method/asset_lite.api.asset_api.get_assets",GET_ASSET_DETAILS:"/api/method/asset_lite.api.asset_api.get_asset_details",CREATE_ASSET:"/api/method/asset_lite.api.asset_api.create_asset",UPDATE_ASSET:"/api/method/asset_lite.api.asset_api.update_asset",DELETE_ASSET:"/api/method/asset_lite.api.asset_api.delete_asset",GET_ASSET_FILTERS:"/api/method/asset_lite.api.asset_api.get_asset_filters",GET_ASSET_STATS:"/api/method/asset_lite.api.asset_api.get_asset_stats",SEARCH_ASSETS:"/api/method/asset_lite.api.asset_api.search_assets",SUBMIT_ASSET:"/api/method/asset_lite.api.asset_api.submit_asset",CANCEL_ASSET:"/api/method/asset_lite.api.asset_api.cancel_asset",GET_WORK_ORDERS:"/api/method/asset_lite.api.work_order_api.get_work_orders",GET_WORK_ORDER_DETAILS:"/api/method/asset_lite.api.work_order_api.get_work_order_details",CREATE_WORK_ORDER:"/api/method/asset_lite.api.work_order_api.create_work_order",UPDATE_WORK_ORDER:"/api/method/asset_lite.api.work_order_api.update_work_order",DELETE_WORK_ORDER:"/api/method/asset_lite.api.work_order_api.delete_work_order",UPDATE_WORK_ORDER_STATUS:"/api/method/asset_lite.api.work_order_api.update_work_order_status",GET_WORK_ORDER_FEEDBACK:"/api/method/asset_lite.api.work_order_api.get_work_order_feedback",SAVE_WORK_ORDER_FEEDBACK:"/api/method/asset_lite.api.work_order_api.save_work_order_feedback",GET_ASSET_MAINTENANCE_LOGS:"/api/method/asset_lite.api.asset_maintenance_api.get_asset_maintenance_logs",GET_ASSET_MAINTENANCE_LOG_DETAILS:"/api/method/asset_lite.api.asset_maintenance_api.get_asset_maintenance_log_details",CREATE_ASSET_MAINTENANCE_LOG:"/api/method/asset_lite.api.asset_maintenance_api.create_asset_maintenance_log",UPDATE_ASSET_MAINTENANCE_LOG:"/api/method/asset_lite.api.asset_maintenance_api.update_asset_maintenance_log",DELETE_ASSET_MAINTENANCE_LOG:"/api/method/asset_lite.api.asset_maintenance_api.delete_asset_maintenance_log",UPDATE_MAINTENANCE_STATUS:"/api/method/asset_lite.api.asset_maintenance_api.update_maintenance_status",GET_MAINTENANCE_LOGS_BY_ASSET:"/api/method/asset_lite.api.asset_maintenance_api.get_maintenance_logs_by_asset",GET_OVERDUE_MAINTENANCE_LOGS:"/api/method/asset_lite.api.asset_maintenance_api.get_overdue_maintenance_logs",GET_ASSET_MAINTENANCES:"/api/method/asset_lite.api.ppm_api.get_asset_maintenances",GET_ASSET_MAINTENANCE_DETAILS:"/api/method/asset_lite.api.ppm_api.get_asset_maintenance_details",CREATE_ASSET_MAINTENANCE:"/api/method/asset_lite.api.ppm_api.create_asset_maintenance",UPDATE_ASSET_MAINTENANCE:"/api/method/asset_lite.api.ppm_api.update_asset_maintenance",DELETE_ASSET_MAINTENANCE:"/api/method/asset_lite.api.ppm_api.delete_asset_maintenance",GET_MAINTENANCE_TASKS:"/api/method/asset_lite.api.ppm_api.get_maintenance_tasks",GET_SERVICE_COVERAGE:"/api/method/asset_lite.api.ppm_api.get_service_coverage",GET_MAINTENANCES_BY_ASSET:"/api/method/asset_lite.api.ppm_api.get_maintenances_by_asset",GET_ACTIVE_SERVICE_CONTRACTS:"/api/method/asset_lite.api.ppm_api.get_active_service_contracts",LOGIN:"/api/method/login",LOGOUT:"/api/method/logout",CSRF_TOKEN:"/api/method/frappe.sessions.get_csrf_token",UPLOAD_FILE:"/api/method/upload_file",GET_USER_PERMISSIONS:"/api/method/asset_lite.api.userperm_api.get_user_permissions",GET_PERMISSION_FILTERS:"/api/method/asset_lite.api.userperm_api.get_permission_filters",GET_ALLOWED_VALUES:"/api/method/asset_lite.api.userperm_api.get_allowed_values",CHECK_DOCUMENT_ACCESS:"/api/method/asset_lite.api.userperm_api.check_document_access",GET_CONFIGURED_DOCTYPES:"/api/method/asset_lite.api.userperm_api.get_configured_doctypes",GET_USER_DEFAULTS:"/api/method/asset_lite.api.userperm_api.get_user_defaults"},DEFAULT_HEADERS:{"Content-Type":"application/json",Accept:"application/json"},TIMEOUT:parseInt("60000")};class uE{constructor(){Ii(this,"baseURL");Ii(this,"endpoints");Ii(this,"defaultHeaders");Ii(this,"timeout");this.baseURL=Or.BASE_URL,this.endpoints=Or.ENDPOINTS,this.defaultHeaders=Or.DEFAULT_HEADERS,this.timeout=Or.TIMEOUT}getCSRFToken(){return me(this,null,function*(){try{if(typeof window!="undefined"&&window.csrf_token)return window.csrf_token;const r=localStorage.getItem("user"),a=localStorage.getItem("frappe_session_id");if(!r&&!a)return null;const s=yield fetch(`${this.baseURL}${this.endpoints.CSRF_TOKEN}`,{method:"GET",headers:{Accept:"application/json"},credentials:"include"});return s.ok&&(yield s.json()).message||null}catch(r){return null}})}apiCall(s){return me(this,arguments,function*(r,a={}){const n=`${this.baseURL}${r}`,i=Te({method:"GET",headers:Te(Te({},this.defaultHeaders),a.headers)},a),c=yield this.getCSRFToken();c&&(i.headers["X-Frappe-CSRF-Token"]=c);try{const u=new AbortController,h=setTimeout(()=>u.abort(),this.timeout),g=yield fetch(n,Ke(Te({},i),{credentials:"include",signal:u.signal}));if(clearTimeout(h),!g.ok){const w=yield g.json().catch(()=>({}));throw new vd(w.error||`HTTP error! status: ${g.status}`,g.status)}const y=yield g.json();return y.message!==void 0?y.message:y}catch(u){throw u instanceof Error?(console.error("API call failed:",u),new vd(u.message)):u}})}login(r){return me(this,null,function*(){const a=new FormData;a.append("usr",r.email),a.append("pwd",r.password);const s=`${this.baseURL}${this.endpoints.LOGIN}`;try{const n=new AbortController,i=setTimeout(()=>n.abort(),this.timeout),c=yield fetch(s,{method:"POST",headers:{Accept:"application/json"},body:a,credentials:"include",signal:n.signal});if(clearTimeout(i),!c.ok){const h=yield c.json().catch(()=>({})),g="Invalid credentials. Please try again.";throw new vd(g,c.status)}const u=yield c.json();return typeof u.message=="string"&&u.message==="Logged In"?{message:{full_name:u.full_name,user_id:u.user||u.email,home_page:u.home_page,sid:u.sid}}:u.message&&typeof u.message=="object"?{message:u.message}:u.full_name||u.user?{message:u}:{message:u}}catch(n){throw n instanceof Error?new vd("Login failed. Please try again."):n}})}getCSRFTokenForGuest(){return me(this,null,function*(){const r=typeof window!="undefined"?window:void 0;if(r!=null&&r.csrf_token)return r.csrf_token;try{const a=yield fetch(`${this.baseURL}${this.endpoints.CSRF_TOKEN}`,{method:"GET",headers:{Accept:"application/json"},credentials:"include"});if(a.ok)return(yield a.json()).message||null}catch(a){}return null})}logout(){return me(this,null,function*(){yield this.apiCall(this.endpoints.LOGOUT,{method:"POST"})})}getUserDetails(r){return me(this,null,function*(){const a=r?`?user_id=${r}`:"";return this.apiCall(`${this.endpoints.USER_DETAILS}${a}`)})}getDoctypeRecords(r,a,s,n=20,i=0){return me(this,null,function*(){const c=new URLSearchParams({doctype:r,limit:n.toString(),offset:i.toString()});return a&&c.append("filters",JSON.stringify(a)),s&&c.append("fields",JSON.stringify(s)),this.apiCall(`${this.endpoints.DOCTYPE_RECORDS}?${c}`)})}getDashboardStats(){return me(this,null,function*(){return this.apiCall(this.endpoints.DASHBOARD_STATS)})}getNumberCards(){return me(this,null,function*(){return this.apiCall(this.endpoints.DASHBOARD_NUMBER_CARDS)})}listDashboardCharts(r=!0){return me(this,null,function*(){const a=new URLSearchParams({public_only:r?"1":"0"});return this.apiCall(`${this.endpoints.DASHBOARD_LIST_CHARTS}?${a}`)})}getDashboardChartData(r,a){return me(this,null,function*(){const s=new URLSearchParams({chart_name:r});return a&&s.append("report_filters",JSON.stringify(a)),this.apiCall(`${this.endpoints.DASHBOARD_CHART_DATA}?${s}`)})}getDashboardWorkOrderMetrics(r){return me(this,null,function*(){const a=new URLSearchParams;r&&a.append("filters",JSON.stringify(r));const s=a.toString();return this.apiCall(`${this.endpoints.DASHBOARD_WO_METRICS}${s?`?${s}`:""}`)})}getAssetDeviceStatusSummary(r){return me(this,null,function*(){const a=new URLSearchParams;r&&a.append("filters",JSON.stringify(r));const s=a.toString();return this.apiCall(`${this.endpoints.DASHBOARD_ASSET_STATUS}${s?`?${s}`:""}`)})}getMaintenanceInsights(r){return me(this,null,function*(){const a=new URLSearchParams;r&&a.append("filters",JSON.stringify(r));const s=a.toString();return this.apiCall(`${this.endpoints.DASHBOARD_MAINTENANCE_INSIGHTS}${s?`?${s}`:""}`)})}getKycDetails(){return me(this,null,function*(){return this.apiCall(this.endpoints.KYC_DETAILS)})}uploadFile(r){return me(this,null,function*(){const a=new FormData;return a.append("file",r.file),a.append("doctype",r.doctype),a.append("docname",r.docname),a.append("fieldname",r.fieldname),this.apiCall(this.endpoints.UPLOAD_FILE,{method:"POST",headers:{},body:a})})}getUserPermissions(r){return me(this,null,function*(){const a=r?`?user=${encodeURIComponent(r)}`:"";return this.apiCall(`${this.endpoints.GET_USER_PERMISSIONS}${a}`)})}getPermissionFilters(r,a){return me(this,null,function*(){const s=new URLSearchParams({target_doctype:r});return a&&s.append("user",a),this.apiCall(`${this.endpoints.GET_PERMISSION_FILTERS}?${s}`)})}getAllowedValues(r,a){return me(this,null,function*(){const s=new URLSearchParams({allow_doctype:r});return a&&s.append("user",a),this.apiCall(`${this.endpoints.GET_ALLOWED_VALUES}?${s}`)})}checkDocumentAccess(r,a,s){return me(this,null,function*(){const n=new URLSearchParams({doctype:r,docname:a});return s&&n.append("user",s),this.apiCall(`${this.endpoints.CHECK_DOCUMENT_ACCESS}?${n}`)})}getConfiguredDoctypes(){return me(this,null,function*(){return this.apiCall(this.endpoints.GET_CONFIGURED_DOCTYPES)})}getUserDefaults(r){return me(this,null,function*(){const a=r?`?user=${encodeURIComponent(r)}`:"";return this.apiCall(`${this.endpoints.GET_USER_DEFAULTS}${a}`)})}isAuthenticated(){return!!localStorage.getItem("frappe_session_id")}getSessionId(){return localStorage.getItem("frappe_session_id")}setSessionId(r){localStorage.setItem("frappe_session_id",r)}}class vd extends Error{constructor(a,s,n){super(a);Ii(this,"status");Ii(this,"code");this.name="ApiError",this.status=s,this.code=n}}const Xt=new uE,Op=Object.freeze(Object.defineProperty({__proto__:null,ApiError:vd,default:Xt},Symbol.toStringTag,{value:"Module"}));function fE(e){return me(this,null,function*(){try{const r=yield Xt.getDoctypeRecords("Translation",{language:e},["source_text","translated_text","context"],1e4,0),a={};return r.records&&r.records.length>0&&r.records.forEach(s=>{const n=s.source_text,i=s.translated_text||n;if(s.context){const c=`${s.context}.${n}`;a[c]=i}else n.includes("."),a[n]=i}),a}catch(r){return console.error("Error fetching translations from Frappe:",r),{}}})}function hE(e){const r={};return Object.keys(e).forEach(a=>{if(a.includes(".")){const s=a.split(".");let n=r;for(let i=0;i0&&Zn.addResourceBundle("en","translation",r,!0,!0);const a=yield Yw("ar");Object.keys(a).length>0&&Zn.addResourceBundle("ar","translation",a,!0,!0),console.log("✓ Translations loaded from Frappe")}catch(e){console.warn("⚠ Could not load translations from Frappe, using static translations:",e)}})}Zn.on("initialized",()=>{Q1()});var qw="popstate";function mE(e={}){function r(s,n){let{pathname:i,search:c,hash:u}=s.location;return b1("",{pathname:i,search:c,hash:u},n.state&&n.state.usr||null,n.state&&n.state.key||"default")}function a(s,n){return typeof n=="string"?n:Nf(n)}return xE(r,a,null,e)}function Is(e,r){if(e===!1||e===null||typeof e=="undefined")throw new Error(r)}function _o(e,r){if(!e){typeof console!="undefined"&&console.warn(r);try{throw new Error(r)}catch(a){}}}function gE(){return Math.random().toString(36).substring(2,10)}function Xw(e,r){return{usr:e.state,key:e.key,idx:r}}function b1(e,r,a=null,s){return Ke(Te({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof r=="string"?J0(r):r),{state:a,key:r&&r.key||s||gE()})}function Nf({pathname:e="/",search:r="",hash:a=""}){return r&&r!=="?"&&(e+=r.charAt(0)==="?"?r:"?"+r),a&&a!=="#"&&(e+=a.charAt(0)==="#"?a:"#"+a),e}function J0(e){let r={};if(e){let a=e.indexOf("#");a>=0&&(r.hash=e.substring(a),e=e.substring(0,a));let s=e.indexOf("?");s>=0&&(r.search=e.substring(s),e=e.substring(0,s)),e&&(r.pathname=e)}return r}function xE(e,r,a,s={}){let{window:n=document.defaultView,v5Compat:i=!1}=s,c=n.history,u="POP",h=null,g=y();g==null&&(g=0,c.replaceState(Ke(Te({},c.state),{idx:g}),""));function y(){return(c.state||{idx:null}).idx}function w(){u="POP";let O=y(),M=O==null?null:O-g;g=O,h&&h({action:u,location:C.location,delta:M})}function E(O,M){u="PUSH";let R=b1(C.location,O,M);g=y()+1;let F=Xw(R,g),z=C.createHref(R);try{c.pushState(F,"",z)}catch(W){if(W instanceof DOMException&&W.name==="DataCloneError")throw W;n.location.assign(z)}i&&h&&h({action:u,location:C.location,delta:1})}function S(O,M){u="REPLACE";let R=b1(C.location,O,M);g=y();let F=Xw(R,g),z=C.createHref(R);c.replaceState(F,"",z),i&&h&&h({action:u,location:C.location,delta:0})}function A(O){return pE(O)}let C={get action(){return u},get location(){return e(n,c)},listen(O){if(h)throw new Error("A history only accepts one active listener");return n.addEventListener(qw,w),h=O,()=>{n.removeEventListener(qw,w),h=null}},createHref(O){return r(n,O)},createURL:A,encodeLocation(O){let M=A(O);return{pathname:M.pathname,search:M.search,hash:M.hash}},push:E,replace:S,go(O){return c.go(O)}};return C}function pE(e,r=!1){let a="http://localhost";typeof window!="undefined"&&(a=window.location.origin!=="null"?window.location.origin:window.location.href),Is(a,"No window.location.(origin|href) available to create URL");let s=typeof e=="string"?e:Nf(e);return s=s.replace(/ $/,"%20"),!r&&s.startsWith("//")&&(s=a+s),new URL(s,a)}function D4(e,r,a="/"){return yE(e,r,a,!1)}function yE(e,r,a,s){let n=typeof r=="string"?J0(r):r,i=dc(n.pathname||"/",a);if(i==null)return null;let c=R4(e);bE(c);let u=null;for(let h=0;u==null&&h{let y={relativePath:g===void 0?c.path||"":g,caseSensitive:c.caseSensitive===!0,childrenIndex:u,route:c};if(y.relativePath.startsWith("/")){if(!y.relativePath.startsWith(s)&&h)return;Is(y.relativePath.startsWith(s),`Absolute route path "${y.relativePath}" nested under path "${s}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),y.relativePath=y.relativePath.slice(s.length)}let w=ic([s,y.relativePath]),E=a.concat(y);c.children&&c.children.length>0&&(Is(c.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${w}".`),R4(c.children,r,E,w,h)),!(c.path==null&&!c.index)&&r.push({path:w,score:SE(w,c.index),routesMeta:E})};return e.forEach((c,u)=>{var h;if(c.path===""||!((h=c.path)!=null&&h.includes("?")))i(c,u);else for(let g of F4(c.path))i(c,u,!0,g)}),r}function F4(e){let r=e.split("/");if(r.length===0)return[];let[a,...s]=r,n=a.endsWith("?"),i=a.replace(/\?$/,"");if(s.length===0)return n?[i,""]:[i];let c=F4(s.join("/")),u=[];return u.push(...c.map(h=>h===""?i:[i,h].join("/"))),n&&u.push(...c),u.map(h=>e.startsWith("/")&&h===""?"/":h)}function bE(e){e.sort((r,a)=>r.score!==a.score?a.score-r.score:CE(r.routesMeta.map(s=>s.childrenIndex),a.routesMeta.map(s=>s.childrenIndex)))}var vE=/^:[\w-]+$/,wE=3,_E=2,kE=1,NE=10,jE=-2,Zw=e=>e==="*";function SE(e,r){let a=e.split("/"),s=a.length;return a.some(Zw)&&(s+=jE),r&&(s+=_E),a.filter(n=>!Zw(n)).reduce((n,i)=>n+(vE.test(i)?wE:i===""?kE:NE),s)}function CE(e,r){return e.length===r.length&&e.slice(0,-1).every((s,n)=>s===r[n])?e[e.length-1]-r[r.length-1]:0}function EE(e,r,a=!1){let{routesMeta:s}=e,n={},i="/",c=[];for(let u=0;u{if(y==="*"){let A=u[E]||"";c=i.slice(0,i.length-A.length).replace(/(.)\/+$/,"$1")}const S=u[E];return w&&!S?g[y]=void 0:g[y]=(S||"").replace(/%2F/g,"/"),g},{}),pathname:i,pathnameBase:c,pattern:e}}function TE(e,r=!1,a=!0){_o(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let s=[],n="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(c,u,h)=>(s.push({paramName:u,isOptional:h!=null}),h?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(s.push({paramName:"*"}),n+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?n+="\\/*$":e!==""&&e!=="/"&&(n+="(?:(?=\\/|$))"),[new RegExp(n,r?void 0:"i"),s]}function AE(e){try{return e.split("/").map(r=>decodeURIComponent(r).replace(/\//g,"%2F")).join("/")}catch(r){return _o(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${r}).`),e}}function dc(e,r){if(r==="/")return e;if(!e.toLowerCase().startsWith(r.toLowerCase()))return null;let a=r.endsWith("/")?r.length-1:r.length,s=e.charAt(a);return s&&s!=="/"?null:e.slice(a)||"/"}var OE=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,DE=e=>OE.test(e);function RE(e,r="/"){let{pathname:a,search:s="",hash:n=""}=typeof e=="string"?J0(e):e,i;if(a)if(DE(a))i=a;else{if(a.includes("//")){let c=a;a=a.replace(/\/\/+/g,"/"),_o(!1,`Pathnames cannot have embedded double slashes - normalizing ${c} -> ${a}`)}a.startsWith("/")?i=Kw(a.substring(1),"/"):i=Kw(a,r)}else i=r;return{pathname:i,search:ME(s),hash:PE(n)}}function Kw(e,r){let a=r.replace(/\/+$/,"").split("/");return e.split("/").forEach(n=>{n===".."?a.length>1&&a.pop():n!=="."&&a.push(n)}),a.length>1?a.join("/"):"/"}function Dp(e,r,a,s){return`Cannot include a '${e}' character in a manually specified \`to.${r}\` field [${JSON.stringify(s)}]. Please separate it out to the \`to.${a}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function FE(e){return e.filter((r,a)=>a===0||r.route.path&&r.route.path.length>0)}function ey(e){let r=FE(e);return r.map((a,s)=>s===r.length-1?a.pathname:a.pathnameBase)}function ty(e,r,a,s=!1){let n;typeof e=="string"?n=J0(e):(n=Te({},e),Is(!n.pathname||!n.pathname.includes("?"),Dp("?","pathname","search",n)),Is(!n.pathname||!n.pathname.includes("#"),Dp("#","pathname","hash",n)),Is(!n.search||!n.search.includes("#"),Dp("#","search","hash",n)));let i=e===""||n.pathname==="",c=i?"/":n.pathname,u;if(c==null)u=a;else{let w=r.length-1;if(!s&&c.startsWith("..")){let E=c.split("/");for(;E[0]==="..";)E.shift(),w-=1;n.pathname=E.join("/")}u=w>=0?r[w]:"/"}let h=RE(n,u),g=c&&c!=="/"&&c.endsWith("/"),y=(i||c===".")&&a.endsWith("/");return!h.pathname.endsWith("/")&&(g||y)&&(h.pathname+="/"),h}var ic=e=>e.join("/").replace(/\/\/+/g,"/"),IE=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),ME=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,PE=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function LE(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function BE(e){return e.map(r=>r.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var I4=["POST","PUT","PATCH","DELETE"];new Set(I4);var UE=["GET",...I4];new Set(UE);var Q0=_.createContext(null);Q0.displayName="DataRouter";var hg=_.createContext(null);hg.displayName="DataRouterState";_.createContext(!1);var M4=_.createContext({isTransitioning:!1});M4.displayName="ViewTransition";var zE=_.createContext(new Map);zE.displayName="Fetchers";var WE=_.createContext(null);WE.displayName="Await";var qo=_.createContext(null);qo.displayName="Navigation";var Uf=_.createContext(null);Uf.displayName="Location";var fl=_.createContext({outlet:null,matches:[],isDataRoute:!1});fl.displayName="Route";var ry=_.createContext(null);ry.displayName="RouteError";function HE(e,{relative:r}={}){Is(eu(),"useHref() may be used only in the context of a component.");let{basename:a,navigator:s}=_.useContext(qo),{hash:n,pathname:i,search:c}=zf(e,{relative:r}),u=i;return a!=="/"&&(u=i==="/"?a:ic([a,i])),s.createHref({pathname:u,search:c,hash:n})}function eu(){return _.useContext(Uf)!=null}function hl(){return Is(eu(),"useLocation() may be used only in the context of a component."),_.useContext(Uf).location}var P4="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function L4(e){_.useContext(qo).static||_.useLayoutEffect(e)}function Na(){let{isDataRoute:e}=_.useContext(fl);return e?r8():$E()}function $E(){Is(eu(),"useNavigate() may be used only in the context of a component.");let e=_.useContext(Q0),{basename:r,navigator:a}=_.useContext(qo),{matches:s}=_.useContext(fl),{pathname:n}=hl(),i=JSON.stringify(ey(s)),c=_.useRef(!1);return L4(()=>{c.current=!0}),_.useCallback((h,g={})=>{if(_o(c.current,P4),!c.current)return;if(typeof h=="number"){a.go(h);return}let y=ty(h,JSON.parse(i),n,g.relative==="path");e==null&&r!=="/"&&(y.pathname=y.pathname==="/"?r:ic([r,y.pathname])),(g.replace?a.replace:a.push)(y,g.state,g)},[r,a,i,n,e])}_.createContext(null);function ml(){let{matches:e}=_.useContext(fl),r=e[e.length-1];return r?r.params:{}}function zf(e,{relative:r}={}){let{matches:a}=_.useContext(fl),{pathname:s}=hl(),n=JSON.stringify(ey(a));return _.useMemo(()=>ty(e,JSON.parse(n),s,r==="path"),[e,n,s,r])}function VE(e,r){return B4(e,r)}function B4(e,r,a,s,n){var R;Is(eu(),"useRoutes() may be used only in the context of a component.");let{navigator:i}=_.useContext(qo),{matches:c}=_.useContext(fl),u=c[c.length-1],h=u?u.params:{},g=u?u.pathname:"/",y=u?u.pathnameBase:"/",w=u&&u.route;{let F=w&&w.path||"";U4(g,!w||F.endsWith("*")||F.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${g}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. Please change the parent to .`)}let E=hl(),S;if(r){let F=typeof r=="string"?J0(r):r;Is(y==="/"||((R=F.pathname)==null?void 0:R.startsWith(y)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${y}" but pathname "${F.pathname}" was given in the \`location\` prop.`),S=F}else S=E;let A=S.pathname||"/",C=A;if(y!=="/"){let F=y.replace(/^\//,"").split("/");C="/"+A.replace(/^\//,"").split("/").slice(F.length).join("/")}let O=D4(e,{pathname:C});_o(w||O!=null,`No routes matched location "${S.pathname}${S.search}${S.hash}" `),_o(O==null||O[O.length-1].route.element!==void 0||O[O.length-1].route.Component!==void 0||O[O.length-1].route.lazy!==void 0,`Matched leaf route at location "${S.pathname}${S.search}${S.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let M=ZE(O&&O.map(F=>Object.assign({},F,{params:Object.assign({},h,F.params),pathname:ic([y,i.encodeLocation?i.encodeLocation(F.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:F.pathname]),pathnameBase:F.pathnameBase==="/"?y:ic([y,i.encodeLocation?i.encodeLocation(F.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:F.pathnameBase])})),c,a,s,n);return r&&M?_.createElement(Uf.Provider,{value:{location:Te({pathname:"/",search:"",hash:"",state:null,key:"default"},S),navigationType:"POP"}},M):M}function GE(){let e=t8(),r=LE(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),a=e instanceof Error?e.stack:null,s="rgba(200,200,200, 0.5)",n={padding:"0.5rem",backgroundColor:s},i={padding:"2px 4px",backgroundColor:s},c=null;return console.error("Error handled by React Router default ErrorBoundary:",e),c=_.createElement(_.Fragment,null,_.createElement("p",null,"💿 Hey developer 👋"),_.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",_.createElement("code",{style:i},"ErrorBoundary")," or"," ",_.createElement("code",{style:i},"errorElement")," prop on your route.")),_.createElement(_.Fragment,null,_.createElement("h2",null,"Unexpected Application Error!"),_.createElement("h3",{style:{fontStyle:"italic"}},r),a?_.createElement("pre",{style:n},a):null,c)}var YE=_.createElement(GE,null),qE=class extends _.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,r){return r.location!==e.location||r.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:r.error,location:r.location,revalidation:e.revalidation||r.revalidation}}componentDidCatch(e,r){this.props.onError?this.props.onError(e,r):console.error("React Router caught the following error during render",e)}render(){return this.state.error!==void 0?_.createElement(fl.Provider,{value:this.props.routeContext},_.createElement(ry.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function XE({routeContext:e,match:r,children:a}){let s=_.useContext(Q0);return s&&s.static&&s.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=r.route.id),_.createElement(fl.Provider,{value:e},a)}function ZE(e,r=[],a=null,s=null,n=null){if(e==null){if(!a)return null;if(a.errors)e=a.matches;else if(r.length===0&&!a.initialized&&a.matches.length>0)e=a.matches;else return null}let i=e,c=a==null?void 0:a.errors;if(c!=null){let y=i.findIndex(w=>w.route.id&&(c==null?void 0:c[w.route.id])!==void 0);Is(y>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(c).join(",")}`),i=i.slice(0,Math.min(i.length,y+1))}let u=!1,h=-1;if(a)for(let y=0;y=0?i=i.slice(0,h+1):i=[i[0]];break}}}let g=a&&s?(y,w)=>{var E,S,A;s(y,{location:a.location,params:(A=(S=(E=a.matches)==null?void 0:E[0])==null?void 0:S.params)!=null?A:{},unstable_pattern:BE(a.matches),errorInfo:w})}:void 0;return i.reduceRight((y,w,E)=>{let S,A=!1,C=null,O=null;a&&(S=c&&w.route.id?c[w.route.id]:void 0,C=w.route.errorElement||YE,u&&(h<0&&E===0?(U4("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),A=!0,O=null):h===E&&(A=!0,O=w.route.hydrateFallbackElement||null)));let M=r.concat(i.slice(0,E+1)),R=()=>{let F;return S?F=C:A?F=O:w.route.Component?F=_.createElement(w.route.Component,null):w.route.element?F=w.route.element:F=y,_.createElement(XE,{match:w,routeContext:{outlet:y,matches:M,isDataRoute:a!=null},children:F})};return a&&(w.route.ErrorBoundary||w.route.errorElement||E===0)?_.createElement(qE,{location:a.location,revalidation:a.revalidation,component:C,error:S,children:R(),routeContext:{outlet:null,matches:M,isDataRoute:!0},onError:g}):R()},null)}function ay(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function KE(e){let r=_.useContext(Q0);return Is(r,ay(e)),r}function JE(e){let r=_.useContext(hg);return Is(r,ay(e)),r}function QE(e){let r=_.useContext(fl);return Is(r,ay(e)),r}function sy(e){let r=QE(e),a=r.matches[r.matches.length-1];return Is(a.route.id,`${e} can only be used on routes that contain a unique "id"`),a.route.id}function e8(){return sy("useRouteId")}function t8(){var s;let e=_.useContext(ry),r=JE("useRouteError"),a=sy("useRouteError");return e!==void 0?e:(s=r.errors)==null?void 0:s[a]}function r8(){let{router:e}=KE("useNavigate"),r=sy("useNavigate"),a=_.useRef(!1);return L4(()=>{a.current=!0}),_.useCallback((c,...u)=>me(null,[c,...u],function*(n,i={}){_o(a.current,P4),a.current&&(typeof n=="number"?yield e.navigate(n):yield e.navigate(n,Te({fromRouteId:r},i)))}),[e,r])}var Jw={};function U4(e,r,a){!r&&!Jw[e]&&(Jw[e]=!0,_o(!1,a))}_.memo(a8);function a8({routes:e,future:r,state:a,unstable_onError:s}){return B4(e,void 0,a,s,r)}function Um({to:e,replace:r,state:a,relative:s}){Is(eu()," may be used only in the context of a component.");let{static:n}=_.useContext(qo);_o(!n," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:i}=_.useContext(fl),{pathname:c}=hl(),u=Na(),h=ty(e,ey(i),c,s==="path"),g=JSON.stringify(h);return _.useEffect(()=>{u(JSON.parse(g),{replace:r,state:a,relative:s})},[u,g,s,r,a]),null}function _a(e){Is(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function s8({basename:e="/",children:r=null,location:a,navigationType:s="POP",navigator:n,static:i=!1,unstable_useTransitions:c}){Is(!eu(),"You cannot render a inside another . You should never have more than one in your app.");let u=e.replace(/^\/*/,"/"),h=_.useMemo(()=>({basename:u,navigator:n,static:i,unstable_useTransitions:c,future:{}}),[u,n,i,c]);typeof a=="string"&&(a=J0(a));let{pathname:g="/",search:y="",hash:w="",state:E=null,key:S="default"}=a,A=_.useMemo(()=>{let C=dc(g,u);return C==null?null:{location:{pathname:C,search:y,hash:w,state:E,key:S},navigationType:s}},[u,g,y,w,E,S,s]);return _o(A!=null,` is not able to match the URL "${g}${y}${w}" because it does not start with the basename, so the won't render anything.`),A==null?null:_.createElement(qo.Provider,{value:h},_.createElement(Uf.Provider,{children:r,value:A}))}function n8({children:e,location:r}){return VE(v1(e),r)}function v1(e,r=[]){let a=[];return _.Children.forEach(e,(s,n)=>{if(!_.isValidElement(s))return;let i=[...r,n];if(s.type===_.Fragment){a.push.apply(a,v1(s.props.children,i));return}Is(s.type===_a,`[${typeof s.type=="string"?s.type:s.type.name}] is not a component. All component children of must be a or `),Is(!s.props.index||!s.props.children,"An index route cannot have child routes.");let c={id:s.props.id||i.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,middleware:s.props.middleware,loader:s.props.loader,action:s.props.action,hydrateFallbackElement:s.props.hydrateFallbackElement,HydrateFallback:s.props.HydrateFallback,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.hasErrorBoundary===!0||s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(c.children=v1(s.props.children,i)),a.push(c)}),a}var Tm="get",Am="application/x-www-form-urlencoded";function mg(e){return typeof HTMLElement!="undefined"&&e instanceof HTMLElement}function i8(e){return mg(e)&&e.tagName.toLowerCase()==="button"}function o8(e){return mg(e)&&e.tagName.toLowerCase()==="form"}function l8(e){return mg(e)&&e.tagName.toLowerCase()==="input"}function c8(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function d8(e,r){return e.button===0&&(!r||r==="_self")&&!c8(e)}function w1(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((r,a)=>{let s=e[a];return r.concat(Array.isArray(s)?s.map(n=>[a,n]):[[a,s]])},[]))}function u8(e,r){let a=w1(e);return r&&r.forEach((s,n)=>{a.has(n)||r.getAll(n).forEach(i=>{a.append(n,i)})}),a}var nm=null;function f8(){if(nm===null)try{new FormData(document.createElement("form"),0),nm=!1}catch(e){nm=!0}return nm}var h8=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Rp(e){return e!=null&&!h8.has(e)?(_o(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Am}"`),null):e}function m8(e,r){let a,s,n,i,c;if(o8(e)){let u=e.getAttribute("action");s=u?dc(u,r):null,a=e.getAttribute("method")||Tm,n=Rp(e.getAttribute("enctype"))||Am,i=new FormData(e)}else if(i8(e)||l8(e)&&(e.type==="submit"||e.type==="image")){let u=e.form;if(u==null)throw new Error('Cannot submit a