From 0bb08584e25ac09819bfacd313853f6fd59c1a18 Mon Sep 17 00:00:00 2001 From: Dev Date: Tue, 18 Nov 2025 18:39:44 +0000 Subject: [PATCH] - Bugfix on UI-POPUP made --- asset/webcomponent/module/ui-popup.js | 52 +++-------------------- asset/webcomponent/module/webcomponent.js | 15 +++++++ 2 files changed, 22 insertions(+), 45 deletions(-) diff --git a/asset/webcomponent/module/ui-popup.js b/asset/webcomponent/module/ui-popup.js index c56bec1..36d8206 100644 --- a/asset/webcomponent/module/ui-popup.js +++ b/asset/webcomponent/module/ui-popup.js @@ -21,8 +21,6 @@ class UiPopup extends Webcomponent { } this.replaceVarsPlaceholder().attach().render(); - - this.init(); this.handleOptions(); } @@ -31,68 +29,32 @@ class UiPopup extends Webcomponent { if ( ! this.options['skip-keys'] ) { document.addEventListener('keyup', function(e) { if ( this.visible() ) { + let trigger, ev; e.preventDefault(); + console.log(this.visible()); - // There's no real value in checking if the popup is shown or not. switch ( e.keyCode ) { - // RETURN case 13: trigger = this.querySelector('[action="confirm"]'); - ev = new CustomEvent('click', { trigger: trigger } ); - - trigger.dispatchEvent(ev); break; - // ESC case 27: trigger = this.querySelector('[action="close"]'); - ev = new CustomEvent('click', { trigger: trigger } ); - - trigger.dispatchEvent(ev); break; } + + if (trigger) { + ev = new CustomEvent('click', {trigger: trigger}); + trigger.dispatchEvent(ev); + } } }.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 ) { - ev = new CustomEvent('click', {trigger: trigger}); - - trigger.dispatchEvent(ev); - } - else { - this.hide(); - } - } - } - }.bind(this)); - } - attach() { let triggers = document.querySelectorAll('[ui-popup]'); diff --git a/asset/webcomponent/module/webcomponent.js b/asset/webcomponent/module/webcomponent.js index cd09d0a..6d56686 100644 --- a/asset/webcomponent/module/webcomponent.js +++ b/asset/webcomponent/module/webcomponent.js @@ -52,6 +52,21 @@ class Webcomponent extends HTMLElement { 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() { return this.#config; }