fix(core): update
This commit is contained in:
@ -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>
|
||||
|
Reference in New Issue
Block a user