4 changed files with 40 additions and 1 deletions
@ -0,0 +1,32 @@ |
|||||
|
export class Dialog extends HTMLElement { |
||||
|
constructor() { |
||||
|
super() |
||||
|
this.attachShadow({mode: 'open'}) |
||||
|
this.windowEl = document.createElement('div') |
||||
|
this.windowEl.classList.add('window') |
||||
|
this.headerEl = document.createElement('div') |
||||
|
this.headerEl.classList.add('header') |
||||
|
this.bodyEl = document.createElement('div') |
||||
|
this.bodyEl.classList.add('body') |
||||
|
this.footerEl = document.createElement('div') |
||||
|
this.footerEl.classList.add('footer') |
||||
|
this.windowEl.replaceChildren( |
||||
|
this.headerEl, this.bodyEl, this.footerEl |
||||
|
) |
||||
|
this.shadowRoot.appendChild(this.windowEl) |
||||
|
} |
||||
|
|
||||
|
connectedCallback() { |
||||
|
this.textArea.value = this.body |
||||
|
const style = document.createElement('style') |
||||
|
style.textContent = ` |
||||
|
:host { |
||||
|
overflow-y: auto; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
align-items: stretch; |
||||
|
} |
||||
|
` |
||||
|
this.shadowRoot.append(style) |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue