UNPKG

svgedit

Version:

Powerful SVG-Editor for your browser

48 lines (47 loc) 2.19 MB
var Editor=(function(){"use strict";const Gt=o=>typeof o=="string",Jc=()=>{let o,e;const t=new Promise((r,n)=>{o=r,e=n});return t.resolve=o,t.reject=e,t},fw=o=>o==null?"":""+o,vP=(o,e,t)=>{o.forEach(r=>{e[r]&&(t[r]=e[r])})},wP=/###/g,mw=o=>o&&o.indexOf("###")>-1?o.replace(wP,"."):o,yw=o=>!o||Gt(o),eA=(o,e,t)=>{const r=Gt(e)?e.split("."):e;let n=0;for(;n<r.length-1;){if(yw(o))return{};const i=mw(r[n]);!o[i]&&t&&(o[i]=new t),Object.prototype.hasOwnProperty.call(o,i)?o=o[i]:o={},++n}return yw(o)?{}:{obj:o,k:mw(r[n])}},bw=(o,e,t)=>{const{obj:r,k:n}=eA(o,e,Object);if(r!==void 0||e.length===1){r[n]=t;return}let i=e[e.length-1],a=e.slice(0,e.length-1),s=eA(o,a,Object);for(;s.obj===void 0&&a.length;)i=`${a[a.length-1]}.${i}`,a=a.slice(0,a.length-1),s=eA(o,a,Object),s?.obj&&typeof s.obj[`${s.k}.${i}`]<"u"&&(s.obj=void 0);s.obj[`${s.k}.${i}`]=t},xP=(o,e,t,r)=>{const{obj:n,k:i}=eA(o,e,Object);n[i]=n[i]||[],n[i].push(t)},cd=(o,e)=>{const{obj:t,k:r}=eA(o,e);if(t&&Object.prototype.hasOwnProperty.call(t,r))return t[r]},kP=(o,e,t)=>{const r=cd(o,t);return r!==void 0?r:cd(e,t)},vw=(o,e,t)=>{for(const r in e)r!=="__proto__"&&r!=="constructor"&&(r in o?Gt(o[r])||o[r]instanceof String||Gt(e[r])||e[r]instanceof String?t&&(o[r]=e[r]):vw(o[r],e[r],t):o[r]=e[r]);return o},Vl=o=>o.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var CP={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};const SP=o=>Gt(o)?o.replace(/[&<>"'\/]/g,e=>CP[e]):o;class BP{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(t!==void 0)return t;const r=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,r),this.regExpQueue.push(e),r}}const EP=[" ",",","?","!",";"],jP=new BP(20),LP=(o,e,t)=>{e=e||"",t=t||"";const r=EP.filter(a=>e.indexOf(a)<0&&t.indexOf(a)<0);if(r.length===0)return!0;const n=jP.getRegExp(`(${r.map(a=>a==="?"?"\\?":a).join("|")})`);let i=!n.test(o);if(!i){const a=o.indexOf(t);a>0&&!n.test(o.substring(0,a))&&(i=!0)}return i},_g=(o,e,t=".")=>{if(!o)return;if(o[e])return Object.prototype.hasOwnProperty.call(o,e)?o[e]:void 0;const r=e.split(t);let n=o;for(let i=0;i<r.length;){if(!n||typeof n!="object")return;let a,s="";for(let l=i;l<r.length;++l)if(l!==i&&(s+=t),s+=r[l],a=n[s],a!==void 0){if(["string","number","boolean"].indexOf(typeof a)>-1&&l<r.length-1)continue;i+=l-i+1;break}n=a}return n},tA=o=>o?.replace("_","-"),TP={type:"logger",log(o){this.output("log",o)},warn(o){this.output("warn",o)},error(o){this.output("error",o)},output(o,e){console?.[o]?.apply?.(console,e)}};class Ad{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||"i18next:",this.logger=e||TP,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,"log","",!0)}warn(...e){return this.forward(e,"warn","",!0)}error(...e){return this.forward(e,"error","")}deprecate(...e){return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,r,n){return n&&!this.debug?null:(Gt(e[0])&&(e[0]=`${r}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new Ad(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new Ad(this.logger,e)}}var Di=new Ad;class ud{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(r=>{this.observers[r]||(this.observers[r]=new Map);const n=this.observers[r].get(t)||0;this.observers[r].set(t,n+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([n,i])=>{for(let a=0;a<i;a++)n(...t)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([n,i])=>{for(let a=0;a<i;a++)n.apply(n,[e,...t])})}}class ww extends ud{constructor(e,t={ns:["translation"],defaultNS:"translation"}){super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,r,n={}){const i=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,a=n.ignoreJSONStructure!==void 0?n.ignoreJSONStructure:this.options.ignoreJSONStructure;let s;e.indexOf(".")>-1?s=e.split("."):(s=[e,t],r&&(Array.isArray(r)?s.push(...r):Gt(r)&&i?s.push(...r.split(i)):s.push(r)));const l=cd(this.data,s);return!l&&!t&&!r&&e.indexOf(".")>-1&&(e=s[0],t=s[1],r=s.slice(2).join(".")),l||!a||!Gt(r)?l:_g(this.data?.[e]?.[t],r,i)}addResource(e,t,r,n,i={silent:!1}){const a=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator;let s=[e,t];r&&(s=s.concat(a?r.split(a):r)),e.indexOf(".")>-1&&(s=e.split("."),n=t,t=s[1]),this.addNamespaces(t),bw(this.data,s,n),i.silent||this.emit("added",e,t,r,n)}addResources(e,t,r,n={silent:!1}){for(const i in r)(Gt(r[i])||Array.isArray(r[i]))&&this.addResource(e,t,i,r[i],{silent:!0});n.silent||this.emit("added",e,t,r)}addResourceBundle(e,t,r,n,i,a={silent:!1,skipCopy:!1}){let s=[e,t];e.indexOf(".")>-1&&(s=e.split("."),n=r,r=t,t=s[1]),this.addNamespaces(t);let l=cd(this.data,s)||{};a.skipCopy||(r=JSON.parse(JSON.stringify(r))),n?vw(l,r,i):l={...l,...r},bw(this.data,s,l),a.silent||this.emit("added",e,t,r)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(n=>t[n]&&Object.keys(t[n]).length>0)}toJSON(){return this.data}}var xw={processors:{},addPostProcessor(o){this.processors[o.name]=o},handle(o,e,t,r,n){return o.forEach(i=>{e=this.processors[i]?.process(e,t,r,n)??e}),e}};const kw=Symbol("i18next/PATH_KEY");function PP(){const o=[],e=Object.create(null);let t;return e.get=(r,n)=>(t?.revoke?.(),n===kw?o:(o.push(n),t=Proxy.revocable(r,e),t.proxy)),Proxy.revocable(Object.create(null),e).proxy}function fg(o,e){const{[kw]:t}=o(PP());return t.join(e?.keySeparator??".")}const Cw={},mg=o=>!Gt(o)&&typeof o!="boolean"&&typeof o!="number";class dd extends ud{constructor(e,t={}){super(),vP(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Di.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){const r={...t};if(e==null)return!1;const n=this.resolve(e,r);if(n?.res===void 0)return!1;const i=mg(n.res);return!(r.returnObjects===!1&&i)}extractFromKey(e,t){let r=t.nsSeparator!==void 0?t.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");const n=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator;let i=t.ns||this.options.defaultNS||[];const a=r&&e.indexOf(r)>-1,s=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!LP(e,r,n);if(a&&!s){const l=e.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:e,namespaces:Gt(i)?[i]:i};const c=e.split(r);(r!==n||r===n&&this.options.ns.indexOf(c[0])>-1)&&(i=c.shift()),e=c.join(n)}return{key:e,namespaces:Gt(i)?[i]:i}}translate(e,t,r){let n=typeof t=="object"?{...t}:t;if(typeof n!="object"&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),typeof n=="object"&&(n={...n}),n||(n={}),e==null)return"";typeof e=="function"&&(e=fg(e,{...this.options,...n})),Array.isArray(e)||(e=[String(e)]);const i=n.returnDetails!==void 0?n.returnDetails:this.options.returnDetails,a=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,{key:s,namespaces:l}=this.extractFromKey(e[e.length-1],n),c=l[l.length-1];let A=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;A===void 0&&(A=":");const u=n.lng||this.language,p=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u?.toLowerCase()==="cimode")return p?i?{res:`${c}${A}${s}`,usedKey:s,exactUsedKey:s,usedLng:u,usedNS:c,usedParams:this.getUsedParamsDetails(n)}:`${c}${A}${s}`:i?{res:s,usedKey:s,exactUsedKey:s,usedLng:u,usedNS:c,usedParams:this.getUsedParamsDetails(n)}:s;const d=this.resolve(e,n);let _=d?.res;const g=d?.usedKey||s,f=d?.exactUsedKey||s,y=["[object Number]","[object Function]","[object RegExp]"],b=n.joinArrays!==void 0?n.joinArrays:this.options.joinArrays,x=!this.i18nFormat||this.i18nFormat.handleAsObject,v=n.count!==void 0&&!Gt(n.count),C=dd.hasDefaultValue(n),B=v?this.pluralResolver.getSuffix(u,n.count,n):"",T=n.ordinal&&v?this.pluralResolver.getSuffix(u,n.count,{ordinal:!1}):"",F=v&&!n.ordinal&&n.count===0,j=F&&n[`defaultValue${this.options.pluralSeparator}zero`]||n[`defaultValue${B}`]||n[`defaultValue${T}`]||n.defaultValue;let P=_;x&&!_&&C&&(P=j);const S=mg(P),L=Object.prototype.toString.apply(P);if(x&&P&&S&&y.indexOf(L)<0&&!(Gt(b)&&Array.isArray(P))){if(!n.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const U=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,P,{...n,ns:l}):`key '${s} (${this.language})' returned an object instead of string.`;return i?(d.res=U,d.usedParams=this.getUsedParamsDetails(n),d):U}if(a){const U=Array.isArray(P),R=U?[]:{},W=U?f:g;for(const ee in P)if(Object.prototype.hasOwnProperty.call(P,ee)){const J=`${W}${a}${ee}`;C&&!_?R[ee]=this.translate(J,{...n,defaultValue:mg(j)?j[ee]:void 0,joinArrays:!1,ns:l}):R[ee]=this.translate(J,{...n,joinArrays:!1,ns:l}),R[ee]===J&&(R[ee]=P[ee])}_=R}}else if(x&&Gt(b)&&Array.isArray(_))_=_.join(b),_&&(_=this.extendTranslation(_,e,n,r));else{let U=!1,R=!1;!this.isValidLookup(_)&&C&&(U=!0,_=j),this.isValidLookup(_)||(R=!0,_=s);const ee=(n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&R?void 0:_,J=C&&j!==_&&this.options.updateMissing;if(R||U||J){if(this.logger.log(J?"updateKey":"missingKey",u,c,s,J?j:_),a){const ae=this.resolve(s,{...n,keySeparator:!1});ae&&ae.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 te=[];const oe=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&oe&&oe[0])for(let ae=0;ae<oe.length;ae++)te.push(oe[ae]);else this.options.saveMissingTo==="all"?te=this.languageUtils.toResolveHierarchy(n.lng||this.language):te.push(n.lng||this.language);const pe=(ae,N,V)=>{const H=C&&V!==_?V:ee;this.options.missingKeyHandler?this.options.missingKeyHandler(ae,c,N,H,J,n):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(ae,c,N,H,J,n),this.emit("missingKey",ae,c,N,_)};this.options.saveMissing&&(this.options.saveMissingPlurals&&v?te.forEach(ae=>{const N=this.pluralResolver.getSuffixes(ae,n);F&&n[`defaultValue${this.options.pluralSeparator}zero`]&&N.indexOf(`${this.options.pluralSeparator}zero`)<0&&N.push(`${this.options.pluralSeparator}zero`),N.forEach(V=>{pe([ae],s+V,n[`defaultValue${V}`]||j)})}):pe(te,s,j))}_=this.extendTranslation(_,e,n,d,r),R&&_===s&&this.options.appendNamespaceToMissingKey&&(_=`${c}${A}${s}`),(R||U)&&this.options.parseMissingKeyHandler&&(_=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${c}${A}${s}`:s,U?_:void 0,n))}return i?(d.res=_,d.usedParams=this.getUsedParamsDetails(n),d):_}extendTranslation(e,t,r,n,i){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||n.usedLng,n.usedNS,n.usedKey,{resolved:n});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const l=Gt(e)&&(r?.interpolation?.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let c;if(l){const u=e.match(this.interpolator.nestingRegexp);c=u&&u.length}let A=r.replace&&!Gt(r.replace)?r.replace:r;if(this.options.interpolation.defaultVariables&&(A={...this.options.interpolation.defaultVariables,...A}),e=this.interpolator.interpolate(e,A,r.lng||this.language||n.usedLng,r),l){const u=e.match(this.interpolator.nestingRegexp),p=u&&u.length;c<p&&(r.nest=!1)}!r.lng&&n&&n.res&&(r.lng=this.language||n.usedLng),r.nest!==!1&&(e=this.interpolator.nest(e,(...u)=>i?.[0]===u[0]&&!r.context?(this.logger.warn(`It seems you are nesting recursively key: ${u[0]} in key: ${t[0]}`),null):this.translate(...u,t),r)),r.interpolation&&this.interpolator.reset()}const a=r.postProcess||this.options.postProcess,s=Gt(a)?[a]:a;return e!=null&&s?.length&&r.applyPostProcessor!==!1&&(e=xw.handle(s,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...n,usedParams:this.getUsedParamsDetails(r)},...r}:r,this)),e}resolve(e,t={}){let r,n,i,a,s;return Gt(e)&&(e=[e]),e.forEach(l=>{if(this.isValidLookup(r))return;const c=this.extractFromKey(l,t),A=c.key;n=A;let u=c.namespaces;this.options.fallbackNS&&(u=u.concat(this.options.fallbackNS));const p=t.count!==void 0&&!Gt(t.count),d=p&&!t.ordinal&&t.count===0,_=t.context!==void 0&&(Gt(t.context)||typeof t.context=="number")&&t.context!=="",g=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);u.forEach(f=>{this.isValidLookup(r)||(s=f,!Cw[`${g[0]}-${f}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(s)&&(Cw[`${g[0]}-${f}`]=!0,this.logger.warn(`key "${n}" for languages "${g.join(", ")}" won't get resolved as namespace "${s}" 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!!!")),g.forEach(y=>{if(this.isValidLookup(r))return;a=y;const b=[A];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(b,A,y,f,t);else{let v;p&&(v=this.pluralResolver.getSuffix(y,t.count,t));const C=`${this.options.pluralSeparator}zero`,B=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(p&&(t.ordinal&&v.indexOf(B)===0&&b.push(A+v.replace(B,this.options.pluralSeparator)),b.push(A+v),d&&b.push(A+C)),_){const T=`${A}${this.options.contextSeparator||"_"}${t.context}`;b.push(T),p&&(t.ordinal&&v.indexOf(B)===0&&b.push(T+v.replace(B,this.options.pluralSeparator)),b.push(T+v),d&&b.push(T+C))}}let x;for(;x=b.pop();)this.isValidLookup(r)||(i=x,r=this.getResource(y,f,x,t))}))})}),{res:r,usedKey:n,exactUsedKey:i,usedLng:a,usedNS:s}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,t,r,n={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,r,n):this.resourceStore.getResource(e,t,r,n)}getUsedParamsDetails(e={}){const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=e.replace&&!Gt(e.replace);let n=r?e.replace:e;if(r&&typeof e.count<"u"&&(n.count=e.count),this.options.interpolation.defaultVariables&&(n={...this.options.interpolation.defaultVariables,...n}),!r){n={...n};for(const i of t)delete n[i]}return n}static hasDefaultValue(e){const t="defaultValue";for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&t===r.substring(0,t.length)&&e[r]!==void 0)return!0;return!1}}class Sw{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Di.create("languageUtils")}getScriptPartFromCode(e){if(e=tA(e),!e||e.indexOf("-")<0)return null;const t=e.split("-");return t.length===2||(t.pop(),t[t.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(t.join("-"))}getLanguagePartFromCode(e){if(e=tA(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(Gt(e)&&e.indexOf("-")>-1){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch{}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(r=>{if(t)return;const n=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(n))&&(t=n)}),!t&&this.options.supportedLngs&&e.forEach(r=>{if(t)return;const n=this.getScriptPartFromCode(r);if(this.isSupportedCode(n))return t=n;const i=this.getLanguagePartFromCode(r);if(this.isSupportedCode(i))return t=i;t=this.options.supportedLngs.find(a=>{if(a===i)return a;if(!(a.indexOf("-")<0&&i.indexOf("-")<0)&&(a.indexOf("-")>0&&i.indexOf("-")<0&&a.substring(0,a.indexOf("-"))===i||a.indexOf(i)===0&&i.length>1))return a})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),Gt(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let r=e[t];return r||(r=e[this.getScriptPartFromCode(t)]),r||(r=e[this.formatLanguageCode(t)]),r||(r=e[this.getLanguagePartFromCode(t)]),r||(r=e.default),r||[]}toResolveHierarchy(e,t){const r=this.getFallbackCodes((t===!1?[]:t)||this.options.fallbackLng||[],e),n=[],i=a=>{a&&(this.isSupportedCode(a)?n.push(a):this.logger.warn(`rejecting language code not found in supportedLngs: ${a}`))};return Gt(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&i(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&i(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&i(this.getLanguagePartFromCode(e))):Gt(e)&&i(this.formatLanguageCode(e)),r.forEach(a=>{n.indexOf(a)<0&&i(this.formatLanguageCode(a))}),n}}const Bw={zero:0,one:1,two:2,few:3,many:4,other:5},Ew={select:o=>o===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class FP{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=Di.create("pluralResolver"),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){const r=tA(e==="dev"?"en":e),n=t.ordinal?"ordinal":"cardinal",i=JSON.stringify({cleanedCode:r,type:n});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let a;try{a=new Intl.PluralRules(r,{type:n})}catch{if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),Ew;if(!e.match(/-|_/))return Ew;const l=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(l,t)}return this.pluralRulesCache[i]=a,a}needsPlural(e,t={}){let r=this.getRule(e,t);return r||(r=this.getRule("dev",t)),r?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,r={}){return this.getSuffixes(e,r).map(n=>`${t}${n}`)}getSuffixes(e,t={}){let r=this.getRule(e,t);return r||(r=this.getRule("dev",t)),r?r.resolvedOptions().pluralCategories.sort((n,i)=>Bw[n]-Bw[i]).map(n=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${n}`):[]}getSuffix(e,t,r={}){const n=this.getRule(e,r);return n?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${n.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",t,r))}}const jw=(o,e,t,r=".",n=!0)=>{let i=kP(o,e,t);return!i&&n&&Gt(t)&&(i=_g(o,t,r),i===void 0&&(i=_g(e,t,r))),i},yg=o=>o.replace(/\$/g,"$$$$");class Lw{constructor(e={}){this.logger=Di.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(t=>t),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:r,useRawValueToEscape:n,prefix:i,prefixEscaped:a,suffix:s,suffixEscaped:l,formatSeparator:c,unescapeSuffix:A,unescapePrefix:u,nestingPrefix:p,nestingPrefixEscaped:d,nestingSuffix:_,nestingSuffixEscaped:g,nestingOptionsSeparator:f,maxReplaces:y,alwaysFormat:b}=e.interpolation;this.escape=t!==void 0?t:SP,this.escapeValue=r!==void 0?r:!0,this.useRawValueToEscape=n!==void 0?n:!1,this.prefix=i?Vl(i):a||"{{",this.suffix=s?Vl(s):l||"}}",this.formatSeparator=c||",",this.unescapePrefix=A?"":u||"-",this.unescapeSuffix=this.unescapePrefix?"":A||"",this.nestingPrefix=p?Vl(p):d||Vl("$t("),this.nestingSuffix=_?Vl(_):g||Vl(")"),this.nestingOptionsSeparator=f||",",this.maxReplaces=y||1e3,this.alwaysFormat=b!==void 0?b:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(t,r)=>t?.source===r?(t.lastIndex=0,t):new RegExp(r,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,r,n){let i,a,s;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=d=>{if(d.indexOf(this.formatSeparator)<0){const y=jw(t,l,d,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(y,void 0,r,{...n,...t,interpolationkey:d}):y}const _=d.split(this.formatSeparator),g=_.shift().trim(),f=_.join(this.formatSeparator).trim();return this.format(jw(t,l,g,this.options.keySeparator,this.options.ignoreJSONStructure),f,r,{...n,...t,interpolationkey:g})};this.resetRegExp();const A=n?.missingInterpolationHandler||this.options.missingInterpolationHandler,u=n?.interpolation?.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:d=>yg(d)},{regex:this.regexp,safeValue:d=>this.escapeValue?yg(this.escape(d)):yg(d)}].forEach(d=>{for(s=0;i=d.regex.exec(e);){const _=i[1].trim();if(a=c(_),a===void 0)if(typeof A=="function"){const f=A(e,i,n);a=Gt(f)?f:""}else if(n&&Object.prototype.hasOwnProperty.call(n,_))a="";else if(u){a=i[0];continue}else this.logger.warn(`missed to pass in variable ${_} for interpolating ${e}`),a="";else!Gt(a)&&!this.useRawValueToEscape&&(a=fw(a));const g=d.safeValue(a);if(e=e.replace(i[0],g),u?(d.regex.lastIndex+=a.length,d.regex.lastIndex-=i[0].length):d.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),e}nest(e,t,r={}){let n,i,a;const s=(l,c)=>{const A=this.nestingOptionsSeparator;if(l.indexOf(A)<0)return l;const u=l.split(new RegExp(`${A}[ ]*{`));let p=`{${u[1]}`;l=u[0],p=this.interpolate(p,a);const d=p.match(/'/g),_=p.match(/"/g);((d?.length??0)%2===0&&!_||_.length%2!==0)&&(p=p.replace(/'/g,'"'));try{a=JSON.parse(p),c&&(a={...c,...a})}catch(g){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,g),`${l}${A}${p}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,l};for(;n=this.nestingRegexp.exec(e);){let l=[];a={...r},a=a.replace&&!Gt(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;const c=/{.*}/.test(n[1])?n[1].lastIndexOf("}")+1:n[1].indexOf(this.formatSeparator);if(c!==-1&&(l=n[1].slice(c).split(this.formatSeparator).map(A=>A.trim()).filter(Boolean),n[1]=n[1].slice(0,c)),i=t(s.call(this,n[1].trim(),a),a),i&&n[0]===e&&!Gt(i))return i;Gt(i)||(i=fw(i)),i||(this.logger.warn(`missed to resolve ${n[1]} for nesting ${e}`),i=""),l.length&&(i=l.reduce((A,u)=>this.format(A,u,r.lng,{...r,interpolationkey:n[1].trim()}),i.trim())),e=e.replace(n[0],i),this.regexp.lastIndex=0}return e}}const UP=o=>{let e=o.toLowerCase().trim();const t={};if(o.indexOf("(")>-1){const r=o.split("(");e=r[0].toLowerCase().trim();const n=r[1].substring(0,r[1].length-1);e==="currency"&&n.indexOf(":")<0?t.currency||(t.currency=n.trim()):e==="relativetime"&&n.indexOf(":")<0?t.range||(t.range=n.trim()):n.split(";").forEach(a=>{if(a){const[s,...l]=a.split(":"),c=l.join(":").trim().replace(/^'+|'+$/g,""),A=s.trim();t[A]||(t[A]=c),c==="false"&&(t[A]=!1),c==="true"&&(t[A]=!0),isNaN(c)||(t[A]=parseInt(c,10))}})}return{formatName:e,formatOptions:t}},Tw=o=>{const e={};return(t,r,n)=>{let i=n;n&&n.interpolationkey&&n.formatParams&&n.formatParams[n.interpolationkey]&&n[n.interpolationkey]&&(i={...i,[n.interpolationkey]:void 0});const a=r+JSON.stringify(i);let s=e[a];return s||(s=o(tA(r),n),e[a]=s),s(t)}},NP=o=>(e,t,r)=>o(tA(t),r)(e);class IP{constructor(e={}){this.logger=Di.create("formatter"),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||",";const r=t.cacheInBuiltFormats?Tw:NP;this.formats={number:r((n,i)=>{const a=new Intl.NumberFormat(n,{...i});return s=>a.format(s)}),currency:r((n,i)=>{const a=new Intl.NumberFormat(n,{...i,style:"currency"});return s=>a.format(s)}),datetime:r((n,i)=>{const a=new Intl.DateTimeFormat(n,{...i});return s=>a.format(s)}),relativetime:r((n,i)=>{const a=new Intl.RelativeTimeFormat(n,{...i});return s=>a.format(s,i.range||"day")}),list:r((n,i)=>{const a=new Intl.ListFormat(n,{...i});return s=>a.format(s)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Tw(t)}format(e,t,r,n={}){const i=t.split(this.formatSeparator);if(i.length>1&&i[0].indexOf("(")>1&&i[0].indexOf(")")<0&&i.find(s=>s.indexOf(")")>-1)){const s=i.findIndex(l=>l.indexOf(")")>-1);i[0]=[i[0],...i.splice(1,s)].join(this.formatSeparator)}return i.reduce((s,l)=>{const{formatName:c,formatOptions:A}=UP(l);if(this.formats[c]){let u=s;try{const p=n?.formatParams?.[n.interpolationkey]||{},d=p.locale||p.lng||n.locale||n.lng||r;u=this.formats[c](s,d,{...A,...n,...p})}catch(p){this.logger.warn(p)}return u}else this.logger.warn(`there was no format function for ${c}`);return s},e)}}const MP=(o,e)=>{o.pending[e]!==void 0&&(delete o.pending[e],o.pendingCount--)};class OP extends ud{constructor(e,t,r,n={}){super(),this.backend=e,this.store=t,this.services=r,this.languageUtils=r.languageUtils,this.options=n,this.logger=Di.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=[],this.backend?.init?.(r,n.backend,n)}queueLoad(e,t,r,n){const i={},a={},s={},l={};return e.forEach(c=>{let A=!0;t.forEach(u=>{const p=`${c}|${u}`;!r.reload&&this.store.hasResourceBundle(c,u)?this.state[p]=2:this.state[p]<0||(this.state[p]===1?a[p]===void 0&&(a[p]=!0):(this.state[p]=1,A=!1,a[p]===void 0&&(a[p]=!0),i[p]===void 0&&(i[p]=!0),l[u]===void 0&&(l[u]=!0)))}),A||(s[c]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:n}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}loaded(e,t,r){const n=e.split("|"),i=n[0],a=n[1];t&&this.emit("failedLoading",i,a,t),!t&&r&&this.store.addResourceBundle(i,a,r,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&r&&(this.state[e]=0);const s={};this.queue.forEach(l=>{xP(l.loaded,[i],a),MP(l,e),t&&l.errors.push(t),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(c=>{s[c]||(s[c]={});const A=l.loaded[c];A.length&&A.forEach(u=>{s[c][u]===void 0&&(s[c][u]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(l=>!l.done)}read(e,t,r,n=0,i=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:r,tried:n,wait:i,callback:a});return}this.readingCalls++;const s=(c,A)=>{if(this.readingCalls--,this.waitingReads.length>0){const u=this.waitingReads.shift();this.read(u.lng,u.ns,u.fcName,u.tried,u.wait,u.callback)}if(c&&A&&n<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,r,n+1,i*2,a)},i);return}a(c,A)},l=this.backend[r].bind(this.backend);if(l.length===2){try{const c=l(e,t);c&&typeof c.then=="function"?c.then(A=>s(null,A)).catch(s):s(null,c)}catch(c){s(c)}return}return l(e,t,s)}prepareLoading(e,t,r={},n){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();Gt(e)&&(e=this.languageUtils.toResolveHierarchy(e)),Gt(t)&&(t=[t]);const i=this.queueLoad(e,t,r,n);if(!i.toLoad.length)return i.pending.length||n(),null;i.toLoad.forEach(a=>{this.loadOne(a)})}load(e,t,r){this.prepareLoading(e,t,{},r)}reload(e,t,r){this.prepareLoading(e,t,{reload:!0},r)}loadOne(e,t=""){const r=e.split("|"),n=r[0],i=r[1];this.read(n,i,"read",void 0,void 0,(a,s)=>{a&&this.logger.warn(`${t}loading namespace ${i} for language ${n} failed`,a),!a&&s&&this.logger.log(`${t}loaded namespace ${i} for language ${n}`,s),this.loaded(e,a,s)})}saveMissing(e,t,r,n,i,a={},s=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${r}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if(this.backend?.create){const l={...a,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let A;c.length===5?A=c(e,t,r,n,l):A=c(e,t,r,n),A&&typeof A.then=="function"?A.then(u=>s(null,u)).catch(s):s(null,A)}catch(A){s(A)}else c(e,t,r,n,s,l)}!e||!e[0]||this.store.addResource(e[0],t,r,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:o=>{let e={};if(typeof o[1]=="object"&&(e=o[1]),Gt(o[1])&&(e.defaultValue=o[1]),Gt(o[2])&&(e.tDescription=o[2]),typeof o[2]=="object"||typeof o[3]=="object"){const t=o[3]||o[2];Object.keys(t).forEach(r=>{e[r]=t[r]})}return e},interpolation:{escapeValue:!0,format:o=>o,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Fw=o=>(Gt(o.ns)&&(o.ns=[o.ns]),Gt(o.fallbackLng)&&(o.fallbackLng=[o.fallbackLng]),Gt(o.fallbackNS)&&(o.fallbackNS=[o.fallbackNS]),o.supportedLngs?.indexOf?.("cimode")<0&&(o.supportedLngs=o.supportedLngs.concat(["cimode"])),typeof o.initImmediate=="boolean"&&(o.initAsync=o.initImmediate),o),pd=()=>{},RP=o=>{Object.getOwnPropertyNames(Object.getPrototypeOf(o)).forEach(t=>{typeof o[t]=="function"&&(o[t]=o[t].bind(o))})};class rA extends ud{constructor(e={},t){if(super(),this.options=Fw(e),this.services={},this.logger=Di,this.modules={external:[]},RP(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,typeof e=="function"&&(t=e,e={}),e.defaultNS==null&&e.ns&&(Gt(e.ns)?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));const r=Pw();this.options={...r,...this.options,...Fw(e)},this.options.interpolation={...r.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator);const n=c=>c?typeof c=="function"?new c:c:null;if(!this.options.isClone){this.modules.logger?Di.init(n(this.modules.logger),this.options):Di.init(null,this.options);let c;this.modules.formatter?c=this.modules.formatter:c=IP;const A=new Sw(this.options);this.store=new ww(this.options.resources,this.options);const u=this.services;u.logger=Di,u.resourceStore=this.store,u.languageUtils=A,u.pluralResolver=new FP(A,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==r.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"),c&&(!this.options.interpolation.format||this.options.interpolation.format===r.interpolation.format)&&(u.formatter=n(c),u.formatter.init&&u.formatter.init(u,this.options),this.options.interpolation.format=u.formatter.format.bind(u.formatter)),u.interpolator=new Lw(this.options),u.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},u.backendConnector=new OP(n(this.modules.backend),u.resourceStore,u,this.options),u.backendConnector.on("*",(d,..._)=>{this.emit(d,..._)}),this.modules.languageDetector&&(u.languageDetector=n(this.modules.languageDetector),u.languageDetector.init&&u.languageDetector.init(u,this.options.detection,this.options)),this.modules.i18nFormat&&(u.i18nFormat=n(this.modules.i18nFormat),u.i18nFormat.init&&u.i18nFormat.init(this)),this.translator=new dd(this.services,this.options),this.translator.on("*",(d,..._)=>{this.emit(d,..._)}),this.modules.external.forEach(d=>{d.init&&d.init(this)})}if(this.format=this.options.interpolation.format,t||(t=pd),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.length>0&&c[0]!=="dev"&&(this.options.lng=c[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(c=>{this[c]=(...A)=>this.store[c](...A)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(c=>{this[c]=(...A)=>(this.store[c](...A),this)});const s=Jc(),l=()=>{const c=(A,u)=>{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),s.resolve(u),t(A,u)};if(this.languages&&!this.isInitialized)return c(null,this.t.bind(this));this.changeLanguage(this.options.lng,c)};return this.options.resources||!this.options.initAsync?l():setTimeout(l,0),s}loadResources(e,t=pd){let r=t;const n=Gt(e)?e:this.language;if(typeof e=="function"&&(r=e),!this.options.resources||this.options.partialBundledLanguages){if(n?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();const i=[],a=s=>{if(!s||s==="cimode")return;this.services.languageUtils.toResolveHierarchy(s).forEach(c=>{c!=="cimode"&&i.indexOf(c)<0&&i.push(c)})};n?a(n):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>a(l)),this.options.preload?.forEach?.(s=>a(s)),this.services.backendConnector.load(i,this.options.ns,s=>{!s&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(s)})}else r(null)}reloadResources(e,t,r){const n=Jc();return typeof e=="function"&&(r=e,e=void 0),typeof t=="function"&&(r=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),r||(r=pd),this.services.backendConnector.reload(e,t,i=>{n.resolve(),r(i)}),n}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&xw.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1)){for(let t=0;t<this.languages.length;t++){const r=this.languages[t];if(!(["cimode","dev"].indexOf(r)>-1)&&this.store.hasLanguageSomeTranslations(r)){this.resolvedLanguage=r;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;const r=Jc();this.emit("languageChanging",e);const n=s=>{this.language=s,this.languages=this.services.languageUtils.toResolveHierarchy(s),this.resolvedLanguage=void 0,this.setResolvedLanguage(s)},i=(s,l)=>{l?this.isLanguageChangingTo===e&&(n(l),this.translator.changeLanguage(l),this.isLanguageChangingTo=void 0,this.emit("languageChanged",l),this.logger.log("languageChanged",l)):this.isLanguageChangingTo=void 0,r.resolve((...c)=>this.t(...c)),t&&t(s,(...c)=>this.t(...c))},a=s=>{!e&&!s&&this.services.languageDetector&&(s=[]);const l=Gt(s)?s:s&&s[0],c=this.store.hasLanguageSomeTranslations(l)?l:this.services.languageUtils.getBestMatchFromCodes(Gt(s)?[s]:s);c&&(this.language||n(c),this.translator.language||this.translator.changeLanguage(c),this.services.languageDetector?.cacheUserLanguage?.(c)),this.loadResources(c,A=>{i(A,c)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e),r}getFixedT(e,t,r){const n=(i,a,...s)=>{let l;typeof a!="object"?l=this.options.overloadTranslationOptionHandler([i,a].concat(s)):l={...a},l.lng=l.lng||n.lng,l.lngs=l.lngs||n.lngs,l.ns=l.ns||n.ns,l.keyPrefix!==""&&(l.keyPrefix=l.keyPrefix||r||n.keyPrefix);const c=this.options.keySeparator||".";let A;return l.keyPrefix&&Array.isArray(i)?A=i.map(u=>(typeof u=="function"&&(u=fg(u,{...this.options,...a})),`${l.keyPrefix}${c}${u}`)):(typeof i=="function"&&(i=fg(i,{...this.options,...a})),A=l.keyPrefix?`${l.keyPrefix}${c}${i}`:i),this.t(A,l)};return Gt(e)?n.lng=e:n.lngs=e,n.ns=t,n.keyPrefix=r,n}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=t.lng||this.resolvedLanguage||this.languages[0],n=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const a=(s,l)=>{const c=this.services.backendConnector.state[`${s}|${l}`];return c===-1||c===0||c===2};if(t.precheck){const s=t.precheck(this,a);if(s!==void 0)return s}return!!(this.hasResourceBundle(r,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(r,e)&&(!n||a(i,e)))}loadNamespaces(e,t){const r=Jc();return this.options.ns?(Gt(e)&&(e=[e]),e.forEach(n=>{this.options.ns.indexOf(n)<0&&this.options.ns.push(n)}),this.loadResources(n=>{r.resolve(),t&&t(n)}),r):(t&&t(),Promise.resolve())}loadLanguages(e,t){const r=Jc();Gt(e)&&(e=[e]);const n=this.options.preload||[],i=e.filter(a=>n.indexOf(a)<0&&this.services.languageUtils.isSupportedCode(a));return i.length?(this.options.preload=n.concat(i),this.loadResources(a=>{r.resolve(),t&&t(a)}),r):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";try{const n=new Intl.Locale(e);if(n&&n.getTextInfo){const i=n.getTextInfo();if(i&&i.direction)return i.direction}}catch{}const t=["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"],r=this.services?.languageUtils||new Sw(Pw());return e.toLowerCase().indexOf("-latn")>1?"ltr":t.indexOf(r.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(e={},t){const r=new rA(e,t);return r.createInstance=rA.createInstance,r}cloneInstance(e={},t=pd){const r=e.forkResourceStore;r&&delete e.forkResourceStore;const n={...this.options,...e,isClone:!0},i=new rA(n);if((e.debug!==void 0||e.prefix!==void 0)&&(i.logger=i.logger.clone(e)),["store","services","language"].forEach(s=>{i[s]=this[s]}),i.services={...this.services},i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},r){const s=Object.keys(this.store.data).reduce((l,c)=>(l[c]={...this.store.data[c]},l[c]=Object.keys(l[c]).reduce((A,u)=>(A[u]={...l[c][u]},A),l[c]),l),{});i.store=new ww(s,n),i.services.resourceStore=i.store}return e.interpolation&&(i.services.interpolator=new Lw(n)),i.translator=new dd(i.services,n),i.translator.on("*",(s,...l)=>{i.emit(s,...l)}),i.init(n,t),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 Zo=rA.createInstance();Zo.createInstance,Zo.dir,Zo.init,Zo.loadResources,Zo.reloadResources,Zo.use,Zo.changeLanguage,Zo.getFixedT,Zo.t,Zo.exists,Zo.setDefaultNamespace,Zo.hasLoadedNamespace,Zo.loadNamespaces,Zo.loadLanguages;function QP(o){switch(o){case"./locale/lang.af.js":return Promise.resolve().then(()=>Rz);case"./locale/lang.ar.js":return Promise.resolve().then(()=>Qz);case"./locale/lang.az.js":return Promise.resolve().then(()=>qz);case"./locale/lang.be.js":return Promise.resolve().then(()=>Vz);case"./locale/lang.bg.js":return Promise.resolve().then(()=>Gz);case"./locale/lang.ca.js":return Promise.resolve().then(()=>Dz);case"./locale/lang.cs.js":return Promise.resolve().then(()=>Hz);case"./locale/lang.cy.js":return Promise.resolve().then(()=>zz);case"./locale/lang.da.js":return Promise.resolve().then(()=>Kz);case"./locale/lang.de.js":return Promise.resolve().then(()=>$z);case"./locale/lang.el.js":return Promise.resolve().then(()=>Wz);case"./locale/lang.en.js":return Promise.resolve().then(()=>Xz);case"./locale/lang.es.js":return Promise.resolve().then(()=>Yz);case"./locale/lang.et.js":return Promise.resolve().then(()=>Zz);case"./locale/lang.fa.js":return Promise.resolve().then(()=>Jz);case"./locale/lang.fi.js":return Promise.resolve().then(()=>e9);case"./locale/lang.fr.js":return Promise.resolve().then(()=>t9);case"./locale/lang.fy.js":return Promise.resolve().then(()=>r9);case"./locale/lang.ga.js":return Promise.resolve().then(()=>o9);case"./locale/lang.gl.js":return Promise.resolve().then(()=>n9);case"./locale/lang.he.js":return Promise.resolve().then(()=>i9);case"./locale/lang.hi.js":return Promise.resolve().then(()=>a9);case"./locale/lang.hr.js":return Promise.resolve().then(()=>s9);case"./locale/lang.hu.js":return Promise.resolve().then(()=>l9);case"./locale/lang.hy.js":return Promise.resolve().then(()=>c9);case"./locale/lang.id.js":return Promise.resolve().then(()=>A9);case"./locale/lang.is.js":return Promise.resolve().then(()=>u9);case"./locale/lang.it.js":return Promise.resolve().then(()=>d9);case"./locale/lang.ja.js":return Promise.resolve().then(()=>p9);case"./locale/lang.ko.js":return Promise.resolve().then(()=>h9);case"./locale/lang.lt.js":return Promise.resolve().then(()=>g9);case"./locale/lang.lv.js":return Promise.resolve().then(()=>_9);case"./locale/lang.mk.js":return Promise.resolve().then(()=>f9);case"./locale/lang.ms.js":return Promise.resolve().then(()=>m9);case"./locale/lang.mt.js":return Promise.resolve().then(()=>y9);case"./locale/lang.nl.js":return Promise.resolve().then(()=>b9);case"./locale/lang.no.js":return Promise.resolve().then(()=>v9);case"./locale/lang.pl.js":return Promise.resolve().then(()=>w9);case"./locale/lang.pt-BR.js":return Promise.resolve().then(()=>x9);case"./locale/lang.pt-PT.js":return Promise.resolve().then(()=>k9);case"./locale/lang.ro.js":return Promise.resolve().then(()=>C9);case"./locale/lang.ru.js":return Promise.resolve().then(()=>S9);case"./locale/lang.sk.js":return Promise.resolve().then(()=>B9);case"./locale/lang.sl.js":return Promise.resolve().then(()=>E9);case"./locale/lang.sq.js":return Promise.resolve().then(()=>j9);case"./locale/lang.sr.js":return Promise.resolve().then(()=>L9);case"./locale/lang.sv.js":return Promise.resolve().then(()=>T9);case"./locale/lang.sw.js":return Promise.resolve().then(()=>P9);case"./locale/lang.test.js":return Promise.resolve().then(()=>F9);case"./locale/lang.th.js":return Promise.resolve().then(()=>U9);case"./locale/lang.tl.js":return Promise.resolve().then(()=>N9);case"./locale/lang.tr.js":return Promise.resolve().then(()=>I9);case"./locale/lang.uk.js":return Promise.resolve().then(()=>M9);case"./locale/lang.vi.js":return Promise.resolve().then(()=>O9);case"./locale/lang.yi.js":return Promise.resolve().then(()=>R9);case"./locale/lang.zh-CN.js":return Promise.resolve().then(()=>Q9);case"./locale/lang.zh-HK.js":return Promise.resolve().then(()=>q9);case"./locale/lang.zh-TW.js":return Promise.resolve().then(()=>V9);default:return new Promise(function(e,t){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(t.bind(null,new Error("Unknown variable dynamic import: "+o)))})}}let Hi;const qP=async function(o,e){o?Hi=o:navigator.userLanguage?Hi=navigator.userLanguage:navigator.language&&(Hi=navigator.language),!e.includes(Hi)&&Hi!=="test"&&(Hi="en");const t=await QP(`./locale/lang.${encodeURIComponent(Hi)}.js`);return Zo.init({lng:Hi,debug:!1,resources:{[Hi]:{translation:t.default}}}),{langParam:Hi,i18next:Zo}},Yr=function(o){return Zo.t(o)},Uw=document.createElement("template");Uw.innerHTML=` <style> @keyframes btnHover { from { background-color: var(--main-bg-color); } to { background-color: var(--icon-bg-color-hover); } } :host(:hover) :not(.disabled) { animation: btnHover 0.2s forwards; } div { height: 24px; width: 24px; margin: 4px 1px 4px; padding: 3px; background-color: var(--icon-bg-color); cursor: pointer; border-radius: 3px; } .small { width: 14px; height: 14px; padding: 1px; border-radius: 1px; } img { border: none; width: 100%; height: 100%; } .pressed { background-color: var(--icon-bg-color-hover); } .disabled { opacity: 0.3; cursor: default; } </style> <div title="title"> <img alt="icon"> </div> `;class VP extends HTMLElement{constructor(){super(),this._shadowRoot=this.attachShadow({mode:"open"}),this._shadowRoot.append(Uw.content.cloneNode(!0)),this.$div=this._shadowRoot.querySelector("div"),this.$img=this._shadowRoot.querySelector("img"),this.imgPath=svgEditor.configObj.curConfig.imgPath}static get observedAttributes(){return["title","src","pressed","disabled","size","style"]}attributeChangedCallback(e,t,r){if(t!==r)switch(e){case"title":{const n=this.getAttribute("shortcut");this.$div.setAttribute("title",`${Yr(r)} ${n?`[${Yr(n)}]`:""}`)}break;case"style":this.$div.style=r;break;case"src":r.indexOf("data:")!==-1?this.$img.setAttribute("src",r):this.$img.setAttribute("src",this.imgPath+"/"+r);break;case"pressed":r===null?this.$div.classList.remove("pressed"):this.$div.classList.add("pressed");break;case"size":r==="small"?this.$div.classList.add("small"):this.$div.classList.remove("small");break;case"disabled":r?this.$div.classList.add("disabled"):this.$div.classList.remove("disabled");break;default:console.error(`unknown attribute: ${e}`);break}}get title(){return this.getAttribute("title")}set title(e){this.setAttribute("title",e)}get pressed(){return this.hasAttribute("pressed")}set pressed(e){e?this.setAttribute("pressed","true"):this.removeAttribute("pressed")}get disabled(){return this.hasAttribute("disabled")}set disabled(e){e?this.setAttribute("disabled","true"):this.removeAttribute("disabled")}get src(){return this.getAttribute("src")}set src(e){this.setAttribute("src",e)}get size(){return this.getAttribute("size")}set size(e){this.setAttribute("size",e)}connectedCallback(){const e=this.getAttribute("shortcut");e&&document.addEventListener("keydown",t=>{if(t.target.nodeName!=="BODY")return;const r=`${t.metaKey?"meta+":""}${t.ctrlKey?"ctrl+":""}${t.key.toUpperCase()}`;e===r&&(this.click(),t.preventDefault())})}}customElements.define("se-button",VP);class GP extends HTMLElement{constructor(){super(),this.imgPath=svgEditor.configObj.curConfig.imgPath,this.template=this.createTemplate(this.imgPath),this._shadowRoot=this.attachShadow({mode:"open"}),this._shadowRoot.append(this.template.content.cloneNode(!0)),this.$button=this._shadowRoot.querySelector(".menu-button"),this.$handle=this._shadowRoot.querySelector(".handle"),this.$overall=this._sh