// jloadScriptAsync (Promise) ---------------------------- var jloadScriptAsync = function (d, s, id, src) { return new Promise((resolve, reject) => { try { var fjs = d.getElementsByTagName(s)[0]; const scriptEle = d.createElement(s); scriptEle.id=id; scriptEle.onload = function () { //solo quando script caricato: resolve(scriptEle); } scriptEle.onerror = function (ev) { reject(new Error(`jloadScriptAsync error for ${src}`)); } scriptEle.src = src; fjs.parentNode.insertBefore(scriptEle, fjs); //document.head.append(scriptEle); } catch (error) { reject("160 ➔ jloadScriptAsync "+error); // errore interno alla funzione } }); }; // fine jloadScriptAsync // waitForAWN Funzione che attende che un oggetto JavaScript AWN venga definito function waitForAWN(pollInterval = 100, timeout = 5000) { return new Promise((resolve, reject) => { const startTime = Date.now(); function checkAWN() { if (typeof AWN !== 'undefined' && AWN !== 'undefined') { resolve(AWN); // L'oggetto AWN è stato trovato, risolvi la Promise } else if (Date.now() - startTime >= timeout) { reject(new Error(`Timeout: Oggetto AWN non trovato entro ${timeout}ms`)); // Timeout raggiunto } else { setTimeout(checkAWN, pollInterval); // Prova di nuovo dopo l'intervallo di polling } } checkAWN(); // Inizia il polling }); } // fine waitForAWN //debugger; // waitForJQ (Promise) ---------------------------- // Funzione che attende che un oggetto JavaScript jQuery venga definito function waitForJQ(pollInterval = 100, timeout = 5000) { return new Promise((resolve, reject) => { const startTime = Date.now(); function checkJQ() { if (typeof jQuery !== 'undefined' && jQuery !== 'undefined') { resolve(jQuery); // L'oggetto jQuery è stato trovato, risolvi la Promise } else if (Date.now() - startTime >= timeout) { reject(new Error(`Timeout: Oggetto jQuery non trovato entro ${timeout}ms`)); // Timeout raggiunto } else { setTimeout(checkJQ, pollInterval); // Prova di nuovo dopo l'intervallo di polling } } checkJQ(); // Inizia il polling }); } // fine waitForJQ // waitForMP (Promise) ---------------------------- // Funzione che attende che un oggetto JavaScript jQuery.magnificPopup venga definito function waitForMP(pollInterval = 100, timeout = 5000) { return new Promise((resolve, reject) => { const startTime = Date.now(); function checkMP() { if (typeof jQuery.magnificPopup !== 'undefined' && jQuery.magnificPopup !== 'undefined') { resolve(jQuery.magnificPopup); // L'oggetto jQuery.magnificPopup è stato trovato, risolvi la Promise } else if (Date.now() - startTime >= timeout) { reject(new Error(`Timeout: Oggetto jQuery.magnificPopup non trovato entro ${timeout}ms`)); // Timeout raggiunto } else { setTimeout(checkMP, pollInterval); // Prova di nuovo dopo l'intervallo di polling } } checkMP(); // Inizia il polling }); } // fine waitForMP (async () => { var pfAWN; var runstep2modalgodiv_sitia_gobeyond_2p = async function (d, s){ var anchordiv = document.getElementById("div_sitia_gobeyond_2p"); if(typeof pfAWN == "undefined"){ pfAWN = new AWN({ position: "top-right", durations: { global: 5000, success: 3000, warning: 5000, alert: 0, info: 4000, tip: 2000 }, labels: { success: "SUCCESS", warning: "EMBEDDING WARNING!", alert: "EMBEDDING ERROR!", info: "INFO", tip: "" }, icons: { prefix: "" } }); }else{ } if(anchordiv){ if (!('model' in anchordiv.dataset)) { pfAWN.alert('target [ div_sitia_gobeyond_2p ] (div da elaborare) non ha attributo obbligatorio [ data-model ]!'); }else{ var m = anchordiv.getAttribute('data-model'); if (!('key' in anchordiv.dataset)) { if (('shareid' in anchordiv.dataset)) { var shareid = anchordiv.getAttribute('data-shareid'); if (!('closeconfirm' in anchordiv.dataset)) { var closeconfirm = 'Sicuro di abbandonare il configuratore?'; }else{ var closeconfirm = anchordiv.getAttribute('data-closeconfirm'); } if (!('closepopup' in anchordiv.dataset)) { var closepopup = 'Exit'; }else{ var closepopup = anchordiv.getAttribute('data-closepopup'); } jQuery('#div_sitia_gobeyond_2p').magnificPopup({ items: { src: jQuery('
' +'
' +'