Files
P42_UI/app/libs/EIC/EICDialogContent.js
T
2025-08-27 07:03:09 +00:00

76 lines
1.9 KiB
JavaScript
Executable File

/**
* @category MyEic
* @subcategory Libraries
* @extends View
*/
class EICDialogContent extends View {
icon = null;
actions = [
{
label: 'Cancel',
onclick: this.cancel.bind(this),
severity: 'secondary'
},
{
label: 'OK',
onclick: this.accept.bind(this),
severity: 'primary'
}
]
constructor(options) {
super(options);
this.options = options || {};
window.addEventListener('resize', this.DOMContentResized.bind(this));
}
DOMContentLoaded(options) {
}
get buttons() {
let list = [];
for(let descriptor of this.actions) {
if(!descriptor.button) {
let button = new Button(ui.create(`<button eicbutton>${descriptor.label}</>`), {
icon: descriptor.icon,
severity: descriptor.severity || '',
disabled: descriptor.disabled || false,
onclick: descriptor.onclick
});
descriptor.button = button;
}
list.push(descriptor.button) ;
}
return list;
}
cancel(event) {
event.stopPropagation();
event.preventDefault();
this.abort();
}
accept(event) {
event.stopPropagation();
event.preventDefault();
this.commit(true);
}
DOMContentResized() {
let limits = [
{ name: 'desktop', min: 768 },
{ name: 'tablet', min: 600 },
{ name: 'mobile', min: 0 }
];
let device = limits.find(item => item.min < window.innerWidth);
this.el.closest('[eicdialog], [eicdialog="eicdialog"]').setAttribute('device', device ? device.name: limits[0].name);
}
}
app.registerClass('EICDialogContent', EICDialogContent);