const showPopup          = require('./popup');
const elementTextContent = require('../../../_common/common_functions').elementTextContent;
const getElementById     = require('../../../_common/common_functions').getElementById;
const urlFor             = require('../../../_common/url').urlFor;

const alert = (options) => (
    new Promise((resolve) => {
        showPopup({
            url               : urlFor('dialog'),
            popup_id          : options.id,
            form_id           : '#frm_confirm',
            content_id        : '#dialog_content',
            additionalFunction: () => {
                const el_dialog = getElementById(options.id);
                const el_btn_ok = getElementById('btn_ok');

                elementTextContent(getElementById('dialog_message'), options.message);

                getElementById('btn_cancel').classList.add('invisible');

                el_btn_ok.addEventListener('click', () => {
                    if (el_dialog) {
                        el_dialog.remove();
                    }
                    if (typeof options.onConfirm === 'function') {
                        options.onConfirm();
                    }
                    resolve(true);
                });
            },
        });
    })
);

const confirm = (options) => (
    new Promise((resolve) => {
        showPopup({
            url               : urlFor('dialog'),
            popup_id          : options.id,
            form_id           : '#frm_confirm',
            content_id        : '#dialog_content',
            additionalFunction: () => {
                const el_dialog = getElementById(options.id);
                const el_btn_ok = getElementById('btn_ok');
                const el_btn_cancel = getElementById('btn_cancel');

                elementTextContent(getElementById('dialog_message'), options.message);

                el_btn_cancel.addEventListener('click', () => {
                    if (el_dialog) {
                        el_dialog.remove();
                    }
                    if (typeof options.onAbort === 'function') {
                        options.onAbort();
                    }
                    resolve(false);

                });
                el_btn_ok.addEventListener('click', () => {
                    if (el_dialog) {
                        el_dialog.remove();
                    }
                    if (typeof options.onConfirm === 'function') {
                        options.onConfirm();
                    }
                    resolve(true);
                });
            },
        });
    })
);

module.exports = {
    alert,
    confirm,
};
@@ -298,31 +298,86 @@
 nst 
-alert = (options
+dialog = (() =%3E %7B%0A    const BaseDialog = (options, is_alert = false
 ) =%3E (%0A
+    
     
@@ -403,32 +403,36 @@
 e) =%3E %7B%0A        
+    
 showPopup(%7B%0A    
@@ -431,32 +431,36 @@
 p(%7B%0A            
+   
+ 
 url             
@@ -485,32 +485,36 @@
 '),%0A            
+    
 popup_id        
@@ -533,32 +533,36 @@
 id,%0A            
+ 
+   
 form_id         
@@ -585,32 +585,36 @@
 m',%0A            
+  
+  
 content_id      
@@ -628,32 +628,36 @@
 ialog_content',%0A
+    
             addi
@@ -688,32 +688,36 @@
                 
+    
 const el_dialog 
@@ -708,32 +708,36 @@
 const el_dialog 
+    
 = getElementById
@@ -758,32 +758,36 @@
                 
+    
 const el_btn_ok 
@@ -778,32 +778,36 @@
 const el_btn_ok 
+    
 = getElementById
@@ -814,25 +814,24 @@
 ('btn_ok');%0A
-%0A
             
@@ -838,213 +838,64 @@
     
-elementTextContent(getElementById('dialog_message'), options.message);%0A%0A                getElementById('btn_cancel').classList.add('invisible');%0A%0A                el_btn_ok.addEventListener('click', () =%3E %7B
+    const el_btn_cancel = getElementById('btn_cancel');%0A
 %0A   
@@ -907,32 +907,33 @@
             if (
+!
 el_dialog) %7B%0A   
@@ -919,38 +919,41 @@
 if (!el_dialog) 
-%7B%0A    
+return;%0A%0A
                 
@@ -962,236 +962,77 @@
   el
-_dialog.remove();%0A                    %7D%0A                    if (typeof options.onConfirm === 'function') %7B%0A                        options.onConfirm();%0A                    %7D%0A                    resolve(true);%0A                %7D);
+ementTextContent(getElementById('dialog_message'), options.message);%0A
 %0A   
@@ -1036,35 +1036,32 @@
             
-%7D,%0A
         
 %7D);%0A    %7D)%0A)
@@ -1052,105 +1052,32 @@
     
-%7D);%0A    %7D)%0A);%0A%0Aconst confirm = (options) =%3E (%0A    new Promise((resolve) =%3E %7B%0A        showPopup(%7B%0A
+if (is_alert) %7B%0A        
     
@@ -1088,508 +1088,91 @@
     
-url   
     
-        : urlFor('dialog'),%0A            popup_id          : options.id,%0A            form_id           : '#frm_confirm',%0A            content_id        : '#dialog_content',%0A            additionalFunction: () =%3E %7B%0A                const el_dialog = getElementById(options.id);%0A                const el_btn_ok = getElementById('btn_ok');%0A                const el_btn_cancel = getElementById('btn_cancel');%0A%0A                elementTextContent(getElementById('dialog_message'), options.message);%0A%0A
+el_btn_cancel.classList.add('invisible');%0A                    %7D else %7B%0A        
     
@@ -1239,41 +1239,8 @@
     
-                if (el_dialog) %7B%0A
     
@@ -1283,38 +1283,24 @@
 ();%0A        
-            %7D%0A
             
@@ -1368,32 +1368,40 @@
                 
+        
 options.onAbort(
@@ -1415,34 +1415,50 @@
                 
+  
-%7D%0A
+      %7D%0A        
                 
@@ -1474,24 +1474,32 @@
 ve(false);%0A%0A
+        
             
@@ -1498,32 +1498,58 @@
             %7D);%0A
+                    %7D%0A    
                 
@@ -1596,45 +1596,8 @@
 %3E %7B%0A
-                    if (el_dialog) %7B%0A
     
@@ -1640,34 +1640,16 @@
 ();%0A    
-                %7D%0A
         
@@ -1723,32 +1723,36 @@
                 
+    
 options.onConfir
@@ -1768,34 +1768,42 @@
                 
+   
+ 
 %7D%0A
+    
                 
@@ -1829,32 +1829,36 @@
                 
+    
 %7D);%0A            
@@ -1861,11 +1861,19 @@
     
+  
+  
 %7D,%0A
+    
     
@@ -1888,56 +1888,186 @@
     
-%7D)%0A);%0A%0Amodule.exports = %7B%0A    alert,%0A
+    %7D)%0A    );%0A%0A    return %7B%0A        alert  : (options) =%3E new BaseDialog(options, true),%0A  
     
+  
 confirm
-,%0A%7D
+: (options) =%3E new BaseDialog(options),%0A    %7D;%0A%7D)();%0A%0Amodule.exports = dialog
 ;

Simplify dialog