graphdb-workbench
Version:
The web application for GraphDB APIs
2 lines • 2.82 kB
JavaScript
export const __webpack_esm_id__=45758;export const __webpack_esm_ids__=[45758];export const __webpack_esm_modules__={45758(e,t,n){n.r(t),n.d(t,{translate_label:()=>r});var s=n(55508),a=n(79939);n(57154);const r=class{constructor(e){(0,s.r)(this,e),this.unsubscribeTranslationChanged=null,this.translationParameters=[]}connectedCallback(){this.unsubscribeTranslationChanged=a.T.onTranslate(this.labelKey,this.translationParameters,e=>this.translatedLabel=e)}disconnectedCallback(){this.unsubscribeTranslationChanged&&(this.unsubscribeTranslationChanged(),this.unsubscribeTranslationChanged=null)}render(){return(0,s.h)(s.a,{key:"6f43411609ffbb55a072585c7c1bdd149422b066"},this.translatedLabel)}};r.style=":host{display:inline}"},79939(e,t,n){n.d(t,{L:()=>r,T:()=>l,s:()=>a});var s=n(57154);function a(e){const t=document.createElement("textarea");return t.innerHTML=e,t.value}class r{static get logger(){return s.Loggers.getLoggerInstance("SharedComponents")}}class i{constructor(){this.languageContextService=s.ServiceProvider.get(s.LanguageContextService),this.translationChangedObservers={},this.logger=r.logger,this.defaultBundle=this.languageContextService.getDefaultBundle(),this.subscribeToBundleChange()}onTranslate(e,t=[],n=()=>{}){this.translationChangedObservers[e]=this.translationChangedObservers[e]||[];const s={parameters:t,callback:n};return this.translationChangedObservers[e].push(s),n(this.translate(e,t)),()=>{const t=this.translationChangedObservers[e].indexOf(s);-1!==t&&this.translationChangedObservers[e].splice(t,1)}}translate(e,t){return this.translateInLocale(e,t)}translateInLocale(e,t){let n=this.translateFromBundle(this.currentBundle,e);return n||(n=this.translateFromBundle(this.defaultBundle,e)),n?(n=this.applyParameters(n,t),a(n)):(this.logger.warn(`Missing translation for key: [${e}]`),e)}translateFromBundle(e,t){if(!e)return;let n=e[t];return"string"!=typeof n&&(n=this.translateAsJsonObject(e,t)),n}translateAsJsonObject(e,t){let n=t.split(".");return this.getTranslation(e,n)}getTranslation(e,t){if(!t||!e)return;const n=e[t.splice(0,1)[0]];return 0===t.length?n:"string"!=typeof n?t.length>0?this.getTranslation(n,t):n:void 0}applyParameters(e,t){return t?t.reduce((e,t)=>i.replaceAll(e,t),e):e}static replaceAll(e,t){return t?e.split(`{{${t.key}}}`).join(t.value):e}notifyTranslationsChanged(){Object.keys(this.translationChangedObservers).forEach(e=>{(this.translationChangedObservers[e]||[]).forEach(t=>t.callback(this.translate(e,t.parameters)))})}subscribeToBundleChange(){this.languageChangeSubscription=this.languageContextService.onLanguageBundleChanged(e=>{e&&(this.currentBundle=e,this.notifyTranslationsChanged())})}destroy(){this.languageChangeSubscription&&this.languageChangeSubscription()}}const l=new i}};
//# sourceMappingURL=45758.1212136a37dd4f7528f8.bundle.js.map