export class PageSettings extends HTMLElement { textEn = { netAccess: 'Direct network access (CSP)', } textEs = { netAccess: 'Acceso directo a la red (CSP)', } constructor() { super() this.attachShadow({mode: 'open'}) this.language = navigator.language const netSelectHeading = document.createElement('div') netSelectHeading.classList.add('heading') netSelectHeading.innerText = this.text.netAccess this.network = document.createElement( 'm-settings-network-settings' ) this.shadowRoot.append( netSelectHeading, this.network, ) } connectedCallback() { const style = document.createElement('style') style.textContent = ` :host { max-height: 55vh; display: flex; flex-direction: column; align-items: stretch; overflow-y: auto; } * { padding-left: 10px; } div.heading { display: flex; flex-direction: row; justify-content: flex-start; background: #f2dbd8; padding: 3px; margin-bottom: 5px; font-weight: bold; } ` this.shadowRoot.append(style) } get data() { return { ...this.network.data, } } set data(value) { this.network.data = { networkAccess: value.networkAccess } } set cspProfiles(value) { this.network.cspProfiles = value } get language() { return this._language } set language(language) { this._language = language this.text = this.langEs ? this.textEs : this.textEn } get langEs() { return /^es\b/.test(this.language) } get lang() { return this.language.split('-')[0] } }