From 06601da30c962f082bdf36a3255937a757c57b68 Mon Sep 17 00:00:00 2001 From: Kazem Alghasi Date: Sat, 31 Oct 2026 18:37:02 +0330 Subject: [PATCH] feat(ui): implement phase 3.8 branding and UX improvements - Integrate SweetAlert2 into WordPress bridge for enhanced error reporting - Add professional favicon set (SVG, ICO, PWA, Apple Touch) and manifest - Replace default Laravel welcome page with branded landing page - Compact Filament login card dimensions and padding for better UI - Update documentation (AGENT.md, CLIENT_DELIVERY.md) to reflect phase 3.8 - Refactor wallet transaction migration for SQLite compatibility --- .../ifnex-bridge/assets/css/ifnex-orders.css | 29 +- .../assets/js/ifnex-order-form.js | 35 +- .../assets/js/sweetalert2.all.min.js | 6 + .../plugins/ifnex-bridge/ifnex-bridge.php | 4 +- .../ifnex-bridge/includes/user-bridge.php | 10 +- 04_Laravel/.env.example | 2 +- ...ce_payment_to_wallet_transactions_type.php | 26 +- 04_Laravel/public/favicon.ico | Bin 0 -> 9479 bytes 04_Laravel/public/images/apple-touch-icon.png | Bin 0 -> 14256 bytes 04_Laravel/public/images/favicon.svg | 30 +- 04_Laravel/public/images/icon-192.png | Bin 0 -> 15582 bytes 04_Laravel/public/images/icon-512.png | Bin 0 -> 41452 bytes 04_Laravel/public/images/site.webmanifest | 19 + .../views/filament/hooks/head.blade.php | 6 + .../views/filament/pages/auth/login.blade.php | 48 +- 04_Laravel/resources/views/welcome.blade.php | 537 +++++++++--------- AGENT.md | 27 +- CLIENT_DELIVERY.md | 15 +- 18 files changed, 479 insertions(+), 315 deletions(-) create mode 100644 03_WordPress/wp-content/plugins/ifnex-bridge/assets/js/sweetalert2.all.min.js create mode 100644 04_Laravel/public/images/apple-touch-icon.png create mode 100644 04_Laravel/public/images/icon-192.png create mode 100644 04_Laravel/public/images/icon-512.png create mode 100644 04_Laravel/public/images/site.webmanifest diff --git a/03_WordPress/wp-content/plugins/ifnex-bridge/assets/css/ifnex-orders.css b/03_WordPress/wp-content/plugins/ifnex-bridge/assets/css/ifnex-orders.css index c43464c..801e621 100644 --- a/03_WordPress/wp-content/plugins/ifnex-bridge/assets/css/ifnex-orders.css +++ b/03_WordPress/wp-content/plugins/ifnex-bridge/assets/css/ifnex-orders.css @@ -1043,4 +1043,31 @@ .ifnex-total-spent strong { color: #f9fafb; } -} \ No newline at end of file +} +/* ══════════════════════════════════════════════════════════════ + SweetAlert2 — هماهنگ‌سازی با هویت بصری IFNEX (فاز ۳.۸) + پاپ‌آپ خطاهای فرم سفارش: فونت وزیرمتن + RTL + دکمهٔ کهربایی + ══════════════════════════════════════════════════════════════ */ +.ifnex-swal { + direction: rtl; + font-family: 'Vazirmatn', 'IranYekan', Tahoma, sans-serif; + border-radius: 16px; +} +.ifnex-swal .swal2-title { + font-family: 'Vazirmatn', 'IranYekan', Tahoma, sans-serif; + font-size: 18px; + font-weight: 700; + color: #1f2937; +} +.ifnex-swal .swal2-html-container { + font-family: 'Vazirmatn', 'IranYekan', Tahoma, sans-serif; + font-size: 14px; + color: #6b7280; + line-height: 1.8; +} +.ifnex-swal .swal2-confirm { + font-family: 'Vazirmatn', 'IranYekan', Tahoma, sans-serif; + font-size: 14px; + font-weight: 600; + border-radius: 8px; +} diff --git a/03_WordPress/wp-content/plugins/ifnex-bridge/assets/js/ifnex-order-form.js b/03_WordPress/wp-content/plugins/ifnex-bridge/assets/js/ifnex-order-form.js index 6998dcd..eb322e3 100644 --- a/03_WordPress/wp-content/plugins/ifnex-bridge/assets/js/ifnex-order-form.js +++ b/03_WordPress/wp-content/plugins/ifnex-bridge/assets/js/ifnex-order-form.js @@ -383,7 +383,7 @@ jQuery(document).ready(function($) { // حذف یه بسته function removePackage(pkgId) { if (packages.length <= 1) { - alert('حداقل باید یک بسته وجود داشته باشد.'); + swalError('امکان حذف نیست', 'حداقل باید یک بسته وجود داشته باشد.'); return; } packages = packages.filter(function(p) { return p.id !== pkgId; }); @@ -544,7 +544,7 @@ jQuery(document).ready(function($) { // افزودن یه قلم جدید function addInvoiceItem() { if (invoiceItems.length >= MAX_ITEMS) { - alert('حداکثر ' + MAX_ITEMS + ' قلم می‌توانید اضافه کنید.'); + swalError('سقف اقلام پر است', 'حداکثر ' + MAX_ITEMS + ' قلم می‌توانید اضافه کنید.'); return; } var itemNumber = invoiceItems.length + 1; @@ -564,7 +564,7 @@ jQuery(document).ready(function($) { // حذف یه قلم function removeInvoiceItem(itemId) { if (invoiceItems.length <= 1) { - alert('حداقل باید یک قلم وجود داشته باشد.'); + swalError('امکان حذف نیست', 'حداقل باید یک قلم وجود داشته باشد.'); return; } invoiceItems = invoiceItems.filter(function(i) { return i.id !== itemId; }); @@ -987,12 +987,31 @@ jQuery(document).ready(function($) { function showFormError(msg) { $('#ifnex-form-error').text(msg).show(); setTimeout(function() { $('#ifnex-form-error').fadeOut(); }, 4000); + // پاپ‌آپ مرکزی خطا (فاز ۳.۸ — SweetAlert2) + swalError('خطا در فرم سفارش', msg); } function showCalcError(msg) { $('#ifnex-calc-error').text(msg).show(); } + // ─── SweetAlert2 helpers (فاز ۳.۸) ─── + // پاپ‌آپ خطا در مرکز صفحه؛ اگه Swal لود نشده بود به alert برمی‌گرده + function swalError(title, text) { + if (window.Swal && typeof window.Swal.fire === 'function') { + window.Swal.fire({ + icon: 'error', + title: title, + text: text || '', + confirmButtonText: 'متوجه شدم', + confirmButtonColor: '#f59e0b', + customClass: { popup: 'ifnex-swal' } + }); + } else { + alert((title ? title + '\n' : '') + (text || '')); + } + } + // ─── Submit Order ─── $('#ifnex-submit-order').on('click', function() { @@ -1077,10 +1096,15 @@ jQuery(document).ready(function($) { : '✅ تأیید و ثبت سفارش' ); + var submitErrMsg = (res && res.data) ? res.data : 'خطا در ثبت سفارش'; + $('#ifnex-submit-error') - .text(res.data || 'خطا در ثبت سفارش') + .text(submitErrMsg) .show(); + // پاپ‌آپ مرکزی خطای ثبت (فاز ۳.۸ — SweetAlert2) + swalError('ثبت سفارش انجام نشد', submitErrMsg); + } }, @@ -1103,6 +1127,9 @@ jQuery(document).ready(function($) { .text('خطا در ارتباط با سرور') .show(); + // پاپ‌آپ مرکزی خطای ارتباط (فاز ۳.۸ — SweetAlert2) + swalError('خطا در ارتباط با سرور', 'لطفاً اتصال اینترنت را بررسی کنید و دوباره تلاش کنید.'); + } }); diff --git a/03_WordPress/wp-content/plugins/ifnex-bridge/assets/js/sweetalert2.all.min.js b/03_WordPress/wp-content/plugins/ifnex-bridge/assets/js/sweetalert2.all.min.js new file mode 100644 index 0000000..c6b1deb --- /dev/null +++ b/03_WordPress/wp-content/plugins/ifnex-bridge/assets/js/sweetalert2.all.min.js @@ -0,0 +1,6 @@ +/*! +* sweetalert2 v11.14.5 +* Released under the MIT License. +*/ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Sweetalert2=t()}(this,(function(){"use strict";function e(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function t(t,n){return t.get(e(t,n))}function n(e,t,n){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.set(e,n)}const o={},i=e=>new Promise((t=>{if(!e)return t();const n=window.scrollX,i=window.scrollY;o.restoreFocusTimeout=setTimeout((()=>{o.previousActiveElement instanceof HTMLElement?(o.previousActiveElement.focus(),o.previousActiveElement=null):document.body&&document.body.focus(),t()}),100),window.scrollTo(n,i)})),s="swal2-",r=["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"].reduce(((e,t)=>(e[t]=s+t,e)),{}),a=["success","warning","info","question","error"].reduce(((e,t)=>(e[t]=s+t,e)),{}),l="SweetAlert2:",c=e=>e.charAt(0).toUpperCase()+e.slice(1),u=e=>{console.warn(`${l} ${"object"==typeof e?e.join(" "):e}`)},d=e=>{console.error(`${l} ${e}`)},p=[],m=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;var n;n=`"${e}" is deprecated and will be removed in the next major release.${t?` Use "${t}" instead.`:""}`,p.includes(n)||(p.push(n),u(n))},h=e=>"function"==typeof e?e():e,g=e=>e&&"function"==typeof e.toPromise,f=e=>g(e)?e.toPromise():Promise.resolve(e),b=e=>e&&Promise.resolve(e)===e,y=()=>document.body.querySelector(`.${r.container}`),v=e=>{const t=y();return t?t.querySelector(e):null},w=e=>v(`.${e}`),C=()=>w(r.popup),A=()=>w(r.icon),k=()=>w(r.title),E=()=>w(r["html-container"]),B=()=>w(r.image),$=()=>w(r["progress-steps"]),P=()=>w(r["validation-message"]),x=()=>v(`.${r.actions} .${r.confirm}`),L=()=>v(`.${r.actions} .${r.cancel}`),T=()=>v(`.${r.actions} .${r.deny}`),S=()=>v(`.${r.loader}`),O=()=>w(r.actions),M=()=>w(r.footer),j=()=>w(r["timer-progress-bar"]),H=()=>w(r.close),I=()=>{const e=C();if(!e)return[];const t=e.querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])'),n=Array.from(t).sort(((e,t)=>{const n=parseInt(e.getAttribute("tabindex")||"0"),o=parseInt(t.getAttribute("tabindex")||"0");return n>o?1:n"-1"!==e.getAttribute("tabindex")));return[...new Set(n.concat(i))].filter((e=>ee(e)))},D=()=>N(document.body,r.shown)&&!N(document.body,r["toast-shown"])&&!N(document.body,r["no-backdrop"]),q=()=>{const e=C();return!!e&&N(e,r.toast)},V=(e,t)=>{if(e.textContent="",t){const n=(new DOMParser).parseFromString(t,"text/html"),o=n.querySelector("head");o&&Array.from(o.childNodes).forEach((t=>{e.appendChild(t)}));const i=n.querySelector("body");i&&Array.from(i.childNodes).forEach((t=>{t instanceof HTMLVideoElement||t instanceof HTMLAudioElement?e.appendChild(t.cloneNode(!0)):e.appendChild(t)}))}},N=(e,t)=>{if(!t)return!1;const n=t.split(/\s+/);for(let t=0;t{if(((e,t)=>{Array.from(e.classList).forEach((n=>{Object.values(r).includes(n)||Object.values(a).includes(n)||Object.values(t.showClass||{}).includes(n)||e.classList.remove(n)}))})(e,t),!t.customClass)return;const o=t.customClass[n];o&&("string"==typeof o||o.forEach?z(e,o):u(`Invalid type of customClass.${n}! Expected string or iterable object, got "${typeof o}"`))},F=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(`.${r.popup} > .${r[t]}`);case"checkbox":return e.querySelector(`.${r.popup} > .${r.checkbox} input`);case"radio":return e.querySelector(`.${r.popup} > .${r.radio} input:checked`)||e.querySelector(`.${r.popup} > .${r.radio} input:first-child`);case"range":return e.querySelector(`.${r.popup} > .${r.range} input`);default:return e.querySelector(`.${r.popup} > .${r.input}`)}},R=e=>{if(e.focus(),"file"!==e.type){const t=e.value;e.value="",e.value=t}},U=(e,t,n)=>{e&&t&&("string"==typeof t&&(t=t.split(/\s+/).filter(Boolean)),t.forEach((t=>{Array.isArray(e)?e.forEach((e=>{n?e.classList.add(t):e.classList.remove(t)})):n?e.classList.add(t):e.classList.remove(t)})))},z=(e,t)=>{U(e,t,!0)},K=(e,t)=>{U(e,t,!1)},W=(e,t)=>{const n=Array.from(e.children);for(let e=0;e{n===`${parseInt(n)}`&&(n=parseInt(n)),n||0===parseInt(n)?e.style.setProperty(t,"number"==typeof n?`${n}px`:n):e.style.removeProperty(t)},Z=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"flex";e&&(e.style.display=t)},J=e=>{e&&(e.style.display="none")},X=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"block";e&&new MutationObserver((()=>{Q(e,e.innerHTML,t)})).observe(e,{childList:!0,subtree:!0})},G=(e,t,n,o)=>{const i=e.querySelector(t);i&&i.style.setProperty(n,o)},Q=function(e,t){t?Z(e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"flex"):J(e)},ee=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),te=e=>!!(e.scrollHeight>e.clientHeight),ne=e=>{const t=window.getComputedStyle(e),n=parseFloat(t.getPropertyValue("animation-duration")||"0"),o=parseFloat(t.getPropertyValue("transition-duration")||"0");return n>0||o>0},oe=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=j();n&&ee(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout((()=>{n.style.transition=`width ${e/1e3}s linear`,n.style.width="0%"}),10))},ie=`\n
\n \n
    \n
    \n \n

    \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n`.replace(/(^|\n)\s*/g,""),se=()=>{o.currentInstance.resetValidationMessage()},re=e=>{const t=(()=>{const e=y();return!!e&&(e.remove(),K([document.documentElement,document.body],[r["no-backdrop"],r["toast-shown"],r["has-column"]]),!0)})();if("undefined"==typeof window||"undefined"==typeof document)return void d("SweetAlert2 requires document to initialize");const n=document.createElement("div");n.className=r.container,t&&z(n,r["no-transition"]),V(n,ie);const o="string"==typeof(i=e.target)?document.querySelector(i):i;var i;o.appendChild(n),(e=>{const t=C();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")})(e),(e=>{"rtl"===window.getComputedStyle(e).direction&&z(y(),r.rtl)})(o),(()=>{const e=C(),t=W(e,r.input),n=W(e,r.file),o=e.querySelector(`.${r.range} input`),i=e.querySelector(`.${r.range} output`),s=W(e,r.select),a=e.querySelector(`.${r.checkbox} input`),l=W(e,r.textarea);t.oninput=se,n.onchange=se,s.onchange=se,a.onchange=se,l.oninput=se,o.oninput=()=>{se(),i.value=o.value},o.onchange=()=>{se(),i.value=o.value}})()},ae=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?le(e,t):e&&V(t,e)},le=(e,t)=>{e.jquery?ce(t,e):V(t,e.toString())},ce=(e,t)=>{if(e.textContent="",0 in t)for(let n=0;n in t;n++)e.appendChild(t[n].cloneNode(!0));else e.appendChild(t.cloneNode(!0))},ue=(e,t)=>{const n=O(),o=S();n&&o&&(t.showConfirmButton||t.showDenyButton||t.showCancelButton?Z(n):J(n),_(n,t,"actions"),function(e,t,n){const o=x(),i=T(),s=L();if(!o||!i||!s)return;de(o,"confirm",n),de(i,"deny",n),de(s,"cancel",n),function(e,t,n,o){if(!o.buttonsStyling)return void K([e,t,n],r.styled);z([e,t,n],r.styled),o.confirmButtonColor&&(e.style.backgroundColor=o.confirmButtonColor,z(e,r["default-outline"]));o.denyButtonColor&&(t.style.backgroundColor=o.denyButtonColor,z(t,r["default-outline"]));o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor,z(n,r["default-outline"]))}(o,i,s,n),n.reverseButtons&&(n.toast?(e.insertBefore(s,o),e.insertBefore(i,o)):(e.insertBefore(s,t),e.insertBefore(i,t),e.insertBefore(o,t)))}(n,o,t),V(o,t.loaderHtml||""),_(o,t,"loader"))};function de(e,t,n){const o=c(t);Q(e,n[`show${o}Button`],"inline-block"),V(e,n[`${t}ButtonText`]||""),e.setAttribute("aria-label",n[`${t}ButtonAriaLabel`]||""),e.className=r[t],_(e,n,`${t}Button`)}const pe=(e,t)=>{const n=y();n&&(!function(e,t){"string"==typeof t?e.style.background=t:t||z([document.documentElement,document.body],r["no-backdrop"])}(n,t.backdrop),function(e,t){if(!t)return;t in r?z(e,r[t]):(u('The "position" parameter is not valid, defaulting to "center"'),z(e,r.center))}(n,t.position),function(e,t){if(!t)return;z(e,r[`grow-${t}`])}(n,t.grow),_(n,t,"container"))};var me={innerParams:new WeakMap,domCache:new WeakMap};const he=["input","file","range","select","radio","checkbox","textarea"],ge=e=>{if(!e.input)return;if(!Ae[e.input])return void d(`Unexpected type of input! Expected ${Object.keys(Ae).join(" | ")}, got "${e.input}"`);const t=we(e.input);if(!t)return;const n=Ae[e.input](t,e);Z(t),e.inputAutoFocus&&setTimeout((()=>{R(n)}))},fe=(e,t)=>{const n=C();if(!n)return;const o=F(n,e);if(o){(e=>{for(let t=0;t{if(!e.input)return;const t=we(e.input);t&&_(t,e,"input")},ye=(e,t)=>{!e.placeholder&&t.inputPlaceholder&&(e.placeholder=t.inputPlaceholder)},ve=(e,t,n)=>{if(n.inputLabel){const o=document.createElement("label"),i=r["input-label"];o.setAttribute("for",e.id),o.className=i,"object"==typeof n.customClass&&z(o,n.customClass.inputLabel),o.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",o)}},we=e=>{const t=C();if(t)return W(t,r[e]||r.input)},Ce=(e,t)=>{["string","number"].includes(typeof t)?e.value=`${t}`:b(t)||u(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof t}"`)},Ae={};Ae.text=Ae.email=Ae.password=Ae.number=Ae.tel=Ae.url=Ae.search=Ae.date=Ae["datetime-local"]=Ae.time=Ae.week=Ae.month=(e,t)=>(Ce(e,t.inputValue),ve(e,e,t),ye(e,t),e.type=t.input,e),Ae.file=(e,t)=>(ve(e,e,t),ye(e,t),e),Ae.range=(e,t)=>{const n=e.querySelector("input"),o=e.querySelector("output");return Ce(n,t.inputValue),n.type=t.input,Ce(o,t.inputValue),ve(n,e,t),e},Ae.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");V(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return ve(e,e,t),e},Ae.radio=e=>(e.textContent="",e),Ae.checkbox=(e,t)=>{const n=F(C(),"checkbox");n.value="1",n.checked=Boolean(t.inputValue);const o=e.querySelector("span");return V(o,t.inputPlaceholder||t.inputLabel),n},Ae.textarea=(e,t)=>{Ce(e,t.inputValue),ye(e,t),ve(e,e,t);return setTimeout((()=>{if("MutationObserver"in window){const n=parseInt(window.getComputedStyle(C()).width);new MutationObserver((()=>{if(!document.body.contains(e))return;const o=e.offsetWidth+(i=e,parseInt(window.getComputedStyle(i).marginLeft)+parseInt(window.getComputedStyle(i).marginRight));var i;o>n?C().style.width=`${o}px`:Y(C(),"width",t.width)})).observe(e,{attributes:!0,attributeFilter:["style"]})}})),e};const ke=(e,t)=>{const n=E();n&&(X(n),_(n,t,"htmlContainer"),t.html?(ae(t.html,n),Z(n,"block")):t.text?(n.textContent=t.text,Z(n,"block")):J(n),((e,t)=>{const n=C();if(!n)return;const o=me.innerParams.get(e),i=!o||t.input!==o.input;he.forEach((e=>{const o=W(n,r[e]);o&&(fe(e,t.inputAttributes),o.className=r[e],i&&J(o))})),t.input&&(i&&ge(t),be(t))})(e,t))},Ee=(e,t)=>{for(const[n,o]of Object.entries(a))t.icon!==n&&K(e,o);z(e,t.icon&&a[t.icon]),Pe(e,t),Be(),_(e,t,"icon")},Be=()=>{const e=C();if(!e)return;const t=window.getComputedStyle(e).getPropertyValue("background-color"),n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e{if(!t.icon&&!t.iconHtml)return;let n=e.innerHTML,o="";if(t.iconHtml)o=xe(t.iconHtml);else if("success"===t.icon)o='\n
    \n \n
    \n
    \n',n=n.replace(/ style=".*?"/g,"");else if("error"===t.icon)o='\n \n \n \n \n';else if(t.icon){o=xe({question:"?",warning:"!",info:"i"}[t.icon])}n.trim()!==o.trim()&&V(e,o)},Pe=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])G(e,n,"background-color",t.iconColor);G(e,".swal2-success-ring","border-color",t.iconColor)}},xe=e=>`
    ${e}
    `,Le=(e,t)=>{const n=t.showClass||{};e.className=`${r.popup} ${ee(e)?n.popup:""}`,t.toast?(z([document.documentElement,document.body],r["toast-shown"]),z(e,r.toast)):z(e,r.modal),_(e,t,"popup"),"string"==typeof t.customClass&&z(e,t.customClass),t.icon&&z(e,r[`icon-${t.icon}`])},Te=e=>{const t=document.createElement("li");return z(t,r["progress-step"]),V(t,e),t},Se=e=>{const t=document.createElement("li");return z(t,r["progress-step-line"]),e.progressStepsDistance&&Y(t,"width",e.progressStepsDistance),t},Oe=(e,t)=>{((e,t)=>{const n=y(),o=C();if(n&&o){if(t.toast){Y(n,"width",t.width),o.style.width="100%";const e=S();e&&o.insertBefore(e,A())}else Y(o,"width",t.width);Y(o,"padding",t.padding),t.color&&(o.style.color=t.color),t.background&&(o.style.background=t.background),J(P()),Le(o,t)}})(0,t),pe(0,t),((e,t)=>{const n=$();if(!n)return;const{progressSteps:o,currentProgressStep:i}=t;o&&0!==o.length&&void 0!==i?(Z(n),n.textContent="",i>=o.length&&u("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.forEach(((e,s)=>{const a=Te(e);if(n.appendChild(a),s===i&&z(a,r["active-progress-step"]),s!==o.length-1){const e=Se(t);n.appendChild(e)}}))):J(n)})(0,t),((e,t)=>{const n=me.innerParams.get(e),o=A();if(o){if(n&&t.icon===n.icon)return $e(o,t),void Ee(o,t);if(t.icon||t.iconHtml){if(t.icon&&-1===Object.keys(a).indexOf(t.icon))return d(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${t.icon}"`),void J(o);Z(o),$e(o,t),Ee(o,t),z(o,t.showClass&&t.showClass.icon)}else J(o)}})(e,t),((e,t)=>{const n=B();n&&(t.imageUrl?(Z(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt||""),Y(n,"width",t.imageWidth),Y(n,"height",t.imageHeight),n.className=r.image,_(n,t,"image")):J(n))})(0,t),((e,t)=>{const n=k();n&&(X(n),Q(n,t.title||t.titleText,"block"),t.title&&ae(t.title,n),t.titleText&&(n.innerText=t.titleText),_(n,t,"title"))})(0,t),((e,t)=>{const n=H();n&&(V(n,t.closeButtonHtml||""),_(n,t,"closeButton"),Q(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel||""))})(0,t),ke(e,t),ue(0,t),((e,t)=>{const n=M();n&&(X(n),Q(n,t.footer,"block"),t.footer&&ae(t.footer,n),_(n,t,"footer"))})(0,t);const n=C();"function"==typeof t.didRender&&n&&t.didRender(n),o.eventEmitter.emit("didRender",n)},Me=()=>{var e;return null===(e=x())||void 0===e?void 0:e.click()},je=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),He=e=>{e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},Ie=(e,t)=>{var n;const o=I();if(o.length)return(e+=t)===o.length?e=0:-1===e&&(e=o.length-1),void o[e].focus();null===(n=C())||void 0===n||n.focus()},De=["ArrowRight","ArrowDown"],qe=["ArrowLeft","ArrowUp"],Ve=(e,t,n)=>{e&&(t.isComposing||229===t.keyCode||(e.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?Ne(t,e):"Tab"===t.key?_e(t):[...De,...qe].includes(t.key)?Fe(t.key):"Escape"===t.key&&Re(t,e,n)))},Ne=(e,t)=>{if(!h(t.allowEnterKey))return;const n=F(C(),t.input);if(e.target&&n&&e.target instanceof HTMLElement&&e.target.outerHTML===n.outerHTML){if(["textarea","file"].includes(t.input))return;Me(),e.preventDefault()}},_e=e=>{const t=e.target,n=I();let o=-1;for(let e=0;e{const t=O(),n=x(),o=T(),i=L();if(!(t&&n&&o&&i))return;const s=[n,o,i];if(document.activeElement instanceof HTMLElement&&!s.includes(document.activeElement))return;const r=De.includes(e)?"nextElementSibling":"previousElementSibling";let a=document.activeElement;if(a){for(let e=0;e{h(t.allowEscapeKey)&&(e.preventDefault(),n(je.esc))};var Ue={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const ze=()=>{Array.from(document.body.children).forEach((e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")||""),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")}))},Ke="undefined"!=typeof window&&!!window.GestureEvent,We=()=>{const e=y();if(!e)return;let t;e.ontouchstart=e=>{t=Ye(e)},e.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}},Ye=e=>{const t=e.target,n=y(),o=E();return!(!n||!o)&&(!Ze(e)&&!Je(e)&&(t===n||!te(n)&&t instanceof HTMLElement&&"INPUT"!==t.tagName&&"TEXTAREA"!==t.tagName&&(!te(o)||!o.contains(t))))},Ze=e=>e.touches&&e.touches.length&&"stylus"===e.touches[0].touchType,Je=e=>e.touches&&e.touches.length>1;let Xe=null;const Ge=e=>{null===Xe&&(document.body.scrollHeight>window.innerHeight||"scroll"===e)&&(Xe=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=`${Xe+(()=>{const e=document.createElement("div");e.className=r["scrollbar-measure"],document.body.appendChild(e);const t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})()}px`)};function Qe(e,t,n,s){q()?at(e,s):(i(n).then((()=>at(e,s))),He(o)),Ke?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),D()&&(null!==Xe&&(document.body.style.paddingRight=`${Xe}px`,Xe=null),(()=>{if(N(document.body,r.iosfix)){const e=parseInt(document.body.style.top,10);K(document.body,r.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}})(),ze()),K([document.documentElement,document.body],[r.shown,r["height-auto"],r["no-backdrop"],r["toast-shown"]])}function et(e){e=it(e);const t=Ue.swalPromiseResolve.get(this),n=tt(this);this.isAwaitingPromise?e.isDismissed||(ot(this),t(e)):n&&t(e)}const tt=e=>{const t=C();if(!t)return!1;const n=me.innerParams.get(e);if(!n||N(t,n.hideClass.popup))return!1;K(t,n.showClass.popup),z(t,n.hideClass.popup);const o=y();return K(o,n.showClass.backdrop),z(o,n.hideClass.backdrop),st(e,t,n),!0};function nt(e){const t=Ue.swalPromiseReject.get(this);ot(this),t&&t(e)}const ot=e=>{e.isAwaitingPromise&&(delete e.isAwaitingPromise,me.innerParams.get(e)||e._destroy())},it=e=>void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e),st=(e,t,n)=>{var i;const s=y(),r=ne(t);"function"==typeof n.willClose&&n.willClose(t),null===(i=o.eventEmitter)||void 0===i||i.emit("willClose",t),r?rt(e,t,s,n.returnFocus,n.didClose):Qe(e,s,n.returnFocus,n.didClose)},rt=(e,t,n,i,s)=>{o.swalCloseEventFinishedCallback=Qe.bind(null,e,n,i,s);const r=function(e){var n;e.target===t&&(null===(n=o.swalCloseEventFinishedCallback)||void 0===n||n.call(o),delete o.swalCloseEventFinishedCallback,t.removeEventListener("animationend",r),t.removeEventListener("transitionend",r))};t.addEventListener("animationend",r),t.addEventListener("transitionend",r)},at=(e,t)=>{setTimeout((()=>{var n;"function"==typeof t&&t.bind(e.params)(),null===(n=o.eventEmitter)||void 0===n||n.emit("didClose"),e._destroy&&e._destroy()}))},lt=e=>{let t=C();if(t||new _n,t=C(),!t)return;const n=S();q()?J(A()):ct(t,e),Z(n),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()},ct=(e,t)=>{const n=O(),o=S();n&&o&&(!t&&ee(x())&&(t=x()),Z(n),t&&(J(t),o.setAttribute("data-button-to-replace",t.className),n.insertBefore(o,t)),z([e,n],r.loading))},ut=e=>e.checked?1:0,dt=e=>e.checked?e.value:null,pt=e=>e.files&&e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null,mt=(e,t)=>{const n=C();if(!n)return;const o=e=>{"select"===t.input?function(e,t,n){const o=W(e,r.select);if(!o)return;const i=(e,t,o)=>{const i=document.createElement("option");i.value=o,V(i,t),i.selected=ft(o,n.inputValue),e.appendChild(i)};t.forEach((e=>{const t=e[0],n=e[1];if(Array.isArray(n)){const e=document.createElement("optgroup");e.label=t,e.disabled=!1,o.appendChild(e),n.forEach((t=>i(e,t[1],t[0])))}else i(o,n,t)})),o.focus()}(n,gt(e),t):"radio"===t.input&&function(e,t,n){const o=W(e,r.radio);if(!o)return;t.forEach((e=>{const t=e[0],i=e[1],s=document.createElement("input"),a=document.createElement("label");s.type="radio",s.name=r.radio,s.value=t,ft(t,n.inputValue)&&(s.checked=!0);const l=document.createElement("span");V(l,i),l.className=r.label,a.appendChild(s),a.appendChild(l),o.appendChild(a)}));const i=o.querySelectorAll("input");i.length&&i[0].focus()}(n,gt(e),t)};g(t.inputOptions)||b(t.inputOptions)?(lt(x()),f(t.inputOptions).then((t=>{e.hideLoading(),o(t)}))):"object"==typeof t.inputOptions?o(t.inputOptions):d("Unexpected type of inputOptions! Expected object, Map or Promise, got "+typeof t.inputOptions)},ht=(e,t)=>{const n=e.getInput();n&&(J(n),f(t.inputValue).then((o=>{n.value="number"===t.input?`${parseFloat(o)||0}`:`${o}`,Z(n),n.focus(),e.hideLoading()})).catch((t=>{d(`Error in inputValue promise: ${t}`),n.value="",Z(n),n.focus(),e.hideLoading()})))};const gt=e=>{const t=[];return e instanceof Map?e.forEach(((e,n)=>{let o=e;"object"==typeof o&&(o=gt(o)),t.push([n,o])})):Object.keys(e).forEach((n=>{let o=e[n];"object"==typeof o&&(o=gt(o)),t.push([n,o])})),t},ft=(e,t)=>!!t&&t.toString()===e.toString(),bt=(e,t)=>{const n=me.innerParams.get(e);if(!n.input)return void d(`The "input" parameter is needed to be set when using returnInputValueOn${c(t)}`);const o=e.getInput(),i=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return ut(n);case"radio":return dt(n);case"file":return pt(n);default:return t.inputAutoTrim?n.value.trim():n.value}})(e,n);n.inputValidator?yt(e,i,t):o&&!o.checkValidity()?(e.enableButtons(),e.showValidationMessage(n.validationMessage||o.validationMessage)):"deny"===t?vt(e,i):At(e,i)},yt=(e,t,n)=>{const o=me.innerParams.get(e);e.disableInput();Promise.resolve().then((()=>f(o.inputValidator(t,o.validationMessage)))).then((o=>{e.enableButtons(),e.enableInput(),o?e.showValidationMessage(o):"deny"===n?vt(e,t):At(e,t)}))},vt=(e,t)=>{const n=me.innerParams.get(e||void 0);if(n.showLoaderOnDeny&<(T()),n.preDeny){e.isAwaitingPromise=!0;Promise.resolve().then((()=>f(n.preDeny(t,n.validationMessage)))).then((n=>{!1===n?(e.hideLoading(),ot(e)):e.close({isDenied:!0,value:void 0===n?t:n})})).catch((t=>Ct(e||void 0,t)))}else e.close({isDenied:!0,value:t})},wt=(e,t)=>{e.close({isConfirmed:!0,value:t})},Ct=(e,t)=>{e.rejectPromise(t)},At=(e,t)=>{const n=me.innerParams.get(e||void 0);if(n.showLoaderOnConfirm&<(),n.preConfirm){e.resetValidationMessage(),e.isAwaitingPromise=!0;Promise.resolve().then((()=>f(n.preConfirm(t,n.validationMessage)))).then((n=>{ee(P())||!1===n?(e.hideLoading(),ot(e)):wt(e,void 0===n?t:n)})).catch((t=>Ct(e||void 0,t)))}else wt(e,t)};function kt(){const e=me.innerParams.get(this);if(!e)return;const t=me.domCache.get(this);J(t.loader),q()?e.icon&&Z(A()):Et(t),K([t.popup,t.actions],r.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}const Et=e=>{const t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));t.length?Z(t[0],"inline-block"):ee(x())||ee(T())||ee(L())||J(e.actions)};function Bt(){const e=me.innerParams.get(this),t=me.domCache.get(this);return t?F(t.popup,e.input):null}function $t(e,t,n){const o=me.domCache.get(e);t.forEach((e=>{o[e].disabled=n}))}function Pt(e,t){const n=C();if(n&&e)if("radio"===e.type){const e=n.querySelectorAll(`[name="${r.radio}"]`);for(let n=0;nObject.prototype.hasOwnProperty.call(jt,e),Vt=e=>-1!==Ht.indexOf(e),Nt=e=>It[e],_t=e=>{qt(e)||u(`Unknown parameter "${e}"`)},Ft=e=>{Dt.includes(e)&&u(`The parameter "${e}" is incompatible with toasts`)},Rt=e=>{const t=Nt(e);t&&m(e,t)};function Ut(e){const t=C(),n=me.innerParams.get(this);if(!t||N(t,n.hideClass.popup))return void u("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const o=zt(e),i=Object.assign({},n,o);Oe(this,i),me.innerParams.set(this,i),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})}const zt=e=>{const t={};return Object.keys(e).forEach((n=>{Vt(n)?t[n]=e[n]:u(`Invalid parameter to update: ${n}`)})),t};function Kt(){const e=me.domCache.get(this),t=me.innerParams.get(this);t?(e.popup&&o.swalCloseEventFinishedCallback&&(o.swalCloseEventFinishedCallback(),delete o.swalCloseEventFinishedCallback),"function"==typeof t.didDestroy&&t.didDestroy(),o.eventEmitter.emit("didDestroy"),Wt(this)):Yt(this)}const Wt=e=>{Yt(e),delete e.params,delete o.keydownHandler,delete o.keydownTarget,delete o.currentInstance},Yt=e=>{e.isAwaitingPromise?(Zt(me,e),e.isAwaitingPromise=!0):(Zt(Ue,e),Zt(me,e),delete e.isAwaitingPromise,delete e.disableButtons,delete e.enableButtons,delete e.getInput,delete e.disableInput,delete e.enableInput,delete e.hideLoading,delete e.disableLoading,delete e.showValidationMessage,delete e.resetValidationMessage,delete e.close,delete e.closePopup,delete e.closeModal,delete e.closeToast,delete e.rejectPromise,delete e.update,delete e._destroy)},Zt=(e,t)=>{for(const n in e)e[n].delete(t)};var Jt=Object.freeze({__proto__:null,_destroy:Kt,close:et,closeModal:et,closePopup:et,closeToast:et,disableButtons:Lt,disableInput:St,disableLoading:kt,enableButtons:xt,enableInput:Tt,getInput:Bt,handleAwaitingPromise:ot,hideLoading:kt,rejectPromise:nt,resetValidationMessage:Mt,showValidationMessage:Ot,update:Ut});const Xt=(e,t,n)=>{t.popup.onclick=()=>{e&&(Gt(e)||e.timer||e.input)||n(je.close)}},Gt=e=>!!(e.showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton);let Qt=!1;const en=e=>{e.popup.onmousedown=()=>{e.container.onmouseup=function(t){e.container.onmouseup=()=>{},t.target===e.container&&(Qt=!0)}}},tn=e=>{e.container.onmousedown=t=>{t.target===e.container&&t.preventDefault(),e.popup.onmouseup=function(t){e.popup.onmouseup=()=>{},(t.target===e.popup||t.target instanceof HTMLElement&&e.popup.contains(t.target))&&(Qt=!0)}}},nn=(e,t,n)=>{t.container.onclick=o=>{Qt?Qt=!1:o.target===t.container&&h(e.allowOutsideClick)&&n(je.backdrop)}},on=e=>e instanceof Element||(e=>"object"==typeof e&&e.jquery)(e);const sn=()=>{if(o.timeout)return(()=>{const e=j();if(!e)return;const t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";const n=t/parseInt(window.getComputedStyle(e).width)*100;e.style.width=`${n}%`})(),o.timeout.stop()},rn=()=>{if(o.timeout){const e=o.timeout.start();return oe(e),e}};let an=!1;const ln={};const cn=e=>{for(let t=e.target;t&&t!==document;t=t.parentNode)for(const e in ln){const n=t.getAttribute(e);if(n)return void ln[e].fire({template:n})}};o.eventEmitter=new class{constructor(){this.events={}}_getHandlersByEventName(e){return void 0===this.events[e]&&(this.events[e]=[]),this.events[e]}on(e,t){const n=this._getHandlersByEventName(e);n.includes(t)||n.push(t)}once(e,t){var n=this;const o=function(){n.removeListener(e,o);for(var i=arguments.length,s=new Array(i),r=0;r1?t-1:0),o=1;o{try{e.apply(this,n)}catch(e){console.error(e)}}))}removeListener(e,t){const n=this._getHandlersByEventName(e),o=n.indexOf(t);o>-1&&n.splice(o,1)}removeAllListeners(e){void 0!==this.events[e]&&(this.events[e].length=0)}reset(){this.events={}}};var un=Object.freeze({__proto__:null,argsToParams:e=>{const t={};return"object"!=typeof e[0]||on(e[0])?["title","html","icon"].forEach(((n,o)=>{const i=e[o];"string"==typeof i||on(i)?t[n]=i:void 0!==i&&d(`Unexpected type of ${n}! Expected "string" or "Element", got ${typeof i}`)})):Object.assign(t,e[0]),t},bindClickHandler:function(){ln[arguments.length>0&&void 0!==arguments[0]?arguments[0]:"data-swal-template"]=this,an||(document.body.addEventListener("click",cn),an=!0)},clickCancel:()=>{var e;return null===(e=L())||void 0===e?void 0:e.click()},clickConfirm:Me,clickDeny:()=>{var e;return null===(e=T())||void 0===e?void 0:e.click()},enableLoading:lt,fire:function(){for(var e=arguments.length,t=new Array(e),n=0;nw(r["icon-content"]),getImage:B,getInputLabel:()=>w(r["input-label"]),getLoader:S,getPopup:C,getProgressSteps:$,getTimerLeft:()=>o.timeout&&o.timeout.getTimerLeft(),getTimerProgressBar:j,getTitle:k,getValidationMessage:P,increaseTimer:e=>{if(o.timeout){const t=o.timeout.increase(e);return oe(t,!0),t}},isDeprecatedParameter:Nt,isLoading:()=>{const e=C();return!!e&&e.hasAttribute("data-loading")},isTimerRunning:()=>!(!o.timeout||!o.timeout.isRunning()),isUpdatableParameter:Vt,isValidParameter:qt,isVisible:()=>ee(C()),mixin:function(e){return class extends(this){_main(t,n){return super._main(t,Object.assign({},e,n))}}},off:(e,t)=>{e?t?o.eventEmitter.removeListener(e,t):o.eventEmitter.removeAllListeners(e):o.eventEmitter.reset()},on:(e,t)=>{o.eventEmitter.on(e,t)},once:(e,t)=>{o.eventEmitter.once(e,t)},resumeTimer:rn,showLoading:lt,stopTimer:sn,toggleTimer:()=>{const e=o.timeout;return e&&(e.running?sn():rn())}});class dn{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){const t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const pn=["swal-title","swal-html","swal-footer"],mn=e=>{const t={};return Array.from(e.querySelectorAll("swal-param")).forEach((e=>{Cn(e,["name","value"]);const n=e.getAttribute("name"),o=e.getAttribute("value");n&&o&&(t[n]="boolean"==typeof jt[n]?"false"!==o:"object"==typeof jt[n]?JSON.parse(o):o)})),t},hn=e=>{const t={};return Array.from(e.querySelectorAll("swal-function-param")).forEach((e=>{const n=e.getAttribute("name"),o=e.getAttribute("value");n&&o&&(t[n]=new Function(`return ${o}`)())})),t},gn=e=>{const t={};return Array.from(e.querySelectorAll("swal-button")).forEach((e=>{Cn(e,["type","color","aria-label"]);const n=e.getAttribute("type");n&&["confirm","cancel","deny"].includes(n)&&(t[`${n}ButtonText`]=e.innerHTML,t[`show${c(n)}Button`]=!0,e.hasAttribute("color")&&(t[`${n}ButtonColor`]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(t[`${n}ButtonAriaLabel`]=e.getAttribute("aria-label")))})),t},fn=e=>{const t={},n=e.querySelector("swal-image");return n&&(Cn(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")||void 0),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")||void 0),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")||void 0),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt")||void 0)),t},bn=e=>{const t={},n=e.querySelector("swal-icon");return n&&(Cn(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},yn=e=>{const t={},n=e.querySelector("swal-input");n&&(Cn(n,["type","label","placeholder","value"]),t.input=n.getAttribute("type")||"text",n.hasAttribute("label")&&(t.inputLabel=n.getAttribute("label")),n.hasAttribute("placeholder")&&(t.inputPlaceholder=n.getAttribute("placeholder")),n.hasAttribute("value")&&(t.inputValue=n.getAttribute("value")));const o=Array.from(e.querySelectorAll("swal-input-option"));return o.length&&(t.inputOptions={},o.forEach((e=>{Cn(e,["value"]);const n=e.getAttribute("value");if(!n)return;const o=e.innerHTML;t.inputOptions[n]=o}))),t},vn=(e,t)=>{const n={};for(const o in t){const i=t[o],s=e.querySelector(i);s&&(Cn(s,[]),n[i.replace(/^swal-/,"")]=s.innerHTML.trim())}return n},wn=e=>{const t=pn.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach((e=>{const n=e.tagName.toLowerCase();t.includes(n)||u(`Unrecognized element <${n}>`)}))},Cn=(e,t)=>{Array.from(e.attributes).forEach((n=>{-1===t.indexOf(n.name)&&u([`Unrecognized attribute "${n.name}" on <${e.tagName.toLowerCase()}>.`,""+(t.length?`Allowed attributes are: ${t.join(", ")}`:"To set the value, use HTML within the element.")])}))},An=e=>{const t=y(),n=C();"function"==typeof e.willOpen&&e.willOpen(n),o.eventEmitter.emit("willOpen",n);const i=window.getComputedStyle(document.body).overflowY;$n(t,n,e),setTimeout((()=>{En(t,n)}),10),D()&&(Bn(t,e.scrollbarPadding,i),(()=>{const e=y();Array.from(document.body.children).forEach((t=>{t.contains(e)||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")||""),t.setAttribute("aria-hidden","true"))}))})()),q()||o.previousActiveElement||(o.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout((()=>e.didOpen(n))),o.eventEmitter.emit("didOpen",n),K(t,r["no-transition"])},kn=e=>{const t=C();if(e.target!==t)return;const n=y();t.removeEventListener("animationend",kn),t.removeEventListener("transitionend",kn),n.style.overflowY="auto"},En=(e,t)=>{ne(t)?(e.style.overflowY="hidden",t.addEventListener("animationend",kn),t.addEventListener("transitionend",kn)):e.style.overflowY="auto"},Bn=(e,t,n)=>{(()=>{if(Ke&&!N(document.body,r.iosfix)){const e=document.body.scrollTop;document.body.style.top=-1*e+"px",z(document.body,r.iosfix),We()}})(),t&&"hidden"!==n&&Ge(n),setTimeout((()=>{e.scrollTop=0}))},$n=(e,t,n)=>{z(e,n.showClass.backdrop),n.animation?(t.style.setProperty("opacity","0","important"),Z(t,"grid"),setTimeout((()=>{z(t,n.showClass.popup),t.style.removeProperty("opacity")}),10)):Z(t,"grid"),z([document.documentElement,document.body],r.shown),n.heightAuto&&n.backdrop&&!n.toast&&z([document.documentElement,document.body],r["height-auto"])};var Pn=(e,t)=>/^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),xn=(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL");function Ln(e){!function(e){e.inputValidator||("email"===e.input&&(e.inputValidator=Pn),"url"===e.input&&(e.inputValidator=xn))}(e),e.showLoaderOnConfirm&&!e.preConfirm&&u("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),function(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(u('Target parameter is not valid, defaulting to "body"'),e.target="body")}(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
    ")),re(e)}let Tn;var Sn=new WeakMap;class On{constructor(){if(n(this,Sn,void 0),"undefined"==typeof window)return;Tn=this;for(var t=arguments.length,o=new Array(t),i=0;i1&&void 0!==arguments[1]?arguments[1]:{};if((e=>{!1===e.backdrop&&e.allowOutsideClick&&u('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const t in e)_t(t),e.toast&&Ft(t),Rt(t)})(Object.assign({},t,e)),o.currentInstance){const e=Ue.swalPromiseResolve.get(o.currentInstance),{isAwaitingPromise:t}=o.currentInstance;o.currentInstance._destroy(),t||e({isDismissed:!0}),D()&&ze()}o.currentInstance=Tn;const n=jn(e,t);Ln(n),Object.freeze(n),o.timeout&&(o.timeout.stop(),delete o.timeout),clearTimeout(o.restoreFocusTimeout);const i=Hn(Tn);return Oe(Tn,n),me.innerParams.set(Tn,n),Mn(Tn,i,n)}then(e){return t(Sn,this).then(e)}finally(e){return t(Sn,this).finally(e)}}const Mn=(e,t,n)=>new Promise(((i,s)=>{const r=t=>{e.close({isDismissed:!0,dismiss:t})};Ue.swalPromiseResolve.set(e,i),Ue.swalPromiseReject.set(e,s),t.confirmButton.onclick=()=>{(e=>{const t=me.innerParams.get(e);e.disableButtons(),t.input?bt(e,"confirm"):At(e,!0)})(e)},t.denyButton.onclick=()=>{(e=>{const t=me.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?bt(e,"deny"):vt(e,!1)})(e)},t.cancelButton.onclick=()=>{((e,t)=>{e.disableButtons(),t(je.cancel)})(e,r)},t.closeButton.onclick=()=>{r(je.close)},((e,t,n)=>{e.toast?Xt(e,t,n):(en(t),tn(t),nn(e,t,n))})(n,t,r),((e,t,n)=>{He(e),t.toast||(e.keydownHandler=e=>Ve(t,e,n),e.keydownTarget=t.keydownListenerCapture?window:C(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0)})(o,n,r),((e,t)=>{"select"===t.input||"radio"===t.input?mt(e,t):["text","email","number","tel","textarea"].some((e=>e===t.input))&&(g(t.inputValue)||b(t.inputValue))&&(lt(x()),ht(e,t))})(e,n),An(n),In(o,n,r),Dn(t,n),setTimeout((()=>{t.container.scrollTop=0}))})),jn=(e,t)=>{const n=(e=>{const t="string"==typeof e.template?document.querySelector(e.template):e.template;if(!t)return{};const n=t.content;return wn(n),Object.assign(mn(n),hn(n),gn(n),fn(n),bn(n),yn(n),vn(n,pn))})(e),o=Object.assign({},jt,t,n,e);return o.showClass=Object.assign({},jt.showClass,o.showClass),o.hideClass=Object.assign({},jt.hideClass,o.hideClass),!1===o.animation&&(o.showClass={backdrop:"swal2-noanimation"},o.hideClass={}),o},Hn=e=>{const t={popup:C(),container:y(),actions:O(),confirmButton:x(),denyButton:T(),cancelButton:L(),loader:S(),closeButton:H(),validationMessage:P(),progressSteps:$()};return me.domCache.set(e,t),t},In=(e,t,n)=>{const o=j();J(o),t.timer&&(e.timeout=new dn((()=>{n("timer"),delete e.timeout}),t.timer),t.timerProgressBar&&(Z(o),_(o,t,"timerProgressBar"),setTimeout((()=>{e.timeout&&e.timeout.running&&oe(t.timer)}))))},Dn=(e,t)=>{if(!t.toast)return h(t.allowEnterKey)?void(qn(e)||Vn(e,t)||Ie(-1,1)):(m("allowEnterKey"),void Nn())},qn=e=>{const t=Array.from(e.popup.querySelectorAll("[autofocus]"));for(const e of t)if(e instanceof HTMLElement&&ee(e))return e.focus(),!0;return!1},Vn=(e,t)=>t.focusDeny&&ee(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&ee(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!ee(e.confirmButton))&&(e.confirmButton.focus(),!0),Nn=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){const e=new Date,t=localStorage.getItem("swal-initiation");t?(e.getTime()-Date.parse(t))/864e5>3&&setTimeout((()=>{document.body.style.pointerEvents="none";const e=document.createElement("audio");e.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",e.loop=!0,document.body.appendChild(e),setTimeout((()=>{e.play().catch((()=>{}))}),2500)}),500):localStorage.setItem("swal-initiation",`${e}`)}On.prototype.disableButtons=Lt,On.prototype.enableButtons=xt,On.prototype.getInput=Bt,On.prototype.disableInput=St,On.prototype.enableInput=Tt,On.prototype.hideLoading=kt,On.prototype.disableLoading=kt,On.prototype.showValidationMessage=Ot,On.prototype.resetValidationMessage=Mt,On.prototype.close=et,On.prototype.closePopup=et,On.prototype.closeModal=et,On.prototype.closeToast=et,On.prototype.rejectPromise=nt,On.prototype.update=Ut,On.prototype._destroy=Kt,Object.assign(On,un),Object.keys(Jt).forEach((e=>{On[e]=function(){return Tn&&Tn[e]?Tn[e](...arguments):null}})),On.DismissReason=je,On.version="11.14.5";const _n=On;return _n.default=_n,_n})),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2); +"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:hsl(0,0%,33%);font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):focus-visible{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):focus-visible{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):focus-visible{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus-visible{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:0;padding:1em 1.6em .3em;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid hsl(0,0%,85%);border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:hsl(0,0%,94%);color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:rgb(249.95234375,205.965625,167.74765625);color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:rgb(156.7033492823,224.2822966507,246.2966507177);color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:rgb(200.8064516129,217.9677419355,225.1935483871);color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}"); \ No newline at end of file diff --git a/03_WordPress/wp-content/plugins/ifnex-bridge/ifnex-bridge.php b/03_WordPress/wp-content/plugins/ifnex-bridge/ifnex-bridge.php index a58f075..c03f157 100644 --- a/03_WordPress/wp-content/plugins/ifnex-bridge/ifnex-bridge.php +++ b/03_WordPress/wp-content/plugins/ifnex-bridge/ifnex-bridge.php @@ -35,7 +35,9 @@ function ifnex_enqueue_scripts() { has_shortcode($post->post_content, 'ifnex_order_payment') || has_shortcode($post->post_content, 'ifnex_customer_dashboard'))) { wp_enqueue_style('ifnex-bridge-css', plugin_dir_url(__FILE__) . 'assets/css/ifnex-bridge.css', array('ifnex-main'), '2.0.0-' . time()); - wp_enqueue_script('ifnex-order-form-js', plugin_dir_url(__FILE__) . 'assets/js/ifnex-order-form.js', array('jquery'), '2.0.0-' . time(), true); + // SweetAlert2 — پاپ‌آپ خطاها (فاز ۳.۸) — باندل محلی، بدون وابستگی به CDN + wp_enqueue_script('sweetalert2', plugin_dir_url(__FILE__) . 'assets/js/sweetalert2.all.min.js', array(), '11.14.5', true); + wp_enqueue_script('ifnex-order-form-js', plugin_dir_url(__FILE__) . 'assets/js/ifnex-order-form.js', array('jquery', 'sweetalert2'), '2.0.0-' . time(), true); } } diff --git a/03_WordPress/wp-content/plugins/ifnex-bridge/includes/user-bridge.php b/03_WordPress/wp-content/plugins/ifnex-bridge/includes/user-bridge.php index dd9b5f0..ccc8e5a 100644 --- a/03_WordPress/wp-content/plugins/ifnex-bridge/includes/user-bridge.php +++ b/03_WordPress/wp-content/plugins/ifnex-bridge/includes/user-bridge.php @@ -652,10 +652,18 @@ function ifnex_enqueue_order_assets() { // لود jQuery & JS wp_enqueue_script('jquery'); + // SweetAlert2 — پاپ‌آپ خطاهای فرم سفارش (فاز ۳.۸) — باندل محلی، بدون وابستگی به CDN + wp_enqueue_script( + 'sweetalert2', + $plugin_url . 'assets/js/sweetalert2.all.min.js', + array(), + '11.14.5', + true + ); wp_enqueue_script( 'ifnex-order-form-js', $plugin_url . 'assets/js/ifnex-order-form.js', - array('jquery'), + array('jquery', 'sweetalert2'), '2.0.0-' . time(), true ); diff --git a/04_Laravel/.env.example b/04_Laravel/.env.example index 760e8ce..1556f48 100644 --- a/04_Laravel/.env.example +++ b/04_Laravel/.env.example @@ -1,4 +1,4 @@ -APP_NAME=Laravel +APP_NAME="IFNEX Logistics" APP_ENV=local APP_KEY= APP_DEBUG=true diff --git a/04_Laravel/database/migrations/2026_10_29_160000_add_invoice_payment_to_wallet_transactions_type.php b/04_Laravel/database/migrations/2026_10_29_160000_add_invoice_payment_to_wallet_transactions_type.php index 172883a..7ada4d1 100644 --- a/04_Laravel/database/migrations/2026_10_29_160000_add_invoice_payment_to_wallet_transactions_type.php +++ b/04_Laravel/database/migrations/2026_10_29_160000_add_invoice_payment_to_wallet_transactions_type.php @@ -5,17 +5,30 @@ * * برای پشتیبانی از فاکتورهای دستی مدیر، یک نوع تراکنش جدید اضافه می‌کنیم: * 'invoice_payment' — کسر مبلغ فاکتور از کیف پول مشتری. + * + * سازگار با MySQL و SQLite (تست‌ها طبق AGENT.md با SQLite اجرا می‌شوند): + * - MySQL: ALTER TABLE ... MODIFY COLUMN ... ENUM + * - SQLite: enum فقط در سطح اپلیکیشن اعمال می‌شود (cast روی مدل WalletTransaction) + * پس روی SQLite نیازی به تغییر اسکیما نیست. */ use Illuminate\Database\Migrations\Migration; -use Illuminate\Database\Schema\Blueprint; -use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { + if (! Schema::hasTable('wallet_transactions')) { + return; + } + + // SQLite از MODIFY COLUMN پشتیبانی نمی‌کند و enum در آن معنا ندارد — skip + if (DB::getDriverName() === 'sqlite') { + return; + } + // MySQL: ALTER COLUMN به‌روزرسانی enum // مقادیر جدید شامل همه موارد قبلی + 'invoice_payment' DB::statement(" @@ -34,6 +47,15 @@ return new class extends Migration public function down(): void { + if (! Schema::hasTable('wallet_transactions')) { + return; + } + + // SQLite: هیچ تغییری در اسکیما داده نشده — skip + if (DB::getDriverName() === 'sqlite') { + return; + } + // بازگشت به حالت قبلی — فقط اگه هیچ رکورد با type='invoice_payment' نباشد $count = DB::table('wallet_transactions') ->where('type', 'invoice_payment') diff --git a/04_Laravel/public/favicon.ico b/04_Laravel/public/favicon.ico index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a11cdaba3aaa397d92f84541bd382bc3c8f25504 100644 GIT binary patch literal 9479 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 F{{#BcKu-Vw literal 0 HcmV?d00001 diff --git a/04_Laravel/public/images/apple-touch-icon.png b/04_Laravel/public/images/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6b6634abb14fe496dd42b2efb585b4cf206b11b2 GIT binary patch literal 14256 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
    NaoL9_3@yJlMcV<1R=k?G=2Z3ikM5)EmYpqK-? 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 NSxF^{YB8h0{{gdNYg_;T literal 0 HcmV?d00001 diff --git a/04_Laravel/public/images/favicon.svg b/04_Laravel/public/images/favicon.svg index 2778e23..3356039 100644 --- a/04_Laravel/public/images/favicon.svg +++ b/04_Laravel/public/images/favicon.svg @@ -1,4 +1,28 @@ - - - I + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/04_Laravel/public/images/icon-192.png b/04_Laravel/public/images/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..e7f0b5c17f1cedf02ff2fd65b987addca8ddc930 GIT binary patch literal 15582 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 literal 0 HcmV?d00001 diff --git a/04_Laravel/public/images/icon-512.png b/04_Laravel/public/images/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..9e28b54832c2442930fd0bccb5b8f644414ca7b5 GIT binary patch literal 41452 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 + - - + + + + + + IFNEX Logistics — سیستم مدیریت لجستیک بین‌المللی - {{ config('app.name', 'Laravel') }} + + + + + - - - + + + + - - @if (file_exists(public_path('build/manifest.json')) || file_exists(public_path('hot'))) - @vite(['resources/css/app.css', 'resources/js/app.js']) - @else - - @endif - - -
    - @if (Route::has('login')) -