|
|
@ -5,6 +5,16 @@ export class FileView extends HTMLElement { |
|
|
<path d="M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"/> |
|
|
<path d="M3 9.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"/> |
|
|
</svg> |
|
|
</svg> |
|
|
`,
|
|
|
`,
|
|
|
|
|
|
down: ` |
|
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-caret-down-fill" viewBox="0 0 16 16"> |
|
|
|
|
|
<path d="M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z"/> |
|
|
|
|
|
</svg> |
|
|
|
|
|
`,
|
|
|
|
|
|
up: ` |
|
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-caret-up-fill" viewBox="0 0 16 16"> |
|
|
|
|
|
<path d="m7.247 4.86-4.796 5.481c-.566.647-.106 1.659.753 1.659h9.592a1 1 0 0 0 .753-1.659l-4.796-5.48a1 1 0 0 0-1.506 0z"/> |
|
|
|
|
|
</svg> |
|
|
|
|
|
`,
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
textEn = { |
|
|
textEn = { |
|
|
@ -30,6 +40,14 @@ export class FileView extends HTMLElement { |
|
|
this.headerEl.appendChild(this.nameEl) |
|
|
this.headerEl.appendChild(this.nameEl) |
|
|
this.editEl = document.createElement('m-editor-text-edit') |
|
|
this.editEl = document.createElement('m-editor-text-edit') |
|
|
this.contentEl.appendChild(this.editEl) |
|
|
this.contentEl.appendChild(this.editEl) |
|
|
|
|
|
this.collapseBtn = document.createElement( |
|
|
|
|
|
'button' |
|
|
|
|
|
) |
|
|
|
|
|
this.collapseBtn.innerHTML = this.icons.up |
|
|
|
|
|
this.collapseBtn.addEventListener('click', () => { |
|
|
|
|
|
this.collapsed = !this.collapsed |
|
|
|
|
|
}) |
|
|
|
|
|
this.headerEl.appendChild(this.collapseBtn) |
|
|
this.menuBtn = document.createElement('button') |
|
|
this.menuBtn = document.createElement('button') |
|
|
this.menuBtn.innerHTML = this.icons.menu |
|
|
this.menuBtn.innerHTML = this.icons.menu |
|
|
this.menuBtn.addEventListener('click', () => { |
|
|
this.menuBtn.addEventListener('click', () => { |
|
|
@ -80,6 +98,10 @@ export class FileView extends HTMLElement { |
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
flex-direction: column; |
|
|
align-items: stretch; |
|
|
align-items: stretch; |
|
|
|
|
|
min-height: 5px; |
|
|
|
|
|
} |
|
|
|
|
|
div.content.collapsed > * { |
|
|
|
|
|
display: none; |
|
|
} |
|
|
} |
|
|
svg { |
|
|
svg { |
|
|
height: 20px; |
|
|
height: 20px; |
|
|
@ -105,6 +127,25 @@ export class FileView extends HTMLElement { |
|
|
return this.editEl.value |
|
|
return this.editEl.value |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
set collapsed(value) { |
|
|
|
|
|
const cl = this.contentEl.classList |
|
|
|
|
|
if (value) { |
|
|
|
|
|
cl.add('collapsed') |
|
|
|
|
|
} else { |
|
|
|
|
|
cl.remove('collapsed') |
|
|
|
|
|
} |
|
|
|
|
|
this.collapseBtn.innerHTML = ( |
|
|
|
|
|
value ? |
|
|
|
|
|
this.icons.down : this.icons.up |
|
|
|
|
|
) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
get collapsed() { |
|
|
|
|
|
return this.contentEl.classList.contains( |
|
|
|
|
|
'collapsed' |
|
|
|
|
|
) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
get language() { |
|
|
get language() { |
|
|
return this._language |
|
|
return this._language |
|
|
} |
|
|
} |
|
|
|