import {css, CSSResultArray, html, LitElement} from "@lion/core";
import {Et2Widget} from "../Et2Widget/Et2Widget";
import shoelace from "../Styles/shoelace";
/**
* Widget for the actual content of a dialog, used when we're not doing a template
*
*/
export class Et2DialogContent extends Et2Widget(LitElement)
{
static styles : CSSResultArray = [
shoelace,
css`
:host {
display: block;
min-width: 300px;
min-height: 32px;
}
.dialog {
}
.dialog_icon {
margin-right: 2ex;
vertical-align: middle;
}
`
];
get properties()
{
return {
...super.properties(),
message: String,
dialogType: Number,
icon: String,
value: Object
}
}
/**
* Details for dialog type options
*/
private readonly _dialogTypes : any = [
//PLAIN_MESSAGE: 0
"",
//INFORMATION_MESSAGE: 1,
"dialog_info",
//QUESTION_MESSAGE: 2,
"dialog_help",
//WARNING_MESSAGE: 3,
"dialog_warning",
//ERROR_MESSAGE: 4,
"dialog_error"
];
constructor()
{
super();
this.icon = "";
this.dialogType = 0;
}
/**
* Block until after the paint - This is needed to deal with children not fully "done" before the OverlayController
* tries to do things with them
*
* @returns {Promise}
*/
async performUpdate()
{
await new Promise((resolve) => setTimeout(() => resolve()));
return super.performUpdate();
}
render()
{
let icon = this.icon || this.parentNode.egw().image(this._dialogTypes[this.dialogType]) || "";
return html`
Empty dialog - add some content
`;
}
}
customElements.define("et2-dialog-content", Et2DialogContent);