fix(core): update

This commit is contained in:
2023-09-13 13:41:56 +02:00
parent f8f9b150b8
commit 82ead7bd1a
6 changed files with 57 additions and 23 deletions

View File

@ -1,3 +1,4 @@
import * as plugins from './plugins.js';
import { demoFunc } from './dees-modal.demo.js';
import {
customElement,
@ -27,11 +28,16 @@ export class DeesModal extends DeesElement {
// STATIC
public static demo = demoFunc;
public static async createAndShow(optionsArg: { heading: string; content: TemplateResult }) {
public static async createAndShow(optionsArg: {
heading: string;
content: TemplateResult;
menuOptions: plugins.tsclass.website.IMenuItem<DeesModal>[];
}) {
const body = document.body;
const modal = new DeesModal();
modal.heading = optionsArg.heading;
modal.content = optionsArg.content;
modal.menuOptions = optionsArg.menuOptions;
modal.windowLayer = await DeesWindowLayer.createAndShow();
modal.windowLayer.addEventListener('click', async () => {
await modal.destroy();
@ -50,6 +56,9 @@ export class DeesModal extends DeesElement {
@state({})
public content: TemplateResult;
@state({})
public menuOptions: plugins.tsclass.website.IMenuItem<DeesModal>[] = [];
constructor() {
super();
}
@ -104,7 +113,6 @@ export class DeesModal extends DeesElement {
}
.modal .bottomButtons {
display: grid;
grid-template-columns: 1fr 1fr;
border-top: 1px solid #222;
}
@ -127,13 +135,23 @@ export class DeesModal extends DeesElement {
public render(): TemplateResult {
return html`
<style>
.modal .bottomButtons {
grid-template-columns: ${cssManager.cssGridColumns(this.menuOptions.length, 0)};
}
</style>
<div class="modalContainer" @click=${this.handleOutsideClick}>
<div class="modal">
<div class="heading">${this.heading}</div>
<div class="content">${this.content}</div>
<div class="bottomButtons">
<div class="bottomButton">Cancel</div>
<div class="bottomButton">OK</div>
${this.menuOptions.map(
(actionArg) => html`
<div class="bottomButton" @click=${() => {
actionArg.action(this);
}}>${actionArg.name}</div>
`
)}
</div>
</div>
</div>