- Bugfix on UI-POPUP made

This commit is contained in:
Dev 2025-11-18 18:39:44 +00:00
parent 45095b221d
commit 0bb08584e2
2 changed files with 22 additions and 45 deletions

View File

@ -21,8 +21,6 @@ class UiPopup extends Webcomponent {
} }
this.replaceVarsPlaceholder().attach().render(); this.replaceVarsPlaceholder().attach().render();
this.init();
this.handleOptions(); this.handleOptions();
} }
@ -31,67 +29,31 @@ class UiPopup extends Webcomponent {
if ( ! this.options['skip-keys'] ) { if ( ! this.options['skip-keys'] ) {
document.addEventListener('keyup', function(e) { document.addEventListener('keyup', function(e) {
if ( this.visible() ) { if ( this.visible() ) {
let trigger, ev; let trigger, ev;
e.preventDefault(); e.preventDefault();
console.log(this.visible());
// There's no real value in checking if the popup is shown or not.
switch ( e.keyCode ) { switch ( e.keyCode ) {
// RETURN
case 13: case 13:
trigger = this.querySelector('[action="confirm"]'); trigger = this.querySelector('[action="confirm"]');
ev = new CustomEvent('click', { trigger: trigger } );
trigger.dispatchEvent(ev);
break; break;
// ESC
case 27: case 27:
trigger = this.querySelector('[action="close"]'); trigger = this.querySelector('[action="close"]');
ev = new CustomEvent('click', { trigger: trigger } );
trigger.dispatchEvent(ev);
break; break;
} }
}
}.bind(this));
}
}
}
init() {
document.addEventListener('keyup', function(e) {
if ( this.visible() ) {
let trigger, ev, action;
e.preventDefault();
// There's no real value in checking if the popup is shown or not.
switch ( e.keyCode ) {
case 13: // RETURN
action = "confirm";
break;
case 27: // ESC
action = "close";
break
}
if (action) {
trigger = this.querySelector(`[action="${action}"]`);
if (trigger) { if (trigger) {
ev = new CustomEvent('click', {trigger: trigger}); ev = new CustomEvent('click', {trigger: trigger});
trigger.dispatchEvent(ev); trigger.dispatchEvent(ev);
} }
else {
this.hide();
}
}
} }
}.bind(this)); }.bind(this));
} }
}
}
attach() { attach() {
let triggers = document.querySelectorAll('[ui-popup]'); let triggers = document.querySelectorAll('[ui-popup]');

View File

@ -52,6 +52,21 @@ class Webcomponent extends HTMLElement {
return this; return this;
} }
off(type, listener, options) {
this.removeEventListener(type, listener, options);
return this;
}
emit(name, detail, bubbles, cancelable, composed) {
this.dispatchEvent(new CustomEvent(name, {
detail: detail ? detail : null,
bubbles: !! bubbles,
cancelable: !! cancelable,
composed: !! composed,
}));
}
get config() { get config() {
return this.#config; return this.#config;
} }