@larva.io/webcomponents
Version:
Fentrica SmartUnits WebComponents package
5 lines • 49.2 kB
JavaScript
/*!
* (C) Fentrica http://fentrica.com - Seee LICENSE.md
*/
const t=t=>typeof t==="string";const e=()=>{let t;let e;const s=new Promise(((s,i)=>{t=s;e=i}));s.resolve=t;s.reject=e;return s};const s=t=>{if(t==null)return"";return""+t};const i=(t,e,s)=>{t.forEach((t=>{if(e[t])s[t]=e[t]}))};const n=/###/g;const r=t=>t&&t.indexOf("###")>-1?t.replace(n,"."):t;const o=e=>!e||t(e);const a=(e,s,i)=>{const n=!t(s)?s:s.split(".");let a=0;while(a<n.length-1){if(o(e))return{};const t=r(n[a]);if(!e[t]&&i)e[t]=new i;if(Object.prototype.hasOwnProperty.call(e,t)){e=e[t]}else{e={}}++a}if(o(e))return{};return{obj:e,k:r(n[a])}};const l=(t,e,s)=>{const{obj:i,k:n}=a(t,e,Object);if(i!==undefined||e.length===1){i[n]=s;return}let r=e[e.length-1];let o=e.slice(0,e.length-1);let l=a(t,o,Object);while(l.obj===undefined&&o.length){r=`${o[o.length-1]}.${r}`;o=o.slice(0,o.length-1);l=a(t,o,Object);if(l?.obj&&typeof l.obj[`${l.k}.${r}`]!=="undefined"){l.obj=undefined}}l.obj[`${l.k}.${r}`]=s};const h=(t,e,s,i)=>{const{obj:n,k:r}=a(t,e,Object);n[r]=n[r]||[];n[r].push(s)};const f=(t,e)=>{const{obj:s,k:i}=a(t,e);if(!s)return undefined;if(!Object.prototype.hasOwnProperty.call(s,i))return undefined;return s[i]};const u=(t,e,s)=>{const i=f(t,s);if(i!==undefined){return i}return f(e,s)};const c=(e,s,i)=>{for(const n in s){if(n!=="__proto__"&&n!=="constructor"){if(n in e){if(t(e[n])||e[n]instanceof String||t(s[n])||s[n]instanceof String){if(i)e[n]=s[n]}else{c(e[n],s[n],i)}}else{e[n]=s[n]}}}return e};const d=t=>t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var p={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const g=e=>{if(t(e)){return e.replace(/[&<>"'\/]/g,(t=>p[t]))}return e};class m{constructor(t){this.capacity=t;this.regExpMap=new Map;this.regExpQueue=[]}getRegExp(t){const e=this.regExpMap.get(t);if(e!==undefined){return e}const s=new RegExp(t);if(this.regExpQueue.length===this.capacity){this.regExpMap.delete(this.regExpQueue.shift())}this.regExpMap.set(t,s);this.regExpQueue.push(t);return s}}const y=[" ",",","?","!",";"];const b=new m(20);const $=(t,e,s)=>{e=e||"";s=s||"";const i=y.filter((t=>e.indexOf(t)<0&&s.indexOf(t)<0));if(i.length===0)return true;const n=b.getRegExp(`(${i.map((t=>t==="?"?"\\?":t)).join("|")})`);let r=!n.test(t);if(!r){const e=t.indexOf(s);if(e>0&&!n.test(t.substring(0,e))){r=true}}return r};const w=(t,e,s=".")=>{if(!t)return undefined;if(t[e]){if(!Object.prototype.hasOwnProperty.call(t,e))return undefined;return t[e]}const i=e.split(s);let n=t;for(let t=0;t<i.length;){if(!n||typeof n!=="object"){return undefined}let e;let r="";for(let o=t;o<i.length;++o){if(o!==t){r+=s}r+=i[o];e=n[r];if(e!==undefined){if(["string","number","boolean"].indexOf(typeof e)>-1&&o<i.length-1){continue}t+=o-t+1;break}}n=e}return n};const O=t=>t?.replace("_","-");const A={type:"logger",log(t){this.output("log",t)},warn(t){this.output("warn",t)},error(t){this.output("error",t)},output(t,e){console?.[t]?.apply?.(console,e)}};class k{constructor(t,e={}){this.init(t,e)}init(t,e={}){this.prefix=e.prefix||"i18next:";this.logger=t||A;this.options=e;this.debug=e.debug}log(...t){return this.forward(t,"log","",true)}warn(...t){return this.forward(t,"warn","",true)}error(...t){return this.forward(t,"error","")}deprecate(...t){return this.forward(t,"warn","WARNING DEPRECATED: ",true)}forward(e,s,i,n){if(n&&!this.debug)return null;if(t(e[0]))e[0]=`${i}${this.prefix} ${e[0]}`;return this.logger[s](e)}create(t){return new k(this.logger,{...{prefix:`${this.prefix}:${t}:`},...this.options})}clone(t){t=t||this.options;t.prefix=t.prefix||this.prefix;return new k(this.logger,t)}}var S=new k;class v{constructor(){this.observers={}}on(t,e){t.split(" ").forEach((t=>{if(!this.observers[t])this.observers[t]=new Map;const s=this.observers[t].get(e)||0;this.observers[t].set(e,s+1)}));return this}off(t,e){if(!this.observers[t])return;if(!e){delete this.observers[t];return}this.observers[t].delete(e)}emit(t,...e){if(this.observers[t]){const s=Array.from(this.observers[t].entries());s.forEach((([t,s])=>{for(let i=0;i<s;i++){t(...e)}}))}if(this.observers["*"]){const s=Array.from(this.observers["*"].entries());s.forEach((([s,i])=>{for(let n=0;n<i;n++){s.apply(s,[t,...e])}}))}}}class R extends v{constructor(t,e={ns:["translation"],defaultNS:"translation"}){super();this.data=t||{};this.options=e;if(this.options.keySeparator===undefined){this.options.keySeparator="."}if(this.options.ignoreJSONStructure===undefined){this.options.ignoreJSONStructure=true}}addNamespaces(t){if(this.options.ns.indexOf(t)<0){this.options.ns.push(t)}}removeNamespaces(t){const e=this.options.ns.indexOf(t);if(e>-1){this.options.ns.splice(e,1)}}getResource(e,s,i,n={}){const r=n.keySeparator!==undefined?n.keySeparator:this.options.keySeparator;const o=n.ignoreJSONStructure!==undefined?n.ignoreJSONStructure:this.options.ignoreJSONStructure;let a;if(e.indexOf(".")>-1){a=e.split(".")}else{a=[e,s];if(i){if(Array.isArray(i)){a.push(...i)}else if(t(i)&&r){a.push(...i.split(r))}else{a.push(i)}}}const l=f(this.data,a);if(!l&&!s&&!i&&e.indexOf(".")>-1){e=a[0];s=a[1];i=a.slice(2).join(".")}if(l||!o||!t(i))return l;return w(this.data?.[e]?.[s],i,r)}addResource(t,e,s,i,n={silent:false}){const r=n.keySeparator!==undefined?n.keySeparator:this.options.keySeparator;let o=[t,e];if(s)o=o.concat(r?s.split(r):s);if(t.indexOf(".")>-1){o=t.split(".");i=e;e=o[1]}this.addNamespaces(e);l(this.data,o,i);if(!n.silent)this.emit("added",t,e,s,i)}addResources(e,s,i,n={silent:false}){for(const n in i){if(t(i[n])||Array.isArray(i[n]))this.addResource(e,s,n,i[n],{silent:true})}if(!n.silent)this.emit("added",e,s,i)}addResourceBundle(t,e,s,i,n,r={silent:false,skipCopy:false}){let o=[t,e];if(t.indexOf(".")>-1){o=t.split(".");i=s;s=e;e=o[1]}this.addNamespaces(e);let a=f(this.data,o)||{};if(!r.skipCopy)s=JSON.parse(JSON.stringify(s));if(i){c(a,s,n)}else{a={...a,...s}}l(this.data,o,a);if(!r.silent)this.emit("added",t,e,s)}removeResourceBundle(t,e){if(this.hasResourceBundle(t,e)){delete this.data[t][e]}this.removeNamespaces(e);this.emit("removed",t,e)}hasResourceBundle(t,e){return this.getResource(t,e)!==undefined}getResourceBundle(t,e){if(!e)e=this.options.defaultNS;return this.getResource(t,e)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const e=this.getDataByLanguage(t);const s=e&&Object.keys(e)||[];return!!s.find((t=>e[t]&&Object.keys(e[t]).length>0))}toJSON(){return this.data}}var x={processors:{},addPostProcessor(t){this.processors[t.name]=t},handle(t,e,s,i,n){t.forEach((t=>{e=this.processors[t]?.process(e,s,i,n)??e}));return e}};const L=Symbol("i18next/PATH_KEY");function _(){const t=[];const e=Object.create(null);let s;e.get=(i,n)=>{s?.revoke?.();if(n===L)return t;t.push(n);s=Proxy.revocable(i,e);return s.proxy};return Proxy.revocable(Object.create(null),e).proxy}function E(t,e){const{[L]:s}=t(_());return s.join(e?.keySeparator??".")}const T={};const j=e=>!t(e)&&typeof e!=="boolean"&&typeof e!=="number";class N extends v{constructor(t,e={}){super();i(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this);this.options=e;if(this.options.keySeparator===undefined){this.options.keySeparator="."}this.logger=S.create("translator")}changeLanguage(t){if(t)this.language=t}exists(t,e={interpolation:{}}){const s={...e};if(t==null)return false;const i=this.resolve(t,s);if(i?.res===undefined)return false;const n=j(i.res);if(s.returnObjects===false&&n){return false}return true}extractFromKey(e,s){let i=s.nsSeparator!==undefined?s.nsSeparator:this.options.nsSeparator;if(i===undefined)i=":";const n=s.keySeparator!==undefined?s.keySeparator:this.options.keySeparator;let r=s.ns||this.options.defaultNS||[];const o=i&&e.indexOf(i)>-1;const a=!this.options.userDefinedKeySeparator&&!s.keySeparator&&!this.options.userDefinedNsSeparator&&!s.nsSeparator&&!$(e,i,n);if(o&&!a){const s=e.match(this.interpolator.nestingRegexp);if(s&&s.length>0){return{key:e,namespaces:t(r)?[r]:r}}const o=e.split(i);if(i!==n||i===n&&this.options.ns.indexOf(o[0])>-1)r=o.shift();e=o.join(n)}return{key:e,namespaces:t(r)?[r]:r}}translate(e,s,i){let n=typeof s==="object"?{...s}:s;if(typeof n!=="object"&&this.options.overloadTranslationOptionHandler){n=this.options.overloadTranslationOptionHandler(arguments)}if(typeof n==="object")n={...n};if(!n)n={};if(e==null)return"";if(typeof e==="function")e=E(e,{...this.options,...n});if(!Array.isArray(e))e=[String(e)];const r=n.returnDetails!==undefined?n.returnDetails:this.options.returnDetails;const o=n.keySeparator!==undefined?n.keySeparator:this.options.keySeparator;const{key:a,namespaces:l}=this.extractFromKey(e[e.length-1],n);const h=l[l.length-1];let f=n.nsSeparator!==undefined?n.nsSeparator:this.options.nsSeparator;if(f===undefined)f=":";const u=n.lng||this.language;const c=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u?.toLowerCase()==="cimode"){if(c){if(r){return{res:`${h}${f}${a}`,usedKey:a,exactUsedKey:a,usedLng:u,usedNS:h,usedParams:this.getUsedParamsDetails(n)}}return`${h}${f}${a}`}if(r){return{res:a,usedKey:a,exactUsedKey:a,usedLng:u,usedNS:h,usedParams:this.getUsedParamsDetails(n)}}return a}const d=this.resolve(e,n);let p=d?.res;const g=d?.usedKey||a;const m=d?.exactUsedKey||a;const y=["[object Number]","[object Function]","[object RegExp]"];const b=n.joinArrays!==undefined?n.joinArrays:this.options.joinArrays;const $=!this.i18nFormat||this.i18nFormat.handleAsObject;const w=n.count!==undefined&&!t(n.count);const O=N.hasDefaultValue(n);const A=w?this.pluralResolver.getSuffix(u,n.count,n):"";const k=n.ordinal&&w?this.pluralResolver.getSuffix(u,n.count,{ordinal:false}):"";const S=w&&!n.ordinal&&n.count===0;const v=S&&n[`defaultValue${this.options.pluralSeparator}zero`]||n[`defaultValue${A}`]||n[`defaultValue${k}`]||n.defaultValue;let R=p;if($&&!p&&O){R=v}const x=j(R);const L=Object.prototype.toString.apply(R);if($&&R&&x&&y.indexOf(L)<0&&!(t(b)&&Array.isArray(R))){if(!n.returnObjects&&!this.options.returnObjects){if(!this.options.returnedObjectHandler){this.logger.warn("accessing an object - but returnObjects options is not enabled!")}const t=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,R,{...n,ns:l}):`key '${a} (${this.language})' returned an object instead of string.`;if(r){d.res=t;d.usedParams=this.getUsedParamsDetails(n);return d}return t}if(o){const t=Array.isArray(R);const e=t?[]:{};const s=t?m:g;for(const t in R){if(Object.prototype.hasOwnProperty.call(R,t)){const i=`${s}${o}${t}`;if(O&&!p){e[t]=this.translate(i,{...n,defaultValue:j(v)?v[t]:undefined,...{joinArrays:false,ns:l}})}else{e[t]=this.translate(i,{...n,...{joinArrays:false,ns:l}})}if(e[t]===i)e[t]=R[t]}}p=e}}else if($&&t(b)&&Array.isArray(p)){p=p.join(b);if(p)p=this.extendTranslation(p,e,n,i)}else{let t=false;let s=false;if(!this.isValidLookup(p)&&O){t=true;p=v}if(!this.isValidLookup(p)){s=true;p=a}const r=n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey;const l=r&&s?undefined:p;const c=O&&v!==p&&this.options.updateMissing;if(s||t||c){this.logger.log(c?"updateKey":"missingKey",u,h,a,c?v:p);if(o){const t=this.resolve(a,{...n,keySeparator:false});if(t&&t.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 t=[];const e=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&e&&e[0]){for(let s=0;s<e.length;s++){t.push(e[s])}}else if(this.options.saveMissingTo==="all"){t=this.languageUtils.toResolveHierarchy(n.lng||this.language)}else{t.push(n.lng||this.language)}const s=(t,e,s)=>{const i=O&&s!==p?s:l;if(this.options.missingKeyHandler){this.options.missingKeyHandler(t,h,e,i,c,n)}else if(this.backendConnector?.saveMissing){this.backendConnector.saveMissing(t,h,e,i,c,n)}this.emit("missingKey",t,h,e,p)};if(this.options.saveMissing){if(this.options.saveMissingPlurals&&w){t.forEach((t=>{const e=this.pluralResolver.getSuffixes(t,n);if(S&&n[`defaultValue${this.options.pluralSeparator}zero`]&&e.indexOf(`${this.options.pluralSeparator}zero`)<0){e.push(`${this.options.pluralSeparator}zero`)}e.forEach((e=>{s([t],a+e,n[`defaultValue${e}`]||v)}))}))}else{s(t,a,v)}}}p=this.extendTranslation(p,e,n,d,i);if(s&&p===a&&this.options.appendNamespaceToMissingKey){p=`${h}${f}${a}`}if((s||t)&&this.options.parseMissingKeyHandler){p=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${h}${f}${a}`:a,t?p:undefined,n)}}if(r){d.res=p;d.usedParams=this.getUsedParamsDetails(n);return d}return p}extendTranslation(e,s,i,n,r){if(this.i18nFormat?.parse){e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...i},i.lng||this.language||n.usedLng,n.usedNS,n.usedKey,{resolved:n})}else if(!i.skipInterpolation){if(i.interpolation)this.interpolator.init({...i,...{interpolation:{...this.options.interpolation,...i.interpolation}}});const o=t(e)&&(i?.interpolation?.skipOnVariables!==undefined?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let a;if(o){const t=e.match(this.interpolator.nestingRegexp);a=t&&t.length}let l=i.replace&&!t(i.replace)?i.replace:i;if(this.options.interpolation.defaultVariables)l={...this.options.interpolation.defaultVariables,...l};e=this.interpolator.interpolate(e,l,i.lng||this.language||n.usedLng,i);if(o){const t=e.match(this.interpolator.nestingRegexp);const s=t&&t.length;if(a<s)i.nest=false}if(!i.lng&&n&&n.res)i.lng=this.language||n.usedLng;if(i.nest!==false)e=this.interpolator.nest(e,((...t)=>{if(r?.[0]===t[0]&&!i.context){this.logger.warn(`It seems you are nesting recursively key: ${t[0]} in key: ${s[0]}`);return null}return this.translate(...t,s)}),i);if(i.interpolation)this.interpolator.reset()}const o=i.postProcess||this.options.postProcess;const a=t(o)?[o]:o;if(e!=null&&a?.length&&i.applyPostProcessor!==false){e=x.handle(a,e,s,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...n,usedParams:this.getUsedParamsDetails(i)},...i}:i,this)}return e}resolve(e,s={}){let i;let n;let r;let o;let a;if(t(e))e=[e];e.forEach((e=>{if(this.isValidLookup(i))return;const l=this.extractFromKey(e,s);const h=l.key;n=h;let f=l.namespaces;if(this.options.fallbackNS)f=f.concat(this.options.fallbackNS);const u=s.count!==undefined&&!t(s.count);const c=u&&!s.ordinal&&s.count===0;const d=s.context!==undefined&&(t(s.context)||typeof s.context==="number")&&s.context!=="";const p=s.lngs?s.lngs:this.languageUtils.toResolveHierarchy(s.lng||this.language,s.fallbackLng);f.forEach((t=>{if(this.isValidLookup(i))return;a=t;if(!T[`${p[0]}-${t}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(a)){T[`${p[0]}-${t}`]=true;this.logger.warn(`key "${n}" for languages "${p.join(", ")}" won't get resolved as 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!!!")}p.forEach((e=>{if(this.isValidLookup(i))return;o=e;const n=[h];if(this.i18nFormat?.addLookupKeys){this.i18nFormat.addLookupKeys(n,h,e,t,s)}else{let t;if(u)t=this.pluralResolver.getSuffix(e,s.count,s);const i=`${this.options.pluralSeparator}zero`;const r=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(u){if(s.ordinal&&t.indexOf(r)===0){n.push(h+t.replace(r,this.options.pluralSeparator))}n.push(h+t);if(c){n.push(h+i)}}if(d){const e=`${h}${this.options.contextSeparator||"_"}${s.context}`;n.push(e);if(u){if(s.ordinal&&t.indexOf(r)===0){n.push(e+t.replace(r,this.options.pluralSeparator))}n.push(e+t);if(c){n.push(e+i)}}}}let a;while(a=n.pop()){if(!this.isValidLookup(i)){r=a;i=this.getResource(e,t,a,s)}}}))}))}));return{res:i,usedKey:n,exactUsedKey:r,usedLng:o,usedNS:a}}isValidLookup(t){return t!==undefined&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,e,s,i={}){if(this.i18nFormat?.getResource)return this.i18nFormat.getResource(t,e,s,i);return this.resourceStore.getResource(t,e,s,i)}getUsedParamsDetails(e={}){const s=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"];const i=e.replace&&!t(e.replace);let n=i?e.replace:e;if(i&&typeof e.count!=="undefined"){n.count=e.count}if(this.options.interpolation.defaultVariables){n={...this.options.interpolation.defaultVariables,...n}}if(!i){n={...n};for(const t of s){delete n[t]}}return n}static hasDefaultValue(t){const e="defaultValue";for(const s in t){if(Object.prototype.hasOwnProperty.call(t,s)&&e===s.substring(0,e.length)&&undefined!==t[s]){return true}}return false}}class I{constructor(t){this.options=t;this.supportedLngs=this.options.supportedLngs||false;this.logger=S.create("languageUtils")}getScriptPartFromCode(t){t=O(t);if(!t||t.indexOf("-")<0)return null;const e=t.split("-");if(e.length===2)return null;e.pop();if(e[e.length-1].toLowerCase()==="x")return null;return this.formatLanguageCode(e.join("-"))}getLanguagePartFromCode(t){t=O(t);if(!t||t.indexOf("-")<0)return t;const e=t.split("-");return this.formatLanguageCode(e[0])}formatLanguageCode(e){if(t(e)&&e.indexOf("-")>-1){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch(t){}if(t&&this.options.lowerCaseLng){t=t.toLowerCase()}if(t)return t;if(this.options.lowerCaseLng){return e.toLowerCase()}return e}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(t){if(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs){t=this.getLanguagePartFromCode(t)}return!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let e;t.forEach((t=>{if(e)return;const s=this.formatLanguageCode(t);if(!this.options.supportedLngs||this.isSupportedCode(s))e=s}));if(!e&&this.options.supportedLngs){t.forEach((t=>{if(e)return;const s=this.getScriptPartFromCode(t);if(this.isSupportedCode(s))return e=s;const i=this.getLanguagePartFromCode(t);if(this.isSupportedCode(i))return e=i;e=this.options.supportedLngs.find((t=>{if(t===i)return t;if(t.indexOf("-")<0&&i.indexOf("-")<0)return;if(t.indexOf("-")>0&&i.indexOf("-")<0&&t.substring(0,t.indexOf("-"))===i)return t;if(t.indexOf(i)===0&&i.length>1)return t}))}))}if(!e)e=this.getFallbackCodes(this.options.fallbackLng)[0];return e}getFallbackCodes(e,s){if(!e)return[];if(typeof e==="function")e=e(s);if(t(e))e=[e];if(Array.isArray(e))return e;if(!s)return e.default||[];let i=e[s];if(!i)i=e[this.getScriptPartFromCode(s)];if(!i)i=e[this.formatLanguageCode(s)];if(!i)i=e[this.getLanguagePartFromCode(s)];if(!i)i=e.default;return i||[]}toResolveHierarchy(e,s){const i=this.getFallbackCodes((s===false?[]:s)||this.options.fallbackLng||[],e);const n=[];const r=t=>{if(!t)return;if(this.isSupportedCode(t)){n.push(t)}else{this.logger.warn(`rejecting language code not found in supportedLngs: ${t}`)}};if(t(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)){if(this.options.load!=="languageOnly")r(this.formatLanguageCode(e));if(this.options.load!=="languageOnly"&&this.options.load!=="currentOnly")r(this.getScriptPartFromCode(e));if(this.options.load!=="currentOnly")r(this.getLanguagePartFromCode(e))}else if(t(e)){r(this.formatLanguageCode(e))}i.forEach((t=>{if(n.indexOf(t)<0)r(this.formatLanguageCode(t))}));return n}}const P={zero:0,one:1,two:2,few:3,many:4,other:5};const C={select:t=>t===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class D{constructor(t,e={}){this.languageUtils=t;this.options=e;this.logger=S.create("pluralResolver");this.pluralRulesCache={}}addRule(t,e){this.rules[t]=e}clearCache(){this.pluralRulesCache={}}getRule(t,e={}){const s=O(t==="dev"?"en":t);const i=e.ordinal?"ordinal":"cardinal";const n=JSON.stringify({cleanedCode:s,type:i});if(n in this.pluralRulesCache){return this.pluralRulesCache[n]}let r;try{r=new Intl.PluralRules(s,{type:i})}catch(s){if(!Intl){this.logger.error("No Intl support, please use an Intl polyfill!");return C}if(!t.match(/-|_/))return C;const i=this.languageUtils.getLanguagePartFromCode(t);r=this.getRule(i,e)}this.pluralRulesCache[n]=r;return r}needsPlural(t,e={}){let s=this.getRule(t,e);if(!s)s=this.getRule("dev",e);return s?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(t,e,s={}){return this.getSuffixes(t,s).map((t=>`${e}${t}`))}getSuffixes(t,e={}){let s=this.getRule(t,e);if(!s)s=this.getRule("dev",e);if(!s)return[];return s.resolvedOptions().pluralCategories.sort(((t,e)=>P[t]-P[e])).map((t=>`${this.options.prepend}${e.ordinal?`ordinal${this.options.prepend}`:""}${t}`))}getSuffix(t,e,s={}){const i=this.getRule(t,s);if(i){return`${this.options.prepend}${s.ordinal?`ordinal${this.options.prepend}`:""}${i.select(e)}`}this.logger.warn(`no plural rule found for: ${t}`);return this.getSuffix("dev",e,s)}}const U=(e,s,i,n=".",r=true)=>{let o=u(e,s,i);if(!o&&r&&t(i)){o=w(e,i,n);if(o===undefined)o=w(s,i,n)}return o};const M=t=>t.replace(/\$/g,"$$$$");class F{constructor(t={}){this.logger=S.create("interpolator");this.options=t;this.format=t?.interpolation?.format||(t=>t);this.init(t)}init(t={}){if(!t.interpolation)t.interpolation={escapeValue:true};const{escape:e,escapeValue:s,useRawValueToEscape:i,prefix:n,prefixEscaped:r,suffix:o,suffixEscaped:a,formatSeparator:l,unescapeSuffix:h,unescapePrefix:f,nestingPrefix:u,nestingPrefixEscaped:c,nestingSuffix:p,nestingSuffixEscaped:m,nestingOptionsSeparator:y,maxReplaces:b,alwaysFormat:$}=t.interpolation;this.escape=e!==undefined?e:g;this.escapeValue=s!==undefined?s:true;this.useRawValueToEscape=i!==undefined?i:false;this.prefix=n?d(n):r||"{{";this.suffix=o?d(o):a||"}}";this.formatSeparator=l||",";this.unescapePrefix=h?"":f||"-";this.unescapeSuffix=this.unescapePrefix?"":h||"";this.nestingPrefix=u?d(u):c||d("$t(");this.nestingSuffix=p?d(p):m||d(")");this.nestingOptionsSeparator=y||",";this.maxReplaces=b||1e3;this.alwaysFormat=$!==undefined?$:false;this.resetRegExp()}reset(){if(this.options)this.init(this.options)}resetRegExp(){const t=(t,e)=>{if(t?.source===e){t.lastIndex=0;return t}return new RegExp(e,"g")};this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`);this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,i,n,r){let o;let a;let l;const h=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};const f=t=>{if(t.indexOf(this.formatSeparator)<0){const e=U(i,h,t,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(e,undefined,n,{...r,...i,interpolationkey:t}):e}const e=t.split(this.formatSeparator);const s=e.shift().trim();const o=e.join(this.formatSeparator).trim();return this.format(U(i,h,s,this.options.keySeparator,this.options.ignoreJSONStructure),o,n,{...r,...i,interpolationkey:s})};this.resetRegExp();const u=r?.missingInterpolationHandler||this.options.missingInterpolationHandler;const c=r?.interpolation?.skipOnVariables!==undefined?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;const d=[{regex:this.regexpUnescape,safeValue:t=>M(t)},{regex:this.regexp,safeValue:t=>this.escapeValue?M(this.escape(t)):M(t)}];d.forEach((i=>{l=0;while(o=i.regex.exec(e)){const n=o[1].trim();a=f(n);if(a===undefined){if(typeof u==="function"){const s=u(e,o,r);a=t(s)?s:""}else if(r&&Object.prototype.hasOwnProperty.call(r,n)){a=""}else if(c){a=o[0];continue}else{this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`);a=""}}else if(!t(a)&&!this.useRawValueToEscape){a=s(a)}const h=i.safeValue(a);e=e.replace(o[0],h);if(c){i.regex.lastIndex+=a.length;i.regex.lastIndex-=o[0].length}else{i.regex.lastIndex=0}l++;if(l>=this.maxReplaces){break}}}));return e}nest(e,i,n={}){let r;let o;let a;const l=(t,e)=>{const s=this.nestingOptionsSeparator;if(t.indexOf(s)<0)return t;const i=t.split(new RegExp(`${s}[ ]*{`));let n=`{${i[1]}`;t=i[0];n=this.interpolate(n,a);const r=n.match(/'/g);const o=n.match(/"/g);if((r?.length??0)%2===0&&!o||o.length%2!==0){n=n.replace(/'/g,'"')}try{a=JSON.parse(n);if(e)a={...e,...a}}catch(e){this.logger.warn(`failed parsing options string in nesting for key ${t}`,e);return`${t}${s}${n}`}if(a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1)delete a.defaultValue;return t};while(r=this.nestingRegexp.exec(e)){let h=[];a={...n};a=a.replace&&!t(a.replace)?a.replace:a;a.applyPostProcessor=false;delete a.defaultValue;const f=/{.*}/.test(r[1])?r[1].lastIndexOf("}")+1:r[1].indexOf(this.formatSeparator);if(f!==-1){h=r[1].slice(f).split(this.formatSeparator).map((t=>t.trim())).filter(Boolean);r[1]=r[1].slice(0,f)}o=i(l.call(this,r[1].trim(),a),a);if(o&&r[0]===e&&!t(o))return o;if(!t(o))o=s(o);if(!o){this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`);o=""}if(h.length){o=h.reduce(((t,e)=>this.format(t,e,n.lng,{...n,interpolationkey:r[1].trim()})),o.trim())}e=e.replace(r[0],o);this.regexp.lastIndex=0}return e}}const z=t=>{let e=t.toLowerCase().trim();const s={};if(t.indexOf("(")>-1){const i=t.split("(");e=i[0].toLowerCase().trim();const n=i[1].substring(0,i[1].length-1);if(e==="currency"&&n.indexOf(":")<0){if(!s.currency)s.currency=n.trim()}else if(e==="relativetime"&&n.indexOf(":")<0){if(!s.range)s.range=n.trim()}else{const t=n.split(";");t.forEach((t=>{if(t){const[e,...i]=t.split(":");const n=i.join(":").trim().replace(/^'+|'+$/g,"");const r=e.trim();if(!s[r])s[r]=n;if(n==="false")s[r]=false;if(n==="true")s[r]=true;if(!isNaN(n))s[r]=parseInt(n,10)}}))}}return{formatName:e,formatOptions:s}};const B=t=>{const e={};return(s,i,n)=>{let r=n;if(n&&n.interpolationkey&&n.formatParams&&n.formatParams[n.interpolationkey]&&n[n.interpolationkey]){r={...r,[n.interpolationkey]:undefined}}const o=i+JSON.stringify(r);let a=e[o];if(!a){a=t(O(i),n);e[o]=a}return a(s)}};const V=t=>(e,s,i)=>t(O(s),i)(e);class K{constructor(t={}){this.logger=S.create("formatter");this.options=t;this.init(t)}init(t,e={interpolation:{}}){this.formatSeparator=e.interpolation.formatSeparator||",";const s=e.cacheInBuiltFormats?B:V;this.formats={number:s(((t,e)=>{const s=new Intl.NumberFormat(t,{...e});return t=>s.format(t)})),currency:s(((t,e)=>{const s=new Intl.NumberFormat(t,{...e,style:"currency"});return t=>s.format(t)})),datetime:s(((t,e)=>{const s=new Intl.DateTimeFormat(t,{...e});return t=>s.format(t)})),relativetime:s(((t,e)=>{const s=new Intl.RelativeTimeFormat(t,{...e});return t=>s.format(t,e.range||"day")})),list:s(((t,e)=>{const s=new Intl.ListFormat(t,{...e});return t=>s.format(t)}))}}add(t,e){this.formats[t.toLowerCase().trim()]=e}addCached(t,e){this.formats[t.toLowerCase().trim()]=B(e)}format(t,e,s,i={}){const n=e.split(this.formatSeparator);if(n.length>1&&n[0].indexOf("(")>1&&n[0].indexOf(")")<0&&n.find((t=>t.indexOf(")")>-1))){const t=n.findIndex((t=>t.indexOf(")")>-1));n[0]=[n[0],...n.splice(1,t)].join(this.formatSeparator)}const r=n.reduce(((t,e)=>{const{formatName:n,formatOptions:r}=z(e);if(this.formats[n]){let e=t;try{const o=i?.formatParams?.[i.interpolationkey]||{};const a=o.locale||o.lng||i.locale||i.lng||s;e=this.formats[n](t,a,{...r,...i,...o})}catch(t){this.logger.warn(t)}return e}else{this.logger.warn(`there was no format function for ${n}`)}return t}),t);return r}}const Y=(t,e)=>{if(t.pending[e]!==undefined){delete t.pending[e];t.pendingCount--}};class W extends v{constructor(t,e,s,i={}){super();this.backend=t;this.store=e;this.services=s;this.languageUtils=s.languageUtils;this.options=i;this.logger=S.create("backendConnector");this.waitingReads=[];this.maxParallelReads=i.maxParallelReads||10;this.readingCalls=0;this.maxRetries=i.maxRetries>=0?i.maxRetries:5;this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350;this.state={};this.queue=[];this.backend?.init?.(s,i.backend,i)}queueLoad(t,e,s,i){const n={};const r={};const o={};const a={};t.forEach((t=>{let i=true;e.forEach((e=>{const o=`${t}|${e}`;if(!s.reload&&this.store.hasResourceBundle(t,e)){this.state[o]=2}else if(this.state[o]<0);else if(this.state[o]===1){if(r[o]===undefined)r[o]=true}else{this.state[o]=1;i=false;if(r[o]===undefined)r[o]=true;if(n[o]===undefined)n[o]=true;if(a[e]===undefined)a[e]=true}}));if(!i)o[t]=true}));if(Object.keys(n).length||Object.keys(r).length){this.queue.push({pending:r,pendingCount:Object.keys(r).length,loaded:{},errors:[],callback:i})}return{toLoad:Object.keys(n),pending:Object.keys(r),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(a)}}loaded(t,e,s){const i=t.split("|");const n=i[0];const r=i[1];if(e)this.emit("failedLoading",n,r,e);if(!e&&s){this.store.addResourceBundle(n,r,s,undefined,undefined,{skipCopy:true})}this.state[t]=e?-1:2;if(e&&s)this.state[t]=0;const o={};this.queue.forEach((s=>{h(s.loaded,[n],r);Y(s,t);if(e)s.errors.push(e);if(s.pendingCount===0&&!s.done){Object.keys(s.loaded).forEach((t=>{if(!o[t])o[t]={};const e=s.loaded[t];if(e.length){e.forEach((e=>{if(o[t][e]===undefined)o[t][e]=true}))}}));s.done=true;if(s.errors.length){s.callback(s.errors)}else{s.callback()}}}));this.emit("loaded",o);this.queue=this.queue.filter((t=>!t.done))}read(t,e,s,i=0,n=this.retryTimeout,r){if(!t.length)return r(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:e,fcName:s,tried:i,wait:n,callback:r});return}this.readingCalls++;const o=(o,a)=>{this.readingCalls--;if(this.waitingReads.length>0){const t=this.waitingReads.shift();this.read(t.lng,t.ns,t.fcName,t.tried,t.wait,t.callback)}if(o&&a&&i<this.maxRetries){setTimeout((()=>{this.read.call(this,t,e,s,i+1,n*2,r)}),n);return}r(o,a)};const a=this.backend[s].bind(this.backend);if(a.length===2){try{const s=a(t,e);if(s&&typeof s.then==="function"){s.then((t=>o(null,t))).catch(o)}else{o(null,s)}}catch(t){o(t)}return}return a(t,e,o)}prepareLoading(e,s,i={},n){if(!this.backend){this.logger.warn("No backend was added via i18next.use. Will not load resources.");return n&&n()}if(t(e))e=this.languageUtils.toResolveHierarchy(e);if(t(s))s=[s];const r=this.queueLoad(e,s,i,n);if(!r.toLoad.length){if(!r.pending.length)n();return null}r.toLoad.forEach((t=>{this.loadOne(t)}))}load(t,e,s){this.prepareLoading(t,e,{},s)}reload(t,e,s){this.prepareLoading(t,e,{reload:true},s)}loadOne(t,e=""){const s=t.split("|");const i=s[0];const n=s[1];this.read(i,n,"read",undefined,undefined,((s,r)=>{if(s)this.logger.warn(`${e}loading namespace ${n} for language ${i} failed`,s);if(!s&&r)this.logger.log(`${e}loaded namespace ${n} for language ${i}`,r);this.loaded(t,s,r)}))}saveMissing(t,e,s,i,n,r={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(e)){this.logger.warn(`did not save key "${s}" as the namespace "${e}" 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===undefined||s===null||s==="")return;if(this.backend?.create){const a={...r,isUpdate:n};const l=this.backend.create.bind(this.backend);if(l.length<6){try{let n;if(l.length===5){n=l(t,e,s,i,a)}else{n=l(t,e,s,i)}if(n&&typeof n.then==="function"){n.then((t=>o(null,t))).catch(o)}else{o(null,n)}}catch(t){o(t)}}else{l(t,e,s,i,o,a)}}if(!t||!t[0])return;this.store.addResource(t[0],e,s,i)}}const J=()=>({debug:false,initAsync:true,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:false,supportedLngs:false,nonExplicitSupportedLngs:false,load:"all",preload:false,simplifyPluralSuffix:true,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:false,saveMissing:false,updateMissing:false,saveMissingTo:"fallback",saveMissingPlurals:true,missingKeyHandler:false,missingInterpolationHandler:false,postProcess:false,postProcessPassResolved:false,returnNull:false,returnEmptyString:true,returnObjects:false,joinArrays:false,returnedObjectHandler:false,parseMissingKeyHandler:false,appendNamespaceToMissingKey:false,appendNamespaceToCIMode:false,overloadTranslationOptionHandler:e=>{let s={};if(typeof e[1]==="object")s=e[1];if(t(e[1]))s.defaultValue=e[1];if(t(e[2]))s.tDescription=e[2];if(typeof e[2]==="object"||typeof e[3]==="object"){const t=e[3]||e[2];Object.keys(t).forEach((e=>{s[e]=t[e]}))}return s},interpolation:{escapeValue:true,format:t=>t,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:true},cacheInBuiltFormats:true});const H=e=>{if(t(e.ns))e.ns=[e.ns];if(t(e.fallbackLng))e.fallbackLng=[e.fallbackLng];if(t(e.fallbackNS))e.fallbackNS=[e.fallbackNS];if(e.supportedLngs?.indexOf?.("cimode")<0){e.supportedLngs=e.supportedLngs.concat(["cimode"])}if(typeof e.initImmediate==="boolean")e.initAsync=e.initImmediate;return e};const Z=()=>{};const q=t=>{const e=Object.getOwnPropertyNames(Object.getPrototypeOf(t));e.forEach((e=>{if(typeof t[e]==="function"){t[e]=t[e].bind(t)}}))};class G extends v{constructor(t={},e){super();this.options=H(t);this.services={};this.logger=S;this.modules={external:[]};q(this);if(e&&!this.isInitialized&&!t.isClone){if(!this.options.initAsync){this.init(t,e);return this}setTimeout((()=>{this.init(t,e)}),0)}}init(s={},i){this.isInitializing=true;if(typeof s==="function"){i=s;s={}}if(s.defaultNS==null&&s.ns){if(t(s.ns)){s.defaultNS=s.ns}else if(s.ns.indexOf("translation")<0){s.defaultNS=s.ns[0]}}const n=J();this.options={...n,...this.options,...H(s)};this.options.interpolation={...n.interpolation,...this.options.interpolation};if(s.keySeparator!==undefined){this.options.userDefinedKeySeparator=s.keySeparator}if(s.nsSeparator!==undefined){this.options.userDefinedNsSeparator=s.nsSeparator}const r=t=>{if(!t)return null;if(typeof t==="function")return new t;return t};if(!this.options.isClone){if(this.modules.logger){S.init(r(this.modules.logger),this.options)}else{S.init(null,this.options)}let t;if(this.modules.formatter){t=this.modules.formatter}else{t=K}const e=new I(this.options);this.store=new R(this.options.resources,this.options);const s=this.services;s.logger=S;s.resourceStore=this.store;s.languageUtils=e;s.pluralResolver=new D(e,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix});const i=this.options.interpolation.format&&this.options.interpolation.format!==n.interpolation.format;if(i){this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`)}if(t&&(!this.options.interpolation.format||this.options.interpolation.format===n.interpolation.format)){s.formatter=r(t);if(s.formatter.init)s.formatter.init(s,this.options);this.options.interpolation.format=s.formatter.format.bind(s.formatter)}s.interpolator=new F(this.options);s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)};s.backendConnector=new W(r(this.modules.backend),s.resourceStore,s,this.options);s.backendConnector.on("*",((t,...e)=>{this.emit(t,...e)}));if(this.modules.languageDetector){s.languageDetector=r(this.modules.languageDetector);if(s.languageDetector.init)s.languageDetector.init(s,this.options.detection,this.options)}if(this.modules.i18nFormat){s.i18nFormat=r(this.modules.i18nFormat);if(s.i18nFormat.init)s.i18nFormat.init(this)}this.translator=new N(this.services,this.options);this.translator.on("*",((t,...e)=>{this.emit(t,...e)}));this.modules.external.forEach((t=>{if(t.init)t.init(this)}))}this.format=this.options.interpolation.format;if(!i)i=Z;if(this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const t=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);if(t.length>0&&t[0]!=="dev")this.options.lng=t[0]}if(!this.services.languageDetector&&!this.options.lng){this.logger.warn("init: no languageDetector is used and no lng is defined")}const o=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];o.forEach((t=>{this[t]=(...e)=>this.store[t](...e)}));const a=["addResource","addResources","addResourceBundle","removeResourceBundle"];a.forEach((t=>{this[t]=(...e)=>{this.store[t](...e);return this}}));const l=e();const h=()=>{const t=(t,e)=>{this.isInitializing=false;if(this.isInitialized&&!this.initializedStoreOnce)this.logger.warn("init: i18next is already initialized. You should call init just once!");this.isInitialized=true;if(!this.options.isClone)this.logger.log("initialized",this.options);this.emit("initialized",this.options);l.resolve(e);i(t,e)};if(this.languages&&!this.isInitialized)return t(null,this.t.bind(this));this.changeLanguage(this.options.lng,t)};if(this.options.resources||!this.options.initAsync){h()}else{setTimeout(h,0)}return l}loadResources(e,s=Z){let i=s;const n=t(e)?e:this.language;if(typeof e==="function")i=e;if(!this.options.resources||this.options.partialBundledLanguages){if(n?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return i();const t=[];const e=e=>{if(!e)return;if(e==="cimode")return;const s=this.services.languageUtils.toResolveHierarchy(e);s.forEach((e=>{if(e==="cimode")return;if(t.indexOf(e)<0)t.push(e)}))};if(!n){const t=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);t.forEach((t=>e(t)))}else{e(n)}this.options.preload?.forEach?.((t=>e(t)));this.services.backendConnector.load(t,this.options.ns,(t=>{if(!t&&!this.resolvedLanguage&&this.language)this.setResolvedLanguage(this.language);i(t)}))}else{i(null)}}reloadResources(t,s,i){const n=e();if(typeof t==="function"){i=t;t=undefined}if(typeof s==="function"){i=s;s=undefined}if(!t)t=this.languages;if(!s)s=this.options.ns;if(!i)i=Z;this.services.backendConnector.reload(t,s,(t=>{n.resolve();i(t)}));return n}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");if(t.type==="backend"){this.modules.backend=t}if(t.type==="logger"||t.log&&t.warn&&t.error){this.modules.logger=t}if(t.type==="languageDetector"){this.modules.languageDetector=t}if(t.type==="i18nFormat"){this.modules.i18nFormat=t}if(t.type==="postProcessor"){x.addPostProcessor(t)}if(t.type==="formatter"){this.modules.formatter=t}if(t.type==="3rdParty"){this.modules.external.push(t)}return this}setResolvedLanguage(t){if(!t||!this.languages)return;if(["cimode","dev"].indexOf(t)>-1)return;for(let t=0;t<this.languages.length;t++){const e=this.languages[t];if(["cimode","dev"].indexOf(e)>-1)continue;if(this.store.hasLanguageSomeTranslations(e)){this.resolvedLanguage=e;break}}if(!this.resolvedLanguage&&this.languages.indexOf(t)<0&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;this.languages.unshift(t)}}changeLanguage(s,i){this.isLanguageChangingTo=s;const n=e();this.emit("languageChanging",s);const r=t=>{this.language=t;this.languages=this.services.languageUtils.toResolveHierarchy(t);this.resolvedLanguage=undefined;this.setResolvedLanguage(t)};const o=(t,e)=>{if(e){if(this.isLanguageChangingTo===s){r(e);this.translator.changeLanguage(e);this.isLanguageChangingTo=undefined;this.emit("languageChanged",e);this.logger.log("languageChanged",e)}}else{this.isLanguageChangingTo=undefined}n.resolve(((...t)=>this.t(...t)));if(i)i(t,((...t)=>this.t(...t)))};const a=e=>{if(!s&&!e&&this.services.languageDetector)e=[];const i=t(e)?e:e&&e[0];const n=this.store.hasLanguageSomeTranslations(i)?i:this.services.languageUtils.getBestMatchFromCodes(t(e)?[e]:e);if(n){if(!this.language){r(n)}if(!this.translator.language)this.translator.changeLanguage(n);this.services.languageDetector?.cacheUserLanguage?.(n)}this.loadResources(n,(t=>{o(t,n)}))};if(!s&&this.services.languageDetector&&!this.services.languageDetector.async){a(this.services.languageDetector.detect())}else if(!s&&this.services.languageDetector&&this.services.languageDetector.async){if(this.services.languageDetector.detect.length===0){this.services.languageDetector.detect().then(a)}else{this.services.languageDetector.detect(a)}}else{a(s)}return n}getFixedT(e,s,i){const n=(t,e,...s)=>{let r;if(typeof e!=="object"){r=this.options.overloadTranslationOptionHandler([t,e].concat(s))}else{r={...e}}r.lng=r.lng||n.lng;r.lngs=r.lngs||n.lngs;r.ns=r.ns||n.ns;if(r.keyPrefix!=="")r.keyPrefix=r.keyPrefix||i||n.keyPrefix;const o=this.options.keySeparator||".";let a;if(r.keyPrefix&&Array.isArray(t)){a=t.map((t=>{if(typeof t==="function")t=E(t,{...this.options,...e});return`${r.keyPrefix}${o}${t}`}))}else{if(typeof t==="function")t=E(t,{...this.options,...e});a=r.keyPrefix?`${r.keyPrefix}${o}${t}`:t}return this.t(a,r)};if(t(e)){n.lng=e}else{n.lngs=e}n.ns=s;n.keyPrefix=i;return n}t(...t){return this.translator?.translate(...t)}exists(...t){return this.translator?.exists(...t)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t,e={}){if(!this.isInitialized){this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages);return false}if(!this.languages||!this.languages.length){this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages);return false}const s=e.lng||this.resolvedLanguage||this.languages[0];const i=this.options?this.options.fallbackLng:false;const n=this.languages[this.languages.length-1];if(s.toLowerCase()==="cimode")return true;const r=(t,e)=>{const s=this.services.backendConnector.state[`${t}|${e}`];return s===-1||s===0||s===2};if(e.precheck){const t=e.precheck(this,r);if(t!==undefined)return t}if(this.hasResourceBundle(s,t))return true;if(!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages)return true;if(r(s,t)&&(!i||r(n,t)))return true;return false}loadNamespaces(s,i){const n=e();if(!this.options.ns){if(i)i();return Promise.resolve()}if(t(s))s=[s];s.forEach((t=>{if(this.options.ns.indexOf(t)<0)this.options.ns.push(t)}));this.loadResources((t=>{n.resolve();if(i)i(t)}));return n}loadLanguages(s,i){const n=e();if(t(s))s=[s];const r=this.options.preload||[];const o=s.filter((t=>r.indexOf(t)<0&&this.services.languageUtils.isSupportedCode(t)));if(!o.length){if(i)i();return Promise.resolve()}this.options.preload=r.concat(o);this.loadResources((t=>{n.resolve();if(i)i(t)}));return n}dir(t){if(!t)t=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language);if(!t)return"rtl";try{const e=new Intl.Locale(t);if(e&&e.getTextInfo){const t=e.getTextInfo();if(t&&t.direction)return t.direction}}catch(t){}const e=["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"];const s=this.services?.languageUtils||new I(J());if(t.toLowerCase().indexOf("-latn")>1)return"ltr";return e.indexOf(s.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(t={},e){const s=new G(t,e);s.createInstance=G.createInstance;return s}cloneInstance(t={},e=Z){const s=t.forkResourceStore;if(s)delete t.forkResourceStore;const i={...this.options,...t,...{isClone:true}};const n=new G(i);if(t.debug!==undefined||t.prefix!==undefined){n.logger=n.logger.clone(t)}const r=["store","services","language"];r.forEach((t=>{n[t]=this[t]}));n.services={...this.services};n.services.utils={hasLoadedNamespace:n.hasLoadedNamespace.bind(n)};if(s){const t=Object.keys(this.store.data).reduce(((t,e)=>{t[e]={...this.store.data[e]};t[e]=Object.keys(t[e]).reduce(((s,i)=>{s[i]={...t[e][i]};return s}),t[e]);return t}),{});n.store=new R(t,i);n.services.resourceStore=n.store}if(t.interpolation)n.services.interpolator=new F(i);n.translator=new N(n.services,i);n.translator.on("*",((t,...e)=>{n.emit(t,...e)}));n.init(i,e);n.translator.options=i;n.translator.backendConnector.services.utils={hasLoadedNamespace:n.hasLoadedNamespace.bind(n)};return n}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const X=G.createInstance();const Q=X;Q.init({ns:["larva"],debug:false,defaultNS:"larva",fallbackLng:"en",lng:"en",interpolation:{escapeValue:false,formatSeparator:","},load:"languageOnly",saveMissing:false,resources:{en:{larva:{date:{months:{1:"January",2:"February",3:"March",4:"April",5:"May",6:"June",7:"July",8:"August",9:"September",10:"October",11:"November",12:"December"}},node:{more:"More",linkednodes:"Linked nodes"},cam:{tap_to_exit_fullscreen:"Tap to exit full screen mode"},log:{log:"Log",userRemoved:"User Removed, user id: {id}",resolved:"Resolved",armed:"Armed",nologs:"No Logs available."},log_entries:{},error_messages:{Timeout:"Request Timeout.",TIMEOUT:"Request Timeout.",UNKNOWN_ERROR:"Unknown error.",SECURITY_SYSTEM_NOT_INTIALIZED:"Security sytem not initalized.",AREA_ARM_FAILED_INVALID_ZONE_STATE:"All area zones needs to be closed.",AREA_ARM_FAILED_TROUBLES_EXIST:"There is uncleared trouble.",AREA_ARM_FAILED_FAULTS_EXIST:"There is uncleared trouble.",AREA_ARM_FAILED_ALREADY_ARMED:"Area allready armed.",AREA_ARM_FAILED_ALREADY_UNARMED:"Area allready unarmed.",AREA_TROUBLE_ALREADY_ACKED:"Trouble allready cleared.",AREA_TROUBLE_NOT_RESOLVED:"Trouble not resolved.",AREA_TROUBLE_ALREADY_RESOLVED:"Trouble allready resolved.",INVALID_TROUBLE_ID:"Invalid trouble.",INVALID_AREA_ID:"Invalid area.","jwt expired":"Token Expired. Please login again.","Unknown SubComponent":"Unknown SubComponent."},slidingDoor:{open:"Open",close:"Close",stop:"Stop",stateOpen:"Open",stateClosed:"Closed",stateOpening:"Opening",stateClosing:"Closing",stateUnknown:"Unknown"},twoPosController:{on:"On",off:"Off",auto:"Auto",target:"Target"},utilityMeter:{currentMonthReading:"Current month's meter reading:",currentMonthUsage:"Current month's usage:"},onoff:{on:"On",off:"Off",switchoff:"Switch Off",switchon:"Switch On"},door:{buzzOpen:"Buzz Open",toggleOpen:"Toggle Open",toggleLockUnlock:"Toggle lock/unlock",lock:"Lock",unlock:"Unlock",locked:"Locked",unlocked:"Unlocked",error:"System error"},elevators:{on_way:"Elevator is on it's way",call_canceled:"Your call was cancelled",call_canceled_short:"Cancelled",call_timeout:"Call failed with timeout",call_timeout_short:"Timeout",callto:"Call elevator to:",arrived:"Elevator arrived",arrived_short:"Arrived"},area:{arm:"Arm",disarm:"Disarm",armed:"Armed",disarmed:"Disarmed",partalArmedWithTrouble:"Part-armed",armedWithTouble:"Armed",partalArmed:"Partial Armed",selectZonesToBypass:"Select Zones you want to bypass.",partialarm:"Partial Arm",overrideAndBypass:"Override and Bypass",overridePartialArm:"Override and Partial Arm",overridearm:"Override and Arm",zonemonitor:"Zone Monitor",troubles:"Troubles & Alarms",entrydelay:"Entry Delay...{seconds}s",exitdelay:"Exit Delay...{seconds}s",faultedOrTampered:"Fault or Tamper",clear:"Clear",clearSelection:"Clear Selection",overrideTroblesZonesInfo:"You're going to override {troubles} trouble(s) and bypass {zones} zone(s).",overrideZonesInfo:"You're going to bypass {zones} zone(s).",zoneTroubles:"Zone troubles",systemTroubles:"System troubles",areaNotReady:"Area not ready. Please close all zones before arming.",alarmsTroubles:"Alarms",alarm:"Alarm",alarms:{medical:"Medical Alarm!",intruder:"Intruder Alarm!",fire:"Fire Alarm!",other:"Other Alarm!",panic:"Panic Alarm!",multiple:"Multiple Alarms!"},trouble_code_messages:{0:"Intruder alarm",1:"Zone tampered",2:"Zone fault",3:"Hold-up Alarm",4:"Interconnection fault",5:"Prime power source fault",6:"Battery fault",7:"Alarm transmission system fault",8:"Bell fault",9:"Alarm transmission system fault"},zone_state:{open:"Open",closed:"Closed",short_circuit:"Trouble",bypass:"Bypass",bypassed:"Bypassed",open_circuit:"Tamper"}},intercom:{calling:"Calling..."},weather:{temperature:"Temperature",temperatureFeelsLike:"Temperature feels like",drewPoint:"Drew point",solarIrradiation:"Solar Irradiation",windSpeed:"Wind speed",windDirection:"Wind direction",daylight:"Daylight",humidity:"Humidity",rain:"Rain",snow:"Snow",storm:"Storm Warning",fog:"Fog",true:"True",false:"False"},twoNCommanderDoor:{status:{Unknown:"Unknown",CertificateInvalid:"Certificate Invalid",Inaccessible:"Inaccessible",LoginFailed:"Login Failed",Online:"Online",Disabled:"Disabled",Incompatible:"Incompatible"},doorState:{Closed:"Closed",Opened:"Opened",TooLong:"Door Held Open",Unauthorized:"Forced Open",Unknown:"Unknown"},doorSwitchState:{False:"Locked",True:"Unlocked",Unknown:"Unknown"},lockdown:{Unknown:"Unknown",Normal:"Normal",Lockdown:"Lockdown",PartialLockdown:"Partial Lockdown"},format:"{{doorSwitchState}} | {{doorState}}"}}}}});export{Q as i};
//# sourceMappingURL=p-Cga1x4Z-.js.map