vicowa-web-components
Version:
2 lines • 1.48 kB
JavaScript
import{WebComponentBaseClass as t}from"/third_party/web-component-base-class/dist/web-component-base-class.js";import"../vicowa-translate/vicowa-translate.js";import a from"../utilities/translate.js";window.customElements.define("vicowa-string",class VicowaString extends t{#t;constructor(){super(),this.#t={activeTranslator:null}}static get properties(){return{string:{type:String,value:"",reflectToAttribute:!0,observer:(t,a,r)=>t.#a(a,r)},parameters:{type:Array,value:[],observer:(t,a,r)=>t.#r(a,r)},pluralNumber:{type:Number,value:1,observer:(t,a,r)=>t.#e(a,r)}}}updateTranslation(){const t=this.#t;this.$.string.innerHTML=t.activeTranslator&&this.string?t.activeTranslator.translate(this.string).ifPlural(this.pluralNumber||1).fetch(this.parameters):this.string,this.onTranslationUpdated&&this.onTranslationUpdated(this.displayString)}get displayString(){return this.$.string.innerHTML}detached(){a.removeTranslationUpdatedObserverOwner(this)}attached(){this.$.string.innerHTML=this.string,a.addTranslationUpdatedObserver((t=>{this.#t.activeTranslator=t,this.updateTranslation()}),this)}#a(t,a){void 0===a&&!t&&this.innerHTML.trim()?this.string=this.innerHTML.trim():this.updateTranslation()}#r(t,a){this.string&&(void 0!==a||t.length>0)&&this.updateTranslation()}#e(t,a){!this.string||void 0===a&&1===t||this.updateTranslation()}static get template(){return'\n\t\t\t<style>\n\t\t\t</style>\n\t\t\t<span id="string"></span>\n\t\t'}});
//# sourceMappingURL=vicowa-string.js.map