You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
993 B
JavaScript
47 lines
993 B
JavaScript
|
3 years ago
|
export class NavMenu extends HTMLElement {
|
||
|
|
constructor() {
|
||
|
|
super()
|
||
|
|
this.attachShadow({mode: 'open'})
|
||
|
|
this.language = navigator.language
|
||
|
|
}
|
||
|
|
|
||
|
|
connectedCallback() {
|
||
|
|
const style = document.createElement('style')
|
||
|
|
style.textContent = `
|
||
|
|
:host {
|
||
|
|
display: flex;
|
||
|
|
direction: column;
|
||
|
|
}
|
||
|
|
h1 {
|
||
|
|
width: 100%;
|
||
|
|
text-align: center;
|
||
|
|
color: #000;
|
||
|
|
font-size: 18px;
|
||
|
|
margin: 0;
|
||
|
|
padding: 5px;
|
||
|
|
}
|
||
|
|
`
|
||
|
|
this.shadowRoot.append(style)
|
||
|
|
this.header = document.createElement('h1')
|
||
|
|
this.header.innerText = this.pagesText
|
||
|
|
this.shadowRoot.append(this.header)
|
||
|
|
this.pageList = document.createElement('div')
|
||
|
|
this.shadowRoot.append(this.pageList)
|
||
|
|
}
|
||
|
|
|
||
|
|
get language() {
|
||
|
|
return this._language
|
||
|
|
}
|
||
|
|
|
||
|
|
set language(language) {
|
||
|
|
this._language = language
|
||
|
|
}
|
||
|
|
|
||
|
|
get langEs() {
|
||
|
|
return /^es\b/.test(this.language)
|
||
|
|
}
|
||
|
|
|
||
|
|
get pagesText() {
|
||
|
|
return this.langEs ? 'Páginas' : 'Pages'
|
||
|
|
}
|
||
|
|
}
|