@tolgee/core
Advanced tools
Comparing version 5.2.0-rc.d8d91b51.0 to 5.2.1
@@ -497,2 +497,3 @@ 'use strict'; | ||
const DEFAULT_FORMAT_ERROR = 'invalid'; | ||
const DEFAULT_API_URL = 'https://app.tolgee.io'; | ||
const defaultValues = { | ||
@@ -503,2 +504,3 @@ defaultNs: '', | ||
onFormatError: DEFAULT_FORMAT_ERROR, | ||
apiUrl: DEFAULT_API_URL, | ||
}; | ||
@@ -1108,7 +1110,7 @@ const combineOptions = (...states) => { | ||
const languages = state.getFallbackLangs(); | ||
const namespaces = getDefaultAndFallbackNs(ns); | ||
const namespaces = getDefaultAndFallbackNs(ns || undefined); | ||
return cache.getTranslationNs(namespaces, languages, key); | ||
} | ||
function getTranslation({ key, ns }) { | ||
const namespaces = getDefaultAndFallbackNs(ns); | ||
const namespaces = getDefaultAndFallbackNs(ns || undefined); | ||
const languages = state.getFallbackLangs(); | ||
@@ -1115,0 +1117,0 @@ return cache.getTranslationFallback(namespaces, languages, key); |
@@ -1,2 +0,2 @@ | ||
"use strict";function e(e){return Boolean(e&&"function"==typeof e.then)}Object.defineProperty(exports,"__esModule",{value:!0});const n=(n,t)=>e(n)?Promise.resolve(n).then(t):t(n),t=e=>`Tolgee: You need to specify '${e}' option`;function a(e){return"string"==typeof e?[e]:Array.isArray(e)?e:void 0}function i(e){return a(e)||[]}function o(e,n){return"object"!=typeof(t=n)||Array.isArray(t)||null===t?i(n):i(null==n?void 0:n[e]);var t}function r(e){return Array.from(new Set(e))}function s(e){return e?e.replace(/\/+$/,""):e}const c=e=>{let n=[];return Object.freeze({listen:e=>{const t=n=>{e(n)};return n.push(t),{unsubscribe:()=>{n=n.filter((e=>t!==e))}}},emit:t=>{e()&&n.forEach((e=>e({value:t})))}})},g=(e,n,t)=>{const a=new Set,o=new Set;let r=[];const s=()=>{if(0===r.length)return;const e=r;r=[],a.forEach((e=>{e({value:void 0})}));let t=new Set;e.forEach((e=>{void 0===e?t=void 0:void 0!==t&&e.forEach((e=>t.add(e)))}));(e=>{const t=new Set(n());o.forEach((n=>{(void 0===e||-1!==(null==e?void 0:e.findIndex((e=>t.has(e)||n.namespaces.has(e)))))&&n.fn({value:void 0})}))})(t?Array.from(t.keys()):void 0)};return Object.freeze({listenSome:e=>{const n={fn:n=>{e(n)},namespaces:new Set};o.add(n);const a={unsubscribe:()=>{o.delete(n)},subscribeNs:e=>(i(e).forEach((e=>n.namespaces.add(e))),void 0===e&&n.namespaces.add(t()),a)};return a},listen:e=>{a.add(e);return{unsubscribe:()=>{a.delete(e)}}},emit:(n,t)=>{e()&&(r.push(n),t?setTimeout(s,0):s())}})},u=e=>{const n=new Map;return Object.entries(e).forEach((([e,t])=>{null!=t&&("object"!=typeof t?n.set(e,t):u(t).forEach(((t,a)=>{n.set(e+"."+a,t)})))})),n},l=e=>{const[n,...t]=e.split(":");return{language:n,namespace:t.join(":")||""}},d=({language:e,namespace:n})=>n?`${e}:${n}`:e,f=(e,n,t,a,o,s,c)=>{const g=new Map,f=new Map;let p={},v=0;function h(n,t,a){const i=d(n);f.set(i,{data:u(t),version:a}),e.emit(n)}function b(e,n){h(e,n,v)}function m(e,n=!1){const t=f.get(d(e));return t&&n?t.version===v:Boolean(t)}function y(e){var n;return null===(n=f.get(d(a(e))))||void 0===n?void 0:n.data}function O(e){let t;if(!t){const n=p[d(e)];"function"==typeof n&&(t=n())}return t||(t=n(e)),t}return Object.freeze({addStaticData:function(e){e&&(p=Object.assign(Object.assign({},p),e),Object.entries(e).forEach((([e,n])=>{if("function"!=typeof n){const t=l(e),a=f.get(e);a&&0!==a.version||h(t,n,0)}})))},invalidate:function(){g.clear(),v+=1},addRecord:b,exists:m,getRecord:y,getTranslation:function(e,n){var t;return null===(t=f.get(d(e)))||void 0===t?void 0:t.data.get(n)},getTranslationNs:function(e,n,t){var a;for(const i of e)for(const e of n){const n=null===(a=f.get(d({language:e,namespace:i})))||void 0===a?void 0:a.data.get(t);if(null!=n)return[i]}return r(e)},getTranslationFallback:function(e,n,t){var a;for(const i of e)for(const e of n){const n=null===(a=f.get(d({language:e,namespace:i})))||void 0===a?void 0:a.data.get(t);if(null!=n)return n}},changeTranslation:function(n,t,a){var i;const o=null===(i=f.get(d(n)))||void 0===i?void 0:i.data;null==o||o.set(t,a),e.emit(Object.assign(Object.assign({},n),{key:t}))},isFetching:function(e){if(o())return!0;if(void 0===e)return g.size>0;const n=i(e);return Boolean(Array.from(g.keys()).find((e=>n.includes(l(e).namespace))))},isLoading:function(e,n){const t=i(n);return Boolean(o()||Array.from(g.keys()).find((n=>{const a=l(n);return(!t.length||t.includes(a.namespace))&&!m({namespace:a.namespace,language:e})})))},loadRecords:async function(e,n){const i=e.map((e=>{const i=a(e),o=d(i),r=g.get(o);if(r)return{new:!1,promise:r,keyObject:i,cacheKey:o};const s=function(e,n){var a;let i;return n&&(i=null===(a=t(e))||void 0===a?void 0:a.catch((()=>(console.warn("Tolgee: Failed to fetch data from dev backend"),O(e))))),i||(i=O(e)),i}(i,n)||Promise.resolve(void 0);return g.set(o,s),{new:!0,promise:s,keyObject:i,cacheKey:o}}));s.notify(),c.notify();const o=await Promise.all(i.map((e=>e.promise)));return i.forEach(((e,n)=>{const t=g.get(e.cacheKey)!==e.promise;if(e.new&&!t){g.delete(e.cacheKey);const t=o[n];t?b(e.keyObject,t):y(e.keyObject)||b(e.keyObject,{})}})),s.notify(),c.notify(),i.map((e=>y(e.keyObject)))},getAllRecords:function(){return Array.from(f.entries()).map((([e,n])=>Object.assign(Object.assign({},l(e)),{data:n.data})))}})};function p(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&n.indexOf(a)<0&&(t[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)n.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(t[a[i]]=e[a[i]])}return t}const v={defaultNs:"",observerOptions:{tagAttributes:{textarea:["placeholder"],input:["value","placeholder"],img:["alt"],"*":["aria-label","title"]},restrictedElements:["script","style"],highlightKeys:["Alt"],highlightColor:"rgb(255, 0, 0)",highlightWidth:5,inputPrefix:"%-%tolgee:",inputSuffix:"%-%",passToParent:["option","optgroup"]},observerType:"invisible",onFormatError:"invalid"},h=(...e)=>{let n={};return e.forEach((e=>{n=Object.assign(Object.assign(Object.assign({},n),e),{observerOptions:Object.assign(Object.assign({},n.observerOptions),null==e?void 0:e.observerOptions)})})),n},b=(e,n)=>{const t=h(v,null==n?void 0:n.initialOptions,e);return t.apiUrl=s(t.apiUrl),{initialOptions:t,activeNamespaces:(null==n?void 0:n.activeNamespaces)||new Map,language:null==n?void 0:n.language,pendingLanguage:null==n?void 0:n.language,isInitialLoading:!1,isRunning:!1}},m=(t,a,i,o,r,s)=>{const c={ui:void 0,observer:void 0},g={formatters:[],finalFormatter:void 0,observer:void 0,devBackend:void 0,backends:[],ui:void 0,languageDetector:void 0,languageStorage:void 0},u=async({keysAndDefaults:e,event:n})=>{var t;const a=e.map((({key:e,ns:n,defaultValue:t})=>({key:e,defaultValue:t,ns:o({key:e,ns:n}),translation:r({key:e,ns:n})})));null===(t=g.ui)||void 0===t||t.handleElementClick(a,n)},l=(e,n)=>{var t,a;return(null===(a=null===(t=g.observer)||void 0===t?void 0:t.highlight)||void 0===a?void 0:a.call(t,e,n))||{unhighlight(){}}},d=e=>{const n=r({key:e.key,ns:e.ns});return R(Object.assign(Object.assign({},e),{translation:n,formatEnabled:!0}))},f=e=>{c.observer=e},v=()=>Boolean(c.observer),h=e=>{e&&g.formatters.push(e)},b=e=>{g.finalFormatter=e},m=e=>{c.ui=e},y=()=>Boolean(c.ui),O=e=>{g.languageStorage=e},L=e=>{g.languageDetector=e},j=e=>{e&&g.backends.push(e)},k=e=>{g.devBackend=e},w=()=>g.devBackend;function R(e){var n,{formatEnabled:i}=e,o=p(e,["formatEnabled"]);const{key:r,translation:s,defaultValue:c,noWrap:u,params:l,orEmpty:d,ns:f}=o,v=s||c;let h=v||(d?"":r);const b=t(),m=i||!(null===(n=g.observer)||void 0===n?void 0:n.outputNotFormattable),y=e=>g.observer&&!u?g.observer.wrap({key:r,translation:e,defaultValue:c,params:l,ns:f}):e;h=y(h);try{if(v&&b&&m)for(const e of g.formatters)h=e.format({translation:h,language:b,params:l});g.finalFormatter&&v&&b&&m&&(h=g.finalFormatter.format({translation:h,language:b,params:l}))}catch(e){console.error(e);const n=("string"==typeof(O=e)?O:"string"==typeof(null==O?void 0:O.message)?O.message:void 0)||"invalid",t=a().onFormatError,i=typeof t;h="string"===i?t:"function"===i?t(n,o):"invalid",h=y(h)}var O;return h}return Object.freeze({addPlugin:function(e,n){n(e,Object.freeze({setFinalFormatter:b,addFormatter:h,setObserver:f,hasObserver:v,setUi:m,hasUi:y,setDevBackend:k,addBackend:j,setLanguageDetector:L,setLanguageStorage:O}))},formatTranslation:R,getDevBackend:w,getBackendRecord:({language:n,namespace:t})=>{for(const a of g.backends){const i=a.getRecord({language:n,namespace:t});if(e(i))return null==i?void 0:i.catch((e=>(console.error(e),{})));if(void 0!==i)return i}},getBackendDevRecord:({language:e,namespace:n})=>{var t;const{apiKey:i,apiUrl:o,projectId:r}=a();return null===(t=g.devBackend)||void 0===t?void 0:t.getRecord({apiKey:i,apiUrl:o,projectId:r,language:e,namespace:n})},getLanguageDetector:()=>g.languageDetector,getLanguageStorage:()=>g.languageStorage,getInitialLanguage:()=>{var e;const t=i(),a=null===(e=g.languageStorage)||void 0===e?void 0:e.getLanguage();return n(a,(e=>t&&!t.includes(e)||!e?(()=>{if(!g.languageDetector)return;const e=i();return g.languageDetector.getLanguage({availableLanguages:e})})():e))},setStoredLanguage:e=>{var n;null===(n=g.languageStorage)||void 0===n||n.setLanguage(e)},run:()=>{var e,n,t;if(!g.ui){const{apiKey:n,apiUrl:t,projectId:i}=a();g.ui=null===(e=c.ui)||void 0===e?void 0:e.call(c,{apiKey:n,apiUrl:t,projectId:i,highlight:l,changeTranslation:s})}g.observer||(g.observer=null===(n=c.observer)||void 0===n?void 0:n.call(c,{translate:d,onClick:u,options:a().observerOptions})),null===(t=g.observer)||void 0===t||t.run({mouseHighlight:!0})},stop:()=>{var e;g.ui=void 0,null===(e=g.observer)||void 0===e||e.stop()},retranslate:()=>{var e;null===(e=g.observer)||void 0===e||e.retranslate()},highlight:l,unwrap:e=>{var n;return g.observer?null===(n=g.observer)||void 0===n?void 0:n.unwrap(e):{text:e,keys:[]}},wrap:e=>{var n;return g.observer?null===(n=g.observer)||void 0===n?void 0:n.wrap(e):e.translation},hasDevBackend:function(){return Boolean(w())}})},y=(e,n,t)=>{let a=e;return Object.freeze({init:function(e){a=e},notify:function(){const e=n();a!==e&&t(e),a=e}})};const O=(e,...n)=>{let t,a={};return"object"==typeof e?a=e:(a.key=e,"string"==typeof n[0]?(a.defaultValue=n[0],t=n[1]):"object"==typeof n[0]&&(t=n[0])),t&&(a=Object.assign(Object.assign({},function(e){var{ns:n,noWrap:t,orEmpty:a,params:i}=e,o=p(e,["ns","noWrap","orEmpty","params"]);const r={ns:n,noWrap:t,orEmpty:a};return Object.assign(Object.assign({},r),{params:Object.assign({},o)})}(t)),a)),a},L=({options:a})=>{const u=((e,n)=>{let t=!0;function a(){return t}const i=c(a),o=c(a),r=c(a),s=c(a),u=c(a),l=c(a),d=c(a),f=g(a,e,n);return u.listen((()=>f.emit())),o.listen((()=>f.emit())),d.listen((({value:e})=>{f.emit([e.namespace],!0)})),Object.freeze({onPendingLanguageChange:i,onLanguageChange:o,onLoadingChange:r,onFetchingChange:s,onInitialLoaded:u,onRunningChange:l,onCacheChange:d,onUpdate:f,setEmmiterActive:function(e){t=e},on:(e,n)=>{switch(e){case"pendingLanguage":return i.listen(n);case"language":return o.listen(n);case"loading":return r.listen(n);case"fetching":return s.listen(n);case"initialLoad":return u.listen(n);case"running":return l.listen(n);case"cache":return d.listen(n);case"update":return f.listen(n)}}})})(j,k),d=y(!1,(()=>L.isFetching()),u.onFetchingChange.emit),p=y(!1,(()=>A()),u.onLoadingChange.emit),v=((e,n,t)=>{let a,c=b();function g(){return c.language||c.initialOptions.language}function u(){return Object.assign(Object.assign({},c.initialOptions),a)}return Object.freeze({init:function(e){c=b(e,c)},isRunning:function(){return c.isRunning},setRunning:function(e){c.isRunning!==e&&(c.isRunning=e,t.emit(e))},isInitialLoading:function(){return c.isInitialLoading},setInitialLoading:function(e){c.isInitialLoading=e},getLanguage:g,setLanguage:function(n){c.language!==n&&(c.language=n,e.emit(n))},getPendingLanguage:function(){return c.pendingLanguage||g()},setPendingLanguage:function(e){c.pendingLanguage!==e&&(c.pendingLanguage=e,n.emit(e))},getInitialOptions:u,addActiveNs:function(e){i(e).forEach((e=>{const n=c.activeNamespaces.get(e);void 0!==n?c.activeNamespaces.set(e,n+1):c.activeNamespaces.set(e,1)}))},removeActiveNs:function(e){i(e).forEach((e=>{const n=c.activeNamespaces.get(e);void 0!==n&&n>1?c.activeNamespaces.set(e,n-1):c.activeNamespaces.delete(e)}))},getRequiredNamespaces:function(){return r([...c.initialOptions.ns||[c.initialOptions.defaultNs],...i(c.initialOptions.fallbackNs),...c.activeNamespaces.keys()])},getFallbackLangs:function(e){const n=e||g();return n?r([n,...o(n,c.initialOptions.fallbackLanguage)]):[]},getFallbackNs:function(){return i(c.initialOptions.fallbackNs)},getDefaultNs:function(e){return void 0===e?c.initialOptions.defaultNs:e},getAvailableLanguages:function(){if(c.initialOptions.availableLanguages)return c.initialOptions.availableLanguages;if(c.initialOptions.staticData){const e=Object.keys(c.initialOptions.staticData).map((e=>l(e).language));return Array.from(new Set(e))}},withDefaultNs:function(e){return{namespace:void 0===e.namespace?u().defaultNs:e.namespace,language:e.language}},overrideCredentials:function(e){a=e?Object.assign(Object.assign({},e),{apiUrl:s(e.apiUrl)}):void 0}})})(u.onLanguageChange,u.onPendingLanguageChange,u.onRunningChange),h=m(v.getLanguage,v.getInitialOptions,v.getAvailableLanguages,(function({key:e,ns:n}){const t=v.getFallbackLangs(),a=w(n);return L.getTranslationNs(a,t,e)}),D,E),L=f(u.onCacheChange,h.getBackendRecord,h.getBackendDevRecord,v.withDefaultNs,v.isInitialLoading,d,p);function j(){return v.getFallbackNs()}function k(e){return v.getDefaultNs(e)}function w(e){return[...i(k(e)),...j()]}function R(e){return[...i(e||k()),...v.getRequiredNamespaces()]}function E(e,n,t){const a=v.withDefaultNs(e),i=L.getTranslation(a,n);return L.changeTranslation(a,n,t),{revert:()=>{L.changeTranslation(a,n,i)}}}function N(e){v.init(e),L.addStaticData(v.getInitialOptions().staticData)}function A(e){return L.isLoading(v.getLanguage(),e)}function F(){return Boolean(v.getInitialOptions().apiKey&&v.getInitialOptions().apiUrl)}function I(e,t){const a=function(e,n){const t=v.getFallbackLangs(e),a=R(n),i=[];return t.forEach((e=>{a.forEach((n=>{L.exists({language:e,namespace:n},!0)||i.push({language:e,namespace:n})}))})),i}(e,t);if(a.length)return n(P(a),(()=>{}))}function D({key:e,ns:n}){const t=w(n),a=v.getFallbackLangs();return L.getTranslationFallback(t,a,e)}function S(){const a=n(function(){if(v.getLanguage())return;if(!v.getInitialOptions().defaultLanguage)throw new Error(t("defaultLanguage"));const e=h.getInitialLanguage();return n(e,(e=>{const n=e||v.getInitialOptions().defaultLanguage;n&&v.setLanguage(n)}))}(),(()=>I()));if(e(a))return v.setInitialLoading(!0),d.notify(),p.notify(),Promise.resolve(a).then((()=>{v.setInitialLoading(!1),d.notify(),p.notify(),u.onInitialLoaded.emit()}));u.onInitialLoaded.emit()}function P(e){return L.loadRecords(e,F())}a&&N(a),u.onUpdate.listen((()=>{v.isRunning()&&h.retranslate()}));return Object.freeze(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},u),v),h),L),{init:N,changeLanguage:async function(e){v.getPendingLanguage()===e&&v.getLanguage()===e||(v.setPendingLanguage(e),v.isRunning()&&await I(e),e===v.getPendingLanguage()&&(v.setLanguage(e),h.setStoredLanguage(e)))},getTranslation:D,changeTranslation:E,addActiveNs:async function(e,n){n||v.addActiveNs(e),v.isRunning()&&await I(void 0,e)},loadRecords:P,loadRecord:async function(e){return(await P([e]))[0]},isLoading:A,isLoaded:function(e){const n=v.getLanguage();if(!n)return!1;const t=v.getFallbackLangs(n),a=R(e),i=[];return t.forEach((e=>{a.forEach((n=>{L.exists({language:e,namespace:n})||i.push({language:e,namespace:n})}))})),0===i.length},t:(...e)=>{const n=O(...e),t=D(n);return h.formatTranslation(Object.assign(Object.assign({},n),{translation:t}))},isDev:F,run:function(){let e;return(()=>{const e=h.getLanguageDetector()||h.getLanguageStorage();if(e&&!v.getAvailableLanguages())throw new Error(t("availableLanguages"));if(!v.getLanguage()&&!v.getInitialOptions().defaultLanguage)throw e?new Error(t("defaultLanguage")):new Error(t("language"))})(),v.isRunning()||(F()&&L.invalidate(),v.setRunning(!0),h.run(),e=S()),Promise.resolve(e)},stop:function(){v.isRunning()&&(h.stop(),v.setRunning(!1))}}))};class j extends Error{constructor(e,n,t){let a;a=0===e?"Empty parameter":1===e?"Unexpected character":"Unexpected end",super(`Tolgee parser: ${a} at ${n} in "${t}"`),this.code=e,this.index=n}}function k(e){return/\s/.test(e)}const w=new Set([2,1,0]),R=new Set(["{","}","'"]);function E(e,n){const[t,a]=function(e){let n=0,t="",a="",i="";const o=[],r=[];let s=0;function c(n){throw new j(n,s,e)}const g=()=>{o.push(t),t=""},u=()=>{""===a&&c(0),r.push(a),a=""};for(s=0;s<e.length;s++)switch(i=e[s],n){case 0:"'"===i?(t+=i,n=1):"{"===i?(g(),n=3):(t+=i,n=0);break;case 1:R.has(i)?(t=t.slice(0,-1)+i,n=2):(t+=i,n=0);break;case 2:"'"===i?n=0:(t+=i,n=2);break;case 3:"}"===i?(u(),n=0):k(i)?""!==a&&(u(),n=4):(/[0-9a-zA-Z_]/.test(i)||c(1),a+=i,n=3);break;case 4:"}"==i?n=0:k(i)?n=4:c(1)}return w.has(n)||c(2),g(),[o,r]}(e),i=[t[0]];for(let o=1;o<t.length;o++){const r=null==n?void 0:n[a[o-1]];if(void 0===r)throw new Error(`Missing parameter "${a[o-1]}" in "${e}"`);i.push(String(r)),i.push(t[o])}return i.join("")}exports.FormatSimple=()=>(e,n)=>(n.setFinalFormatter({format:({translation:e,params:n})=>E(e,n)}),e),exports.TolgeeCore=()=>{const e={plugins:[],options:{}},n=Object.freeze({use:t=>(e.plugins.push(t),n),updateDefaults:t=>(e.options=h(e.options,t),n),init(n){const t=(e=>{const n=L({options:e}),t=e=>{const t=n.isRunning();t&&n.stop(),e(),t&&n.run()},a=Object.freeze({on:n.on,onNsUpdate:n.onUpdate.listenSome,setEmmiterActive:n.setEmmiterActive,getLanguage:n.getLanguage,getPendingLanguage:n.getPendingLanguage,changeLanguage:n.changeLanguage,changeTranslation:n.changeTranslation,addActiveNs:n.addActiveNs,removeActiveNs:n.removeActiveNs,loadRecords:n.loadRecords,loadRecord:n.loadRecord,addStaticData:n.addStaticData,getRecord:n.getRecord,getAllRecords:n.getAllRecords,isLoaded:n.isLoaded,isInitialLoading:n.isInitialLoading,isLoading:n.isLoading,isFetching:n.isFetching,isRunning:n.isRunning,run:n.run,stop:n.stop,t:n.t,highlight:n.highlight,getInitialOptions:n.getInitialOptions,isDev:n.isDev,wrap:n.wrap,unwrap:n.unwrap,overrideCredentials(e){t((()=>n.overrideCredentials(e)))},addPlugin(e){e&&t((()=>n.addPlugin(a,e)))},updateOptions(e){e&&t((()=>n.init(e)))}});return a})(h(e.options,n));return e.plugins.forEach(t.addPlugin),t}});return n},exports.getFallback=a,exports.getFallbackArray=i,exports.getTranslateProps=O; | ||
"use strict";function e(e){return Boolean(e&&"function"==typeof e.then)}Object.defineProperty(exports,"__esModule",{value:!0});const n=(n,t)=>e(n)?Promise.resolve(n).then(t):t(n),t=e=>`Tolgee: You need to specify '${e}' option`;function a(e){return"string"==typeof e?[e]:Array.isArray(e)?e:void 0}function i(e){return a(e)||[]}function o(e,n){return"object"!=typeof(t=n)||Array.isArray(t)||null===t?i(n):i(null==n?void 0:n[e]);var t}function r(e){return Array.from(new Set(e))}function s(e){return e?e.replace(/\/+$/,""):e}const c=e=>{let n=[];return Object.freeze({listen:e=>{const t=n=>{e(n)};return n.push(t),{unsubscribe:()=>{n=n.filter((e=>t!==e))}}},emit:t=>{e()&&n.forEach((e=>e({value:t})))}})},g=(e,n,t)=>{const a=new Set,o=new Set;let r=[];const s=()=>{if(0===r.length)return;const e=r;r=[],a.forEach((e=>{e({value:void 0})}));let t=new Set;e.forEach((e=>{void 0===e?t=void 0:void 0!==t&&e.forEach((e=>t.add(e)))}));(e=>{const t=new Set(n());o.forEach((n=>{(void 0===e||-1!==(null==e?void 0:e.findIndex((e=>t.has(e)||n.namespaces.has(e)))))&&n.fn({value:void 0})}))})(t?Array.from(t.keys()):void 0)};return Object.freeze({listenSome:e=>{const n={fn:n=>{e(n)},namespaces:new Set};o.add(n);const a={unsubscribe:()=>{o.delete(n)},subscribeNs:e=>(i(e).forEach((e=>n.namespaces.add(e))),void 0===e&&n.namespaces.add(t()),a)};return a},listen:e=>{a.add(e);return{unsubscribe:()=>{a.delete(e)}}},emit:(n,t)=>{e()&&(r.push(n),t?setTimeout(s,0):s())}})},u=e=>{const n=new Map;return Object.entries(e).forEach((([e,t])=>{null!=t&&("object"!=typeof t?n.set(e,t):u(t).forEach(((t,a)=>{n.set(e+"."+a,t)})))})),n},l=e=>{const[n,...t]=e.split(":");return{language:n,namespace:t.join(":")||""}},d=({language:e,namespace:n})=>n?`${e}:${n}`:e,f=(e,n,t,a,o,s,c)=>{const g=new Map,f=new Map;let p={},v=0;function h(n,t,a){const i=d(n);f.set(i,{data:u(t),version:a}),e.emit(n)}function b(e,n){h(e,n,v)}function m(e,n=!1){const t=f.get(d(e));return t&&n?t.version===v:Boolean(t)}function y(e){var n;return null===(n=f.get(d(a(e))))||void 0===n?void 0:n.data}function O(e){let t;if(!t){const n=p[d(e)];"function"==typeof n&&(t=n())}return t||(t=n(e)),t}return Object.freeze({addStaticData:function(e){e&&(p=Object.assign(Object.assign({},p),e),Object.entries(e).forEach((([e,n])=>{if("function"!=typeof n){const t=l(e),a=f.get(e);a&&0!==a.version||h(t,n,0)}})))},invalidate:function(){g.clear(),v+=1},addRecord:b,exists:m,getRecord:y,getTranslation:function(e,n){var t;return null===(t=f.get(d(e)))||void 0===t?void 0:t.data.get(n)},getTranslationNs:function(e,n,t){var a;for(const i of e)for(const e of n){const n=null===(a=f.get(d({language:e,namespace:i})))||void 0===a?void 0:a.data.get(t);if(null!=n)return[i]}return r(e)},getTranslationFallback:function(e,n,t){var a;for(const i of e)for(const e of n){const n=null===(a=f.get(d({language:e,namespace:i})))||void 0===a?void 0:a.data.get(t);if(null!=n)return n}},changeTranslation:function(n,t,a){var i;const o=null===(i=f.get(d(n)))||void 0===i?void 0:i.data;null==o||o.set(t,a),e.emit(Object.assign(Object.assign({},n),{key:t}))},isFetching:function(e){if(o())return!0;if(void 0===e)return g.size>0;const n=i(e);return Boolean(Array.from(g.keys()).find((e=>n.includes(l(e).namespace))))},isLoading:function(e,n){const t=i(n);return Boolean(o()||Array.from(g.keys()).find((n=>{const a=l(n);return(!t.length||t.includes(a.namespace))&&!m({namespace:a.namespace,language:e})})))},loadRecords:async function(e,n){const i=e.map((e=>{const i=a(e),o=d(i),r=g.get(o);if(r)return{new:!1,promise:r,keyObject:i,cacheKey:o};const s=function(e,n){var a;let i;return n&&(i=null===(a=t(e))||void 0===a?void 0:a.catch((()=>(console.warn("Tolgee: Failed to fetch data from dev backend"),O(e))))),i||(i=O(e)),i}(i,n)||Promise.resolve(void 0);return g.set(o,s),{new:!0,promise:s,keyObject:i,cacheKey:o}}));s.notify(),c.notify();const o=await Promise.all(i.map((e=>e.promise)));return i.forEach(((e,n)=>{const t=g.get(e.cacheKey)!==e.promise;if(e.new&&!t){g.delete(e.cacheKey);const t=o[n];t?b(e.keyObject,t):y(e.keyObject)||b(e.keyObject,{})}})),s.notify(),c.notify(),i.map((e=>y(e.keyObject)))},getAllRecords:function(){return Array.from(f.entries()).map((([e,n])=>Object.assign(Object.assign({},l(e)),{data:n.data})))}})};function p(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&n.indexOf(a)<0&&(t[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)n.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(t[a[i]]=e[a[i]])}return t}const v={defaultNs:"",observerOptions:{tagAttributes:{textarea:["placeholder"],input:["value","placeholder"],img:["alt"],"*":["aria-label","title"]},restrictedElements:["script","style"],highlightKeys:["Alt"],highlightColor:"rgb(255, 0, 0)",highlightWidth:5,inputPrefix:"%-%tolgee:",inputSuffix:"%-%",passToParent:["option","optgroup"]},observerType:"invisible",onFormatError:"invalid",apiUrl:"https://app.tolgee.io"},h=(...e)=>{let n={};return e.forEach((e=>{n=Object.assign(Object.assign(Object.assign({},n),e),{observerOptions:Object.assign(Object.assign({},n.observerOptions),null==e?void 0:e.observerOptions)})})),n},b=(e,n)=>{const t=h(v,null==n?void 0:n.initialOptions,e);return t.apiUrl=s(t.apiUrl),{initialOptions:t,activeNamespaces:(null==n?void 0:n.activeNamespaces)||new Map,language:null==n?void 0:n.language,pendingLanguage:null==n?void 0:n.language,isInitialLoading:!1,isRunning:!1}},m=(t,a,i,o,r,s)=>{const c={ui:void 0,observer:void 0},g={formatters:[],finalFormatter:void 0,observer:void 0,devBackend:void 0,backends:[],ui:void 0,languageDetector:void 0,languageStorage:void 0},u=async({keysAndDefaults:e,event:n})=>{var t;const a=e.map((({key:e,ns:n,defaultValue:t})=>({key:e,defaultValue:t,ns:o({key:e,ns:n}),translation:r({key:e,ns:n})})));null===(t=g.ui)||void 0===t||t.handleElementClick(a,n)},l=(e,n)=>{var t,a;return(null===(a=null===(t=g.observer)||void 0===t?void 0:t.highlight)||void 0===a?void 0:a.call(t,e,n))||{unhighlight(){}}},d=e=>{const n=r({key:e.key,ns:e.ns});return R(Object.assign(Object.assign({},e),{translation:n,formatEnabled:!0}))},f=e=>{c.observer=e},v=()=>Boolean(c.observer),h=e=>{e&&g.formatters.push(e)},b=e=>{g.finalFormatter=e},m=e=>{c.ui=e},y=()=>Boolean(c.ui),O=e=>{g.languageStorage=e},L=e=>{g.languageDetector=e},j=e=>{e&&g.backends.push(e)},k=e=>{g.devBackend=e},w=()=>g.devBackend;function R(e){var n,{formatEnabled:i}=e,o=p(e,["formatEnabled"]);const{key:r,translation:s,defaultValue:c,noWrap:u,params:l,orEmpty:d,ns:f}=o,v=s||c;let h=v||(d?"":r);const b=t(),m=i||!(null===(n=g.observer)||void 0===n?void 0:n.outputNotFormattable),y=e=>g.observer&&!u?g.observer.wrap({key:r,translation:e,defaultValue:c,params:l,ns:f}):e;h=y(h);try{if(v&&b&&m)for(const e of g.formatters)h=e.format({translation:h,language:b,params:l});g.finalFormatter&&v&&b&&m&&(h=g.finalFormatter.format({translation:h,language:b,params:l}))}catch(e){console.error(e);const n=("string"==typeof(O=e)?O:"string"==typeof(null==O?void 0:O.message)?O.message:void 0)||"invalid",t=a().onFormatError,i=typeof t;h="string"===i?t:"function"===i?t(n,o):"invalid",h=y(h)}var O;return h}return Object.freeze({addPlugin:function(e,n){n(e,Object.freeze({setFinalFormatter:b,addFormatter:h,setObserver:f,hasObserver:v,setUi:m,hasUi:y,setDevBackend:k,addBackend:j,setLanguageDetector:L,setLanguageStorage:O}))},formatTranslation:R,getDevBackend:w,getBackendRecord:({language:n,namespace:t})=>{for(const a of g.backends){const i=a.getRecord({language:n,namespace:t});if(e(i))return null==i?void 0:i.catch((e=>(console.error(e),{})));if(void 0!==i)return i}},getBackendDevRecord:({language:e,namespace:n})=>{var t;const{apiKey:i,apiUrl:o,projectId:r}=a();return null===(t=g.devBackend)||void 0===t?void 0:t.getRecord({apiKey:i,apiUrl:o,projectId:r,language:e,namespace:n})},getLanguageDetector:()=>g.languageDetector,getLanguageStorage:()=>g.languageStorage,getInitialLanguage:()=>{var e;const t=i(),a=null===(e=g.languageStorage)||void 0===e?void 0:e.getLanguage();return n(a,(e=>t&&!t.includes(e)||!e?(()=>{if(!g.languageDetector)return;const e=i();return g.languageDetector.getLanguage({availableLanguages:e})})():e))},setStoredLanguage:e=>{var n;null===(n=g.languageStorage)||void 0===n||n.setLanguage(e)},run:()=>{var e,n,t;if(!g.ui){const{apiKey:n,apiUrl:t,projectId:i}=a();g.ui=null===(e=c.ui)||void 0===e?void 0:e.call(c,{apiKey:n,apiUrl:t,projectId:i,highlight:l,changeTranslation:s})}g.observer||(g.observer=null===(n=c.observer)||void 0===n?void 0:n.call(c,{translate:d,onClick:u,options:a().observerOptions})),null===(t=g.observer)||void 0===t||t.run({mouseHighlight:!0})},stop:()=>{var e;g.ui=void 0,null===(e=g.observer)||void 0===e||e.stop()},retranslate:()=>{var e;null===(e=g.observer)||void 0===e||e.retranslate()},highlight:l,unwrap:e=>{var n;return g.observer?null===(n=g.observer)||void 0===n?void 0:n.unwrap(e):{text:e,keys:[]}},wrap:e=>{var n;return g.observer?null===(n=g.observer)||void 0===n?void 0:n.wrap(e):e.translation},hasDevBackend:function(){return Boolean(w())}})},y=(e,n,t)=>{let a=e;return Object.freeze({init:function(e){a=e},notify:function(){const e=n();a!==e&&t(e),a=e}})};const O=(e,...n)=>{let t,a={};return"object"==typeof e?a=e:(a.key=e,"string"==typeof n[0]?(a.defaultValue=n[0],t=n[1]):"object"==typeof n[0]&&(t=n[0])),t&&(a=Object.assign(Object.assign({},function(e){var{ns:n,noWrap:t,orEmpty:a,params:i}=e,o=p(e,["ns","noWrap","orEmpty","params"]);const r={ns:n,noWrap:t,orEmpty:a};return Object.assign(Object.assign({},r),{params:Object.assign({},o)})}(t)),a)),a},L=({options:a})=>{const u=((e,n)=>{let t=!0;function a(){return t}const i=c(a),o=c(a),r=c(a),s=c(a),u=c(a),l=c(a),d=c(a),f=g(a,e,n);return u.listen((()=>f.emit())),o.listen((()=>f.emit())),d.listen((({value:e})=>{f.emit([e.namespace],!0)})),Object.freeze({onPendingLanguageChange:i,onLanguageChange:o,onLoadingChange:r,onFetchingChange:s,onInitialLoaded:u,onRunningChange:l,onCacheChange:d,onUpdate:f,setEmmiterActive:function(e){t=e},on:(e,n)=>{switch(e){case"pendingLanguage":return i.listen(n);case"language":return o.listen(n);case"loading":return r.listen(n);case"fetching":return s.listen(n);case"initialLoad":return u.listen(n);case"running":return l.listen(n);case"cache":return d.listen(n);case"update":return f.listen(n)}}})})(j,k),d=y(!1,(()=>L.isFetching()),u.onFetchingChange.emit),p=y(!1,(()=>A()),u.onLoadingChange.emit),v=((e,n,t)=>{let a,c=b();function g(){return c.language||c.initialOptions.language}function u(){return Object.assign(Object.assign({},c.initialOptions),a)}return Object.freeze({init:function(e){c=b(e,c)},isRunning:function(){return c.isRunning},setRunning:function(e){c.isRunning!==e&&(c.isRunning=e,t.emit(e))},isInitialLoading:function(){return c.isInitialLoading},setInitialLoading:function(e){c.isInitialLoading=e},getLanguage:g,setLanguage:function(n){c.language!==n&&(c.language=n,e.emit(n))},getPendingLanguage:function(){return c.pendingLanguage||g()},setPendingLanguage:function(e){c.pendingLanguage!==e&&(c.pendingLanguage=e,n.emit(e))},getInitialOptions:u,addActiveNs:function(e){i(e).forEach((e=>{const n=c.activeNamespaces.get(e);void 0!==n?c.activeNamespaces.set(e,n+1):c.activeNamespaces.set(e,1)}))},removeActiveNs:function(e){i(e).forEach((e=>{const n=c.activeNamespaces.get(e);void 0!==n&&n>1?c.activeNamespaces.set(e,n-1):c.activeNamespaces.delete(e)}))},getRequiredNamespaces:function(){return r([...c.initialOptions.ns||[c.initialOptions.defaultNs],...i(c.initialOptions.fallbackNs),...c.activeNamespaces.keys()])},getFallbackLangs:function(e){const n=e||g();return n?r([n,...o(n,c.initialOptions.fallbackLanguage)]):[]},getFallbackNs:function(){return i(c.initialOptions.fallbackNs)},getDefaultNs:function(e){return void 0===e?c.initialOptions.defaultNs:e},getAvailableLanguages:function(){if(c.initialOptions.availableLanguages)return c.initialOptions.availableLanguages;if(c.initialOptions.staticData){const e=Object.keys(c.initialOptions.staticData).map((e=>l(e).language));return Array.from(new Set(e))}},withDefaultNs:function(e){return{namespace:void 0===e.namespace?u().defaultNs:e.namespace,language:e.language}},overrideCredentials:function(e){a=e?Object.assign(Object.assign({},e),{apiUrl:s(e.apiUrl)}):void 0}})})(u.onLanguageChange,u.onPendingLanguageChange,u.onRunningChange),h=m(v.getLanguage,v.getInitialOptions,v.getAvailableLanguages,(function({key:e,ns:n}){const t=v.getFallbackLangs(),a=w(n||void 0);return L.getTranslationNs(a,t,e)}),D,E),L=f(u.onCacheChange,h.getBackendRecord,h.getBackendDevRecord,v.withDefaultNs,v.isInitialLoading,d,p);function j(){return v.getFallbackNs()}function k(e){return v.getDefaultNs(e)}function w(e){return[...i(k(e)),...j()]}function R(e){return[...i(e||k()),...v.getRequiredNamespaces()]}function E(e,n,t){const a=v.withDefaultNs(e),i=L.getTranslation(a,n);return L.changeTranslation(a,n,t),{revert:()=>{L.changeTranslation(a,n,i)}}}function N(e){v.init(e),L.addStaticData(v.getInitialOptions().staticData)}function A(e){return L.isLoading(v.getLanguage(),e)}function F(){return Boolean(v.getInitialOptions().apiKey&&v.getInitialOptions().apiUrl)}function I(e,t){const a=function(e,n){const t=v.getFallbackLangs(e),a=R(n),i=[];return t.forEach((e=>{a.forEach((n=>{L.exists({language:e,namespace:n},!0)||i.push({language:e,namespace:n})}))})),i}(e,t);if(a.length)return n(P(a),(()=>{}))}function D({key:e,ns:n}){const t=w(n||void 0),a=v.getFallbackLangs();return L.getTranslationFallback(t,a,e)}function S(){const a=n(function(){if(v.getLanguage())return;if(!v.getInitialOptions().defaultLanguage)throw new Error(t("defaultLanguage"));const e=h.getInitialLanguage();return n(e,(e=>{const n=e||v.getInitialOptions().defaultLanguage;n&&v.setLanguage(n)}))}(),(()=>I()));if(e(a))return v.setInitialLoading(!0),d.notify(),p.notify(),Promise.resolve(a).then((()=>{v.setInitialLoading(!1),d.notify(),p.notify(),u.onInitialLoaded.emit()}));u.onInitialLoaded.emit()}function P(e){return L.loadRecords(e,F())}a&&N(a),u.onUpdate.listen((()=>{v.isRunning()&&h.retranslate()}));return Object.freeze(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},u),v),h),L),{init:N,changeLanguage:async function(e){v.getPendingLanguage()===e&&v.getLanguage()===e||(v.setPendingLanguage(e),v.isRunning()&&await I(e),e===v.getPendingLanguage()&&(v.setLanguage(e),h.setStoredLanguage(e)))},getTranslation:D,changeTranslation:E,addActiveNs:async function(e,n){n||v.addActiveNs(e),v.isRunning()&&await I(void 0,e)},loadRecords:P,loadRecord:async function(e){return(await P([e]))[0]},isLoading:A,isLoaded:function(e){const n=v.getLanguage();if(!n)return!1;const t=v.getFallbackLangs(n),a=R(e),i=[];return t.forEach((e=>{a.forEach((n=>{L.exists({language:e,namespace:n})||i.push({language:e,namespace:n})}))})),0===i.length},t:(...e)=>{const n=O(...e),t=D(n);return h.formatTranslation(Object.assign(Object.assign({},n),{translation:t}))},isDev:F,run:function(){let e;return(()=>{const e=h.getLanguageDetector()||h.getLanguageStorage();if(e&&!v.getAvailableLanguages())throw new Error(t("availableLanguages"));if(!v.getLanguage()&&!v.getInitialOptions().defaultLanguage)throw e?new Error(t("defaultLanguage")):new Error(t("language"))})(),v.isRunning()||(F()&&L.invalidate(),v.setRunning(!0),h.run(),e=S()),Promise.resolve(e)},stop:function(){v.isRunning()&&(h.stop(),v.setRunning(!1))}}))};class j extends Error{constructor(e,n,t){let a;a=0===e?"Empty parameter":1===e?"Unexpected character":"Unexpected end",super(`Tolgee parser: ${a} at ${n} in "${t}"`),this.code=e,this.index=n}}function k(e){return/\s/.test(e)}const w=new Set([2,1,0]),R=new Set(["{","}","'"]);function E(e,n){const[t,a]=function(e){let n=0,t="",a="",i="";const o=[],r=[];let s=0;function c(n){throw new j(n,s,e)}const g=()=>{o.push(t),t=""},u=()=>{""===a&&c(0),r.push(a),a=""};for(s=0;s<e.length;s++)switch(i=e[s],n){case 0:"'"===i?(t+=i,n=1):"{"===i?(g(),n=3):(t+=i,n=0);break;case 1:R.has(i)?(t=t.slice(0,-1)+i,n=2):(t+=i,n=0);break;case 2:"'"===i?n=0:(t+=i,n=2);break;case 3:"}"===i?(u(),n=0):k(i)?""!==a&&(u(),n=4):(/[0-9a-zA-Z_]/.test(i)||c(1),a+=i,n=3);break;case 4:"}"==i?n=0:k(i)?n=4:c(1)}return w.has(n)||c(2),g(),[o,r]}(e),i=[t[0]];for(let o=1;o<t.length;o++){const r=null==n?void 0:n[a[o-1]];if(void 0===r)throw new Error(`Missing parameter "${a[o-1]}" in "${e}"`);i.push(String(r)),i.push(t[o])}return i.join("")}exports.FormatSimple=()=>(e,n)=>(n.setFinalFormatter({format:({translation:e,params:n})=>E(e,n)}),e),exports.TolgeeCore=()=>{const e={plugins:[],options:{}},n=Object.freeze({use:t=>(e.plugins.push(t),n),updateDefaults:t=>(e.options=h(e.options,t),n),init(n){const t=(e=>{const n=L({options:e}),t=e=>{const t=n.isRunning();t&&n.stop(),e(),t&&n.run()},a=Object.freeze({on:n.on,onNsUpdate:n.onUpdate.listenSome,setEmmiterActive:n.setEmmiterActive,getLanguage:n.getLanguage,getPendingLanguage:n.getPendingLanguage,changeLanguage:n.changeLanguage,changeTranslation:n.changeTranslation,addActiveNs:n.addActiveNs,removeActiveNs:n.removeActiveNs,loadRecords:n.loadRecords,loadRecord:n.loadRecord,addStaticData:n.addStaticData,getRecord:n.getRecord,getAllRecords:n.getAllRecords,isLoaded:n.isLoaded,isInitialLoading:n.isInitialLoading,isLoading:n.isLoading,isFetching:n.isFetching,isRunning:n.isRunning,run:n.run,stop:n.stop,t:n.t,highlight:n.highlight,getInitialOptions:n.getInitialOptions,isDev:n.isDev,wrap:n.wrap,unwrap:n.unwrap,overrideCredentials(e){t((()=>n.overrideCredentials(e)))},addPlugin(e){e&&t((()=>n.addPlugin(a,e)))},updateOptions(e){e&&t((()=>n.init(e)))}});return a})(h(e.options,n));return e.plugins.forEach(t.addPlugin),t}});return n},exports.getFallback=a,exports.getFallbackArray=i,exports.getTranslateProps=O; | ||
//# sourceMappingURL=tolgee.cjs.min.js.map |
@@ -493,2 +493,3 @@ function isPromise(value) { | ||
const DEFAULT_FORMAT_ERROR = 'invalid'; | ||
const DEFAULT_API_URL = 'https://app.tolgee.io'; | ||
const defaultValues = { | ||
@@ -499,2 +500,3 @@ defaultNs: '', | ||
onFormatError: DEFAULT_FORMAT_ERROR, | ||
apiUrl: DEFAULT_API_URL, | ||
}; | ||
@@ -1104,7 +1106,7 @@ const combineOptions = (...states) => { | ||
const languages = state.getFallbackLangs(); | ||
const namespaces = getDefaultAndFallbackNs(ns); | ||
const namespaces = getDefaultAndFallbackNs(ns || undefined); | ||
return cache.getTranslationNs(namespaces, languages, key); | ||
} | ||
function getTranslation({ key, ns }) { | ||
const namespaces = getDefaultAndFallbackNs(ns); | ||
const namespaces = getDefaultAndFallbackNs(ns || undefined); | ||
const languages = state.getFallbackLangs(); | ||
@@ -1111,0 +1113,0 @@ return cache.getTranslationFallback(namespaces, languages, key); |
@@ -499,2 +499,3 @@ (function (global, factory) { | ||
const DEFAULT_FORMAT_ERROR = 'invalid'; | ||
const DEFAULT_API_URL = 'https://app.tolgee.io'; | ||
const defaultValues = { | ||
@@ -505,2 +506,3 @@ defaultNs: '', | ||
onFormatError: DEFAULT_FORMAT_ERROR, | ||
apiUrl: DEFAULT_API_URL, | ||
}; | ||
@@ -1110,7 +1112,7 @@ const combineOptions = (...states) => { | ||
const languages = state.getFallbackLangs(); | ||
const namespaces = getDefaultAndFallbackNs(ns); | ||
const namespaces = getDefaultAndFallbackNs(ns || undefined); | ||
return cache.getTranslationNs(namespaces, languages, key); | ||
} | ||
function getTranslation({ key, ns }) { | ||
const namespaces = getDefaultAndFallbackNs(ns); | ||
const namespaces = getDefaultAndFallbackNs(ns || undefined); | ||
const languages = state.getFallbackLangs(); | ||
@@ -1117,0 +1119,0 @@ return cache.getTranslationFallback(namespaces, languages, key); |
@@ -1,2 +0,2 @@ | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["@tolgee/core"]={})}(this,(function(e){"use strict";function n(e){return Boolean(e&&"function"==typeof e.then)}const t=(e,t)=>n(e)?Promise.resolve(e).then(t):t(e),a=e=>`Tolgee: You need to specify '${e}' option`;function i(e){return"string"==typeof e?[e]:Array.isArray(e)?e:void 0}function o(e){return i(e)||[]}function r(e,n){return"object"!=typeof(t=n)||Array.isArray(t)||null===t?o(n):o(null==n?void 0:n[e]);var t}function s(e){return Array.from(new Set(e))}function c(e){return e?e.replace(/\/+$/,""):e}const g=e=>{let n=[];return Object.freeze({listen:e=>{const t=n=>{e(n)};return n.push(t),{unsubscribe:()=>{n=n.filter((e=>t!==e))}}},emit:t=>{e()&&n.forEach((e=>e({value:t})))}})},u=(e,n,t)=>{const a=new Set,i=new Set;let r=[];const s=()=>{if(0===r.length)return;const e=r;r=[],a.forEach((e=>{e({value:void 0})}));let t=new Set;e.forEach((e=>{void 0===e?t=void 0:void 0!==t&&e.forEach((e=>t.add(e)))}));(e=>{const t=new Set(n());i.forEach((n=>{(void 0===e||-1!==(null==e?void 0:e.findIndex((e=>t.has(e)||n.namespaces.has(e)))))&&n.fn({value:void 0})}))})(t?Array.from(t.keys()):void 0)};return Object.freeze({listenSome:e=>{const n={fn:n=>{e(n)},namespaces:new Set};i.add(n);const a={unsubscribe:()=>{i.delete(n)},subscribeNs:e=>(o(e).forEach((e=>n.namespaces.add(e))),void 0===e&&n.namespaces.add(t()),a)};return a},listen:e=>{a.add(e);return{unsubscribe:()=>{a.delete(e)}}},emit:(n,t)=>{e()&&(r.push(n),t?setTimeout(s,0):s())}})},l=e=>{const n=new Map;return Object.entries(e).forEach((([e,t])=>{null!=t&&("object"!=typeof t?n.set(e,t):l(t).forEach(((t,a)=>{n.set(e+"."+a,t)})))})),n},d=e=>{const[n,...t]=e.split(":");return{language:n,namespace:t.join(":")||""}},f=({language:e,namespace:n})=>n?`${e}:${n}`:e,p=(e,n,t,a,i,r,c)=>{const g=new Map,u=new Map;let p={},v=0;function h(n,t,a){const i=f(n);u.set(i,{data:l(t),version:a}),e.emit(n)}function b(e,n){h(e,n,v)}function m(e,n=!1){const t=u.get(f(e));return t&&n?t.version===v:Boolean(t)}function y(e){var n;return null===(n=u.get(f(a(e))))||void 0===n?void 0:n.data}function O(e){let t;if(!t){const n=p[f(e)];"function"==typeof n&&(t=n())}return t||(t=n(e)),t}return Object.freeze({addStaticData:function(e){e&&(p=Object.assign(Object.assign({},p),e),Object.entries(e).forEach((([e,n])=>{if("function"!=typeof n){const t=d(e),a=u.get(e);a&&0!==a.version||h(t,n,0)}})))},invalidate:function(){g.clear(),v+=1},addRecord:b,exists:m,getRecord:y,getTranslation:function(e,n){var t;return null===(t=u.get(f(e)))||void 0===t?void 0:t.data.get(n)},getTranslationNs:function(e,n,t){var a;for(const i of e)for(const e of n){const n=null===(a=u.get(f({language:e,namespace:i})))||void 0===a?void 0:a.data.get(t);if(null!=n)return[i]}return s(e)},getTranslationFallback:function(e,n,t){var a;for(const i of e)for(const e of n){const n=null===(a=u.get(f({language:e,namespace:i})))||void 0===a?void 0:a.data.get(t);if(null!=n)return n}},changeTranslation:function(n,t,a){var i;const o=null===(i=u.get(f(n)))||void 0===i?void 0:i.data;null==o||o.set(t,a),e.emit(Object.assign(Object.assign({},n),{key:t}))},isFetching:function(e){if(i())return!0;if(void 0===e)return g.size>0;const n=o(e);return Boolean(Array.from(g.keys()).find((e=>n.includes(d(e).namespace))))},isLoading:function(e,n){const t=o(n);return Boolean(i()||Array.from(g.keys()).find((n=>{const a=d(n);return(!t.length||t.includes(a.namespace))&&!m({namespace:a.namespace,language:e})})))},loadRecords:async function(e,n){const i=e.map((e=>{const i=a(e),o=f(i),r=g.get(o);if(r)return{new:!1,promise:r,keyObject:i,cacheKey:o};const s=function(e,n){var a;let i;return n&&(i=null===(a=t(e))||void 0===a?void 0:a.catch((()=>(console.warn("Tolgee: Failed to fetch data from dev backend"),O(e))))),i||(i=O(e)),i}(i,n)||Promise.resolve(void 0);return g.set(o,s),{new:!0,promise:s,keyObject:i,cacheKey:o}}));r.notify(),c.notify();const o=await Promise.all(i.map((e=>e.promise)));return i.forEach(((e,n)=>{const t=g.get(e.cacheKey)!==e.promise;if(e.new&&!t){g.delete(e.cacheKey);const t=o[n];t?b(e.keyObject,t):y(e.keyObject)||b(e.keyObject,{})}})),r.notify(),c.notify(),i.map((e=>y(e.keyObject)))},getAllRecords:function(){return Array.from(u.entries()).map((([e,n])=>Object.assign(Object.assign({},d(e)),{data:n.data})))}})};function v(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&n.indexOf(a)<0&&(t[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)n.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(t[a[i]]=e[a[i]])}return t}const h="invalid",b={defaultNs:"",observerOptions:{tagAttributes:{textarea:["placeholder"],input:["value","placeholder"],img:["alt"],"*":["aria-label","title"]},restrictedElements:["script","style"],highlightKeys:["Alt"],highlightColor:"rgb(255, 0, 0)",highlightWidth:5,inputPrefix:"%-%tolgee:",inputSuffix:"%-%",passToParent:["option","optgroup"]},observerType:"invisible",onFormatError:h},m=(...e)=>{let n={};return e.forEach((e=>{n=Object.assign(Object.assign(Object.assign({},n),e),{observerOptions:Object.assign(Object.assign({},n.observerOptions),null==e?void 0:e.observerOptions)})})),n},y=(e,n)=>{const t=m(b,null==n?void 0:n.initialOptions,e);return t.apiUrl=c(t.apiUrl),{initialOptions:t,activeNamespaces:(null==n?void 0:n.activeNamespaces)||new Map,language:null==n?void 0:n.language,pendingLanguage:null==n?void 0:n.language,isInitialLoading:!1,isRunning:!1}},O=(e,a,i,o,r,s)=>{const c={ui:void 0,observer:void 0},g={formatters:[],finalFormatter:void 0,observer:void 0,devBackend:void 0,backends:[],ui:void 0,languageDetector:void 0,languageStorage:void 0},u=async({keysAndDefaults:e,event:n})=>{var t;const a=e.map((({key:e,ns:n,defaultValue:t})=>({key:e,defaultValue:t,ns:o({key:e,ns:n}),translation:r({key:e,ns:n})})));null===(t=g.ui)||void 0===t||t.handleElementClick(a,n)},l=(e,n)=>{var t,a;return(null===(a=null===(t=g.observer)||void 0===t?void 0:t.highlight)||void 0===a?void 0:a.call(t,e,n))||{unhighlight(){}}},d=e=>{const n=r({key:e.key,ns:e.ns});return E(Object.assign(Object.assign({},e),{translation:n,formatEnabled:!0}))},f=e=>{c.observer=e},p=()=>Boolean(c.observer),b=e=>{e&&g.formatters.push(e)},m=e=>{g.finalFormatter=e},y=e=>{c.ui=e},O=()=>Boolean(c.ui),L=e=>{g.languageStorage=e},j=e=>{g.languageDetector=e},k=e=>{e&&g.backends.push(e)},w=e=>{g.devBackend=e},R=()=>g.devBackend;function E(n){var t,{formatEnabled:i}=n,o=v(n,["formatEnabled"]);const{key:r,translation:s,defaultValue:c,noWrap:u,params:l,orEmpty:d,ns:f}=o,p=s||c;let b=p||(d?"":r);const m=e(),y=i||!(null===(t=g.observer)||void 0===t?void 0:t.outputNotFormattable),O=e=>g.observer&&!u?g.observer.wrap({key:r,translation:e,defaultValue:c,params:l,ns:f}):e;b=O(b);try{if(p&&m&&y)for(const e of g.formatters)b=e.format({translation:b,language:m,params:l});g.finalFormatter&&p&&m&&y&&(b=g.finalFormatter.format({translation:b,language:m,params:l}))}catch(e){console.error(e);const n=("string"==typeof(L=e)?L:"string"==typeof(null==L?void 0:L.message)?L.message:void 0)||h,t=a().onFormatError,i=typeof t;b="string"===i?t:"function"===i?t(n,o):h,b=O(b)}var L;return b}return Object.freeze({addPlugin:function(e,n){n(e,Object.freeze({setFinalFormatter:m,addFormatter:b,setObserver:f,hasObserver:p,setUi:y,hasUi:O,setDevBackend:w,addBackend:k,setLanguageDetector:j,setLanguageStorage:L}))},formatTranslation:E,getDevBackend:R,getBackendRecord:({language:e,namespace:t})=>{for(const a of g.backends){const i=a.getRecord({language:e,namespace:t});if(n(i))return null==i?void 0:i.catch((e=>(console.error(e),{})));if(void 0!==i)return i}},getBackendDevRecord:({language:e,namespace:n})=>{var t;const{apiKey:i,apiUrl:o,projectId:r}=a();return null===(t=g.devBackend)||void 0===t?void 0:t.getRecord({apiKey:i,apiUrl:o,projectId:r,language:e,namespace:n})},getLanguageDetector:()=>g.languageDetector,getLanguageStorage:()=>g.languageStorage,getInitialLanguage:()=>{var e;const n=i(),a=null===(e=g.languageStorage)||void 0===e?void 0:e.getLanguage();return t(a,(e=>n&&!n.includes(e)||!e?(()=>{if(!g.languageDetector)return;const e=i();return g.languageDetector.getLanguage({availableLanguages:e})})():e))},setStoredLanguage:e=>{var n;null===(n=g.languageStorage)||void 0===n||n.setLanguage(e)},run:()=>{var e,n,t;if(!g.ui){const{apiKey:n,apiUrl:t,projectId:i}=a();g.ui=null===(e=c.ui)||void 0===e?void 0:e.call(c,{apiKey:n,apiUrl:t,projectId:i,highlight:l,changeTranslation:s})}g.observer||(g.observer=null===(n=c.observer)||void 0===n?void 0:n.call(c,{translate:d,onClick:u,options:a().observerOptions})),null===(t=g.observer)||void 0===t||t.run({mouseHighlight:!0})},stop:()=>{var e;g.ui=void 0,null===(e=g.observer)||void 0===e||e.stop()},retranslate:()=>{var e;null===(e=g.observer)||void 0===e||e.retranslate()},highlight:l,unwrap:e=>{var n;return g.observer?null===(n=g.observer)||void 0===n?void 0:n.unwrap(e):{text:e,keys:[]}},wrap:e=>{var n;return g.observer?null===(n=g.observer)||void 0===n?void 0:n.wrap(e):e.translation},hasDevBackend:function(){return Boolean(R())}})},L=(e,n,t)=>{let a=e;return Object.freeze({init:function(e){a=e},notify:function(){const e=n();a!==e&&t(e),a=e}})};const j=(e,...n)=>{let t,a={};return"object"==typeof e?a=e:(a.key=e,"string"==typeof n[0]?(a.defaultValue=n[0],t=n[1]):"object"==typeof n[0]&&(t=n[0])),t&&(a=Object.assign(Object.assign({},function(e){var{ns:n,noWrap:t,orEmpty:a,params:i}=e,o=v(e,["ns","noWrap","orEmpty","params"]);const r={ns:n,noWrap:t,orEmpty:a};return Object.assign(Object.assign({},r),{params:Object.assign({},o)})}(t)),a)),a},k=({options:e})=>{const i=((e,n)=>{let t=!0;function a(){return t}const i=g(a),o=g(a),r=g(a),s=g(a),c=g(a),l=g(a),d=g(a),f=u(a,e,n);return c.listen((()=>f.emit())),o.listen((()=>f.emit())),d.listen((({value:e})=>{f.emit([e.namespace],!0)})),Object.freeze({onPendingLanguageChange:i,onLanguageChange:o,onLoadingChange:r,onFetchingChange:s,onInitialLoaded:c,onRunningChange:l,onCacheChange:d,onUpdate:f,setEmmiterActive:function(e){t=e},on:(e,n)=>{switch(e){case"pendingLanguage":return i.listen(n);case"language":return o.listen(n);case"loading":return r.listen(n);case"fetching":return s.listen(n);case"initialLoad":return c.listen(n);case"running":return l.listen(n);case"cache":return d.listen(n);case"update":return f.listen(n)}}})})(m,k),l=L(!1,(()=>b.isFetching()),i.onFetchingChange.emit),f=L(!1,(()=>A()),i.onLoadingChange.emit),v=((e,n,t)=>{let a,i=y();function g(){return i.language||i.initialOptions.language}function u(){return Object.assign(Object.assign({},i.initialOptions),a)}return Object.freeze({init:function(e){i=y(e,i)},isRunning:function(){return i.isRunning},setRunning:function(e){i.isRunning!==e&&(i.isRunning=e,t.emit(e))},isInitialLoading:function(){return i.isInitialLoading},setInitialLoading:function(e){i.isInitialLoading=e},getLanguage:g,setLanguage:function(n){i.language!==n&&(i.language=n,e.emit(n))},getPendingLanguage:function(){return i.pendingLanguage||g()},setPendingLanguage:function(e){i.pendingLanguage!==e&&(i.pendingLanguage=e,n.emit(e))},getInitialOptions:u,addActiveNs:function(e){o(e).forEach((e=>{const n=i.activeNamespaces.get(e);void 0!==n?i.activeNamespaces.set(e,n+1):i.activeNamespaces.set(e,1)}))},removeActiveNs:function(e){o(e).forEach((e=>{const n=i.activeNamespaces.get(e);void 0!==n&&n>1?i.activeNamespaces.set(e,n-1):i.activeNamespaces.delete(e)}))},getRequiredNamespaces:function(){return s([...i.initialOptions.ns||[i.initialOptions.defaultNs],...o(i.initialOptions.fallbackNs),...i.activeNamespaces.keys()])},getFallbackLangs:function(e){const n=e||g();return n?s([n,...r(n,i.initialOptions.fallbackLanguage)]):[]},getFallbackNs:function(){return o(i.initialOptions.fallbackNs)},getDefaultNs:function(e){return void 0===e?i.initialOptions.defaultNs:e},getAvailableLanguages:function(){if(i.initialOptions.availableLanguages)return i.initialOptions.availableLanguages;if(i.initialOptions.staticData){const e=Object.keys(i.initialOptions.staticData).map((e=>d(e).language));return Array.from(new Set(e))}},withDefaultNs:function(e){return{namespace:void 0===e.namespace?u().defaultNs:e.namespace,language:e.language}},overrideCredentials:function(e){a=e?Object.assign(Object.assign({},e),{apiUrl:c(e.apiUrl)}):void 0}})})(i.onLanguageChange,i.onPendingLanguageChange,i.onRunningChange),h=O(v.getLanguage,v.getInitialOptions,v.getAvailableLanguages,(function({key:e,ns:n}){const t=v.getFallbackLangs(),a=w(n);return b.getTranslationNs(a,t,e)}),D,E),b=p(i.onCacheChange,h.getBackendRecord,h.getBackendDevRecord,v.withDefaultNs,v.isInitialLoading,l,f);function m(){return v.getFallbackNs()}function k(e){return v.getDefaultNs(e)}function w(e){return[...o(k(e)),...m()]}function R(e){return[...o(e||k()),...v.getRequiredNamespaces()]}function E(e,n,t){const a=v.withDefaultNs(e),i=b.getTranslation(a,n);return b.changeTranslation(a,n,t),{revert:()=>{b.changeTranslation(a,n,i)}}}function N(e){v.init(e),b.addStaticData(v.getInitialOptions().staticData)}function A(e){return b.isLoading(v.getLanguage(),e)}function F(){return Boolean(v.getInitialOptions().apiKey&&v.getInitialOptions().apiUrl)}function I(e,n){const a=function(e,n){const t=v.getFallbackLangs(e),a=R(n),i=[];return t.forEach((e=>{a.forEach((n=>{b.exists({language:e,namespace:n},!0)||i.push({language:e,namespace:n})}))})),i}(e,n);if(a.length)return t(T(a),(()=>{}))}function D({key:e,ns:n}){const t=w(n),a=v.getFallbackLangs();return b.getTranslationFallback(t,a,e)}function S(){const e=t(function(){if(v.getLanguage())return;if(!v.getInitialOptions().defaultLanguage)throw new Error(a("defaultLanguage"));const e=h.getInitialLanguage();return t(e,(e=>{const n=e||v.getInitialOptions().defaultLanguage;n&&v.setLanguage(n)}))}(),(()=>I()));if(n(e))return v.setInitialLoading(!0),l.notify(),f.notify(),Promise.resolve(e).then((()=>{v.setInitialLoading(!1),l.notify(),f.notify(),i.onInitialLoaded.emit()}));i.onInitialLoaded.emit()}function T(e){return b.loadRecords(e,F())}e&&N(e),i.onUpdate.listen((()=>{v.isRunning()&&h.retranslate()}));return Object.freeze(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},i),v),h),b),{init:N,changeLanguage:async function(e){v.getPendingLanguage()===e&&v.getLanguage()===e||(v.setPendingLanguage(e),v.isRunning()&&await I(e),e===v.getPendingLanguage()&&(v.setLanguage(e),h.setStoredLanguage(e)))},getTranslation:D,changeTranslation:E,addActiveNs:async function(e,n){n||v.addActiveNs(e),v.isRunning()&&await I(void 0,e)},loadRecords:T,loadRecord:async function(e){return(await T([e]))[0]},isLoading:A,isLoaded:function(e){const n=v.getLanguage();if(!n)return!1;const t=v.getFallbackLangs(n),a=R(e),i=[];return t.forEach((e=>{a.forEach((n=>{b.exists({language:e,namespace:n})||i.push({language:e,namespace:n})}))})),0===i.length},t:(...e)=>{const n=j(...e),t=D(n);return h.formatTranslation(Object.assign(Object.assign({},n),{translation:t}))},isDev:F,run:function(){let e;return(()=>{const e=h.getLanguageDetector()||h.getLanguageStorage();if(e&&!v.getAvailableLanguages())throw new Error(a("availableLanguages"));if(!v.getLanguage()&&!v.getInitialOptions().defaultLanguage)throw e?new Error(a("defaultLanguage")):new Error(a("language"))})(),v.isRunning()||(F()&&b.invalidate(),v.setRunning(!0),h.run(),e=S()),Promise.resolve(e)},stop:function(){v.isRunning()&&(h.stop(),v.setRunning(!1))}}))};class w extends Error{constructor(e,n,t){let a;a=0===e?"Empty parameter":1===e?"Unexpected character":"Unexpected end",super(`Tolgee parser: ${a} at ${n} in "${t}"`),this.code=e,this.index=n}}function R(e){return/\s/.test(e)}const E=new Set([2,1,0]),N=new Set(["{","}","'"]);function A(e,n){const[t,a]=function(e){let n=0,t="",a="",i="";const o=[],r=[];let s=0;function c(n){throw new w(n,s,e)}const g=()=>{o.push(t),t=""},u=()=>{""===a&&c(0),r.push(a),a=""};for(s=0;s<e.length;s++)switch(i=e[s],n){case 0:"'"===i?(t+=i,n=1):"{"===i?(g(),n=3):(t+=i,n=0);break;case 1:N.has(i)?(t=t.slice(0,-1)+i,n=2):(t+=i,n=0);break;case 2:"'"===i?n=0:(t+=i,n=2);break;case 3:"}"===i?(u(),n=0):R(i)?""!==a&&(u(),n=4):(/[0-9a-zA-Z_]/.test(i)||c(1),a+=i,n=3);break;case 4:"}"==i?n=0:R(i)?n=4:c(1)}return E.has(n)||c(2),g(),[o,r]}(e),i=[t[0]];for(let o=1;o<t.length;o++){const r=null==n?void 0:n[a[o-1]];if(void 0===r)throw new Error(`Missing parameter "${a[o-1]}" in "${e}"`);i.push(String(r)),i.push(t[o])}return i.join("")}e.FormatSimple=()=>(e,n)=>(n.setFinalFormatter({format:({translation:e,params:n})=>A(e,n)}),e),e.TolgeeCore=()=>{const e={plugins:[],options:{}},n=Object.freeze({use:t=>(e.plugins.push(t),n),updateDefaults:t=>(e.options=m(e.options,t),n),init(n){const t=(e=>{const n=k({options:e}),t=e=>{const t=n.isRunning();t&&n.stop(),e(),t&&n.run()},a=Object.freeze({on:n.on,onNsUpdate:n.onUpdate.listenSome,setEmmiterActive:n.setEmmiterActive,getLanguage:n.getLanguage,getPendingLanguage:n.getPendingLanguage,changeLanguage:n.changeLanguage,changeTranslation:n.changeTranslation,addActiveNs:n.addActiveNs,removeActiveNs:n.removeActiveNs,loadRecords:n.loadRecords,loadRecord:n.loadRecord,addStaticData:n.addStaticData,getRecord:n.getRecord,getAllRecords:n.getAllRecords,isLoaded:n.isLoaded,isInitialLoading:n.isInitialLoading,isLoading:n.isLoading,isFetching:n.isFetching,isRunning:n.isRunning,run:n.run,stop:n.stop,t:n.t,highlight:n.highlight,getInitialOptions:n.getInitialOptions,isDev:n.isDev,wrap:n.wrap,unwrap:n.unwrap,overrideCredentials(e){t((()=>n.overrideCredentials(e)))},addPlugin(e){e&&t((()=>n.addPlugin(a,e)))},updateOptions(e){e&&t((()=>n.init(e)))}});return a})(m(e.options,n));return e.plugins.forEach(t.addPlugin),t}});return n},e.getFallback=i,e.getFallbackArray=o,e.getTranslateProps=j,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self)["@tolgee/core"]={})}(this,(function(e){"use strict";function n(e){return Boolean(e&&"function"==typeof e.then)}const t=(e,t)=>n(e)?Promise.resolve(e).then(t):t(e),a=e=>`Tolgee: You need to specify '${e}' option`;function i(e){return"string"==typeof e?[e]:Array.isArray(e)?e:void 0}function o(e){return i(e)||[]}function r(e,n){return"object"!=typeof(t=n)||Array.isArray(t)||null===t?o(n):o(null==n?void 0:n[e]);var t}function s(e){return Array.from(new Set(e))}function c(e){return e?e.replace(/\/+$/,""):e}const g=e=>{let n=[];return Object.freeze({listen:e=>{const t=n=>{e(n)};return n.push(t),{unsubscribe:()=>{n=n.filter((e=>t!==e))}}},emit:t=>{e()&&n.forEach((e=>e({value:t})))}})},u=(e,n,t)=>{const a=new Set,i=new Set;let r=[];const s=()=>{if(0===r.length)return;const e=r;r=[],a.forEach((e=>{e({value:void 0})}));let t=new Set;e.forEach((e=>{void 0===e?t=void 0:void 0!==t&&e.forEach((e=>t.add(e)))}));(e=>{const t=new Set(n());i.forEach((n=>{(void 0===e||-1!==(null==e?void 0:e.findIndex((e=>t.has(e)||n.namespaces.has(e)))))&&n.fn({value:void 0})}))})(t?Array.from(t.keys()):void 0)};return Object.freeze({listenSome:e=>{const n={fn:n=>{e(n)},namespaces:new Set};i.add(n);const a={unsubscribe:()=>{i.delete(n)},subscribeNs:e=>(o(e).forEach((e=>n.namespaces.add(e))),void 0===e&&n.namespaces.add(t()),a)};return a},listen:e=>{a.add(e);return{unsubscribe:()=>{a.delete(e)}}},emit:(n,t)=>{e()&&(r.push(n),t?setTimeout(s,0):s())}})},l=e=>{const n=new Map;return Object.entries(e).forEach((([e,t])=>{null!=t&&("object"!=typeof t?n.set(e,t):l(t).forEach(((t,a)=>{n.set(e+"."+a,t)})))})),n},d=e=>{const[n,...t]=e.split(":");return{language:n,namespace:t.join(":")||""}},f=({language:e,namespace:n})=>n?`${e}:${n}`:e,p=(e,n,t,a,i,r,c)=>{const g=new Map,u=new Map;let p={},v=0;function h(n,t,a){const i=f(n);u.set(i,{data:l(t),version:a}),e.emit(n)}function b(e,n){h(e,n,v)}function m(e,n=!1){const t=u.get(f(e));return t&&n?t.version===v:Boolean(t)}function y(e){var n;return null===(n=u.get(f(a(e))))||void 0===n?void 0:n.data}function O(e){let t;if(!t){const n=p[f(e)];"function"==typeof n&&(t=n())}return t||(t=n(e)),t}return Object.freeze({addStaticData:function(e){e&&(p=Object.assign(Object.assign({},p),e),Object.entries(e).forEach((([e,n])=>{if("function"!=typeof n){const t=d(e),a=u.get(e);a&&0!==a.version||h(t,n,0)}})))},invalidate:function(){g.clear(),v+=1},addRecord:b,exists:m,getRecord:y,getTranslation:function(e,n){var t;return null===(t=u.get(f(e)))||void 0===t?void 0:t.data.get(n)},getTranslationNs:function(e,n,t){var a;for(const i of e)for(const e of n){const n=null===(a=u.get(f({language:e,namespace:i})))||void 0===a?void 0:a.data.get(t);if(null!=n)return[i]}return s(e)},getTranslationFallback:function(e,n,t){var a;for(const i of e)for(const e of n){const n=null===(a=u.get(f({language:e,namespace:i})))||void 0===a?void 0:a.data.get(t);if(null!=n)return n}},changeTranslation:function(n,t,a){var i;const o=null===(i=u.get(f(n)))||void 0===i?void 0:i.data;null==o||o.set(t,a),e.emit(Object.assign(Object.assign({},n),{key:t}))},isFetching:function(e){if(i())return!0;if(void 0===e)return g.size>0;const n=o(e);return Boolean(Array.from(g.keys()).find((e=>n.includes(d(e).namespace))))},isLoading:function(e,n){const t=o(n);return Boolean(i()||Array.from(g.keys()).find((n=>{const a=d(n);return(!t.length||t.includes(a.namespace))&&!m({namespace:a.namespace,language:e})})))},loadRecords:async function(e,n){const i=e.map((e=>{const i=a(e),o=f(i),r=g.get(o);if(r)return{new:!1,promise:r,keyObject:i,cacheKey:o};const s=function(e,n){var a;let i;return n&&(i=null===(a=t(e))||void 0===a?void 0:a.catch((()=>(console.warn("Tolgee: Failed to fetch data from dev backend"),O(e))))),i||(i=O(e)),i}(i,n)||Promise.resolve(void 0);return g.set(o,s),{new:!0,promise:s,keyObject:i,cacheKey:o}}));r.notify(),c.notify();const o=await Promise.all(i.map((e=>e.promise)));return i.forEach(((e,n)=>{const t=g.get(e.cacheKey)!==e.promise;if(e.new&&!t){g.delete(e.cacheKey);const t=o[n];t?b(e.keyObject,t):y(e.keyObject)||b(e.keyObject,{})}})),r.notify(),c.notify(),i.map((e=>y(e.keyObject)))},getAllRecords:function(){return Array.from(u.entries()).map((([e,n])=>Object.assign(Object.assign({},d(e)),{data:n.data})))}})};function v(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&n.indexOf(a)<0&&(t[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)n.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(t[a[i]]=e[a[i]])}return t}const h="invalid",b={defaultNs:"",observerOptions:{tagAttributes:{textarea:["placeholder"],input:["value","placeholder"],img:["alt"],"*":["aria-label","title"]},restrictedElements:["script","style"],highlightKeys:["Alt"],highlightColor:"rgb(255, 0, 0)",highlightWidth:5,inputPrefix:"%-%tolgee:",inputSuffix:"%-%",passToParent:["option","optgroup"]},observerType:"invisible",onFormatError:h,apiUrl:"https://app.tolgee.io"},m=(...e)=>{let n={};return e.forEach((e=>{n=Object.assign(Object.assign(Object.assign({},n),e),{observerOptions:Object.assign(Object.assign({},n.observerOptions),null==e?void 0:e.observerOptions)})})),n},y=(e,n)=>{const t=m(b,null==n?void 0:n.initialOptions,e);return t.apiUrl=c(t.apiUrl),{initialOptions:t,activeNamespaces:(null==n?void 0:n.activeNamespaces)||new Map,language:null==n?void 0:n.language,pendingLanguage:null==n?void 0:n.language,isInitialLoading:!1,isRunning:!1}},O=(e,a,i,o,r,s)=>{const c={ui:void 0,observer:void 0},g={formatters:[],finalFormatter:void 0,observer:void 0,devBackend:void 0,backends:[],ui:void 0,languageDetector:void 0,languageStorage:void 0},u=async({keysAndDefaults:e,event:n})=>{var t;const a=e.map((({key:e,ns:n,defaultValue:t})=>({key:e,defaultValue:t,ns:o({key:e,ns:n}),translation:r({key:e,ns:n})})));null===(t=g.ui)||void 0===t||t.handleElementClick(a,n)},l=(e,n)=>{var t,a;return(null===(a=null===(t=g.observer)||void 0===t?void 0:t.highlight)||void 0===a?void 0:a.call(t,e,n))||{unhighlight(){}}},d=e=>{const n=r({key:e.key,ns:e.ns});return E(Object.assign(Object.assign({},e),{translation:n,formatEnabled:!0}))},f=e=>{c.observer=e},p=()=>Boolean(c.observer),b=e=>{e&&g.formatters.push(e)},m=e=>{g.finalFormatter=e},y=e=>{c.ui=e},O=()=>Boolean(c.ui),L=e=>{g.languageStorage=e},j=e=>{g.languageDetector=e},k=e=>{e&&g.backends.push(e)},w=e=>{g.devBackend=e},R=()=>g.devBackend;function E(n){var t,{formatEnabled:i}=n,o=v(n,["formatEnabled"]);const{key:r,translation:s,defaultValue:c,noWrap:u,params:l,orEmpty:d,ns:f}=o,p=s||c;let b=p||(d?"":r);const m=e(),y=i||!(null===(t=g.observer)||void 0===t?void 0:t.outputNotFormattable),O=e=>g.observer&&!u?g.observer.wrap({key:r,translation:e,defaultValue:c,params:l,ns:f}):e;b=O(b);try{if(p&&m&&y)for(const e of g.formatters)b=e.format({translation:b,language:m,params:l});g.finalFormatter&&p&&m&&y&&(b=g.finalFormatter.format({translation:b,language:m,params:l}))}catch(e){console.error(e);const n=("string"==typeof(L=e)?L:"string"==typeof(null==L?void 0:L.message)?L.message:void 0)||h,t=a().onFormatError,i=typeof t;b="string"===i?t:"function"===i?t(n,o):h,b=O(b)}var L;return b}return Object.freeze({addPlugin:function(e,n){n(e,Object.freeze({setFinalFormatter:m,addFormatter:b,setObserver:f,hasObserver:p,setUi:y,hasUi:O,setDevBackend:w,addBackend:k,setLanguageDetector:j,setLanguageStorage:L}))},formatTranslation:E,getDevBackend:R,getBackendRecord:({language:e,namespace:t})=>{for(const a of g.backends){const i=a.getRecord({language:e,namespace:t});if(n(i))return null==i?void 0:i.catch((e=>(console.error(e),{})));if(void 0!==i)return i}},getBackendDevRecord:({language:e,namespace:n})=>{var t;const{apiKey:i,apiUrl:o,projectId:r}=a();return null===(t=g.devBackend)||void 0===t?void 0:t.getRecord({apiKey:i,apiUrl:o,projectId:r,language:e,namespace:n})},getLanguageDetector:()=>g.languageDetector,getLanguageStorage:()=>g.languageStorage,getInitialLanguage:()=>{var e;const n=i(),a=null===(e=g.languageStorage)||void 0===e?void 0:e.getLanguage();return t(a,(e=>n&&!n.includes(e)||!e?(()=>{if(!g.languageDetector)return;const e=i();return g.languageDetector.getLanguage({availableLanguages:e})})():e))},setStoredLanguage:e=>{var n;null===(n=g.languageStorage)||void 0===n||n.setLanguage(e)},run:()=>{var e,n,t;if(!g.ui){const{apiKey:n,apiUrl:t,projectId:i}=a();g.ui=null===(e=c.ui)||void 0===e?void 0:e.call(c,{apiKey:n,apiUrl:t,projectId:i,highlight:l,changeTranslation:s})}g.observer||(g.observer=null===(n=c.observer)||void 0===n?void 0:n.call(c,{translate:d,onClick:u,options:a().observerOptions})),null===(t=g.observer)||void 0===t||t.run({mouseHighlight:!0})},stop:()=>{var e;g.ui=void 0,null===(e=g.observer)||void 0===e||e.stop()},retranslate:()=>{var e;null===(e=g.observer)||void 0===e||e.retranslate()},highlight:l,unwrap:e=>{var n;return g.observer?null===(n=g.observer)||void 0===n?void 0:n.unwrap(e):{text:e,keys:[]}},wrap:e=>{var n;return g.observer?null===(n=g.observer)||void 0===n?void 0:n.wrap(e):e.translation},hasDevBackend:function(){return Boolean(R())}})},L=(e,n,t)=>{let a=e;return Object.freeze({init:function(e){a=e},notify:function(){const e=n();a!==e&&t(e),a=e}})};const j=(e,...n)=>{let t,a={};return"object"==typeof e?a=e:(a.key=e,"string"==typeof n[0]?(a.defaultValue=n[0],t=n[1]):"object"==typeof n[0]&&(t=n[0])),t&&(a=Object.assign(Object.assign({},function(e){var{ns:n,noWrap:t,orEmpty:a,params:i}=e,o=v(e,["ns","noWrap","orEmpty","params"]);const r={ns:n,noWrap:t,orEmpty:a};return Object.assign(Object.assign({},r),{params:Object.assign({},o)})}(t)),a)),a},k=({options:e})=>{const i=((e,n)=>{let t=!0;function a(){return t}const i=g(a),o=g(a),r=g(a),s=g(a),c=g(a),l=g(a),d=g(a),f=u(a,e,n);return c.listen((()=>f.emit())),o.listen((()=>f.emit())),d.listen((({value:e})=>{f.emit([e.namespace],!0)})),Object.freeze({onPendingLanguageChange:i,onLanguageChange:o,onLoadingChange:r,onFetchingChange:s,onInitialLoaded:c,onRunningChange:l,onCacheChange:d,onUpdate:f,setEmmiterActive:function(e){t=e},on:(e,n)=>{switch(e){case"pendingLanguage":return i.listen(n);case"language":return o.listen(n);case"loading":return r.listen(n);case"fetching":return s.listen(n);case"initialLoad":return c.listen(n);case"running":return l.listen(n);case"cache":return d.listen(n);case"update":return f.listen(n)}}})})(m,k),l=L(!1,(()=>b.isFetching()),i.onFetchingChange.emit),f=L(!1,(()=>A()),i.onLoadingChange.emit),v=((e,n,t)=>{let a,i=y();function g(){return i.language||i.initialOptions.language}function u(){return Object.assign(Object.assign({},i.initialOptions),a)}return Object.freeze({init:function(e){i=y(e,i)},isRunning:function(){return i.isRunning},setRunning:function(e){i.isRunning!==e&&(i.isRunning=e,t.emit(e))},isInitialLoading:function(){return i.isInitialLoading},setInitialLoading:function(e){i.isInitialLoading=e},getLanguage:g,setLanguage:function(n){i.language!==n&&(i.language=n,e.emit(n))},getPendingLanguage:function(){return i.pendingLanguage||g()},setPendingLanguage:function(e){i.pendingLanguage!==e&&(i.pendingLanguage=e,n.emit(e))},getInitialOptions:u,addActiveNs:function(e){o(e).forEach((e=>{const n=i.activeNamespaces.get(e);void 0!==n?i.activeNamespaces.set(e,n+1):i.activeNamespaces.set(e,1)}))},removeActiveNs:function(e){o(e).forEach((e=>{const n=i.activeNamespaces.get(e);void 0!==n&&n>1?i.activeNamespaces.set(e,n-1):i.activeNamespaces.delete(e)}))},getRequiredNamespaces:function(){return s([...i.initialOptions.ns||[i.initialOptions.defaultNs],...o(i.initialOptions.fallbackNs),...i.activeNamespaces.keys()])},getFallbackLangs:function(e){const n=e||g();return n?s([n,...r(n,i.initialOptions.fallbackLanguage)]):[]},getFallbackNs:function(){return o(i.initialOptions.fallbackNs)},getDefaultNs:function(e){return void 0===e?i.initialOptions.defaultNs:e},getAvailableLanguages:function(){if(i.initialOptions.availableLanguages)return i.initialOptions.availableLanguages;if(i.initialOptions.staticData){const e=Object.keys(i.initialOptions.staticData).map((e=>d(e).language));return Array.from(new Set(e))}},withDefaultNs:function(e){return{namespace:void 0===e.namespace?u().defaultNs:e.namespace,language:e.language}},overrideCredentials:function(e){a=e?Object.assign(Object.assign({},e),{apiUrl:c(e.apiUrl)}):void 0}})})(i.onLanguageChange,i.onPendingLanguageChange,i.onRunningChange),h=O(v.getLanguage,v.getInitialOptions,v.getAvailableLanguages,(function({key:e,ns:n}){const t=v.getFallbackLangs(),a=w(n||void 0);return b.getTranslationNs(a,t,e)}),D,E),b=p(i.onCacheChange,h.getBackendRecord,h.getBackendDevRecord,v.withDefaultNs,v.isInitialLoading,l,f);function m(){return v.getFallbackNs()}function k(e){return v.getDefaultNs(e)}function w(e){return[...o(k(e)),...m()]}function R(e){return[...o(e||k()),...v.getRequiredNamespaces()]}function E(e,n,t){const a=v.withDefaultNs(e),i=b.getTranslation(a,n);return b.changeTranslation(a,n,t),{revert:()=>{b.changeTranslation(a,n,i)}}}function N(e){v.init(e),b.addStaticData(v.getInitialOptions().staticData)}function A(e){return b.isLoading(v.getLanguage(),e)}function F(){return Boolean(v.getInitialOptions().apiKey&&v.getInitialOptions().apiUrl)}function I(e,n){const a=function(e,n){const t=v.getFallbackLangs(e),a=R(n),i=[];return t.forEach((e=>{a.forEach((n=>{b.exists({language:e,namespace:n},!0)||i.push({language:e,namespace:n})}))})),i}(e,n);if(a.length)return t(T(a),(()=>{}))}function D({key:e,ns:n}){const t=w(n||void 0),a=v.getFallbackLangs();return b.getTranslationFallback(t,a,e)}function S(){const e=t(function(){if(v.getLanguage())return;if(!v.getInitialOptions().defaultLanguage)throw new Error(a("defaultLanguage"));const e=h.getInitialLanguage();return t(e,(e=>{const n=e||v.getInitialOptions().defaultLanguage;n&&v.setLanguage(n)}))}(),(()=>I()));if(n(e))return v.setInitialLoading(!0),l.notify(),f.notify(),Promise.resolve(e).then((()=>{v.setInitialLoading(!1),l.notify(),f.notify(),i.onInitialLoaded.emit()}));i.onInitialLoaded.emit()}function T(e){return b.loadRecords(e,F())}e&&N(e),i.onUpdate.listen((()=>{v.isRunning()&&h.retranslate()}));return Object.freeze(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},i),v),h),b),{init:N,changeLanguage:async function(e){v.getPendingLanguage()===e&&v.getLanguage()===e||(v.setPendingLanguage(e),v.isRunning()&&await I(e),e===v.getPendingLanguage()&&(v.setLanguage(e),h.setStoredLanguage(e)))},getTranslation:D,changeTranslation:E,addActiveNs:async function(e,n){n||v.addActiveNs(e),v.isRunning()&&await I(void 0,e)},loadRecords:T,loadRecord:async function(e){return(await T([e]))[0]},isLoading:A,isLoaded:function(e){const n=v.getLanguage();if(!n)return!1;const t=v.getFallbackLangs(n),a=R(e),i=[];return t.forEach((e=>{a.forEach((n=>{b.exists({language:e,namespace:n})||i.push({language:e,namespace:n})}))})),0===i.length},t:(...e)=>{const n=j(...e),t=D(n);return h.formatTranslation(Object.assign(Object.assign({},n),{translation:t}))},isDev:F,run:function(){let e;return(()=>{const e=h.getLanguageDetector()||h.getLanguageStorage();if(e&&!v.getAvailableLanguages())throw new Error(a("availableLanguages"));if(!v.getLanguage()&&!v.getInitialOptions().defaultLanguage)throw e?new Error(a("defaultLanguage")):new Error(a("language"))})(),v.isRunning()||(F()&&b.invalidate(),v.setRunning(!0),h.run(),e=S()),Promise.resolve(e)},stop:function(){v.isRunning()&&(h.stop(),v.setRunning(!1))}}))};class w extends Error{constructor(e,n,t){let a;a=0===e?"Empty parameter":1===e?"Unexpected character":"Unexpected end",super(`Tolgee parser: ${a} at ${n} in "${t}"`),this.code=e,this.index=n}}function R(e){return/\s/.test(e)}const E=new Set([2,1,0]),N=new Set(["{","}","'"]);function A(e,n){const[t,a]=function(e){let n=0,t="",a="",i="";const o=[],r=[];let s=0;function c(n){throw new w(n,s,e)}const g=()=>{o.push(t),t=""},u=()=>{""===a&&c(0),r.push(a),a=""};for(s=0;s<e.length;s++)switch(i=e[s],n){case 0:"'"===i?(t+=i,n=1):"{"===i?(g(),n=3):(t+=i,n=0);break;case 1:N.has(i)?(t=t.slice(0,-1)+i,n=2):(t+=i,n=0);break;case 2:"'"===i?n=0:(t+=i,n=2);break;case 3:"}"===i?(u(),n=0):R(i)?""!==a&&(u(),n=4):(/[0-9a-zA-Z_]/.test(i)||c(1),a+=i,n=3);break;case 4:"}"==i?n=0:R(i)?n=4:c(1)}return E.has(n)||c(2),g(),[o,r]}(e),i=[t[0]];for(let o=1;o<t.length;o++){const r=null==n?void 0:n[a[o-1]];if(void 0===r)throw new Error(`Missing parameter "${a[o-1]}" in "${e}"`);i.push(String(r)),i.push(t[o])}return i.join("")}e.FormatSimple=()=>(e,n)=>(n.setFinalFormatter({format:({translation:e,params:n})=>A(e,n)}),e),e.TolgeeCore=()=>{const e={plugins:[],options:{}},n=Object.freeze({use:t=>(e.plugins.push(t),n),updateDefaults:t=>(e.options=m(e.options,t),n),init(n){const t=(e=>{const n=k({options:e}),t=e=>{const t=n.isRunning();t&&n.stop(),e(),t&&n.run()},a=Object.freeze({on:n.on,onNsUpdate:n.onUpdate.listenSome,setEmmiterActive:n.setEmmiterActive,getLanguage:n.getLanguage,getPendingLanguage:n.getPendingLanguage,changeLanguage:n.changeLanguage,changeTranslation:n.changeTranslation,addActiveNs:n.addActiveNs,removeActiveNs:n.removeActiveNs,loadRecords:n.loadRecords,loadRecord:n.loadRecord,addStaticData:n.addStaticData,getRecord:n.getRecord,getAllRecords:n.getAllRecords,isLoaded:n.isLoaded,isInitialLoading:n.isInitialLoading,isLoading:n.isLoading,isFetching:n.isFetching,isRunning:n.isRunning,run:n.run,stop:n.stop,t:n.t,highlight:n.highlight,getInitialOptions:n.getInitialOptions,isDev:n.isDev,wrap:n.wrap,unwrap:n.unwrap,overrideCredentials(e){t((()=>n.overrideCredentials(e)))},addPlugin(e){e&&t((()=>n.addPlugin(a,e)))},updateOptions(e){e&&t((()=>n.init(e)))}});return a})(m(e.options,n));return e.plugins.forEach(t.addPlugin),t}});return n},e.getFallback=i,e.getFallbackArray=o,e.getTranslateProps=j,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=tolgee.umd.min.js.map |
import { FallbackGeneral, FallbackLanguageOption, TreeTranslationsData, OnFormatError } from '../../types'; | ||
import { ObserverOptions, ObserverOptionsInternal } from './observerOptions'; | ||
export declare const DEFAULT_FORMAT_ERROR = "invalid"; | ||
export declare const DEFAULT_API_URL = "https://app.tolgee.io"; | ||
export declare type TolgeeStaticData = { | ||
@@ -13,3 +14,3 @@ [key: string]: TreeTranslationsData | (() => Promise<TreeTranslationsData>); | ||
/** | ||
* Tolgee instance url (e.g. https://app.tolgee.io) | ||
* Tolgee instance url (default: https://app.tolgee.io) | ||
*/ | ||
@@ -16,0 +17,0 @@ apiUrl?: string; |
@@ -135,3 +135,5 @@ import { TolgeeOptions, TolgeePlugin, DevCredentials } from './types'; | ||
language?: string | undefined; | ||
defaultLanguage?: string | undefined; | ||
defaultLanguage?: string | undefined; /** | ||
* Turn off/on events emitting. Is on by default. | ||
*/ | ||
availableLanguages?: string[] | undefined; | ||
@@ -138,0 +140,0 @@ fallbackLanguage?: import("./types").FallbackLanguageOption; |
@@ -12,3 +12,3 @@ export declare type FallbackGeneral = undefined | false | string | string[]; | ||
export declare type TranslateOptions = { | ||
ns?: NsType; | ||
ns?: NsType | null; | ||
noWrap?: boolean; | ||
@@ -15,0 +15,0 @@ orEmpty?: boolean; |
{ | ||
"name": "@tolgee/core", | ||
"version": "5.2.0-rc.d8d91b51.0", | ||
"version": "5.2.1", | ||
"description": "Library providing ability to translate messages directly in context of developed application.", | ||
@@ -66,3 +66,3 @@ "main": "./dist/tolgee.cjs.js", | ||
"sideEffects": false, | ||
"gitHead": "3c25a172269c7726269dae97f46edc0d4f0acab2" | ||
"gitHead": "10cc8e63d4cf191a569df8fbaf1f6774921321fa" | ||
} |
@@ -194,3 +194,3 @@ import { Events } from './Events/Events'; | ||
const languages = state.getFallbackLangs(); | ||
const namespaces = getDefaultAndFallbackNs(ns); | ||
const namespaces = getDefaultAndFallbackNs(ns || undefined); | ||
return cache.getTranslationNs(namespaces, languages, key); | ||
@@ -200,3 +200,3 @@ } | ||
function getTranslation({ key, ns }: KeyAndNamespacesInternal) { | ||
const namespaces = getDefaultAndFallbackNs(ns); | ||
const namespaces = getDefaultAndFallbackNs(ns || undefined); | ||
const languages = state.getFallbackLangs(); | ||
@@ -203,0 +203,0 @@ return cache.getTranslationFallback(namespaces, languages, key); |
@@ -15,2 +15,3 @@ import { | ||
export const DEFAULT_FORMAT_ERROR = 'invalid'; | ||
export const DEFAULT_API_URL = 'https://app.tolgee.io'; | ||
@@ -28,3 +29,3 @@ export type TolgeeStaticData = { | ||
/** | ||
* Tolgee instance url (e.g. https://app.tolgee.io) | ||
* Tolgee instance url (default: https://app.tolgee.io) | ||
*/ | ||
@@ -123,2 +124,3 @@ apiUrl?: string; | ||
onFormatError: DEFAULT_FORMAT_ERROR, | ||
apiUrl: DEFAULT_API_URL, | ||
}; | ||
@@ -125,0 +127,0 @@ |
@@ -20,3 +20,3 @@ export type FallbackGeneral = undefined | false | string | string[]; | ||
export type TranslateOptions = { | ||
ns?: NsType; | ||
ns?: NsType | null; | ||
noWrap?: boolean; | ||
@@ -23,0 +23,0 @@ orEmpty?: boolean; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
688371
9508
0